/* ============================================================
   Horizon Japan — shared design system  (assets/hj.css)
   One stylesheet for every page. Structure:
     1. tokens   2. base + typography   3. language mechanism
     4. layout utilities   5. components   6. page scopes
     7. motion  8. responsive
   Static HTML + CSS only. All color pairs meet WCAG 2.1 AA
   for their usage (see _CSS_CONTRACT.md for the pair table).
   ============================================================ */

/* ---------- 1. TOKENS ---------- */
:root{
  /* ink & paper */
  --hj-ink:#13233A;            /* primary text on white — 14.9:1 */
  --hj-paper:#FCFAF6;          /* warm page ground (brand token table 08) — ink 15.16:1 */
  --hj-white:#FFFFFF;          /* pure white, kept for card / form surfaces only */
  --ink-soft:#3D4C63;          /* secondary text on white — 8.7:1 */
  --ink-mute:#54637A;          /* captions/hints on white — 6.1:1 */

  /* navy scale */
  --hj-navy-950:#0A1420;       /* footer / hero ground */
  --hj-navy-900:#0F1D30;       /* dark section ground */
  --hj-navy-800:#1B3251;       /* dark card */
  --hj-navy-700:#2A4568;       /* dark border / deep accents */
  --hj-navy-100:#DCE4EE;       /* light tint line/surface */
  --hj-navy-50:#F4F7FB;        /* light alternate ground */

  /* on-dark text */
  --on-navy:#F2F5F8;           /* on navy-900 — 14.5:1 */
  --on-navy-soft:#C3CCD6;      /* on navy-900 — 10.6:1 */

  /* gold triad */
  --hj-gold:#B8860B;           /* large text / UI / rules on white (3.25:1); fills on navy */
  --hj-gold-700:#8C6508;       /* gold text on pure white — 5.28:1 */
  --hj-gold-800:#6E4F06;       /* small gold text on warm paper grounds — 6.70:1 on the study band, 7.24:1 on the warm ground, 7.54:1 on white */
  --hj-gold-300:#E8C97A;       /* gold text/lines on navy — 10.7:1 */
  --hj-gold-50:#FBF6E9;        /* attention surface (reserved) */

  /* state */
  --err:#B3261E;

  /* hairlines & focus (rule ink follows the ground: warm paper / pure white / navy) */
  --hairline:1px solid var(--hj-navy-100);           /* on pure-white surfaces */
  --hj-line-warm:#E8E2D6;
  --hairline-warm:1px solid var(--hj-line-warm);     /* on warm paper grounds */
  --hairline-dark:1px solid rgba(232,201,122,0.32);  /* on navy — single 0.32 gold-rule alpha */
  --focus:0 0 0 3px rgba(184,134,11,0.35);           /* the only focus ring in the system */

  /* radius */
  --r-sm:8px; --r-md:12px; --r-lg:16px; --r-pill:999px;

  /* spacing (8px base) */
  --s1:8px; --s2:16px; --s3:24px; --s4:32px; --s5:40px;
  --s6:48px; --s7:64px; --s8:96px; --s9:128px;
  --sec-pad:clamp(48px,10vw,128px);

  /* elevation retired (brand token table 08): fully flat — depth comes from rules
     and ground shifts; hover = border deepen + 3px rise. Tokens kept as no-ops. */
  --sh-1:none;
  --sh-2:none;
  --sh-gold:none;

  /* watermark originals (4 fixed densities — same artwork as the document set) */
  --wm-paper-3:url("brand/logo/watermark/hj-wm-paper-3.svg");
  --wm-paper-6:url("brand/logo/watermark/hj-wm-paper-6.svg");
  --wm-ink-5:url("brand/logo/watermark/hj-wm-ink-5.svg");
  --wm-ink-8:url("brand/logo/watermark/hj-wm-ink-8.svg");

  /* type scale */
  --fs-display:clamp(2.25rem,1.5rem + 3vw,4.25rem);
  --fs-h2:clamp(1.5rem,1.25rem + 1.1vw,1.875rem);
  --fs-h3:1.25rem;
  --fs-body:1rem;
  --fs-caption:0.8125rem;
  --fs-micro:0.75rem;

  /* families */
  --ff-sans:"Inter","Noto Sans JP",system-ui,sans-serif;
  --ff-mono:"Roboto Mono",ui-monospace,monospace;

  /* grid */
  --maxw:1200px;

  /* motion (opacity-led; 4 sanctioned kinds) */
  --ease:cubic-bezier(0.22,0.61,0.36,1);
  --dur:320ms;
  --dur-1:240ms;   /* UI state */
  --dur-2:320ms;   /* section appearance */
  --dur-kagi:140ms; /* corner-quote draw, per edge */
}

/* ---------- 2. BASE + TYPOGRAPHY ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:84px;}
body{
  margin:0;font-family:var(--ff-sans);font-size:var(--fs-body);line-height:1.7;
  color:var(--hj-ink);background:var(--hj-paper);font-weight:400;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
h1,h2,h3{font-weight:500;margin:0;letter-spacing:-0.012em;
  font-feature-settings:"kern" 1,"liga" 1,"calt" 1;text-wrap:balance;}
p{margin:0;text-wrap:pretty;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;}
ul,ol{margin:0;padding:0;}
::selection{background:rgba(184,134,11,0.22);color:var(--hj-ink);}
:is(a,button,summary,[tabindex]):focus-visible{outline:none;box-shadow:var(--focus);border-radius:var(--r-sm);}
.jp{font-family:"Noto Sans JP","Inter",sans-serif;}
.mono{font-family:var(--ff-mono);}

/* optical typesetting per script */
html[data-lang="ja"] h1,html[data-lang="ja"] h2,html[data-lang="ja"] h3{line-height:1.24;letter-spacing:0.01em;}
html[data-lang="en"] h1,html[data-lang="en"] h2,html[data-lang="en"] h3{line-height:1.08;letter-spacing:-0.018em;}
html[data-lang="ja"] body{letter-spacing:0.012em;}
html[data-lang="ja"] .lede,html[data-lang="ja"] .card p{max-width:40ch;}
html[data-lang="en"] .lede{max-width:68ch;}

/* ---------- 3. LANGUAGE MECHANISM ---------- */
/* Never combine data-show with the HTML hidden attribute.
   The inactive language is force-hidden; the active language keeps its
   component display value (flex/inline-flex/etc.) untouched.
   The html element always carries data-lang="ja" in markup, so this
   works identically with and without scripts. */
html[data-lang="ja"] [data-show="en"]{display:none!important;}
html[data-lang="en"] [data-show="ja"]{display:none!important;}

/* ---------- 4. LAYOUT UTILITIES ---------- */
.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:clamp(20px,5vw,40px);min-width:0;}
section{padding-block:clamp(56px,8vw,var(--sec-pad));}
.sec--tight{padding-block:var(--s5);}
.grid-2{display:grid;grid-template-columns:1fr;gap:var(--s3);}
.grid-3{display:grid;grid-template-columns:1fr;gap:var(--s3);}
.grid-4{display:grid;grid-template-columns:1fr;gap:var(--s3);}
@media(min-width:760px){
  .grid-2{grid-template-columns:repeat(2,1fr);}
  .grid-3{grid-template-columns:repeat(3,1fr);}
  .grid-4{grid-template-columns:repeat(2,1fr);}
}
@media(min-width:1080px){.grid-4{grid-template-columns:repeat(4,1fr);}}

.skip{position:absolute;left:-999px;top:0;background:var(--hj-ink);color:#fff;
  padding:10px 16px;border-radius:var(--r-sm);z-index:100;}
.skip:focus{left:8px;top:8px;}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;}
.mt-5{margin-top:var(--s5);}

.sec-eyebrow{font-size:var(--fs-caption);letter-spacing:0.06em;color:var(--hj-gold-800);
  font-weight:500;margin-bottom:var(--s2);display:flex;align-items:center;gap:10px;}
.sec-eyebrow::before{content:"";width:24px;height:1px;
  background:linear-gradient(90deg,var(--hj-gold-700),var(--hj-gold-300));}
