/* ═══════════════════════════════════════════════════════
   V2 SUBPAGE SHELL — shared styles for all sub-pages
   Match tone with v2/index.html (WHITE / BLUE / NAVY)
   ═══════════════════════════════════════════════════════ */
:root{
  --white:#ffffff;
  --off:#f7f8fa;
  --off-2:#eff2f6;
  --line:#e2e6ec;
  --line-2:#c9d2dd;
  --blue:#1a4b8f;
  --blue-l:#5da0e6;
  --blue-p:#e6efff;
  --navy:#0a2545;
  --navy-d:#050f1f;
  --ink:#0f172a;
  --ink-2:#334155;
  --muted:#64748b;
  --gold:#c9a84c;
  --f-en:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --f-en-b:'Inter','Helvetica Neue',Arial,sans-serif;
  --f-en-d:'Cinzel','Cormorant Garamond',serif;
  --f-jp:'Noto Sans JP','Hiragino Sans','Yu Gothic',sans-serif;
  --f-jp-s:'Noto Serif JP','Hiragino Mincho ProN','Yu Mincho',serif;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px;overflow-x:hidden;-webkit-text-size-adjust:100%}
body{font-family:var(--f-jp);color:var(--ink);background:var(--white);line-height:1.85;-webkit-font-smoothing:antialiased;overflow-x:hidden;letter-spacing:.02em}
img,video{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
button{font:inherit;cursor:pointer;background:none;border:0;color:inherit}
::selection{background:var(--blue);color:#fff}

.container{max-width:1200px;margin:0 auto;padding:0 clamp(1.2rem,4vw,3rem)}
.container-narrow{max-width:820px;margin:0 auto;padding:0 clamp(1.2rem,4vw,3rem)}

/* ── Type ── */
.en-eyebrow{font-family:var(--f-en-d);font-weight:400;font-size:.66rem;letter-spacing:.4em;text-transform:uppercase;color:var(--blue)}
.en-eyebrow.on-navy{color:var(--blue-l)}
h1,h2,h3,h4{font-family:var(--f-jp-s);font-weight:400;letter-spacing:.05em;color:var(--navy);line-height:1.4}
.jp-body,p{font-family:var(--f-jp);font-weight:300;color:var(--ink-2);letter-spacing:.04em;line-height:2}

/* ── NAV (identical to index) ── */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:1.2rem clamp(1.2rem,4vw,3rem);display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,.92);backdrop-filter:blur(20px);color:var(--navy);box-shadow:0 4px 24px rgba(10,37,69,.06);transition:padding .5s}
.nav.scrolled{padding:.9rem clamp(1.2rem,4vw,3rem)}
.nav-logo{font-family:var(--f-en);font-weight:500;font-size:1.2rem;letter-spacing:.22em}
.nav-logo em{font-style:italic;color:var(--blue);font-weight:400}
.nav-links{display:flex;gap:2.2rem;align-items:center}
.nav-links a{font-family:var(--f-en-b);font-size:.68rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;opacity:.85;transition:opacity .3s,color .3s}
.nav-links a:hover{opacity:1;color:var(--blue)}
.nav-links a.is-current{color:var(--blue);opacity:1}
.nav-cta{padding:.65rem 1.4rem;border:1px solid currentColor;font-family:var(--f-en-b);font-size:.65rem;letter-spacing:.22em;text-transform:uppercase;font-weight:500;transition:background .3s,color .3s}
.nav-cta:hover{background:var(--navy);color:#fff;border-color:var(--navy)}
.nav-toggle{display:none;width:28px;height:20px;position:relative}
.nav-toggle span{position:absolute;left:0;right:0;height:1px;background:currentColor;transition:all .3s}
.nav-toggle span:nth-child(1){top:0}.nav-toggle span:nth-child(2){top:50%}.nav-toggle span:nth-child(3){bottom:0}
@media(max-width:960px){
  .nav-links,.nav-cta{display:none}
  .nav-toggle{display:block}
  .nav.menu-open{background:var(--navy);color:#fff}
  .nav.menu-open .nav-links{display:flex;position:fixed;top:60px;left:0;right:0;flex-direction:column;padding:2rem;gap:1.6rem;background:var(--navy);color:#fff;align-items:flex-start}
  .nav.menu-open .nav-links a{color:#fff}
}

/* ── HERO LITE (sub-page hero) ── */
.subhero{position:relative;overflow:hidden;padding:9rem clamp(1.2rem,4vw,3rem) 5rem;background:linear-gradient(135deg,var(--navy) 0%,#0e3260 60%,var(--blue) 100%);color:#fff;text-align:center}
.subhero::before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 30% 20%,rgba(93,160,230,.35),transparent 50%),radial-gradient(circle at 80% 80%,rgba(255,255,255,.1),transparent 50%);pointer-events:none}
.subhero-inner{position:relative;z-index:2;max-width:900px;margin:0 auto}
.subhero .en-eyebrow{color:var(--blue-l);display:inline-block;margin-bottom:1.4rem}
.subhero h1{font-family:var(--f-en);font-weight:300;font-size:clamp(2.4rem,5.5vw,4.4rem);letter-spacing:.03em;line-height:1.1;color:#fff;margin-bottom:1rem}
.subhero h1 em{font-style:italic;color:var(--blue-l);font-weight:400}
.subhero .jp-title{font-family:var(--f-jp-s);font-weight:400;font-size:clamp(1.05rem,1.8vw,1.35rem);color:rgba(255,255,255,.85);letter-spacing:.12em;margin-top:.6rem}
.subhero .breadcrumbs{font-family:var(--f-en-b);font-size:.65rem;letter-spacing:.28em;text-transform:uppercase;color:rgba(255,255,255,.6);margin-top:2rem}
.subhero .breadcrumbs a{color:var(--blue-l);transition:color .3s}
.subhero .breadcrumbs a:hover{color:#fff}
.subhero .breadcrumbs span{margin:0 .8rem;opacity:.5}

/* ── SECTION BLOCK ── */
.block{padding:clamp(4rem,8vw,7rem) 0;background:var(--white)}
.block.alt{background:var(--off)}
.block.dark{background:var(--navy);color:#fff}
.block.dark h1,.block.dark h2,.block.dark h3,.block.dark h4{color:#fff}
.block.dark p{color:rgba(255,255,255,.75)}
.block-head{margin-bottom:clamp(2.5rem,4vw,4rem);text-align:center}
.block-head .en-eyebrow{display:inline-block;margin-bottom:1rem}
.block-head h2{font-family:var(--f-en);font-weight:300;font-size:clamp(2rem,4vw,3.2rem);color:var(--navy);letter-spacing:.02em;line-height:1.15;margin-bottom:.8rem}
.block-head h2 em{font-style:italic;color:var(--blue);font-weight:400}
.block-head .sub{font-family:var(--f-jp-s);font-weight:400;font-size:clamp(.95rem,1.4vw,1.15rem);color:var(--ink-2);letter-spacing:.06em}
.block-head.left{text-align:left}

/* ── CARD ── */
.card{background:var(--white);border:1px solid var(--line);border-radius:6px;padding:2.4rem 2rem;transition:all .4s cubic-bezier(.2,.7,.2,1)}
.card:hover{border-color:var(--blue);transform:translateY(-4px);box-shadow:0 20px 40px -10px rgba(10,37,69,.1)}
.card-en{font-family:var(--f-en-d);font-size:.65rem;letter-spacing:.32em;text-transform:uppercase;color:var(--blue);margin-bottom:.6rem;font-weight:500}
.card-title{font-family:var(--f-jp-s);font-size:1.15rem;color:var(--navy);font-weight:400;margin-bottom:.8rem;line-height:1.5}
.card p{font-size:.9rem;line-height:1.9;color:var(--ink-2)}
.card.on-alt{background:var(--white)}

/* ── BUTTONS ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.7rem;padding:1.05rem 2.4rem;font-family:var(--f-en-b);font-weight:500;font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;border:1px solid transparent;border-radius:2px;transition:all .35s cubic-bezier(.2,.7,.2,1);white-space:nowrap}
.btn-primary{background:var(--navy);color:#fff;border-color:var(--navy)}
.btn-primary:hover{background:var(--blue);border-color:var(--blue);transform:translateY(-2px);box-shadow:0 12px 32px rgba(26,75,143,.25)}
.btn-ghost{background:transparent;color:var(--navy);border-color:var(--navy)}
.btn-ghost:hover{background:var(--navy);color:#fff;transform:translateY(-2px)}
.btn .arrow{transition:transform .35s}
.btn:hover .arrow{transform:translateX(4px)}

/* ── FOOTER (identical to index) ── */
footer{background:var(--navy-d);color:rgba(255,255,255,.7);padding:5rem 0 3rem}
.foot-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:3rem;margin-bottom:3rem}
@media(max-width:760px){.foot-grid{grid-template-columns:1fr;gap:2rem}}
.foot-h{font-family:var(--f-en-d);font-size:.65rem;letter-spacing:.32em;text-transform:uppercase;color:var(--blue-l);margin-bottom:1.4rem;font-weight:500}
.foot p,.foot li{font-family:var(--f-jp);font-size:.88rem;line-height:2;color:rgba(255,255,255,.72)}
.foot a{transition:color .3s}.foot a:hover{color:var(--blue-l)}
.foot-logo{font-family:var(--f-en);font-weight:500;font-size:1.4rem;letter-spacing:.22em;color:#fff;margin-bottom:1rem}
.foot-logo em{font-style:italic;color:var(--blue-l)}
.foot-bottom{border-top:1px solid rgba(255,255,255,.1);padding-top:2rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;font-family:var(--f-en-b);font-size:.7rem;letter-spacing:.16em;color:rgba(255,255,255,.4)}

/* ── REVEAL ── */
.reveal{opacity:0;transform:translateY(30px);filter:blur(4px);transition:opacity 1.1s cubic-bezier(.2,.7,.2,1),transform 1.1s cubic-bezier(.2,.7,.2,1),filter 1.1s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none;filter:blur(0)}
.rd1{transition-delay:.08s}.rd2{transition-delay:.16s}.rd3{transition-delay:.24s}.rd4{transition-delay:.32s}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1 !important;transform:none !important;filter:none !important}}
