/* ============================================================
   パートナー協同組合 — Top Page (Direction A: 堅実・信頼)
   緑基調 / 明朝×ゴシック / Outfit
   ============================================================ */
:root{
  /* ===== Theme: Fresh Blue（デフォルト・ブランド基調） ===== */
  --ink:#16202e;
  --ink-soft:#4d586a;
  --ink-faint:#8a93a2;
  --paper:#f4f7fb;
  --paper-2:#e8eef7;
  --card:#ffffff;
  --line:#e0e8f2;
  --line-strong:#c8d4e4;
  --g-950:#0f2c5a;
  --g-900:#143b78;
  --g-800:#1a4f9e;
  --g-700:#1f63c4;
  --g-600:#2474d6;
  --g-500:#3b8ef0;
  --g-400:#7fb6f5;
  --g-100:#d7e6fb;
  --g-50:#eef5fe;
  --clay:#b07d1c;
  --gold:#f3c33a;
  --gold-ink:#143b78;
  --hero-glow:#cfe2fb;
  --hero-1:#eef4fc;
  --hero-2:#f7fafd;
  --grid-line:rgba(31,99,196,.055);
  --maxw:1180px;
  --r:14px;
  --sans:"Noto Sans JP",system-ui,sans-serif;
  --serif:"Noto Serif JP",serif;
  --latin:"Outfit",sans-serif;
  --shadow-sm:0 2px 10px -4px rgba(20,50,100,.16);
  --shadow:0 20px 46px -26px rgba(20,50,100,.3);
}
[data-theme="green"]{
  /* ===== Theme: Emerald（グリーン） ===== */
  --ink:#15241c;
  --ink-soft:#51605a;
  --ink-faint:#8b968f;
  --paper:#f4f8f5;
  --paper-2:#e9f1ec;
  --line:#e2eae4;
  --line-strong:#ccd8d0;
  --g-950:#0c4632;
  --g-900:#0f5a3f;
  --g-800:#136848;
  --g-700:#127a4e;
  --g-600:#159059;
  --g-500:#1fa86a;
  --g-400:#63c79b;
  --g-100:#d3ecde;
  --g-50:#edf8f1;
  --clay:#b5703f;
  --gold:#b5703f;
  --gold-ink:#ffffff;
  --hero-glow:#d6f0e3;
  --hero-1:#eff8f3;
  --hero-2:#f6faf7;
  --grid-line:rgba(18,104,72,.05);
  --shadow-sm:0 2px 10px -4px rgba(16,90,63,.18);
  --shadow:0 20px 46px -26px rgba(16,90,63,.34);
}
[data-theme="white"]{
  /* ===== Theme: Clean White（白基調・ミニマル） ===== */
  --ink:#141b26;
  --ink-soft:#4a5563;
  --ink-faint:#8a93a2;
  --paper:#ffffff;
  --paper-2:#f3f5f9;
  --card:#ffffff;
  --line:#e9ecf1;
  --line-strong:#d6dbe3;
  --g-950:#0e1622;
  --g-900:#15202e;
  --g-800:#1c2a3a;
  --g-700:#1f63c4;
  --g-600:#2474d6;
  --g-500:#3b8ef0;
  --g-400:#7fb6f5;
  --g-100:#dbe7f8;
  --g-50:#f5f8fc;
  --clay:#b07d1c;
  --gold:#f3c33a;
  --gold-ink:#15202e;
  --hero-glow:#e9f1fb;
  --hero-1:#ffffff;
  --hero-2:#ffffff;
  --grid-line:rgba(31,99,196,.04);
  --shadow-sm:0 2px 10px -4px rgba(20,30,45,.12);
  --shadow:0 20px 46px -26px rgba(20,30,45,.24);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--ink);background:var(--paper);line-height:1.85;font-size:16px;-webkit-font-smoothing:antialiased;letter-spacing:.01em}
::selection{background:var(--g-100)}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px}
section{scroll-margin-top:96px}