h2.title{font-size:var(--fs-h2);max-width:24ch;margin-bottom:var(--s3);letter-spacing:-0.018em;}
html[data-lang="ja"] h2.title{max-width:22ch;}
.lede{font-size:1.0625rem;color:var(--ink-soft);max-width:70ch;line-height:1.8;}
.gold-rule{display:block;width:40px;height:2px;border-radius:1px;margin-bottom:var(--s3);
  background:linear-gradient(90deg,var(--hj-gold),var(--hj-gold-300));}
/* section divider (micro detail): hairline pair with a centered corner-quote mark */
.hj-divider{display:block;height:24px;margin-block:var(--s5);
  background:url("brand/micro/hj-divider.svg") center / auto 24px no-repeat;}

/* dark-ground section helper */
.on-navy{background:var(--hj-navy-900);color:var(--on-navy);}
.on-navy .lede,.on-navy p{color:var(--on-navy-soft);}
.on-navy h2,.on-navy h3{color:var(--on-navy);}
.on-navy .sec-eyebrow{color:var(--hj-gold-300);}
.on-navy .sec-eyebrow::before{background:var(--hj-gold-300);}

/* ---------- 5. COMPONENTS ---------- */

/* 5.1 header / nav (sticky, opaque — edge over blur, per brand token table 08) */
.site-head{position:sticky;top:0;z-index:50;background:rgba(255,255,255,0.97);
  border-bottom:var(--hairline-warm);}
.site-head::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(184,134,11,0) 8%,rgba(184,134,11,0.32) 50%,rgba(184,134,11,0) 92%,transparent);}
.nav{display:flex;align-items:center;gap:var(--s3);height:68px;}
.brand{display:inline-flex;align-items:center;flex:0 0 auto;border-radius:var(--r-sm);
  padding:6px 6px 6px 0;line-height:0;}
.brand img{height:34px;width:auto;display:block;}
@media(max-width:480px){.brand img{height:30px;}}
.nav-links{display:flex;align-items:center;gap:2px;margin-left:auto;}
.nav-links a{font-size:0.9375rem;color:var(--ink-soft);padding:8px 12px;border-radius:var(--r-sm);
  transition:color .2s var(--ease);position:relative;}
.nav-links a::after{content:"";position:absolute;left:12px;right:12px;bottom:5px;height:1px;
  background:var(--hj-gold);transform:scaleX(0);transform-origin:left;
  transition:transform var(--dur-1) var(--ease);}
.nav-links a:hover{color:var(--hj-ink);}
.nav-links a:hover::after{transform:scaleX(1);}
.nav-links a.muted{color:var(--ink-mute);}
.nav-actions{display:flex;align-items:center;gap:var(--s2);}
.menu-toggle{display:none;width:44px;height:44px;border:var(--hairline);border-radius:var(--r-sm);
  background:var(--hj-white);cursor:pointer;align-items:center;justify-content:center;}
.menu-toggle svg{width:20px;height:20px;stroke:var(--hj-ink);}
.lang-switch{display:inline-flex;border:var(--hairline);border-radius:var(--r-pill);
  overflow:hidden;height:44px;align-items:center;background:var(--hj-white);}
.lang-switch button{appearance:none;border:0;background:transparent;font-family:var(--ff-mono);
  font-size:var(--fs-caption);font-weight:500;letter-spacing:0.04em;color:var(--ink-mute);
  height:100%;min-width:44px;padding:0 14px;cursor:pointer;
  transition:color .2s var(--ease),background .2s var(--ease);}
.lang-switch button[aria-pressed="true"]{color:var(--hj-ink);background:var(--hj-navy-50);}
.lang-switch button:hover{color:var(--hj-ink);}

/* 5.2 buttons — light ground: navy fill + white / navy ground: gold fill + navy-950 text.
   Never white text on gold. */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:inherit;font-size:0.9375rem;font-weight:500;line-height:1;
  min-height:48px;padding:13px 24px;border-radius:var(--r-pill);cursor:pointer;
  border:1px solid transparent;text-align:center;white-space:nowrap;
  transition:transform .25s var(--ease),background .25s var(--ease),
    color .25s var(--ease),border-color .25s var(--ease),box-shadow .25s var(--ease);}
.btn:active{transform:translateY(1px) scale(0.99);}
.btn--sm{min-height:44px;padding:11px 18px;font-size:0.875rem;}
.btn-primary{background:var(--hj-ink);color:var(--hj-white);}
.btn-primary:hover{background:var(--hj-navy-950);}
.btn-outline{background:transparent;color:var(--hj-ink);border-color:var(--hj-navy-100);}
.btn-outline:hover{border-color:var(--hj-ink);background:var(--hj-navy-50);}
.btn-gold{background:var(--hj-gold);color:var(--hj-navy-950);}
.btn-gold:hover{background:#C9971D;}
.btn-ghost-dark{background:transparent;color:var(--on-navy);border-color:rgba(232,201,122,0.32);}
.btn-ghost-dark:hover{background:rgba(232,201,122,0.1);border-color:var(--hj-gold-300);}

/* 5.3 hero (dark navy · arc canvas is the only ambient layer · no interstitial) */
.hero{position:relative;background:var(--hj-navy-950);color:var(--on-navy);overflow:hidden;
  min-height:clamp(560px,84svh,760px);display:flex;align-items:center;
  padding-block:clamp(64px,8vw,96px);}
.hero-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:0;}
.hero-scrim{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(90deg,rgba(10,20,32,0.92) 0%,rgba(10,20,32,0.72) 34%,rgba(10,20,32,0.28) 58%,rgba(10,20,32,0) 80%);}
@media(max-width:760px){.hero-scrim{background:linear-gradient(180deg,rgba(10,20,32,0.78),rgba(10,20,32,0.5));}}
.hero .wrap{position:relative;z-index:2;min-width:0;}
.hero-copy{max-width:38rem;}
.hero-lockup{margin-bottom:var(--s5);}
.hero-lockup img{height:clamp(44px,5vw,60px);width:auto;display:block;}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:var(--fs-caption);
  letter-spacing:0.06em;color:var(--hj-gold-300);font-weight:500;margin-bottom:var(--s3);}
.eyebrow::before{content:"";width:28px;height:1px;display:inline-block;
  background:linear-gradient(90deg,var(--hj-gold),var(--hj-gold-300));}
