/* =========================================================
   JCM redesign — shared design system (green → teal / PwC-style)
   used by the homepage and all lower pages
   ========================================================= */
:root{
  --g:#239a63; --g-d:#177a53; --g-dd:#0d3a26; --g-l:#46bf8e;
  --teal:#2aa6bd; --teal-d:#1c8499; --teal-l:#63c8d7;
  --ink:#16201b; --ink-2:#3a463f; --ink-3:#6c7770;
  --paper:#f5f7f6; --paper-2:#eef2f0; --line:#e2e8e4; --deep:#134a39; --deep-2:#0e3a30;
  --grad:linear-gradient(100deg,var(--g),var(--teal));
  --grad-d:linear-gradient(120deg,#123f31 0%,#0f4a4a 60%,#0f5360 100%);
  --max:1200px; --skew:-11deg; --ease:cubic-bezier(.2,.7,.2,1);
  /* ===== brand shape: asymmetric "leaf / sprout" rounding ===== */
  --brand-r: 22px 6px 22px 6px;
  --brand-r-sm: 14px 4px 14px 4px;
  --brand-r-xs: 9px 2px 9px 2px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:"Noto Sans JP",sans-serif;color:var(--ink);background:#fff;line-height:1.8;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}
.en{font-family:"Outfit",sans-serif}
.wrap{max-width:var(--max);margin:0 auto;padding:0 32px}
.rv{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.rv.in{opacity:1;transform:none}
.rv.d1{transition-delay:.08s}.rv.d2{transition-delay:.16s}.rv.d3{transition-delay:.24s}.rv.d4{transition-delay:.32s}

.btn{position:relative;display:inline-flex;align-items:center;gap:12px;color:#fff;font-weight:700;font-size:14px;padding:16px 30px;border-radius:12px;background:var(--grad);transition:.25s var(--ease)}
.btn>*{display:inline-flex;align-items:center;gap:12px}
.btn:hover{filter:brightness(.94);transform:translateY(-2px)}
.btn.ghost{background:transparent;box-shadow:inset 0 0 0 1.6px var(--g-d);color:var(--g-d)}
.btn.ghost:hover{background:var(--g-d);color:#fff;filter:none}
.btn .ar{transition:transform .25s var(--ease)}.btn:hover .ar{transform:translateX(5px)}
.lnk{display:inline-flex;align-items:center;gap:9px;color:var(--g);font-weight:700;font-size:13px}
.lnk .ar{transition:transform .25s var(--ease)}.lnk:hover .ar{transform:translateX(5px)}

.shead{margin-bottom:46px}
.shead.c{text-align:center}
.shead .en{display:block;color:var(--g);font-weight:800;letter-spacing:.2em;text-transform:uppercase;font-size:13px;margin-bottom:12px}
.shead .en:before{content:"";display:inline-block;width:22px;height:12px;background:var(--g);vertical-align:middle;margin-right:12px;border-radius:12px 2px 12px 2px}
.shead.c .en:before{display:inline-block}
/* small EN+JP service identifier shown above a barhead */
.barhead-en{display:block;color:var(--g);font-weight:800;letter-spacing:.16em;font-size:12.5px;margin-bottom:10px;text-transform:uppercase}
.barhead-en:before{content:"";display:inline-block;width:18px;height:10px;background:var(--g);vertical-align:middle;margin-right:10px;border-radius:10px 2px 10px 2px}
.barhead-en .jp{color:var(--ink-2);font-weight:700;letter-spacing:.05em;margin-left:10px;font-size:12px}
.shead h2{font-size:clamp(24px,3.4vw,36px);font-weight:900;letter-spacing:.01em;line-height:1.35}

/* ===== Header ===== */
header.site{position:fixed;inset:0 0 auto 0;z-index:100;background:rgba(255,255,255,.92);backdrop-filter:blur(14px);transition:.3s var(--ease);border-bottom:1px solid transparent}
header.site.scrolled{border-bottom-color:var(--line)}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;height:78px}
header.site .logo img{height:32px}
header.site nav ul{display:flex;align-items:center;gap:30px;list-style:none}
header.site nav a{font-weight:700;font-size:14px;position:relative}
header.site nav a:not(.cta):after{content:"";position:absolute;left:0;right:100%;bottom:-6px;height:2px;background:var(--g);transition:right .25s var(--ease)}
header.site nav a:not(.cta):hover:after{right:0}
/* ===== mega dropdown ===== */
header.site nav .has-dd{position:relative}
header.site nav .dd{position:absolute;top:calc(100% + 10px);left:50%;transform:translateX(-50%);background:#fff;border:1px solid var(--line);border-radius:14px 4px 14px 4px;padding:22px 24px;min-width:300px;box-shadow:0 24px 50px -20px rgba(20,80,60,.25);opacity:0;visibility:hidden;transition:opacity .18s ease,visibility .18s;z-index:50}
header.site nav .has-dd:hover .dd,header.site nav .has-dd:focus-within .dd,header.site nav .dd:hover{opacity:1;visibility:visible}
header.site nav .has-dd:before{content:"";position:absolute;left:-12px;right:-12px;top:100%;height:32px}
header.site nav .dd a{display:block;padding:9px 12px;font-size:12.5px;font-weight:500;color:var(--ink-2);border-radius:6px;line-height:1.5;white-space:nowrap}
header.site nav .dd a:after{display:none!important}
header.site nav .dd a:hover{background:var(--paper);color:var(--g)}
header.site nav .dd .dd-top{font-weight:700;color:var(--ink);padding:10px 12px 14px;border-bottom:1px solid var(--line);margin-bottom:8px;font-size:13.5px}
header.site nav .dd .dd-top:hover{color:var(--g);background:transparent}
header.site nav .dd .dd-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px 16px;min-width:520px}
@media(max-width:980px){
  header.site nav .has-dd:before{display:none}
  header.site nav .dd{position:static;opacity:1;visibility:visible;transform:none;border:0;box-shadow:none;padding:0 0 12px 24px;min-width:0;border-radius:0;background:transparent}
  header.site nav .dd .dd-grid{grid-template-columns:1fr;min-width:0}
  header.site nav .dd a{padding:8px 0;font-size:12.5px}
  header.site nav .dd .dd-top{padding:8px 0;font-size:13px}
}

/* ===== footer service 2-col ===== */
footer.site .col .svc-2col{display:grid;grid-template-columns:1fr 1fr;column-gap:18px;row-gap:8px;list-style:none;padding:0}
header.site .right{display:flex;align-items:center;gap:22px}
header.site .cta{display:inline-flex;align-items:center;gap:8px;background:var(--grad);color:#fff;padding:11px 20px;font-size:13px;font-weight:700;border-radius:10px}
header.site .search{width:20px;height:20px;opacity:.7;cursor:pointer}
.navtoggle{display:none;width:46px;height:46px;border:0;background:transparent;cursor:pointer}
.navtoggle span{display:block;width:25px;height:2px;background:var(--ink);margin:6px auto;transition:.3s}

/* ===== Page hero (lower pages) ===== */
.phero{position:relative;padding:170px 0 64px;overflow:hidden;background:var(--grad-d);color:#fff}
.phero .bgimg{position:absolute;inset:0;z-index:0}
.phero .bgimg img{width:100%;height:100%;object-fit:cover;opacity:.72}
.phero .bgimg:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.62),rgba(0,0,0,.3) 55%,rgba(0,0,0,.12))}
.phero .wrap{position:relative;z-index:1}
.phero .en{display:block;font-weight:800;font-size:14px;color:#bfe6d6;letter-spacing:.14em;text-transform:uppercase}
.phero h1{font-size:clamp(28px,4.2vw,50px);font-weight:900;margin-top:12px;letter-spacing:.03em;line-height:1.2}
.phero:after{content:"";position:absolute;right:-80px;top:-80px;width:300px;height:300px;background:rgba(99,200,214,.1);border-radius:140px 30px 140px 30px;z-index:0}
.bc{background:var(--paper);border-bottom:1px solid var(--line)}
.bc ul{display:flex;gap:10px;list-style:none;padding:15px 0;font-size:12.5px;color:var(--ink-3);max-width:var(--max);margin:0 auto;padding-left:32px;padding-right:32px}
.bc li:not(:last-child):after{content:"/";margin-left:10px;color:var(--line)}
.bc a:hover{color:var(--g)}.bc .cur{color:var(--ink)}

/* ===== Section / prose ===== */
.section{padding:60px 0}
.section.tint{background:var(--paper)}
.lead{font-size:clamp(17px,2.2vw,22px);font-weight:700;line-height:1.95;letter-spacing:.01em}
.prose p{color:var(--ink-2);font-size:15px;line-height:2.1;margin-bottom:18px}
.prose p:last-child{margin-bottom:0}

/* ===== Definition table (会社概要 / 募集要項) ===== */
.dl{border-top:2px solid var(--g);border-bottom:1px solid var(--line)}
.dl .row{display:grid;grid-template-columns:230px 1fr;gap:0;border-bottom:1px solid var(--line)}
.dl .row:last-child{border-bottom:0}
/* 行ごとに緑バーを立てると縦に何本も並んで表に見えないため、
   見出し列の地色と罫線だけで構成する */
.dl dt{padding:22px 26px;font-weight:700;font-size:14px;color:var(--ink);background:var(--paper)}
.dl dd{padding:22px 26px;font-size:14px;color:var(--ink-2);line-height:1.9}
.dl dd ul{margin:0;padding-left:1.2em}
@media(max-width:720px){ .dl .row{grid-template-columns:1fr} .dl dt{padding:16px 20px} .dl dd{padding:14px 20px} }

/* ===== Timeline (沿革) ===== */
.tl{position:relative;padding-left:28px}
.tl:before{content:"";position:absolute;left:6px;top:6px;bottom:6px;width:2px;background:linear-gradient(var(--g),var(--teal))}
.tl .item{position:relative;padding:0 0 30px 26px}
.tl .item:before{content:"";position:absolute;left:-22px;top:6px;width:11px;height:11px;border-radius:50%;background:#fff;border:2.5px solid var(--g)}
.tl .yr{font-family:"Outfit";font-weight:800;color:var(--g);font-size:14px;letter-spacing:.03em}
.tl .item p{font-size:14px;color:var(--ink-2);margin-top:3px}

/* ===== Cards / value / strength ===== */
.grid{display:grid;gap:22px}
.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}.g2{grid-template-columns:repeat(2,1fr)}

/* 代表挨拶の左カラム: 顔写真 → 署名画像。ceo.jpg は写真ではなく社名＋役職＋
   サインの画像なので、役職/氏名をテキストで併記すると重複する。 */
.greeting-grid{grid-template-columns:1fr 210px;gap:50px;align-items:end}
.greeting-grid > .greeting-side{order:2}
@media(max-width:820px){.greeting-grid{grid-template-columns:1fr;gap:26px}}
.greeting-side{text-align:center}
.greeting-side .ceo-photo{width:100%;max-width:175px;margin:0 auto;display:block;border-radius:50%}
.greeting-side .ceo-sign{width:100%;max-width:189px;margin:20px auto 0;display:block}
@media(max-width:820px){
  .greeting-side{display:flex;align-items:center;justify-content:center;gap:22px;flex-wrap:wrap}
  .greeting-side .ceo-photo{max-width:150px}
  .greeting-side .ceo-sign{max-width:230px;margin-top:0}
}
.vcard{padding:34px 26px;border:1px solid var(--line);border-radius:14px;background:#fff;transition:.25s var(--ease);text-align:center}
.vcard .icn{margin-inline:auto}
/* 住所・アクセスなど読ませる情報のカードは左揃えのまま */
.vcard.addr{text-align:left}
.vcard:hover{transform:translateY(-6px);box-shadow:0 24px 44px -26px rgba(20,80,60,.5);border-color:var(--g)}
.vcard .n{font-family:"Outfit";font-weight:800;color:var(--g);font-size:14px}
.vcard h3{font-size:19px;font-weight:900;margin:8px 0 12px}
.vcard p{font-size:13px;color:var(--ink-3);line-height:1.9}

.mv{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.mv .b{padding:48px 40px;border-radius:16px;color:#fff;background:linear-gradient(120deg,#17518f,#3d7fc2)}
.mv .b:last-child{background:linear-gradient(120deg,#0f3f74,#2a67ad)}
.mv .b .k{font-family:"Outfit";font-weight:800;letter-spacing:.16em;opacity:.85;font-size:13px}
.mv .b p{font-size:clamp(18px,2.2vw,23px);font-weight:700;line-height:1.7;margin-top:14px}

.strength .s{display:grid;grid-template-columns:128px 1fr;gap:30px;padding:36px 0;border-bottom:1px solid var(--line);align-items:start}
.strength .s .icnwrap{display:flex;flex-direction:column;align-items:center;gap:10px}
.strength .s .icn{width:96px;height:96px;border-radius:46px 10px 46px 10px;background:var(--grad);color:#fff;display:grid;place-items:center;box-shadow:0 18px 30px -16px rgba(20,80,60,.5)}
.strength .s .icn svg{width:48px;height:48px;stroke:#fff;stroke-width:1.6;fill:none;stroke-linecap:round;stroke-linejoin:round}
.strength .s .no{font-family:"Outfit";font-weight:800;font-size:28px;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1}
@media(max-width:640px){ .strength .s{grid-template-columns:1fr;text-align:center} .strength .s .icnwrap{flex-direction:row;justify-content:center;gap:14px} }
/* vcard icon */
.vcard .icn{width:64px;height:64px;display:grid;place-items:center;margin-bottom:14px}
/* パズルアイコンは形が細かいので線を太めに、表示も大きく */
/* パズルアイコンは icooon-mono 素材（塗り）。線画指定を打ち消し大きめに表示 */
.vcard .icn svg:has(use[href^="#i-piece"]),.vcard .icn svg:has(use[href^="#i-way"]){width:66px;height:66px;fill:var(--g);stroke:none}
.vcard .icn svg{width:52px;height:52px;stroke:var(--g);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
/* icooon-mono 素材は塗りで描かれるため、線画指定を打ち消す */
.vcard .icn svg[viewBox="0 0 512 512"]{fill:var(--g);stroke:none;width:56px;height:56px}
/* mission/vision icon */
.mv .b{position:relative}
.mv .b .icn{position:absolute;right:24px;top:24px;width:60px;height:60px;border-radius:30px 6px 30px 6px;background:rgba(255,255,255,.18);display:grid;place-items:center}
.mv .b .icn svg{width:34px;height:34px;stroke:#fff;stroke-width:1.7;fill:none;stroke-linecap:round;stroke-linejoin:round}
.strength .s h3{font-size:20px;font-weight:900;margin-bottom:8px}
.strength .s p{font-size:14px;color:var(--ink-2);line-height:2}

/* ===== Service flow (4 ing) ===== */
.flow{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.flow .st{position:relative;padding:30px 22px;background:var(--paper);border:1px solid var(--line);text-align:center}
.flow .st .ic{width:64px;height:64px;border-radius:50%;background:#fff;border:1px solid var(--line);display:grid;place-items:center;margin:0 auto 14px}
.flow .st .ic img{width:32px;height:32px;object-fit:contain}
.flow .st .en{display:block;font-weight:800;color:var(--g);font-size:14px}
.flow .st h3{font-size:16px;font-weight:700;margin:2px 0 8px}
.flow .st p{font-size:12px;color:var(--ink-3);line-height:1.7}
.flow .st:not(:last-child):after{content:"→";position:absolute;right:-12px;top:50%;transform:translateY(-50%);z-index:2;color:var(--teal);font-weight:800;background:#fff;width:24px;height:24px;display:grid;place-items:center;border-radius:50%;box-shadow:0 2px 8px rgba(0,0,0,.1)}
@media(max-width:820px){ .flow{grid-template-columns:repeat(2,1fr)} .flow .st:after{display:none} }

/* ===== Service list (11) ===== */
.slist{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--line);border:1px solid var(--line)}
.slist a{background:#fff;padding:28px 26px;display:flex;flex-direction:column;gap:9px;transition:.25s var(--ease);min-height:140px}
.slist a:hover{background:var(--deep);color:#fff}
.slist .no{font-family:"Outfit";font-weight:800;font-size:15px;color:var(--g);display:inline-block}
.slist a:hover .no{color:var(--teal-l)}
.slist h3{font-size:18px;font-weight:800;line-height:1.5}
.slist a:hover p{color:#cfe6db}
.slist p{font-size:12px;color:var(--ink-3);line-height:1.7;margin-top:auto}

/* ===== Form ===== */
.form{max-width:760px}
.form .f{margin-bottom:24px}
.form label{display:block;font-weight:700;font-size:14px;margin-bottom:9px}
.form label .req{font-size:11px;color:#fff;background:var(--g);padding:2px 9px;margin-left:8px;border-radius:9px 2px 9px 2px;display:inline-block}
.form input,.form textarea,.form select{width:100%;border:1px solid var(--line);background:var(--paper);padding:14px 16px;font-family:inherit;font-size:14px;border-radius:8px;transition:.2s}
.form input:focus,.form textarea:focus,.form select:focus{outline:none;border-color:var(--g);background:#fff;box-shadow:0 0 0 3px rgba(35,154,99,.12)}
.form .row2{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.form .submit{text-align:center;margin-top:14px}
.form .submit button{border:0;cursor:pointer;font-family:inherit}
@media(max-width:640px){ .form .row2{grid-template-columns:1fr} }

/* ===== News list ===== */
.page2col{display:grid;grid-template-columns:1fr 300px;gap:54px}
.nlist a{display:grid;grid-template-columns:auto auto 1fr;gap:18px;align-items:center;padding:24px 6px;border-bottom:1px solid var(--line)}
.nlist a:first-child{border-top:1px solid var(--line)}
.nlist .date{font-family:"Outfit";font-weight:700;font-size:13px;color:var(--ink-2)}
.nlist .cat{font-size:11px;font-weight:700;padding:4px 13px;background:#fff;border:1px solid var(--line);color:var(--g-d);white-space:nowrap;border-radius:var(--brand-r-sm)}
.nlist .cat.sem{background:var(--g);color:#fff;border-color:var(--g)}
.nlist .ttl{font-size:14px;font-weight:500;line-height:1.6}
.nlist a:hover .ttl{color:var(--g)}
.side .box{margin-bottom:36px}
.side h4{font-size:13px;font-weight:800;letter-spacing:.08em;padding-bottom:12px;margin-bottom:14px;border-bottom:2px solid var(--g)}
.side h4 .en{color:var(--g);margin-right:8px}
.side ul{list-style:none;display:flex;flex-direction:column;gap:10px}
.side ul a{font-size:13px;color:var(--ink-2);transition:.2s;line-height:1.6}
.side ul a:hover{color:var(--g)}
.side .cats a{display:inline-block;border:1px solid var(--line);padding:6px 13px;font-size:12px;border-radius:999px;margin:0 6px 8px 0}
.side .cats a:hover{background:var(--g);color:#fff;border-color:var(--g)}
.side .yrs a{display:inline-block;margin:0 8px 8px 0;font-family:"Outfit";font-weight:700;font-size:13px}
@media(max-width:880px){ .page2col{grid-template-columns:1fr} }

/* ===== CTA band ===== */
/* the closing CTA band. scoped to section.cta so these rules never reach the
   header's <a class="cta"> button — an unscoped .cta:after painted a full-size
   gradient over that button and flattened its leaf corners. */
section.cta{position:relative;padding:96px 0;color:#fff;overflow:hidden;background:var(--deep)}
section.cta .bg{position:absolute;inset:0;z-index:0}section.cta .bg img{width:100%;height:100%;object-fit:cover;opacity:.75}
section.cta:after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(0,0,0,.74),rgba(0,0,0,.56));z-index:1}
section.cta .wrap{position:relative;z-index:2;text-align:center}
section.cta .en:not(.ar){font-weight:800;letter-spacing:.26em;text-transform:uppercase;font-size:13px;color:#cdeede}
section.cta .btn .ar{color:inherit}
section.cta h2{font-size:clamp(24px,3.6vw,38px);font-weight:900;margin:14px 0;line-height:1.4}
section.cta p{opacity:.92;margin-bottom:30px;font-size:14.5px}
section.cta .btn{background:#fff;color:var(--g-d)}section.cta .btn:hover{background:var(--paper)}

/* ===== Footer ===== */
/* PwC-style light footer */
footer.site{background:#f5f7f6;color:var(--ink);padding:64px 0 28px;border-top:1px solid var(--line)}
footer.site .top{display:grid;grid-template-columns:.85fr 2.05fr 1.1fr 1.1fr 1.1fr;gap:32px;padding-bottom:42px;border-bottom:1px solid var(--line)}
footer.site .col{display:flex;flex-direction:column;gap:18px}
footer.site h5{font-size:13.5px;color:var(--ink);font-weight:700;padding-bottom:8px;border-bottom:1px solid var(--line);margin-bottom:6px;letter-spacing:.02em}
footer.site ul{list-style:none;display:flex;flex-direction:column;gap:8px}
footer.site ul a{font-size:12.5px;color:var(--ink-2);line-height:1.55;transition:color .2s;display:inline-block}
footer.site ul a:hover{color:var(--g)}
footer.site .col.quick a{font-size:13px;color:var(--ink);padding:14px 0;border-bottom:1px solid var(--line);font-weight:500;display:block}
footer.site .col.quick a:hover{color:var(--g)}
footer.site .office{font-size:12px;line-height:1.7;color:var(--ink-2)}
footer.site .office b{color:var(--ink);font-weight:700;display:block;margin-bottom:3px;font-size:12.5px}
footer.site .legal{display:flex;flex-wrap:wrap;gap:10px 24px;padding:22px 0 0;font-size:11.5px}
footer.site .legal a{color:var(--ink-2);transition:color .2s}
footer.site .legal a:hover{color:var(--g)}
footer.site .bottom{display:flex;align-items:center;gap:24px;padding-top:18px;flex-wrap:wrap;border-top:1px solid var(--line);margin-top:18px}
footer.site .logo img{height:28px;margin:0;filter:none}
footer.site .tagline{font-size:11.5px;line-height:1.7;color:var(--ink-3);max-width:46em;margin:0}
footer.site .copy{font-family:"Outfit";font-size:10.5px;letter-spacing:.08em;color:var(--ink-3);margin-left:auto}

@media(max-width:980px){
  header.site .right nav{position:fixed;inset:78px 0 auto 0;background:#fff;border-bottom:1px solid var(--line);transform:translateY(-130%);transition:.35s var(--ease);max-height:calc(100vh - 78px);max-height:calc(100dvh - 78px);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
  header.site .right nav.open{transform:none}
  header.site nav ul{flex-direction:column;align-items:stretch;gap:0}
  header.site nav li{border-bottom:1px solid var(--paper-2)}
  header.site nav a{display:block;padding:16px 32px}
  header.site nav a:not(.cta):after{display:none}
  .navtoggle{display:block}
  .g3,.g4,.mv,.slist{grid-template-columns:repeat(2,1fr)}
  footer.site .top{grid-template-columns:repeat(2,1fr);gap:30px}
  footer.site .bottom{flex-direction:column;align-items:flex-start;gap:12px}
  footer.site .copy{margin-left:0}
}
@media(max-width:600px){ .g2,.g3,.g4,.slist,.mv{grid-template-columns:1fr} .phero{padding:140px 0 50px} }

/* ===== service-detail & misc components ===== */
.block{margin-bottom:64px}.block:last-child{margin-bottom:0}
.subhead{margin:0 0 24px}
.subhead .en{display:block;font-family:"Outfit";color:var(--teal-d);font-weight:800;letter-spacing:.12em;font-size:12px;text-transform:uppercase;margin-bottom:6px}
.subhead h3{font-size:clamp(20px,2.6vw,26px);font-weight:900;line-height:1.45}
.subhead h3 .mk{position:relative}
.subhead h3 .mk:after{content:"";position:absolute;left:0;right:0;bottom:3px;height:9px;background:rgba(42,166,189,.18);z-index:-1}
.tags{display:flex;flex-wrap:wrap;gap:10px}
.tags span{font-size:12.5px;font-weight:700;padding:9px 16px;background:var(--paper);border:1px solid var(--line);border-radius:999px;color:var(--ink-2)}
.tags span:before{content:"#";color:var(--teal);margin-right:5px}
.tablewrap{overflow-x:auto}
.dtable{width:100%;border-collapse:collapse;font-size:13.5px;min-width:480px}
.dtable th,.dtable td{border:1px solid var(--line);padding:12px 16px;text-align:left;vertical-align:top}
.dtable thead th{background:var(--deep);color:#fff;font-weight:700;border-color:rgba(255,255,255,.35)}
.dtable tbody th{background:#dfe9e4;font-weight:700}
/* 横に長い表で行を目で追えるようにゼブラを敷く（案B） */
.dtable td.num{text-align:right;font-family:"Outfit";font-weight:600;white-space:nowrap}
.dtable tr.total td,.dtable tr.total th{background:#eaf3ee;font-weight:800}
.bignum{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
.bignum b{font-family:"Outfit";font-weight:800;font-size:clamp(40px,6vw,60px);line-height:1;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.bignum .u{font-weight:700;font-size:16px;color:var(--ink-2);margin-left:2px}
.statrow{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;text-align:center}
.statrow .lab{font-size:13px;color:var(--ink-3);margin-top:8px;line-height:1.6}
.statrow .bignum{justify-content:center}
.figure{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;margin-left:auto;margin-right:auto}
.figure img{width:100%;display:block}
.figure figcaption{padding:12px 16px;font-size:12px;color:var(--ink-3);border-top:1px solid var(--line)}
.callout{background:var(--paper);border-left:4px solid var(--g);border-radius:0 12px 12px 0;padding:24px 28px;font-size:14px;color:var(--ink-2);line-height:1.95}
.callout b{color:var(--ink)}
.article{max-width:64em}
.article h3{font-size:19px;font-weight:900;margin:34px 0 14px;padding-left:14px;border-left:4px solid var(--g)}
.article h3:first-child{margin-top:0}
.article p{color:var(--ink-2);font-size:14.5px;line-height:2.05;margin-bottom:16px}
.article ul{margin:0 0 16px 1.4em}.article li{font-size:14px;color:var(--ink-2);line-height:1.95}
.smap{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.smap .col h4{font-size:15px;font-weight:800;padding-bottom:10px;margin-bottom:14px;border-bottom:2px solid var(--g)}
.smap ul{list-style:none;display:flex;flex-direction:column;gap:10px}
.smap ul a{font-size:13.5px;color:var(--ink-2);display:inline-flex;gap:8px}
.smap ul a:before{content:"›";color:var(--teal);font-weight:800}
.smap ul a:hover{color:var(--g)}
.notfound{text-align:center;padding:120px 0}
.notfound .big{font-family:"Outfit";font-weight:800;font-size:clamp(80px,16vw,160px);line-height:1;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.svcnav{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:54px}
.svcnav a{font-size:13px;font-weight:700;padding:11px 20px;border:1px solid var(--line);border-radius:999px;color:var(--ink-2);transition:.2s}
.svcnav a:hover{border-color:var(--g);color:var(--g)}
.svcnav a.on{background:var(--grad);color:#fff;border-color:transparent}

/* ===== service map (value-chain matrix) ===== */
.svcmap-wrap{overflow-x:auto;padding-bottom:12px;-webkit-overflow-scrolling:touch;max-width:1020px;margin-inline:auto}
/* マップ節: 見出し・リード文・図タイトルをマップと同じ幅に揃える */
.svcmap-sec .wrap>*{max-width:1020px;margin-inline:auto}
.svcmap{min-width:880px;display:grid;grid-template-columns:repeat(12,1fr);gap:8px;align-items:stretch}
.svcmap .ph{color:#fff;font-weight:700;font-size:13px;text-align:center;padding:13px 4px;border-radius:7px;display:flex;align-items:center;justify-content:center;line-height:1.3}
.svcmap .ph.b{background:#5285e8}.svcmap .ph.r{background:#ea6b6b}.svcmap .ph.o{background:#f0913c}.svcmap .ph.y{background:#e6bb39}.svcmap .ph.g{background:#54b45e}.svcmap .ph.t{background:#3fb1c0}
.svcmap .lab{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:var(--ink-2);padding:8px 0 0;white-space:nowrap;overflow:hidden}
.svcmap .lab:before{content:"";width:9px;height:9px;border-radius:50%;background:var(--g);flex:0 0 auto}
.svcmap .lab i{flex:1;height:0;border-top:2px dashed var(--teal);position:relative;min-width:16px}
.svcmap .lab i:after{content:"";position:absolute;right:-1px;top:-4px;border-left:7px solid var(--teal);border-top:4px solid transparent;border-bottom:4px solid transparent}
.svcmap a.box{display:flex;align-items:center;justify-content:center;text-align:center;background:var(--paper);border:1px solid var(--line);border-radius:7px;padding:6px 2px;min-height:44px;font-size:10px;font-weight:700;color:var(--ink);line-height:1.4;letter-spacing:-.02em;transition:.2s var(--ease)}
.svcmap a.box:hover{background:var(--grad);color:#fff;border-color:transparent;transform:translateY(-2px);box-shadow:0 10px 18px -10px rgba(20,80,60,.5)}
.svcmap a.box.fill{background:var(--paper)}
.svcmap a.box.fill:hover{background:var(--g-d);color:#fff;border-color:transparent;transform:translateY(-2px);box-shadow:0 10px 18px -10px rgba(20,80,60,.5)}
.scrollhint{font-size:12px;color:var(--ink-3);margin-bottom:12px;display:none}
@media(max-width:980px){ .scrollhint{display:block} }
@media(max-width:760px){ .smap,.statrow{grid-template-columns:1fr} }

/* ===== bar heading + two-column text/image (matches original layout) ===== */
.barhead{font-size:clamp(21px,2.9vw,31px);font-weight:900;line-height:1.45;margin-bottom:22px}
.twocol{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:start}
.twocol .rv,.twocol .htmlfig{align-self:start}
.twocol .prose p{margin-bottom:6px;line-height:1.7}
.twocol .figure{width:100%}
.twocol .figure img{width:100%}
@media(max-width:820px){ .twocol,.twocol:has(.htmlfig.advisory){grid-template-columns:1fr;gap:28px} }

/* ===== related webinars ===== */
.wcards{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.wcard{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;transition:.25s var(--ease)}
.wcard:hover{transform:translateY(-5px);box-shadow:0 18px 34px -20px rgba(20,80,60,.45);border-color:var(--g)}
.wcard .ph{aspect-ratio:16/9;overflow:hidden}
.wcard .ph img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.wcard:hover .ph img{transform:scale(1.06)}
.wcard .bd{padding:16px 18px 20px}
.wcard .date{font-family:"Outfit";font-weight:700;font-size:12px;color:var(--ink-3)}
.wcard .cat{display:inline-block;font-size:10.5px;font-weight:700;color:#fff;background:var(--g);padding:3px 11px;margin-left:8px;border-radius:11px 3px 11px 3px}
.wcard h4{font-size:14px;font-weight:700;line-height:1.65;margin-top:9px}
.wcard:hover h4{color:var(--g)}
@media(max-width:820px){ .wcards{grid-template-columns:1fr} }

/* ===== news cards (tag-driven) ===== */
.ngrid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
@media(max-width:980px){.ngrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.ngrid{grid-template-columns:1fr}}
.ncard{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;transition:.25s var(--ease)}
.ncard:hover{transform:translateY(-5px);box-shadow:0 18px 34px -20px rgba(20,80,60,.45);border-color:var(--g)}
.ncard>.lnk2{display:flex;flex-direction:column;flex:1;color:inherit}
.ncard .ph{position:relative;aspect-ratio:16/10;overflow:hidden}
.ncard .ph a{display:block;height:100%}
.ncard .ph img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.ncard:hover .ph img{transform:scale(1.06)}
.ncard .ph .cat{position:absolute;left:10px;top:10px;background:var(--g);color:#fff;font-size:11px;font-weight:700;padding:5px 13px;border-radius:13px 3px 13px 3px}
.ncard .bd{padding:15px 18px 18px;display:flex;flex-direction:column;gap:8px;flex:1}
.ncard .date{font-family:"Outfit";font-weight:700;font-size:12.5px;color:var(--ink-3)}
.ncard h4{font-size:14px;font-weight:700;line-height:1.65}
.ncard:hover h4{color:var(--g)}
.ncard .stags{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:8px}
.ncard .stags a{font-size:10.5px;font-weight:700;color:var(--g-d);background:#eaf3ee;border-radius:5px;padding:3px 9px;transition:.2s}
.ncard .stags a:hover{background:var(--g);color:#fff}
.nfilter{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:34px}
.nfilter button{font-family:inherit;cursor:pointer;font-size:13px;font-weight:700;padding:9px 18px;border:1px solid var(--line);background:#fff;color:var(--ink-2);border-radius:999px;transition:.2s}
.nfilter button:hover{border-color:var(--g);color:var(--g)}
.nfilter button.on{background:var(--grad);color:#fff;border-color:transparent}
/* related-news on service pages: center cards (handles 1-2 items gracefully) */
.ngrid[data-news-related]{display:flex;flex-wrap:wrap;justify-content:center;gap:22px}
.ngrid[data-news-related] .ncard{width:256px;max-width:100%}
@media(max-width:860px){ .ngrid{grid-template-columns:repeat(2,1fr)} }
@media(max-width:560px){ .ngrid{grid-template-columns:1fr} }

/* bullet list (service detail) */
.bullets{margin:6px 0 4px;padding:0;list-style:none;max-width:64em}
.bullets li{position:relative;padding:3px 0 3px 24px;font-size:14.5px;color:var(--ink-2);line-height:1.55}
.bullets li:before{content:"";position:absolute;left:2px;top:14px;width:10px;height:10px;background:var(--grad);border-radius:6px 1px 6px 1px}
/* fine-print notes (※ ...) — smaller & tighter */
.prose p.note{font-size:11px;line-height:1.5;color:var(--ink-3);margin-bottom:3px}
.prose p.note + p.note{margin-top:0}

/* ============================================================
   HTML figure components — replace exported PNG diagrams
   (reused across all service detail pages)
   ============================================================ */
.htmlfig{border:1px solid var(--line);border-radius:12px;background:#fff;padding:24px 26px;margin-inline:auto}
.htmlfig.mid{max-width:1040px}.htmlfig.wide{max-width:1120px}
.htmlfig.plain{border:0;background:transparent;padding:0}
.figbar{display:block;text-align:center;font-weight:800;color:#fff;background:var(--grad);border-radius:10px 3px 10px 3px;padding:11px 18px;font-size:15px;margin-bottom:22px;line-height:1.4}
.figbar.teal{background:linear-gradient(120deg,var(--teal-d),var(--teal))}
.figbar.deep{background:var(--deep)}
.figtitle{font-weight:900;font-size:clamp(15px,2vw,19px);line-height:1.4;text-align:center;margin-bottom:20px}
.figcap{font-size:11.5px;color:var(--ink-3);margin-top:14px;text-align:right}
.unittbl{position:relative}
.unittbl{overflow:visible!important}
.unittbl .unit-ellipse{position:absolute;pointer-events:none;overflow:visible}
.unittbl table th:nth-child(3),.unittbl table td.unitcell{position:relative;z-index:0}
.unitcallout{text-align:center;font-size:15px;line-height:1.9;color:#e23c3c;font-weight:700;margin:24px 0 6px}
.unitcallout b{color:#e23c3c;font-weight:900;font-size:17px;background:linear-gradient(transparent 55%,#ffe8a8 55%);padding:0 4px}
.unitcallout span{font-size:13px;color:var(--ink-2);font-weight:600;display:block;margin-top:6px}
@media(max-width:820px){.unittbl .unit-ellipse{top:52px}.unitcallout{font-size:14px}.unitcallout b{font-size:15px}}
.fignote{font-size:12px;color:var(--ink-3);margin-top:10px;line-height:1.6}

/* gantt (12+ schedule images) */
.gantt{--n:6;min-width:600px;font-size:12.5px}
.gantt .ghead{display:grid;grid-template-columns:var(--lab,210px) 1fr}
.gantt .months{display:grid;grid-template-columns:repeat(var(--n),1fr)}
.gantt .months div{font-size:11px;text-align:center;color:#fff;background:var(--g);padding:8px 2px;border-left:1px solid rgba(255,255,255,.35)}
.gantt .months div:first-child{border-left:0}
.gantt .ghead>div:first-child{background:var(--g);border-radius:6px 0 0 0}
.gantt .grow{display:grid;grid-template-columns:var(--lab,210px) 1fr;border-top:1px solid var(--line);align-items:center}
.gantt .grow:last-child{border-bottom:1px solid var(--line)}
/* ぶら下げインデント: 左padding(12)+番号幅(20)=32px を基準にし、1行目だけ
   text-indent で番号分を引き戻す。折り返し行と注釈がラベル文字に揃う。 */
.gantt .grow .lab{padding:9px 12px 9px 32px;text-indent:-20px;font-weight:600;color:var(--ink-2);font-size:12.5px;line-height:1.4}
.gantt .grow .num{display:inline-block;width:20px;text-indent:0;color:var(--ink-3);font-family:"Outfit";font-weight:700}
.gantt .grow .lab small,.gantt .grow .lab br+*{text-indent:0}
.gantt .track{position:relative;height:34px;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(100%/var(--n) - 1px),var(--line) calc(100%/var(--n) - 1px),var(--line) calc(100%/var(--n)))}
.gantt .bar{position:absolute;top:7px;bottom:7px;left:calc(var(--s) / var(--n) * 100%);width:calc(var(--w) / var(--n) * 100%);background:var(--g);border-radius:5px;min-width:6px;box-shadow:0 3px 8px -6px rgba(80,140,110,.4)}
.gantt .bar.teal{background:var(--g-d)}

/* 2(-3) column service boxes (card lists) */
.svcgrid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.svcgrid.three{grid-template-columns:1fr 1fr 1fr}
.svcgrid.one{grid-template-columns:1fr}
.svcbox{border:1px solid var(--line);border-radius:11px;overflow:hidden;background:#fff;display:flex;flex-direction:column}
.svcbox>h5,.svcbox>h3{background:var(--grad);color:#fff;font-size:14px;font-weight:800;padding:12px 16px;line-height:1.4}
.svcbox.teal>h5{background:linear-gradient(120deg,var(--teal-d),var(--teal))}
.svcbox.deep>h5{background:var(--deep)}
.svcbox>ul{list-style:none;padding:14px;margin:0;display:flex;flex-direction:column;gap:8px}
.svcbox>ul>li{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:10px 13px;font-size:12.5px;color:var(--ink-2);line-height:1.65}
.svcbox>ul>li b{color:var(--ink);font-weight:700}
@media(max-width:760px){.svcgrid,.svcgrid.three{grid-template-columns:1fr}}

/* before→after correlation comparison (原単位分母見直し): two cards + arrow,
   stacks vertically with a downward arrow on narrow screens */
.corrflow{display:grid;grid-template-columns:1fr 46px 1fr;align-items:start;gap:0 4px}
.corrflow .cf-card{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}
.corrflow .cf-card.good{border-color:#bfe0cf}
.corrflow .cf-head{font-weight:800;font-size:14px;text-align:center;padding:10px;background:#eef1f4;color:#5b6b7b}
.corrflow .cf-head.good{background:var(--g);color:#fff}
.corrflow .cf-head small{display:block;font-size:11px;font-weight:600;color:#8a99a8}
.corrflow .cf-head.good small{color:#fff;opacity:.9}
.corrflow .cf-chart{padding:12px 14px 6px}
.corrflow .cf-notes{list-style:none;margin:0;padding:2px 16px 14px;font-size:12.5px;color:var(--ink-2);line-height:1.9}
.corrflow .cf-ribbon{margin:2px 16px 14px;background:#eaf3ee;color:#177a53;font-weight:800;font-size:12.5px;text-align:center;padding:9px;border-radius:8px}
.corrflow .cf-arrow{align-self:center;text-align:center;color:var(--g);font-size:26px;font-weight:900;line-height:1}
@media(max-width:720px){
  .corrflow{grid-template-columns:1fr;gap:8px 0}
  .corrflow .cf-arrow{transform:rotate(90deg);font-size:22px;padding:2px 0}
}

/* data / comparison tables — extends .dtable */
.dtable td.c,.dtable th.c{text-align:center}
/* 列見出しにアイコンを同居させる（見出しの重複表示をなくすため） */
.dtable.icohead thead th{padding-top:14px;padding-bottom:14px}
.dtable.icohead .thico{display:flex;flex-direction:column;align-items:center;gap:7px}
.dtable.icohead .thico .ic{width:26px;height:26px;stroke:#fff;stroke-width:1.7}
.dtable .ok{color:var(--g);font-weight:800;text-align:center}
.dtable .ng{color:var(--ink-3);text-align:center}
.dtable.compact th,.dtable.compact td{padding:8px 10px;font-size:12px}
.dtable .hl{background:#eaf3ee}

/* chevron step band */
.stepband{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:24px}
.stepband .s{flex:1 1 120px;background:var(--g);color:#fff;padding:12px 14px 12px 26px;font-weight:800;font-size:13px;position:relative;clip-path:polygon(0 0,calc(100% - 15px) 0,100% 50%,calc(100% - 15px) 100%,0 100%,15px 50%)}
.stepband .s:first-child{padding-left:18px;clip-path:polygon(0 0,calc(100% - 15px) 0,100% 50%,calc(100% - 15px) 100%,0 100%)}
.stepband .s small{display:block;font-weight:700;font-size:10px;letter-spacing:.06em;opacity:.85}
.stepband .s.t{background:var(--teal)}.stepband .s.d{background:var(--deep)}
/* engagement-flow: highlight the step this service covers */
.stepband .s.cur{background:var(--deep)}
.iconrow .it.cur{color:var(--g-d);font-weight:800}
/* no ring around the current-step icon — the stepband above already marks it */
.flowlead{font-size:14px;color:var(--ink-2);line-height:2;max-width:64em;margin-bottom:26px}
.flowlead b{color:var(--g-d)}

/* vertical flow (3-step etc.) */
.vflow{display:flex;flex-direction:column;max-width:580px;margin:auto}
.vflow .st{position:relative;background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:15px 18px;display:flex;gap:14px;align-items:center}
.vflow .st+.st{margin-top:32px}
.vflow .st+.st:before{content:"";position:absolute;top:-25px;left:50%;transform:translateX(-50%);border-top:13px solid var(--teal);border-left:10px solid transparent;border-right:10px solid transparent}
.vflow h5{font-size:14px;font-weight:800;margin-bottom:2px}
.vflow p{font-size:12.5px;color:var(--ink-3);line-height:1.6}

/* step table (やること / 役務 type) */
.steptable{font-size:12.5px}
.sthead,.strow{display:grid;grid-template-columns:var(--c1,96px) 1fr 1fr;gap:10px}
.sthead{margin-bottom:10px}
.sthead span{padding:11px;border-radius:7px;text-align:center;font-weight:800;color:#fff}
.sthead .g{background:var(--g)}.sthead .d{background:var(--deep)}
.sthead span.sp{background:transparent}
.strow{align-items:stretch;margin-bottom:10px}
.stbadge{background:var(--g);color:#fff;border-radius:7px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-family:"Outfit";font-weight:800;font-size:13px;padding:8px 4px;text-align:center}
.stbadge .ic{stroke:#fff;width:24px;height:24px}
.stcell{background:var(--paper);border:1px solid var(--line);border-radius:7px;padding:11px 14px}
.stcell b{font-size:13px;color:var(--ink);font-weight:800}
.stcell p{font-size:12px;color:var(--ink-3);line-height:1.6;margin-top:4px}
.stcell.sub{background:#fff;color:var(--ink-2)}
@media(max-width:680px){.sthead,.strow{grid-template-columns:1fr}.sthead span.sp{display:none}}

/* scope categories (上流/自社/下流) */
.catcol{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:13px}
.cattag{font-size:12.5px;font-weight:800;color:#fff;background:var(--g);border-radius:6px;padding:7px 10px;text-align:center}
.catcol.mid .cattag{background:var(--deep)}
.catsub{font-size:11px;font-weight:700;color:var(--g-d);text-align:center;margin:7px 0 2px}
.catlist{margin:4px 0 0;padding:0;list-style:none;counter-reset:c}
.catlist li{counter-increment:c;position:relative;padding:6px 4px 6px 26px;font-size:11.5px;color:var(--ink-2);border-top:1px solid var(--line);line-height:1.45}
.catlist li:before{content:counter(c);position:absolute;left:2px;top:6px;width:17px;height:17px;background:#fff;border:1px solid var(--g);color:var(--g);border-radius:50%;font-size:9.5px;font-weight:800;display:grid;place-items:center;font-family:"Outfit"}
.catmore{font-size:11.5px;color:var(--ink-3);padding:7px 4px 2px;text-align:center}
.catcol.mid{display:flex;flex-direction:column}
.sc12{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:9px;flex:1}
.sc12 .sc{background:#f1f3f2;border-radius:8px;display:flex;flex-direction:column;overflow:hidden}
.sc12 .sc-h{background:var(--g);color:#fff;font-weight:800;font-size:13px;text-align:center;padding:8px;font-family:"Outfit"}
.sc12 .sc p{font-size:11px;line-height:1.55;color:var(--ink-2);padding:9px 9px 0;text-align:center}
.sc12 .sc small{display:block;font-size:10px;color:var(--ink-3);text-align:center;margin-top:6px}
.sc12 .sc .art{width:78%;max-width:120px;height:auto;margin:auto auto 10px;padding-top:8px}
.stbadge .stair{width:46px;height:auto;display:block}
.scopebox{border-radius:8px;padding:11px 13px;color:#fff;margin-top:9px}
.scopebox.g{background:var(--g)}.scopebox.t{background:var(--teal)}
.scopebox .sb-h{font-weight:800;font-size:13.5px;display:flex;align-items:center;gap:7px;margin-bottom:5px}
.scopebox .sb-h .ic{stroke:#fff;width:21px;height:21px}
.scopebox p{font-size:11px;line-height:1.55}
.scopebox small{display:block;font-size:10px;opacity:.85;margin-top:5px}

/* formula (A × B) */
.formula{display:grid;grid-template-columns:1fr auto 1fr;gap:18px;align-items:stretch;margin-top:22px}
/* 式の結果「= CO₂排出量」。常にパネルと同じ行に置き、
   A × B = 結果 を1行の式として読ませる（狭い幅では図全体を等比縮小）。 */
.formula.has-result{grid-template-columns:1fr auto 1fr auto}
.formula .result-cell{align-self:center;display:flex;align-items:center;gap:16px}
.formula .op{display:grid;place-items:center;font-family:"Outfit";font-weight:800;font-size:34px;color:#f0913c}
.fpanel{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:18px;position:relative;text-align:center}
.fpanel .hd{display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:900;font-size:16px;margin:0 auto 12px}
.fpanel.g .hd{color:var(--g-d)}.fpanel.t .hd{color:var(--teal-d)}
.fpanel .hd .ic{stroke:currentColor}
.fpanel .fcols{display:grid;grid-template-columns:1fr 1fr;gap:14px;text-align:left}
.fpanel .sub{font-weight:800;color:var(--teal-d);font-size:11.5px;margin-bottom:6px;border-bottom:2px solid var(--g-l);padding-bottom:4px}
.fpanel p{font-size:11px;color:var(--ink-2);line-height:1.65}
.ftick{list-style:none;display:flex;flex-direction:column;gap:7px}
.ftick li{font-size:11px;color:var(--ink-2);text-align:center;background:#fff;border:1px solid var(--line);border-radius:6px;padding:6px}
@media(max-width:560px){.formula,.formula.has-result{grid-template-columns:1fr;gap:30px}.fpanel .fcols{grid-template-columns:1fr}.formula .result-cell{justify-self:center}}
/* scsupply — Scope1/2/3 サプライチェーン排出量の把握 (3-column with arrows) */
.scsupply-fig .figbar{background:linear-gradient(100deg,var(--g),var(--teal))!important;color:#fff!important}
/* 矢印列を細くし、左右列に「燃料及びエネルギー活動」等が1行で収まる幅を確保する */
.scsupply{display:grid;grid-template-columns:1fr 34px 1.14fr 34px 1fr;gap:0 6px;align-items:stretch;max-width:1080px;margin:6px auto 0;font-size:12px}
.scsupply .sccol{display:flex;flex-direction:column}
.scsupply .sccol-hd{background:transparent;color:var(--ink);font-weight:800;text-align:center;padding:0 4px 12px;font-size:17px;letter-spacing:.02em}
.scsupply .sccol-hd.dark{color:var(--ink);background:transparent}
.scsupply .sccol-sub{background:var(--deep);color:#fff;font-weight:700;text-align:center;padding:8px;font-size:13px;font-family:"Outfit";border-radius:6px 6px 0 0}
.scsupply .scnlist{margin:0;padding:0;list-style:none;background:#fff;border:1px solid var(--line);border-top:0;counter-reset:scn;border-radius:0 0 6px 6px;overflow:hidden}
.scsupply .scnlist[start="9"]{counter-reset:scn 8}
.scsupply .scnlist li{counter-increment:scn;position:relative;padding:7px 8px 7px 30px;font-size:12px;color:var(--ink);border-bottom:1px solid var(--paper-2);line-height:1.4}
.scsupply .scnlist li:last-child{border-bottom:0}
.scsupply .scnlist li:before{content:counter(scn);position:absolute;left:7px;top:50%;transform:translateY(-50%);width:18px;height:18px;border-radius:50%;background:var(--g);color:#fff;font-size:10px;font-weight:800;display:grid;place-items:center;font-family:"Outfit"}
.scsupply .scnlist li.opt:before{content:"他";background:var(--ink-3);font-family:"Noto Sans JP";font-size:9.5px}
/* 注記は常に列の最下段へ。列ごとの項目数の差で高さがずれるのを防ぐ */
.scsupply .scnlist{margin-bottom:13px;flex:1}
.scsupply .scnote{margin-top:auto;border:1.5px dashed var(--g);border-radius:6px;padding:10px 6px;text-align:center;font-size:12px;font-weight:700;min-height:77px;display:flex;align-items:center;justify-content:center;box-sizing:border-box;line-height:1.5;color:var(--g-d);background:#f0f6f3}
.scsupply .scnote.t{color:var(--teal-d);border-color:var(--teal);background:#e6f4f6}
.scsupply .scarr{align-self:center;display:grid;place-items:center;padding-top:30px}
.scsupply .scarr svg{width:36px;height:54px;display:block}
.scsupply .sc12-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px;background:#fff;border:1px solid var(--line);border-top:0;padding:5px;flex:1;margin-bottom:13px}
.scsupply-fig .sc12-grid{margin-bottom:18px}
.scsupply .sc-card{background:#fff;border-radius:5px;overflow:hidden;display:flex;flex-direction:column;border:1px solid var(--paper-2)}
.scsupply .sc-card-hd{background:var(--deep);color:#fff;text-align:center;padding:8px;font-weight:800;font-size:13px;font-family:"Outfit"}
.scsupply .sc-card-body{padding:11px 8px 8px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:7px;flex:1;background:var(--paper)}
.scsupply .sc-card-body p{font-size:11px;color:var(--ink);margin:0;line-height:1.5;font-weight:600}
.scsupply .sc-card-body small{font-size:10px;color:var(--ink-3);display:block}
/* 文章とイラストを1つのまとまりとして上下中央に。列の高さに合わせて
   margin-top:auto で底に押し付けると、間に大きな空白ができるため。 */
.scsupply .sc-card-body{justify-content:center}
.scsupply .sc-art{width:88%;max-width:110px;height:auto;margin-top:10px;display:block}
@media(max-width:760px){
  .scsupply{grid-template-columns:1fr;gap:14px 0}
  .scsupply .scarr{padding:0;transform:rotate(90deg)}
}
/* r9 mode: enlarge content to fill the 16:9 slide nicely (target ~90% fill) */
/* scsupply-fig (Figure A) */
.scsupply-fig .scsupply{font-size:14px;margin-top:0}
.scsupply-fig .sccol-hd{font-size:19px;padding:0 4px 16px}
.scsupply-fig .sccol-sub{padding:11px;font-size:15px}
.scsupply-fig .scnlist li{padding:9px 8px 9px 34px;font-size:13.5px}
.scsupply-fig .scnlist li:before{width:22px;height:22px;font-size:11.5px;left:7px}
.scsupply-fig .scnlist{margin-bottom:18px}
.scsupply-fig .scnote{padding:14px 6px;font-size:13.5px;line-height:1.55}
.scsupply-fig .sc-card-hd{padding:11px;font-size:14.5px}
.scsupply-fig .sc-card-body{padding:14px 5px 11px;gap:9px}
.scsupply-fig .sc-card-body p{font-size:12.5px;line-height:1.6}
.scsupply-fig .sc-card-body small{font-size:11px}
.scsupply-fig .sc-art{max-width:125px}
.scsupply-fig .scarr svg{width:42px;height:62px}

/* steptable (Figure B) in r9 */
.htmlfig.r9 .steptable{font-size:14.5px}
.htmlfig.r9 .sthead{margin-bottom:14px}
.htmlfig.r9 .sthead span{padding:14px;font-size:15px}
.htmlfig.r9 .strow{margin-bottom:14px}
.htmlfig.r9 .stbadge{font-size:15px;padding:14px 4px;gap:5px}
.htmlfig.r9 .stbadge .stair{width:54px}
.htmlfig.r9 .stcell{padding:16px 20px}
.htmlfig.r9 .stcell b{font-size:15px}
.htmlfig.r9 .stcell p{font-size:13.5px;margin-top:6px;line-height:1.65}

/* formfig — "活動量 × 排出原単位" enlarged to fill its 16:9 slide */
.formfig .formula{gap:32px;margin:0;align-items:stretch}
.formfig .fpanel{padding:26px 32px 28px;border-radius:18px;justify-content:center}
.formfig .fpanel .hd{font-size:24px;gap:9px;margin-bottom:18px}
.formfig .fpanel .hd .ic{width:26px;height:26px;stroke:currentColor}
.formfig .fpanel .fcols{gap:32px}
.formfig .fpanel .sub{font-size:15px;margin-bottom:14px;padding-bottom:8px}
.formfig .fpanel p{font-size:14.5px;line-height:1.95}
.formfig .ftick{gap:14px}
/* 左paddingは .ftick li:before（左8px・幅11px）の逃げを含める。ショートハンドで
   .ftick li{padding-left:24px} を上書きしてしまうため、ここで明示する。 */
.formfig .ftick li{font-size:14.5px;padding:14px 16px 14px 30px;line-height:1.6}
.formfig .formula .op{font-size:56px}
.formfig .figcap{font-size:12px;margin-top:14px;text-align:right;color:var(--ink-3)}
/* 式の結果「= CO₂排出量」。パネルと同じ行に置く */
.formfig .result-pill{display:inline-flex;align-items:center;gap:8px;color:var(--g-d);font-weight:900;font-size:19px}
.formfig .result-pill .ic{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2}
/* ---- scope: アイコン追加・図内余白の調整 ---- */
/* cattag にカテゴリアイコンを表示（上流＝輸送／自社＝工場／下流＝リサイクル） */
.cattag{display:flex;align-items:center;justify-content:center;gap:9px;padding:10px 12px;font-size:13.5px}
.cattag .ic{width:22px;height:22px;stroke:#fff;fill:none;stroke-width:2;flex:0 0 auto}
/* lg/bare の図ではさらに大きく */
.htmlfig.lg .cattag .ic,.htmlfig.bare .cattag .ic{width:26px;height:26px}
/* Scope1/Scope2 のアイコンも目立たせる */
.htmlfig.lg .scopebox .sb-h .ic,.htmlfig.bare .scopebox .sb-h .ic{width:28px;height:28px;stroke-width:2.2}
.htmlfig.lg .scopebox .sb-h,.htmlfig.bare .scopebox .sb-h{gap:10px;font-size:15.5px}
/* 番号バッジ：白抜き丸→緑塗りつぶしの白文字に。サイズも上げて視認性UP */
.htmlfig.lg .catlist li,.htmlfig.bare .catlist li{padding:7px 4px 7px 30px;font-size:12.5px}
.htmlfig.lg .catlist li:before,.htmlfig.bare .catlist li:before{
  width:21px;height:21px;background:var(--g);border:0;color:#fff;font-size:11px;top:7px;left:2px;
  box-shadow:0 2px 6px -2px rgba(20,80,60,.5)
}
/* 中央列の番号は teal で色分け（自社の枠と区別） */
.htmlfig.lg .catcol.mid .catlist li:before,.htmlfig.bare .catcol.mid .catlist li:before{background:var(--deep)}
/* 中央列（Scope1/Scope2）が縦に間延びしないよう、2枠で高さを均等に埋める */
.htmlfig .svcgrid .catcol.mid{justify-content:flex-start;gap:9px}
.htmlfig .svcgrid .catcol.mid .scopebox{margin-top:0;flex:1 1 0;display:flex;flex-direction:column;justify-content:center}
.htmlfig .svcgrid .catcol.mid>:last-child{margin-top:0}
/* formula パネル内の死角を減らす（縦中央寄せ） */
.fpanel{display:flex;flex-direction:column}
.fpanel .hd{flex:0 0 auto;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:6px}
.fpanel .hd .ic{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:2}
.fpanel .fcols{flex:1 1 auto}
.fpanel .fcols>div{display:flex;flex-direction:column;justify-content:flex-start}
/* 見出し（.sub）は左右で高さを揃えたいので上端固定のまま、本文だけ残りの空間の
   中央に置く。例のリストより本文が短く、下に大きな空白ができるのを防ぐ。 */
.fpanel .fcols>div>p{margin-block:auto}
/* fitc 図のみ：文字を1px縮小＋ボックスの高さを詰める */
.htmlfig.fitc .fpanel .hd{font-size:13px}
.htmlfig.fitc .fpanel .sub{font-size:11px}
.htmlfig.fitc .fpanel p,.htmlfig.fitc .ftick li{font-size:11px}
.htmlfig.fitc .ftick{gap:5px}
.htmlfig.fitc .ftick li{padding:4px 7px}
.htmlfig.fitc .fpanel{padding-top:30px;padding-bottom:14px}
/* 排出原単位/活動量の例リストに緑チェックを付与 */
.ftick li{position:relative;padding-left:24px;text-align:left;word-break:auto-phrase}
.ftick li:before{content:"";position:absolute;left:8px;top:50%;width:11px;height:11px;margin-top:-5px;background:var(--g);-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M5 12.5l4 4L19 7' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/></svg>") center/contain no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M5 12.5l4 4L19 7' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/></svg>") center/contain no-repeat}

/* charts: donut / bar-pair / mini-bars / stair */
.chartrow{display:grid;grid-template-columns:auto 1fr;gap:26px;align-items:center}
.donut{--sz:168px;width:var(--sz);height:var(--sz);border-radius:50%;position:relative;margin:auto;flex:0 0 auto}
.donut:after{content:"";position:absolute;inset:27%;background:#fff;border-radius:50%}
.donut .ctr{position:absolute;inset:0;display:grid;place-content:center;text-align:center;z-index:1}
.donut .ctr b{font-family:"Outfit";font-weight:800;font-size:21px;line-height:1.1}
.donut .ctr span{font-size:10px;color:var(--ink-3)}
.legend{display:flex;flex-direction:column;gap:7px;font-size:12px}
.legend .k{display:flex;align-items:center;gap:8px;color:var(--ink-2)}
.legend .sw{width:12px;height:12px;border-radius:3px;flex:0 0 auto}
.legend b{font-family:"Outfit";margin-left:auto;font-weight:700;color:var(--ink)}
@media(max-width:560px){.chartrow{grid-template-columns:1fr}}
.barpair{display:flex;align-items:flex-end;gap:34px;justify-content:center;height:230px;padding-top:30px}
.barpair .b{width:92px;background:var(--grad);border-radius:8px 8px 0 0;position:relative}
.barpair .b.t{background:linear-gradient(120deg,var(--teal-d),var(--teal))}
.barpair .b .v{position:absolute;top:-26px;left:0;right:0;text-align:center;font-family:"Outfit";font-weight:800;font-size:15px}
.barpair .b .lab{position:absolute;bottom:-32px;left:0;right:0;text-align:center;font-size:12px;color:var(--ink-2);line-height:1.3}
.barpair .ar{align-self:center;color:var(--g);font-weight:800;font-size:26px;padding-bottom:30px}
.minibars{display:flex;align-items:flex-end;gap:13px;height:170px;border-bottom:1px solid var(--line)}
.minibars .mo{flex:1;display:flex;align-items:flex-end;gap:3px;height:100%}
.minibars .b{flex:1;background:#c6cdc9;border-radius:3px 3px 0 0;min-height:2px}
.minibars .b.t{background:var(--g)}
.mblabs{display:flex;gap:5px;margin-top:6px}
.mblabs span{flex:1;text-align:center;font-size:9.5px;color:var(--ink-3)}
.stair{display:flex;align-items:flex-end;gap:8px;height:210px}
.stair .st{flex:1;border-radius:8px 8px 0 0;color:#fff;font-weight:800;font-size:13px;display:flex;align-items:flex-start;justify-content:center;padding-top:10px;background:var(--grad)}

/* icon rows + base icon */
.ic{width:28px;height:28px;display:inline-block;stroke:var(--g);stroke-width:1.7;fill:none;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}
.iconrow{display:grid;grid-template-columns:repeat(3,1fr);gap:18px 14px;text-align:center;margin-top:4px}
.iconrow .it{display:flex;flex-direction:column;gap:8px;align-items:center;font-size:12px;font-weight:700;color:var(--ink-2);line-height:1.4}
.icpod{width:60px;height:60px;border-radius:50%;background:var(--paper);border:1px solid var(--line);display:grid;place-items:center}
.icpod.grad{background:var(--grad);border:0}.icpod.grad .ic{stroke:#fff}
@media(max-width:560px){.iconrow{grid-template-columns:repeat(2,1fr)}}

/* EMS overview — Japan map + 3 cards */
.emsmap{padding:6px 0 0}
.emsmap-top{display:grid;grid-template-columns:minmax(180px,1fr) 1.4fr;gap:18px;align-items:center;margin-bottom:8px}
.emsmap-cap{color:#e8453c;font-weight:800;font-size:18px;line-height:1.5}
.emsmap-cap span{display:block}
.emsmap-jp{width:100%;max-width:380px;height:auto;justify-self:center}
.emsmap-pin use{transform-box:fill-box}
.emsmap-arrows{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;margin:4px auto 14px;max-width:88%}
.emsmap-arrows span{display:block;width:24px;height:36px;justify-self:center;background:#9adfe8;clip-path:polygon(35% 0,65% 0,65% 60%,100% 60%,50% 100%,0 60%,35% 60%)}
.emsmap-cards .svcbox{border-radius:14px}
.emsmap-cards .svcbox>h5{background:#cfeef2;color:#1a4a52;text-align:center;font-size:13px;padding:9px 10px;border-radius:11px 11px 0 0}
.emsmap-cards .svcbox.teal>h5{background:#cfeef2;color:#1a4a52}
.emsmap-cards .svcbox.deep>h5{background:#cfeef2;color:#1a4a52}
.emscard{padding:14px 14px 18px;display:flex;flex-direction:column;align-items:center;gap:10px;flex:1}
.emscloud{width:100%;height:auto}
.emsdash{stroke:#3a8fa0;stroke-width:1.2;stroke-dasharray:3 3;fill:none}
.emsmeasure{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 14px;width:100%;margin-top:4px}
.emsmeasure .em{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:11px;font-weight:700;color:var(--ink-2)}
.emsmeasure .em .ic{width:34px;height:34px;stroke:var(--c);fill:none;stroke-width:1.8}
.emsctrl{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;width:100%;margin-bottom:6px}
.emsctrl .ec{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:11px;font-weight:700;color:var(--ink-2);text-align:center}
.emsctrl .ec .ic{width:34px;height:34px;stroke:var(--c);fill:none;stroke-width:1.8}
.emsctrl-sub{color:#3a8fa0;font-weight:800;font-size:13px;text-align:center;margin:6px 0 12px;border-bottom:1px dashed #9adfe8;padding-bottom:8px;width:100%}
.emsctrl-lbl{color:var(--ink-2);font-size:11px;text-align:center;margin:0 0 6px}
.emsequip{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;width:100%}
.emsequip .eq{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10.5px;color:var(--ink-2);text-align:center;line-height:1.25}
.emsequip .eq .ic{width:30px;height:30px;stroke:#7a8a90;fill:none;stroke-width:1.6}
@media(max-width:820px){
  .emsmap-top{grid-template-columns:1fr}
  .emsmap-cap{text-align:center;font-size:16px}
  .emsmap-arrows{max-width:96%}
}

/* diagram figures span full width below their intro prose (legibility) */
.twocol.diagram{display:block}
.twocol.diagram .prose{max-width:62em}
.twocol.diagram .htmlfig{margin-top:16px}
/* 図の下に置く補足文は、図の左右幅に揃える（.htmlfig.mid は max-width:1040px で中央寄せ） */
.twocol.diagram>.rv{max-width:1040px;margin-inline:auto}

/* ============================================================
   Mobile robustness + tighter type for figure components
   (appended; overrides earlier component rules)
   ============================================================ */
/* (1) never force the page wider than the viewport — let wide children
       (tables) scroll inside their own wrapper instead of pushing the page */
.tablewrap{min-width:0;max-width:100%}
.htmlfig{max-width:100%;overflow:visible}
.svcgrid>*,.twocol>*,.chartrow>*,.formula>*,.strow>*,.steptable,.svcbox{min-width:0}
.gantt{--lab:200px;min-width:calc(var(--lab) + var(--n) * 60px)}

/* (2) slightly smaller type across figure components */
.dtable{font-size:13px}
.dtable.compact th,.dtable.compact td{font-size:11.5px;padding:7px 9px}
.svcbox>h5{font-size:13px}
.svcbox>ul>li{font-size:12px}
.gantt{font-size:12px}
.gantt .grow .lab{font-size:11.5px}
.catlist li{font-size:11px}
.stcell b{font-size:12.5px}
.stcell p{font-size:11.5px}
.legend{font-size:11.5px}
.iconrow .it{font-size:11.5px}

/* (3) phones (≤600px): tighten padding, shrink type, force grids to stack /
       few columns (!important beats agents' inline grid-template overrides) */
@media(max-width:600px){
  .htmlfig{padding:16px 13px}
  .figbar{font-size:13.5px;padding:10px 12px}
  .figtitle{font-size:14.5px}
  .svcgrid,.svcgrid.three{grid-template-columns:1fr!important}
  .chartrow{grid-template-columns:1fr!important;justify-items:start;gap:18px}
  .formula{grid-template-columns:1fr!important;gap:36px}
  .formula .op{font-size:26px}
  .formula .result-cell{justify-self:center}
  .iconrow{grid-template-columns:repeat(3,1fr)!important;gap:14px 8px}
  .icpod{width:52px;height:52px}
  .iconrow .it{font-size:10.5px}
  .dtable.compact th,.dtable.compact td{font-size:11px;padding:6px 7px}
  .stepband .s{flex-basis:44%;font-size:12px;padding-left:20px}
  .stepband .s:first-child{padding-left:14px}
  .barpair{gap:20px}.barpair .b{width:70px}
  .gantt{--lab:150px;font-size:11px}
  .gantt .grow .lab{font-size:10.5px}
}
@media(max-width:430px){
  .iconrow{grid-template-columns:repeat(2,1fr)!important}
  .svcgrid,.svcgrid.three{gap:14px}
}
/* Keep the original 2-column balance of the data figures (do NOT collapse).
   Instead, let dense tables inside a 2-col .svcgrid shrink to fit their half-
   column with smaller type, so they never overflow/scroll and the composition
   matches the source slide. Full-width standalone tables (comparison matrices
   etc., not inside .svcgrid) keep their min-width and scroll as before. */
.svcgrid .dtable{min-width:0}
/* below ~760px a 2-col data table is too tight — give it the full width instead */
@media(max-width:760px){
  .svcgrid:has(.tablewrap){grid-template-columns:1fr!important}
}

/* ── "Originally an image" figures (.htmlfig): render the body text at about
   half size, to match the compact look of the source slides (per request).
   Keeps the 2-column composition; only the heading bar stays readable. ── */
.htmlfig .dtable{font-size:10px}
.htmlfig .dtable th,.htmlfig .dtable td{font-size:10px;padding:3px 6px;line-height:1.4}
.htmlfig .dtable thead th{font-size:10px;white-space:nowrap;letter-spacing:-.01em}
.htmlfig .dtable td small,.htmlfig .dtable th small{font-size:8.5px}
/* 2-column data tables (svcgrid 半幅) */
.htmlfig .svcgrid .dtable,.htmlfig .svcgrid .dtable th,.htmlfig .svcgrid .dtable td,.htmlfig .svcgrid .dtable thead th{font-size:8px;line-height:1.2}
.htmlfig .svcgrid .dtable th,.htmlfig .svcgrid .dtable td{padding:0 6px}
.htmlfig .svcgrid .dtable td small,.htmlfig .svcgrid .dtable th small{font-size:7px}
/* roomy: この表だけ +2px・行高を広げる（ヒアリング事項） */
.htmlfig .svcgrid .dtable.roomy,
.htmlfig .svcgrid .dtable.roomy th,
.htmlfig .svcgrid .dtable.roomy td,
.htmlfig .svcgrid .dtable.roomy thead th{font-size:8.5px;line-height:1.3}
.htmlfig .svcgrid .dtable.roomy th,
.htmlfig .svcgrid .dtable.roomy td{padding:1.5px 7px}
/* roomy 表と並ぶ右カラムのアイコン群を、表と同じ縦範囲に均等配置して上下を揃える */
.htmlfig:has(.dtable.roomy) .svcgrid>div>.iconrow{margin-top:0;flex:1 1 auto;align-content:space-between}
/* svcgrid の左右カラムを同じ高さに揃える。
   提案書では各列の中身が上から詰めて並ぶので、最後の要素を下端へ押し下げない
   （押し下げると小見出しと表の間に大きな空白ができる） */
.htmlfig .svcgrid{align-items:stretch}
.htmlfig .svcgrid>div{display:flex;flex-direction:column}

/* summary table inside a half-column figure: bigger type, uniform tall rows */
.htmlfig .svcgrid .dtable.summary,
.htmlfig .svcgrid .dtable.summary th,
.htmlfig .svcgrid .dtable.summary td,
.htmlfig .svcgrid .dtable.summary thead th{font-size:10px;line-height:1.3}
.htmlfig .svcgrid .dtable.summary th,
.htmlfig .svcgrid .dtable.summary td{padding:9px 6px;height:38px;vertical-align:middle}
.htmlfig .svcgrid .dtable.summary thead th{padding:7px 6px;height:30px}
.htmlfig .svcgrid .dtable.summary td small,
.htmlfig .svcgrid .dtable.summary th small{font-size:8.5px;display:inline-block;margin-left:2px}
.htmlfig .svcbox>h5{font-size:8px}
.htmlfig .svcbox>ul>li{font-size:7.5px}
.htmlfig .gantt{font-size:9px;--lab:240px;border:1px solid var(--line);border-radius:8px;overflow:hidden}
/* 番号欄の実効幅 = width22 + margin-right8 = 30px。左padding(10)+30=40 を基準に
   ぶら下げ、1行目だけ text-indent:-30px で番号分を引き戻す。 */
.htmlfig .gantt .grow .lab{font-size:10px;padding:7px 10px 7px 40px;text-indent:-30px;border-right:1px solid var(--line)}
.htmlfig .gantt .grow .lab .num{width:22px;font-size:10px;text-align:center;border-right:1px solid var(--line);padding-right:6px;margin-right:8px}
.htmlfig .gantt .months div{font-size:9px;border-left-color:rgba(255,255,255,.7);border-left-width:1.5px}
.htmlfig .gantt .ghead>div:first-child{border-right:1.5px solid rgba(255,255,255,.7)}
.htmlfig .catlist li,.htmlfig .catsub,.htmlfig .catmore{font-size:7px}
.htmlfig .cattag{font-size:8px}
.htmlfig .scopebox .sb-h{font-size:8px}
.htmlfig .scopebox p{font-size:7px}
.htmlfig .scopebox small{font-size:6.5px}
.htmlfig .sthead span,.htmlfig .stbadge{font-size:8px}
.htmlfig .stcell b{font-size:8px}
.htmlfig .stcell p{font-size:7.5px}
.htmlfig .fpanel .hd{font-size:9px}
.htmlfig .fpanel .sub,.htmlfig .fpanel p,.htmlfig .ftick li{font-size:7px}
.htmlfig .legend{font-size:7.5px}
.htmlfig .donut .ctr b{font-size:13px}
.htmlfig .donut .ctr span,.htmlfig .donut .ctr small{font-size:6.5px}
.htmlfig .barpair .v{font-size:9px}
.htmlfig .barpair .lab{font-size:7.5px}
.htmlfig .stair .st{font-size:8px}
.htmlfig .iconrow .it{font-size:12px;line-height:1.4;gap:6px}
.htmlfig .iconrow .icpod{width:48px;height:48px}
.htmlfig .iconrow .icpod .ic{width:24px;height:24px}
.htmlfig .stepband .s{font-size:8px}
.htmlfig .stepband .s small{font-size:6.5px}
.htmlfig .vflow h5{font-size:8px}
.htmlfig .vflow p{font-size:7.5px}
.htmlfig .figcap,.htmlfig .fignote{font-size:10px}
/* headings kept legible (not halved) */
.htmlfig .figbar{font-size:18px;padding:14px 22px}
.htmlfig .figtitle{font-size:10px}

/* bare figures are not scaled — restore normal text sizes (same as .lg) */
.htmlfig.bare .dtable,
.htmlfig.bare .dtable th,
.htmlfig.bare .dtable td,
.htmlfig.bare .dtable thead th{font-size:13px}
.htmlfig.bare .dtable td small,.htmlfig.bare .dtable th small{font-size:11px}
.htmlfig.bare .figtitle{font-size:14px}
.htmlfig.bare .cattag{font-size:13px}
.htmlfig.bare .catsub{font-size:12px}
.htmlfig.bare .catlist li{font-size:12px}
.htmlfig.bare .catmore{font-size:12px}
.htmlfig.bare .scopebox .sb-h{font-size:14px}
.htmlfig.bare .scopebox p{font-size:12px}
.htmlfig.bare .scopebox small{font-size:11px}
.htmlfig.bare .stbadge{font-size:13px}
.htmlfig.bare .sthead span{font-size:13px}
.htmlfig.bare .stcell b{font-size:13px}
.htmlfig.bare .stcell p{font-size:12px}
.htmlfig.bare .fpanel .hd{font-size:14px}
.htmlfig.bare .fpanel .sub{font-size:12px}
.htmlfig.bare .fpanel p,.htmlfig.bare .ftick li{font-size:12px}
.htmlfig.bare .vflow h5{font-size:14px}
.htmlfig.bare .vflow p{font-size:12.5px}
.htmlfig.bare .iconrow .it{font-size:13px}
.htmlfig.bare .legend{font-size:13px}
.htmlfig.bare .barpair .v{font-size:14px}
.htmlfig.bare .barpair .lab{font-size:13px}
.htmlfig.bare .donut .ctr b{font-size:15px}
.htmlfig.bare .donut .ctr span{font-size:9px}
.htmlfig.bare .figcap,.htmlfig.lg .figcap{font-size:11.5px}
/* boxed bare — wrap a bare figure in a light card (paper bg + border).
   When combined with .r169 the card becomes a 16:9 slide-like canvas. */
.htmlfig.bare.boxed{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px 22px;position:relative}
.htmlfig.bare.boxed.r169{aspect-ratio:16/9;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;overflow:hidden;padding:0}
.htmlfig.bare.boxed>.figbar{color:var(--g);border-bottom:0;font-size:18px;padding:0;margin:0 auto 10px;border:0}

/* sitesdonut — 事業所別CO₂排出量 figure (matches the source slide: segmented
   donut with red highlight arc and side bubbles) */
.sitesdonut .sd-stage{position:relative;width:100%;max-width:520px;margin:0 auto;aspect-ratio:1.4/1}
.sitesdonut .sd-svg{display:block;width:60%;margin:0 auto}
.sitesdonut .sd-ctr{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;line-height:1.2}
.sitesdonut .sd-ctr b{font-family:"Outfit";font-weight:800;font-size:15px;color:var(--ink);display:block}
.sitesdonut .sd-ctr span{font-size:10px;color:var(--ink-3)}
.sitesdonut .sd-bub{position:absolute;background:#fff;border:1px solid var(--line);border-radius:14px 4px 14px 4px;padding:10px 14px;font-size:11px;line-height:1.5;max-width:170px;text-align:center;color:var(--ink-2);box-shadow:0 4px 10px rgba(0,0,0,.05)}
.sitesdonut .sd-bub b{display:block;color:var(--ink);font-weight:800;font-size:12px;margin-bottom:3px}
.sitesdonut .sd-bub-l{left:0;top:14px}
.sitesdonut .sd-bub-r{right:0;top:14px;border-color:#f2c8c8;background:#fff5f5}
.sitesdonut .sd-bub-r b{color:#c53030}
.sitesdonut .sd-emp{margin-top:16px;text-align:center;color:#c53030;font-weight:800;font-size:14px;letter-spacing:.02em}
@media(max-width:560px){
  .sitesdonut .sd-stage{aspect-ratio:1/1;max-width:380px}
  .sitesdonut .sd-svg{width:78%}
  .sitesdonut .sd-bub{position:static;max-width:none;margin:6px auto}
}

/* SVG-only figures that fill the 16:9 boxed frame */
.htmlfig.bare.boxed.r169>svg,
.htmlfig.bare.boxed.r169 .epie-svg,
.htmlfig.bare.boxed.r169 .redbar-svg{flex:1;width:100%;height:100%;display:block;max-height:100%;min-height:0}

/* ===== Consulting-style KPI figure (.ckpi) =====
   Two-pane layout: left = headline KPI + insight bullets, right = data viz.
   Used for データ分析のイメージ (SBT). */
.htmlfig.ckpi{padding:18px 22px}
.htmlfig.ckpi>.figbar{align-self:flex-start;text-align:left;margin:0 0 12px;font-size:13.5px;color:var(--g);letter-spacing:.06em;text-transform:uppercase}
.ckpi-grid{flex:1;display:grid;grid-template-columns:1.05fr 1fr;gap:18px;align-items:stretch;min-height:0}
.ckpi-left{display:flex;flex-direction:column;justify-content:center;border-right:1px solid var(--line);padding-right:18px}
.ckpi-right{display:flex;align-items:center;justify-content:center;min-width:0}
.ckpi-eyebrow{font-family:"Outfit","Noto Sans JP",sans-serif;font-weight:700;font-size:10px;letter-spacing:.16em;color:var(--teal-d);text-transform:uppercase;margin-bottom:6px}
.ckpi-headline{display:flex;align-items:baseline;gap:6px;margin-bottom:8px}
.ckpi-num{font-family:"Outfit",sans-serif;font-weight:800;font-size:46px;line-height:1;letter-spacing:-.02em;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.ckpi-num small{font-size:22px;font-weight:700;margin-left:1px}
.ckpi-eq{font-family:"Outfit";font-weight:800;font-size:22px;color:var(--ink-3)}
.ckpi-sub{font-size:11.5px;font-weight:700;color:var(--ink);line-height:1.55;margin-bottom:8px}
.ckpi-bullets{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.ckpi-bullets li{position:relative;padding-left:12px;font-size:10.5px;color:var(--ink-2);line-height:1.55}
.ckpi-bullets li:before{content:"";position:absolute;left:0;top:7px;width:5px;height:5px;background:var(--g);border-radius:2px}
.ckpi-stat{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:3px}
.ckpi-stat li{display:flex;align-items:center;gap:7px;font-size:10.5px;color:var(--ink-2)}
.ckpi-stat .sw{display:inline-block;width:8px;height:8px;border-radius:1px;flex:0 0 auto}
.ckpi-stat b{margin-left:auto;font-family:"Outfit";font-weight:700;font-size:11px;color:var(--ink)}

/* Right pane visuals */
.epiering{--sz:160px;width:var(--sz);height:var(--sz);border-radius:50%;position:relative}
.epiering:before{content:"";position:absolute;inset:30%;background:#fff;border-radius:50%}
.epiering-inner{position:absolute;inset:0;display:grid;place-content:center;text-align:center;z-index:1}
.epiering-inner b{font-family:"Outfit";font-weight:800;font-size:24px;color:var(--ink);line-height:1}
.epiering-inner span{font-size:7.5px;color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase;margin-top:2px}

/* Horizontal pareto bar */
.paretobar{width:100%;display:flex;flex-direction:column;gap:8px}
.pb-row{display:grid;grid-template-columns:78px 1fr;align-items:center;gap:8px}
.pb-lab{font-size:10.5px;color:var(--ink-2);font-weight:700;text-align:right}
.pb-fill{position:relative;height:24px;border-radius:3px;display:flex;align-items:center;justify-content:flex-end;padding-right:8px;color:#fff;font-family:"Outfit";font-weight:800;font-size:11px}
.pb-row.pb-major .pb-fill{background:var(--grad)}
.pb-row.pb-minor .pb-fill{background:#c8d0cc;color:var(--ink-2)}
.pb-tick{display:grid;grid-template-columns:78px 1fr;gap:8px;margin-top:2px;font-size:8.5px;color:var(--ink-3);font-family:"Outfit"}
.pb-tick>span:first-child{visibility:hidden}
.pb-tick>span:not(:first-child){display:inline-block}
.pb-tick:after{display:none}
.pb-tick>span{position:relative}
.paretobar+.pb-note{font-size:8.5px;color:var(--ink-3);margin-top:6px;line-height:1.4}

@media(max-width:680px){
  .ckpi-grid{grid-template-columns:1fr;gap:14px}
  .ckpi-left{border-right:0;border-bottom:1px solid var(--line);padding-right:0;padding-bottom:14px}
}
.htmlfig.bare .callout>b{font-size:13px}
.htmlfig.bare .callout .bullets li{font-size:13px;line-height:1.65}
/* svcbox cards and figure title text inside bare figures (readable sizes) */
.htmlfig.bare .figtitle{font-size:16px;line-height:1.5}
.htmlfig.bare .fignote{font-size:11px;line-height:1.7;margin-bottom:12px}
.htmlfig.bare .svcbox>h5{font-size:14px;padding:10px 14px}
.htmlfig.bare .svcbox>ul{padding:14px;gap:10px}
.htmlfig.bare .svcbox>ul>li{font-size:13px;line-height:1.65;padding:11px 13px}

/* SBT "flow → effect" 3-step row used on the SBT overview figure */
.sbtflow{display:flex;align-items:stretch;gap:6px;margin:6px 0 24px}
.sbtflow-step{flex:1;border-radius:10px 3px 10px 3px;color:#fff;font-weight:800;font-size:14px;line-height:1.4;text-align:center;padding:18px 14px;display:flex;align-items:center;justify-content:center}
.sbtflow-step.s1{background:#239a63}
.sbtflow-step.s2{background:#28a3a0}
.sbtflow-step.s3{background:#2aa6bd}
.sbtflow-arrow{align-self:center;color:var(--ink-3);font-weight:800;font-size:18px;flex:0 0 auto}
@media(max-width:680px){
  .sbtflow{flex-direction:column}
  .sbtflow-arrow{transform:rotate(90deg);align-self:center}
}

/* .htmlfig.lg — same scheme for non-bare figures that should keep larger text */
.htmlfig.lg .dtable,
.htmlfig.lg .dtable th,
.htmlfig.lg .dtable td,
.htmlfig.lg .dtable thead th{font-size:13px}
.htmlfig.lg .dtable td small,.htmlfig.lg .dtable th small{font-size:11px}
.htmlfig.lg .figtitle{font-size:14px}
.htmlfig.lg .cattag{font-size:13px}
.htmlfig.lg .catsub{font-size:12px}
.htmlfig.lg .catlist li{font-size:12px}
.htmlfig.lg .catmore{font-size:12px}
.htmlfig.lg .scopebox .sb-h{font-size:14px}
.htmlfig.lg .scopebox p{font-size:12px}
.htmlfig.lg .scopebox small{font-size:11px}
.htmlfig.lg .stbadge{font-size:13px}
.htmlfig.lg .sthead span{font-size:13px}
.htmlfig.lg .stcell b{font-size:13px}
.htmlfig.lg .stcell p{font-size:12px}
.htmlfig.lg .fpanel .hd{font-size:14px}
.htmlfig.lg.formfig .fpanel .hd{font-size:24px}
.htmlfig.lg .fpanel .sub{font-size:12px}
.htmlfig.lg .fpanel p,.htmlfig.lg .ftick li{font-size:12px}
.htmlfig.lg .gantt{font-size:13px}
.htmlfig.lg .gantt .grow .lab{font-size:13px}
.htmlfig.lg .gantt .grow .lab .num{font-size:13px}
.htmlfig.lg .gantt .months div{font-size:12px}

/* donut with its value labels flanking the ring (matches the source slide layout) */
.donutfig{display:flex;align-items:center;justify-content:center;gap:12px;margin:10px 0 4px}
/* .donut 単体は margin:auto で中央寄せだが、flex内では余白を全て吸って
   ラベルを両端へ押し出してしまうため打ち消す（gap:12pxで隣接させる） */
.donutfig .donut{flex:0 0 auto;margin:0}
.htmlfig .svcgrid .donutfig{margin:4px 0 2px}
.htmlfig .svcgrid .donutfig .donut{--sz:120px}
.donutfig .dlbl{line-height:1.35;min-width:44px}
.donutfig .dlbl.l{text-align:right}
.donutfig .dlbl.r{text-align:left}
.donutfig .dlbl .nm{font-size:10px;font-weight:700;color:var(--ink-3)}
.donutfig .dlbl b{display:block;font-family:"Outfit";font-weight:800;font-size:15px;margin-top:1px}
.donutfig .dlbl.l b{color:var(--teal-d)}
.donutfig .dlbl.r b{color:var(--g-d)}
/* 提案書の右カラム（必要データ／留意点／調査事項）。
   図の右に細長い3枠を縦に並べ、緑のラベルタブを枠の上端に重ねる */
/* 図（左）と補足枠（右）が別々のカードに見えていたため、.steplayout 自体を1枚のカードにし、
   内側の figure と .ab から独立した枠を外す。角丸は他カードに揃えた通常の 12px。 */
.steplayout{display:grid;grid-template-columns:1fr 280px;gap:26px;align-items:stretch;margin-top:16px;
  background:#fff;border:1px solid var(--line);border-radius:12px;
  padding:clamp(14px,2.4vw,26px) clamp(13px,2.7vw,26px)}
/* min-width:0 がないと図中の表の最小幅がグリッドの外へ伝播し、スマホで画面全体が広がる。
   また .htmlfig.mid の margin-inline:auto はグリッド内で stretch を無効化し、
   図が中身の最小幅まで膨らむため打ち消す。 */
.steplayout>*{min-width:0}
.steplayout>.htmlfig{margin:0!important;width:100%;max-width:none;align-self:stretch;
  border:0;border-radius:0;background:transparent;padding:0;box-shadow:none}
/* 見出し帯はカード内の一要素になるので通常の角丸に。カード側に余白ができた分
   .fitbox の左右パディングを落として図の実効幅を保つ。 */
.steplayout>.htmlfig>.figbar,.steplayout>.htmlfig.r169>.figbar{border-radius:8px}
.steplayout>.htmlfig.r169>.fitbox{padding-left:0;padding-right:0}
.stepaside{display:flex;flex-direction:column;gap:26px;border-left:1px solid var(--line);padding-left:26px}
.stepaside .ab{position:relative;flex:1 1 0;border:1px solid var(--line);border-radius:8px;background:var(--paper);padding:24px 16px 16px}
.stepaside .ab>b{position:absolute;top:-12px;left:12px;background:var(--g);color:#fff;font-size:11.5px;font-weight:800;padding:4px 16px;border-radius:4px;letter-spacing:.06em}
.stepaside .ab ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.stepaside .ab li{position:relative;padding-left:22px;font-size:12px;color:var(--ink-2);line-height:1.7;word-break:auto-phrase}
.stepaside .ab li:before{content:"";position:absolute;left:0;top:4px;width:14px;height:14px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Ccircle cx='10' cy='10' r='10' fill='%232aa6bd'/%3E%3Cpath d='M5.6 10.4l2.9 2.9 5.9-6.3' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
@media(max-width:960px){
  .steplayout{grid-template-columns:1fr;gap:34px}
  .stepaside{flex-direction:row;flex-wrap:wrap;gap:26px 18px;
    border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:30px}
  .stepaside .ab{flex:1 1 240px}
}

/* 提案書スライドに合わせた列見出し（中央揃え・細い下線）と ※イメージ注記 */
.htmlfig .figtitle.colhd{font-size:14px;text-align:center;font-weight:800;
  border-bottom:1px solid var(--line);padding-bottom:9px;margin:0 0 6px}
.htmlfig .asnote{font-size:10.5px;color:var(--ink-3);text-align:left;margin:0 0 6px;font-weight:700}
/* 図中の小見出しは提案書に合わせて中央揃え */
.htmlfig .figtitle{text-align:center}
.htmlfig .figtitle.asnote-l{color:var(--ink-2);font-weight:700}
/* 提案書のアイコンは枠なしの線画。丸い下地を外して図と同じトーンにする */
.htmlfig .iconrow .icpod{background:none;border:0;width:auto;height:auto}
.htmlfig .iconrow .icpod .ic{width:40px;height:40px}
.htmlfig .iconrow{gap:22px 14px}
.htmlfig .iconrow .it{gap:6px;font-size:12px;font-weight:700;color:var(--ink)}
/* ドーナツを図の主役にする（提案書では列幅の約2/3を占める）。
   .htmlfig .svcgrid .donutfig .donut{--sz:120px} より詳細度を上げる必要がある */
.htmlfig.analysisfig .svcgrid .donutfig .donut{--sz:176px}
.analysisfig .donutfig{gap:10px;margin:4px 0 2px}
.analysisfig .donutfig .dlbl{min-width:0}
.analysisfig .dlegend{justify-content:flex-end;gap:14px;margin:2px 0 0}

/* 省エネ診断の進め方（提案書スライドの構成に合わせる）
   キーメッセージ → 緑帯「省エネ診断」 → Step1〜3の矢印 → アイコン＋番号付き説明 */
.auditflow .afhead{text-align:center;font-size:19px;font-weight:800;color:var(--teal-d);
  line-height:1.7;margin:0 0 22px;word-break:auto-phrase}
.auditflow .afband{background:var(--grad);color:#fff;text-align:center;font-weight:800;
  font-size:15px;padding:11px;border-radius:6px;margin-bottom:6px;letter-spacing:.04em}
.auditflow .stepband{margin-bottom:26px}
.auditflow .stepband .s{background:var(--g);text-align:center;font-size:14px;padding:13px 14px 13px 30px}
.auditflow .stepband .s:first-child{padding-left:20px}
.auditflow .stepband .s small{margin-bottom:4px;font-size:11px;font-family:"Outfit";letter-spacing:.08em}
/* Step ラベルを直下の見出し（データ分析 等）と同じ書体・大きさに揃える */
.htmlfig.bare.auditflow .stepband .s small{font-family:inherit;font-size:inherit;font-weight:inherit;letter-spacing:normal;opacity:1;margin:0 .45em 0 0}
.auditflow .afcols{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.auditflow .afc{padding:0 26px;display:flex;flex-direction:column;align-items:center;
  border-left:1px dashed var(--line)}
.auditflow .afc:first-child{border-left:0}
.auditflow .afc .icpod{width:74px;height:74px;margin-bottom:16px}
.auditflow .afc .icpod .ic{width:36px;height:36px}
.auditflow .afc ol{margin:0;padding-left:1.35em;display:flex;flex-direction:column;gap:12px}
.auditflow .afc li{font-size:12.5px;color:var(--ink-2);line-height:1.75;word-break:auto-phrase}
@media(max-width:767px){
  .auditflow .afhead{font-size:16px}
  .auditflow .afcols{grid-template-columns:1fr;gap:24px}
  .auditflow .afc{padding:0;border-left:0}
}

/* 強みカードのピクトグラム（icooon-mono素材・単色塗り） */
.svcbox:has(> .sicon)>h3{order:-1}
.svcbox .sicon{display:grid;place-items:center;padding:20px 0 0}
.svcbox .sicon svg{width:54px;height:54px;fill:var(--g)}
/* スプライト（線画）アイコンは塗りではなく線で描くため個別指定 */
.svcbox .sicon svg.spr{fill:none;stroke:var(--g);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
/* サービスの考え方: 3つの依頼パターンカード */
/* 3つの依頼パターン: カード幅を他セクションと揃えるため prose の字幅制限から出す */
.waycards{margin-top:26px;max-width:none;width:100%}


/* 採用ページ: 社員アンケートの横棒グラフ */
.survey{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.survey .sv{background:#fff;border:1px solid var(--line);border-radius:var(--brand-r);padding:22px 24px 20px}
.survey .sv h3{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:800;color:var(--ink);margin:0 0 16px}
.survey .bars{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px}
.survey .bars li{display:grid;grid-template-columns:1fr 96px 50px;align-items:center;gap:10px}
.survey .bl{font-size:15px;color:var(--ink-2);line-height:1.4}
.survey .bt{height:8px;border-radius:4px;background:var(--paper);overflow:hidden}
.survey .bt i{display:block;height:100%;width:var(--p);background:var(--grad);border-radius:4px}
.survey .bars b{font-family:"Outfit";font-weight:800;font-size:17px;color:var(--g-d);text-align:right}
.svfacts{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:24px}
.svfacts .f{background:linear-gradient(135deg,#177a53,#2fae74);border:0;border-radius:14px;padding:22px 18px;text-align:center}
.svfacts .f b{display:block;font-family:"Outfit";font-weight:800;font-size:32px;line-height:1;color:#fff}
.svfacts .f b small{font-size:15px;margin-left:1px}
.svfacts .f span{display:block;margin-top:8px;font-size:12px;font-weight:700;color:#eaf6ef;line-height:1.5}
/* 求める人物像（アンケート「どんな人と働きたいですか？」の集計） */
.whowant{margin-top:44px;background:var(--paper);border:1px solid var(--line);
  border-radius:var(--brand-r);padding:34px 36px}
.whowant h3{font-size:20px;font-weight:800;color:var(--ink);margin:0 0 10px;word-break:auto-phrase}
.whowant .lead{font-size:14px;color:var(--ink-2);line-height:1.9;margin:0 0 22px;max-width:none;word-break:normal}
.whowant .wtags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:12px}
.whowant .wtags li{display:flex;align-items:baseline;gap:9px;background:#fff;
  border:1px solid #cfe3d8;border-radius:8px;padding:12px 18px;font-size:14px;font-weight:700;color:var(--ink)}
.whowant .wtags b{font-family:"Outfit";font-weight:800;font-size:21px;color:var(--g-d);line-height:1}
.whowant .wtags b small{font-size:12px;margin-left:1px}
.whowant .wnote{font-size:12.5px;color:var(--ink-3);line-height:1.85;margin:20px 0 0;word-break:auto-phrase}
@media(max-width:860px){.survey{grid-template-columns:1fr}.svfacts{grid-template-columns:repeat(2,1fr)}
  .whowant{padding:26px 22px}.whowant .wtags li{padding:10px 14px;font-size:13px}}
@media(max-width:480px){.survey .bars li{grid-template-columns:1fr 64px 38px}}

/* デマンド低減のビフォー／アフター表示 */
.demandrow{display:flex;align-items:center;justify-content:center;gap:14px;margin:6px 0}
.demandrow .dbox{flex:1 1 0;text-align:center;background:var(--paper);border:1px solid var(--line);border-radius:var(--brand-r-sm);padding:14px 10px}
.demandrow .dbox.g{background:#eaf3ee;border-color:#cfe3d8}
.demandrow .dbox .nm{display:block;font-size:11px;font-weight:700;color:var(--ink-3);margin-bottom:4px}
.demandrow .dbox b{font-family:"Outfit";font-weight:800;font-size:30px;line-height:1;color:var(--ink)}
.demandrow .dbox.g b{color:var(--g-d)}
.demandrow .dbox b small{font-size:13px;margin-left:2px}
.demandrow .darr{flex:0 0 auto;font-size:24px;font-weight:800;color:var(--g)}
.dlegend{display:flex;justify-content:center;gap:16px;font-size:10px;font-weight:700;color:var(--ink-2);margin-bottom:2px}
.dlegend .k{display:flex;align-items:center;gap:4px}
.dlegend .k i{width:9px;height:9px;border-radius:50%;display:inline-block}

/* tighter line/row spacing inside figures; the ポイント callout */
/* 図中の「ポイント」は提案書スライドに合わせ、緑のラベルタブ＋点線枠にする */
.htmlfig .callout{position:relative;background:transparent;border:1.5px dashed var(--g);
  border-left-width:1.5px;border-radius:8px;padding:22px 18px 14px;line-height:1.6;margin-top:26px}
.htmlfig .callout>b:first-child{position:absolute;top:-13px;left:16px;background:var(--g);color:#fff;
  font-size:12px;font-weight:800;padding:5px 16px;border-radius:5px;letter-spacing:.06em}
.htmlfig .callout .bullets{margin-top:0}
/* 提案書では枠が本文幅に収まっているので、図の全幅には広げない */
.htmlfig .callout{max-width:76%;margin-inline:0 auto}
.htmlfig .callout>b{font-size:10px}
.htmlfig .callout .bullets{margin-top:4px!important}
.htmlfig .callout .bullets li{padding:1px 0 1px 16px;line-height:1.45;font-size:10px;margin:0}
.htmlfig .callout .bullets li:before{top:6px;width:7px;height:7px}
/* downward flow arrow (between a figure's sub-sections) */
.flowdown{display:flex;justify-content:center;margin:2px 0 6px}
.flowdown:before{content:"";width:0;height:0;border-left:10px solid transparent;border-right:10px solid transparent;border-top:12px solid var(--g)}
/* figure intro prose: tight leading (minor descriptive text) */
.htmlfig .prose p{font-size:13px;line-height:1.5;margin-bottom:4px}

/* "bare" htmlfig: rendered without the 16:9 frame, at normal text size.
   Used for the very first step-overview figure (STEP1→4 banner) so it reads
   as a normal in-flow component instead of a compressed slide. */
.htmlfig.bare{aspect-ratio:auto;background:transparent;border:0;padding:0;overflow:visible}
/* bare 内の figbar は派手な緑帯ではなく、中央寄せの上品な見出しに */
.htmlfig.bare>.figbar{position:static;background:transparent;color:var(--ink);text-align:center;font-weight:900;font-size:17px;line-height:1.5;padding:0 0 10px;margin:0 auto 14px;border-radius:0;border-bottom:2px solid var(--g);display:block;width:fit-content;max-width:100%;letter-spacing:.02em}
.htmlfig.bare .barpair{padding-top:14px;height:140px}
.htmlfig.bare>.figsub{text-align:center;font-weight:800;color:var(--ink);font-size:17px;line-height:1.4;margin:-6px 0 18px}
.htmlfig.bare>.fitbox{position:static;transform:none!important;width:auto!important;left:auto!important;top:auto!important;padding:0}
.htmlfig.bare .dtable{table-layout:fixed;width:100%}
.htmlfig.bare .dtable,
.htmlfig.bare .dtable th,
.htmlfig.bare .dtable td,
.htmlfig.bare .dtable thead th{font-size:13.5px;padding:10px 14px;line-height:1.6}
.htmlfig.bare .svcgrid .dtable,
.htmlfig.bare .svcgrid .dtable th,
.htmlfig.bare .svcgrid .dtable td{font-size:13px}
.htmlfig.bare .iconrow .it{font-size:13.5px}
.htmlfig.bare .iconrow .icpod{width:78px;height:78px}
.htmlfig.bare .iconrow .icpod .ic{width:40px;height:40px}
.htmlfig.bare .stepband .s{font-size:16px;padding:10px 18px 10px 26px;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.35;word-break:keep-all}
.htmlfig.bare .stepband .s small{font-size:13px}
/* 4-STEP FLOW ONLY — deep-green → teal flowing as ONE band: each chevron's colours match the 0/25/50/75/100% stops of the band underlay, so the whole strip reads as a single uninterrupted gradient. Other stepbands (3/5-step, overview bands) keep the green/teal alternation from .stepband .s / .s.t */
.htmlfig.bare.flowfig .stepband .s:nth-child(1){background:linear-gradient(100deg,#155740,#1a6e61)}
.htmlfig.bare.flowfig .stepband .s:nth-child(2){background:linear-gradient(100deg,#1a6e61,#1f8482)}
.htmlfig.bare.flowfig .stepband .s:nth-child(3){background:linear-gradient(100deg,#1f8482,#249ba3)}
.htmlfig.bare.flowfig .stepband .s:nth-child(4){background:linear-gradient(100deg,#249ba3,#2ab2c5)}
/* the whole band reads as ONE continuous deep-green→teal gradient. the current
   step is marked ONLY by bolder text — no frame/outline, which would visually
   cut that chevron out of the band and make it look flat / "not gradient". */
.htmlfig.bare.flowfig .stepband .s.cur{box-shadow:none;filter:none;font-weight:900}
/* engagement-flow figure: align chevrons / icons / table columns vertically */
.flowfig .dtable{table-layout:fixed;min-width:0}
.flowfig .dtable th.hl{width:92px}
.dtable th.hl{word-break:keep-all}
/* flow table: body text 1px smaller */
.htmlfig.bare .dtable.compact,
.htmlfig.bare .dtable.compact th,
.htmlfig.bare .dtable.compact td{font-size:12.5px}
.flowfig .stepband{display:grid;grid-template-columns:repeat(4,1fr);margin-left:93px;gap:0;background:linear-gradient(100deg,#155740,#2ab2c5);border-radius:4px}
.flowfig .iconrow{margin-left:93px;gap:18px 6px}
.flowfig .stepband .s{flex:1 1 0;min-width:0}
@media(max-width:760px){
  .flowfig .stepband,.flowfig .iconrow{margin-left:0}
}
/* flow figure scales with its width like the SVG cards — all sizes in cqw
   (= px-at-1040px-wide-figure / 1040 * 100), so it stays a coherent
   slide-like graphic down to phone widths. px rules above are the fallback. */
.htmlfig.bare.flowfig{container-type:inline-size;width:100%}
.htmlfig.bare.flowfig .stepband{margin-left:8.94cqw;gap:0;margin-bottom:2.31cqw}
.htmlfig.bare.flowfig .stepband .s{font-size:1.4cqw;white-space:nowrap;letter-spacing:-.01em;line-height:1.3;padding:.96cqw 1.5cqw .96cqw 2.3cqw;clip-path:polygon(0 0,calc(100% - 1.44cqw) 0,100% 50%,calc(100% - 1.44cqw) 100%,0 100%,1.44cqw 50%)}
.htmlfig.bare.flowfig .stepband .s:first-child{padding-left:1.73cqw;clip-path:polygon(0 0,calc(100% - 1.44cqw) 0,100% 50%,calc(100% - 1.44cqw) 100%,0 100%)}
.htmlfig.bare.flowfig .stepband .s.cur{box-shadow:none}
.htmlfig.bare.flowfig .iconrow{margin-left:8.94cqw;gap:1.73cqw .58cqw;margin-bottom:2.12cqw!important;grid-template-columns:repeat(4,1fr)!important}
.htmlfig.bare.flowfig .iconrow .icpod{width:7.5cqw;height:7.5cqw}
.htmlfig.bare.flowfig .iconrow .icpod .ic{width:3.85cqw;height:3.85cqw}
.htmlfig.bare.flowfig .dtable.compact th,
.htmlfig.bare.flowfig .dtable.compact td{font-size:1.2cqw;padding:.96cqw 1.35cqw}
.htmlfig.bare.flowfig .dtable th.hl{width:8.85cqw}
/* phone/tablet: a 4-column flow "slide" can't shrink to 4 legible columns in a
   ~300px column — the cqw sizing above would collapse the text to a few px. So
   below 760px stop scaling, pin readable px sizes, and let the whole block
   (steps + icons + table, kept in lockstep so columns stay aligned) scroll
   sideways as one unit. */
@media(max-width:760px){
  .htmlfig.bare.flowfig{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;padding-bottom:8px}
  .htmlfig.bare.flowfig .tablewrap{overflow:visible;min-width:600px}
  .htmlfig.bare.flowfig .stepband,
  .htmlfig.bare.flowfig .iconrow{min-width:522px;margin-left:78px}
  .htmlfig.bare.flowfig .stepband{margin-bottom:14px}
  .htmlfig.bare.flowfig .iconrow{gap:14px 6px;margin-bottom:12px!important}
  .htmlfig.bare.flowfig .stepband .s{font-size:11.5px;white-space:normal;line-height:1.25;padding:8px 10px 8px 18px;clip-path:polygon(0 0,calc(100% - 12px) 0,100% 50%,calc(100% - 12px) 100%,0 100%,12px 50%)}
  .htmlfig.bare.flowfig .stepband .s:first-child{padding-left:12px;clip-path:polygon(0 0,calc(100% - 12px) 0,100% 50%,calc(100% - 12px) 100%,0 100%)}
  .htmlfig.bare.flowfig{padding-top:3px}
  .htmlfig.bare.flowfig .iconrow .icpod{width:44px;height:44px}
  .htmlfig.bare.flowfig .iconrow .icpod .ic{width:22px;height:22px}
  .htmlfig.bare.flowfig .dtable.compact th,
  .htmlfig.bare.flowfig .dtable.compact td{font-size:11px;padding:7px 9px}
  .htmlfig.bare.flowfig .dtable th.hl{width:78px}
}

/* "advisory" overview (顧問・伴走支援型の事例) — matches the source slide
   (roadmap-6): a light-gray box containing a centered green title, then 2
   columns (小売 green / 製造業 teal headers) of stacked white rounded cards
   with centered text. Natural height (not 16:9), shown in the right column. */
.htmlfig.bare.advisory{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px 22px;box-shadow:0 1px 0 rgba(20,80,60,.04)}
/* unified figure-card title (same spec as the in-SVG titles on the 16:9 cards:
   left-aligned, 14px/800, ink #1f3b30, short green accent bar underneath) */
.htmlfig.bare.advisory>.figbar,.htmlfig.bare.advisory .advtitle,.htmlfig.bare.advisory .figtitle{margin:0 0 16px;padding:0;border-bottom:0;background:transparent;text-align:left;font-size:14px;font-weight:800;color:#1f3b30;width:auto;max-width:none;letter-spacing:.01em;line-height:1.5}
.htmlfig.bare.advisory>.figbar::after,.htmlfig.bare.advisory .advtitle::after,.htmlfig.bare.advisory .figtitle::after{content:"";display:block;width:36px;height:2.5px;border-radius:1.5px;background:var(--g);margin-top:7px}
/* text scales with card width, mirroring the SVG-based cards below
   (cqw = px-at-543px-wide-card / 543 * 100; px rules above act as fallback) */
.htmlfig.bare.advisory{container-type:inline-size;width:100%;padding:3.3% 4%}
.htmlfig.bare.advisory>.figbar,.htmlfig.bare.advisory .advtitle,.htmlfig.bare.advisory .figtitle{font-size:2.8cqw;margin-bottom:3.2cqw}
.htmlfig.bare.advisory>.figbar::after,.htmlfig.bare.advisory .advtitle::after,.htmlfig.bare.advisory .figtitle::after{width:7.2cqw;height:.5cqw;margin-top:1.4cqw}
.htmlfig.bare.advisory .svcgrid{gap:4.4cqw}
.htmlfig.bare.advisory .svcbox>h5{font-size:2.6cqw;padding:1.8cqw 2.4cqw}
.htmlfig.bare.advisory .svcbox>ul{padding:2cqw 0 0;gap:1cqw}
.htmlfig.bare.advisory .svcbox>ul>li{font-size:2.2cqw;height:auto;min-height:7.2cqw;padding:1.2cqw 2.4cqw}
/* widen the right (figure) column so the cards stay readable */
/* advisory figures sit in a standard half-width column, same as the 16:9 cards */
/* PwC-like branding refinements for advisory blocks (page-wide) */
.twocol:has(.htmlfig.advisory) .prose p{font-size:14.5px;line-height:1.95;color:var(--ink-2)}
.twocol:has(.htmlfig.advisory) .barhead{font-size:clamp(22px,2.7vw,28px);line-height:1.4;margin-bottom:18px}
.htmlfig.advisory .svcgrid{gap:22px;align-items:start}
.htmlfig.advisory .svcbox{background:transparent;border:0;overflow:visible}
.htmlfig.advisory .svcbox>h5{font-size:13px;text-align:center;padding:9px 12px;border-radius:6px;background:var(--g)}
.htmlfig.advisory .svcbox.teal>h5{background:var(--teal)}
.htmlfig.advisory .svcbox>ul{padding:10px 0 0;gap:5px;background:transparent;display:flex;flex-direction:column}
.htmlfig.advisory .svcbox>ul>li{background:#fff;border:1px solid var(--line);border-radius:7px;padding:6px 12px;font-size:11px;text-align:center;line-height:1.4;color:var(--ink);height:36px;display:flex;align-items:center;justify-content:center}
@media(max-width:820px){.htmlfig.advisory .svcbox>ul>li{height:auto;min-height:36px;font-size:12px;padding:8px 10px}.htmlfig.advisory .svcbox>h5{font-size:12px;padding:8px 10px}}

/* faithful-slide building blocks (Step figures) */
.figsub{text-align:center;font-weight:800;color:var(--ink);font-size:20px;line-height:1.3;margin:8px 0 14px}
.sideruled{display:flex;align-items:center;justify-content:center;gap:14px;text-align:center;font-weight:800;color:var(--ink);font-size:14px;margin:8px 0 12px}
.sideruled:before,.sideruled:after{content:"";flex:1;height:1px;background:var(--ink-2);opacity:.55}
.boxrow{display:grid;grid-template-columns:repeat(var(--n,4),1fr);gap:10px;margin:4px 0}
.boxrow .bx{background:#6aab8c;color:#fff;font-weight:800;font-size:13px;text-align:center;padding:15px 8px;border-radius:5px;line-height:1.45;display:grid;place-items:center;word-break:auto-phrase}
.boxrow .bx.t{background:var(--teal)}
@media(max-width:640px){.boxrow{grid-template-columns:repeat(2,1fr)}}
.bigarrow{display:flex;justify-content:center;margin:6px 0}
.bigarrow:before{content:"";width:0;height:0;border-left:44px solid transparent;border-right:44px solid transparent;border-top:24px solid #c4cfca}
.htmlfig .dtable tr.faded td,.htmlfig .dtable tr.faded th{opacity:.4}

/* "16:9-ish" frame for the former-image figures — content auto-scaled to fit (site.js).
   Slightly taller than true 16:9 (16:11) to give complex content more room.
   The heading bar stays full-width at the top; only the body below is scaled. */
.htmlfig.r169{aspect-ratio:16/11;overflow:hidden;position:relative;padding:0;width:100%;display:block}
.htmlfig.r169>.figbar{position:absolute;top:0;left:0;right:0;margin:0;border-radius:0;z-index:1}
.htmlfig.r169>.fitbox{position:absolute;left:0;top:0;transform-origin:top left;padding:14px 18px}
/* .formfig は .hd がパネル上端から 32px せり出す作り。既定の padding-top では
   カード上端の figbar に食い込むため、はみ出し分の余白を確保する。 */
.htmlfig.r169.formfig>.fitbox{padding-top:14px}
/* カード内は横幅が限られるので、余白を詰めて本文の折り返しを減らす */
.htmlfig.r169.formfig .formula{gap:20px}
.htmlfig.r169.formfig .fpanel{padding:24px 20px}
.htmlfig.r169.formfig .fpanel .fcols{gap:20px}
.htmlfig.r169.formfig .formula .op{font-size:44px}

/* stacked cost-structure bars (subsidy "営業利益のイメージ") */
.costcols{display:flex;align-items:stretch;gap:10px;justify-content:center;flex-wrap:wrap}
.costcols .ccol{display:flex;flex-direction:column;align-items:stretch;width:130px}
.costcols .cstack{height:300px;display:flex;flex-direction:column;border-radius:7px;overflow:hidden}
.costcols .seg{display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;font-size:11.5px;font-weight:700;line-height:1.35;padding:2px}
.costcols .seg.base{background:var(--g)}
.costcols .seg.depr{background:#8fc7ac}
.costcols .seg.profit{background:var(--teal)}
.costcols .seg.sub{background:#f0913c}
.costcols .clab{text-align:center;font-size:12px;color:var(--ink-2);margin-top:9px;line-height:1.4}
.costcols .clab b{color:var(--ink)}
.costcols .carrow{align-self:center;color:var(--g-l);font-weight:800;font-size:20px;padding-bottom:30px}
.costcols .carrow.plus{color:#f0913c;font-size:24px}
.costcols .cextra{align-self:center;border:1px solid var(--line);border-radius:11px;overflow:hidden;width:150px}
.costcols .cextra-h{background:var(--teal);color:#fff;font-weight:800;font-size:13px;text-align:center;padding:9px}
.costcols .cextra ul{list-style:none;margin:0;padding:12px;display:flex;flex-direction:column;gap:8px}
.costcols .cextra li{background:var(--paper);border:1px solid var(--line);border-radius:7px;padding:9px;text-align:center;font-size:13px;font-weight:700;color:var(--g-d)}
@media(max-width:680px){.costcols .carrow{transform:rotate(90deg);padding:0}.costcols .ccol,.costcols .cextra{width:100%}}

/* equation / fraction panels (炭素生産性 算出式) */
.eqgrid{display:flex;flex-direction:column;gap:16px;align-items:center}
.eqbox{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:18px 24px;max-width:100%}
.eqbox .eqlab{font-weight:800;color:var(--g-d);font-size:13px;line-height:1.4;text-align:center}
.eqbox .eqlab sup{font-size:9px}
.eqbox .eqop{font-family:"Outfit";font-weight:800;font-size:22px;color:#f0913c}
.eqbox .eqval{font-family:"Outfit";font-weight:800;font-size:20px;color:var(--ink)}
.eqfrac{display:inline-flex;flex-direction:column;text-align:center;font-size:12.5px;color:var(--ink-2)}
.eqfrac .num{padding:0 10px 6px;border-bottom:2px solid var(--ink-2);line-height:1.4}
.eqfrac .den{padding:6px 10px 0;line-height:1.4}
.eqgrid .fignote{text-align:center;margin-top:2px}

/* ===========================================================
   採用ページ専用 — Cool & Premium JCM style
   =========================================================== */
/* ---------- Hero ---------- */
.rhero{position:relative;background:linear-gradient(160deg,#0a2e22 0%,#0d3d36 35%,#0e4a48 65%,#0a3f5a 100%);color:#fff;padding:140px 0 120px;overflow:hidden}
.rhero:before{content:"";position:absolute;inset:0;background:
  radial-gradient(1200px 600px at 80% 20%,rgba(70,191,142,.15),transparent 55%),
  radial-gradient(800px 500px at 10% 85%,rgba(42,166,189,.12),transparent 55%),
  repeating-conic-gradient(rgba(255,255,255,.012) 0% 25%,transparent 0% 50%) 0 0/80px 80px;
  pointer-events:none}
.rhero:after{content:"";position:absolute;bottom:-2px;left:0;right:0;height:120px;background:linear-gradient(transparent,#fff);pointer-events:none}
.rhero .wrap{position:relative;z-index:2}
.rhero .reye{display:inline-block;font-family:"Outfit";font-weight:800;letter-spacing:.28em;font-size:11.5px;color:var(--g-l);text-transform:uppercase;padding:7px 16px;border:1.5px solid rgba(70,191,142,.4);border-radius:99px;margin-bottom:28px}
.rhero h1{font-size:clamp(38px,5.8vw,68px);font-weight:900;line-height:1.12;letter-spacing:-.01em;margin-bottom:28px}
.rhero h1 b{background:linear-gradient(100deg,#5eeaa3,#76e4d4,#5eeaa3);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;font-weight:900;animation:rheroShine 6s ease-in-out infinite}
@keyframes rheroShine{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
.rhero .rsub{font-size:clamp(14px,1.5vw,17px);line-height:2.1;color:rgba(220,238,228,.85);max-width:40em;margin-bottom:42px;letter-spacing:.02em}
.rhero .rmeta{display:flex;flex-wrap:wrap;gap:16px}
.rhero .rmeta a{display:inline-flex;align-items:center;gap:10px;padding:15px 30px;border-radius:var(--brand-r);font-weight:800;font-size:14px;letter-spacing:.04em;transition:.3s var(--ease)}
.rhero .rmeta a.primary{background:#fff;color:var(--g-d);box-shadow:0 8px 24px -8px rgba(0,0,0,.25)}
.rhero .rmeta a.primary:hover{transform:translateY(-3px);box-shadow:0 16px 36px -12px rgba(0,0,0,.35)}
.rhero .rmeta a.ghost{color:rgba(255,255,255,.9);border:1.5px solid rgba(255,255,255,.3)}
.rhero .rmeta a.ghost:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.5)}
.rhero .rstat{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:64px;max-width:800px}
.rhero .rstat .it{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:22px 24px;transition:.3s var(--ease)}
.rhero .rstat .it:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.2);transform:translateY(-2px)}
.rhero .rstat .it b{display:block;font-family:"Outfit";font-weight:800;font-size:36px;color:#fff;line-height:1.15;letter-spacing:-.02em}
.rhero .rstat .it span{font-size:11px;color:rgba(185,204,193,.8);font-weight:600;letter-spacing:.06em;text-transform:uppercase}
@media(max-width:680px){.rhero{padding:100px 0 80px}.rhero .rstat{grid-template-columns:1fr 1fr}}

/* ---------- Why now ---------- */
.whynow{display:grid;grid-template-columns:1.15fr 1fr;gap:56px;align-items:start}
.whynow .lead{font-size:clamp(26px,3.1vw,38px);font-weight:900;line-height:1.5;margin-bottom:24px;letter-spacing:-.01em}
.whynow .lead em{color:var(--g);font-style:normal;font-weight:900;position:relative}
.whynow .lead em:after{content:"";position:absolute;left:0;right:0;bottom:2px;height:3px;background:var(--g);opacity:.25;border-radius:2px}
.whynow .body p{color:var(--ink-2);font-size:14.5px;line-height:2.05;margin-bottom:14px}
.whynow .side{background:linear-gradient(135deg,var(--paper),#edf6f0);border-radius:18px;padding:32px 34px;border-left:4px solid var(--g);box-shadow:0 8px 32px -12px rgba(20,80,60,.12)}
.whynow .side h3{font-size:12px;font-weight:800;color:var(--g);letter-spacing:.14em;margin-bottom:16px;text-transform:uppercase}
.whynow .side .nm{font-weight:900;font-size:17px;margin-bottom:8px;color:var(--ink)}
.whynow .side p{font-size:13.5px;line-height:1.9;color:var(--ink-2)}
@media(max-width:820px){.whynow{grid-template-columns:1fr;gap:30px}}

/* ---------- KPI tiles ---------- */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.kpis .k{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px 22px;position:relative;overflow:hidden;transition:.35s var(--ease)}
.kpis .k:hover{transform:translateY(-4px);box-shadow:0 20px 40px -18px rgba(20,80,60,.2);border-color:var(--g-l)}
.kpis .k .lbl{font-size:10.5px;font-weight:700;color:var(--ink-3);letter-spacing:.06em;margin-bottom:8px;text-transform:uppercase}
.kpis .k .v{font-family:"Outfit";font-weight:800;font-size:38px;color:var(--g-d);line-height:1.05;letter-spacing:-.02em}
.kpis .k .v small{font-size:15px;color:var(--ink-2);font-weight:700;margin-left:2px}
.kpis .k .note{font-size:10.5px;color:var(--ink-3);margin-top:10px;line-height:1.5}
.kpis .k .accent{position:absolute;right:-30px;bottom:-30px;width:110px;height:110px;border-radius:50%;background:radial-gradient(circle,rgba(70,191,142,.14),transparent 65%)}
.kpis .k:nth-child(even) .accent{background:radial-gradient(circle,rgba(70,191,142,.14),transparent 65%)}
@media(max-width:780px){.kpis{grid-template-columns:1fr 1fr}}

/* ---------- Career path ---------- */
.career{display:grid;grid-template-columns:repeat(4,1fr);gap:0;position:relative;margin-top:36px}
.career:before{content:"";position:absolute;top:34px;left:8%;right:8%;height:3px;background:linear-gradient(90deg,var(--g),var(--g-l),var(--teal),var(--teal-d));border-radius:2px;z-index:0}
.career .cs{position:relative;z-index:1;padding:0 14px;text-align:center}
.career .cs .yr{display:inline-flex;align-items:center;justify-content:center;width:68px;height:68px;border-radius:50%;background:#fff;border:3px solid var(--g);color:var(--g);font-family:"Outfit";font-weight:800;font-size:16px;margin-bottom:20px;box-shadow:0 8px 20px -8px rgba(20,80,60,.25);transition:.3s var(--ease)}
.career .cs:hover .yr{transform:scale(1.08);box-shadow:0 12px 28px -10px rgba(20,80,60,.35)}
.career .cs:nth-child(2) .yr{border-color:var(--g);color:var(--g)}
.career .cs:nth-child(3) .yr{border-color:var(--g);color:var(--g)}
.career .cs:nth-child(4) .yr{border-color:var(--g);background:var(--g);color:#fff;box-shadow:0 8px 20px -8px rgba(20,80,60,.35)}
.career .cs h4{font-size:15px;font-weight:900;margin-bottom:12px;line-height:1.4;letter-spacing:-.01em}
.career .cs p{font-size:12.5px;color:var(--ink-2);line-height:1.8;text-align:left;background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px 18px;min-height:130px;box-shadow:0 4px 16px -8px rgba(0,0,0,.06)}
@media(max-width:760px){.career{grid-template-columns:1fr 1fr!important;gap:30px 14px}.career:before{display:none}}

/* ---------- Workstyle cards ---------- */
.workstyle{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.workstyle .ws{display:flex;gap:18px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px;transition:.3s var(--ease)}
.workstyle .ws:hover{transform:translateY(-3px);box-shadow:0 16px 36px -16px rgba(20,80,60,.18);border-color:var(--g-l)}
.workstyle .ws .ico{flex:0 0 auto;width:50px;height:50px;border-radius:14px;background:linear-gradient(135deg,#177a53,#2fae74);display:grid;place-items:center;transition:.3s var(--ease)}
.workstyle .ws:hover .ico{background:linear-gradient(135deg,#177a53,#2fae74)}
.workstyle .ws .ico svg{width:26px;height:26px;stroke:#fff;fill:none;stroke-width:2;transition:.3s var(--ease)}
.workstyle .ws:hover .ico svg{stroke:#fff}
.workstyle .ws h4{font-size:16.5px;font-weight:900;margin-bottom:6px;letter-spacing:-.01em}
.workstyle .ws p{font-size:12.5px;color:var(--ink-2);line-height:1.8}
@media(max-width:760px){.workstyle{grid-template-columns:1fr}}

/* ---------- Voices ---------- */
.voices{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.voices .v{background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px;position:relative;transition:.3s var(--ease)}
.voices .v:hover{transform:translateY(-3px);box-shadow:0 18px 40px -18px rgba(20,80,60,.18)}
.voices .v:before{content:"\201C";font-family:"Outfit";font-size:90px;font-weight:900;color:var(--g);opacity:.08;position:absolute;top:4px;right:16px;line-height:.8}
.voices .v .top{display:flex;gap:14px;align-items:center;margin-bottom:18px}
.voices .v .av{width:52px;height:52px;border-radius:14px;background:linear-gradient(135deg,#177a53,#2fae74);display:grid;place-items:center;color:#fff;font-family:"Outfit";font-weight:800;font-size:17px;flex:0 0 auto}
.voices .v .top b{display:block;font-size:14px;font-weight:900}
.voices .v .top span{display:block;font-size:11px;color:var(--ink-3);margin-top:3px;letter-spacing:.02em}
.voices .v h4{font-size:15px;font-weight:800;color:var(--g-d);margin-bottom:12px;line-height:1.5;letter-spacing:-.01em}
.voices .v p{font-size:12.5px;color:var(--ink-2);line-height:1.9}
@media(max-width:820px){.voices{grid-template-columns:1fr}}

/* ---------- Daily timeline ---------- */
.daily{position:relative;padding-left:30px}
.daily:before{content:"";position:absolute;left:9px;top:6px;bottom:6px;width:3px;background:linear-gradient(180deg,var(--g),var(--g-l),var(--teal));border-radius:2px}
.daily .d{position:relative;padding:0 0 24px}
.daily .d:before{content:"";position:absolute;left:-25px;top:5px;width:16px;height:16px;border-radius:50%;background:var(--g);border:3px solid #fff;box-shadow:0 0 0 2px var(--g),0 4px 10px -4px rgba(20,80,60,.3)}
.daily .d:last-child{padding-bottom:0}
.daily .d time{font-family:"Outfit";font-weight:800;font-size:15px;color:var(--g-d);margin-right:16px;letter-spacing:.02em}
.daily .d b{font-weight:900;font-size:14px;color:var(--ink)}
.daily .d p{font-size:12.5px;color:var(--ink-3);line-height:1.8;margin-top:4px}

/* ---------- Selection flow ---------- */
.flow{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.flow .fs{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px 18px;text-align:center;position:relative;transition:.3s var(--ease)}
.flow .fs:hover{transform:translateY(-2px);box-shadow:0 12px 28px -12px rgba(20,80,60,.18)}
.flow .fs:not(:last-child):after{content:"\203A";position:absolute;right:-14px;top:50%;transform:translateY(-50%);font-size:24px;color:var(--g);font-weight:800;background:#fff;width:20px;text-align:center;z-index:2}
.flow .fs .num{font-family:"Outfit";font-weight:800;font-size:10.5px;color:var(--g);margin-bottom:8px;letter-spacing:.16em;text-transform:uppercase}
.flow .fs h4,.flow .fs h3{font-size:13.5px;font-weight:900;margin-bottom:8px;letter-spacing:-.01em;word-break:auto-phrase;line-height:1.45;min-height:2.9em;max-width:10.5em;display:flex;align-items:center;justify-content:center}
.flow .fs p{font-size:11.5px;color:var(--ink-3);line-height:1.65}
@media(max-width:780px){.flow{grid-template-columns:1fr 1fr;gap:14px}.flow .fs:after{display:none}}

/* ---------- Perks ---------- */
.perks{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.perks .p{background:var(--paper);border:1px solid transparent;border-radius:14px;padding:20px;display:flex;flex-direction:column;gap:8px;transition:.3s var(--ease)}
.perks .p:hover{background:#fff;border-color:var(--line);box-shadow:0 8px 24px -10px rgba(20,80,60,.12)}
.perks .p b{font-size:15.5px;font-weight:900;color:var(--g-d);display:flex;align-items:center;gap:8px}
.perks .p b:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--g);flex:0 0 auto;box-shadow:0 0 0 3px rgba(35,154,99,.12)}
.perks .p span{font-size:14.5px;color:var(--ink-2);line-height:1.75}
@media(max-width:780px){.perks{grid-template-columns:1fr 1fr}}

/* ---------- FAQ ---------- */
.faq{max-width:900px;margin-inline:auto}
.faq .q{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px 24px;margin-bottom:12px;transition:.3s var(--ease)}
.faq .q:hover{border-color:var(--g-l);box-shadow:0 6px 20px -10px rgba(20,80,60,.1)}
.faq .q summary{font-weight:900;font-size:14.5px;cursor:pointer;list-style:none;display:flex;justify-content:flex-start;text-align:left;align-items:center;gap:14px}
.faq .q summary .mark{margin-left:auto}
.faq .q summary:before{content:"Q";font-family:"Outfit";font-weight:900;color:#fff;background:var(--g);width:34px;height:34px;border-radius:8px;display:inline-grid;place-items:center;font-size:16px;margin-right:12px;flex:0 0 auto}
.faq .q summary::-webkit-details-marker{display:none}
.faq .q summary .mark{font-size:0;width:28px;height:28px;border-radius:8px;background:rgba(35,154,99,.08);position:relative;flex:0 0 auto}
.faq .q summary .mark:before,.faq .q summary .mark:after{content:"";position:absolute;left:50%;top:50%;translate:-50% -50%;background:var(--g);border-radius:1px}
.faq .q summary .mark:before{width:12px;height:2.4px}
.faq .q summary .mark:after{width:2.4px;height:12px;transition:opacity .25s var(--ease)}
.faq .q[open] summary .mark{background:rgba(35,154,99,.15)}
.faq .q[open] summary .mark:after{opacity:0}
.faq .q p{margin-top:16px;padding-left:42px;font-size:13px;color:var(--ink-2);line-height:2}
.faq .q p:before{content:"A";font-family:"Outfit";font-weight:900;color:#fff;background:var(--teal);width:24px;height:24px;border-radius:6px;display:inline-grid;place-items:center;font-size:12px;margin-right:10px;margin-left:-34px;vertical-align:middle}

/* ---------- Final CTA ---------- */
.finalcta{background:linear-gradient(160deg,#0a2e22 0%,#0d3d36 35%,#0e4a48 65%,#0a3f5a 100%);color:#fff;padding:90px 40px;border-radius:28px;text-align:center;position:relative;overflow:hidden}
.finalcta:before{content:"";position:absolute;inset:0;background:
  radial-gradient(800px 450px at 25% 25%,rgba(70,191,142,.2),transparent 55%),
  radial-gradient(700px 400px at 80% 75%,rgba(42,166,189,.15),transparent 55%),
  repeating-conic-gradient(rgba(255,255,255,.01) 0% 25%,transparent 0% 50%) 0 0/80px 80px}
.finalcta>*{position:relative;z-index:2}
.finalcta h2{font-size:clamp(28px,3.6vw,44px);font-weight:900;margin-bottom:20px;line-height:1.3;letter-spacing:-.01em}
.finalcta p{font-size:15px;color:rgba(206,224,214,.85);margin-bottom:38px;max-width:32em;margin-left:auto;margin-right:auto;line-height:2}
.finalcta .btns{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.finalcta .btns a{padding:17px 36px;font-weight:800;font-size:14.5px;border-radius:12px;transition:.3s var(--ease);letter-spacing:.04em}
.finalcta .btns a.p{background:#fff;color:var(--g-d);box-shadow:0 8px 24px -8px rgba(0,0,0,.25)}
.finalcta .btns a.p:hover{transform:translateY(-3px);box-shadow:0 18px 40px -14px rgba(0,0,0,.4)}
.finalcta .btns a.g{color:rgba(255,255,255,.9);border:1.5px solid rgba(255,255,255,.3)}
.finalcta .btns a.g:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.5)}

/* ============================================================
   MEMBERS — 私たちについて内のコンサルタント紹介と個人ページ
   ============================================================ */
/* 一覧カード — 人物名簿型。写真の有無で高さが変わらないよう枠サイズは固定し、
   写真が無い人はロゴを淡く敷いたブランドプレースホルダーで埋める。 */
.memgrid{display:flex;flex-wrap:wrap;justify-content:center;gap:40px 26px}
.memgrid>.memcard{flex:0 0 196px;max-width:196px}
.memcard{--avatar:120px;display:block;background:none;border:0;border-radius:0}
.memcard .ph{position:relative;width:var(--avatar);height:var(--avatar);border-radius:50%;overflow:hidden;background:#eef3f0}
.memcard .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.memcard .bd{padding:18px 0 0}
.memcard .nm{font-size:19px;font-weight:700;line-height:1.45;letter-spacing:.02em;color:var(--ink)}
.memcard .nm small{display:block;font-size:12px;font-weight:500;color:var(--ink-3);letter-spacing:.01em;margin-top:5px;font-family:"Outfit",sans-serif}
.memcard .role{margin-top:13px;padding-bottom:11px;border-bottom:1px solid var(--line);font-size:13px;font-weight:500;color:var(--ink-2);line-height:1.5}
.memcard .cp{margin-top:11px;font-size:12px;color:var(--ink-3);line-height:1.75}

@media(max-width:1040px){.memgrid{gap:32px 18px}.memgrid>.memcard{flex-basis:160px;max-width:160px;--avatar:104px}.memgrid>.memcard .nm{font-size:16px}}
@media(max-width:760px){.memgrid{gap:28px 18px}.memgrid>.memcard{flex-basis:140px;max-width:140px}.memcard{--avatar:110px}.memcard .nm{font-size:16px}}

/* 写真なしの共通プレースホルダー（カード・個別ページ共用） */
.ph-ph{position:absolute;inset:0;background:#e9efeb url(/wp-content/themes/j-cm/assets/img/logo.png) center/58% no-repeat;opacity:.38}
.memcard .ph img+.ph-ph,.memhero .pic img+.ph-ph{display:none}

/* 個人ページ: プロフィールヘッダ（写真は一覧と同サイズに抑える） */
.memhero{--avatar:120px;display:grid;grid-template-columns:var(--avatar) 1fr;gap:30px;align-items:start}
.memhero .pic{position:relative;width:var(--avatar);height:var(--avatar);border-radius:50%;overflow:hidden;background:#eef3f0}
.memhero .pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.memhero h1{font-size:clamp(24px,3vw,32px);font-weight:800;line-height:1.35;margin:0 0 6px;letter-spacing:.02em}
.memhero .en-nm{font-family:"Outfit",sans-serif;font-size:13px;letter-spacing:.06em;color:var(--ink-3);font-weight:500}
.memhero .role{margin-top:14px;padding-top:12px;border-top:1px solid var(--line);font-size:13.5px;font-weight:600;color:var(--ink-2)}
.memhero .lead{margin-top:16px;font-size:14.5px;line-height:2;color:var(--ink-2);max-width:44em}
.memhero .tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.memhero .tags span{font-size:11.5px;font-weight:700;padding:6px 13px;border-radius:var(--brand-r-sm);background:var(--paper);border:1px solid var(--line);color:var(--g-d)}
@media(max-width:820px){.memhero{--avatar:96px;grid-template-columns:var(--avatar) 1fr;gap:20px}}

/* 個人ページ: 経歴・Q&A */
.memtl{position:relative;padding-left:26px}
.memtl:before{content:"";position:absolute;left:6px;top:6px;bottom:6px;width:2px;background:linear-gradient(var(--g),var(--teal))}
.memtl .it{position:relative;padding-bottom:22px}
.memtl .it:last-child{padding-bottom:0}
.memtl .it:before{content:"";position:absolute;left:-26px;top:5px;width:14px;height:14px;border-radius:50%;background:#fff;border:3px solid var(--g)}
.memtl .yr{font-family:"Outfit",sans-serif;font-size:12px;font-weight:800;color:var(--g-d);letter-spacing:.06em}
.memtl h4{font-size:15px;font-weight:800;margin:3px 0 5px}
.memtl p{font-size:13px;color:var(--ink-2);line-height:1.85}
.memqa .q{border:1px solid var(--line);border-radius:var(--brand-r-sm);background:#fff;padding:20px 22px;margin-bottom:14px}
.memqa .q h4{font-size:14.5px;font-weight:800;color:var(--g-d);margin-bottom:8px;display:flex;gap:9px}
.memqa .q h4:before{content:"Q.";font-family:"Outfit",sans-serif;color:var(--teal-d)}
.memqa .q p{font-size:13.5px;color:var(--ink-2);line-height:1.95}

/* CDPスコアリング図 — 下位段階ほど幅が広い階段（Aに到達するには下位を満たす必要がある）。
   左の軸で「評価が高い」方向を示す。旧版は太い矢印がバーに重なっていた。 */
.cdp{display:grid;grid-template-columns:66px 1fr;gap:18px;padding:10px 0 6px}
.cdp-axis{display:flex;flex-direction:column;align-items:center;gap:10px;padding-top:2px}
.cdp-axis .cap{font-size:11px;font-weight:800;color:var(--teal-d);text-align:center;line-height:1.45;letter-spacing:.02em}
.cdp-axis .line{position:relative;flex:1;width:4px;border-radius:2px;background:linear-gradient(var(--teal),#d3dcd8)}
.cdp-axis .line:before{content:"";position:absolute;top:-10px;left:50%;transform:translateX(-50%);
  border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:11px solid var(--teal)}
.cdp-bars{display:flex;flex-direction:column;gap:6px;align-items:flex-end}
.cdp-bars .b{display:flex;align-items:center;justify-content:space-between;gap:14px;
  height:40px;padding:0 16px;border-radius:5px;color:#fff;font-size:14px;font-weight:700;white-space:nowrap}
.cdp-bars .b .en{font-size:15px;font-weight:800;opacity:.96}
.cdp-bars .lv5{width:52%;background:linear-gradient(100deg,var(--g-d),var(--g))}
.cdp-bars .lv4{width:64%;background:linear-gradient(100deg,var(--teal-d),var(--teal))}
.cdp-bars .lv3{width:76%;background:linear-gradient(100deg,#3aa7b8,#68c9d8)}
.cdp-bars .lv2{width:88%;background:#9aa8a4}
.cdp-bars .lv1{width:100%;background:#c2c8c5}
@media(max-width:600px){
  .cdp{grid-template-columns:44px 1fr;gap:12px}
  .cdp-bars .b{height:36px;padding:0 12px;font-size:12.5px}
  .cdp-bars .lv5{width:60%}.cdp-bars .lv4{width:70%}.cdp-bars .lv3{width:80%}.cdp-bars .lv2{width:90%}
}

/* ============================================================
   情報開示支援ページ（CDP回答支援）
   ============================================================ */
.lead-strong{font-size:17px;font-weight:800;color:var(--g-d);line-height:1.7;margin-bottom:14px}
/* 各セクション見出し直下に置くトップメッセージ。.prose 内の既存リードは
   .prose p（0,1,1）に負けて 15px/ink-2 で表示されており、その見え方に全ページを揃える。
   本文と同じ 62em で折り返し、1行が長くなりすぎないようにする。 */
.wrap > .lead-strong{font-size:15px;color:var(--ink-2);line-height:2.1;margin-bottom:18px;max-width:62em}
/* CDPスコア図 */
.cdp-score-figure img{width:100%;height:auto;display:block}
.cdp-score-figure figcaption{margin-top:10px;font-size:12.5px;color:var(--ink-3);line-height:1.7}
/* お悩みカード 2列×3行 */
.worry{display:grid;grid-template-columns:1fr 1fr;gap:14px 20px}
.worry .w{position:relative;display:flex;gap:12px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:var(--brand-r-sm);padding:18px 20px}
.worry .w:before{content:"";flex:0 0 auto;width:18px;height:18px;margin-top:3px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop offset='0' stop-color='%23239a63'/%3E%3Cstop offset='1' stop-color='%232aa6bd'/%3E%3C/linearGradient%3E%3C/defs%3E%3Ccircle cx='10' cy='10' r='10' fill='url(%23g)'/%3E%3Cpath d='M5.6 10.4l2.9 2.9 5.9-6.3' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
.worry .w p{font-size:14px;line-height:1.85;color:var(--ink-2);margin:0}
@media(max-width:760px){.worry{grid-template-columns:1fr}}
/* 支援内容リスト */
.svclist{display:grid;grid-template-columns:repeat(3,1fr);gap:12px 16px}
.svclist .i{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--brand-r-sm);
  padding:16px 18px 16px 44px;font-size:13.5px;font-weight:600;color:var(--ink-2);line-height:1.7}
.svclist .i:before{content:"";position:absolute;left:17px;top:19px;width:16px;height:16px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop offset='0' stop-color='%23239a63'/%3E%3Cstop offset='1' stop-color='%232aa6bd'/%3E%3C/linearGradient%3E%3C/defs%3E%3Ccircle cx='10' cy='10' r='10' fill='url(%23g)'/%3E%3Cpath d='M5.6 10.4l2.9 2.9 5.9-6.3' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
@media(max-width:1000px){.svclist{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.svclist{grid-template-columns:1fr}}
/* 一貫支援サイクル */
.cyclerow{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-top:28px}
.cyclerow .cy{position:relative;display:block;background:#fff;border:1px solid var(--line);border-radius:var(--brand-r-sm);padding:20px 18px;transition:.2s var(--ease)}
.cyclerow a.cy:hover{border-color:#bcd9c9;transform:translateY(-3px);box-shadow:0 18px 34px -22px rgba(20,80,60,.3)}
.cyclerow .cy .st{display:inline-block;font-size:12px;font-weight:800;color:#fff;background:var(--grad);padding:3px 10px;border-radius:var(--brand-r-sm)}
.cyclerow .cy h4,.cyclerow .cy h3{margin:11px 0 5px;font-size:15px;font-weight:800}
.cyclerow .cy p{font-size:12px;color:var(--ink-3);line-height:1.7}
.cyclerow .cy.cur{border-color:var(--g);background:#f3f9f6}
.cyclerow .cy.cur h4{color:var(--g-d)}
@media(max-width:1000px){.cyclerow{grid-template-columns:repeat(3,1fr)}}
@media(max-width:640px){.cyclerow{grid-template-columns:1fr 1fr}}
/* 関連サービスのリンクカード */
.svcbox.lnkbox{display:block;transition:.2s var(--ease)}
.svcbox.lnkbox:hover{transform:translateY(-3px);box-shadow:0 18px 34px -22px rgba(20,80,60,.3)}
.svcbox.lnkbox .more{display:block;margin-top:10px;font-size:12px;font-weight:700;color:var(--g)}

/* ============================================================
   サービスページ共通（2026-08 改訂）
   ============================================================ */
/* 成果物 — 役務と納品物を分けて示す2カラム */
.deliv{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.deliv .dcol{background:#fff;border:1px solid var(--line);border-radius:var(--brand-r-sm);padding:24px 26px}
.deliv .dcol > h3{font-size:15px;font-weight:800;color:var(--g-d);margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.deliv ul{list-style:none;margin:0;padding:0}
.deliv li{position:relative;padding:7px 0 7px 26px;font-size:13.5px;line-height:1.8;color:var(--ink-2)}
.deliv li:before{content:"";position:absolute;left:2px;top:14px;width:14px;height:14px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop offset='0' stop-color='%23239a63'/%3E%3Cstop offset='1' stop-color='%232aa6bd'/%3E%3C/linearGradient%3E%3C/defs%3E%3Ccircle cx='10' cy='10' r='10' fill='url(%23g)'/%3E%3Cpath d='M5.6 10.4l2.9 2.9 5.9-6.3' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
@media(max-width:760px){.deliv{grid-template-columns:1fr}}
/* 更新日つき注記（制度・年度情報） */
.asof{display:inline-block;margin-top:10px;font-size:12px;font-weight:700;color:var(--ink-3);background:var(--paper);border:1px solid var(--line);border-radius:var(--brand-r-sm);padding:5px 12px}
/* サービス比較の一言（関連サービスカード用） */
.svcbox.lnkbox .rel{display:block;margin-top:6px;font-size:11.5px;color:var(--ink-3);line-height:1.7}

/* ============================================================
   可読性改善（2026-08）: カード類にアイコンを持たせ、走り読みできるようにする
   使い方: 各カードの先頭に <span class="cic"><svg class="ic"><use href="#i-xxx"/></svg></span>
   ============================================================ */
.cic{flex:0 0 auto;display:grid;place-items:center;width:38px;height:38px;border-radius:var(--brand-r-sm);
  background:linear-gradient(140deg,#e9f4ee,#dcece6)}
.cic .ic{width:20px;height:20px;stroke:var(--g-d);fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}

/* お悩みカード: チェック丸をアイコンに置き換え */
.worry .w.ico:before,.worry .w.ico:after{display:none}
.worry .w.ico{align-items:center;gap:14px}
.worry .w.ico .cic{width:48px;height:48px;border-radius:50%}
.worry .w.ico .cic .ic{width:26px;height:26px}

/* 支援内容リスト: 左のチェックをアイコンに置き換え */
.svclist .i.ico{display:flex;align-items:center;gap:12px;padding:15px 16px}
.svclist .i.ico:before,.svclist .i.ico:after{display:none}
.svclist .i.ico .cic{width:42px;height:42px;border-radius:50%}
.svclist .i.ico .ic{width:23px;height:23px}

/* 強み・関連サービスカード: 見出しの上にアイコン */
.svcbox > .cic{margin:18px 18px 0}
.svcbox.hasico > h3{background:none;color:var(--ink);padding:10px 18px 0;font-size:15px}
/* 見出しが長い waycards は 3カラムの狭い帯（981〜1230px）で折り返すため、
   文節で折り返し、2行分の高さを確保して3枚の本文位置を揃える */
.waycards h3{word-break:auto-phrase;line-height:1.35;min-height:2.7em;display:flex;align-items:center;justify-content:center}
.waycards p{word-break:auto-phrase}
@media(max-width:600px){.waycards h3{min-height:0}}
/* .cardgrid: 見出しを .vcard 群と同じ 19px に上げたカードグリッド
   （提供サービス「組み合わせ方」・戦略策定「サービス概要」で使用） */
.cardgrid .svcbox.hasico > h3{font-size:19px;font-weight:900;line-height:1.45;padding-top:14px}
@media(min-width:601px){.cardgrid .svcbox.hasico > h3{min-height:calc(2*1.45em + 14px)}}
.pcard.lcard h3 .no{display:block;font-size:12px;letter-spacing:.08em;color:var(--g);margin-bottom:4px}
/* tint 節では .asof の地色（--paper）が背景と同色になり沈むため白に起こす */
.section.tint .asof{background:#fff}
.svcbox.hasico:not(:has(> .cic)) > h3{padding-top:20px}
.svcbox.hasico > ul > li{background:none;border:0;padding:2px 18px 16px;font-size:13px;color:var(--ink-2)}
.svcbox.hasico > ul > li:not(:last-child){padding-bottom:0}

/* 成果物: 見出しにアイコン */
.deliv .dcol > h3{display:flex;align-items:center;gap:10px}
.deliv .dcol > h3 .cic{width:30px;height:30px;border-radius:8px}
.deliv .dcol > h3 .ic{width:16px;height:16px}

/* 進め方: 中央揃えで ステップ番号 → アイコン → タイトル → 内容 の縦並び */
.flow .fs{display:flex;flex-direction:column;align-items:center}
.flow .fs .stepico{display:flex;flex-direction:column-reverse;align-items:center;gap:9px;margin-bottom:10px}
.flow .fs .stepico .num{margin:0}
.flow .fs .stepico .cic{width:41px;height:41px;border-radius:0;background:none}
.flow .fs .stepico .cic .ic{width:31px;height:31px}

.prose p + p{margin-top:12px}
/* 要点を先に見せるリード箇条書き */
/* keypoints のカード版 */
.kpcards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:16px 0 4px}
.kpcards .kp{background:#fff;border:1px solid var(--line);border-radius:11px;padding:16px 14px;text-align:center}
.kpcards .kp b{display:flex;flex-direction:column;align-items:center;gap:7px;font-size:13.5px;color:var(--ink);font-weight:800}
.kpcards .kp b:before{content:"";width:16px;height:9px;background:var(--g);border-radius:9px 2px 9px 2px;flex:0 0 auto}
.kpcards .kp p{margin:8px 0 0;font-size:12.5px;color:var(--ink-2);line-height:1.75;text-align:left}
@media(max-width:700px){.kpcards{grid-template-columns:1fr}}
/* 図中の統計数字はヒーロー用より控えめに */
.htmlfig .bignum b{font-size:clamp(26px,3.4vw,38px);font-weight:700;background:none;color:var(--g-d);-webkit-text-fill-color:var(--g-d)}
.htmlfig .bignum .u{font-size:13px}
.htmlfig .statrow .lab{font-size:12px;margin-top:4px}
.keypoints{display:grid;gap:10px;margin:16px 0 4px;padding:0;list-style:none}
.keypoints li{position:relative;padding-left:26px;font-size:14px;line-height:1.85;color:var(--ink-2)}
.keypoints li:before{content:"";position:absolute;left:2px;top:9px;width:12px;height:12px;border-radius:50%;background:var(--grad)}
.keypoints li b{color:var(--ink);font-weight:700}

/* ============================================================
   日本語の改行位置（2026-08）
   語の途中で改行されるのを防ぐ。word-break:auto-phrase は文節境界で
   折り返すため「制度対応」「投資回収」等が分断されない。
   未対応ブラウザでは従来どおりの折り返しにフォールバックする。
   ============================================================ */
.prose p,.wrap > p,.lead-strong,.keypoints li,.flowlead,
.worry .w p,.svclist .i,.flow .fs p,.flow .fs h3,
.svcbox > ul > li,.deliv li,.cyclerow .cy p,
.memtl p,.memqa .q p,.memhero .lead,
.faq .q p,.faq .q summary,.fignote,.figcap,
.dtable td,.dtable th,.bullets li,
.memcard .role,.memcard .cp{
  word-break:auto-phrase;
}
/* 見出しは1行の据わりを優先してバランス改行 */
.barhead,.shead h2,.figtitle,.finalcta h2{
  word-break:auto-phrase;
  text-wrap:balance;
}

/* ============================================================
   サービスマップ スマホ専用版（2026-08 改訂 / フェーズ単位の縦積み）
   横12カラムのグリッド(.svcmap)は狭い画面で35%しか見えないため、
   768px未満では「6フェーズ＝6ブロック」の縦積みに差し替える。
   .svcmap 自体は一切変更せず、表示の出し分けのみで共存させる。

   設計方針
   - フェーズ色を「見出し帯 → カード左レール → 矢印・シェブロン」まで
     一貫して通し、色を装飾ではなく“たどれる手がかり”にする
     （旧版の「見出しが全部 --g-d の緑」を廃止）。
   - 01〜06 の番号＋ブロック間の縦線と矢羽根で、上から下への順序を確定させる。
   - 循環は最後の破線ボックス（06 → 01）で明示する。
   - 色背景に白文字は一切置かない。帯の文字は濃墨 var(--ink) に統一。
       コントラスト比 赤5.42 / 橙7.02 / 黄9.18 / 緑6.42 / 青緑6.57 / 青4.68
       （白文字だと黄1.82・橙2.38で不可）。
   - レール・矢印は白地で3:1未満になる色があるため、彩度を落とした
     派生色 --pl を使う（白地比 3.78/3.91/3.33/3.44/3.51/5.01）。
   - タップ領域はカード48px以上／間隔7px。
   - セレクタはすべて .svcmap-sp の内側かつ 767px以下に閉じ、他へ影響しない。
   ------------------------------------------------------------
   フェーズ色トークン（PC版 .svcmap .ph と同一の6色）
     --pc 見出し帯の地色 / --pl レール・矢印用の濃色派生 / --pt タップ時の淡色
   ============================================================ */
.svcmap-sp{display:none}

@media(max-width:767px){

  .svcmap-wrap,.scrollhint{display:none}
  .svcmap-sp{display:block;--pc:var(--g);--pl:var(--g);--pt:var(--paper)}

  /* ---- 図の導入 ---- */
  .svcmap-sp .sp-lead{margin:0 0 16px;font-size:12px;line-height:1.75;color:var(--ink-3);word-break:auto-phrase}

  /* ---- 6フェーズの縦積み ---- */
  .svcmap-sp .sp-flow{list-style:none;margin:0;padding:0}
  .svcmap-sp .sp-ph{position:relative;margin-top:18px}
  .svcmap-sp .sp-ph:first-child{margin-top:0}
  .svcmap-sp .p1{--pc:#ea6b6b;--pl:#d95a5a;--pt:#fdf1f1}
  .svcmap-sp .p2{--pc:#f0913c;--pl:#c26a12;--pt:#fef5eb}
  .svcmap-sp .p3{--pc:#e6bb39;--pl:#a88a12;--pt:#fdf8e8}
  .svcmap-sp .p4{--pc:#54b45e;--pl:#3d9d47;--pt:#eff8f0}
  .svcmap-sp .p5{--pc:#3fb1c0;--pl:#2296a6;--pt:#ecf7f9}
  .svcmap-sp .p6{--pc:#5285e8;--pl:#3a6bd0;--pt:#eff3fd}

  /* フェーズ間の縦線＋矢羽根（上から下への一本道であることを示す） */
  .svcmap-sp .sp-ph + .sp-ph:before{content:"";position:absolute;left:20px;top:-18px;width:2px;height:18px;
    background:linear-gradient(180deg,#dfe6e2,var(--pl))}
  .svcmap-sp .sp-ph + .sp-ph:after{content:"";position:absolute;left:17px;top:-10px;width:8px;height:8px;
    border-right:2px solid var(--pl);border-bottom:2px solid var(--pl);transform:rotate(45deg)}

  /* ---- フェーズ見出し帯（文字は濃墨。白文字は使わない） ---- */
  .svcmap-sp .sp-bar{display:flex;align-items:center;gap:9px;min-height:38px;padding:8px 13px;
    background:var(--pc);border-radius:var(--brand-r-xs)}
  .svcmap-sp .sp-no{flex:0 0 auto;display:inline-grid;place-items:center;min-width:27px;height:20px;padding:0 6px;
    border-radius:5px;background:rgba(255,255,255,.7);color:var(--ink);
    font-size:11.5px;font-weight:800;letter-spacing:.06em;line-height:1}
  .svcmap-sp .sp-nm{font-size:13.5px;font-weight:800;letter-spacing:.01em;line-height:1.4;color:var(--ink)}

  /* ---- サービスカード（白地＋フェーズ色の4pxレール） ---- */
  .svcmap-sp .sp-items{margin-top:7px}
  .svcmap-sp .sp-item{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;
    gap:10px;min-height:48px;padding:11px 12px 11px 16px;margin-top:7px;
    background:#fff;border:1px solid var(--line);border-radius:var(--brand-r-xs);
    color:var(--ink);transition:background .18s var(--ease)}
  .svcmap-sp .sp-items .sp-item:first-child{margin-top:0}
  .svcmap-sp .sp-item:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--pl)}
  .svcmap-sp .sp-item:after{content:"\203A";flex:0 0 auto;font-family:"Outfit",sans-serif;font-size:18px;
    font-weight:700;line-height:1;color:var(--pl)}
  .svcmap-sp .sp-itxt{display:block;font-size:13.5px;font-weight:700;line-height:1.5;word-break:auto-phrase}
  .svcmap-sp .sp-item small{display:block;margin-top:3px;font-size:11px;font-weight:500;
    color:var(--ink-3);line-height:1.6}
  .svcmap-sp .sp-item:active{background:var(--pt)}
  .svcmap-sp .sp-item:focus-visible{outline:2px solid var(--g);outline-offset:2px}

  /* ---- 06 → 01 の循環 ---- */
  .svcmap-sp .sp-loop{position:relative;display:flex;align-items:center;gap:10px;margin-top:18px;padding:11px 13px;
    background:var(--paper);border:1px dashed #ccd8d2;border-radius:var(--brand-r-xs);
    font-size:11.5px;line-height:1.7;color:var(--ink-2);word-break:auto-phrase}
  .svcmap-sp .sp-loop:before{content:"";position:absolute;left:19px;top:-19px;width:2px;height:18px;
    background:linear-gradient(180deg,#3a6bd0,#cfd9d4)}
  .svcmap-sp .sp-loop-ic{flex:0 0 auto;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;
    background:linear-gradient(135deg,#cfe0fb,#fbd9d9);color:var(--ink);font-size:16px;font-weight:700;line-height:1}
  .svcmap-sp .sp-loop b{color:var(--ink);font-weight:800}

  /* ---- フェーズ横断・対象別（循環の外にある2件） ---- */
  .svcmap-sp .sp-across{margin-top:18px;padding-top:18px;border-top:1px solid var(--line);--pl:var(--g);--pt:var(--paper)}
  .svcmap-sp .sp-span{display:block;height:4px;border-radius:2px;margin-bottom:10px;
    background:linear-gradient(90deg,#ea6b6b 0 16.6%,#f0913c 16.6% 33.3%,#e6bb39 33.3% 50%,
      #54b45e 50% 66.6%,#3fb1c0 66.6% 83.3%,#5285e8 83.3% 100%)}
  .svcmap-sp .sp-ah{font-size:13px;font-weight:800;color:var(--ink);letter-spacing:.01em;line-height:1.5;margin-bottom:9px}
  /* 複数フェーズをまたぐ1件（ロードマップ＝算定〜改善）はレールを段組みにする */
  .svcmap-sp .sp-multi:before{background:linear-gradient(180deg,#f0913c 0 20%,#e6bb39 0 40%,
    #3d9d47 0 60%,#2296a6 0 80%,#3a6bd0 0)}
  /* 特定フェーズに属さない1件（自治体向け＝対象別）は色を持たせない */
  .svcmap-sp .sp-neutral:before{background:repeating-linear-gradient(135deg,#c3cfc8 0 3px,#e8ede9 3px 7px)}

  /* ---- 図の読み方 ----
     図の直後の1つ目の .fignote は「上段の色帯／緑丸と破線矢印／クリック」と、
     PC版 .svcmap にしか存在しない要素を指す文面のため、この幅では表示と食い違う。
     767px以下に限って隠し、.svcmap-sp 内の .sp-guide に差し替える。
     768px以上（PC版）には一切影響しない。 */
  .svcmap-sp + .fignote{display:none}
  .svcmap-sp .sp-guide{margin:16px 0 0;font-size:11.5px;line-height:1.75;color:var(--ink-3);word-break:auto-phrase}

  /* ---- 元マップ準拠の上書き ----
     見出し帯はPC版フェーズ帯と同じカラフルな6色パレット（各グループが主に関わる
     フェーズの色）。葉っぱ形の角丸は使わず、PC版と同じ均等角にする。 */
  .svcmap-sp .sp-bar{border-radius:7px;color:#fff;justify-content:center}
  .svcmap-sp .sp-nm{color:#fff;font-size:13px}
  .svcmap-sp .sp-ph{margin-top:20px}
  .svcmap-sp .sp-ph + .sp-ph:before,.svcmap-sp .sp-ph + .sp-ph:after{display:none}
  .svcmap-sp .sp-item{padding-left:16px;border-radius:7px;background:var(--paper)}
  .svcmap-sp .sp-item:before{display:none}
  .svcmap-sp .sp-item:after{color:var(--ink-3)}
  .svcmap-sp .sp-item:active{background:#e7edea}

}

/* 320px級の極小幅：カード名を1行に収める */
@media(max-width:339px){
  .svcmap-sp .sp-itxt,.svcmap-sp .sp-nm{font-size:12.5px}
  .svcmap-sp .sp-item{padding-left:14px;padding-right:10px}
}

/* 分析イメージ図（省エネ診断・ロードマップ）
   site.js が 16:9 のカード枠に収まるよう自動縮小する（.fitbox）。
   縦積みにすると縮小率が上がり文字が潰れるため2列を維持し、
   左右の高さ差が出ないよう上揃えにする。 */
.analysisfig .svcgrid{align-items:start}


/* 組み合わせ例カード: 説明は短く、該当サービスはタグで示す
   .svcbox>ul（縦積みflex）より詳細度を上げる必要があるため .svcbox 込みで書く */
.svcbox > ul.combotags,.combotags{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;
  justify-content:center;gap:7px;margin:auto 0 0;padding:6px 18px 18px;list-style:none}
.svcbox > ul.combotags > li,.combotags li{margin:0;background:none;border:0;padding:0}
/* タグは白地＋葉マークのピルで統一（旧: フェーズ色のベタ塗り） */
.combotags .tg{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:var(--ink);
  padding:7px 14px;border-radius:999px;background:#fff;border:1px solid var(--line);
  line-height:1.4;max-width:100%}
.combotags .tg:before{content:"";width:14px;height:8px;background:linear-gradient(135deg,#177a53,#2fae74);border-radius:8px 1.5px 8px 1.5px;flex:0 0 auto}
.combotags .plus{width:20px;height:20px;border-radius:50%;border:1.5px solid var(--g);color:var(--g-d);
  display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;line-height:1}
@media(max-width:400px){.combotags .tg{font-size:11.5px;padding:6px 11px}}

/* ============================================================
   提案書スライドのHTML再現（.sliderep）— 座標・色・フォント比は
   PPTX の設計値から抽出。コンテナクエリ単位 cqw でスライドと同比率に拡縮する
   ============================================================ */
.sliderep{container-type:inline-size;position:relative;aspect-ratio:1.651;background:#fff;
  border:1px solid var(--line);border-radius:12px;overflow:hidden;max-width:1040px;margin-inline:auto;
  font-family:"Noto Sans JP",sans-serif;color:#3B3B3B}
.sliderep>div{position:absolute}
.sliderep .sr-band{background:#3FA8B3;color:#fff;font-weight:900;font-size:3.64cqw;
  display:flex;align-items:center;justify-content:center;letter-spacing:.02em}
.sliderep .sr-h{font-size:1.823cqw;font-weight:900;display:flex;align-items:flex-end;
  justify-content:center;border-bottom:.22cqw solid #3B3B3B;padding-bottom:.6cqw}
.sliderep .sr-note{font-size:1.367cqw;color:#595959}
.sliderep .sr-sub{font-size:1.431cqw;font-weight:800;color:#283C4D;text-align:center}
/* ドーナツ */
.sliderep .sr-donut{aspect-ratio:1;border-radius:50%;
  background:conic-gradient(#3EAC70 0 57.94%,#3FA8B3 57.94% 100%)}
.sliderep .sr-donut i{position:absolute;inset:27.5%;background:#fff;border-radius:50%}
.sliderep .sr-donut .ctr{position:absolute;inset:0;display:flex;flex-direction:column;
  align-items:center;justify-content:center;line-height:1.15}
.sliderep .sr-donut .ctr small{font-size:1.169cqw;font-weight:700;color:#595959}
.sliderep .sr-donut .ctr b{font-size:1.823cqw;font-weight:900}
.sliderep .sr-donut .ctr span{font-size:.78cqw;font-weight:700;color:#595959}
.sliderep .sr-dlbl{display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.2;z-index:1}
.sliderep .sr-dlbl small{font-size:.652cqw;font-weight:700;color:#595959}
.sliderep .sr-dlbl b{font-size:1.302cqw;font-weight:900;color:#283C4D}
.sliderep .sr-dlbl span{font-size:.652cqw;font-weight:700;color:#595959}
.sliderep .sr-leg{display:flex;flex-direction:column;gap:.6cqw;font-size:1.157cqw;color:#595959}
.sliderep .sr-leg span{display:flex;align-items:center;gap:.55cqw;white-space:nowrap}
.sliderep .sr-leg i{width:1.035cqw;height:1.035cqw;flex:0 0 auto}
/* 表 */
.sliderep .sr-tbl table{width:100%;height:100%;border-collapse:collapse;table-layout:fixed}
.sliderep .sr-tbl th,.sliderep .sr-tbl td{font-size:.496cqw;font-weight:500;color:#283C4D;
  padding:0 .3cqw;border:.085cqw solid #fff;overflow:hidden;white-space:nowrap;vertical-align:middle}
.sliderep .sr-tbl .c{text-align:center}.sliderep .sr-tbl .l{text-align:left;padding-left:.6cqw}
.sliderep .sr-tbl tr.h th{background:#3EAC70;color:#fff;font-weight:700}
.sliderep .sr-tbl.t tr.h th{background:#3FA8B3}
.sliderep .sr-tbl tr.z td{background:#F2F2F2}
.sliderep .sr-tbl tr.f td{color:#B3B9BE}
.sliderep .sr-tbl .fade{position:absolute;left:0;right:0;bottom:0;
  background:linear-gradient(rgba(255,255,255,0),#fff 85%);pointer-events:none}
.sliderep .sr-tbl.sum th,.sliderep .sr-tbl.sum td{font-size:.826cqw;white-space:normal}
.sliderep .sr-tbl.sum td small{display:block;font-size:.548cqw;font-weight:400;color:#808080}
.sliderep .sr-dots{font-size:1.583cqw;color:#808080;line-height:1}
.sliderep .sr-arrow{background:#D9D9D9;clip-path:polygon(0 0,100% 0,50% 100%)}
/* 点線パネル + タブ */
.sliderep .sr-panel{border:.195cqw dashed #3B3B3B;background:#fff}
.sliderep .sr-tab{background:#89C997;color:#fff;font-weight:800;font-size:1.431cqw;
  display:flex;align-items:center;justify-content:center;z-index:1}
.sliderep .sr-chk{display:flex;align-items:flex-start;gap:.6cqw;font-size:1.10cqw;
  font-weight:700;line-height:1.35;z-index:1}
.sliderep .sr-chk .ic{flex:0 0 auto;width:1.46cqw;height:1.46cqw;margin-top:.12cqw}
.sliderep .sr-chk .ic svg{width:100%;height:100%;display:block}
.sliderep .sr-chk .noic{width:1.46cqw}
/* end .sliderep */

/* ============================================================
   提案書スライドのHTML再現（.sliderep）— 座標・色・フォント比は
   PPTX の設計値から抽出。コンテナクエリ単位 cqw でスライドと同比率に拡縮する
   ============================================================ */
.sliderep{container-type:inline-size;position:relative;aspect-ratio:1.651;background:#fff;
  border:1px solid var(--line);border-radius:12px;overflow:hidden;max-width:1040px;margin-inline:auto;
  font-family:"Noto Sans JP",sans-serif;color:#3B3B3B}
.sliderep>div{position:absolute}
.sliderep .sr-band{background:#3FA8B3;color:#fff;font-weight:900;font-size:2.91cqw;
  display:flex;align-items:center;justify-content:center;letter-spacing:.02em}
.sliderep .sr-h{font-size:1.458cqw;font-weight:900;display:flex;align-items:flex-end;
  justify-content:center;border-bottom:.22cqw solid #3B3B3B;padding-bottom:.6cqw}
.sliderep .sr-note{font-size:1.367cqw;color:#595959}
.sliderep .sr-sub{font-size:1.145cqw;font-weight:800;color:#283C4D;text-align:center}
/* ドーナツ */
.sliderep .sr-donut{aspect-ratio:1;border-radius:50%;
  background:conic-gradient(#3EAC70 0 57.94%,#3FA8B3 57.94% 100%)}
.sliderep .sr-donut i{position:absolute;inset:27.5%;background:#fff;border-radius:50%}
.sliderep .sr-donut .ctr{position:absolute;inset:0;display:flex;flex-direction:column;
  align-items:center;justify-content:center;line-height:1.15}
.sliderep .sr-donut .ctr small{font-size:1.169cqw;font-weight:700;color:#595959}
.sliderep .sr-donut .ctr b{font-size:1.823cqw;font-weight:900}
.sliderep .sr-donut .ctr span{font-size:.78cqw;font-weight:700;color:#595959}
.sliderep .sr-dlbl{display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.2;z-index:1}
.sliderep .sr-dlbl small{font-size:.652cqw;font-weight:700;color:#595959}
.sliderep .sr-dlbl b{font-size:1.302cqw;font-weight:900;color:#283C4D}
.sliderep .sr-dlbl span{font-size:.652cqw;font-weight:700;color:#595959}
.sliderep .sr-leg{display:flex;flex-direction:column;gap:.6cqw;font-size:1.157cqw;color:#595959}
.sliderep .sr-leg span{display:flex;align-items:center;gap:.55cqw;white-space:nowrap}
.sliderep .sr-leg i{width:1.035cqw;height:1.035cqw;flex:0 0 auto}
/* 表 */
.sliderep .sr-tbl table{width:100%;height:100%;border-collapse:collapse;table-layout:fixed}
.sliderep .sr-tbl th,.sliderep .sr-tbl td{font-size:.496cqw;font-weight:500;color:#283C4D;
  padding:0 .3cqw;border:.085cqw solid #fff;overflow:hidden;white-space:nowrap;vertical-align:middle}
.sliderep .sr-tbl .c{text-align:center}.sliderep .sr-tbl .l{text-align:left;padding-left:.6cqw}
.sliderep .sr-tbl tr.h th{background:#3EAC70;color:#fff;font-weight:700}
.sliderep .sr-tbl.t tr.h th{background:#3FA8B3}
.sliderep .sr-tbl tr.z td{background:#F2F2F2}
.sliderep .sr-tbl tr.f td{color:#B3B9BE}
.sliderep .sr-tbl .fade{position:absolute;left:0;right:0;bottom:0;
  background:linear-gradient(rgba(255,255,255,0),#fff 85%);pointer-events:none}
.sliderep .sr-tbl.sum th,.sliderep .sr-tbl.sum td{font-size:.826cqw;white-space:normal}
.sliderep .sr-tbl.sum td small{display:block;font-size:.548cqw;font-weight:400;color:#808080}
.sliderep .sr-dots{font-size:1.583cqw;color:#808080;line-height:1}
.sliderep .sr-arrow{background:#D9D9D9;clip-path:polygon(0 0,100% 0,50% 100%)}
/* 点線パネル + タブ */
.sliderep .sr-panel{border:.195cqw dashed #3B3B3B;background:#fff}
.sliderep .sr-tab{background:#89C997;color:#fff;font-weight:800;font-size:1.145cqw;
  display:flex;align-items:center;justify-content:center;z-index:1}
.sliderep .sr-chk{display:flex;align-items:flex-start;gap:.6cqw;font-size:1.10cqw;
  font-weight:700;line-height:1.35;z-index:1}
.sliderep .sr-chk .ic{flex:0 0 auto;width:1.46cqw;height:1.46cqw;margin-top:.12cqw}
.sliderep .sr-chk .ic svg{width:100%;height:100%;display:block}
.sliderep .sr-chk .noic{width:1.46cqw}
/* end .sliderep */

/* ============================================================
   提案書スライドのHTML再現（.sliderep）— 座標・色・フォント比は
   PPTX の設計値から抽出。コンテナクエリ単位 cqw でスライドと同比率に拡縮する
   ============================================================ */
.sliderep{container-type:inline-size;position:relative;aspect-ratio:1.651;background:#fff;
  border:1px solid var(--line);border-radius:12px;overflow:hidden;max-width:1040px;margin-inline:auto;
  font-family:"Noto Sans JP",sans-serif;color:#3B3B3B}
.sliderep>div{position:absolute}
.sliderep .sr-band{background:#3FA8B3;color:#fff;font-weight:900;font-size:2.91cqw;
  display:flex;align-items:center;justify-content:center;letter-spacing:.02em}
.sliderep .sr-h{font-size:1.458cqw;font-weight:900;display:flex;align-items:flex-end;
  justify-content:center;border-bottom:.22cqw solid #3B3B3B;padding-bottom:.6cqw}
.sliderep .sr-note{font-size:1.367cqw;color:#595959}
.sliderep .sr-sub{font-size:1.145cqw;font-weight:800;color:#283C4D;text-align:center}
/* ドーナツ */
.sliderep .sr-donut{aspect-ratio:1;border-radius:50%;
  background:conic-gradient(#3EAC70 0 57.94%,#3FA8B3 57.94% 100%)}
.sliderep .sr-donut i{position:absolute;inset:27.5%;background:#fff;border-radius:50%}
.sliderep .sr-donut .ctr{position:absolute;inset:0;display:flex;flex-direction:column;
  align-items:center;justify-content:center;line-height:1.15}
.sliderep .sr-donut .ctr small{font-size:1.169cqw;font-weight:700;color:#595959}
.sliderep .sr-donut .ctr b{font-size:1.823cqw;font-weight:900}
.sliderep .sr-donut .ctr span{font-size:.78cqw;font-weight:700;color:#595959}
.sliderep .sr-dlbl{display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.2;z-index:1}
.sliderep .sr-dlbl small{font-size:.652cqw;font-weight:700;color:#595959}
.sliderep .sr-dlbl b{font-size:1.302cqw;font-weight:900;color:#283C4D}
.sliderep .sr-dlbl span{font-size:.652cqw;font-weight:700;color:#595959}
.sliderep .sr-leg{display:flex;flex-direction:column;gap:.6cqw;font-size:1.157cqw;color:#595959}
.sliderep .sr-leg span{display:flex;align-items:center;gap:.55cqw;white-space:nowrap}
.sliderep .sr-leg i{width:1.035cqw;height:1.035cqw;flex:0 0 auto}
/* 表 */
.sliderep .sr-tbl table{width:100%;height:100%;border-collapse:collapse;table-layout:fixed}
.sliderep .sr-tbl th,.sliderep .sr-tbl td{font-size:.496cqw;font-weight:500;color:#283C4D;
  padding:0 .3cqw;border:.085cqw solid #fff;overflow:hidden;white-space:nowrap;vertical-align:middle}
.sliderep .sr-tbl .c{text-align:center}.sliderep .sr-tbl .l{text-align:left;padding-left:.6cqw}
.sliderep .sr-tbl tr.h th{background:#3EAC70;color:#fff;font-weight:700}
.sliderep .sr-tbl.t tr.h th{background:#3FA8B3}
.sliderep .sr-tbl tr.z td{background:#F2F2F2}
.sliderep .sr-tbl tr.f td{color:#B3B9BE}
.sliderep .sr-tbl .fade{position:absolute;left:0;right:0;bottom:0;
  background:linear-gradient(rgba(255,255,255,0),#fff 85%);pointer-events:none}
.sliderep .sr-tbl.sum th,.sliderep .sr-tbl.sum td{font-size:.826cqw;white-space:normal}
.sliderep .sr-tbl.sum td small{display:block;font-size:.548cqw;font-weight:400;color:#808080}
.sliderep .sr-dots{font-size:1.583cqw;color:#808080;line-height:1}
.sliderep .sr-arrow{background:#D9D9D9;clip-path:polygon(0 0,100% 0,50% 100%)}
/* 点線パネル + タブ */
.sliderep .sr-panel{border:.195cqw dashed #3B3B3B;background:#fff}
.sliderep .sr-tab{background:#89C997;color:#fff;font-weight:800;font-size:1.145cqw;
  display:flex;align-items:center;justify-content:center;z-index:1}
.sliderep .sr-chk{display:flex;align-items:flex-start;gap:.6cqw;font-size:1.10cqw;
  font-weight:700;line-height:1.35;z-index:1}
.sliderep .sr-chk .ic{flex:0 0 auto;width:1.5cqw;height:.85cqw;margin-top:.42cqw}
.sliderep .sr-chk .ic.lf{background:var(--g);border-radius:.85cqw .17cqw .85cqw .17cqw}
.sliderep .sr-chk .noic{width:1.5cqw;background:none}
/* end .sliderep */

/* .sliderep 追加要素（Step2-4用）— gen_step234.py が生成 */
.sliderep .sr-img{display:flex;align-items:center;justify-content:center}
.sliderep .sr-img img{max-width:100%;max-height:100%;object-fit:contain}
.sliderep .sr-iclab{font-size:1.145cqw;font-weight:800;color:#3B3B3B;text-align:center;line-height:1.3}
.sliderep .sr-sub2{font-size:1.458cqw;font-weight:900;color:#283C4D;display:flex;align-items:center}
.sliderep .sr-gbox{background:#89C997;color:#fff;font-weight:800;font-size:1.145cqw;line-height:1.35;
  display:flex;align-items:center;justify-content:center;text-align:center}
.sliderep .sr-tbl.g2 tr.h th{background:#278957}
.sliderep .sr-tbl.big th,.sliderep .sr-tbl.big td{font-size:.72cqw;white-space:normal;line-height:1.3}
.sliderep .sr-tbl td .rd{color:#E0322B;font-weight:700}
.sliderep .sr-chart svg{width:100%;height:100%;display:block}
.sliderep .sr-chart .tt{font-size:24px;font-weight:800;fill:#3B3B3B}
.sliderep .sr-chart .vl text{font-size:26px;font-weight:800;fill:#283C4D}
.sliderep .sr-chart .cat text{font-size:24px;font-weight:800;fill:#3B3B3B}
/* end .sliderep234 */

/* roadmap: 概要2カードの本文を一段大きく（コメント対応） */
.svcgrid.lgtext .svcbox>ul>li{font-size:13.5px}
/* 事例カード: 葉っぱの箇条書き＋上から順に取り組んだことを示す下向き矢印 */
.svcbox ul.caseflow{gap:16px;padding:16px}
.svcbox ul.caseflow>li{background:none;border:0;border-radius:0;padding:2px 0 2px 28px;position:relative;font-size:13px}
.svcbox ul.caseflow>li:before{content:"";position:absolute;left:2px;top:8px;width:17px;height:9.5px;background:var(--g);border-radius:9.5px 2px 9.5px 2px}
.svcbox ul.caseflow>li:not(:last-child):after{content:"↓";position:absolute;left:6px;bottom:-16px;font-size:12px;font-weight:800;color:var(--g-d)}
/* 関連サービス: vcard 型のリンクカード（詳しく見るは下部のまま） */
a.vcard{display:block;color:inherit}
/* 関連サービス: 枠あり・左揃え・下部に「詳しくみる」ボタンのリンクカード */
a.vcard.lnkcard{display:flex;flex-direction:column;text-align:left;padding:26px 24px 22px}
a.vcard.lnkcard .icn{margin:0 0 6px;width:auto;height:auto}
a.vcard.lnkcard .icn svg{width:40px;height:40px}
a.vcard.lnkcard h3{font-size:17.5px;margin:0 0 10px;word-break:auto-phrase}
a.vcard.lnkcard p{font-size:13px;color:var(--ink-2);line-height:1.85;margin:0;word-break:auto-phrase}
a.vcard.lnkcard .rel{margin-top:6px;font-size:12px;color:var(--ink-3);flex:1}
a.vcard.lnkcard .more{display:flex;align-items:center;justify-content:center;position:relative;
  margin-top:auto;padding:11px 34px;border:1.5px solid var(--ink-2);border-radius:7px;
  font-size:13.5px;font-weight:800;color:var(--ink);transition:.2s var(--ease)}
a.vcard.lnkcard .more{margin-top:18px}
a.vcard.lnkcard .more .en{position:absolute;right:14px;top:50%;translate:0 -50%;font-weight:800}
a.vcard.lnkcard:hover{transform:translateY(-3px);box-shadow:0 14px 26px -14px rgba(20,80,60,.35)}
a.vcard.lnkcard:hover .more{background:var(--g-d);border-color:var(--g-d);color:#fff}

/* 事例カードのヘッダーアイコンと、順番入りの葉っぱ番号 */
.svcbox>h3.hico{display:flex;align-items:center;gap:9px}
.svcbox>h3.hico .ic{width:17px;height:17px;stroke:#fff;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
.svcbox>h3.hico .cm{margin-left:auto;font-size:10.5px;font-weight:700;color:#eafff4;opacity:.92;text-align:right;line-height:1.4}
.svcbox>h3.hico .cno{background:#fff;color:var(--g-d);font-size:10.5px;font-weight:800;border-radius:999px;padding:2px 9px;flex:0 0 auto;line-height:1.5}
.svcbox ul.caseflow{counter-reset:cf}
.svcbox ul.caseflow>li:before{counter-increment:cf;content:counter(cf);width:21px;height:13px;top:6px;
  border-radius:13px 3px 13px 3px;color:#fff;font-size:9.5px;font-weight:800;line-height:13px;text-align:center}

/* 写真つき強みカード（枠あり・写真は上端いっぱい・左揃え） */
.pcards{gap:30px}
.pcard{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;text-align:left;
  display:flex;flex-direction:column;transition:.25s var(--ease)}
.pcard:hover{transform:translateY(-5px);box-shadow:0 18px 34px -20px rgba(20,80,60,.45);border-color:var(--g)}
.pcard .ph{aspect-ratio:16/10;overflow:hidden}
.pcard .ph img{width:100%;height:100%;object-fit:cover;display:block}
.pcard h3{font-size:17.5px;font-weight:900;letter-spacing:.01em;margin:20px 22px 10px;word-break:auto-phrase}
.pcard p{font-size:13px;color:var(--ink-2);line-height:1.9;margin:0 22px 22px}
@media(max-width:600px){.pcards{gap:24px}.pcard .ph{aspect-ratio:16/9}}

/* 考え方3カード: 強みの写真カードと同じ表示（枠・左揃え・同じ文字階層）。写真の代わりにアイコン */
.waycards .vcard{text-align:left;padding:24px 24px 22px}
.waycards .vcard .icn{margin:0 0 12px;width:auto;height:auto}
.waycards .vcard h3{display:block;min-height:0;text-align:left;font-size:17.5px;margin:0 0 10px;line-height:1.5}
.waycards .vcard p{text-align:left;font-size:13px;color:var(--ink-2);line-height:1.9}

/* サービス概要カード: 画像エリアつきカード（写真が届くまではグラデ＋アイコン） */
.pcard .ph.gph{background:linear-gradient(135deg,var(--g),var(--teal));display:grid;place-items:center;aspect-ratio:16/7.5}
.pcard .ph.gph svg{width:46px;height:46px;stroke:#fff;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.ovcards .pcard{text-align:center}
.ovcards .pcard h3{font-size:16.5px;margin:16px 20px 8px}
.ovcards .pcard p{font-size:12.5px;margin:0 20px 18px}

/* 画像つきリンクカード（関連サービス）と 強みカード共通の本文まわり */
.pcard p+p{margin-top:-10px}
a.pcard.lcard{color:inherit}
a.pcard.lcard h3{font-size:16.5px;margin:16px 20px 8px}
a.pcard.lcard p{font-size:12.5px;margin:0 20px 8px;color:var(--ink-2);line-height:1.85;word-break:auto-phrase}
a.pcard.lcard .rel{font-size:12px;color:var(--ink-3);margin-bottom:14px}
a.pcard.lcard .more{display:flex;align-items:center;justify-content:center;position:relative;
  margin:auto 20px 18px;padding:10px 34px;border:1.5px solid var(--ink-2);border-radius:7px;
  font-size:13px;font-weight:800;color:var(--ink);transition:.2s var(--ease)}
a.pcard.lcard .more .en{position:absolute;right:14px;top:50%;translate:0 -50%;font-weight:800}
a.pcard.lcard:hover .more{background:var(--g-d);border-color:var(--g-d);color:#fff}
.pcard .ph.gph svg{width:46px;height:46px;stroke:#fff;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

/* 組み合わせ方: 4枚を横一列に並べた縦長カード */
.svcgrid.quad{grid-template-columns:repeat(4,1fr)}
.svcgrid.quad .combotags{flex-direction:column;align-items:center;gap:6px}
@media(max-width:980px){.svcgrid.quad{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.svcgrid.quad{grid-template-columns:1fr}}

/* 算定式: 説明文を上揃え、例リストの箱の高さを統一 */
.formfig .fpanel .fcols>div{display:flex;flex-direction:column;justify-content:flex-start}
.formfig .fpanel .fcols p{margin-top:0}
.formfig .ftick li{min-height:68px;display:flex;align-items:center}
/* 関連サービス: ボタンを小ぶりに、画像エリアを少し縦長に */
a.pcard.lcard .more{margin:auto auto 16px;padding:6px 30px 6px 22px;font-size:12.5px;align-self:center;min-width:46%}
a.pcard.lcard .more .en{right:10px}
a.pcard.lcard .ph{aspect-ratio:16/9}
a.pcard.lcard .ph img{transition:transform .6s var(--ease)}
a.pcard.lcard:hover .ph img{transform:scale(1.06)}

/* 所在地カード: Google Map リンクを左右カードで下端に揃える */
.vcard.addr{display:flex;flex-direction:column}
.vcard.addr .lnk{margin-top:auto;padding-top:14px}
/* 関連サービス4列時は文字を少し詰める */
.grid.g4 a.pcard.lcard h3{font-size:15px;margin:14px 16px 6px}
.grid.g4 a.pcard.lcard p{font-size:12px;margin:0 16px 6px}
.grid.g4 a.pcard.lcard .rel{margin-bottom:12px}
.grid.g4 a.pcard.lcard .more{padding:6px 24px 6px 16px;font-size:12px;min-width:60%}

/* 概要の飾り画像: 四角形の左辺だけ斜めに切れ、切り口がゆっくり白へボケるマスク */
.prose .decoimg{position:relative;float:right;width:min(470px,46%);aspect-ratio:16/10;margin:0 0 18px 22px}
.prose .decoimg img{width:100%;height:100%;object-fit:cover;display:block;border-radius:14px;
  -webkit-mask-image:linear-gradient(128deg,transparent 37.5%,#000 41%);
  mask-image:linear-gradient(128deg,transparent 37.5%,#000 41%)}
.prose .decoimg::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(128deg,transparent 29%,var(--teal) 29.4%,var(--teal) 30.6%,transparent 31%),
    linear-gradient(128deg,transparent 33%,var(--g) 33.4%,var(--g) 35.4%,transparent 35.8%)}
.twocol.diagram > figure{clear:both}
.prose:has(.decoimg){display:flow-root}
@media(max-width:640px){.prose .decoimg{float:none;width:88%;margin:0 auto 14px}}

/* service page photo cards (agent C) */
.cardgrid .svcbox.hasico > .ph{aspect-ratio:16/9;overflow:hidden}
.cardgrid .svcbox.hasico > .ph img{width:100%;height:100%;object-fit:cover;display:block}
.waycards .vcard.pcard{padding:0}
.waycards .vcard.pcard .ph{aspect-ratio:16/9}
.waycards .vcard.pcard h3{margin:16px 20px 8px}
.waycards .vcard.pcard p{margin:0 20px 20px}

/* demandrep: EMSデマンド制御スライドの忠実再現（提供画像準拠） */
.demandrep{position:relative;width:100%;max-width:920px;margin:0 auto;aspect-ratio:1991/1113;container-type:inline-size;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.demandrep .dr-t1{position:absolute;top:2.2%;left:0;right:0;text-align:center;font-weight:800;font-size:3.05cqw;line-height:1.25;color:#1a1a1a}
.demandrep .dr-t2{position:absolute;top:10.2%;left:0;right:0;text-align:center;font-weight:800;font-size:3.05cqw;line-height:1.25;color:#0070c0}
.demandrep .dr-tbl{position:absolute;left:1.6%;top:20.8%;width:23.2%;height:71.2%}
.demandrep .dr-tbl table{width:100%;height:100%;border-collapse:separate;border-spacing:0.16cqw;table-layout:fixed}
.demandrep .dr-tbl th{background:#6fc492;color:#fff;font-weight:700;font-size:1.85cqw;line-height:1.35;text-align:center;vertical-align:middle;height:24%}
.demandrep .dr-tbl th:first-child{width:46%}
.demandrep .dr-tbl td{background:#e9e9e9;font-size:1.85cqw;line-height:1.3;color:#333;vertical-align:middle;text-align:center}
.demandrep .dr-tbl td:last-child{text-align:right;padding-right:1.2cqw}
.demandrep .dr-grid{position:absolute;left:27.8%;width:58%;height:1px;background:#d9d9d9}
.demandrep .dr-axis{position:absolute;left:85.8%;top:25.6%;height:64%;width:0.16cqw;background:#7f7f7f}
.demandrep .dr-y{position:absolute;left:87.6%;transform:translateY(-50%);font-size:2.1cqw;font-weight:600;color:#1a1a1a}
.demandrep .dr-bar{position:absolute;bottom:10.4%;width:8.6%;background:#3fa8b3}
.demandrep .dr-v{position:absolute;transform:translateX(-50%);font-size:2cqw;font-weight:700;color:#595959}
.demandrep .dr-x{position:absolute;top:91.2%;transform:translateX(-50%);font-size:1.7cqw;font-weight:700;color:#6b625f;white-space:nowrap}
.demandrep .dr-zone{position:absolute;left:39.6%;top:39.9%;width:46.9%;height:57.4%;border:0.24cqw dashed #e60012;border-radius:1.6cqw;background:rgba(230,0,18,.06)}
.demandrep .dr-ann{position:absolute;left:39.6%;top:46%;width:48.2%;display:flex;flex-direction:column;align-items:center;gap:0.4cqw}
.demandrep .dr-ann b{font-size:3.3cqw;font-weight:800;line-height:1.2}
.demandrep .dr-ann b.r{color:#e60012}
.demandrep .dr-ann b.b{color:#0070c0}
.demandrep .dr-ann span{font-size:2.7cqw;font-weight:700;color:#333;line-height:1}
/* end .demandrep */

/* モバイルでも図が横スクロールなしで収まるように（コメント対応） */
@media(max-width:700px){
  /* 全体像の図はモバイルで左右パディング分まで広げて表示（コメント対応） */
  .emscloud-fig{width:calc(100% + 64px)!important;max-width:none!important;margin-left:-32px!important;margin-right:-32px!important}
  .emscloud-fig img{min-width:0!important;width:100%!important;max-width:none!important}
  .emscloud-fig > div{overflow-x:visible!important}
  /* viewBox付きSVG・画像は縮小できるので、モバイルでは最小幅を外して横スクロールをなくす */
  .htmlfig svg[viewBox]{min-width:0!important}
  .htmlfig [style*="overflow-x:auto"]{overflow-x:visible!important}
  .htmlfig .statrow{grid-template-columns:repeat(3,1fr);gap:8px}
  .htmlfig .bignum{gap:2px}
  .htmlfig .bignum b{font-size:19px}
  .htmlfig .bignum .u{font-size:10px;margin-left:0}
  .htmlfig .statrow .lab{font-size:10px;line-height:1.45}
  .minibars{gap:4px;height:130px}
  .minibars .mo{gap:1.5px}
  .mblabs{gap:2px}
  .mblabs span{font-size:7.5px}
}
/* end mobile-fig */

/* モバイル: 横スクロールをなくし、上から下に読める形へ（コメント対応） */
@media(max-width:700px){
  /* ガント: ラベルを上、帯を下に積んで全幅に収める */
  .gantt{min-width:0!important;font-size:11px}
  .gantt .ghead{grid-template-columns:1fr}
  .gantt .ghead>div:first-child{display:none}
  .gantt .months div{font-size:8.5px;padding:6px 1px;line-height:1.2}
  .gantt .grow{grid-template-columns:1fr;padding-bottom:6px}
  .gantt .grow .lab{padding:9px 10px 2px 30px;text-indent:-20px;border-right:0!important;font-size:11.5px}
  .gantt .track{height:20px}
  .gantt .bar{top:4px;bottom:4px}
  /* データ表: 折り返して全幅に収める */
  .tablewrap{overflow-x:visible}
  .tablewrap table,.dtable{min-width:0!important;width:100%;table-layout:fixed}
  .dtable th,.dtable td{font-size:10.5px;padding:7px 5px;line-height:1.45;word-break:auto-phrase;overflow-wrap:anywhere}
  .dtable th small,.dtable td small{display:block;overflow-wrap:anywhere}
  /* 6列以上ある比較表は1画面に詰めきれない。表の中だけ横スクロールさせ、ページ自体は広げない */
  .tablewrap:has(.dtable.compact){overflow-x:auto}
  .tablewrap:has(.dtable.compact) .dtable{min-width:520px!important;table-layout:auto}
  /* 支援の進め方: 1列の横長カード（アイコン左・テキスト右）で上から下に読ませる */
  .flow{grid-template-columns:minmax(0,1fr)!important;gap:10px}
  .flow .fs{min-width:0}
  .flow .fs{flex-direction:row;align-items:flex-start;text-align:left;padding:14px 16px;gap:14px}
  .flow .fs .stepico{flex-direction:column;align-items:center;gap:4px;margin:0;flex:0 0 58px}
  .flow .fs .stepico .num{white-space:nowrap;font-size:10px;letter-spacing:.1em}
  .flow .fs h3,.flow .fs h4{min-height:0;max-width:none;display:block;text-align:left;margin-bottom:4px}
  .flow .fs p{text-align:left}
  .flow .fs > div:not(.stepico),.flow .fs .fstxt{flex:1;min-width:0}
}
/* end mobile-fig2 */
/* 組み合わせカードの本文は文節折返しをやめ通常の折返しに（コメント対応） */
.cardgrid .svcbox.hasico > ul > li{word-break:normal}
/* about: MISSION/VISION 日本語併記・緑強調（コメント対応） */
.mv .b .k .jp{font-family:"Noto Sans JP",sans-serif;font-weight:700;letter-spacing:.08em;margin-left:10px;font-size:12px}
.prose b.gtx{color:var(--g-d)}
/* recruit: 募集停止中の告知（コメント対応） */
.rhero .rnotice{display:inline-block;background:#fff;border-left:6px solid #e0a10f;color:#7a5b00;font-weight:800;font-size:14px;line-height:1.6;padding:12px 20px;border-radius:10px;margin-bottom:26px;box-shadow:0 10px 26px -16px rgba(0,0,0,.35)}
/* about: 代表挨拶ミニタイトル・緑カード・MVの折返し（コメント対応） */
.greeting-grid .prose .gh{display:flex;align-items:center;gap:9px;font-size:18px;font-weight:800;color:var(--g-d);margin:28px 0 10px}
.greeting-grid .prose .gh:first-child{margin-top:0}
.greeting-grid .prose .gh:before{content:"";width:16px;height:9px;background:var(--g);border-radius:9px 2px 9px 2px;flex:0 0 auto}
.mv .b p{word-break:auto-phrase}
.gval .vcard{background:linear-gradient(135deg,#177a53,#2fae74);border-color:transparent}
.gval .vcard:hover{border-color:transparent}
.gval .vcard h3{color:#fff}
.gval .vcard p{color:#eaf6ef}
.gval .vcard .n{color:#d8f3e4}
.gval .vcard .icn{background:none}
.gval .vcard .icn svg{stroke:#fff}
.gval .vcard h3{font-size:clamp(18px,2.2vw,23px)}
@media(max-width:1080px){.mv .b p br{display:none}}
@media(min-width:1081px){.mv .b p{font-size:21px}}
.gval .vcard h3 .n{display:inline;font-size:.75em;margin-right:10px;color:#d8f3e4}
/* recruit: 1日の流れ 見出し+画像（コメント対応） */
.dayh{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.dayh img{width:104px;aspect-ratio:16/10;object-fit:cover;border-radius:10px;flex:0 0 auto}
.dayh h4{font-size:15px;font-weight:900}

/* about: バリュー/価値カードの写真化 (agent) */
.pcards .pcard h3 .n{display:inline;font-size:.75em;margin-right:10px;color:var(--g)}

/* about: MISSION/VISION を写真カードに (agent) */
.mv .b{position:relative;overflow:hidden;min-height:280px;display:flex;flex-direction:column;justify-content:flex-end}
.mv .b .bgp{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.mv .b:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.58),rgba(0,0,0,.3) 55%,rgba(0,0,0,.14));z-index:1}
.mv .b .k,.mv .b p{position:relative;z-index:2}
@media(max-width:820px){.mv .b{min-height:220px}}
/* about: バリューもミッション・ビジョンと同じ写真カードに（コメント対応） */
.mv.mv3{grid-template-columns:repeat(3,1fr)}
.mv.mv3 .b{min-height:240px;padding:36px 30px}
.mv.mv3 .b:after{background:linear-gradient(to top,rgba(255,255,255,.6),rgba(255,255,255,.51) 55%,rgba(255,255,255,.35))}
.mv.mv3 .b{color:var(--ink)}
.mv.mv3 .b .k{color:var(--g-dd);opacity:1}
.mv.mv3 .b .k .jp{color:var(--ink)}
.mv.mv3 .b p{color:var(--ink)}
.mv.mv3 .b p{font-size:15px;font-weight:700;line-height:1.75;margin-top:8px}
.mv.mv3 .b .k .jp{font-size:19px;font-weight:900;letter-spacing:.02em}
@media(max-width:820px){.mv.mv3{grid-template-columns:1fr}}
/* recruit: 1日の流れを左右2カラムに（コメント対応） */
.daycols{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start}
.daycols .dayh{margin-top:0!important}
@media(max-width:760px){.daycols{grid-template-columns:1fr;gap:8px}}
/* recruit: 先輩の声・働きやすさカードを緑の塗りつぶしに（コメント対応） */
.voices .v{background:linear-gradient(135deg,#177a53,#2fae74);border-color:transparent;color:#fff}
.voices .v:before{color:#fff;opacity:.16}
.voices .v .av{background:rgba(255,255,255,.2);color:#fff}
.voices .v .top b{color:#fff}
.voices .v .top span{color:#d8f3e4}
.voices .v h4{color:#fff}
.voices .v p{color:#eaf6ef}
.workstyle .ws{background:linear-gradient(135deg,#177a53,#2fae74);border-color:transparent}
.workstyle .ws:hover{border-color:transparent}
.workstyle .ws .ico{background:rgba(255,255,255,.2)}
.workstyle .ws:hover .ico{background:rgba(255,255,255,.28)}
.workstyle .ws h4{color:#fff}
.workstyle .ws p{color:#eaf6ef}

/* recruit: 写真追加 (agent) */
.rhero .rbg{position:absolute;inset:0;z-index:0}
.rhero .rbg img{width:100%;height:100%;object-fit:cover;opacity:.42}
.rhero:before{content:"";position:absolute;inset:0;z-index:1;background:
  radial-gradient(1200px 600px at 80% 20%,rgba(70,191,142,.15),transparent 55%),
  radial-gradient(800px 500px at 10% 85%,rgba(42,166,189,.12),transparent 55%),
  linear-gradient(160deg,rgba(0,0,0,.7),rgba(0,0,0,.5) 45%,rgba(0,0,0,.66));
  pointer-events:none}
.rhero:after{z-index:1}
.rfig{margin:0 0 34px;border-radius:16px;overflow:hidden}
.rfig img{width:100%;aspect-ratio:21/8;object-fit:cover;display:block}
.rstrip{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:28px}
.rstrip figure{margin:0;border-radius:14px;overflow:hidden;position:relative;background:#000}
.rstrip img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;transition:transform .6s var(--ease)}
.rstrip figure:hover img{transform:scale(1.05)}
.rstrip figcaption{position:absolute;left:0;right:0;bottom:0;padding:26px 16px 12px;color:#fff;font-size:13px;font-weight:800;background:linear-gradient(to top,rgba(0,0,0,.78),transparent)}
@media(max-width:760px){.rstrip{grid-template-columns:1fr}}
/* recruit: カードを背景写真＋緑オーバーレイに / ヒーローは黒の薄いスクリムに（コメント対応） */
.rhero .rbg img{opacity:.62}
.rhero:before{background:linear-gradient(to bottom,rgba(0,0,0,.62),rgba(0,0,0,.42) 45%,rgba(0,0,0,.58))!important}
.workstyle .ws[style*="--wsimg"]{background:linear-gradient(to top,rgba(0,0,0,.82),rgba(0,0,0,.6) 55%,rgba(0,0,0,.42)),var(--wsimg) center/cover}
.svfacts .f[style*="--fbg"]{background:linear-gradient(to top,rgba(0,0,0,.78),rgba(0,0,0,.58) 55%,rgba(0,0,0,.44)),var(--fbg) center/cover}
.rstrip img{aspect-ratio:auto;height:273px}
@media(max-width:760px){.rstrip img{height:200px}}
/* recruit: 写真カードの高さを20%拡大（コメント対応） */
.workstyle .ws[style*="--wsimg"]{min-height:328px}
.svfacts .f[style*="--fbg"]{min-height:158px;display:flex;flex-direction:column;justify-content:center}
@media(max-width:760px){.workstyle .ws[style*="--wsimg"]{min-height:0}}
/* recruit: 働きやすさは高さを抑え、写真カードの文字は下寄せ（コメント対応） */
.workstyle.wsbenefit .ws[style*="--wsimg"]{min-height:284px}
.workstyle .ws[style*="--wsimg"]{display:grid;grid-template-columns:auto 1fr;gap:18px;align-content:end;align-items:start}
@media(max-width:760px){.workstyle.wsbenefit .ws[style*="--wsimg"]{min-height:0}}
/* 右寄りのメニューの広いドロップダウンは画面外へ出ないよう右端合わせに（コメント対応） */
@media(min-width:981px){
  header.site nav > ul > li.has-dd:nth-last-child(2) > .dd{left:auto;right:0;transform:none}
}
/* recruit: 写真カードの見出し・本文の高さを揃える（コメント対応） */
@media(min-width:761px){
  .workstyle .ws[style*="--wsimg"] h4{min-height:2.8em;display:flex;align-items:flex-end}
  .workstyle .ws[style*="--wsimg"] p{min-height:10.8em}
  .workstyle.wsbenefit .ws[style*="--wsimg"] p{min-height:9em}
}
/* コメント対応: 文字サイズ・角丸の調整 */
.msg .body .lnk,#hl .top .lnk{font-size:15px}
.workstyle .ws h4{font-size:19px}
.workstyle .ws p{font-size:14.5px}
.rhero .rmeta a{border-radius:12px}
/* コンサルタント紹介: 少人数でも成立する並び（中央寄せ・固定幅） */
.memgrid>.memcard{--avatar:120px}
.memgrid>.memcard .ph{margin:0 auto}
.memgrid>.memcard .bd{text-align:center}
.memgrid>.memcard .role{border-bottom:0;padding-bottom:0;margin-top:9px;color:var(--ink-3);font-size:12.5px}
.memgrid>.memcard .nm{font-size:17px}
.memgrid>.memcard .nm small{margin-top:4px}
/* サービスページのヒーロー見出しに通し番号（コメント対応） */
.phero h1 .svcno{display:inline-block;margin-right:.6em;font-weight:800;font-size:.62em;
  letter-spacing:.06em;color:rgba(255,255,255,.72);vertical-align:.12em}
/* コンサルタント紹介: 写真なしの名前カード（公開前整理） */
.memgrid>.memcard{flex:0 0 210px;max-width:210px;background:#fff;border:1px solid var(--line);
  border-top:3px solid var(--g);border-radius:4px;padding:22px 18px;text-align:center}
.memgrid>.memcard .bd{padding:0}
.memgrid>.memcard .nm{font-size:18px}
.memgrid>.memcard .nm small{margin-top:5px}
.memgrid>.memcard .role{margin-top:10px;padding-top:10px;border-top:1px solid var(--line);
  border-bottom:0;padding-bottom:0;color:var(--ink-3);font-size:12.5px}
.memgrid{align-items:stretch}
.memgrid>.memcard{display:flex;flex-direction:column}
.memgrid>.memcard .bd{flex:1;display:flex;flex-direction:column}
.memgrid>.memcard .cp{margin-top:auto;padding-top:10px;font-size:11.5px;line-height:1.7;text-align:left}
@media(max-width:1040px){.memgrid>.memcard{flex:0 0 172px;max-width:172px;padding:18px 14px}}
@media(max-width:760px){.memgrid>.memcard{flex:0 0 150px;max-width:150px}}
/* コンサルタント紹介: 全カードを同じ高さに（列数固定のグリッド） */
.memgrid{display:grid!important;grid-template-columns:repeat(5,1fr);grid-auto-rows:1fr;justify-content:center;gap:22px}
.memgrid>.memcard{flex:none!important;max-width:none!important;width:auto}
@media(max-width:1040px){.memgrid{grid-template-columns:repeat(3,1fr);gap:18px}}
@media(max-width:640px){.memgrid{grid-template-columns:repeat(2,1fr)}}
/* Pardot 埋め込みフォーム（高さはフォームごとの実測値＋エラー表示ぶんの余白） */
.pardotwrap{max-width:760px}
.pardotform{width:100%;max-width:700px;border:0;display:block}
.pf-contact{min-height:1400px}
.pf-entry{min-height:1260px}
@media(max-width:760px){.pf-contact{min-height:1520px}.pf-entry{min-height:1360px}}
/* 決算公告のPDF一覧 */
.findocs{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
.findocs a{display:flex;flex-direction:column;gap:2px;padding:13px 16px;background:#fff;
  border:1px solid var(--line);border-left:3px solid var(--g);border-radius:3px;
  font-weight:700;font-size:14px;color:var(--ink);text-decoration:none;transition:.2s}
.findocs a span{font-size:12px;font-weight:400;color:var(--ink-2)}
.findocs a::after{content:"PDF";align-self:flex-end;margin-top:2px;font-size:10px;font-weight:700;
  letter-spacing:.06em;color:var(--g);border:1px solid currentColor;border-radius:2px;padding:0 5px}
.findocs a:hover{border-color:var(--g);box-shadow:0 4px 14px rgba(0,0,0,.08)}
/* 関連サービスのカードは中央揃え */
.grid.g4 .pcard.lcard{text-align:center}
/* アンカー移動時に固定ヘッダーへ潜り込まないようにする */
html{scroll-padding-top:96px}

/* 白文字を載せる面は濃いグラデーションにする（文字自体をグラデにする箇所は対象外） */
:root{--grad-on:linear-gradient(100deg,#177a53,#218193)}
.btn,
header.site .cta,
.strength .s .icn,
.svcnav a.on,
.svcmap a.box:hover,
.nfilter button.on,
.figbar,
.svcbox>h5,.svcbox>h3{background:var(--grad-on)}

/* 白文字を載せるチップ・ボタンは濃い緑にして可読性を確保（WCAG AA） */
.ncard .ph .cat{background:var(--g-d)}
.nlist .cat.sem{background:var(--g-d)}
.wcard .cat{background:var(--g-d)}
.ncard .stags a:hover{background:var(--g-d)}
footer.site .tagline,footer.site .copy{color:#5f6a63}

/* 提案書スライドの再現図は情報量が多く、スマホ幅まで縮めると文字が5px前後になり読めない。
   画面に合わせて縮小するのではなく、読める大きさのまま図の中だけ横スクロールさせる。 */
@media(max-width:760px){
  .srscroll{overflow-x:auto;-webkit-overflow-scrolling:touch;
    margin-inline:calc(50% - 50vw);padding-inline:22px}
  .srscroll>.sliderep{min-width:840px}
  .srscroll:before{content:"横にスクロールできます →";display:block;
    font-size:11.5px;color:var(--ink-3);margin-bottom:8px;letter-spacing:.02em}
}

/* 資料ダウンロードのカード */
.dlgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:22px}
.dlgrid.one{grid-template-columns:minmax(0,420px)}
.dlcard{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);
  border-radius:4px;overflow:hidden;text-decoration:none;transition:.22s var(--ease)}
.dlcard:hover{border-color:var(--g);box-shadow:0 12px 26px -14px rgba(20,80,60,.4);transform:translateY(-2px)}
.dlcard .ph{aspect-ratio:16/9;background:var(--paper);overflow:hidden;border-bottom:1px solid var(--line)}
.dlcard .ph img{width:100%;height:100%;object-fit:cover;display:block}
.dlcard .bd{padding:18px 20px 20px;display:flex;flex-direction:column;gap:7px;flex:1}
.dlcard .no{font-family:"Outfit";font-weight:800;font-size:13px;color:var(--g-d);letter-spacing:.08em}
.dlcard h3{font-size:15.5px;font-weight:800;line-height:1.6;color:var(--ink);margin:0}
.dlcard p{font-size:13px;color:var(--ink-2);line-height:1.8;margin:0}
.dlcard .more{margin-top:auto;padding-top:12px;display:flex;align-items:center;gap:8px;
  font-size:13px;font-weight:700;color:var(--g-d)}
.dlcard .more em{font-style:normal;margin-left:auto;font-size:11.5px;font-weight:400;color:var(--ink-3)}
.dlcard:hover .more .ar{transform:translateY(3px)}
.dlcard .more .ar{transition:transform .22s var(--ease)}

/* 数値の掲載準備中であることを示す注記 */
.alert-note{background:#fbf6e9;border:1px solid #d9c48a;border-left-width:3px;
  border-radius:3px;padding:15px 18px;font-size:13.5px;line-height:1.9;color:var(--ink-2);max-width:64em}
.alert-note b{color:#7a5a10}

/* ===== 排出量グラフ（HTML/CSS製。SVGだとスマホで文字が縮むため） ===== */
.echart{margin:0 0 34px;padding:22px 22px 18px;background:#fff;border:1px solid var(--line);border-radius:12px}
.echart figcaption{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;margin-bottom:18px}
.echart figcaption b{font-size:15px;color:var(--ink)}
.echart figcaption span{font-size:12px;color:var(--ink-3)}
.echart .ebody{display:grid;grid-template-columns:30px 1fr;gap:0 8px}
.echart .yax{position:relative;height:220px;font-size:11px;color:var(--ink-3);font-variant-numeric:tabular-nums;text-align:right}
.echart .yax span{position:absolute;right:0;transform:translateY(-50%)}
.echart .yax span:nth-child(1){top:0}.echart .yax span:nth-child(2){top:25%}.echart .yax span:nth-child(3){top:50%}
.echart .yax span:nth-child(4){top:75%}.echart .yax span:nth-child(5){top:100%}
.echart .plot{position:relative;display:grid;grid-template-columns:repeat(8,1fr);align-items:end;height:220px;
  border-bottom:1px solid var(--line);padding:0 4px}
.echart .grid{position:absolute;inset:0;pointer-events:none}
.echart .grid i{position:absolute;left:0;right:0;border-top:1px solid var(--paper-2)}
.echart .grid i:nth-child(1){top:0}.echart .grid i:nth-child(2){top:25%}.echart .grid i:nth-child(3){top:50%}.echart .grid i:nth-child(4){top:75%}
.echart .col{position:relative;height:calc(var(--v) / 20 * 100%);display:flex;flex-direction:column;justify-content:flex-end;align-items:center;
  background:none;border:0;padding:0;margin:0;cursor:default;font:inherit;color:inherit;min-width:0}
.echart .col:focus-visible{outline:2px solid var(--g);outline-offset:2px;border-radius:4px}
.echart .bar{display:block;width:22px;max-width:60%;height:100%;background:var(--g-d);border-radius:4px 4px 0 0;transition:opacity .15s}
.echart .plot:has(.col.on) .col:not(.on) .bar{opacity:.55}
.echart .val{position:absolute;bottom:100%;margin-bottom:6px;font-size:12px;font-weight:700;color:var(--ink);white-space:nowrap;
  font-variant-numeric:tabular-nums;display:flex;flex-direction:column;align-items:center;line-height:1.3}
.echart .val small{font-size:10.5px;font-weight:700;color:var(--g-d)}
.echart .tip{position:absolute;transform:translateX(-50%);background:var(--ink);color:#fff;border-radius:6px;padding:8px 11px;
  font-size:12px;line-height:1.5;white-space:nowrap;pointer-events:none;z-index:2;box-shadow:0 8px 20px -10px rgba(0,0,0,.4)}
.echart .tip b{display:block;font-size:11px;color:#cfe8da;font-weight:700}
.echart .tip span{display:block;font-size:11px;color:#cfe8da}
.echart .tip:after{content:"";position:absolute;left:50%;top:100%;transform:translateX(-50%);border:5px solid transparent;border-top-color:var(--ink)}
.echart .xax{display:grid;grid-template-columns:repeat(8,1fr);margin-left:38px;padding:8px 4px 0;font-size:11.5px;color:var(--ink-2);
  text-align:center;font-variant-numeric:tabular-nums}
.echart .xax span{display:flex;flex-direction:column;align-items:center;gap:3px}
.mk{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;background:var(--g-d);color:#fff;
  font-size:10px;font-weight:800;font-style:normal;line-height:1;font-family:"Outfit",sans-serif;flex:0 0 auto}
@media(max-width:560px){
  .echart{padding:18px 14px 14px}
  .echart .bar{width:16px}
  .echart .val{font-size:11px}
  .echart .xax{font-size:10.5px}
}

/* ===== 取り組みの年表 ===== */
.tl{list-style:none;margin:0 0 0 8px;padding:0 0 0 22px;border-left:2px solid var(--line)}
.tl li{position:relative;padding:0 0 26px 8px}
.tl li:last-child{padding-bottom:4px}
.tl li:before{content:"";position:absolute;left:-30px;top:7px;width:10px;height:10px;border-radius:50%;background:var(--g-d);
  box-shadow:0 0 0 3px #fff,0 0 0 4px var(--g-d)}
.tl li.plan:before{background:#fff}
.tl .yr{display:inline-flex;align-items:center;gap:8px;font-family:"Outfit",sans-serif;font-weight:800;font-size:13px;
  color:var(--g-d);letter-spacing:.06em;margin-right:8px}
.tl .yr em{font-style:normal;font-family:"Noto Sans JP",sans-serif;font-size:10.5px;font-weight:700;letter-spacing:.04em;
  padding:2px 8px;border-radius:99px;background:var(--paper);color:var(--ink-2);border:1px solid var(--line)}
.tl h3{display:inline;font-size:15.5px;font-weight:800;line-height:1.6;color:var(--ink);margin:0}
.tl p{font-size:13.5px;color:var(--ink-2);line-height:1.9;margin:8px 0 0;max-width:60em}
.tl .mk{vertical-align:2px;margin-right:8px}

/* ===== sustainability: stacked Scope 1-3 chart ===== */
.echart .elg{display:flex;flex-wrap:wrap;gap:6px 18px;margin:-6px 0 16px;font-size:12px;color:var(--ink-2)}
.echart .elg span{display:inline-flex;align-items:center;gap:7px}
.echart .elg i{width:12px;height:12px;border-radius:3px;flex:0 0 auto}
.echart .s2{background:#177a53}.echart .s3{background:#3a9e6c}.echart .c2{background:#6fc094}
.echart.stack .plot,.echart.stack .xax{grid-template-columns:repeat(6,1fr)}
.echart.stack .col{height:calc(var(--v) / 120 * 100%)}
.echart.stack .stk{display:flex;flex-direction:column;gap:2px;width:22px;max-width:60%;height:100%}
.echart.stack .sg{display:block;flex:0 1 calc(var(--h) / var(--v) * 100%);min-height:0;transition:opacity .15s}
.echart.stack .sg:first-child{border-radius:4px 4px 0 0}
.echart.stack .plot:has(.col.on) .col:not(.on) .sg{opacity:.55}
.echart .tip span{white-space:nowrap}
.s3tbl th:first-child{white-space:nowrap}
.s3tbl th.num{text-align:right}
.s3tbl tr.sub th,.s3tbl tr.sub td{background:var(--paper);font-weight:700}
.s3tbl tr.tot th,.s3tbl tr.tot td{background:var(--paper-2);font-weight:800;color:var(--ink)}
.s3tbl tr.tot td.num{color:var(--g-d)}
@media(max-width:560px){ .echart.stack .stk{width:16px} }
/* header: keep 7 top-level items on one line between the hamburger breakpoint and full width */
@media(min-width:981px) and (max-width:1180px){
  header.site nav ul{gap:18px}
  header.site nav a{font-size:13px}
}

/* ===== sustainability comments (sus-comments-1) ===== */
/* 棒グラフを3倍太く（22px→66px。スマホは列幅に合わせて上限あり） */
.echart .bar,.echart.stack .stk{width:66px;max-width:70%}
@media(max-width:560px){ .echart .bar,.echart.stack .stk{width:48px} }
/* 表の列幅を揃える（固定レイアウト・数値列は等幅） */
.s2tbl,.s3tbl{table-layout:fixed}
.s2tbl th:first-child{width:28%}
.s2tbl th.num{text-align:right}
.s3tbl th:first-child{width:34%}
.s3tbl th:first-child{white-space:normal}
/* 年表: 沿革用 .tl の縦線(:before)と重なって線が2本になっていたので、こちらは境界線のみ */
ol.tl:before{content:none}

/* ===== sustainability comments (sus-comments-2) ===== */
/* スマホでも列幅を揃える（compact表のモバイル用 table-layout:auto を上書き） */
.tablewrap:has(.dtable.compact) .s2tbl,.tablewrap:has(.dtable.compact) .s3tbl{table-layout:fixed}

/* ===== sustainability: Scope 1-3 table shading (round3) =====
   内訳行（Scope 3 の 1〜7）は背景なし、Scope 区分と小計は同じ薄緑、総計はもう一段濃く */
.s3tbl tbody th{background:transparent;font-weight:500}
.s3tbl tr.grp th{background:#dfe9e4;font-weight:700}
.s3tbl tr.sub th,.s3tbl tr.sub td{background:#dfe9e4;font-weight:700}
.s3tbl tr.tot th,.s3tbl tr.tot td{background:#c9ddd3;font-weight:800;color:var(--ink)}

/* ===== 実写のオフィス写真（会社情報アクセスなど） ===== */
.officefig{margin:0 0 26px;border-radius:14px;overflow:hidden;background:var(--paper-2)}
.officefig img{display:block;width:100%;height:auto}
.officefig figcaption{padding:10px 14px;font-size:12px;color:var(--ink-3);background:#fff;border:1px solid var(--line);border-top:0}

/* 実写オフィス写真の2枚組 */
.officegrid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:0 0 26px}
.officegrid .officefig{margin:0}
@media(max-width:760px){ .officegrid{grid-template-columns:1fr;gap:14px} }

/* オフィス写真ギャラリー（4枚）: 元画像の比率が違うので枠側で揃える */
.officehd{margin:34px 0 14px;font-size:16.5px;font-weight:900;color:var(--ink)}
.officegrid.gal{grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:0}
.officegrid.gal .officefig img{aspect-ratio:16/10;object-fit:cover}
.officegrid.gal .officefig figcaption{padding:8px 11px;font-size:11.5px}
@media(max-width:1040px){ .officegrid.gal{grid-template-columns:1fr 1fr} }
@media(max-width:560px){ .officegrid.gal{grid-template-columns:1fr 1fr;gap:10px}
  .officegrid.gal .officefig figcaption{padding:7px 9px;font-size:11px} }

/* ===== footer: mobile (comment 7gdk08) ===== */
@media(max-width:620px){
  footer.site .top{grid-template-columns:1fr;gap:26px;padding-bottom:30px}
  footer.site .col{gap:12px}
  footer.site .col ul:not(.svc-2col){display:grid;grid-template-columns:1fr 1fr;column-gap:18px;row-gap:8px}
  footer.site .col .svc-2col{grid-template-columns:1fr 1fr}
  footer.site .col.quick{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}
  footer.site .col.quick a{padding:12px 0}
  footer.site .legal{gap:8px 18px;padding-top:18px}
}