/* placeholder imagery */
.ph{background-image:repeating-linear-gradient(135deg,#e0e7e0 0 9px,#e9eee9 9px 18px);position:relative;overflow:hidden}
.ph .pht{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--latin);font-size:12px;letter-spacing:.12em;color:#7a857c;text-transform:uppercase;text-align:center;padding:10px}
.ph.dark{background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.06) 0 9px,rgba(255,255,255,.02) 9px 18px)}
.ph.dark .pht{color:#9fb3a4}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:9px;font-family:var(--sans);font-weight:700;font-size:15px;letter-spacing:.02em;padding:14px 26px;border-radius:10px;border:1.5px solid transparent;cursor:pointer;transition:.18s;white-space:nowrap;line-height:1}
.btn .ar{font-family:var(--latin);font-weight:600}
.btn-primary{background:var(--g-700);color:#fff;box-shadow:var(--shadow-sm)}
.btn-primary:hover{background:var(--g-800);transform:translateY(-1px)}
.btn-gold{background:var(--gold);color:var(--gold-ink)}
.btn-gold:hover{filter:brightness(.95);transform:translateY(-1px)}
.btn-ghost{background:#fff;color:var(--g-800);border-color:var(--line-strong)}
.btn-ghost:hover{border-color:var(--g-500);color:var(--g-700)}
.btn-lg{font-size:16px;padding:17px 32px}
.btn-block{width:100%;justify-content:center}

/* eyebrows / headings */
.eyebrow{font-family:var(--latin);font-size:12px;letter-spacing:.24em;font-weight:600;color:var(--g-500);text-transform:uppercase}
.kicker{display:inline-flex;align-items:center;gap:10px;font-size:13px;font-weight:700;letter-spacing:.06em;color:var(--g-600)}
.kicker::before{content:"";width:24px;height:2px;background:var(--g-500);border-radius:2px}
h2.h2{font-family:var(--serif);font-weight:600;font-size:clamp(26px,3.6vw,40px);line-height:1.42;letter-spacing:.01em;margin-top:14px;text-wrap:balance}
.lead{color:var(--ink-soft);font-size:16px;line-height:2;margin-top:18px;max-width:680px}
.center{text-align:center}
.center .lead{margin-left:auto;margin-right:auto}
.center .kicker{justify-content:center}

/* ============ HEADER ============ */
.site-head{position:sticky;top:0;z-index:100;background:rgba(244,248,245,.85);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);transition:box-shadow .2s}
.site-head.scrolled{box-shadow:0 6px 22px -16px rgba(16,90,63,.34);background:rgba(248,251,249,.95)}
.headbar{display:flex;align-items:center;gap:24px;height:74px;max-width:var(--maxw);margin:0 auto;padding:0 32px}
.logo{display:flex;align-items:center;gap:10px;flex-shrink:0}
.logo-img{height:30px;width:auto;display:block}
.logo-suffix{font-family:var(--serif);font-weight:700;font-size:17px;letter-spacing:.05em;color:var(--ink);white-space:nowrap}
@media(max-width:520px){.logo-img{height:23px}.logo-suffix{font-size:12.5px}}
.logo .mark{width:38px;height:38px;border-radius:9px;background:var(--g-700);display:grid;place-items:center;color:#fff;font-family:var(--latin);font-weight:700;font-size:19px}
.logo .lt{font-family:var(--serif);font-weight:600;font-size:18px;letter-spacing:.02em;line-height:1.15}
.logo .lt small{display:block;font-family:var(--latin);font-weight:500;font-size:9.5px;letter-spacing:.18em;color:var(--ink-faint);margin-top:2px}
.mainnav{display:flex;align-items:center;gap:2px;margin-left:8px}
.mainnav a{font-size:13.5px;font-weight:500;color:var(--ink-soft);padding:9px 12px;border-radius:8px;transition:.15s;white-space:nowrap}
.mainnav a:hover{background:var(--g-50);color:var(--g-800)}
.head-cta{margin-left:auto;display:flex;align-items:center;gap:16px}
.head-tel{text-align:right;line-height:1.25}
.head-tel .n{font-family:var(--latin);font-weight:700;font-size:19px;color:var(--g-800);letter-spacing:.02em}
.head-tel .h{font-size:10.5px;color:var(--ink-faint);letter-spacing:.04em}
.head-btns{display:flex;gap:9px}
.head-btns .btn{padding:11px 18px;font-size:13.5px}
.navtoggle{display:none;width:44px;height:44px;border:1px solid var(--line-strong);border-radius:9px;background:#fff;cursor:pointer;flex-direction:column;gap:5px;align-items:center;justify-content:center;margin-left:auto}
.navtoggle span{width:20px;height:2px;background:var(--g-800);border-radius:2px;transition:.2s}

@media(max-width:1240px){
  .mainnav,.head-tel{display:none}
}
@media(max-width:1240px){
  .head-cta{display:none}
  .navtoggle{display:flex}
}
/* mobile drawer */
.drawer{position:fixed;inset:74px 0 0;background:rgba(10,38,30,.55);backdrop-filter:blur(3px);z-index:99;opacity:0;pointer-events:none;transition:.25s;overflow:hidden}
.drawer.open{opacity:1;pointer-events:auto}
.drawer-inner{position:absolute;top:0;right:0;width:min(340px,86vw);bottom:0;background:var(--paper);padding:24px;overflow:auto;transform:translateX(100%);transition:.28s;display:flex;flex-direction:column;gap:6px}
.drawer.open .drawer-inner{transform:none}
.drawer-inner a{padding:14px 12px;font-size:15px;font-weight:500;border-bottom:1px solid var(--line)}
.drawer-inner .btn{margin-top:10px}
.drawer-inner .dtel{margin-top:18px;text-align:center;font-family:var(--latin);font-weight:700;font-size:24px;color:var(--g-800)}

/* ============ HERO ============ */
.hero{position:relative;overflow:hidden;background:radial-gradient(110% 90% at 92% -8%,var(--hero-glow) 0%,transparent 56%),linear-gradient(168deg,var(--hero-1) 0%,var(--hero-2) 58%,var(--hero-1) 100%);color:var(--ink)}
.hero .grid-tex{position:absolute;inset:0;opacity:.6;background-image:linear-gradient(var(--grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);background-size:48px 48px;mask-image:radial-gradient(circle at 84% 6%,#000,transparent 72%)}
.hero-inner{position:relative;z-index:2;display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center;max-width:var(--maxw);margin:0 auto;padding:74px 32px 78px}
.hero-eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:12.5px;font-weight:600;letter-spacing:.08em;color:var(--g-600);border:1px solid var(--g-100);border-radius:100px;padding:7px 16px;background:#fff;box-shadow:var(--shadow-sm)}
.hero h1{font-family:var(--serif);font-weight:600;font-size:clamp(30px,4.4vw,50px);line-height:1.42;letter-spacing:.01em;margin:24px 0 0;text-wrap:balance}
.hero h1 em{font-style:normal;color:var(--g-600)}
.hero-sub{margin-top:24px;font-size:16px;color:var(--ink-soft);line-height:2;max-width:520px}
.hero-cta{display:flex;gap:14px;margin-top:34px;flex-wrap:wrap}
.hero-cta .btn-ghost{background:#fff;color:var(--g-800);border-color:var(--line-strong)}
.hero-cta .btn-ghost:hover{background:var(--g-50);border-color:var(--g-500);color:var(--g-700)}
.hero-trust{display:flex;gap:22px;margin-top:34px;flex-wrap:wrap;padding-top:26px;border-top:1px solid var(--line)}
.hero-trust .ht{font-size:12px;color:var(--ink-faint);line-height:1.5}
.hero-trust .ht b{display:block;color:var(--ink);font-size:13px;font-weight:700}
.hero-visual{position:relative}
.hero-visual .mainpic{aspect-ratio:4/5;border-radius:16px;border:1px solid var(--line);box-shadow:0 30px 60px -34px rgba(16,90,63,.4);overflow:hidden}
.hero-visual .mainpic img{width:100%;height:100%;object-fit:cover;object-position:center 30%;display:block}
.hero-badge{position:absolute;left:-22px;bottom:34px;background:#fff;color:var(--ink);border-radius:13px;padding:18px 22px;box-shadow:var(--shadow);min-width:200px}
.hero-badge .v{font-family:var(--latin);font-weight:700;font-size:36px;color:var(--g-700);line-height:1}
.hero-badge .v small{font-size:17px}
.hero-badge .l{font-size:12.5px;color:var(--ink-soft);margin-top:6px;font-weight:500}
.hero-badge .sub{font-size:10.5px;color:var(--ink-faint);margin-top:3px}
.hero-badge.badge-msg{max-width:248px;padding:16px 20px 18px}
.hero-badge .bk{display:inline-block;white-space:nowrap;font-family:var(--latin);font-size:10.5px;font-weight:700;letter-spacing:.16em;color:var(--g-700);background:var(--g-50);padding:4px 11px;border-radius:99px;margin-bottom:11px}
.hero-badge .bt{font-family:var(--serif,var(--ink-font));font-weight:700;font-size:19px;line-height:1.42;color:var(--ink);letter-spacing:.01em}
.hero-badge .bt em{font-style:normal;color:var(--g-700)}
.hero-badge .bsub{font-size:11.5px;color:var(--ink-soft);margin-top:9px;line-height:1.5}
@media(max-width:920px){
  .hero-inner{grid-template-columns:1fr;gap:36px;padding:52px 32px 60px}
  .hero-visual{max-width:380px}
}

/* ============ STATS ============ */
.statband{background:var(--card);border-bottom:1px solid var(--line)}
.statgrid{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;max-width:var(--maxw);margin:0 auto}
.statgrid .st{padding:30px 18px;border-right:1px solid var(--line);text-align:center}
.statgrid .st:last-child{border-right:0}
.statgrid .st .v{font-family:var(--latin);font-weight:700;font-size:33px;color:var(--g-700);line-height:1;letter-spacing:-.01em;white-space:nowrap}
.statgrid .st .v small{font-size:15px;font-weight:600}
.statgrid .st .l{margin-top:9px;font-size:12px;color:var(--ink-soft);font-weight:500}
@media(max-width:820px){
  .statgrid{grid-template-columns:repeat(3,1fr);grid-auto-flow:row}
  .statgrid .st{border-bottom:1px solid var(--line)}
  .statgrid .st:nth-child(3n){border-right:0}
  .statgrid .st:nth-child(n+4){border-bottom:0}
}
@media(max-width:460px){
  .statgrid{grid-template-columns:repeat(2,1fr);grid-auto-flow:row}
  .statgrid .st{border-bottom:1px solid var(--line)}
  .statgrid .st:nth-child(3n){border-right:1px solid var(--line)}
  .statgrid .st:nth-child(2n){border-right:0}
  .statgrid .st:nth-last-child(-n+1):nth-child(odd){border-bottom:0}
  .statgrid .st:nth-last-child(-n+2):nth-child(odd),
  .statgrid .st:nth-last-child(-n+1):nth-child(even){border-bottom:0}
  .statgrid .st .v{font-size:28px}
}

/* generic band */
.band{padding:84px 0}
.band.alt{background:var(--card);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.band.tint{background:var(--g-50)}
.band.dark{background:linear-gradient(165deg,var(--g-900),#0b2620);color:#e9f0ea}

/* ============ 課題 ============ */
.issues{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:48px}
.issue-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:30px 28px;position:relative}
.issue-card .qn{font-family:var(--latin);font-weight:700;font-size:13px;letter-spacing:.1em;color:var(--clay)}
.issue-card h3{font-family:var(--serif);font-weight:600;font-size:19px;line-height:1.5;margin:12px 0 12px}
.issue-card p{font-size:14px;color:var(--ink-soft);line-height:1.9}
.issues-foot{margin-top:30px;text-align:center;font-family:var(--serif);font-weight:600;font-size:clamp(18px,2.4vw,23px);color:var(--g-800)}
.issues-foot em{font-style:normal;color:var(--g-500)}
@media(max-width:820px){.issues{grid-template-columns:1fr}}

/* ============ 選ばれる理由 / 差別化 compare ============ */
.compare{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:50px}
.cmp{border-radius:var(--r);padding:30px;border:1px solid var(--line)}
.cmp.bad{background:var(--card)}
.cmp.good{background:linear-gradient(165deg,var(--g-800),var(--g-900));color:#eaf2ec;border-color:var(--g-700)}
.cmp .ctag{display:inline-block;font-family:var(--latin);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:5px 12px;border-radius:6px;margin-bottom:18px}
.cmp.bad .ctag{background:var(--paper-2);color:var(--ink-faint)}
.cmp.good .ctag{background:var(--g-500);color:#fff}
.cmp h3{font-family:var(--serif);font-weight:600;font-size:20px;margin-bottom:18px;line-height:1.5}
.cmp.bad h3{color:var(--ink)}
.flowline{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:20px}
.flowline .node{font-size:12px;font-weight:600;padding:7px 12px;border-radius:7px;white-space:nowrap}
.cmp.bad .node{background:var(--paper-2);color:var(--ink-soft)}
.cmp.good .node{background:rgba(255,255,255,.1);color:#eaf2ec}
.cmp.good .node.hot{background:var(--g-500);color:#fff}
.flowline .sep{font-family:var(--latin);color:var(--ink-faint);font-size:12px}
.cmp.good .sep{color:#7fa090}
.cmp .desc{font-size:13.5px;line-height:1.9}
.cmp.bad .desc{color:var(--ink-soft)}
.cmp.good .desc{color:#c4d3c7}
.cmp.good .desc b{color:#fff}
.cmp .blackbox{display:inline-block;margin-top:14px;font-size:12px;font-weight:700;color:var(--clay);background:#f6ece4;border-radius:7px;padding:8px 12px}
@media(max-width:820px){.compare{grid-template-columns:1fr}}

/* ============ 機能 5 ============ */
.funcs{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-top:48px}
.func{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:24px 20px;transition:.18s}
.func:hover{border-color:var(--g-400);box-shadow:var(--shadow-sm);transform:translateY(-2px)}
.func .fn{font-family:var(--latin);font-weight:600;font-size:12px;color:var(--g-500);letter-spacing:.1em}
.func .ic{width:42px;height:42px;border-radius:11px;background:var(--g-50);display:grid;place-items:center;margin:12px 0 14px}
.func .ic svg{width:22px;height:22px;stroke:var(--g-700);fill:none;stroke-width:1.6}
.func h3{font-family:var(--serif);font-weight:600;font-size:17px;margin-bottom:9px}
.func p{font-size:12.5px;color:var(--ink-soft);line-height:1.85}
@media(max-width:980px){.funcs{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.funcs{grid-template-columns:1fr}}

/* ============ 対応分野 ============ */
.fieldwrap{display:grid;grid-template-columns:.85fr 1.15fr;gap:40px;margin-top:48px;align-items:start}
.fieldwrap .lead{margin-top:14px}
.fieldnote{margin-top:22px;background:var(--g-50);border:1px solid var(--g-100);border-radius:12px;padding:18px 20px;font-size:13.5px;color:var(--g-800);line-height:1.85}
.fieldnote b{font-weight:700}
.fields{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.field{position:relative;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px 12px;font-size:12.5px;font-weight:500;display:flex;align-items:center;gap:8px;min-height:56px;line-height:1.4}
.field .fno{font-family:var(--latin);font-size:10px;font-weight:600;color:var(--ink-faint)}
.field.hl{background:var(--g-700);border-color:var(--g-700);color:#fff}
.field.hl .fno{color:var(--g-400)}
.field .star{position:absolute;top:-7px;right:-7px;background:var(--gold);color:var(--gold-ink);font-size:9px;font-weight:700;padding:2px 7px;border-radius:100px;letter-spacing:.04em}
@media(max-width:900px){.fieldwrap{grid-template-columns:1fr}.fields{grid-template-columns:repeat(3,1fr)}}
@media(max-width:520px){.fields{grid-template-columns:repeat(2,1fr)}}

/* ============ 事例 ============ */
.cases{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:48px}
.case{background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;transition:.18s}
.case:hover{box-shadow:var(--shadow);transform:translateY(-3px)}
.case .pic{aspect-ratio:16/10}
.case .body{padding:22px 24px 26px}
.case .meta{display:flex;gap:8px;align-items:center;font-size:11.5px;color:var(--ink-faint);font-weight:600}
.case .meta .ind{background:var(--g-50);color:var(--g-700);padding:3px 9px;border-radius:6px}
.case .head{font-family:var(--latin);font-weight:700;font-size:13px;color:var(--ink-soft);margin:14px 0 6px;letter-spacing:.02em}
.case .big{font-family:var(--latin);font-weight:700;font-size:38px;color:var(--g-700);line-height:1;letter-spacing:-.01em}
.case .big small{font-size:18px}
.case .change{margin-top:12px;font-size:12.5px;color:var(--ink-soft);display:flex;align-items:center;gap:8px}
.case .change .from{color:var(--ink-faint)}
.case .change .ar{color:var(--g-500);font-family:var(--latin);font-weight:700}
@media(max-width:900px){.cases{grid-template-columns:1fr}}

/* ============ 育成就労 2027 ============ */
.ikusei{display:grid;grid-template-columns:auto 1fr auto;gap:34px;align-items:center;background:linear-gradient(150deg,var(--g-800),var(--g-950));color:#eaf2ec;border-radius:18px;padding:42px 48px}
.ikusei .year{font-family:var(--latin);font-weight:700;font-size:74px;line-height:.9;color:var(--g-400);letter-spacing:-.02em}
.ikusei .year small{display:block;font-size:15px;letter-spacing:.16em;color:#9fb3a4;font-weight:600;margin-top:6px}
.ikusei h3{font-family:var(--serif);font-weight:600;font-size:24px;line-height:1.5}
.ikusei p{font-size:14px;color:#c4d3c7;margin-top:12px;line-height:1.9;max-width:560px}
.ikusei .badge2{display:inline-block;margin-top:14px;font-size:12px;font-weight:700;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);border-radius:100px;padding:6px 15px;color:#dfeae1}
@media(max-width:900px){.ikusei{grid-template-columns:1fr;gap:20px;padding:34px;text-align:left}}

/* ============ 料金 ============ */
.priceheadline{max-width:760px;margin:46px auto 0;text-align:center;background:linear-gradient(150deg,var(--g-800),var(--g-950));color:#eaf2ec;border-radius:18px;padding:46px 40px 40px}
.priceheadline .phk{font-family:var(--latin);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--g-400);font-weight:600}
.priceheadline .phfig{display:flex;align-items:baseline;justify-content:center;gap:4px;margin-top:14px;font-family:var(--serif);line-height:1}
.priceheadline .phfig .lead-in{font-size:21px;font-weight:500;color:#c4d3c7;margin-right:6px;align-self:center}
.priceheadline .phfig .num{font-family:var(--latin);font-weight:700;font-size:78px;letter-spacing:-.02em;color:#fff}
.priceheadline .phfig .unit{font-size:24px;font-weight:600;color:#dbe6dd}
.priceheadline .phsub{font-size:13.5px;color:#a9bcae;margin-top:18px;line-height:1.85}
@media(max-width:560px){.priceheadline .phfig .num{font-size:56px}.priceheadline{padding:36px 24px 32px}}
.pricewrap{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:22px}
.pricecard{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:32px 32px 28px}
.pricecard.feature{border-color:var(--g-500);box-shadow:0 0 0 1px var(--g-500) inset}
.pricecard .pt{font-family:var(--serif);font-weight:600;font-size:19px;margin-bottom:4px}
.pricecard .pd{font-size:12.5px;color:var(--ink-faint);margin-bottom:22px}
.pricerow{display:flex;justify-content:space-between;align-items:baseline;padding:15px 0;border-top:1px solid var(--line)}
.pricerow .pl{font-size:14px;font-weight:500}
.pricerow .pl small{display:block;font-size:11px;color:var(--ink-faint);font-weight:400}
.pricerow .pv{font-family:var(--latin);font-weight:700;font-size:25px;color:var(--g-700);white-space:nowrap}
.pricerow .pv small{font-size:13px;font-weight:600;color:var(--ink-soft)}
.pricenote{margin-top:20px;font-size:12px;color:var(--ink-faint);line-height:1.8}
.priceother{margin-top:48px;background:var(--g-50);border-radius:var(--r);padding:28px 32px}
.priceother h4{font-size:15px;font-weight:700;margin-bottom:14px}
.priceother .chips{display:flex;flex-wrap:wrap;gap:9px}
.priceother .chips span{font-size:12.5px;background:#fff;border:1px solid var(--line);border-radius:7px;padding:8px 14px;color:var(--ink-soft)}
@media(max-width:820px){.pricewrap{grid-template-columns:1fr}}

/* ---- price: 資料DL + simulator ---- */
.pricedl{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-top:26px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:22px 28px}
.pricedl p{font-size:13.5px;color:var(--ink-soft);line-height:1.8;margin:0}
.pricedl .dlbtns{display:flex;gap:10px;flex-shrink:0}
@media(max-width:760px){.pricedl{flex-direction:column;align-items:flex-start}.pricedl .dlbtns{width:100%}.pricedl .dlbtns .btn{flex:1;justify-content:center}}

.simwrap{margin-top:24px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:34px;box-shadow:var(--shadow-sm)}
.simhead .kicker{margin-bottom:2px}
.simhead h3{font-family:var(--serif);font-weight:600;font-size:23px;margin:10px 0 8px}
.simhead p{font-size:13.5px;color:var(--ink-soft);max-width:640px;line-height:1.8}
.simhead p b{color:var(--g-700)}
.simgrid{display:grid;grid-template-columns:1fr 1.08fr;gap:26px;margin-top:24px}
@media(max-width:820px){.simgrid{grid-template-columns:1fr}}
.siminputs{display:flex;flex-direction:column;gap:18px}
.siminputs label{position:relative;display:flex;flex-direction:column;gap:9px;font-size:12.5px;font-weight:700;color:var(--ink)}
.siminputs label>span{position:absolute;right:0;top:0;font-family:var(--latin);font-weight:600;color:var(--g-700);font-size:13px}
.siminputs select{font-family:var(--sans);font-size:14px;font-weight:500;padding:11px 13px;border:1px solid var(--line-strong);border-radius:9px;background:var(--paper);color:var(--ink);cursor:pointer}
.siminputs input[type=range]{width:100%;accent-color:var(--g-700);height:6px;cursor:pointer}
.simout{background:linear-gradient(160deg,var(--g-800),var(--g-950));border-radius:12px;padding:26px}
.simmain{text-align:center;padding-bottom:18px;border-bottom:1px solid rgba(255,255,255,.16)}
.simlabel{display:block;font-size:12px;color:#aebfcf;letter-spacing:.06em;margin-bottom:9px}
.simval{font-family:var(--latin);font-weight:700;font-size:40px;color:#fff;line-height:1;letter-spacing:-.01em}
.simrows{display:flex;flex-direction:column;margin-top:14px}
.simrow{display:flex;justify-content:space-between;align-items:center;padding:11px 2px;font-size:13.5px;color:#cdd9e6;border-bottom:1px solid rgba(255,255,255,.08)}
.simrow:last-child{border-bottom:0}
.simrow b{font-family:var(--latin);font-weight:700;font-size:19px;color:#fff}
.simbreak{display:flex;height:10px;border-radius:5px;overflow:hidden;margin-top:18px;background:rgba(255,255,255,.12)}
.simbreak i{display:block;height:100%}
.simbreaklegend{display:flex;flex-wrap:wrap;gap:7px 14px;margin-top:11px;font-size:11px;color:#b6c5d6}
.simbreaklegend span{display:inline-flex;align-items:center;gap:6px}
.simbreaklegend i{width:9px;height:9px;border-radius:2px;display:block}
.simnote{margin-top:18px;font-size:10.5px;color:#92a3b6;line-height:1.8}
.simnote span{color:#cdd9e6;font-weight:600}

/* ============ 流れ ============ */
.flow{margin-top:50px;position:relative}
.flowtrack{display:grid;grid-template-columns:repeat(6,1fr);gap:16px;position:relative}
.flowtrack::before{content:"";position:absolute;left:5%;right:5%;top:26px;height:2px;background:var(--g-100);z-index:0}
.step{position:relative;z-index:1;text-align:center}
.step .dot{width:54px;height:54px;border-radius:50%;background:#fff;border:2px solid var(--g-500);color:var(--g-700);font-family:var(--latin);font-weight:700;font-size:20px;display:grid;place-items:center;margin:0 auto 16px}
.step h4{font-size:14px;font-weight:700;margin-bottom:7px}
.step p{font-size:12px;color:var(--ink-soft);line-height:1.7}
.step .when{font-family:var(--latin);font-size:11px;font-weight:600;color:var(--g-500);margin-top:8px;letter-spacing:.04em}
.flow-foot{margin-top:34px;text-align:center;font-size:13.5px;color:var(--ink-soft)}
.flow-foot b{color:var(--g-700);font-weight:700}
@media(max-width:900px){
  .flowtrack{grid-template-columns:1fr;gap:0}
  .flowtrack::before{left:26px;right:auto;top:5%;bottom:5%;width:2px;height:auto}
  .step{display:grid;grid-template-columns:54px 1fr;grid-template-areas:"dot title" "gap1 desc" "gap2 when";column-gap:18px;row-gap:4px;text-align:left;align-items:start;padding:14px 0}
  .step .dot{grid-area:dot;margin:0}
  .step h4{grid-area:title;align-self:center;margin:0}
  .step p{grid-area:desc;margin:4px 0 0}
  .step .when{grid-area:when;margin-top:6px}
}

/* ============ サポート 12 ============ */
.support{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:46px}
.supcard{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:22px 20px}
.supcard .ic{width:38px;height:38px;border-radius:10px;background:var(--g-50);display:grid;place-items:center;margin-bottom:13px}
.supcard .ic svg{width:20px;height:20px;stroke:var(--g-700);fill:none;stroke-width:1.6}
.supcard h4{font-size:14px;font-weight:700;margin-bottom:6px;line-height:1.4}
.supcard p{font-size:12px;color:var(--ink-soft);line-height:1.75}
.suplist{margin-top:24px;display:flex;flex-wrap:wrap;gap:9px}
.suplist span{font-size:12.5px;background:var(--g-50);border:1px solid var(--g-100);color:var(--g-800);border-radius:100px;padding:8px 15px}
@media(max-width:900px){.support{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.support{grid-template-columns:1fr}}

/* ============ FAQ ============ */
.faq{margin-top:46px;max-width:880px;margin-left:auto;margin-right:auto}
.qa{background:var(--card);border:1px solid var(--line);border-radius:12px;margin-bottom:12px;overflow:hidden}
.qa summary{list-style:none;cursor:pointer;padding:22px 26px;display:flex;align-items:center;gap:16px;font-weight:700;font-size:15.5px}
.qa summary::-webkit-details-marker{display:none}
.qa summary .qq{font-family:var(--serif);font-weight:700;color:var(--g-500);font-size:18px;flex-shrink:0}
.qa summary .plus{margin-left:auto;width:22px;height:22px;position:relative;flex-shrink:0;transition:.2s}
.qa summary .plus::before,.qa summary .plus::after{content:"";position:absolute;background:var(--g-600);border-radius:2px;left:50%;top:50%;transform:translate(-50%,-50%)}
.qa summary .plus::before{width:14px;height:2px}
.qa summary .plus::after{width:2px;height:14px;transition:.2s}
.qa[open] summary .plus::after{transform:translate(-50%,-50%) rotate(90deg);opacity:0}
.qa .a{padding:0 26px 24px 60px;font-size:14px;color:var(--ink-soft);line-height:1.95}
.qa[open] summary{color:var(--g-800)}

/* ============ お知らせ ============ */
.newslist{margin-top:40px;border-top:1px solid var(--line)}
.newsrow{display:flex;align-items:center;gap:22px;padding:20px 6px;border-bottom:1px solid var(--line);transition:.15s}
.newsrow:hover{background:var(--g-50)}
.newsrow .date{font-family:var(--latin);font-weight:600;font-size:13px;color:var(--ink-faint);white-space:nowrap}
.newsrow .cat{font-size:11px;font-weight:700;letter-spacing:.04em;padding:4px 11px;border-radius:6px;white-space:nowrap}
.cat.notice{background:var(--g-50);color:var(--g-700)}
.cat.topic{background:#f6ece4;color:var(--clay)}
.newsrow .nt{font-size:14px;font-weight:500;flex:1}
.newsrow .nt:hover{color:var(--g-700)}
@media(max-width:620px){.newsrow{flex-wrap:wrap;gap:10px}.newsrow .nt{flex-basis:100%}}

/* ============ CTA band ============ */
.ctaband{position:relative;overflow:hidden;background:radial-gradient(120% 120% at 85% 0%,var(--g-700) 0%,transparent 58%),linear-gradient(150deg,var(--g-800),var(--g-950));color:#eef3f8;text-align:center;padding:80px 0}
.ctaband .grid-tex{position:absolute;inset:0;opacity:.45;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:46px 46px;mask-image:radial-gradient(circle at 50% 0,#000,transparent 75%)}
.ctaband .wrap{position:relative;z-index:2}
.ctaband h2{font-family:var(--serif);font-weight:600;font-size:clamp(26px,3.6vw,38px);line-height:1.45;text-wrap:balance}
.ctaband p{margin-top:18px;color:#cdd6e4;font-size:15.5px;line-height:1.9}
.ctaband .btns{display:flex;gap:14px;justify-content:center;margin-top:34px;flex-wrap:wrap}
.ctaband .btns .btn-ghost{background:rgba(255,255,255,.06);color:#fff;border-color:rgba(255,255,255,.32)}
.ctaband .btns .btn-ghost:hover{background:rgba(255,255,255,.12)}
.ctaband .telline{margin-top:28px;font-size:13px;color:#93a0b5}
.ctaband .telline b{font-family:var(--latin);font-size:22px;color:#fff;font-weight:700;letter-spacing:.02em}

/* ============ FOOTER ============ */
.site-foot{background:#fff;color:var(--ink-soft);padding:64px 0 30px;border-top:1px solid var(--line)}
.foot-top{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:40px;padding-bottom:42px;border-bottom:1px solid var(--line)}
.foot-brand .logo .lt{color:var(--ink)}
.foot-brand .logo .lt small{color:var(--ink-faint)}
.foot-corp{margin-top:22px;font-size:12.5px;line-height:2;color:var(--ink-soft)}
.foot-corp b{color:inherit;font-weight:inherit}
.foot-col h5{font-family:var(--latin);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);font-weight:600;margin-bottom:16px}
.foot-col a{display:block;font-size:13px;color:var(--ink-soft);padding:6px 0}
.foot-col a:hover{color:var(--g-700)}
.foot-cert{margin-top:14px;font-size:11.5px;color:var(--ink-faint);line-height:1.8}
.foot-bot{display:flex;justify-content:space-between;align-items:center;padding-top:26px;font-size:11.5px;color:var(--ink-faint);flex-wrap:wrap;gap:10px}
.foot-logo{display:inline-block}
.foot-logo-img{height:34px;width:auto;display:block}
.foot-name{font-family:var(--serif);font-weight:600;font-size:18px;letter-spacing:.05em;color:var(--ink);margin-top:13px}
@media(max-width:820px){.foot-top{grid-template-columns:1fr 1fr}.foot-brand{grid-column:1/-1}}
@media(max-width:520px){.foot-top{grid-template-columns:1fr}}

/* reveal-on-scroll */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* ===== palette preview switcher (review-only) ===== */
.themesw{position:fixed;right:18px;bottom:18px;z-index:300;background:#fff;border:1px solid var(--line-strong);border-radius:100px;padding:5px 6px;display:flex;gap:3px;align-items:center;box-shadow:0 12px 32px -12px rgba(20,40,70,.34)}
.themesw .lbl{font-size:11px;color:var(--ink-faint);padding:0 8px 0 6px;font-weight:700;letter-spacing:.04em}
.themesw button{border:0;background:transparent;font-family:var(--sans);font-size:12px;font-weight:700;color:var(--ink-soft);padding:8px 14px;border-radius:100px;cursor:pointer;display:flex;align-items:center;gap:7px;transition:.15s}
.themesw button:hover{background:var(--paper-2)}
.themesw button.active{background:var(--g-700);color:#fff}
.themesw button .sw{width:12px;height:12px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
@media(max-width:520px){.themesw{right:10px;bottom:10px}.themesw .lbl{display:none}.themesw button{padding:8px 11px}}

/* ============ About page ============ */
.page-hero{position:relative;overflow:hidden;background:radial-gradient(110% 90% at 90% -10%,var(--hero-glow) 0%,transparent 55%),linear-gradient(168deg,var(--hero-1),var(--hero-2));padding:60px 0 54px;border-bottom:1px solid var(--line)}
.page-hero .crumb{font-size:12px;letter-spacing:.03em;color:var(--ink-faint);margin-bottom:18px}
.page-hero .crumb a:hover{color:var(--g-700)}
.page-hero .en{font-family:var(--latin);font-size:13px;letter-spacing:.26em;text-transform:uppercase;color:var(--g-600);font-weight:600}
.page-hero h1{font-family:var(--serif);font-weight:600;font-size:clamp(28px,4vw,42px);margin-top:10px;letter-spacing:.02em}
.page-hero p{margin-top:16px;color:var(--ink-soft);font-size:15px;max-width:640px;line-height:1.95}

.message{display:grid;grid-template-columns:.8fr 1.2fr;gap:44px;align-items:start;margin-top:6px}
@media(max-width:820px){.message{grid-template-columns:1fr;gap:28px}}
.message .portrait{aspect-ratio:3/4;border-radius:14px;border:1px solid var(--line)}
.message .mbody h2{font-family:var(--serif);font-weight:600;font-size:clamp(20px,2.6vw,26px);line-height:1.55;margin:14px 0 22px;text-wrap:balance}
.message .mbody p{font-size:14.5px;color:var(--ink-soft);line-height:2.05;margin-bottom:16px}
.message .sign{margin-top:24px;display:flex;align-items:baseline;gap:13px}
.message .sign .role{font-size:12px;color:var(--ink-faint)}
.message .sign .name{font-family:var(--serif);font-weight:600;font-size:21px}

.values{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:46px}
@media(max-width:760px){.values{grid-template-columns:1fr}}
.value{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:30px 28px;text-align:center}
.value .vlatin{font-family:var(--latin);font-weight:600;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--g-500)}
.value h3{font-family:var(--serif);font-weight:600;font-size:21px;margin:12px 0 12px}
.value p{font-size:13.5px;color:var(--ink-soft);line-height:1.9}

.infotable{margin-top:46px;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--card)}
.inforow{display:grid;grid-template-columns:210px 1fr;border-bottom:1px solid var(--line)}
.inforow:last-child{border-bottom:0}
.inforow .ith{background:var(--g-50);padding:18px 24px;font-size:13.5px;font-weight:700;color:var(--g-800);display:flex;align-items:center}
.inforow .itd{padding:18px 24px;font-size:14px;color:var(--ink-soft);line-height:1.85}
.inforow .itd b{color:var(--ink);font-weight:700}
@media(max-width:680px){.inforow{grid-template-columns:1fr}.inforow .ith{padding:12px 18px}.inforow .itd{padding:10px 18px 16px}}

.vtl{margin-top:46px;position:relative;padding-left:30px;max-width:760px}
.vtl::before{content:"";position:absolute;left:7px;top:6px;bottom:6px;width:2px;background:var(--g-100)}
.vtl .ev{position:relative;padding:0 0 28px}
.vtl .ev:last-child{padding-bottom:0}
.vtl .ev::before{content:"";position:absolute;left:-30px;top:3px;width:16px;height:16px;border-radius:50%;background:#fff;border:3px solid var(--g-500)}
.vtl .ev .yr{font-family:var(--latin);font-weight:700;font-size:15px;color:var(--g-700)}
.vtl .ev p{font-size:14px;color:var(--ink-soft);margin-top:4px;line-height:1.8}

.certs{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:46px}
@media(max-width:760px){.certs{grid-template-columns:1fr}}
.cert{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:24px;display:flex;gap:15px;align-items:flex-start}
.cert .cic{width:40px;height:40px;border-radius:10px;background:var(--g-50);display:grid;place-items:center;flex-shrink:0}
.cert .cic svg{width:22px;height:22px;stroke:var(--g-700);fill:none;stroke-width:1.6}
.cert h4{font-size:14px;font-weight:700;margin-bottom:6px}
.cert p{font-size:12.5px;color:var(--ink-soft);line-height:1.7}
.cert .num{font-family:var(--latin);font-size:12px;color:var(--g-700);font-weight:600;margin-top:7px;letter-spacing:.02em}

.access{display:grid;grid-template-columns:1fr 1.2fr;gap:30px;margin-top:46px;align-items:stretch}
@media(max-width:760px){.access{grid-template-columns:1fr}}
.access .ainfo{font-size:14px;color:var(--ink-soft);line-height:2}
.access .ainfo b{color:var(--ink);font-weight:700;font-size:15px}
.access .amap{aspect-ratio:16/9;border-radius:12px;border:1px solid var(--line)}

/* ============ Support detail page ============ */
.sup-intro{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center;margin-top:4px}
@media(max-width:820px){.sup-intro{grid-template-columns:1fr;gap:24px}}
.sup-intro .si-body h2{font-family:var(--serif);font-weight:600;font-size:clamp(20px,2.6vw,27px);line-height:1.55;margin-bottom:18px;text-wrap:balance}
.sup-intro .si-body p{font-size:14.5px;color:var(--ink-soft);line-height:2;margin-bottom:14px}
.sup-intro .si-pic{aspect-ratio:4/3;border-radius:14px;border:1px solid var(--line);overflow:hidden}
.sup-intro .si-pic img{width:100%;height:100%;object-fit:cover;object-position:center 35%;display:block}

.supdetail{margin-top:14px;display:flex;flex-direction:column;gap:20px}
.supblock{background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.supblock .sb-head{display:flex;align-items:center;gap:16px;padding:24px 30px;background:var(--g-50);border-bottom:1px solid var(--line)}
.supblock .sb-head .sb-ic{width:46px;height:46px;border-radius:11px;background:#fff;border:1px solid var(--line);display:grid;place-items:center;flex-shrink:0}
.supblock .sb-head .sb-ic svg{width:24px;height:24px;stroke:var(--g-700);fill:none;stroke-width:1.6}
.supblock .sb-head .sb-no{font-family:var(--latin);font-weight:700;font-size:13px;color:var(--g-500);letter-spacing:.1em}
.supblock .sb-head h3{font-family:var(--serif);font-weight:600;font-size:20px;margin-top:3px}
.supblock .sb-body{padding:26px 30px 30px}
.supitems{display:grid;grid-template-columns:1fr 1fr;gap:14px 30px}
@media(max-width:680px){.supitems{grid-template-columns:1fr}}
.supitem{display:flex;gap:13px;padding:13px 0;border-bottom:1px solid var(--line)}
.supitem .chk{flex-shrink:0;width:20px;height:20px;border-radius:50%;background:var(--g-50);display:grid;place-items:center;margin-top:2px}
.supitem .chk svg{width:12px;height:12px;stroke:var(--g-700);fill:none;stroke-width:2.4}
.supitem .it-tx b{display:block;font-size:14px;font-weight:700;margin-bottom:3px}
.supitem .it-tx p{font-size:12.5px;color:var(--ink-soft);line-height:1.7}

.phase-when{display:inline-block;font-family:var(--latin);font-weight:600;font-size:11px;letter-spacing:.08em;color:var(--g-700);background:var(--g-50);border:1px solid var(--g-100);padding:4px 11px;border-radius:100px;margin-left:auto;flex-shrink:0}

/* ============ Dropdown nav ============ */
.has-drop{position:relative}
.dtrigger{display:flex;align-items:center;gap:5px;font-size:13.5px;font-weight:500;color:var(--ink-soft);padding:9px 12px;border-radius:8px;cursor:pointer;white-space:nowrap;transition:.15s;background:none;border:0;font-family:inherit}
.dtrigger:hover{background:var(--g-50);color:var(--g-800)}
.dtrigger .car{font-size:9px;opacity:.6;transition:transform .18s}
.has-drop:hover .dtrigger .car,.has-drop:focus-within .dtrigger .car{transform:rotate(180deg)}
.dropmenu{position:absolute;top:calc(100% - 2px);left:0;min-width:215px;background:#fff;border:1px solid var(--line);border-radius:11px;box-shadow:var(--shadow);padding:7px;display:flex;flex-direction:column;gap:2px;opacity:0;visibility:hidden;transform:translateY(7px);transition:.16s;z-index:60}
.has-drop:hover .dropmenu,.has-drop:focus-within .dropmenu{opacity:1;visibility:visible;transform:none}
.dropmenu a{padding:11px 13px;border-radius:8px;font-size:13.5px;font-weight:500;color:var(--ink-soft);display:flex;flex-direction:column;gap:2px}
.dropmenu a small{font-size:10.5px;color:var(--ink-faint);font-weight:500}
.dropmenu a:hover{background:var(--g-50);color:var(--g-800)}
.drawer-inner .dgroup{margin-top:14px;padding:8px 12px 4px;font-size:11px;font-weight:700;letter-spacing:.1em;color:var(--g-600);border-bottom:0}
.drawer-inner a.sub{padding-left:24px;font-size:14px;color:var(--ink-soft)}

/* ============ 制度 comparison table ============ */
.tablescroll{margin-top:34px;overflow-x:auto;border:1px solid var(--line);border-radius:var(--r)}
.cmptable{width:100%;min-width:680px;border-collapse:collapse;font-size:13.5px;background:var(--card)}
.cmptable th,.cmptable td{padding:16px 18px;text-align:left;border-bottom:1px solid var(--line);border-right:1px solid var(--line);vertical-align:top;line-height:1.7}
.cmptable thead th{background:var(--g-800);color:#fff;font-weight:700;font-size:13px;border-color:rgba(255,255,255,.14)}
.cmptable thead th.me{background:var(--g-600)}
.cmptable th:last-child,.cmptable td:last-child{border-right:0}
.cmptable tbody th{font-weight:700;color:var(--ink);background:var(--g-50);white-space:nowrap;font-size:12.5px}
.cmptable td.hl{background:var(--g-50)}
.cmptable td b{color:var(--ink);font-weight:700}

/* point cards (制度の特徴 3-up, numbered) */
.points{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:46px}
@media(max-width:820px){.points{grid-template-columns:1fr}}
.point{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:28px 26px;position:relative;overflow:hidden}
.point .pnum{font-family:var(--latin);font-weight:700;font-size:13px;letter-spacing:.14em;color:var(--accent,var(--g-500))}
.point h3{font-family:var(--serif);font-weight:600;font-size:19px;margin:12px 0 11px;line-height:1.5}
.point p{font-size:13.5px;color:var(--ink-soft);line-height:1.9}

/* callout note */
.callout{margin-top:30px;background:var(--g-50);border:1px solid var(--g-100);border-left:3px solid var(--accent,var(--g-500));border-radius:10px;padding:22px 26px}
.callout b{display:block;font-size:14.5px;color:var(--g-800);margin-bottom:7px}
.callout p{font-size:13.5px;color:var(--ink-soft);line-height:1.9}

/* ============ Industry pages ============ */
body.ind{--accent:var(--ind);}
.ind-hero{position:relative;overflow:hidden;color:#fff;padding:74px 0 66px;background:linear-gradient(160deg,var(--ind-dark),var(--ind-2,var(--ind-dark)))}
.ind-hero .grid-tex{position:absolute;inset:0;opacity:.4;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:46px 46px;mask-image:radial-gradient(circle at 85% 0,#000,transparent 72%)}
.ind-hero .wrap{position:relative;z-index:2}
.ind-hero .crumb{font-size:12px;color:rgba(255,255,255,.72);margin-bottom:16px}
.ind-hero .crumb a:hover{color:#fff}
.ind-hero .en{font-family:var(--latin);font-size:13px;letter-spacing:.26em;text-transform:uppercase;color:rgba(255,255,255,.9);font-weight:600}
.ind-hero h1{font-family:var(--serif);font-weight:600;font-size:clamp(29px,4.4vw,46px);margin-top:12px;color:#fff;line-height:1.34;text-wrap:balance}
.ind-hero .lead{margin-top:18px;max-width:620px;font-size:15.5px;line-height:1.95;color:rgba(255,255,255,.92)}
.ind-hero .ind-tags{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}
.ind-hero .ind-tags span{font-size:12.5px;border:1px solid rgba(255,255,255,.32);background:rgba(255,255,255,.1);padding:7px 15px;border-radius:100px;color:#fff}
.ind-tint{background:var(--ind-soft)}
.ind .kicker{color:var(--ind)}
.ind .kicker::before{background:var(--ind)}
.ind .point .pnum{color:var(--ind)}
.ind .statband .v{color:var(--ind-dark)}
.ind .jobtag{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;padding:11px 16px;background:var(--card);border:1px solid var(--line);border-radius:9px;color:var(--ink-soft)}
.ind .jobtag .jn{font-family:var(--latin);font-size:11px;font-weight:700;color:var(--ind)}
/* industry pages: remap reused --g-* components to the industry palette */
.ind .supitem .sn{background:var(--ind)}
.ind .route .rtag{color:var(--ind-dark);background:var(--ind-soft)}
.ind .route .rflow .step{background:var(--ind-soft);border-color:var(--ind-soft)}
.ind .route .rflow .step.goal{background:var(--ind);border-color:var(--ind);color:#fff}
.ind .route .rflow .sep{color:var(--ind)}
.ind .tenseki .tc{background:var(--ind-soft);border-color:var(--ind-soft)}
.ind .tenseki .tc .tn{color:var(--ind-dark)}
.ind .subhead::before{background:var(--ind)}
.ind .cmptable thead th{background:var(--ind-dark)}
.ind .cmptable tbody th,.ind .cmptable td.hl{background:var(--ind-soft)}
.ind .callout b{color:var(--ind-dark)}
.jobgrid{display:flex;flex-wrap:wrap;gap:11px;margin-top:34px}

/* industry palettes */
body.theme-food{--ind:#5aa70f;--ind-dark:#236a1f;--ind-2:#2f7d1c;--ind-soft:#f4f8e8;--ind-accent:#f29407;--ind-accent2:#f6c021}
body.theme-industrial{--ind:#3e74ad;--ind-dark:#172a3d;--ind-2:#1d3a52;--ind-soft:#eef2f7}
body.theme-construction{--ind:#bd7b1e;--ind-dark:#3a2a10;--ind-2:#4f3a16;--ind-soft:#f8f1e4}

/* 飲食料品製造業：ライムグリーン × オレンジ・イエロー */
body.theme-food .ind-hero{background:linear-gradient(150deg,#236a1f 0%,#3a8a16 46%,#6cb01a 100%)}
body.theme-food .ind-hero::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(58% 75% at 92% 8%,rgba(246,192,33,.5),transparent 60%),radial-gradient(46% 60% at 78% 100%,rgba(242,148,7,.34),transparent 62%)}
body.theme-food .ind-hero .en{color:#fce9b8}
body.theme-food .ind-hero .ind-tags span{border-color:rgba(255,255,255,.4);background:rgba(255,255,255,.14)}
body.theme-food .kicker{color:#3f8f1e}
body.theme-food .kicker::before{background:linear-gradient(90deg,#6cb01a,#f6c021)}
body.theme-food .point .pnum{color:var(--ind-accent)}
body.theme-food .point:nth-child(2) .pnum{color:#3f8f1e}
body.theme-food .jobtag .jn{color:var(--ind-accent)}
body.theme-food .jobtag:hover{border-color:var(--ind-accent2)}
body.theme-food .callout{border-left-color:var(--ind-accent)}
body.theme-food .statband{background:linear-gradient(120deg,#f4f8e8,#fdf3df)}
body.theme-food .statband .v{color:#2f7d1c}
body.theme-food .statband .v small{color:var(--ind-accent)}
body.theme-food .ctaband{background:linear-gradient(150deg,#1c5a1a 0%,#2f7d1c 46%,#5aa70f 100%)}
body.theme-food .ctaband::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(60% 80% at 88% 6%,rgba(246,192,33,.42),transparent 60%),radial-gradient(50% 60% at 8% 100%,rgba(108,176,26,.45),transparent 62%)}
body.theme-food .ctaband .telline b{color:#fff}
body.theme-food .ctaband p{color:#e7f1d4}
body.theme-food .ctaband .telline{color:#cfe3ad}

/* ============ 制度のしくみ：解説（intro 2-col） ============ */
.explain{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start;margin-top:10px}
@media(max-width:820px){.explain{grid-template-columns:1fr;gap:22px}}
.explain p{font-size:14.5px;color:var(--ink-soft);line-height:2;margin-bottom:14px}
.explain p:last-child{margin-bottom:0}
.explain p b{color:var(--ink);font-weight:700}
.explain .bignum{font-family:var(--latin);font-weight:700;font-size:15px;color:var(--g-700)}

/* role flow: 送出機関 → 監理団体 → 受入企業 */
.roleflow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:stretch;gap:14px;margin-top:46px}
@media(max-width:820px){.roleflow{grid-template-columns:1fr;gap:12px}}
.rolecard{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:24px 22px;text-align:center;display:flex;flex-direction:column}
.rolecard.hub{border-color:var(--g-500);box-shadow:0 0 0 1px var(--g-500) inset;background:var(--g-50)}
.rolecard .rk{font-family:var(--latin);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--g-600);font-weight:600}
.rolecard h4{font-family:var(--serif);font-weight:600;font-size:17px;margin:9px 0 9px;line-height:1.4}
.rolecard h4 small{display:block;font-family:var(--sans);font-size:11.5px;font-weight:600;color:var(--g-700);margin-top:3px}
.rolecard p{font-size:12.5px;color:var(--ink-soft);line-height:1.8}
.roleflow .arrow{display:flex;align-items:center;justify-content:center;color:var(--g-400);font-size:22px;font-weight:700}
@media(max-width:820px){.roleflow .arrow{transform:rotate(90deg);padding:2px 0}}
.oversight{margin-top:14px;display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:680px){.oversight{grid-template-columns:1fr}}
.ovcard{background:var(--g-900);color:#e9f0ea;border-radius:12px;padding:20px 24px;display:flex;gap:16px;align-items:flex-start}
.ovcard .ovtag{font-family:var(--latin);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--g-400);font-weight:700;white-space:nowrap;padding-top:3px}
.ovcard h4{font-family:var(--serif);font-weight:600;font-size:15.5px;margin-bottom:5px;color:#fff}
.ovcard p{font-size:12.5px;color:#b9c9bd;line-height:1.8}

/* stage table: 在留資格の3段階 */
.stagetbl{margin-top:46px;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--card)}
.stagehd,.stagerow{display:grid;grid-template-columns:150px 1fr 110px 130px}
.stagehd{background:var(--g-800);color:#eaf2ec}
.stagehd>div{padding:14px 20px;font-size:12.5px;font-weight:700;letter-spacing:.02em}
.stagerow{border-top:1px solid var(--line)}
.stagerow>div{padding:18px 20px;font-size:13.5px;color:var(--ink-soft);line-height:1.7;display:flex;align-items:center}
.stagerow .stg{font-family:var(--serif);font-weight:700;color:var(--ink);font-size:14.5px}
.stagerow .stg small{display:block;font-family:var(--latin);font-size:11px;color:var(--g-700);font-weight:600;margin-top:2px}
.stagerow .yrs{font-weight:700;color:var(--g-800)}
.stagerow .exam{font-size:12.5px}
.stagerow.tot{background:var(--g-50)}
.stagerow.tot .stg{color:var(--g-800)}
@media(max-width:760px){
  .stagehd{display:none}
  .stagerow{grid-template-columns:1fr;gap:2px;padding:6px 0}
  .stagerow>div{padding:5px 20px}
  .stagerow .yrs::before{content:"在留期間：";color:var(--ink-faint);font-weight:500}
  .stagerow .exam::before{content:"要件：";color:var(--ink-faint)}
}

/* duty cards: 受入れ体制 */
.duties{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:46px}
@media(max-width:820px){.duties{grid-template-columns:1fr}}
.duty{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:26px 24px}
.duty .dt{font-family:var(--serif);font-weight:700;font-size:16px;color:var(--ink);margin-bottom:10px}
.duty p{font-size:13px;color:var(--ink-soft);line-height:1.9}

/* 2-card direct-employment flow (特定技能) */
.roleflow.two{grid-template-columns:1fr auto 1fr}
@media(max-width:820px){.roleflow.two{grid-template-columns:1fr}}
.roleflow .arrow small{display:block;font-family:var(--sans);font-size:10.5px;font-weight:600;color:var(--g-600);letter-spacing:.04em;margin-top:2px;white-space:nowrap}

/* 2 routes cards */
.routes{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:46px}
@media(max-width:760px){.routes{grid-template-columns:1fr}}
.route{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:28px 28px;position:relative}
.route .rtag{display:inline-block;font-family:var(--latin);font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--g-700);background:var(--g-50);padding:4px 11px;border-radius:99px}
.route h4{font-family:var(--serif);font-weight:700;font-size:18px;margin:14px 0 8px;line-height:1.45}
.route p{font-size:13.5px;color:var(--ink-soft);line-height:1.9}
.route .rflow{margin-top:16px;display:flex;align-items:center;gap:9px;flex-wrap:wrap;font-size:12.5px;font-weight:600;color:var(--ink)}
.route .rflow .step{background:var(--g-50);border:1px solid var(--g-100);border-radius:8px;padding:7px 12px;line-height:1.3}
.route .rflow .sep{color:var(--g-400);font-weight:700}
.route .rflow .step.goal{background:var(--g-700);color:#fff;border-color:var(--g-700)}

/* 10 mandatory support items grid */
.supgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:46px}
@media(max-width:760px){.supgrid{grid-template-columns:1fr}}
.supitem{display:flex;gap:15px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px 20px}
.supitem .sn{font-family:var(--latin);font-weight:700;font-size:14px;color:#fff;background:var(--g-600);width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.supitem h5{font-family:var(--serif);font-weight:700;font-size:14.5px;color:var(--ink);margin-bottom:4px}
.supitem p{font-size:12.5px;color:var(--ink-soft);line-height:1.75}

/* career path flow (育成就労→特定技能) */
.pathflow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:12px;align-items:stretch;margin-top:46px}
@media(max-width:860px){.pathflow{grid-template-columns:1fr}}
.pstage{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:24px 22px;display:flex;flex-direction:column;position:relative;overflow:hidden}
.pstage::before{content:"";position:absolute;left:0;top:0;right:0;height:4px;background:var(--g-400)}
.pstage.s2::before{background:var(--g-500)}
.pstage.s3::before{background:var(--g-700)}
.pstage .pph{font-family:var(--latin);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--g-600);font-weight:700}
.pstage h4{font-family:var(--serif);font-weight:700;font-size:18px;margin:8px 0 12px;line-height:1.4}
.pstage .pyr{font-family:var(--latin);font-weight:700;font-size:30px;color:var(--g-800);line-height:1;letter-spacing:-.01em}
.pstage .pyr small{font-family:var(--sans);font-size:13px;font-weight:600;color:var(--ink-soft);margin-left:4px}
.pstage p{font-size:12.5px;color:var(--ink-soft);line-height:1.8;margin-top:12px}
.pathflow .parrow{display:flex;align-items:center;justify-content:center;color:var(--g-400);font-size:24px;font-weight:700}
@media(max-width:860px){.pathflow .parrow{transform:rotate(90deg);padding:2px 0}}

/* 転籍 conditions mini-cards */
.tenseki{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:24px}
@media(max-width:760px){.tenseki{grid-template-columns:1fr}}
.tenseki .tc{background:var(--g-50);border:1px solid var(--g-100);border-radius:12px;padding:20px 22px}
.tenseki .tc .tn{font-family:var(--serif);font-weight:700;font-size:15px;color:var(--g-800);margin-bottom:7px}
.tenseki .tc p{font-size:12.5px;color:var(--ink-soft);line-height:1.8}

/* 16分野 field grid */
.fieldgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:38px}
@media(max-width:860px){.fieldgrid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:560px){.fieldgrid{grid-template-columns:repeat(2,1fr)}}
.fieldcard{position:relative;background:var(--card);border:1px solid var(--line);border-radius:13px;padding:17px 18px 18px;overflow:hidden;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
.fieldcard:hover{transform:translateY(-3px);box-shadow:0 16px 34px -22px rgba(20,45,80,.42)}
.fieldcard .fbg{position:absolute;right:-8px;bottom:-20px;z-index:0;font-family:var(--latin);font-weight:800;font-size:66px;line-height:1;color:var(--g-50);pointer-events:none;user-select:none}
.fieldcard .fnum,.fieldcard .fname,.fieldcard .fbadge{position:relative;z-index:1}
.fieldcard .fnum{font-family:var(--latin);font-weight:700;font-size:12.5px;letter-spacing:.06em;color:var(--g-400)}
.fieldcard .fname{display:block;font-family:var(--serif);font-weight:700;font-size:15.5px;color:var(--ink);margin-top:9px;line-height:1.42;text-wrap:balance}
.fieldcard .fbadge{display:none}
.fieldcard.on{border-color:var(--g-500);background:linear-gradient(158deg,var(--g-50) 0%,var(--card) 62%)}
.fieldcard.on:hover{border-color:var(--g-600)}
.fieldcard.on .fnum{color:var(--g-600)}
.fieldcard.on .fbg{color:var(--g-100)}
.fieldcard.on .fbadge{display:inline-flex;align-items:center;gap:4px;margin-top:12px;font-size:10.5px;font-weight:700;color:#fff;background:var(--g-600);padding:3px 10px 3px 8px;border-radius:99px;letter-spacing:.02em}
.fieldcard.on .fbadge svg{width:11px;height:11px;stroke:#fff;stroke-width:3;fill:none}
.fieldcard .ftag{position:relative;z-index:1;display:inline-block;margin-top:11px;font-family:var(--sans);font-size:10px;font-weight:700;letter-spacing:.06em;color:#c9740c;background:#fff4e6;border:1px solid #f3d9b0;padding:2px 9px;border-radius:6px}

/* 人数枠テーブル */
.subhead{font-family:var(--serif);font-weight:700;font-size:18px;color:var(--ink);margin-top:52px;display:flex;align-items:center;gap:11px}
.subhead::before{content:"";width:4px;height:20px;border-radius:2px;background:var(--g-500)}
.subnote{font-size:13px;color:var(--ink-soft);line-height:1.85;margin-top:10px;max-width:720px}
.qtbl{margin-top:20px;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--card)}
.qtbl .qhd,.qtbl .qrow{display:grid}
.qtbl.q2 .qhd,.qtbl.q2 .qrow{grid-template-columns:1fr 180px}
.qtbl.q3 .qhd,.qtbl.q3 .qrow{grid-template-columns:1.3fr 1fr 1fr}
.qtbl .qhd{background:var(--g-800);color:#eaf2ec}
.qtbl .qhd>div{padding:13px 22px;font-size:12.5px;font-weight:700}
.qtbl .qrow{border-top:1px solid var(--line)}
.qtbl .qrow>div{padding:15px 22px;font-size:14px;color:var(--ink-soft);display:flex;align-items:center;line-height:1.6}
.qtbl .qrow .lbl{font-weight:600;color:var(--ink)}
.qtbl .qrow .num{font-family:var(--latin);font-weight:700;font-size:16px;color:var(--g-800)}
.qtbl .qrow .num em{font-style:normal;font-family:var(--sans);font-size:12.5px;font-weight:600;color:var(--ink-soft);margin-left:3px}
.qtbl.q3 .qrow .c{font-family:var(--latin);font-weight:700;font-size:15px;color:var(--ink-soft)}
.qtbl.q3 .qrow .c.up{color:var(--g-700)}
.qtbl .qrow.muted{background:var(--g-50)}
.qtbl .qrow .dash{color:var(--ink-faint);font-weight:500}
@media(max-width:680px){
  .qtbl.q2 .qhd,.qtbl.q2 .qrow{grid-template-columns:1fr 110px}
  .qtbl.q3 .qhd{display:none}
  .qtbl.q3 .qrow{grid-template-columns:1fr;gap:2px;padding:8px 0}
  .qtbl.q3 .qrow>div{padding:5px 22px}
  .qtbl.q3 .qrow .c::before{content:"一般：";color:var(--ink-faint);font-family:var(--sans);font-size:12px;font-weight:600}
  .qtbl.q3 .qrow .c.up::before{content:"優良：";color:var(--ink-faint)}
}