.hero h1{font-size:var(--fs-display);color:#FFFFFF;margin-bottom:var(--s3);max-width:15ch;letter-spacing:-0.02em;}
html[data-lang="en"] .hero h1{max-width:17ch;}
.hero-sub{font-size:1.0625rem;color:var(--on-navy-soft);max-width:44ch;margin-bottom:var(--s5);line-height:1.8;}
.hero-cta{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:center;}
.hero-rule{position:absolute;left:0;right:0;bottom:0;height:1px;z-index:2;
  background:linear-gradient(90deg,transparent,rgba(184,134,11,0.32),transparent);}
.hero-legend{display:flex;flex-wrap:wrap;gap:var(--s1) var(--s3);margin-top:var(--s4);
  font-size:var(--fs-caption);color:var(--on-navy-soft);}
.hero-legend>span{display:inline-flex;align-items:center;gap:7px;}
.lg-dot{width:9px;height:9px;border-radius:50%;display:inline-block;}
.lg-dot.demand{background:var(--on-navy-soft);}
.lg-dot.supply{background:var(--hj-gold-300);}
.lg-bar{width:16px;height:2px;border-radius:1px;display:inline-block;
  background:linear-gradient(90deg,var(--hj-gold),var(--hj-gold-300));}

/* trust facts inline (quiet, next to primary CTA) */
.trust-inline{display:flex;flex-wrap:wrap;gap:var(--s1) var(--s3);margin-top:var(--s3);
  font-size:var(--fs-caption);color:var(--on-navy-soft);letter-spacing:0.01em;}
.trust-inline .ts{display:inline-flex;align-items:center;gap:7px;line-height:1.4;}
.trust-inline .ts svg{width:15px;height:15px;flex:0 0 auto;stroke:var(--hj-gold-300);fill:none;stroke-width:1.4;}

/* 5.4 standards chips (badge strip) */
.chip-strip{background:var(--hj-navy-50);border-bottom:var(--hairline);padding-block:var(--s4);}
.chip-strip .sec-eyebrow{margin-bottom:var(--s3);}
.chips{list-style:none;display:flex;flex-wrap:wrap;gap:var(--s2);}
.chip{display:inline-flex;align-items:center;gap:9px;background:var(--hj-white);
  border:1px solid rgba(184,134,11,0.32);border-radius:var(--r-pill);padding:9px 16px;line-height:1.3;
  transition:border-color .25s var(--ease),transform .25s var(--ease);}
.chip:hover{border-color:var(--hj-gold-700);transform:translateY(-1px);}
.chip-ic{width:16px;height:16px;flex:0 0 auto;stroke:var(--hj-gold-700);fill:none;stroke-width:1.5;}
.chip-tx{font-size:var(--fs-caption);font-weight:500;color:var(--hj-ink);letter-spacing:0.01em;}
@media(max-width:480px){.chip{padding:8px 13px;}.chip-tx{letter-spacing:0;}}

/* path link line inside route cards (AA-safe gold text + arrow) */
.path-go{margin-top:6px;color:var(--hj-gold-700);font-weight:500;font-size:0.875rem;letter-spacing:0.02em;}
.path-go::after{content:" \2192";}

/* 5.5 cards (white surface on the warm ground; hover = border deepen + 3px rise) */
.card{background:var(--hj-white);border:var(--hairline-warm);border-top:0;
  border-radius:var(--r-md);padding:var(--s5) var(--s4);display:flex;flex-direction:column;gap:var(--s2);
  position:relative;transition:border-color .25s var(--ease),transform .25s var(--ease);}
.card::before{content:"";position:absolute;left:-1px;right:-1px;top:0;height:2.5px;
  border-radius:var(--r-md) var(--r-md) 0 0;
  background:linear-gradient(90deg,var(--hj-gold-700),var(--hj-gold) 38%,var(--hj-gold-300) 62%,var(--hj-gold-700));}
.card:hover{border-color:var(--ink-mute);transform:translateY(-3px);}
.card .num{font-family:var(--ff-mono);font-size:var(--fs-caption);color:var(--hj-gold-700);
  letter-spacing:0.08em;font-weight:500;}
.card .ic{width:32px;height:32px;display:flex;align-items:center;justify-content:center;
  position:relative;margin-bottom:var(--s1);}
.card .ic::before{content:"";position:absolute;top:0;left:0;width:9px;height:9px;
  border-top:1px solid rgba(140,101,8,0.55);border-left:1px solid rgba(140,101,8,0.55);}
.card .ic::after{content:"";position:absolute;bottom:0;right:0;width:9px;height:9px;
  border-bottom:1px solid rgba(140,101,8,0.55);border-right:1px solid rgba(140,101,8,0.55);}
.card .ic svg{width:22px;height:22px;stroke:var(--hj-gold-700);fill:none;stroke-width:1.4;}

/* brand icon (24px grid, stroke 1.4, currentColor) + corner-quote chip.
   No enclosures: two diagonal corner brackets quote the icon. */
.hj-ic{width:22px;height:22px;flex:0 0 auto;display:block;}
.eyebrow .hj-ic{width:20px;height:20px;display:inline-block;}
.kagi-ic{display:inline-flex;align-items:center;justify-content:center;width:31px;height:31px;
  position:relative;color:var(--hj-gold-700);flex:0 0 auto;}
.kagi-ic::before{content:"";position:absolute;top:0;left:0;width:9px;height:9px;
  border-top:1px solid rgba(140,101,8,0.55);border-left:1px solid rgba(140,101,8,0.55);}
.kagi-ic::after{content:"";position:absolute;bottom:0;right:0;width:9px;height:9px;
  border-bottom:1px solid rgba(140,101,8,0.55);border-right:1px solid rgba(140,101,8,0.55);}
.on-navy .kagi-ic,.hero .kagi-ic{color:var(--hj-gold-300);}
.on-navy .kagi-ic::before,.on-navy .kagi-ic::after,
.hero .kagi-ic::before,.hero .kagi-ic::after{border-color:rgba(232,201,122,0.55);}
.card h3{font-size:var(--fs-h3);}
.card p{color:var(--ink-soft);font-size:0.9375rem;line-height:1.75;}
.card--dark{background:var(--hj-navy-800);border-color:var(--hj-navy-700);color:var(--on-navy);}
.card--dark h3{color:var(--on-navy);}
.card--dark p{color:var(--on-navy-soft);}
.card-gate{align-self:flex-start;display:inline-flex;align-items:center;
  font-family:var(--ff-mono);font-size:var(--fs-caption);font-weight:500;
  letter-spacing:0.1em;color:var(--hj-gold-700);
  border:1px solid rgba(184,134,11,0.32);border-radius:var(--r-pill);padding:3px 12px;}

/* 5.6 bento (process) */
.bento{display:grid;grid-template-columns:1fr;gap:1px;background:rgba(184,134,11,0.32);
  border:1px solid rgba(184,134,11,0.32);border-radius:var(--r-lg);overflow:hidden;}
@media(min-width:820px){
  .bento{grid-template-columns:1.618fr 1fr 1fr;grid-auto-rows:minmax(132px,auto);}
  .bento .b1{grid-column:1;grid-row:1 / span 2;}
  .bento .b2{grid-column:2 / span 2;grid-row:1;}
  .bento .b3{grid-column:2;grid-row:2;}
  .bento .b4{grid-column:3;grid-row:2;}
  .bento .b5{grid-column:1 / span 3;grid-row:3;}
}
.bento-cell{background:var(--hj-white);padding:var(--s4);display:flex;flex-direction:column;gap:var(--s1);
  transition:background .3s var(--ease);}
.bento-cell:hover{background:var(--hj-navy-50);}
.bento-cell .st{font-family:var(--ff-mono);font-size:var(--fs-caption);color:var(--hj-gold-700);
  letter-spacing:0.08em;font-weight:500;}
.bento-cell h3{font-size:var(--fs-h3);letter-spacing:-0.01em;}
.bento-cell.b1 h3{font-size:var(--fs-h2);}
.bento-cell p{color:var(--ink-soft);font-size:0.9375rem;line-height:1.7;}
.bento-cell.b1{justify-content:flex-end;background:linear-gradient(160deg,var(--hj-navy-50),var(--hj-white));}
.bento-cell.b5{flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:var(--s2) var(--s3);}
.bento-cell.b5 .st{align-self:center;}

/* 5.7 facts list + note card (trust) */
.facts{list-style:none;display:flex;flex-direction:column;}
.facts li{display:flex;gap:var(--s2);align-items:flex-start;padding:var(--s3) 0;border-bottom:var(--hairline-warm);}
.facts li:first-child{border-top:var(--hairline-warm);}
.facts .chk{flex:0 0 auto;width:22px;height:22px;margin-top:2px;}
.facts .chk svg{width:22px;height:22px;stroke:var(--hj-gold-700);fill:none;stroke-width:1.4;}
.facts .ft{font-size:1rem;color:var(--hj-ink);line-height:1.6;}
/* honest-disclosure binding: corner-quote brackets (navy variant) */
.note-card{background:var(--hj-navy-900);color:var(--on-navy-soft);border-radius:0;
  padding:var(--s5) var(--s4);position:relative;align-self:start;}
.note-card::before{content:"";position:absolute;top:0;left:0;width:16px;height:16px;
  border-top:1.5px solid var(--hj-gold-300);border-left:1.5px solid var(--hj-gold-300);}
.note-card::after{content:"";position:absolute;bottom:0;right:0;width:16px;height:16px;
  border-bottom:1.5px solid var(--hj-gold-300);border-right:1.5px solid var(--hj-gold-300);}
.note-card .nt-label{font-size:var(--fs-caption);letter-spacing:0.06em;color:var(--hj-gold-300);
  font-weight:500;margin-bottom:var(--s2);display:block;}
.note-card p{font-size:0.9375rem;line-height:1.8;color:var(--on-navy-soft);}
.trust-grid{display:grid;grid-template-columns:1fr;gap:var(--s5);}
@media(min-width:880px){.trust-grid{grid-template-columns:1.618fr 1fr;gap:var(--s7);}}

/* 5.8 fee framing (four categories) */
.fee-sec{background:var(--hj-navy-50);border-block:var(--hairline);}
.fee-grid{display:grid;grid-template-columns:1fr;gap:var(--s3);margin-top:var(--s5);}
@media(min-width:760px){.fee-grid{grid-template-columns:repeat(2,1fr);}}
@media(min-width:1080px){.fee-grid{grid-template-columns:repeat(4,1fr);}}
.fee-card{background:var(--hj-white);border:var(--hairline);border-radius:var(--r-md);
  padding:var(--s4);display:flex;flex-direction:column;gap:var(--s2);position:relative;}
.fee-card .num{font-family:var(--ff-mono);font-size:var(--fs-caption);color:var(--hj-gold-700);
  letter-spacing:0.08em;font-weight:500;}
.fee-card h3{font-size:1.0625rem;}
.fee-card p{color:var(--ink-soft);font-size:0.9375rem;line-height:1.75;}
/* honest-disclosure binding: white card + corner-quote brackets */
.fee-note{background:var(--hj-white);border:1px solid var(--hj-line-warm);border-radius:0;
  padding:var(--s3) var(--s4);margin-top:var(--s4);max-width:820px;position:relative;}
.fee-note::before{content:"";position:absolute;top:-1px;left:-1px;width:16px;height:16px;
  border-top:1.5px solid var(--hj-gold-700);border-left:1.5px solid var(--hj-gold-700);}
.fee-note::after{content:"";position:absolute;bottom:-1px;right:-1px;width:16px;height:16px;
  border-bottom:1.5px solid var(--hj-gold-700);border-right:1.5px solid var(--hj-gold-700);}
.fee-note p{font-size:0.9375rem;line-height:1.8;color:var(--hj-ink);}
.feenote{background:var(--hj-white);border:1px solid var(--hj-line-warm);border-radius:0;
  padding:clamp(24px,4vw,var(--s6));max-width:820px;position:relative;}
.feenote::before{content:"";position:absolute;top:-1px;left:-1px;width:16px;height:16px;
  border-top:1.5px solid var(--hj-gold-700);border-left:1.5px solid var(--hj-gold-700);}
.feenote::after{content:"";position:absolute;bottom:-1px;right:-1px;width:16px;height:16px;
  border-bottom:1.5px solid var(--hj-gold-700);border-right:1.5px solid var(--hj-gold-700);}
.feenote .eyebrow-line{font-family:var(--ff-mono);font-size:var(--fs-caption);letter-spacing:0.06em;
  text-transform:uppercase;color:var(--hj-gold-700);font-weight:500;}
.feenote h2{font-size:var(--fs-h3);font-weight:600;margin:var(--s2) 0 var(--s3);}
.feenote p{color:var(--ink-soft);font-size:0.9375rem;line-height:1.75;margin-bottom:var(--s2);}

/* 5.9 audience split (employer led / partner demoted) */
.audience{background:var(--hj-navy-50);border-block:var(--hairline);}
.aud-grid{display:grid;grid-template-columns:1fr;gap:var(--s4);}
@media(min-width:900px){.aud-grid{grid-template-columns:1.618fr 1fr;gap:var(--s5);align-items:stretch;}}
.aud-card{border-radius:var(--r-lg);padding:clamp(28px,4vw,var(--s7));display:flex;flex-direction:column;position:relative;overflow:hidden;}
.aud-employer{background:var(--hj-navy-900);color:var(--on-navy);}
.aud-employer::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(70% 60% at 100% 0%,rgba(184,134,11,0.14),transparent 60%);}
.aud-employer>*{position:relative;z-index:1;}
.aud-employer .sec-eyebrow{color:var(--hj-gold-300);}
.aud-employer .sec-eyebrow::before{background:var(--hj-gold-300);}
.aud-employer h2{color:#FFFFFF;font-size:var(--fs-h2);max-width:20ch;margin-bottom:var(--s3);}
.aud-employer p{color:var(--on-navy-soft);font-size:1.0625rem;line-height:1.8;margin-bottom:var(--s5);}
.aud-partner{background:var(--hj-white);border:var(--hairline);color:var(--hj-ink);}
.aud-partner .sec-eyebrow{color:var(--ink-mute);}
.aud-partner .sec-eyebrow::before{background:var(--hj-navy-100);}
.aud-partner h2{font-size:var(--fs-h3);max-width:22ch;margin-bottom:var(--s2);color:var(--hj-ink);}
.aud-partner p{color:var(--ink-soft);font-size:0.9375rem;line-height:1.75;margin-bottom:var(--s4);}
.aud-card .btn{align-self:flex-start;margin-top:auto;}
.aud-deliv{list-style:none;margin:0 0 var(--s5);display:flex;flex-direction:column;gap:10px;}
.aud-partner .aud-deliv{margin-bottom:var(--s4);}
.aud-deliv li{position:relative;padding-left:20px;font-size:0.9375rem;line-height:1.6;}
/* list marker: corner bracket (micro detail, replaces the dot) */
.aud-deliv li::before{content:"";position:absolute;left:0;top:8px;width:7px;height:7px;
  border-top:1.5px solid var(--hj-gold-700);border-left:1.5px solid var(--hj-gold-700);}
.aud-employer .aud-deliv li::before,.note-card .aud-deliv li::before{
  border-color:var(--hj-gold-300);}
.aud-employer .aud-deliv li{color:var(--on-navy-soft);}
.aud-partner .aud-deliv li{color:var(--ink-soft);}
.aud-industries{margin-top:20px;padding-top:16px;border-top:1px solid rgba(232,201,122,0.32);}
.aud-industries .ai-label{display:block;font-family:var(--ff-mono);font-size:var(--fs-micro);
  letter-spacing:0.08em;text-transform:uppercase;color:var(--hj-gold-300);margin-bottom:10px;}
.aud-industries .ai-links{display:flex;flex-wrap:wrap;gap:8px;}
.aud-industries .ai-links a{display:inline-flex;align-items:center;min-height:44px;padding:10px 16px;
  border:1px solid var(--hj-navy-700);border-radius:var(--r-pill);font-size:0.875rem;
  color:var(--on-navy);transition:border-color .2s var(--ease),background .2s var(--ease);}
.aud-industries .ai-links a:hover{border-color:var(--hj-gold-300);background:rgba(232,201,122,0.08);}

/* 5.10 form (B2B intake · calm · staged disclosure) */
.form-sec{background:var(--hj-navy-50);border-block:var(--hairline);position:relative;overflow:hidden;}
.form-sec .wrap{position:relative;z-index:1;}
.form-head{margin-bottom:var(--s5);max-width:62ch;}
.form-head h2.title{margin-bottom:var(--s3);}
.form-lede{font-size:1rem;line-height:1.75;color:var(--hj-ink);max-width:54ch;margin:var(--s2) 0 0;}
.form-note{background:var(--hj-white);border:1px solid var(--hj-line-warm);border-radius:0;
  padding:var(--s3) var(--s4);margin-bottom:var(--s5);position:relative;}
.form-note::before{content:"";position:absolute;top:-1px;left:-1px;width:16px;height:16px;
  border-top:1.5px solid var(--hj-gold-700);border-left:1.5px solid var(--hj-gold-700);}
.form-note::after{content:"";position:absolute;bottom:-1px;right:-1px;width:16px;height:16px;
  border-bottom:1.5px solid var(--hj-gold-700);border-right:1.5px solid var(--hj-gold-700);}
.form-note .nt-label{font-size:var(--fs-caption);letter-spacing:0.06em;color:var(--hj-gold-700);
  font-weight:500;margin-bottom:6px;display:block;}
.form-note p{font-size:0.9375rem;line-height:1.75;color:var(--ink-soft);max-width:70ch;}
html[data-lang="ja"] .form-note p{max-width:46ch;}
.form-tabs{display:inline-flex;border:var(--hairline);border-radius:var(--r-pill);overflow:hidden;
  background:var(--hj-white);margin-bottom:var(--s2);}
.form-tabs button{appearance:none;border:0;background:transparent;font-family:inherit;font-size:0.9375rem;
  font-weight:500;color:var(--ink-soft);min-height:44px;padding:0 var(--s3);cursor:pointer;
  transition:color .2s var(--ease),background .2s var(--ease);}
.form-tabs button[aria-selected="true"]{color:var(--hj-ink);background:var(--hj-navy-100);}
.form-tabs button:hover{color:var(--hj-ink);}
.form-tabs button:focus-visible{outline:none;box-shadow:var(--focus);position:relative;z-index:1;}
.step-note{font-family:var(--ff-mono);font-size:var(--fs-caption);color:var(--ink-mute);
  letter-spacing:0.06em;margin-bottom:var(--s4);display:block;}
.hj-form{background:var(--hj-white);border:var(--hairline);border-radius:var(--r-lg);
  padding:clamp(24px,4vw,var(--s6));max-width:680px;}
.hj-form[hidden]{display:none;}
.fld-grid{display:grid;grid-template-columns:1fr;gap:var(--s3) var(--s4);}
@media(min-width:680px){.fld-grid{grid-template-columns:1fr 1fr;}}
.fld{display:flex;flex-direction:column;gap:7px;min-width:0;}
.fld.col-2{grid-column:1 / -1;}
.fld label{font-size:0.875rem;font-weight:500;color:var(--hj-ink);letter-spacing:0.005em;}
.fld label .req{color:var(--err);margin-left:3px;font-weight:500;}
.fld label .opt{color:var(--ink-mute);font-weight:400;font-size:var(--fs-caption);margin-left:5px;}
.fld .hint{font-size:var(--fs-caption);color:var(--ink-mute);line-height:1.5;}
.fld input,.fld select,.fld textarea{
  font-family:inherit;font-size:1rem;color:var(--hj-ink);background:var(--hj-white);
  border:1px solid var(--ink-mute);border-radius:var(--r-sm);padding:11px 14px;min-height:44px;
  width:100%;line-height:1.5;transition:border-color .2s var(--ease),box-shadow .2s var(--ease);}
.fld textarea{min-height:88px;resize:vertical;}
.fld input:hover,.fld select:hover,.fld textarea:hover{border-color:var(--ink-soft);}
.fld input:focus-visible,.fld select:focus-visible,.fld textarea:focus-visible{
  outline:none;border-color:var(--hj-gold-700);box-shadow:var(--focus);}
.fld select{appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2354637A' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;padding-right:40px;}
/* error state — never color-only: border + icon + text */
.fld.err input,.fld.err select,.fld.err textarea{border-color:var(--err);box-shadow:0 0 0 3px rgba(179,38,30,0.14);}
.fld .err-msg{display:none;font-size:var(--fs-caption);color:var(--err);line-height:1.45;align-items:center;gap:6px;}
.fld.err .err-msg{display:flex;}
.fld .err-msg svg{width:15px;height:15px;flex:0 0 auto;stroke:var(--err);fill:none;stroke-width:1.7;}
.fld-check{grid-column:1 / -1;display:flex;gap:12px;align-items:flex-start;padding:var(--s2) 0 0;}
.fld-check input[type=checkbox]{appearance:none;flex:0 0 auto;width:22px;height:22px;margin:0;min-height:0;
  border:1px solid var(--ink-mute);border-radius:6px;background:var(--hj-white);cursor:pointer;position:relative;
  transition:border-color .2s var(--ease),background .2s var(--ease);}
.fld-check input[type=checkbox]:hover{border-color:var(--hj-gold-700);}
.fld-check input[type=checkbox]:checked{background:var(--hj-ink);border-color:var(--hj-ink);}
.fld-check input[type=checkbox]:checked::after{content:"";position:absolute;left:7px;top:3px;width:6px;height:11px;
  border:solid var(--hj-white);border-width:0 2px 2px 0;transform:rotate(42deg);}
.fld-check input[type=checkbox]:focus-visible{outline:none;box-shadow:var(--focus);}
.fld-check label{font-size:0.875rem;color:var(--ink-soft);line-height:1.55;font-weight:400;cursor:pointer;}
.fld-check.err input[type=checkbox]{border-color:var(--err);box-shadow:0 0 0 3px rgba(179,38,30,0.14);}
.fld-check .err-msg{display:none;font-size:var(--fs-caption);color:var(--err);}
.fld-check.err .err-msg{display:flex;width:100%;margin-top:6px;}
.fld.cond-hide{display:none;}
/* honeypot — off-screen, not display:none */
.hp-field{position:absolute!important;left:-9999px!important;top:auto;width:1px;height:1px;overflow:hidden;}
.detail-toggle{appearance:none;background:transparent;border:0;font-family:inherit;
  font-size:0.9375rem;font-weight:500;color:var(--ink-soft);cursor:pointer;
  display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0;margin-top:var(--s3);
  border-radius:var(--r-sm);transition:color .2s var(--ease);}
.detail-toggle:hover{color:var(--hj-ink);}
.detail-toggle:focus-visible{outline:none;box-shadow:var(--focus);}
.detail-toggle .dt-caret{width:18px;height:18px;color:var(--ink-mute);
  transition:color .2s var(--ease);}
.detail-toggle:hover .dt-caret{color:var(--hj-gold-700);}
.detail-toggle[aria-expanded="true"] .dt-caret{transform:rotate(180deg);}
.detail-group{margin-top:var(--s3);}
.detail-group[hidden]{display:none;}
.detail-group .more-lead{font-size:var(--fs-caption);color:var(--ink-mute);line-height:1.5;margin:0 0 var(--s2);}
.detail-group.opening{overflow:hidden;}
@media(prefers-reduced-motion:no-preference){
  .detail-group.opening{transition:height .28s var(--ease),opacity .28s var(--ease);}
}
.form-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s3);margin-top:var(--s5);
  padding-top:var(--s4);border-top:var(--hairline);}
