/* AI駆動 LP刷新 — consolidated stylesheet (generated from approved previews) */
:root{
  --c-accent:#15317c; --c-accent-hover:#0f2560; --c-on-accent:#fff;
  --c-accent-2:#6dc7dd; --c-ink:#14181f; --c-ink-2:#3f4756; --c-ink-3:#68707d;
  --c-paper:#fff; --c-paper-2:#f5f7fa; --c-rule:#e2e6ec; --c-focus:#0f8ecf;
  --font-jp:"Noto Sans JP","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic Medium","Meiryo",sans-serif;
  --font-en:"Inter",var(--font-jp);
  --max-w:1200px; --hdr-h:66px;
  /* type scale */
  --fs-xs:12.5px; --fs-sm:14px; --fs-base:15.5px; --fs-md:17px; --fs-lg:20px;
  --stat-num:clamp(34px,3.8vw,48px); --stat-unit:.5em;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{margin:0;font-family:var(--font-jp);color:var(--c-ink);background:var(--c-paper);
  font-size:var(--fs-base);line-height:1.9;-webkit-font-smoothing:antialiased;font-feature-settings:"palt" 1;}
.en{font-family:var(--font-en);font-feature-settings:normal;}
img{max-width:100%;}
/* ============================================================
   日本語の折り返し制御（本LPで最重要）
   - line-break:strict … 禁則処理を厳格に（。」などの行頭禁止）
   - word-break:auto-phrase … 文節単位で折り返す（Chromium系）
   - text-wrap:pretty/balance … 最終行1文字の泣き別れを抑制
   - .nw … 絶対に割りたくない語句を囲むユーティリティ（全ブラウザ有効）
   ============================================================ */
body{line-break:strict;overflow-wrap:break-word;}
h1,h2,h3,h4,p,li,dd,dt,summary,figcaption,.c-lead,.take,.qt,.ttl,.lead,.sub{
  word-break:auto-phrase;
}
h1,h2,h3,.p-title,.r-title,.s-title,.c-name,.qt,.a-h{text-wrap:balance;}
p,li,.ttl,.lead,.d,.a-desc,.r-desc{text-wrap:pretty;}
.nw{display:inline-block;}
/* ---------- shared section chrome ---------- */
.sec{max-width:var(--max-w);margin:0 auto;padding:clamp(64px,7vw,104px) clamp(24px,5vw,80px);}
section[id]{scroll-margin-top:calc(var(--hdr-h) + 20px);}
.sec.alt{background:var(--c-paper-2);max-width:none;padding-left:0;padding-right:0;}
.sec.alt .inner{max-width:var(--max-w);margin:0 auto;padding:0 clamp(24px,5vw,80px);}
.sec.grey{background:var(--c-paper-2);box-shadow:0 0 0 100vmax var(--c-paper-2);clip-path:inset(0 -100vmax);}
.sec.navy{background:var(--c-accent);box-shadow:0 0 0 100vmax var(--c-accent);clip-path:inset(0 -100vmax);color:#fff;}
.sec.navy .jp-badge{background:#fff;color:var(--c-accent);}
.sec.navy .en-label{color:var(--c-accent-2);}
.sec.navy h2{color:#fff;}
.sec.navy .mk{color:#fff;background-image:linear-gradient(transparent 62%,rgba(109,199,221,.45) 62%);}
.sec.navy .sub{color:rgba(255,255,255,.86);}
.sec.navy .sub b{color:var(--c-accent-2);}
.sec.navy .stats{border-color:rgba(255,255,255,.24);}
.sec.navy .stat{border-left-color:rgba(255,255,255,.24);}
.sec.navy .big{color:#fff;}
.sec.navy .big .vs,.sec.navy .big .cn{color:rgba(255,255,255,.65);}
.sec.navy .stat .lead{color:rgba(255,255,255,.86);}
.sec.navy .stat .src{color:rgba(255,255,255,.6);}
.sec.navy .take{color:#fff;}
.sec.navy .take b{color:var(--c-accent-2);}
.head{margin-bottom:44px;}
.label-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.jp-badge{display:inline-block;background:var(--c-accent);color:#fff;font-size:13px;font-weight:700;letter-spacing:.06em;padding:5px 14px;}
.en-label{font-family:var(--font-en);font-size:12px;letter-spacing:.18em;color:var(--c-ink-3);font-weight:700;}
.sec h2{font-size:clamp(25px,3.2vw,35px);line-height:1.45;font-weight:700;margin:16px 0 14px;letter-spacing:.01em;}
/* 波線下線 → マーカー下線に変更（折り返しても分断されず、汎用LP感が薄れる） */
.mk{color:var(--c-accent);background-image:linear-gradient(transparent 62%,rgba(109,199,221,.55) 62%);
    background-repeat:no-repeat;background-size:100% 100%;padding:0 .04em;}
.sub{font-size:var(--fs-md);color:var(--c-ink-2);margin:0;max-width:44em;line-height:1.9;}
.sub b{color:var(--c-accent);font-weight:700;}
.btn{font-family:var(--font-jp);font-size:15px;font-weight:700;padding:15px 28px;border:1px solid var(--c-accent);cursor:pointer;text-decoration:none;display:inline-block;transition:background .15s linear,color .15s linear;}
.btn-primary{background:var(--c-accent);color:#fff;}
.btn-primary:hover{background:var(--c-ink);border-color:var(--c-ink);color:#fff;}
.btn-ghost{background:#fff;color:var(--c-accent);}
.btn-ghost:hover{background:var(--c-ink);color:#fff;border-color:var(--c-ink);}
a:focus-visible,summary:focus-visible,button:focus-visible,details:focus-visible{outline:3px solid var(--c-focus);outline-offset:3px;}
/* reveal（JS無効時は必ず表示） */
.js .rv{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease;}
.js .rv.in{opacity:1;transform:none;}
@media(prefers-reduced-motion:reduce){.js .rv{opacity:1;transform:none;transition:none;}html{scroll-behavior:auto;}}
/* 共通リストマーカー（◆から細いスクエアへ） */
.mark li{position:relative;padding-left:22px;}
.mark li::before{content:"";position:absolute;left:0;top:.72em;width:7px;height:7px;background:var(--c-accent);border-radius:1px;}
/* ---------- header ---------- */
.hdr{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--c-rule);transition:background .25s ease,border-color .25s ease,backdrop-filter .25s ease;}
/* desktop: ヘッダー背景はスクロール前は透明、スクロール後に白 */
@media(min-width:981px){.hdr:not(.scrolled){background:transparent;backdrop-filter:none;border-bottom-color:transparent;}}
.hdr .in{max-width:var(--max-w);margin:0 auto;display:flex;align-items:center;gap:24px;padding:0 clamp(20px,5vw,80px);height:var(--hdr-h);}
.hdr .brand{margin-right:auto;display:flex;align-items:center;flex-shrink:0;}
.hdr .brand img{height:26px;width:auto;display:block;max-width:none;flex-shrink:0;}
.hdr .nav{display:flex;gap:clamp(14px,1.7vw,24px);opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease;}
.hdr .nav a{color:var(--c-ink);text-decoration:none;font-size:14px;font-weight:500;white-space:nowrap;padding:6px 0;border-bottom:2px solid transparent;}
.hdr .nav a:hover{color:var(--c-accent);border-bottom-color:var(--c-accent);}
.hdr.scrolled .nav{opacity:1;visibility:visible;}
.hdr .cta{background:var(--c-accent);color:#fff;padding:11px 18px;font-weight:700;text-decoration:none;font-size:14px;white-space:nowrap;flex-shrink:0;transition:background .15s linear;}
.hdr .cta:hover{background:var(--c-ink);}
.hdr .burger{display:none;width:44px;height:44px;flex:0 0 44px;border:1px solid var(--c-rule);background:#fff;position:relative;cursor:pointer;}
.hdr .burger span,.hdr .burger::before,.hdr .burger::after{content:"";position:absolute;left:12px;right:12px;height:2px;background:var(--c-ink);transition:.2s;}
.hdr .burger span{top:50%;transform:translateY(-50%);}
.hdr .burger::before{top:15px;}
.hdr .burger::after{bottom:15px;}
.hdr.open .burger span{opacity:0;}
.hdr.open .burger::before{top:50%;transform:rotate(45deg);}
.hdr.open .burger::after{bottom:auto;top:50%;transform:rotate(-45deg);}
.drawer{display:none;}
/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;}
.hero::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:radial-gradient(circle at 78% 12%,rgba(21,49,124,.10),transparent 55%),
                   radial-gradient(circle at 8% 88%,rgba(109,199,221,.14),transparent 50%),
                   linear-gradient(rgba(21,49,124,.045) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(21,49,124,.045) 1px,transparent 1px);
  background-size:auto,auto,44px 44px,44px 44px;}
.hero .hwrap{position:relative;z-index:1;max-width:var(--max-w);margin:0 auto;padding:clamp(40px,5vw,64px) clamp(24px,5vw,80px) clamp(40px,5vw,56px);}
.hero-grid{display:grid;grid-template-columns:1.18fr .82fr;gap:clamp(32px,4vw,60px);align-items:start;}
.eyebrow{display:inline-block;font-size:13px;font-weight:700;letter-spacing:.04em;color:var(--c-accent);margin-bottom:18px;}
h1.promise{font-size:clamp(27px,2.9vw,40px);line-height:1.5;font-weight:700;letter-spacing:0;margin:0;color:var(--c-ink);}
h1.promise .hl{background:var(--c-ink);color:#fff;padding:.06em .22em;-webkit-box-decoration-break:clone;box-decoration-break:clone;}
.lede{font-size:var(--fs-md);line-height:1.95;color:var(--c-ink-2);margin:24px 0 0;max-width:24em;}
.cta-row{display:flex;align-items:center;gap:14px;margin-top:28px;flex-wrap:wrap;}
.kpi{display:grid;grid-template-columns:repeat(3,1fr);margin-top:36px;border-top:1px solid var(--c-rule);border-bottom:1px solid var(--c-rule);}
.kpi-item{padding:22px 18px;border-left:1px solid var(--c-rule);}
.kpi-item:first-child{border-left:0;padding-left:0;}
.kpi-label{display:inline-block;font-size:12px;font-weight:700;color:var(--c-accent);border:1px solid currentColor;border-radius:999px;padding:3px 12px;margin-bottom:12px;white-space:nowrap;}
.kpi-num{display:block;font-family:var(--font-en);color:var(--c-accent);font-weight:700;line-height:1.1;white-space:nowrap;}
.kpi-pre{font-size:13px;color:var(--c-ink-2);font-family:var(--font-jp);font-weight:500;margin-right:4px;}
.kpi-val{font-size:clamp(30px,4.2vw,50px);}
.kpi-unit{font-size:.5em;margin-left:1px;}
.kpi-suf{font-size:14px;color:var(--c-ink-2);font-family:var(--font-jp);font-weight:500;margin-left:3px;}
.kpi-ref{font-size:10px;color:var(--c-ink-3);vertical-align:super;}
.note{font-size:var(--fs-xs);color:var(--c-ink-3);line-height:1.85;margin-top:14px;max-width:52em;}
.hform{border:1px solid var(--c-rule);padding:30px 28px;background:#fff;}
.hform .fe{font-family:var(--font-en);font-size:11px;letter-spacing:.16em;color:var(--c-accent);font-weight:700;}
.hform h2{font-size:21px;margin:8px 0 20px;}
.hform .field{background:#fff;border:1px solid var(--c-rule);height:46px;margin-bottom:12px;display:flex;align-items:center;padding:0 14px;color:var(--c-ink-3);font-size:13.5px;}
.hform .btn-primary{width:100%;text-align:center;}
.hform .hs-note{font-size:11.5px;color:var(--c-ink-3);margin:12px 0 0;text-align:center;line-height:1.7;}
.cred{position:relative;z-index:1;max-width:var(--max-w);margin:0 auto;display:flex;align-items:center;justify-content:center;gap:18px;padding:0 clamp(24px,5vw,80px) clamp(40px,5vw,56px);flex-wrap:wrap;}
.cred-item{display:flex;align-items:center;gap:10px;min-width:0;flex-wrap:wrap;justify-content:center;}
.cred-tag{font-size:11.5px;color:var(--c-ink-3);white-space:nowrap;}
.cred img{height:auto;max-height:24px;max-width:100%;}
.cred img[alt="FPT Software"]{max-height:32px;}
.cred .x{color:var(--c-ink-3);}
/* ---------- routes ---------- */
.routes{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.route{border:1px solid var(--c-rule);padding:28px 26px;background:var(--c-paper-2);display:flex;flex-direction:column;text-decoration:none;color:inherit;transition:border-color .2s,transform .2s;}
.route:hover{border-color:var(--c-accent);transform:translateY(-3px);}
.route .tag{align-self:flex-start;font-size:12.5px;font-weight:700;color:var(--c-accent);border:1px solid var(--c-accent);border-radius:999px;padding:4px 14px;margin-bottom:18px;}
.route h3{font-size:var(--fs-lg);line-height:1.55;font-weight:700;margin:0 0 16px;}
.route ul{list-style:none;padding:0;margin:0 0 18px;}
.route li{font-size:var(--fs-sm);line-height:1.9;color:var(--c-ink-2);margin-bottom:8px;}
.route .go{margin-top:auto;font-size:13.5px;font-weight:700;color:var(--c-accent);}
/* ---------- why now ---------- */
.stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--c-rule);border-bottom:1px solid var(--c-rule);}
.stat{display:flex;flex-direction:column;padding:36px 28px;border-left:1px solid var(--c-rule);}
.stat:first-child{border-left:0;padding-left:0;}
.big{font-family:var(--font-en);font-weight:700;color:var(--c-accent);line-height:1;letter-spacing:-.02em;font-size:var(--stat-num);white-space:nowrap;}
.big .u{font-size:var(--stat-unit);}
.big .cn{font-size:.72em;margin:0 .14em;font-weight:500;}
.big .vs{font-size:.4em;font-weight:700;margin:0 .22em;}
.big .u-jp{font-family:var(--font-jp);font-size:var(--stat-unit);}
.stat .lead{font-size:var(--fs-base);line-height:1.9;color:var(--c-ink-2);margin:16px 0 0;}
.stat .src{display:block;font-size:11.5px;color:var(--c-ink-3);margin-top:auto;padding-top:14px;font-family:var(--font-en);}
.take{margin-top:40px;font-size:clamp(17px,2vw,20px);line-height:1.85;font-weight:700;max-width:40em;}
.take b{color:var(--c-accent);}
/* ---------- before/after + commit ---------- */
.two{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:stretch;}
.panel{border:1px solid var(--c-rule);padding:32px 30px;display:flex;flex-direction:column;}
.panel.before,.panel.old{background:var(--c-paper-2);}
.panel.after,.panel.ours{background:var(--c-paper);border-color:var(--c-accent);}
.p-tag{font-family:var(--font-en);font-size:12px;font-weight:700;letter-spacing:.16em;margin-bottom:6px;}
.before .p-tag,.old .p-tag{color:var(--c-ink-3);}
.after .p-tag,.ours .p-tag{color:var(--c-accent);}
.p-title{font-size:21px;font-weight:700;margin:0 0 16px;}
.before .p-title,.old .p-title{color:var(--c-ink-2);}
.p-desc{font-size:var(--fs-sm);color:var(--c-ink-2);margin:0 0 20px;line-height:1.9;}
/* desktop: BEFORE/AFTERの説明文の高さを揃え、下のSVG図を同じ行・同じ高さに整列 */
@media(min-width:981px){.panel .p-desc{min-height:3.8em;}}
.flow{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center;margin-bottom:24px;}
.flow .step{font-size:12.5px;padding:6px 11px;border:1px solid var(--c-rule);background:#fff;color:var(--c-ink-2);white-space:nowrap;}
.after .flow .step{background:var(--c-accent);border-color:var(--c-accent);color:#fff;font-weight:700;}
.flow .arw{color:var(--c-ink-3);font-size:11px;font-family:var(--font-en);}
.after .flow .arw{color:var(--c-accent);}
.flow .loop{font-size:12.5px;color:var(--c-accent);font-weight:700;padding:6px 14px;border:1px solid var(--c-accent);border-radius:999px;white-space:nowrap;}
.pts{list-style:none;padding:0;margin:0;}
.pts li{font-size:var(--fs-base);line-height:1.9;margin-bottom:11px;}
.before .pts li,.old .pts li{color:var(--c-ink-2);padding-left:22px;position:relative;}
.before .pts li::before,.old .pts li::before{content:"";position:absolute;left:1px;top:.66em;width:11px;height:11px;
  background:linear-gradient(currentColor,currentColor) center/100% 1.5px no-repeat,linear-gradient(currentColor,currentColor) center/1.5px 100% no-repeat;
  transform:rotate(45deg);color:var(--c-ink-3);}
.after .pts li,.ours .pts li{color:var(--c-ink);}
.ours .pts li b{color:var(--c-accent);}
.strip{margin-top:30px;display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;padding:20px 24px;background:var(--c-paper-2);}
.strip .k{font-size:15px;font-weight:700;color:var(--c-accent);white-space:nowrap;}
.strip p{margin:0;font-size:var(--fs-base);line-height:1.85;color:var(--c-ink-2);font-weight:500;}
/* ---------- lifecycle ---------- */
.cycle{display:flex;flex-wrap:wrap;align-items:center;gap:3px;margin:28px 0 40px;}
.cycle .step{position:relative;display:inline-flex;align-items:center;justify-content:center;background:var(--c-accent);color:var(--c-accent);font-size:13.5px;font-weight:700;padding:13px 30px;clip-path:polygon(0 0, calc(100% - 14px) 0, 100% 50%, calc(100% - 14px) 100%, 0 100%, 14px 50%);}
.cycle .step:first-child{padding-left:22px;clip-path:polygon(0 0, calc(100% - 14px) 0, 100% 50%, calc(100% - 14px) 100%, 0 100%);}
.cycle .step::before{content:"";position:absolute;inset:1.5px;background:var(--c-paper);clip-path:inherit;}
.cycle .step .t{position:relative;z-index:1;white-space:nowrap;}
.cycle .loop{margin-left:12px;font-size:13.5px;color:var(--c-accent);font-weight:700;padding:8px 18px;border:1px solid var(--c-accent);border-radius:999px;white-space:nowrap;}
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.mcard{border:1px solid var(--c-rule);padding:26px 24px;display:flex;flex-direction:column;}
.mcard .step{font-family:var(--font-en);font-size:30px;font-weight:700;color:var(--c-accent);line-height:1;}
.mcard h3{font-size:19px;font-weight:700;margin:14px 0 10px;}
.mcard p{font-size:var(--fs-sm);line-height:1.9;color:var(--c-ink-2);margin:0 0 18px;flex:1;}
.mcard .tag{font-family:var(--font-en);font-size:10.5px;letter-spacing:.14em;color:var(--c-accent);padding-top:12px;border-top:1px solid var(--c-rule);}
/* ---------- modules ---------- */
.g2{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.modc{border:1px solid var(--c-rule);padding:30px 28px;display:flex;flex-direction:column;}
.modc .c-top{display:flex;align-items:center;gap:14px;margin-bottom:14px;flex-wrap:wrap;}
.modc .c-num{font-family:var(--font-en);font-size:26px;font-weight:700;color:var(--c-accent);line-height:1;}
.modc .c-name{font-size:19px;font-weight:700;margin:0;}
.modc .c-lv{font-size:11.5px;font-weight:700;color:var(--c-accent);border:1px solid var(--c-accent);border-radius:999px;padding:2px 10px;white-space:nowrap;}
.modc .c-lead{font-size:var(--fs-md);font-weight:700;line-height:1.7;margin:0 0 16px;color:var(--c-accent);}
.modc ul{list-style:none;padding:0;margin:0;flex:1;}
.modc li{font-size:var(--fs-sm);line-height:1.9;color:var(--c-ink-2);margin-bottom:9px;}
.modc .c-tag{font-family:var(--font-en);font-size:10.5px;letter-spacing:.12em;color:var(--c-accent);margin-top:18px;padding-top:12px;border-top:1px solid var(--c-rule);}
/* ---------- data platform (new) ---------- */
/* 3カラムのフロー図：データソース → 基盤 → 成果。各列を等高で埋めて左右のバランスを取る */
.plat{--pgap:clamp(30px,3.4vw,52px);display:grid;grid-template-columns:1fr 1.24fr 1fr;gap:var(--pgap);align-items:stretch;}
.pcol{display:flex;flex-direction:column;min-width:0;}
.pcap{display:flex;align-items:baseline;gap:9px;margin:0 0 12px;flex-wrap:wrap;}
.pcap .pn{font-family:var(--font-en);font-size:11px;font-weight:700;letter-spacing:.16em;color:var(--c-accent);}
.pcap .pt{font-size:12.5px;font-weight:700;color:var(--c-ink-3);letter-spacing:.02em;white-space:nowrap;}
.stack{flex:1;display:grid;gap:12px;grid-auto-rows:1fr;}
.pbox{border:1px solid var(--c-rule);background:#fff;padding:18px 20px;display:flex;flex-direction:column;justify-content:center;}
.pbox .t{font-size:var(--fs-base);font-weight:700;margin:0 0 4px;}
.pbox .d{font-size:13.5px;color:var(--c-ink-2);margin:0;line-height:1.8;}
.pcore{background:var(--c-accent);color:#fff;padding:30px 28px;display:flex;flex-direction:column;justify-content:center;position:relative;}
.pcore h3{margin:0 0 10px;font-size:22px;}
.pcore p{margin:0;font-size:var(--fs-sm);color:rgba(255,255,255,.86);line-height:1.9;}
.pcore .chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px;}
.pcore .chips span{font-size:12px;border:1px solid rgba(255,255,255,.4);padding:4px 11px;border-radius:999px;white-space:nowrap;}
/* 列間のコネクタ（▶） */
.pcol.core::before,.pcol.core::after{content:"";position:absolute;top:50%;width:0;height:0;
  border-top:9px solid transparent;border-bottom:9px solid transparent;z-index:2;}
.pcol.core{position:relative;}
.pcol.core::before{left:calc(-1 * (var(--pgap) / 2) - 5px);border-left:11px solid rgba(21,49,124,.32);transform:translateY(-50%);}
.pcol.core::after{right:calc(-1 * (var(--pgap) / 2) - 5px);border-left:11px solid var(--c-accent);transform:translateY(-50%);}
.plat-note{margin-top:26px;font-size:var(--fs-base);font-weight:700;line-height:1.85;padding:20px 24px;background:var(--c-paper-2);}
/* ---------- cases ---------- */
.feature{background:var(--c-paper);border:1px solid var(--c-accent);padding:34px;display:grid;grid-template-columns:auto 1fr;grid-template-areas:"tag tag" "num body";gap:14px 40px;align-items:center;margin-bottom:24px;}
.feature .ftag{grid-area:tag;font-family:var(--font-en);font-size:11px;font-weight:700;letter-spacing:.16em;color:var(--c-accent);}
.feature .fnum{grid-area:num;white-space:nowrap;}
.feature .fbody{grid-area:body;}
.feature .fnum .pre{display:block;font-size:15px;font-weight:700;color:var(--c-ink-2);margin-bottom:2px;}
.feature .fnum .n{display:block;font-family:var(--font-en);font-weight:700;color:var(--c-accent);font-size:clamp(32px,4vw,44px);line-height:1;}
.feature .fnum .l{display:block;font-size:13.5px;color:var(--c-ink-2);font-weight:700;margin-top:8px;}
.feature .fmeta{font-size:12.5px;color:var(--c-ink-3);margin-bottom:10px;}
.feature h3{font-size:clamp(18px,2vw,22px);font-weight:700;line-height:1.65;margin:0;}
.cgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.ccard{background:var(--c-paper);border:1px solid var(--c-rule);padding:24px 22px;display:flex;flex-direction:column;}
.ccard .dom{font-size:12.5px;color:var(--c-ink-3);margin-bottom:14px;}
.ccard .metric{font-family:var(--font-en);font-weight:700;color:var(--c-accent);line-height:1.15;font-size:30px;margin-bottom:2px;white-space:nowrap;}
.ccard .metric .u{font-family:var(--font-jp);font-size:.48em;margin-left:2px;}
.ccard .metric.txt{font-family:var(--font-jp);font-size:19px;line-height:1.45;white-space:normal;}
.ccard .ttl{font-size:var(--fs-sm);line-height:1.85;color:var(--c-ink-2);margin-top:10px;}
/* ---------- why us ---------- */
.reason{display:grid;grid-template-columns:160px 1fr;gap:36px;padding:38px 0;border-top:1px solid var(--c-rule);}
.reason:first-of-type{border-top:0;}
.r-num{font-family:var(--font-en);font-size:52px;font-weight:700;color:var(--c-accent);line-height:1;}
.r-en{font-family:var(--font-en);font-size:11px;font-weight:700;letter-spacing:.12em;color:var(--c-ink-3);margin-top:12px;line-height:1.6;}
.r-title{font-size:22px;font-weight:700;margin:0 0 12px;}
.r-desc{font-size:var(--fs-base);line-height:1.95;color:var(--c-ink-2);margin:0;max-width:40em;}
.r-risk{display:flex;align-items:baseline;gap:12px;margin-top:18px;flex-wrap:wrap;}
.r-risk .k{font-size:11.5px;font-weight:700;color:var(--c-accent);border:1px solid var(--c-accent);border-radius:999px;padding:3px 12px;white-space:nowrap;}
.r-risk p{margin:0;font-size:var(--fs-base);font-weight:700;color:var(--c-ink);line-height:1.8;max-width:38em;}
/* ---------- process ---------- */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:24px;}
.pstep{border:1px solid var(--c-rule);padding:28px 26px;display:flex;flex-direction:column;}
.pstep .s-lbl{font-family:var(--font-en);font-size:12px;font-weight:700;letter-spacing:.14em;color:var(--c-ink-3);}
.pstep .s-row{display:flex;align-items:center;gap:12px;margin:8px 0 14px;flex-wrap:wrap;}
.pstep .s-title{font-size:21px;font-weight:700;margin:0;line-height:1.3;}
.pstep .s-period{font-family:var(--font-en);font-size:12px;font-weight:700;color:var(--c-accent);border:1px solid var(--c-accent);border-radius:999px;padding:6px 14px;white-space:nowrap;line-height:1;}
.pstep p{font-size:var(--fs-sm);line-height:1.9;color:var(--c-ink-2);margin:0;}
.assess{border:1px solid var(--c-accent);padding:32px 30px;}
.assess .a-top{display:flex;align-items:center;gap:12px;margin-bottom:10px;flex-wrap:wrap;}
.assess .a-tag{font-size:11.5px;font-weight:700;color:#fff;background:var(--c-accent);padding:4px 12px;letter-spacing:.04em;white-space:nowrap;}
.assess .a-h{font-size:20px;font-weight:700;margin:0;}
.assess .a-lead{font-size:var(--fs-base);color:var(--c-ink-2);margin:0 0 24px;line-height:1.9;max-width:44em;}
.assess .a-lead b{color:var(--c-accent);}
.aitems{display:grid;grid-template-columns:1fr 1fr;gap:18px 32px;list-style:none;padding:0;margin:0;}
.aitems li{font-size:var(--fs-base);line-height:1.8;}
.aitems .d{display:block;font-size:13.5px;color:var(--c-ink-2);font-weight:400;margin-top:3px;line-height:1.8;}
.casan-lv{margin-top:8px;font-family:var(--font-en);font-size:11px;font-weight:700;color:var(--c-accent);letter-spacing:.04em;}
.casan-tag{display:inline-block;font-size:10.5px;font-weight:700;color:var(--c-accent);border:1px solid var(--c-accent);border-radius:999px;padding:1px 8px;margin-left:6px;white-space:nowrap;}
/* ---------- assessment：2つの無償アセスメント（選べる入口） ---------- */
.asmt{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:stretch;}
.acard2{background:#fff;border:1px solid var(--c-rule);padding:34px 32px;display:flex;flex-direction:column;}
.acard2.b{border-color:var(--c-accent);}
.acard2 .who{align-self:flex-start;font-size:12.5px;font-weight:700;color:#fff;background:var(--c-ink-2);padding:5px 13px;letter-spacing:.02em;}
.acard2.b .who{background:var(--c-accent);}
.acard2 .h-en{font-family:var(--font-en);font-size:11px;font-weight:700;letter-spacing:.16em;color:var(--c-ink-3);margin:20px 0 4px;}
.acard2 h3{font-size:clamp(21px,2.2vw,25px);font-weight:700;margin:0;line-height:1.4;}
.acard2 .lead2{font-size:var(--fs-md);font-weight:700;line-height:1.75;margin:14px 0 0;color:var(--c-accent);}
.acard2 .spec{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--c-rule);border-bottom:1px solid var(--c-rule);margin:22px 0;}
.acard2 .spec div{padding:14px 12px;border-left:1px solid var(--c-rule);}
.acard2 .spec div:first-child{border-left:0;padding-left:0;}
.acard2 .spec .sv{display:block;font-weight:700;color:var(--c-accent);font-size:17px;line-height:1.3;white-space:nowrap;}
.acard2 .spec .sl{display:block;font-size:11.5px;color:var(--c-ink-3);margin-top:3px;}
.acard2 .blk{margin-bottom:22px;}
.acard2 .blk:last-of-type{margin-bottom:26px;}
.acard2 .bt{font-size:12px;font-weight:700;letter-spacing:.08em;color:var(--c-ink-3);margin:0 0 10px;}
.acard2 ul{list-style:none;padding:0;margin:0;}
.acard2 li{font-size:var(--fs-sm);line-height:1.85;color:var(--c-ink-2);margin-bottom:8px;}
.acard2 .out{background:var(--c-paper-2);padding:16px 18px;font-size:13.5px;line-height:1.85;color:var(--c-ink-2);margin:0;}
.acard2 .out b{color:var(--c-ink);}
.acard2 .btn{margin-top:auto;text-align:center;}
.acard2 .fine{font-size:11.5px;color:var(--c-ink-3);margin:10px 0 0;text-align:center;line-height:1.7;}
.guide{display:grid;grid-template-columns:1fr 1fr;background:#fff;border:1px solid var(--c-rule);margin-top:26px;}
.guide > div{padding:28px 30px;}
.guide > div + div{border-left:1px solid var(--c-rule);}
.guide h4{font-size:var(--fs-md);font-weight:700;margin:0 0 4px;}
.guide .to{font-size:12.5px;font-weight:700;color:var(--c-accent);margin:0 0 16px;}
.guide ul{list-style:none;padding:0;margin:0;}
.guide li{font-size:var(--fs-sm);line-height:1.85;color:var(--c-ink-2);margin-bottom:9px;}
.combo{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:26px;}
.cbox{background:#fff;padding:24px 26px;}
.cbox .ct{font-size:var(--fs-base);font-weight:700;margin:0 0 4px;}
.cbox .cd{font-size:13.5px;color:var(--c-ink-2);margin:0;line-height:1.85;}
.combo-lead{margin:34px 0 0;font-size:var(--fs-base);font-weight:700;line-height:1.85;}
.combo-lead .mk{font-weight:700;}
/* ---------- areas accordion ---------- */
.acc{background:#fff;border:1px solid var(--c-rule);}
.acc details{border-top:1px solid var(--c-rule);}
.acc details:first-child{border-top:0;}
.acc summary{list-style:none;cursor:pointer;padding:22px 26px;display:flex;align-items:center;gap:18px;flex-wrap:wrap;}
.acc summary::-webkit-details-marker{display:none;}
.acc summary:hover{background:var(--c-paper-2);}
.acc .a-en{font-family:var(--font-en);font-size:12px;font-weight:700;color:var(--c-accent);letter-spacing:.08em;width:126px;flex-shrink:0;}
.acc .a-name{font-size:var(--fs-md);font-weight:700;white-space:nowrap;}
.acc .a-tag2{font-size:var(--fs-sm);color:var(--c-ink-2);flex:1;min-width:200px;}
.acc .a-ico{width:22px;height:22px;flex-shrink:0;position:relative;margin-left:auto;}
.acc .a-ico::before,.acc .a-ico::after{content:"";position:absolute;background:var(--c-accent);}
.acc .a-ico::before{top:50%;left:2px;right:2px;height:2px;transform:translateY(-50%);}
.acc .a-ico::after{left:50%;top:2px;bottom:2px;width:2px;transform:translateX(-50%);transition:opacity .15s;}
.acc details[open] .a-ico::after{opacity:0;}
.acc .a-body{padding:0 26px 26px;}
.acc .a-desc{font-size:var(--fs-base);line-height:1.95;color:var(--c-ink-2);margin:0 0 18px;max-width:52em;}
.acc .a-desc b{color:var(--c-accent);}
.acc .abul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:10px 24px;}
.acc .abul li{font-size:var(--fs-sm);color:var(--c-ink);}
.acc .fpt{display:inline-block;margin-top:18px;font-family:var(--font-en);font-size:10.5px;letter-spacing:.12em;color:var(--c-ink-3);}
/* ---------- governance ---------- */
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:52px;}
.gcard{background:#fff;border:1px solid var(--c-rule);padding:26px 22px;display:flex;flex-direction:column;}
.gcard .n{font-family:var(--font-en);font-size:24px;font-weight:700;color:var(--c-accent);line-height:1;}
.gcard h3{font-size:var(--fs-md);font-weight:700;margin:14px 0 10px;}
.gcard p{font-size:var(--fs-sm);line-height:1.9;color:var(--c-ink-2);margin:0;}
.certs{border-top:1px solid var(--c-rule);padding-top:34px;}
.certs .lbl{font-size:12.5px;font-weight:700;letter-spacing:.1em;color:var(--c-ink-3);margin-bottom:22px;}
.certs ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,1fr);align-items:center;gap:clamp(20px,3vw,44px);}
.certs li{display:flex;align-items:center;justify-content:center;height:78px;}
.certs img{max-height:74px;max-width:100%;width:auto;object-fit:contain;}
.certs li:hover img{filter:none;opacity:1;}
.certs .cnote{font-size:12.5px;color:var(--c-ink-3);margin:24px 0 0;}
/* ---------- about (new) ---------- */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.about-grid .acard{background:#fff;border:1px solid var(--c-rule);}
.acard{border:1px solid var(--c-rule);padding:30px 28px;}
.acard h3{font-size:var(--fs-lg);font-weight:700;margin:0 0 6px;}
.acard .sub2{font-size:13.5px;color:var(--c-ink-3);margin:0 0 18px;}
.acard p{font-size:var(--fs-sm);line-height:1.9;color:var(--c-ink-2);margin:0 0 18px;}
.facts{display:grid;grid-template-columns:1fr 1fr;gap:14px 20px;list-style:none;padding:0;margin:0;}
.facts li{border-top:1px solid var(--c-rule);padding-top:12px;}
.facts .fv{display:block;font-family:var(--font-en);font-size:23px;font-weight:700;color:var(--c-accent);line-height:1.15;white-space:nowrap;}
.facts .fl{display:block;font-size:12.5px;color:var(--c-ink-2);margin-top:4px;line-height:1.7;}
.clients{margin-top:20px;font-size:13px;color:var(--c-ink-2);line-height:1.9;}
.clients b{color:var(--c-ink);}
/* ---------- insights/news ---------- */
.ins{display:grid;grid-template-columns:1.15fr 1fr;gap:40px;align-items:start;}
.feat2{display:block;text-decoration:none;color:inherit;}
.thumb{aspect-ratio:16/10;background:linear-gradient(135deg,#e8ecf3,#dfe3ea 60%,#eef4f7);border:1px solid var(--c-rule);overflow:hidden;}
.pmeta{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--c-ink-3);margin:16px 0 8px;flex-wrap:wrap;}
.pcat{color:var(--c-accent);font-weight:700;}
.feat2 h3{font-size:21px;font-weight:700;line-height:1.6;margin:0 0 10px;}
.feat2:hover h3{color:var(--c-accent);}
.feat2 p{font-size:var(--fs-sm);color:var(--c-ink-2);line-height:1.9;margin:0;}
.side{list-style:none;padding:0;margin:0;}
.side li{padding:18px 0;border-top:1px solid var(--c-rule);}
.side li:first-child{padding-top:0;border-top:0;}
.side a{text-decoration:none;color:inherit;display:block;}
.side h4{font-size:var(--fs-md);font-weight:700;line-height:1.65;margin:6px 0 0;}
.side a:hover h4{color:var(--c-accent);}
.news{list-style:none;padding:0;margin:0;border-top:1px solid var(--c-rule);}
.news li{border-bottom:1px solid var(--c-rule);}
.news a{display:grid;grid-template-columns:120px 130px 1fr;gap:20px;align-items:center;padding:20px 4px;text-decoration:none;color:inherit;}
.news .date{font-family:var(--font-en);font-size:13.5px;color:var(--c-ink-3);}
.news .tag{font-size:11.5px;font-weight:700;color:var(--c-accent);border:1px solid var(--c-accent);border-radius:999px;padding:3px 12px;justify-self:start;white-space:nowrap;}
.news .ttl{font-size:var(--fs-md);font-weight:500;line-height:1.7;}
.news a:hover .ttl{color:var(--c-accent);}
.more{margin-top:36px;}
/* ---------- faq ---------- */
.faq{border:1px solid var(--c-rule);}
.faq details{border-top:1px solid var(--c-rule);}
.faq details:first-child{border-top:0;}
.faq summary{list-style:none;cursor:pointer;padding:22px 26px;display:flex;align-items:center;gap:16px;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary:hover{background:var(--c-paper-2);}
.faq .q{font-family:var(--font-en);font-weight:700;color:var(--c-accent);font-size:15px;flex-shrink:0;}
.faq .qt{font-size:var(--fs-md);font-weight:700;flex:1;line-height:1.6;}
.faq .ico{width:22px;height:22px;flex-shrink:0;position:relative;}
.faq .ico::before,.faq .ico::after{content:"";position:absolute;background:var(--c-accent);}
.faq .ico::before{top:50%;left:2px;right:2px;height:2px;transform:translateY(-50%);}
.faq .ico::after{left:50%;top:2px;bottom:2px;width:2px;transform:translateX(-50%);transition:opacity .15s;}
.faq details[open] .ico::after{opacity:0;}
.faq .a{padding:0 26px 24px 64px;font-size:var(--fs-base);line-height:2;color:var(--c-ink-2);max-width:52em;}
.faq .a b{color:var(--c-accent);}
/* ---------- final cta ---------- */
.cta-band{background:var(--c-accent);}
.cta-band .wrap{max-width:var(--max-w);margin:0 auto;padding:clamp(56px,6vw,84px) clamp(24px,5vw,80px);display:grid;grid-template-columns:1fr 420px;gap:clamp(32px,4vw,56px);align-items:start;}
.cta-band .eyebrow{font-family:var(--font-en);font-size:12px;font-weight:700;letter-spacing:.18em;color:var(--c-accent-2);}
.cta-band h2{color:#fff;font-size:clamp(26px,3.4vw,38px);line-height:1.4;margin:12px 0 18px;text-wrap:balance;}
.cta-band p{color:rgba(255,255,255,.86);font-size:var(--fs-base);line-height:1.95;margin:0;max-width:36em;}
.cta-band .kpis{display:flex;gap:32px;margin-top:26px;flex-wrap:wrap;}
.cta-band .kpi2 .n{font-family:var(--font-en);font-weight:700;color:#fff;font-size:25px;white-space:nowrap;}
.cta-band .kpi2 .l{display:block;font-size:12.5px;color:var(--c-accent-2);margin-top:2px;}
.cform{background:#fff;padding:28px 26px;}
.cform .fe{font-family:var(--font-en);font-size:11px;letter-spacing:.16em;color:var(--c-accent);font-weight:700;}
.cform h3{font-size:21px;margin:8px 0 20px;}
.cform .field{background:var(--c-paper-2);border:1px solid var(--c-rule);height:46px;margin-bottom:12px;display:flex;align-items:center;padding:0 14px;color:var(--c-ink-3);font-size:13.5px;}
.cform .submit{display:block;width:100%;text-align:center;background:var(--c-accent);color:#fff;font-weight:700;font-size:15px;padding:16px;border:1px solid var(--c-accent);text-decoration:none;transition:background .15s linear;}
.cform .submit:hover{background:var(--c-ink);}
.cform .cnote{font-size:11.5px;color:var(--c-ink-3);text-align:center;margin:12px 0 0;line-height:1.7;}
.cform .field-select{width:100%;background:var(--c-paper-2);border:1px solid var(--c-rule);height:46px;margin-bottom:12px;padding:0 12px;color:var(--c-ink-2);font-size:13.5px;font-family:inherit;}
.cform .field-select[data-set="1"]{border-color:var(--c-accent);color:var(--c-ink);}
.cform .field-select:focus-visible{outline:2px solid var(--c-focus);outline-offset:2px;}
.modal[hidden]{display:none;}
.modal{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:20px;}
.modal-backdrop{position:absolute;inset:0;background:rgba(15,20,25,.55);}
.modal-panel{position:relative;background:#fff;width:100%;max-width:420px;padding:34px 30px;max-height:90vh;overflow:auto;}
.modal-x{position:absolute;top:10px;right:14px;background:none;border:0;font-size:26px;line-height:1;color:var(--c-ink-3);cursor:pointer;}
.modal-panel .fe{font-family:var(--font-en);font-size:11px;letter-spacing:.16em;color:var(--c-accent);font-weight:700;}
.modal-panel h3{font-size:20px;margin:8px 0 8px;}
.modal-lead{font-size:13px;color:var(--c-ink-2);margin:0 0 18px;line-height:1.8;}
.modal-panel .field{background:var(--c-paper-2);border:1px solid var(--c-rule);height:46px;margin-bottom:12px;display:flex;align-items:center;padding:0 14px;color:var(--c-ink-3);font-size:13.5px;}
.modal-panel .submit{display:block;width:100%;text-align:center;background:var(--c-accent);color:#fff;font-weight:700;font-size:15px;padding:16px;border:1px solid var(--c-accent);text-decoration:none;}
.modal-panel .submit:hover{background:var(--c-ink);}
.modal-panel .cnote{font-size:11.5px;color:var(--c-ink-3);text-align:center;margin:12px 0 0;line-height:1.7;}
/* footer */
.site-footer{background:var(--c-ink);color:rgba(250,250,247,.68);padding:88px 0 32px;border-top:1px solid rgba(255,255,255,.06);}
.site-footer .fwrap{max-width:var(--max-w);margin:0 auto;padding:0 clamp(24px,5vw,80px);}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1fr;gap:40px;}
.footer-grid h4{color:#fff;font-size:12px;font-weight:500;letter-spacing:.12em;margin:0 0 22px;text-transform:uppercase;font-family:var(--font-en);}
.footer-grid a{color:rgba(250,250,247,.68);text-decoration:none;font-size:13px;display:block;padding:7px 0;transition:color .25s;}
.footer-grid a:hover{color:var(--c-accent-2);}
.footer-brand-col{padding-right:48px;}
.footer-brand{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;}
.footer-brand-row{display:flex;flex-direction:column;gap:4px;}
.footer-brand-role{font-size:9px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:rgba(250,250,247,.55);font-family:var(--font-en);}
.footer-brand-name{font-size:12px;font-weight:700;color:rgba(250,250,247,.9);letter-spacing:.02em;}
.footer-brand-row--fpt{flex-direction:row;align-items:center;gap:10px;}
.brand-mark--footer{height:22px;width:auto;}
.fbrand-desc{font-size:13px;color:rgba(250,250,247,.62);line-height:2;margin:24px 0 0;max-width:26em;}
.footer-bottom{margin-top:72px;padding-top:32px;border-top:1px solid rgba(255,255,255,.08);display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;font-family:var(--font-en);font-size:11px;color:rgba(250,250,247,.5);letter-spacing:.04em;}
/* ============================================================
   responsive（3カラムの潰れを防ぐため、旧820pxから引き上げ）
   ============================================================ */
@media(max-width:1120px){
  .certs ul{grid-template-columns:repeat(4,1fr);}
}
@media(max-width:860px){
  .certs ul{grid-template-columns:repeat(3,1fr);}
}
@media(max-width:1060px){
  .routes,.g3,.cgrid,.steps{grid-template-columns:repeat(2,1fr);}
  .g4{grid-template-columns:repeat(2,1fr);}
  .hero-grid{grid-template-columns:1fr;gap:36px;}
  .lede{max-width:38em;}
  .cta-band .wrap{grid-template-columns:1fr;}
  .plat{grid-template-columns:1fr;gap:26px;}
  .pcol.core::before,.pcol.core::after{display:none;}
  .pcol.core::before,.pcol.core::after{display:none;}
  .pcol .stack{grid-auto-rows:auto;}
  .pcol:first-child .stack{grid-template-columns:1fr 1fr;}
  .pcol:last-child .stack{grid-template-columns:repeat(3,1fr);}
}
@media(max-width:980px){
  .hdr .in{gap:12px;}
  .hdr .brand img{height:20px;}          /* モバイルはロゴを小さくして全要素を収める */
  .hdr .cta{padding:9px 14px;font-size:13px;}
  .hdr .nav{display:none;}
  .hdr .burger{display:block;}
  .hdr.open + .drawer{display:block;}
  .drawer{position:sticky;top:var(--hdr-h);z-index:39;background:#fff;border-bottom:1px solid var(--c-rule);}
  .drawer nav{display:flex;flex-direction:column;padding:8px clamp(20px,5vw,80px) 18px;}
  .drawer nav a{padding:15px 0;border-bottom:1px solid var(--c-rule);text-decoration:none;color:var(--c-ink);font-weight:700;font-size:15px;}
  .two,.g2{grid-template-columns:1fr;}
  .reason{grid-template-columns:1fr;gap:14px;padding:32px 0;}
  .r-num{font-size:44px;}
  .r-en{margin-top:6px;}
  .ins{grid-template-columns:1fr;gap:28px;}
  .about-grid{grid-template-columns:1fr;}
  .asmt,.combo{grid-template-columns:1fr;}
  .guide{grid-template-columns:1fr;}
  .guide > div + div{border-left:0;border-top:1px solid var(--c-rule);}
}
@media(max-width:820px){
  .stats{grid-template-columns:1fr;}
  .stat{border-left:0;border-top:1px solid var(--c-rule);padding:28px 0;}
  .stat:first-child{border-top:0;}
  .aitems{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .footer-brand-col{grid-column:1 / -1;padding-right:0;}
}
@media(max-width:680px){
  :root{--fs-base:15px;--fs-md:16px;}
  .routes,.g3,.cgrid,.g4,.steps{grid-template-columns:1fr;}
  .pcol:first-child .stack,.pcol:last-child .stack{grid-template-columns:1fr;}
  .certs ul{grid-template-columns:repeat(3,1fr);}
  .kpi-item{padding:18px 10px;}
  .kpi-item:first-child{padding-left:0;}
  .kpi-label{font-size:11px;padding:3px 9px;}
  .kpi-pre,.kpi-suf{font-size:12px;}
  .feature{grid-template-columns:1fr;grid-template-areas:"tag" "num" "body";gap:12px 0;}
  .feature .fnum{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px;white-space:normal;}
  .feature .fnum .pre,.feature .fnum .n,.feature .fnum .l{display:inline;margin:0;}
  .feature .fnum .n{font-size:32px;}
  .news a{grid-template-columns:1fr;gap:6px;padding:18px 4px;}
  .news .tag{margin-bottom:2px;}
  .acc summary{gap:10px;padding:20px;}
  .acc .a-en{width:100%;}
  .acc .a-tag2{min-width:0;flex-basis:100%;}
  .acc .a-body{padding:0 20px 22px;}
  .faq .a{padding-left:26px;}
  .facts{grid-template-columns:1fr 1fr;}
  .acard2{padding:28px 24px;}
  .acard2 .spec{grid-template-columns:1fr;}
  .acard2 .spec div{border-left:0;border-top:1px solid var(--c-rule);padding:12px 0;}
  .acard2 .spec div:first-child{border-top:0;}
  .site-footer{padding-top:64px;}
}
.flowimg{display:block;width:100%;height:auto;margin:8px 0 22px;}
.flowimg--wide{margin:24px 0 36px;}
.acard .arole{font-family:var(--font-en);font-size:11px;font-weight:700;letter-spacing:.12em;color:var(--c-accent);display:block;}
.acard .alogo{height:28px;width:auto;display:block;margin:14px 0 12px;}
.about-more{margin-top:24px;}
.about-more a{color:var(--c-accent);font-weight:700;font-size:14px;text-decoration:none;}
.about-more a:hover{text-decoration:underline;}
/* ===== subpage (会社概要) ===== */
body:not(.home) .hdr .nav{opacity:1;visibility:visible;}
@media(min-width:981px){body:not(.home) .hdr{background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-bottom-color:var(--c-rule);}}
.ap-wrap{max-width:var(--max-w);margin:0 auto;padding:0 clamp(24px,5vw,80px);}
.ap-crumb{border-bottom:1px solid var(--c-rule);background:var(--c-paper-2);}
.ap-crumb .ap-wrap{padding-top:12px;padding-bottom:12px;font-size:12px;color:var(--c-ink-3);}
.ap-crumb a{color:var(--c-ink-3);text-decoration:none;}
.ap-crumb a:hover{color:var(--c-accent);}
.ap-crumb .sep{margin:0 8px;}
.ap-crumb .cur{color:var(--c-ink-2);font-weight:700;}
.ap-sec{padding:72px 0;}
.ap-phero{padding:56px 0 40px;}
.ap-h1{font-size:clamp(30px,4vw,46px);font-weight:700;letter-spacing:-.01em;margin:8px 0 0;line-height:1.15;}
.ap-h1 .jp{display:block;font-size:.4em;color:var(--c-ink-2);letter-spacing:.04em;margin-top:8px;}
.ap-lede{font-size:15.5px;color:var(--c-ink-2);margin:22px 0 0;max-width:60ch;}
.ap-lede b{color:var(--c-accent);}
.ap-joint{background:var(--c-paper-2);border-top:1px solid var(--c-rule);border-bottom:1px solid var(--c-rule);}
.ap-h2{font-size:clamp(22px,2.6vw,28px);font-weight:700;margin:14px 0 32px;}
.ap-brands{display:grid;grid-template-columns:1fr auto 1fr;gap:32px;align-items:start;}
.ap-brand{background:#fff;border:1px solid var(--c-rule);padding:32px 30px;}
.ap-role{font-family:var(--font-en);font-size:11px;font-weight:700;letter-spacing:.12em;color:var(--c-accent);}
.ap-logo{height:30px;width:auto;display:block;margin:16px 0 14px;}
.ap-name{font-size:18px;font-weight:700;margin:0 0 12px;}
.ap-brand p{font-size:13.5px;color:var(--c-ink-2);line-height:1.95;margin:0;}
.ap-x{align-self:center;color:var(--c-ink-3);font-size:22px;}
.ap-sechead{display:flex;align-items:baseline;justify-content:space-between;gap:16px;border-bottom:2px solid var(--c-ink);padding-bottom:14px;margin-bottom:8px;}
.ap-sechead h2{font-size:24px;font-weight:700;margin:0;}
.ap-sechead .en{font-family:var(--font-en);font-size:12px;letter-spacing:.16em;color:var(--c-ink-3);font-weight:700;}
.ap-ptable{width:100%;border-collapse:collapse;}
.ap-ptable th,.ap-ptable td{text-align:left;vertical-align:top;padding:20px 8px;border-bottom:1px solid var(--c-rule);font-size:14.5px;}
.ap-ptable th{width:180px;font-weight:700;}
.ap-ptable td{color:var(--c-ink-2);}
.ap-ptable a{color:var(--c-accent);text-decoration:none;}
.ap-ptable a:hover{text-decoration:underline;}
.ap-access{display:grid;grid-template-columns:340px 1fr;gap:32px;margin-top:8px;}
.ap-access-info dt{font-size:12px;font-weight:700;color:var(--c-accent);margin-top:18px;}
.ap-access-info dt:first-child{margin-top:0;}
.ap-access-info dd{margin:6px 0 0;font-size:14.5px;color:var(--c-ink-2);}
.ap-map{border:1px solid var(--c-rule);min-height:300px;}
.ap-map iframe{width:100%;height:100%;min-height:300px;border:0;display:block;}
.ap-cta{background:var(--c-accent);color:#fff;}
.ap-cta-in{padding:72px clamp(24px,5vw,80px);text-align:center;}
.ap-cta .ap-eyebrow{font-family:var(--font-en);font-size:12px;letter-spacing:.18em;color:var(--c-accent-2);font-weight:700;}
.ap-cta h2{color:#fff;font-size:clamp(24px,3vw,32px);line-height:1.4;margin:12px 0 14px;}
.ap-cta p{color:rgba(255,255,255,.82);font-size:14.5px;margin:0 auto 26px;max-width:52ch;}
.ap-btn{display:inline-block;background:#fff;color:var(--c-accent);font-weight:700;font-size:15px;padding:15px 32px;text-decoration:none;border:1px solid #fff;transition:background .15s,color .15s;}
.ap-btn:hover{background:var(--c-ink);color:#fff;border-color:var(--c-ink);}
@media(max-width:820px){.ap-brands{grid-template-columns:1fr;}.ap-x{justify-self:center;}.ap-access{grid-template-columns:1fr;}.ap-ptable th{width:120px;}}
/* ===== inline form (preview of HubSpot form) ===== */
.fe{font-family:var(--font-en);font-size:11px;letter-spacing:.16em;color:var(--c-accent);font-weight:700;}
.fld{background:var(--c-paper-2);border:1px solid var(--c-rule);height:46px;margin-bottom:12px;display:flex;align-items:center;padding:0 14px;color:var(--c-ink-3);font-size:13.5px;}
.fld-ta{height:92px;align-items:flex-start;padding-top:12px;}
.fld .req{margin-left:8px;font-size:10px;color:#fff;background:var(--c-accent);padding:1px 7px;font-weight:700;}
.fld-submit{display:block;width:100%;text-align:center;background:var(--c-accent);color:#fff;font-weight:700;font-size:15px;padding:15px;border:1px solid var(--c-accent);text-decoration:none;transition:background .15s;}
.fld-submit:hover{background:var(--c-ink);}
.fld-note{font-size:11.5px;color:var(--c-ink-3);text-align:center;margin:12px 0 0;line-height:1.7;}
.ap-formcard{background:#fff;padding:28px 26px;}
.ap-formcard h3{font-size:19px;margin:6px 0 18px;color:var(--c-ink);}
.ap-cta-grid{display:grid;grid-template-columns:1fr 420px;gap:48px;align-items:center;padding:72px clamp(24px,5vw,80px);text-align:left;}
.ap-cta-grid .ap-eyebrow{font-family:var(--font-en);font-size:12px;letter-spacing:.18em;color:var(--c-accent-2);font-weight:700;}
.ap-cta-grid h2{color:#fff;font-size:clamp(24px,3vw,32px);line-height:1.4;margin:12px 0 14px;}
.ap-cta-grid p{color:rgba(255,255,255,.82);font-size:14.5px;margin:0;max-width:44ch;}
@media(max-width:820px){.ap-cta-grid{grid-template-columns:1fr;gap:28px;}}
.ap-joint .ap-h2{margin-bottom:16px;}
.ap-jlede{font-size:15px;line-height:1.95;color:var(--c-ink-2);margin:0 0 32px;max-width:74ch;}
.ap-jlede strong{color:var(--c-ink);}
/* ===== subpage base (shared with 会社概要) ===== */
body:not(.home) .hdr .nav{opacity:1;visibility:visible;}
/* ===== contact ===== */
.ct-grid{display:grid;grid-template-columns:0.82fr 1.18fr;gap:48px;align-items:start;}
.ct-intro h2{font-size:22px;font-weight:700;margin:0 0 12px;}
.ct-intro p{font-size:14.5px;color:var(--c-ink-2);line-height:1.9;margin:0 0 24px;}
.ct-info dt{font-size:12px;font-weight:700;color:var(--c-accent);margin-top:16px;}
.ct-info dd{margin:6px 0 0;font-size:14px;color:var(--c-ink-2);}
.ct-card{border:1px solid var(--c-rule);background:#fff;padding:32px 30px;}
.ct-card-head{margin-bottom:22px;}
.ct-card-head .fe{font-family:var(--font-en);font-size:11px;letter-spacing:.16em;color:var(--c-accent);font-weight:700;}
.ct-card-head h3{font-size:19px;font-weight:700;margin:6px 0 0;}
.ct-hs{min-height:120px;}
.ct-note{font-size:11.5px;color:var(--c-ink-3);margin:16px 0 0;line-height:1.7;}
.ct-note a{color:var(--c-accent);}
.ct-faq{background:var(--c-paper-2);border-top:1px solid var(--c-rule);}
.ct-faq-in{text-align:center;padding:64px clamp(24px,5vw,80px);}
.ct-faq h2{font-size:22px;font-weight:700;margin:0 0 10px;}
.ct-faq p{font-size:14.5px;color:var(--c-ink-2);margin:0 auto 24px;max-width:52ch;}
.ct-faq-btn{display:inline-block;background:#fff;color:var(--c-accent);border:1px solid var(--c-accent);font-weight:700;font-size:15px;padding:14px 28px;text-decoration:none;transition:background .15s,color .15s;}
.ct-faq-btn:hover{background:var(--c-ink);color:#fff;border-color:var(--c-ink);}
@media(max-width:820px){.ct-grid{grid-template-columns:1fr;gap:28px;}}
/* subpage base */
body:not(.home) .hdr .nav{opacity:1;visibility:visible;}
.ap-sec{padding:64px 0;}
.ap-phero{padding:56px 0 32px;}
.ap-h1{font-size:clamp(28px,3.6vw,42px);font-weight:700;letter-spacing:-.01em;margin:8px 0 0;line-height:1.15;}
.ap-lede{font-size:15.5px;color:var(--c-ink-2);margin:20px 0 0;max-width:64ch;}
/* toolbar */
.bl-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:28px;flex-wrap:wrap;}
.bl-count{font-size:13px;color:var(--c-ink-3);}
.bl-count strong{color:var(--c-ink);font-size:16px;font-family:var(--font-en);}
.bl-search{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--c-rule);padding:9px 14px;color:var(--c-ink-3);min-width:240px;}
.bl-search input{border:0;outline:0;font-size:14px;font-family:inherit;width:100%;background:transparent;color:var(--c-ink);}
/* filter */
.bl-filter{border-top:1px solid var(--c-rule);border-bottom:1px solid var(--c-rule);background:#fff;}
.bl-filter .ap-wrap{display:flex;align-items:center;gap:16px;padding-top:14px;padding-bottom:14px;flex-wrap:wrap;}
.bl-filter-label{font-family:var(--font-en);font-size:11px;letter-spacing:.14em;color:var(--c-ink-3);font-weight:700;}
.bl-filter ul{list-style:none;display:flex;gap:8px;flex-wrap:wrap;margin:0;padding:0;}
.bl-chip{font-family:inherit;font-size:13px;font-weight:700;color:var(--c-ink-2);background:#fff;border:1px solid var(--c-rule);padding:7px 16px;border-radius:999px;cursor:pointer;transition:.15s;}
.bl-chip:hover{border-color:var(--c-accent);color:var(--c-accent);}
.bl-chip.is-active{background:var(--c-accent);border-color:var(--c-accent);color:#fff;}
/* grid */
.bl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.bl-card{display:flex;flex-direction:column;text-decoration:none;color:inherit;border:1px solid var(--c-rule);background:#fff;transition:border-color .2s,transform .2s;}
.bl-card:hover{border-color:var(--c-accent);transform:translateY(-3px);}
.bl-thumb{aspect-ratio:16/10;background:#dfe3ea;border-bottom:1px solid var(--c-rule);overflow:hidden;}
.bl-body{padding:20px 20px 22px;display:flex;flex-direction:column;flex:1;}
.bl-meta{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--c-ink-3);margin-bottom:10px;}
.bl-cat{color:var(--c-accent);font-weight:700;}
.bl-title{font-size:16px;font-weight:700;line-height:1.6;margin:0 0 10px;}
.bl-ex{font-size:13px;color:var(--c-ink-2);line-height:1.85;margin:0 0 16px;flex:1;}
.bl-foot{display:flex;justify-content:space-between;font-size:12px;color:var(--c-ink-3);border-top:1px solid var(--c-rule);padding-top:12px;}
.bl-empty{text-align:center;color:var(--c-ink-2);padding:40px 0;}
.bl-pager{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:48px;}
.bl-pager a,.bl-pager span{min-width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--c-rule);text-decoration:none;color:var(--c-ink-2);font-family:var(--font-en);font-size:14px;padding:0 12px;}
.bl-pager a:hover{border-color:var(--c-accent);color:var(--c-accent);}
.bl-pager .is-active{background:var(--c-accent);border-color:var(--c-accent);color:#fff;}
.bl-pager .dots{border:0;}
/* cta */
.ap-cta{background:var(--c-accent);color:#fff;}
.ap-cta-in2{text-align:center;padding:72px clamp(24px,5vw,80px);}
.ap-cta-in2 .ap-eyebrow{font-family:var(--font-en);font-size:12px;letter-spacing:.18em;color:var(--c-accent-2);font-weight:700;}
.ap-cta-in2 h2{color:#fff;font-size:clamp(24px,3vw,30px);line-height:1.4;margin:12px 0 14px;}
.ap-cta-in2 p{color:rgba(255,255,255,.82);font-size:14px;margin:0 auto 26px;max-width:56ch;}
.ap-btn{display:inline-block;background:#fff;color:var(--c-accent);border:1px solid #fff;font-weight:700;font-size:15px;padding:15px 30px;text-decoration:none;transition:.15s;}
@media(max-width:980px){.bl-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:640px){.bl-grid{grid-template-columns:1fr;}}
.fe{font-family:var(--font-en);font-size:11px;letter-spacing:.16em;color:var(--c-accent);font-weight:700;}
body:not(.home) .hdr .nav{opacity:1;visibility:visible;}
.art-narrow{max-width:900px;}
/* hero */
.art-hero{padding:56px 0 8px;}
.art-meta{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--c-ink-3);}
.art-cat{color:var(--c-accent);font-weight:700;}
.art-title{font-size:clamp(26px,3.4vw,38px);font-weight:700;line-height:1.4;margin:16px 0 18px;}
.art-lede{font-size:16px;line-height:1.95;color:var(--c-ink-2);margin:0 0 26px;}
.art-author{display:flex;align-items:center;gap:12px;}
.art-avatar{width:44px;height:44px;border-radius:999px;background:#dfe3ea;display:inline-block;}
.art-author .name{font-weight:700;font-size:14px;display:block;}
.art-author .role{font-size:11px;color:var(--c-ink-3);}
.art-thumb{aspect-ratio:16/9;background:#dfe3ea;border:1px solid var(--c-rule);margin:32px 0 0;overflow:hidden;}
/* post thumbnails fill their aspect-ratio box (fix: images were rendering at natural/square size) */
.thumb img,.bl-thumb img,.art-thumb img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;}
/* body */
.art-body{padding:48px 0 72px;}
.art-grid{display:grid;grid-template-columns:220px 1fr;gap:56px;align-items:start;}
.art-toc{position:sticky;top:88px;}
.art-toc-label{font-family:var(--font-en);font-size:11px;font-weight:700;letter-spacing:.14em;color:var(--c-accent);margin-bottom:12px;}
.art-toc-label .jp{margin-left:8px;color:var(--c-ink-3);font-family:var(--font-jp);}
.art-toc ol{list-style:none;margin:0;padding:0;counter-reset:t;}
.art-toc li{counter-increment:t;margin-bottom:2px;}
.art-toc a{display:block;font-size:13px;color:var(--c-ink-2);text-decoration:none;padding:8px 0;border-top:1px solid var(--c-rule);}
.art-toc a:hover{color:var(--c-accent);}
.art-toc a::before{content:counter(t,decimal-leading-zero);font-family:var(--font-en);color:var(--c-accent);font-weight:700;margin-right:8px;font-size:11px;}
.art-content h2{font-size:23px;font-weight:700;margin:48px 0 16px;padding-bottom:10px;border-bottom:1px solid var(--c-rule);}
.art-content h2:first-child{margin-top:0;}
.art-content h3{font-size:18px;font-weight:700;margin:32px 0 12px;}
.art-content p{font-size:16px;line-height:2;color:var(--c-ink-2);margin:0 0 20px;}
.art-content strong,.art-content b{color:var(--c-ink);}
.art-content ul{margin:0 0 20px;padding:0;list-style:none;}
.art-content li{position:relative;padding-left:22px;font-size:15px;line-height:1.9;color:var(--c-ink-2);margin-bottom:9px;}
.art-content li::before{content:"";position:absolute;left:0;top:.72em;width:7px;height:7px;background:var(--c-accent);}
.art-callout{background:var(--c-paper-2);padding:22px 26px;margin:26px 0;font-size:15.5px;line-height:1.9;color:var(--c-ink);}
.art-callout b{color:var(--c-accent);}
.art-footer-meta{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:44px 0 0;padding-top:22px;border-top:1px solid var(--c-rule);flex-wrap:wrap;}
.art-tags a{font-size:13px;color:var(--c-accent);text-decoration:none;margin-right:12px;font-weight:700;}
.art-share{display:flex;align-items:center;gap:8px;}
.art-share-label{font-family:var(--font-en);font-size:11px;color:var(--c-ink-3);letter-spacing:.1em;font-weight:700;margin-right:4px;}
.art-share-btn{width:36px;height:36px;border:1px solid var(--c-rule);display:inline-flex;align-items:center;justify-content:center;text-decoration:none;color:var(--c-ink-2);font-family:var(--font-en);font-size:12px;font-weight:700;}
.art-share-btn:hover{border-color:var(--c-accent);color:var(--c-accent);}
.art-authorbox{display:flex;gap:24px;align-items:flex-start;margin:40px 0 0;padding:28px;background:var(--c-paper-2);}
.art-avatar-lg{width:80px;height:80px;border-radius:999px;background:#dfe3ea;flex-shrink:0;}
.art-authorbox h4{font-size:16px;font-weight:700;margin:0;}
.art-authorbox .role{font-size:11px;color:var(--c-ink-3);margin:2px 0 10px;}
.art-authorbox p{font-size:13.5px;line-height:1.9;color:var(--c-ink-2);margin:0;}
/* related */
.rel-sec{padding:64px 0;background:var(--c-paper-2);border-top:1px solid var(--c-rule);}
.rel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:24px;}
.bl-body{padding:18px 18px 20px;display:flex;flex-direction:column;flex:1;}
.bl-meta{display:flex;gap:10px;font-size:12px;color:var(--c-ink-3);margin-bottom:8px;}
.bl-title{font-size:15px;font-weight:700;line-height:1.6;margin:0 0 14px;flex:1;}
.bl-foot{display:flex;justify-content:space-between;font-size:12px;color:var(--c-ink-3);border-top:1px solid var(--c-rule);padding-top:10px;}
/* form + cta */
.fe{font-family:var(--font-en);font-size:11px;letter-spacing:.16em;color:var(--c-accent);font-weight:700;}
@media(max-width:980px){.rel-grid{grid-template-columns:1fr;}}
@media(max-width:900px){.art-grid{grid-template-columns:1fr;gap:32px;}.art-toc{position:static;}}
@media(max-width:820px){.ap-cta-grid{grid-template-columns:1fr;gap:28px;}.art-footer-meta{flex-direction:column;align-items:flex-start;}}
/* toolbar */
.nw-toolbar{border-top:1px solid var(--c-rule);border-bottom:1px solid var(--c-rule);background:#fff;}
.nw-toolbar-in{display:flex;align-items:center;gap:32px;padding-top:14px;padding-bottom:14px;flex-wrap:wrap;}
.nw-tgroup{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.nw-tlabel{font-family:var(--font-en);font-size:11px;letter-spacing:.14em;color:var(--c-ink-3);font-weight:700;}
.nw-toolbar ul{list-style:none;display:flex;gap:8px;flex-wrap:wrap;margin:0;padding:0;}
.nw-chip{font-family:inherit;font-size:13px;font-weight:700;color:var(--c-ink-2);background:#fff;border:1px solid var(--c-rule);padding:6px 14px;border-radius:999px;cursor:pointer;transition:.15s;}
.nw-chip:hover{border-color:var(--c-accent);color:var(--c-accent);}
.nw-chip.is-active{background:var(--c-accent);border-color:var(--c-accent);color:#fff;}
.nw-year{font-family:inherit;font-size:13px;border:1px solid var(--c-rule);padding:7px 12px;color:var(--c-ink-2);background:#fff;}
/* list */
.nw-list{border-top:1px solid var(--c-rule);}
.nw-row{display:grid;grid-template-columns:120px 130px 1fr auto;gap:20px;align-items:center;padding:20px 6px;border-bottom:1px solid var(--c-rule);text-decoration:none;color:inherit;transition:background .15s;}
.nw-row:hover{background:var(--c-paper-2);}
.nw-date{font-family:var(--font-en);font-size:13px;color:var(--c-ink-3);}
.nw-tag{justify-self:start;font-size:11px;font-weight:700;color:var(--c-accent);border:1px solid var(--c-accent);border-radius:999px;padding:3px 12px;white-space:nowrap;}
.nw-title{font-size:15px;font-weight:500;line-height:1.6;}
.nw-row:hover .nw-title{color:var(--c-accent);}
.nw-arrow{color:var(--c-ink-3);font-family:var(--font-en);}
.nw-empty{text-align:center;color:var(--c-ink-2);padding:40px 0;}
.bl-pager{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:44px;}
@media(max-width:820px){.ap-cta-grid{grid-template-columns:1fr;gap:28px;}.nw-row{grid-template-columns:100px 1fr;gap:10px 14px;}.nw-tag{grid-column:2;}.nw-title{grid-column:1 / -1;}.nw-arrow{display:none;}}
.nd-narrow{max-width:820px;}
.nd-hero{padding:56px 0 8px;}
.nd-meta{display:flex;align-items:center;gap:12px;margin-bottom:16px;}
.nw-tag{font-size:11px;font-weight:700;color:var(--c-accent);border:1px solid var(--c-accent);border-radius:999px;padding:3px 12px;}
.nd-date{font-family:var(--font-en);font-size:13px;color:var(--c-ink-3);}
.nd-title{font-size:clamp(24px,3.2vw,34px);font-weight:700;line-height:1.45;margin:0 0 24px;}
.nd-issuer{display:flex;align-items:center;gap:14px;padding:18px 0;border-top:1px solid var(--c-rule);border-bottom:1px solid var(--c-rule);}
.nd-issuer-label{font-family:var(--font-en);font-size:10px;letter-spacing:.16em;color:var(--c-ink-3);font-weight:700;text-transform:uppercase;}
.nd-issuer-brands{display:flex;align-items:center;gap:12px;}
.nd-issuer-brands img{height:22px;width:auto;}
.nd-issuer-brands .x{color:var(--c-ink-3);}
.nd-body-wrap{padding:40px 0 72px;}
.nd-body p{font-size:16px;line-height:2;color:var(--c-ink-2);margin:0 0 20px;}
.nd-body strong{color:var(--c-ink);}
.nd-body h2{font-size:20px;font-weight:700;margin:36px 0 14px;padding-bottom:10px;border-bottom:1px solid var(--c-rule);}
.nd-foot{display:flex;justify-content:space-between;align-items:center;margin-top:44px;padding-top:22px;border-top:1px solid var(--c-rule);flex-wrap:wrap;gap:12px;}
.nd-btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--c-rule);padding:12px 22px;text-decoration:none;color:var(--c-ink-2);font-size:14px;font-weight:700;transition:.15s;}
.nd-btn:hover{border-color:var(--c-accent);color:var(--c-accent);}
.nw-list{}
.nw-row{display:grid;grid-template-columns:120px 130px 1fr auto;gap:20px;align-items:center;padding:20px 6px;border-bottom:1px solid var(--c-rule);text-decoration:none;color:inherit;transition:background .15s;background:#fff;}
.nw-row:hover{background:#fff;}
.label-row{display:flex;align-items:center;gap:14px;}
@media(max-width:820px){.ap-cta-grid{grid-template-columns:1fr;gap:28px;}.nw-row{grid-template-columns:100px 1fr;gap:10px 14px;}.nw-tag{grid-column:2;justify-self:start;}.nw-title{grid-column:1 / -1;}.nw-arrow{display:none;}.nd-foot{flex-direction:column;align-items:stretch;}}
/* related news list (clean white card) */
.rel-newslist{background:#fff;border:1px solid var(--c-rule);margin-top:24px;}
.rel-row{display:grid;grid-template-columns:120px 132px 1fr auto;gap:24px;align-items:center;padding:20px 24px;border-bottom:1px solid var(--c-rule);text-decoration:none;color:inherit;transition:background .15s;}
.rel-row:last-child{border-bottom:0;}
.rel-row:hover{background:var(--c-paper-2);}
.rel-date{font-family:var(--font-en);font-size:13px;color:var(--c-ink-3);}
.rel-tag{justify-self:start;font-size:11px;font-weight:700;color:var(--c-accent);border:1px solid var(--c-accent);border-radius:999px;padding:3px 12px;white-space:nowrap;}
.rel-title{font-size:15px;font-weight:500;line-height:1.6;}
.rel-row:hover .rel-title{color:var(--c-accent);}
.rel-arrow{color:var(--c-ink-3);font-family:var(--font-en);}
@media(max-width:820px){.rel-row{grid-template-columns:92px 1fr;gap:8px 14px;padding:16px 18px;}.rel-tag{grid-column:2;}.rel-title{grid-column:1 / -1;}.rel-arrow{display:none;}}
.container{max-width:var(--max-w);margin:0 auto;padding:0 clamp(24px,5vw,80px);}
.container-narrow{max-width:860px;margin:0 auto;padding:0 clamp(24px,5vw,80px);}
.legal-breadcrumb{border-bottom:1px solid var(--c-rule);background:var(--c-paper-2);}
.legal-breadcrumb-inner{padding:12px 0;font-size:12px;color:var(--c-ink-3);}
.legal-breadcrumb a{color:var(--c-ink-3);text-decoration:none;}
.legal-breadcrumb a:hover{color:var(--c-accent);}
.legal-breadcrumb .sep{margin:0 8px;}
.legal-breadcrumb .current{color:var(--c-ink-2);font-weight:700;}
.legal-hero{padding:56px 0 32px;}
.legal-hero .eyebrow .jp{display:inline-block;font-size:13px;font-weight:700;color:var(--c-accent);margin-bottom:10px;}
.legal-hero-title{font-family:var(--font-en);font-size:clamp(28px,3.4vw,40px);font-weight:700;color:var(--c-ink);margin:0;line-height:1.1;letter-spacing:.01em;}
.legal-hero-title .jp{display:block;font-family:var(--font-jp);font-size:.42em;color:var(--c-ink-2);margin-top:10px;letter-spacing:.02em;}
.legal-hero-meta{margin-top:20px;font-size:13px;color:var(--c-ink-3);}
.legal-hero-meta .label{margin-right:8px;}
.legal-hero-meta .value{font-family:var(--font-en);color:var(--c-ink-2);font-weight:700;}
.legal-body-wrap{padding:32px 0 80px;}
.legal-grid{display:grid;grid-template-columns:220px 1fr;gap:56px;align-items:start;}
.legal-toc{position:sticky;top:88px;}
.legal-toc-label{font-family:var(--font-en);font-size:11px;font-weight:700;letter-spacing:.14em;color:var(--c-accent);margin-bottom:12px;}
.legal-toc-label .jp{margin-left:8px;color:var(--c-ink-3);font-family:var(--font-jp);}
.legal-toc-list{list-style:none;margin:0;padding:0;counter-reset:l;}
.legal-toc-list li{counter-increment:l;}
.legal-toc-list a{display:block;font-size:13px;color:var(--c-ink-2);text-decoration:none;padding:9px 0;border-top:1px solid var(--c-rule);}
.legal-toc-list a:hover{color:var(--c-accent);}
.legal-toc-list a::before{content:counter(l,decimal-leading-zero);font-family:var(--font-en);color:var(--c-accent);font-weight:700;margin-right:8px;font-size:11px;}
.legal-lead{font-size:16px;line-height:2;color:var(--c-ink-2);margin:0 0 40px;}
.legal-content section{margin-bottom:56px;}
.legal-content h2{display:flex;align-items:baseline;gap:12px;font-size:20px;font-weight:700;margin:0 0 20px;padding-bottom:12px;border-bottom:2px solid var(--c-ink);flex-wrap:wrap;}
.legal-content h2 .num{font-family:var(--font-en);color:var(--c-accent);font-size:15px;}
.legal-content h3{font-size:16px;font-weight:700;margin:28px 0 12px;}
.legal-content h4{font-size:14px;font-weight:700;margin:22px 0 10px;}
.legal-content p{font-size:14.5px;line-height:1.95;color:var(--c-ink-2);margin:0 0 16px;}
.legal-content a{color:var(--c-accent);text-decoration:none;word-break:break-all;}
.legal-content a:hover{text-decoration:underline;}
.legal-content ul,.legal-content ol{margin:0 0 18px;padding-left:1.4em;}
.legal-content li{font-size:14px;line-height:1.9;color:var(--c-ink-2);margin-bottom:6px;}
.legal-content strong{color:var(--c-ink);}
.legal-content table{width:100%;border-collapse:collapse;margin:18px 0;font-size:13.5px;}
.legal-content th,.legal-content td{border:1px solid var(--c-rule);padding:12px 14px;text-align:left;vertical-align:top;line-height:1.8;}
.legal-content th{background:var(--c-paper-2);font-weight:700;color:var(--c-ink);}
.legal-content td{color:var(--c-ink-2);}
.legal-contact-box{background:var(--c-paper-2);border:1px solid var(--c-rule);padding:22px 24px;margin:24px 0;}
.legal-contact-box-head{font-family:var(--font-en);font-size:11px;letter-spacing:.14em;color:var(--c-accent);font-weight:700;margin-bottom:12px;}
.legal-contact-box h4{margin:0 0 8px;font-size:15px;}
.legal-contact-box dl{margin:0;display:grid;grid-template-columns:130px 1fr;gap:8px 16px;}
.legal-contact-box dt{font-weight:700;color:var(--c-ink);font-size:13.5px;}
.legal-contact-box dd{margin:0;color:var(--c-ink-2);font-size:13.5px;}
@media(max-width:900px){.legal-grid{grid-template-columns:1fr;gap:28px;}.legal-toc{position:static;}.legal-contact-box dl{grid-template-columns:1fr;gap:2px;}.legal-contact-box dt{margin-top:8px;}.legal-content table,.legal-content thead,.legal-content tbody,.legal-content th,.legal-content td,.legal-content tr{display:block;}.legal-content thead{display:none;}.legal-content td{border-top:0;}.legal-content tr{margin-bottom:14px;border:1px solid var(--c-rule);}}

/* ============================================================
   フォーム（右カラム）だけ縦スクロール
   長いHubSpotフォームでセクション全体が縦に伸びるのを防ぎ、
   入力欄の領域のみを固定高さ＋内部スクロールにする。
   （見出し「FREE CONSULTATION / 無料相談・資料請求」と注記は枠外＝固定）
   対象は front-page.php の .hform（ヒーロー右）と .cform（最終CTA右）のみ。
   お問い合わせページ／記事下などのフォームは従来どおり自然な高さ。

   【重要】高さ制限は .hs-form-frame ではなく外側の .form-scroll に当てる。
   HubSpot の埋め込みスクリプトは .hs-form-frame の height をインラインで
   自動設定し、内側の iframe は height:100% でそれに追従する。
   そのため .hs-form-frame 自体に max-height を当てると iframe も縮み、
   フォームが途中で切れて最後までスクロールできなくなる。
   （現行サイト cacaid.jp も外側ラッパーに制限を当てる方式）

   ※オフラインの静的プレビューではフォーム未読込のため空＝スクロール対象なし。
     オンライン（実サイト）でフォーム表示時に枠内がスクロールします。
   ============================================================ */
.hform .form-scroll,
.cform .form-scroll{
  /* 表示範囲（現行サイト相当のコンパクト表示）
     max-height のみ指定＝フォームが短い場合は余白を作らず縮む */
  max-height:min(360px, 62vh);
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  /* スクロールバー分の幅を常に確保してレイアウトが揺れないようにする */
  scrollbar-gutter:stable;
  scrollbar-width:thin;
  scrollbar-color:var(--c-ink-3) var(--c-paper-2);
  padding-right:6px;
  position:relative;
  /* focus 時のオートスクロールで入力欄が枠に張り付かないよう余白を確保 */
  scroll-padding-block:12px;
}
/* 内側の HubSpot 管理領域には高さ制約を一切かけない（切れの原因になる） */
.hform .form-scroll .hs-form-frame,
.cform .form-scroll .hs-form-frame{
  height:auto;
  max-height:none;
  overflow:visible;
}
.hform .form-scroll iframe,
.cform .form-scroll iframe{ width:100% !important; max-width:100% !important; }
/* スクロールバーを常時可視化（WebKit系。現行サイトと同様の細いトラック） */
.hform .form-scroll::-webkit-scrollbar,
.cform .form-scroll::-webkit-scrollbar{ width:8px; }
.hform .form-scroll::-webkit-scrollbar-track,
.cform .form-scroll::-webkit-scrollbar-track{ background:var(--c-paper-2); border-radius:8px; }
.hform .form-scroll::-webkit-scrollbar-thumb,
.cform .form-scroll::-webkit-scrollbar-thumb{ background:var(--c-ink-3); border-radius:8px; }
.hform .form-scroll::-webkit-scrollbar-thumb:hover,
.cform .form-scroll::-webkit-scrollbar-thumb:hover{ background:var(--c-ink-2); }
/* 1カラムになるモバイル/タブレットでは内部スクロールを解除（自然な高さで表示）
   ブレークポイントは .hero-grid / .cta-band .wrap が1カラム化する 1060px に合わせる */
@media(max-width:1060px){
  .hform .form-scroll,
  .cform .form-scroll{
    max-height:none;
    overflow:visible;
    padding-right:0;
    scrollbar-gutter:auto;
  }
}


/* モバイル(≤560px)のみ: ヒーローKPIを縦積みにして横はみ出しを防ぐ
   （3カラム＋nowrapの数値が狭い画面でグリッドを押し広げ、右カラムのフォームが
     中央からずれる問題の対策。デスクトップ/タブレットは変更なし） */
@media(max-width:560px){
  .kpi{grid-template-columns:1fr;}
  .kpi-item{border-left:0;border-top:1px solid var(--c-rule);padding:16px 0;}
  .kpi-item:first-child{border-top:0;padding-top:0;}
  /* 信頼バーを縦積みにして「×」をCACロゴとFPTロゴの間に配置 */
  .cred{flex-direction:column;gap:10px;}
}