.form-actions .btn{min-width:200px;}
.send-note{font-size:var(--fs-caption);color:var(--ink-mute);line-height:1.5;max-width:44ch;}
.send-note a{color:var(--hj-gold-700);text-decoration:underline;text-underline-offset:2px;}
.form-status{display:none;margin-top:var(--s4);border-radius:var(--r-md);padding:var(--s3) var(--s4);
  font-size:0.9375rem;line-height:1.7;}
.form-status.show{display:block;}
.form-status.ok{background:var(--hj-navy-50);border:1px solid rgba(184,134,11,0.32);color:var(--hj-ink);}
.form-status.ok::before{content:"";display:block;width:34px;height:1px;background:var(--hj-gold);margin-bottom:var(--s2);}
.form-status.ok strong{display:block;font-weight:600;color:var(--hj-ink);margin-bottom:6px;font-size:1.0625rem;}
.form-status.ok .recap{margin-top:var(--s2);font-size:var(--fs-caption);color:var(--ink-mute);}
.form-status.bad{background:#FBEFEE;border:1px solid rgba(179,38,30,0.4);color:var(--err);}
.form-busy[aria-busy="true"]{opacity:0.6;pointer-events:none;}
.form-errsummary{display:none;margin-bottom:var(--s4);border-radius:var(--r-md);
  padding:var(--s2) var(--s3);font-size:0.9375rem;line-height:1.6;
  background:#FBEFEE;border:1px solid rgba(179,38,30,0.4);color:var(--err);}
.form-errsummary:not(:empty){display:block;}
input[type=hidden]{display:none;}

/* next-journey (what happens after you send) */
.next-journey{margin:var(--s4) 0 var(--s2);}
.next-journey .nj-eyebrow{font-family:var(--ff-mono);font-size:var(--fs-micro);letter-spacing:0.08em;
  text-transform:uppercase;color:var(--hj-gold-800);font-weight:500;}
.next-journey .nj-lede{font-size:0.95rem;line-height:1.7;color:var(--hj-ink);max-width:60ch;margin:6px 0 var(--s3);}
.next-steps{list-style:none;display:grid;gap:var(--s2);grid-template-columns:1fr;counter-reset:ns;}
@media(min-width:720px){.next-steps{grid-template-columns:repeat(4,1fr);gap:var(--s3);}}
.next-steps li{position:relative;padding:var(--s3);border:var(--hairline);border-radius:var(--r-md);
  background:var(--hj-white);transition:border-color var(--dur-1) var(--ease);}
.next-steps li:hover{border-color:var(--hj-gold-300);}
.next-steps li::before{content:counter(ns);counter-increment:ns;font-family:var(--ff-mono);font-size:0.78rem;
  font-weight:500;color:var(--hj-gold-700);display:inline-flex;align-items:center;justify-content:center;
  width:28px;height:28px;border:var(--hairline);border-radius:var(--r-pill);margin-bottom:var(--s2);}
.next-steps b{display:block;font-size:0.95rem;color:var(--hj-ink);margin-bottom:4px;letter-spacing:-0.01em;font-weight:600;}
.next-steps span{display:block;font-size:0.85rem;line-height:1.6;color:var(--ink-soft);}
@media(min-width:720px){.next-steps li:not(:last-child)::after{content:"";position:absolute;top:calc(var(--s3) + 14px);
  right:calc(var(--s3) * -1 - 1px);width:var(--s3);height:1px;background:var(--hj-gold-300);opacity:0.32;}}
.nj-foot{font-size:var(--fs-caption);color:var(--ink-mute);line-height:1.6;margin-top:var(--s2);max-width:70ch;}

/* 5.11 FAQ (native details/summary) */
.faq{max-width:820px;margin-top:var(--s4);}
.faq details{border-bottom:var(--hairline-warm);}
.faq details:first-of-type{border-top:var(--hairline-warm);}
.faq summary{list-style:none;cursor:pointer;padding:var(--s3) 0;font-weight:500;font-size:1.0625rem;
  color:var(--hj-ink);display:flex;align-items:center;justify-content:space-between;gap:var(--s2);min-height:44px;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+";font-family:var(--ff-mono);color:var(--hj-gold-800);font-size:1.25rem;}
.faq details[open] summary::after{content:"–";}
.faq .ans{padding:0 0 var(--s3);color:var(--ink-soft);font-size:0.9375rem;line-height:1.75;max-width:70ch;}

/* 5.12 inquiry band (dark reassurance; closing-band watermark = same original as documents,
   ink 5%, one per face, bottom-right bleed, kept clear of the centered copy on wide screens) */
.inquiry{background:var(--hj-navy-900);color:var(--on-navy);text-align:center;overflow:hidden;position:relative;}
@media(min-width:1100px){
  .inquiry{background-image:var(--wm-ink-5);background-repeat:no-repeat;
    background-position:right -26px bottom -30px;background-size:auto 42%;}
}
.inquiry::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(80% 60% at 50% 0%,rgba(184,134,11,0.12),transparent 60%);}
.inq-inner{position:relative;z-index:2;max-width:680px;margin-inline:auto;display:flex;
  flex-direction:column;align-items:center;min-width:0;}
.inq-rule{width:40px;height:1px;background:var(--hj-gold-300);margin-bottom:var(--s4);}
.inquiry h2{font-size:var(--fs-h2);color:#FFFFFF;margin-bottom:var(--s3);}
.inquiry p{color:var(--on-navy-soft);font-size:1.0625rem;line-height:1.8;margin-bottom:var(--s5);max-width:58ch;}
html[data-lang="ja"] .inquiry p{max-width:42ch;}
.inq-cta{display:flex;flex-wrap:wrap;gap:var(--s2);justify-content:center;}
.inquiry .trust-inline{justify-content:center;}

/* 5.13 footer (navy-950 · defense block → company info → licence → legal → copyright) */
.site-foot{background:var(--hj-navy-950);color:var(--on-navy-soft);padding-block:var(--s7) var(--s5);
  position:relative;border-top:1px solid rgba(184,134,11,0.32);}
.site-foot::before{content:"";position:absolute;left:0;right:0;top:-1px;height:1px;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(232,201,122,0.32) 50%,transparent);}
.foot-top{display:grid;grid-template-columns:1fr;gap:var(--s5);padding-bottom:var(--s5);border-bottom:var(--hairline-dark);}
@media(min-width:780px){.foot-top{grid-template-columns:1.618fr 1fr;gap:var(--s7);}}
.foot-brand .brand{display:inline-flex;align-items:center;margin-bottom:var(--s3);padding:0;line-height:0;}
.foot-brand .brand img{height:38px;width:auto;display:block;}
.foot-tag{font-size:0.9375rem;color:var(--on-navy-soft);max-width:46ch;line-height:1.7;}
.foot-defense{display:flex;flex-direction:column;gap:10px;}
.foot-defense .dl{display:flex;gap:10px;align-items:flex-start;font-size:0.875rem;color:var(--on-navy-soft);line-height:1.55;}
.foot-defense .dl::before{content:"";flex:0 0 auto;width:7px;height:7px;
  border-top:1.5px solid var(--hj-gold-300);border-left:1.5px solid var(--hj-gold-300);margin-top:7px;}
.foot-company{margin-top:var(--s5);padding-top:var(--s4);border-top:var(--hairline-dark);
  display:flex;flex-direction:column;gap:4px;font-size:var(--fs-caption);color:var(--on-navy-soft);}
.foot-company .fc-name{font-size:0.875rem;color:var(--on-navy);}
.foot-license{margin-top:var(--s4);padding-top:var(--s4);border-top:var(--hairline-dark);
  display:flex;flex-direction:column;gap:6px;}
.foot-license .lic{font-family:var(--ff-mono);font-size:0.9375rem;color:var(--on-navy);letter-spacing:0.03em;font-weight:500;}
.foot-license .lic-note{font-size:var(--fs-caption);color:var(--on-navy-soft);line-height:1.6;max-width:76ch;}
.foot-license .lic-note a{text-decoration:underline;text-decoration-color:rgba(232,201,122,0.5);
  text-underline-offset:2px;color:var(--on-navy-soft);}
.foot-license .lic-note a:hover{color:var(--on-navy);}
.foot-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--s2);
  margin-top:var(--s5);font-size:var(--fs-caption);color:var(--on-navy-soft);}
.foot-legal{display:inline-flex;flex-wrap:wrap;gap:4px 16px;}
.foot-legal a{color:var(--on-navy-soft);text-decoration:underline;
  text-decoration-color:rgba(232,201,122,0.4);text-underline-offset:2px;border-radius:4px;}
.foot-legal a:hover{color:var(--on-navy);}

/* ---------- 6. PAGE SCOPES ---------- */

/* 6.1 hub (index) */
body[data-page="hub"] .hero-copy{max-width:40rem;}

/* 6.2 industry landing pages */
body[data-page="lp"] .band{background:var(--hj-navy-50);border-block:var(--hairline);}
body[data-page="lp"] .hero-copy{max-width:44rem;}

/* 6.3 chooser (router) — full-bleed navy ground */
body[data-page="chooser"]{background:var(--hj-navy-950);color:var(--on-navy);
  min-height:100vh;display:flex;flex-direction:column;}
@supports(min-height:100svh){body[data-page="chooser"]{min-height:100svh;}}
.chooser{position:relative;flex:1;display:flex;flex-direction:column;overflow:hidden;}
.chooser::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(50% 42% at 18% 12%,rgba(184,134,11,0.16),transparent 60%),
    radial-gradient(46% 40% at 84% 24%,rgba(232,201,122,0.10),transparent 62%),
    radial-gradient(60% 56% at 70% 88%,rgba(42,69,104,0.35),transparent 64%);}
.chooser>*{position:relative;z-index:1;}
.masthead{padding:clamp(28px,5vw,56px) clamp(20px,5vw,40px) clamp(8px,2vw,16px);
  display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--s3);}
.mast-logo img{height:clamp(36px,4.5vw,48px);width:auto;display:block;}
.mast-eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:var(--fs-caption);
  letter-spacing:0.06em;color:var(--hj-gold-300);font-weight:500;font-family:var(--ff-mono);}
.mast-eyebrow::before,.mast-eyebrow::after{content:"";width:28px;height:1px;display:inline-block;
  background:linear-gradient(90deg,transparent,var(--hj-gold-300));}
.mast-eyebrow::after{background:linear-gradient(90deg,var(--hj-gold-300),transparent);}
.mast-prompt{font-size:1.0625rem;color:var(--on-navy-soft);max-width:46ch;line-height:1.78;}
.chooser .lang-switch{position:absolute;top:clamp(20px,4vw,32px);right:clamp(20px,5vw,40px);z-index:2;
  border:var(--hairline-dark);background:rgba(255,255,255,0.04);}
.chooser .lang-switch button{color:var(--on-navy-soft);}
.chooser .lang-switch button[aria-pressed="true"]{color:#FFFFFF;background:rgba(184,134,11,0.2);}
.chooser .lang-switch button:hover{color:#FFFFFF;}
.split{flex:1;display:grid;grid-template-columns:1fr;gap:var(--s3);
  padding:clamp(20px,4vw,40px) clamp(20px,5vw,40px) clamp(28px,5vw,56px);
  max-width:1100px;margin-inline:auto;width:100%;align-content:center;}
@media(min-width:820px){.split{grid-template-columns:1fr 1fr;gap:var(--s4);}}
.choice{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:var(--s5);
  min-height:clamp(280px,42vh,420px);border-radius:var(--r-lg);overflow:hidden;
  padding:clamp(28px,4vw,var(--s7));border:1px solid transparent;
  transition:transform .3s var(--ease),border-color .25s var(--ease);}
.choice::before{content:"";position:absolute;left:-1px;right:-1px;top:0;height:2.5px;
  background:linear-gradient(90deg,var(--hj-gold-700),var(--hj-gold) 38%,var(--hj-gold-300) 62%,var(--hj-gold-700));}
.choice:hover{transform:translateY(-3px);}
.choice-business{background:var(--hj-navy-900);border-color:rgba(184,134,11,0.32);}
.choice-business:hover{border-color:rgba(232,201,122,0.5);}
.choice-study{background:linear-gradient(150deg,rgba(184,134,11,0.22),rgba(140,101,8,0.12) 60%,rgba(15,29,48,0.4));
  border-color:rgba(232,201,122,0.32);}
.choice-study:hover{border-color:rgba(232,201,122,0.6);}
.choice .c-eyebrow{font-family:var(--ff-mono);font-size:var(--fs-caption);letter-spacing:0.14em;
  text-transform:uppercase;font-weight:500;color:var(--hj-gold-300);margin-bottom:var(--s2);display:block;}
.choice h2{font-size:var(--fs-h2);color:#FFFFFF;max-width:18ch;margin-bottom:var(--s2);}
.choice .c-sub{font-size:1.0625rem;color:var(--on-navy-soft);line-height:1.78;max-width:34ch;}
.choice .c-aud{font-size:var(--fs-caption);color:var(--on-navy-soft);letter-spacing:0.02em;margin-top:var(--s3);}
.choice .c-go{display:inline-flex;align-items:center;gap:10px;align-self:flex-start;
  font-size:0.9375rem;font-weight:500;color:#FFFFFF;
  border:1px solid rgba(232,201,122,0.45);border-radius:var(--r-pill);
  padding:12px 22px;min-height:44px;transition:background .25s var(--ease),border-color .25s var(--ease);}
.choice-business .c-go{background:var(--hj-gold);color:var(--hj-navy-950);border-color:transparent;}
.choice-business:hover .c-go{background:#C9971D;}
.choice-study .c-go{background:transparent;color:var(--on-navy);}
.choice-study:hover .c-go{background:rgba(232,201,122,0.12);border-color:var(--hj-gold-300);}
.choice .c-go svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.6;}
.chooser-foot{border-top:var(--hairline-dark);padding:var(--s4) clamp(20px,5vw,40px);
  display:flex;flex-wrap:wrap;gap:var(--s2) var(--s4);justify-content:space-between;align-items:center;
  font-size:var(--fs-caption);color:var(--on-navy-soft);max-width:1100px;margin-inline:auto;width:100%;}
.chooser-foot .foot-status{font-family:var(--ff-mono);letter-spacing:0.02em;}
.chooser-foot .foot-legal a{color:var(--on-navy-soft);}
.chooser-foot .foot-legal a:hover{color:#FFFFFF;}

/* 6.4 study area (education sub-brand: warm paper ground, gold-led, HJI text lockup) */
body[data-page="study"]{background:#FCFAF6;}
body[data-page="study"] .site-head{background:rgba(252,250,246,0.97);}
.hji-lockup{display:inline-flex;align-items:baseline;gap:10px;white-space:nowrap;}
.hji-lockup .hji-name{font-weight:600;letter-spacing:-0.01em;color:var(--hj-ink);}
.hji-lockup .hji-tag{font-family:var(--ff-mono);font-size:var(--fs-micro);letter-spacing:0.1em;
  text-transform:uppercase;color:var(--hj-gold-700);}
body[data-page="study"] .chip-strip,
body[data-page="study"] .fee-sec,
body[data-page="study"] .form-sec{background:#F6F1E7;}
body[data-page="study"] .band{background:#F6F1E7;border-block:var(--hairline);}

/* interior hero variant (shorter band, gradient glow instead of canvas) */
.hero--sub{min-height:clamp(400px,54svh,560px);}
.hero--sub .hero-glow{position:absolute;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(52% 62% at 86% 8%,rgba(184,134,11,0.18),transparent 60%),
    radial-gradient(44% 52% at 8% 104%,rgba(42,69,104,0.42),transparent 62%);}

/* dark-ground chips (hero country bar / reach band) */
.chips--dark .chip{background:rgba(255,255,255,0.05);border-color:rgba(232,201,122,0.32);}
.chips--dark .chip:hover{border-color:var(--hj-gold-300);}
.chips--dark .chip-tx{color:var(--on-navy);}
.chips--dark .chip .cc{font-family:var(--ff-mono);font-size:var(--fs-caption);
  color:var(--hj-gold-300);letter-spacing:0.04em;}

/* at-a-glance stat strip (dark hero) */
.stat-strip{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s2);margin-top:var(--s5);}
@media(min-width:760px){.stat-strip{grid-template-columns:repeat(4,1fr);gap:var(--s3);}}
.stat-cell{border:1px solid rgba(232,201,122,0.32);border-radius:var(--r-md);
  background:rgba(255,255,255,0.04);padding:var(--s3);position:relative;overflow:hidden;}
.stat-cell::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;
  background:linear-gradient(90deg,var(--hj-gold-700),var(--hj-gold-300));}
.stat-cell .v{font-size:1.75rem;font-weight:600;color:#FFFFFF;line-height:1.1;letter-spacing:-0.01em;}
.stat-cell .l{font-family:var(--ff-mono);font-size:var(--fs-caption);letter-spacing:0.06em;
  color:var(--on-navy-soft);margin-top:var(--s1);line-height:1.4;}

/* program-card internals (compose on .card) */
.card .ctry{font-family:var(--ff-mono);font-size:var(--fs-caption);letter-spacing:0.12em;
  text-transform:uppercase;color:var(--hj-gold-700);font-weight:500;}
.card .meta{display:flex;flex-wrap:wrap;gap:6px;}
.card .tag{font-family:var(--ff-mono);font-size:var(--fs-micro);letter-spacing:0.03em;color:var(--ink-mute);
  background:var(--hj-navy-50);border:var(--hairline);border-radius:var(--r-sm);padding:3px 8px;}
.card .spec{display:grid;grid-template-columns:auto 1fr;gap:8px 14px;font-size:0.9rem;margin:var(--s1) 0 0;}
.card .spec dt{font-family:var(--ff-mono);font-size:var(--fs-micro);letter-spacing:0.07em;
  text-transform:uppercase;color:var(--ink-mute);padding-top:3px;}
.card .spec dd{margin:0;color:var(--hj-ink);line-height:1.6;}
.card .spec dd em{color:var(--ink-soft);}
.card .bestfor{font-size:0.875rem;color:var(--ink-soft);line-height:1.7;
  border-top:1px dashed var(--hj-navy-100);padding-top:var(--s2);margin-top:auto;}
.card .bestfor b{color:var(--hj-ink);font-weight:600;}
.card .note{color:var(--ink-mute);}

/* fine print under data surfaces */
.fineprint{font-size:var(--fs-caption);color:var(--ink-mute);max-width:84ch;
  margin-top:var(--s4);line-height:1.7;}

/* timeline table */
.plan-card{background:var(--hj-white);border:var(--hairline-warm);border-radius:var(--r-lg);
  overflow-x:auto;}
.plan-table{width:100%;border-collapse:collapse;font-size:0.9375rem;min-width:560px;}
.plan-table th{font-family:var(--ff-mono);font-size:var(--fs-caption);letter-spacing:0.06em;
  text-transform:uppercase;color:var(--hj-gold-700);font-weight:500;text-align:left;
  padding:14px 18px;border-bottom:1px solid rgba(184,134,11,0.32);}
.plan-table td{padding:14px 18px;border-bottom:var(--hairline);color:var(--ink-soft);
  vertical-align:top;line-height:1.6;}
.plan-table td.dest{color:var(--hj-ink);font-weight:600;white-space:nowrap;}
.plan-table tr:last-child td{border-bottom:0;}

/* prose column (about) */
.prose p{color:var(--ink-soft);line-height:1.8;max-width:64ch;margin-bottom:var(--s3);}
.prose p:last-child{margin-bottom:0;}
html[data-lang="ja"] .prose p{max-width:46ch;}

/* dark note-card list support */
.note-card .aud-deliv{margin:0;}
.note-card .aud-deliv li{color:var(--on-navy-soft);}

/* fieldsets inside .hj-form (grouped intake) */
.hj-form fieldset{border:0;margin:0 0 var(--s3);padding:0;min-width:0;}
.hj-form legend{font-family:var(--ff-mono);font-size:var(--fs-micro);letter-spacing:0.12em;
  text-transform:uppercase;color:var(--ink-mute);font-weight:500;padding:0;margin-bottom:var(--s2);}

/* form + aside split (study inquiry) */
.form-split{display:grid;grid-template-columns:1fr;gap:var(--s4);align-items:start;}
@media(min-width:960px){.form-split{grid-template-columns:1.45fr 1fr;gap:var(--s5);}}
.aside-card{background:var(--hj-white);border:var(--hairline-warm);border-top:0;border-radius:var(--r-lg);
  padding:clamp(22px,3vw,var(--s5));position:relative;}
.aside-card::before{content:"";position:absolute;left:-1px;right:-1px;top:0;height:2.5px;
  border-radius:var(--r-lg) var(--r-lg) 0 0;
  background:linear-gradient(90deg,var(--hj-gold-700),var(--hj-gold) 38%,var(--hj-gold-300) 62%,var(--hj-gold-700));}
.aside-badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--ff-mono);
  font-size:var(--fs-micro);letter-spacing:0.06em;color:var(--hj-gold-700);
  background:var(--hj-navy-50);border:var(--hairline);border-radius:var(--r-pill);
  padding:5px 12px;margin-bottom:var(--s2);}
.aside-card h3{font-size:var(--fs-h3);margin-bottom:var(--s2);}
.aside-card p{color:var(--ink-soft);font-size:0.9375rem;line-height:1.7;}
.aside-card .aud-deliv{margin:var(--s2) 0;}
.aside-note{border-top:1px dashed var(--hj-navy-100);padding-top:var(--s2);margin-top:var(--s2);}
.aside-note p{margin-bottom:var(--s1);}
.aside-note p:last-child{margin-bottom:0;color:var(--ink-mute);}
.aside-note b{color:var(--hj-ink);font-weight:600;}

/* closing-band fine print */
.inquiry .fine{font-size:var(--fs-caption);color:var(--on-navy-soft);line-height:1.7;
  max-width:72ch;margin:var(--s4) auto 0;}

/* footer variants (education + status line) */
.site-foot .hji-lockup .hji-name{color:var(--on-navy);}
.site-foot .hji-lockup .hji-tag{color:var(--hj-gold-300);}
.foot-d5{margin-top:var(--s4);font-size:var(--fs-caption);color:var(--on-navy-soft);
  line-height:1.6;max-width:80ch;}
.foot-license .lic-info{font-size:var(--fs-caption);color:var(--on-navy-soft);line-height:1.6;max-width:80ch;}
.foot-cross{font-size:var(--fs-caption);color:var(--on-navy-soft);text-decoration:underline;
  text-decoration-color:rgba(232,201,122,0.4);text-underline-offset:2px;border-radius:4px;}
.foot-cross:hover{color:var(--on-navy);}
.site-foot .foot-status{font-family:var(--ff-mono);font-size:var(--fs-micro);
  letter-spacing:0.02em;color:var(--on-navy-soft);line-height:1.6;}

/* 6.5 doc pages (terms / privacy) */
body[data-page="legal"]{background:var(--hj-navy-50);}
.doc{max-width:860px;margin-inline:auto;padding:clamp(24px,5vw,56px) clamp(20px,5vw,40px) var(--s8);}
.doc-card{background:var(--hj-white);border:var(--hairline);border-radius:var(--r-lg);
  padding:clamp(28px,5vw,var(--s7));}
.doc-head{border-bottom:var(--hairline);padding-bottom:var(--s4);margin-bottom:var(--s5);}
.doc-head h1{font-size:var(--fs-h2);}
.doc-body h2{font-size:var(--fs-h3);margin:var(--s5) 0 var(--s2);}
.doc-body p,.doc-body li{font-size:0.9375rem;color:var(--ink-soft);line-height:1.85;}
.doc-body p{margin-bottom:var(--s2);}
.doc-body strong{color:var(--hj-ink);font-weight:600;}
.doc-body ul,.doc-body ol{padding-left:1.4em;display:flex;flex-direction:column;gap:6px;margin-bottom:var(--s2);}
.doc-status{background:var(--hj-navy-50);border:var(--hairline);border-left:2.5px solid var(--hj-gold-700);
  border-radius:var(--r-md);padding:var(--s2) var(--s3);font-size:var(--fs-caption);
  color:var(--ink-mute);margin-bottom:var(--s4);line-height:1.7;}
.doc-foot{max-width:860px;margin-inline:auto;padding:0 clamp(20px,5vw,40px) var(--s7);
  display:flex;flex-wrap:wrap;gap:var(--s2) var(--s4);justify-content:space-between;
  align-items:center;font-size:var(--fs-caption);color:var(--ink-mute);}
.doc-foot .foot-legal a{color:var(--ink-mute);text-decoration:underline;
  text-decoration-color:rgba(184,134,11,0.4);text-underline-offset:2px;border-radius:4px;}
.doc-foot .foot-legal a:hover{color:var(--hj-ink);}

/* ---------- 7. MOTION (opacity-led; sanctioned kinds: opacity reveal, corner draw,
   link underline draw, button press. Hover = border deepen + 3px rise.) ----------
   Reveal is gated behind html.js so content stays fully visible when scripts do not run. */
html.js .reveal{opacity:0;transition:opacity var(--dur-2) var(--ease);will-change:opacity;}
html.js .reveal.in{opacity:1;}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation:none!important;transition:none!important;}
  .reveal,.kagi-draw{opacity:1!important;transform:none!important;}
  .card:hover,.chip:hover,.choice:hover{transform:none;}
}

/* ---------- 8. RESPONSIVE (nav & CTA ergonomics) ---------- */
@media(max-width:860px){
  .nav-links{position:fixed;inset:68px 0 auto 0;flex-direction:column;align-items:stretch;
    background:var(--hj-white);border-bottom:var(--hairline);padding:var(--s2) clamp(20px,5vw,40px) var(--s4);
    gap:2px;margin-left:0;opacity:0;pointer-events:none;
    transition:opacity .22s var(--ease);}
  .nav-links.open{opacity:1;pointer-events:auto;}
  .nav-links a{padding:14px 8px;border-bottom:var(--hairline);border-radius:0;font-size:1rem;}
  .nav-links a::after{display:none;}
  .nav-links a:last-child{border-bottom:0;}
  .nav-links .nav-inquiry{color:var(--hj-gold-700);font-weight:500;}
  .menu-toggle{display:inline-flex;}
  .nav-cta{display:none!important;}
  .nav-cta-compact{display:inline-flex;}
}
@media(min-width:861px){.nav-cta-compact{display:none;}.nav-links .nav-inquiry{display:none;}}
.nav-cta-compact{min-height:44px;padding:10px 16px;font-size:0.875rem;}
/* study text lockup ergonomics on narrow screens (long wordmark) */
@media(max-width:640px){
  .hji-lockup .hji-tag{display:none;}
  .hji-lockup .hji-name{font-size:0.9375rem;letter-spacing:-0.02em;}
}
@media(max-width:520px){
  body[data-page="study"] .nav{gap:var(--s2);}
  body[data-page="study"] .nav-cta-compact{display:none;}
  .hji-lockup .hji-name{font-size:0.875rem;}
}
@media(max-width:560px){
  .hero-cta,.inq-cta{flex-direction:column;align-items:stretch;min-width:0;width:100%;}
  .hero-cta .btn,.inq-cta .btn,.aud-card .btn{width:100%;}
  .aud-card .btn{align-self:stretch;}
  .form-actions .btn{width:100%;min-width:0;}
}
