/* =====================================================================
   Leaders' Garden — design system (v25)
   Navy × Gold editorial. Shippori Mincho (display) / Noto Sans JP (text) /
   Cormorant Garamond (eyebrows, numerals). One stylesheet for all pages.
   ===================================================================== */
:root{
  --navy:#0B2545; --navy-2:#122F5A; --navy-deep:#061A36;
  --ink:#111827; --body:#2B3444; --muted:#5F6B7D;
  --line:#DDE3EC; --line-dark:rgba(255,255,255,.14);
  --ivory:#F7F4EC; --paper:#FBFAF6; --white:#FFFFFF;
  --gold:#B48A34; --gold-2:#C9A24A; --gold-soft:#E6CD8A;
  --sea:#0A5A7C; --sky:#EAF3F8; --sky-2:#D9EBF3;
  --accent:var(--gold);
  --display:'Shippori Mincho','Noto Serif JP',serif;
  --text:'Noto Sans JP','Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif;
  --serif:'Cormorant Garamond',Georgia,serif;
  --container:1200px; --gutter:40px;
  --sec:120px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{font-family:var(--text);color:var(--body);background:var(--white);line-height:1.9;letter-spacing:.02em;-webkit-font-smoothing:antialiased;font-size:16px}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
.nb{display:inline-block}            /* 文節単位の改行制御 */
.container{max-width:var(--container);margin:0 auto;padding:0 var(--gutter)}
.section{padding:var(--sec) 0}
.section.tight{padding:88px 0}
.bg-paper{background:var(--paper)}
.bg-ivory{background:var(--ivory)}
.bg-navy{background:var(--navy);color:#fff}
.bg-deep{background:var(--navy-deep);color:#fff}
.bg-sky{background:var(--sky)}
.hairline{height:1px;background:linear-gradient(90deg,transparent,rgba(180,138,52,.45),transparent)}

/* ---------- type ---------- */
.eyebrow{display:inline-flex;align-items:center;gap:14px;font-family:var(--serif);font-size:13px;font-weight:600;letter-spacing:.32em;text-transform:uppercase;color:var(--accent)}
.eyebrow::before{content:"";width:34px;height:1px;background:var(--accent)}
.eyebrow.center{justify-content:center}
.eyebrow.plain::before{display:none}
.bg-navy .eyebrow,.bg-deep .eyebrow{color:var(--gold-soft)}.bg-navy .eyebrow::before,.bg-deep .eyebrow::before{background:var(--gold-soft)}
h1,h2,h3,.display{font-family:var(--display);font-weight:700;color:var(--navy);letter-spacing:.04em}
.bg-navy h2,.bg-deep h2,.bg-navy h3,.bg-deep h3{color:#fff}
h1{font-size:clamp(36px,4.8vw,68px);line-height:1.3}
h2{font-size:clamp(28px,3.2vw,44px);line-height:1.38}
h3{font-size:clamp(19px,1.6vw,22px);line-height:1.55}
.em{color:var(--accent);font-weight:500}
.bg-navy .em,.bg-deep .em{color:var(--gold-soft)}
.lead{font-size:17px;line-height:2.05;color:var(--body)}
.bg-navy .lead,.bg-deep .lead{color:#D5DEEC}
.lead b,.copy b{color:var(--navy);font-weight:600}
.bg-navy .lead b,.bg-deep .lead b{color:#fff;border-bottom:1px solid var(--gold-soft);padding-bottom:1px}
.copy{max-width:640px}
.copy p+p{margin-top:18px}
.muted{color:var(--muted)}
.small{font-size:13.5px;line-height:1.8}
.sec-head{display:grid;grid-template-columns:1.25fr 1fr;gap:56px;align-items:end;margin-bottom:64px}
.sec-head h2{margin-top:18px}
.sec-head p{font-size:16px;line-height:2.05;max-width:560px}
.sec-head.center{display:block;text-align:center;max-width:820px;margin-left:auto;margin-right:auto}
.sec-head.center p{margin:18px auto 0}
.sec-head.stack{display:block;max-width:820px}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:19px 34px;font-size:15px;font-weight:700;letter-spacing:.12em;line-height:1;border:1px solid transparent;transition:transform .2s,background .2s,color .2s,border-color .2s;white-space:nowrap}
.btn::after{content:"→";font-size:17px;transition:transform .2s}
.btn:hover::after{transform:translateX(4px)}
.btn:hover{transform:translateY(-1px)}
.btn-gold{background:var(--gold);color:#fff;border-color:var(--gold)}.btn-gold:hover{background:var(--navy);border-color:var(--navy);color:#fff}
.btn-navy{background:var(--navy);color:#fff;border-color:var(--navy)}.btn-navy:hover{background:var(--gold);border-color:var(--gold)}
.btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.45)}.btn-ghost:hover{background:#fff;color:var(--navy);border-color:#fff}
.btn-outline{background:transparent;color:var(--navy);border-color:rgba(11,37,69,.45)}.btn-outline:hover{background:var(--navy);color:#fff;border-color:var(--navy)}
.btn-row{display:flex;gap:14px;flex-wrap:wrap}
.text-link{font-size:13.5px;font-weight:700;letter-spacing:.12em;color:var(--navy);border-bottom:1px solid var(--gold);padding-bottom:3px}
.text-link:hover{color:var(--gold)}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:100;background:#fff;border-bottom:1px solid rgba(11,37,69,.08)}
.site-header .inner{max-width:1320px;margin:0 auto;padding:0 40px;height:92px;display:flex;align-items:center;gap:32px}
.brand{display:flex;align-items:center;gap:14px;min-width:0}
.brand img{width:auto;height:66px;flex:none;object-fit:contain}
.brand .name{display:flex;flex-direction:column;line-height:1}
.brand .en{font-family:var(--serif);font-size:28px;font-weight:600;letter-spacing:.06em;color:var(--navy);white-space:nowrap}
.brand .jp{font-family:var(--display);font-size:15px;letter-spacing:.16em;color:#4E5B70;margin-top:7px;white-space:nowrap;font-weight:600}
.primary{display:flex;gap:30px;margin-left:auto}
.primary a{font-size:14px;font-weight:600;color:var(--navy);letter-spacing:.05em;padding:8px 0;position:relative;white-space:nowrap}
.primary a::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--gold);transition:width .25s}
.primary a:hover::after,.primary a[aria-current="page"]::after{width:100%}
.primary a[aria-current="page"]{color:var(--gold)}
.lang{display:inline-flex;align-items:center;gap:6px;font-family:var(--serif);font-size:14px;letter-spacing:.16em;color:var(--muted)}
.lang a{padding:4px 7px;border:1px solid transparent}
.lang a[aria-current="page"]{color:var(--navy);border-color:var(--gold)}
.lang .sep{color:#c7cfdb}
.header-cta{padding:16px 28px;font-size:14.5px;background:var(--gold);border-color:var(--gold);color:#fff;box-shadow:0 10px 24px rgba(180,138,52,.28)}
.header-cta:hover{background:var(--navy);border-color:var(--navy);color:#fff}
.menu-toggle{display:none;width:44px;height:44px;margin-left:auto;position:relative}
.menu-toggle span{position:absolute;left:11px;width:22px;height:2px;background:var(--navy);transition:transform .25s,opacity .25s}
.menu-toggle span:nth-child(1){top:15px}.menu-toggle span:nth-child(2){top:21px}.menu-toggle span:nth-child(3){top:27px}
body.nav-open .menu-toggle span:nth-child(1){transform:translateY(6px) rotate(45deg)}
body.nav-open .menu-toggle span:nth-child(2){opacity:0}
body.nav-open .menu-toggle span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.mobile-nav{display:none}

/* ---------- hero (dark) ---------- */
.hero{position:relative;overflow:hidden;background:linear-gradient(180deg,#061A36 0%,#0B2545 55%,#122F5A 100%);color:#fff}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 12% 30%,rgba(180,138,52,.16),transparent 32%),radial-gradient(circle at 80% 20%,rgba(80,140,200,.12),transparent 34%);pointer-events:none}
.hero .container{position:relative;z-index:2}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:48px;align-items:center;min-height:calc(100vh - 92px);max-height:860px;padding:64px 0}
.hero h1{color:#fff}
.hero h1 .em{color:var(--gold-soft)}
.hero .sub{font-family:var(--display);font-size:clamp(17px,1.5vw,22px);color:var(--gold-soft);letter-spacing:.08em;margin:18px 0 26px;font-weight:500}
.hero .lead{max-width:600px;margin-bottom:40px;color:#D5DEEC}
.hero .lead b{color:#fff;border-bottom:1px solid var(--gold-soft);padding-bottom:1px}
.hero .crumb{font-size:12.5px;letter-spacing:.16em;color:#9CA9BD;margin-bottom:22px}
.hero .crumb a:hover{color:var(--gold-soft)}
.hero .tag{display:inline-block;padding:9px 18px;border:1px solid rgba(230,205,138,.5);color:var(--gold-soft);font-family:var(--serif);font-size:13px;letter-spacing:.34em;font-weight:600;margin-bottom:26px}
.hero-globe{position:relative;height:520px;display:flex;align-items:center;justify-content:center}
.hero-globe::before{content:"";position:absolute;width:64%;aspect-ratio:1/1;border-radius:50%;background:radial-gradient(circle,rgba(180,138,52,.30),transparent 62%);filter:blur(28px);animation:pulseg 6s ease-in-out infinite}
.hero-globe .arc{position:absolute;left:50%;top:50%;border:1px solid;border-color:rgba(230,205,138,.35) transparent transparent transparent;border-radius:50%;pointer-events:none}
.hero-globe .arc.a{width:520px;height:250px;transform:translate(-50%,-50%) rotate(-10deg)}
.hero-globe .arc.b{width:400px;height:200px;transform:translate(-50%,-50%) rotate(14deg);border-color:rgba(255,255,255,.22) transparent transparent transparent}
.hero-globe img{position:relative;width:min(100%,500px);aspect-ratio:1/1;object-fit:contain;filter:drop-shadow(0 30px 60px rgba(0,0,0,.5));animation:floatg 8s ease-in-out infinite}
.hero-globe .cap{position:absolute;right:0;bottom:-6px;font-family:var(--serif);font-style:italic;font-size:13px;letter-spacing:.14em;color:rgba(230,205,138,.8)}
@keyframes floatg{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@keyframes pulseg{0%,100%{opacity:.55;transform:scale(1)}50%{opacity:.95;transform:scale(1.06)}}
@media(prefers-reduced-motion:reduce){.hero-globe img,.hero-globe::before{animation:none}}
.hero-photo{position:relative}
.hero-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;box-shadow:0 30px 60px rgba(6,26,54,.25),0 0 0 1px rgba(180,138,52,.35),0 0 0 9px #fff}
.hero-photo .cap{position:absolute;left:0;bottom:-34px;font-family:var(--serif);font-style:italic;font-size:13px;letter-spacing:.14em;color:var(--muted)}
.scroll-hint{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);font-family:var(--serif);font-size:11px;letter-spacing:.3em;color:rgba(255,255,255,.55);z-index:2}

/* ---------- light hero (cruise) ---------- */
.hero.light{background:linear-gradient(180deg,#F7F4EC 0%,#EAF3F8 100%);color:var(--body)}
.hero.light::before{background:radial-gradient(circle at 85% 20%,rgba(230,205,138,.35),transparent 40%),radial-gradient(circle at 10% 90%,rgba(255,255,255,.7),transparent 50%)}
.hero.light h1{color:var(--navy)}
.hero.light h1 .em{color:var(--gold)}
.hero.light .sub{color:var(--sea)}
.hero.light .lead{color:var(--body)}
.hero.light .lead b{color:var(--navy);border-bottom-color:var(--gold)}
.hero.light .crumb{color:var(--muted)}
.hero.light .tag{border-color:rgba(180,138,52,.6);color:var(--gold)}

/* ---------- stats strip ---------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.stat{padding:40px 28px 40px 0;border-right:1px solid var(--line)}
.stat:last-child{border-right:0}
.stat+.stat{padding-left:28px}
.stat .val{font-family:var(--serif);font-size:clamp(52px,5.4vw,84px);line-height:1;color:var(--navy);font-weight:400;letter-spacing:-.02em}
.stat .val em{font-style:normal;color:var(--gold);font-size:.5em;vertical-align:super;margin-left:3px}
.stat .val small{font-family:var(--display);font-size:.34em;letter-spacing:.06em;margin-left:6px;color:var(--navy)}
.stat .lbl{margin-top:14px;font-family:var(--serif);font-style:italic;font-size:15px;letter-spacing:.1em;color:var(--gold)}
.stat .jp{margin-top:6px;font-size:14px;color:var(--body);line-height:1.7;font-weight:500}
.bg-navy .stats,.bg-deep .stats{border-color:var(--line-dark)}
.bg-navy .stat,.bg-deep .stat{border-color:var(--line-dark)}
.bg-navy .stat .val,.bg-deep .stat .val{color:#fff}.bg-navy .stat .val small,.bg-deep .stat .val small{color:#fff}
.bg-navy .stat .lbl,.bg-deep .stat .lbl{color:var(--gold-soft)}.bg-navy .stat .jp,.bg-deep .stat .jp{color:#C8D2E3}
.source{margin-top:18px;font-size:12px;line-height:1.8;color:#9CA9BD;letter-spacing:.03em}

/* ---------- two businesses (editorial split) ---------- */
.biz{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--line);background:#fff}
.biz-card{display:flex;flex-direction:column}
.biz-card+.biz-card{border-left:1px solid var(--line)}
.biz-visual{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--navy-deep)}
.biz-visual img{width:100%;height:100%;object-fit:cover;transition:transform .8s ease}
.biz-visual.globe{display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 30% 25%,rgba(230,205,138,.16),transparent 50%),#061A36}
.biz-visual.globe img{width:62%;height:auto;object-fit:contain;filter:drop-shadow(0 20px 40px rgba(0,0,0,.5))}
.biz-card:hover .biz-visual img{transform:scale(1.04)}
.biz-visual .foil{position:absolute;left:22px;bottom:22px;padding:10px 20px;background:rgba(6,26,54,.85);color:var(--gold-soft);font-family:var(--serif);font-size:13px;letter-spacing:.36em;font-weight:600;border:1px solid rgba(230,205,138,.5)}
.biz-body{padding:40px 40px 36px;display:flex;flex-direction:column;flex:1}
.biz-body h3{font-size:clamp(24px,2.2vw,30px)}
.biz-body .slogan{font-family:var(--display);font-size:14.5px;letter-spacing:.12em;color:var(--gold);margin:12px 0 22px;font-weight:600}
.biz-body p{font-size:15px;line-height:2;margin-bottom:22px}
.biz-body ul{border-top:1px solid var(--line);margin-bottom:28px}
.biz-body li{padding:12px 0 12px 22px;border-bottom:1px solid var(--line);font-size:14px;line-height:1.7;font-weight:500;color:var(--ink);position:relative}
.biz-body li::before{content:"";position:absolute;left:0;top:19px;width:12px;height:1px;background:var(--gold)}
.biz-body .foot{margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.biz-body .for{font-size:12px;letter-spacing:.16em;font-weight:700;color:var(--muted)}

/* ---------- numbered editorial list ---------- */
.numbered{border-top:1px solid var(--line)}
.numbered li{display:grid;grid-template-columns:120px 1fr;gap:32px;padding:36px 0;border-bottom:1px solid var(--line)}
.numbered .no{font-family:var(--serif);font-size:46px;line-height:1;color:var(--gold);font-weight:400}
.numbered .no sup{font-size:.45em;vertical-align:super;margin-left:2px}
.numbered h3{margin-bottom:10px}
.numbered p{font-size:15px;line-height:2;max-width:720px}
.bg-paper .numbered li,.bg-ivory .numbered li{border-color:#E6E1D3}

/* ---------- ruled grid (services) ---------- */
.ruled{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}
.ruled .cell{padding:40px 32px 36px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;min-height:300px;background:#fff;transition:background .3s,color .3s}
.ruled .cell:hover{background:var(--navy);color:#fff}
.ruled .cell:hover h3,.ruled .cell:hover p{color:#fff}
.ruled .cell:hover .no,.ruled .cell:hover .tags{color:var(--gold-soft)}
.ruled .no{font-family:var(--serif);font-style:italic;font-size:15px;letter-spacing:.14em;color:var(--gold);margin-bottom:22px;font-weight:500}
.ruled h3{margin-bottom:14px}
.ruled p{font-size:14.5px;line-height:1.95;margin-bottom:24px}
.ruled .tags{margin-top:auto;font-size:12px;letter-spacing:.16em;font-weight:700;color:#7d8aa0}

/* ---------- pillars (approach) ---------- */
.pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
.pillars.three{grid-template-columns:repeat(3,1fr)}
.pillar{padding-top:26px;border-top:2px solid var(--navy)}
.pillar .roman{font-family:var(--serif);font-size:44px;line-height:1;color:var(--gold);margin-bottom:20px;font-weight:400}
.pillar h3{margin-bottom:12px;font-size:20px}
.pillar p{font-size:14.5px;line-height:2}
.bg-navy .pillar,.bg-deep .pillar{border-top-color:rgba(255,255,255,.35)}
.bg-navy .pillar p,.bg-deep .pillar p{color:#C8D2E3}

/* ---------- timeline ---------- */
.timeline{display:grid;grid-template-columns:repeat(5,1fr);gap:0;position:relative}
.timeline::before{content:"";position:absolute;left:0;right:0;top:7px;height:1px;background:repeating-linear-gradient(90deg,rgba(180,138,52,.5) 0 6px,transparent 6px 12px)}
.step{padding:0 24px 0 0;position:relative}
.step .dot{width:14px;height:14px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 5px var(--paper),0 0 0 6px rgba(180,138,52,.3);margin-bottom:26px;position:relative;z-index:1}
.step .no{font-family:var(--serif);font-style:italic;font-size:15px;letter-spacing:.14em;color:var(--gold);margin-bottom:8px}
.step h3{font-size:19px;margin-bottom:10px}
.step p{font-size:13.5px;line-height:1.9}

/* ---------- quotes ---------- */
.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.quote{padding:38px 32px 30px;border:1px solid var(--line-dark);background:rgba(255,255,255,.04);position:relative;transition:background .3s,transform .3s}
.quote:hover{background:rgba(255,255,255,.07);transform:translateY(-4px)}
.quote::before{content:"\201C";position:absolute;top:14px;right:24px;font-family:var(--serif);font-size:96px;line-height:1;color:rgba(230,205,138,.16)}
.quote .pull{font-family:var(--display);font-size:19px;line-height:1.75;color:#fff;font-weight:600;margin-bottom:20px;position:relative}
.quote .body{font-size:14px;line-height:1.95;color:#D5DEEC;margin-bottom:24px}
.quote .who{padding-top:18px;border-top:1px solid var(--line-dark);font-size:13px;color:var(--gold-soft);font-family:var(--serif);font-style:italic;letter-spacing:.12em}
.quote .who b{display:block;font-family:var(--text);font-style:normal;font-size:14px;color:#fff;letter-spacing:.06em;margin-bottom:4px}

/* ---------- message ---------- */
.message{display:grid;grid-template-columns:.55fr 1fr;gap:72px;align-items:start}
.rep-card{background:var(--navy-deep);color:#fff;padding:36px 30px;position:relative}
.rep-card::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--gold)}
.rep-card .role{font-family:var(--serif);font-style:italic;color:var(--gold-soft);font-size:14px;letter-spacing:.16em;margin-bottom:8px}
.rep-card .title{font-family:var(--display);font-size:22px;font-weight:700;margin-bottom:18px}
.rep-card ul{border-top:1px solid var(--line-dark)}
.rep-card li{padding:15px 0;border-bottom:1px solid rgba(255,255,255,.08);font-size:14px;color:#D5DEEC;line-height:1.75}
.rep-card li b{display:block;color:var(--gold-soft);font-family:var(--serif);font-style:italic;font-weight:500;font-size:11px;letter-spacing:.2em;margin-bottom:4px}
.message h2{margin:16px 0 28px}
.message p{font-size:15.5px;line-height:2.1;margin-bottom:20px}
.message .signoff{margin-top:32px;padding-top:22px;border-top:1px solid var(--line);font-family:var(--serif);font-style:italic;color:var(--gold);font-size:20px;letter-spacing:.06em}

/* ---------- company table ---------- */
.spec{width:100%;border-collapse:collapse;border-top:1px solid var(--line)}
.spec th,.spec td{padding:18px 8px;border-bottom:1px solid var(--line);font-size:15px;line-height:1.85;text-align:left;vertical-align:top}
.spec th{width:200px;color:var(--gold);font-weight:700;letter-spacing:.1em;white-space:nowrap;font-family:var(--text)}

/* ---------- stance / pull block ---------- */
.stance{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.stance blockquote{font-family:var(--display);font-size:clamp(20px,1.9vw,26px);line-height:1.8;color:var(--navy);font-weight:600;position:relative;padding-left:26px;border-left:3px solid var(--gold)}
.stance-points{display:grid;gap:18px}
.stance-points li{display:grid;grid-template-columns:44px 1fr;gap:14px;align-items:start;padding:18px 0;border-bottom:1px solid var(--line)}
.stance-points .no{font-family:var(--serif);font-size:22px;color:var(--gold);font-weight:600;letter-spacing:.1em;line-height:1.4}
.stance-points b{display:block;font-family:var(--display);font-size:17px;color:var(--navy);margin-bottom:4px}
.stance-points p{font-size:14px;line-height:1.85}

/* ---------- two columns editorial (smart × joyful) ---------- */
.duo{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.duo-col .photo{aspect-ratio:16/10;overflow:hidden;margin-bottom:26px}
.duo-col .photo img{width:100%;height:100%;object-fit:cover;transition:transform .8s}
.duo-col:hover .photo img{transform:scale(1.04)}
.duo-col .big{font-family:var(--display);font-size:clamp(34px,3.4vw,48px);line-height:1;color:var(--navy);margin-bottom:10px}
.duo-col .big .em{color:var(--gold)}
.duo-col h3{margin-bottom:18px}
.duo-col ul{border-top:1px solid var(--line)}
.duo-col li{padding:12px 0 12px 24px;border-bottom:1px solid var(--line);font-size:14.5px;line-height:1.75;position:relative}
.duo-col li::before{content:"";position:absolute;left:0;top:20px;width:12px;height:1px;background:var(--gold)}

/* ---------- gallery ---------- */
.mosaic{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:250px;gap:14px}
.mosaic figure{position:relative;overflow:hidden;margin:0}
.mosaic img{width:100%;height:100%;object-fit:cover;transition:transform .8s}
.mosaic figure:hover img{transform:scale(1.05)}
.mosaic figcaption{position:absolute;left:14px;bottom:14px;padding:6px 12px;background:rgba(6,26,54,.72);color:#fff;font-size:12.5px;letter-spacing:.1em;font-weight:600}
.mosaic .big{grid-column:span 2;grid-row:span 2}
.mosaic .wide{grid-column:span 2}

/* ---------- included / not included ---------- */
.incl{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--line);background:#fff}
.incl-col{padding:36px 36px 30px}
.incl-col+.incl-col{border-left:1px solid var(--line)}
.incl-col h3{display:flex;align-items:center;gap:12px;margin-bottom:18px;font-size:19px}
.incl-col h3 .mark{font-family:var(--serif);font-size:22px;color:var(--gold);width:28px;height:28px;border:1px solid var(--gold);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:600}
.incl-col li{padding:11px 0;border-bottom:1px solid var(--line);font-size:14.5px;display:flex;justify-content:space-between;gap:16px}
.incl-col li>span:not(.nb){color:var(--muted);font-size:13px}
.incl-note{margin-top:16px;font-size:13px;color:var(--muted);line-height:1.8}

/* ---------- audience ---------- */
.audience{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.audience li{padding:28px 24px;border:1px solid var(--line);background:#fff;text-align:center}
.audience .no{font-family:var(--serif);font-size:20px;letter-spacing:.2em;color:var(--gold);font-weight:600;margin-bottom:12px}
.audience b{display:block;font-family:var(--display);font-size:16px;color:var(--navy);margin-bottom:6px;line-height:1.5}
.audience p{font-size:13px;line-height:1.8;color:var(--muted)}

/* ---------- event (seminar) ---------- */
.event{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:start}
.event h2{font-size:clamp(26px,2.9vw,40px)}
.event-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-dark);border:1px solid var(--line-dark);margin:28px 0}
.event-facts div{background:rgba(255,255,255,.04);padding:20px 16px;text-align:center}
.event-facts b{display:block;font-family:var(--display);font-size:20px;color:var(--gold-soft);margin-bottom:6px}
.event-facts>div>span{font-size:12.5px;color:#C8D2E3;letter-spacing:.06em}

/* ---------- FAQ ---------- */
.faq{max-width:860px;margin:0 auto;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:44px 1fr 24px;gap:16px;align-items:start;padding:22px 0;font-family:var(--display);font-size:17px;color:var(--navy);font-weight:700;line-height:1.6}
.faq summary::-webkit-details-marker{display:none}
.faq summary .q{font-family:var(--serif);font-size:22px;color:var(--gold);font-weight:600}
.faq summary .plus{font-family:var(--serif);font-size:24px;color:var(--gold);line-height:1;transition:transform .25s}
.faq details[open] summary .plus{transform:rotate(45deg)}
.faq .a{padding:0 24px 24px 60px;font-size:15px;line-height:2;color:var(--body)}

/* ---------- forms (Apps Script / mailto fallback) ---------- */
.form{display:grid;gap:18px}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field{display:flex;flex-direction:column;gap:6px}
.field label{font-size:12.5px;letter-spacing:.14em;font-weight:700;color:var(--gold-soft)}
.field input,.field select,.field textarea{font:inherit;font-size:15px;color:#fff;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.22);padding:14px 16px;border-radius:0;outline:none;transition:border-color .2s}
.field select{-webkit-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,#E6CD8A 50%),linear-gradient(135deg,#E6CD8A 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 15px) 50%;background-size:5px 5px;background-repeat:no-repeat}
.field select option{color:var(--navy)}
.field textarea{min-height:120px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--gold-soft)}
.field input::placeholder,.field textarea::placeholder{color:rgba(255,255,255,.35)}
.form .note{font-size:12.5px;color:#9CA9BD;line-height:1.8}
.form .actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.form .alt{font-size:13px;color:#C8D2E3}.form .alt a{color:var(--gold-soft);border-bottom:1px solid rgba(230,205,138,.5)}
.light-form .field label{color:var(--gold)}
.light-form .field input,.light-form .field select,.light-form .field textarea{color:var(--ink);background:#fff;border-color:var(--line)}
.light-form .field input:focus,.light-form .field select:focus,.light-form .field textarea:focus{border-color:var(--gold)}
.light-form .field input::placeholder,.light-form .field textarea::placeholder{color:#a8b1c0}
.light-form .note{color:var(--muted)}.light-form .alt{color:var(--body)}.light-form .alt a{color:var(--navy);border-bottom-color:var(--gold)}
.light-form .field select{background-image:linear-gradient(45deg,transparent 50%,#B48A34 50%),linear-gradient(135deg,#B48A34 50%,transparent 50%)}

/* ---------- SNS / QR ---------- */
.sns{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.sns-card{display:grid;grid-template-columns:170px 1fr;gap:26px;align-items:center;padding:24px;background:#fff;border:1px solid var(--line)}
.sns-card img{width:170px;height:170px;object-fit:contain;background:#fff}
.sns-card .h{font-family:var(--serif);font-size:13px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:6px}
.sns-card b{display:block;font-family:var(--display);font-size:20px;color:var(--navy);margin-bottom:6px}
.sns-card p{font-size:13.5px;line-height:1.8;color:var(--muted);margin-bottom:12px}
.form .sent{padding:16px 18px;border:1px solid rgba(230,205,138,.5);color:#fff;font-size:14px;line-height:1.8;background:rgba(230,205,138,.08)}
.form .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.light-form .sent{color:var(--navy);border-color:var(--gold);background:#fff}
/* ---------- Required badge + validation (v34) ---------- */
.field label .req{display:inline-block;margin-left:9px;padding:3px 7px 2px;font-size:10.5px;letter-spacing:.12em;line-height:1;font-weight:700;color:var(--navy);background:var(--gold-soft);border-radius:2px;vertical-align:2px;white-space:nowrap}
.light-form .field label .req{color:#fff;background:var(--gold)}
.field.invalid input,.field.invalid select,.field.invalid textarea{border-color:#E8797B;box-shadow:0 0 0 3px rgba(232,121,123,.22)}
.field .err{font-size:13px;line-height:1.6;color:#F4B1B2;margin-top:-1px}
.light-form .field .err{color:#C0392B}
.form .form-err{padding:12px 16px;border:1px solid rgba(232,121,123,.6);background:rgba(232,121,123,.12);color:#fff;font-size:14px;line-height:1.7}
.light-form .form-err{color:#B03A3C;background:#FFF3F3;border-color:#F0B4B5}
/* ---------- CTA band ---------- */
.cta-band{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
.cta-band h2{margin:16px 0 20px;font-size:clamp(26px,2.9vw,40px)}
.cta-band .lead{max-width:520px}

/* ---------- cross link ---------- */
.cross{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:center;padding-top:64px;border-top:1px solid var(--line-dark)}
.cross .visual{aspect-ratio:16/10;overflow:hidden;position:relative;box-shadow:0 30px 60px rgba(0,0,0,.35)}
.cross .visual img{width:100%;height:100%;object-fit:cover}
.cross .visual.globe{background:radial-gradient(circle at 30% 25%,rgba(230,205,138,.16),transparent 50%),#061A36;display:flex;align-items:center;justify-content:center}.cross .visual.globe img{width:60%;height:auto;object-fit:contain;filter:drop-shadow(0 20px 40px rgba(0,0,0,.5))}
.cross h3{font-size:clamp(24px,2.6vw,34px);margin:14px 0 16px}
.cross p{font-size:15px;line-height:2;max-width:520px;margin-bottom:24px}
.bg-paper .cross,.bg-ivory .cross,.bg-sky .cross{border-top-color:var(--line)}

/* ---------- footer ---------- */
.site-footer{background:var(--navy-deep);color:#8B98AD;padding:72px 0 28px}
.foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:48px}
.foot-lockup{display:flex;align-items:center;gap:20px;margin-bottom:20px}
.foot-logo{width:auto;height:84px;flex:none;object-fit:contain}
.foot-brand .wordmark{font-family:var(--serif);font-size:30px;color:#fff;line-height:1;letter-spacing:.06em}
.foot-brand .tag{display:block;margin-top:8px;font-size:11px;letter-spacing:.22em;color:#7F8CA3;font-weight:700}
.foot-brand p{margin-top:18px;font-size:13px;line-height:1.9;max-width:340px;color:#7F8CA3}
.site-footer h4{font-family:var(--text);font-size:11px;letter-spacing:.28em;color:var(--gold-2);margin-bottom:16px;font-weight:800}
.site-footer li{margin-bottom:11px;font-size:13.5px}
.site-footer a:hover{color:#fff}
.foot-bottom{max-width:var(--container);margin:56px auto 0;padding:22px var(--gutter) 0;border-top:1px solid rgba(255,255,255,.06);font-size:11px;letter-spacing:.08em;color:#5F6A7D;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}

/* ---------- floating cta ---------- */
.floating-cta{position:fixed;right:22px;bottom:22px;z-index:90;background:var(--gold);color:#fff;padding:18px 28px;font-size:15px;font-weight:700;letter-spacing:.12em;box-shadow:0 18px 40px rgba(11,37,69,.35);border-left:4px solid #fff;transition:background .2s,transform .2s}
.floating-cta::after{content:"→";margin-left:10px}
.floating-cta:hover{background:var(--navy);transform:translateY(-2px)}

/* ---------- reveal ---------- */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .8s ease,transform .8s ease}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* ===================================================================== responsive */
@media(max-width:1100px){
  .sec-head{grid-template-columns:1fr;gap:20px}
  .ruled{grid-template-columns:repeat(2,1fr)}
  .pillars{grid-template-columns:repeat(2,1fr)}
  .quotes{grid-template-columns:1fr}
  .timeline{grid-template-columns:1fr 1fr;gap:32px 24px}.timeline::before{display:none}
  .audience{grid-template-columns:repeat(2,1fr)}
  .message{grid-template-columns:1fr;gap:40px}
  .cta-band,.stance,.event,.cross{grid-template-columns:1fr;gap:36px}
  .hero-grid{grid-template-columns:1fr;min-height:0;max-height:none;gap:36px;padding:56px 0 64px}
  .hero-globe{height:360px}.hero-globe .arc.a{width:300px;height:144px}.hero-globe .arc.b{width:240px;height:120px}.hero-globe img{width:min(100%,320px)}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:1240px){
  .primary{display:none}
  .lang{margin-left:auto}
  .menu-toggle{display:block;margin-left:0}
  .brand .en{font-size:24px}
  .mobile-nav{display:none;position:fixed;top:92px;left:0;right:0;bottom:0;background:#fff;z-index:99;padding:20px 40px 40px;overflow:auto}
  body.nav-open .mobile-nav{display:block}
  body.nav-open{overflow:hidden}
  .mobile-nav a{display:block;padding:18px 0;border-bottom:1px solid var(--line);font-family:var(--display);font-size:20px;color:var(--navy);font-weight:700}
  .mobile-nav a[aria-current="page"]{color:var(--gold)}
  .mobile-nav .btn{display:flex;width:100%;max-width:420px;margin-top:24px;border-bottom:0;font-family:var(--text);font-size:16px;padding:20px 24px}
}
@media(max-width:900px){
  :root{--gutter:24px;--sec:80px}
  .site-header .inner{padding:0 20px;height:76px;gap:12px}
  .brand{gap:10px}.brand img{height:50px}.brand .en{font-size:19px;letter-spacing:.04em}.brand .jp{font-size:11.5px;letter-spacing:.12em;margin-top:4px}
  .header-cta{padding:12px 16px;font-size:13px}
  .lang{font-size:12px;letter-spacing:.1em;gap:4px}.lang a{padding:3px 5px}
  .mobile-nav{top:76px;padding:20px 24px 40px}
  .stats{grid-template-columns:1fr 1fr}
  .stat{padding:24px 0!important;border-right:0;border-bottom:1px solid var(--line)}
  .stat:nth-child(odd){border-right:1px solid var(--line);padding-right:20px!important}
  .stat:nth-child(even){padding-left:20px!important}
  .bg-navy .stat,.bg-deep .stat{border-color:var(--line-dark)}
  .biz{grid-template-columns:1fr}.biz-card+.biz-card{border-left:0;border-top:1px solid var(--line)}
  .biz-body{padding:30px 24px 28px}
  .numbered li{grid-template-columns:64px 1fr;gap:18px;padding:28px 0}.numbered .no{font-size:36px}
  .ruled{grid-template-columns:1fr}.ruled .cell{min-height:0;padding:30px 24px 28px}
  .pillars,.pillars.three{grid-template-columns:1fr;gap:22px}
  .timeline{grid-template-columns:1fr}
  .duo{grid-template-columns:1fr;gap:40px}
  .mosaic{grid-template-columns:1fr 1fr;grid-auto-rows:200px}.mosaic .big{grid-column:span 2}.mosaic .wide{grid-column:span 2}
  .incl{grid-template-columns:1fr}.incl-col+.incl-col{border-left:0;border-top:1px solid var(--line)}.incl-col{padding:26px 22px}
  .audience{grid-template-columns:1fr}
  .form .row{grid-template-columns:1fr}
  .sns{grid-template-columns:1fr}.sns-card{grid-template-columns:120px 1fr;gap:16px;padding:16px}.sns-card img{width:120px;height:120px}
  .spec th{width:104px;letter-spacing:.04em}.spec th,.spec td{font-size:14px;padding:14px 4px}
  .hero h1{font-size:clamp(32px,8.4vw,44px)}
  .hero-photo .cap{position:static;margin-top:14px}
  .scroll-hint{display:none}
  .foot-grid{grid-template-columns:1fr;gap:32px}
  .floating-cta{right:14px;bottom:14px;padding:16px 22px;font-size:14px}
}
@media(max-width:640px){
  .mosaic{grid-template-columns:1fr;grid-auto-rows:220px}.mosaic .big,.mosaic .wide{grid-column:auto;grid-row:auto}
  .stats{grid-template-columns:1fr}.stat:nth-child(odd){border-right:0;padding-right:0!important}.stat:nth-child(even){padding-left:0!important}
  .event-facts{grid-template-columns:1fr}
}

/* ===================================================================== English pages: Cormorant display */
html[lang="en"] h1,html[lang="en"] h2,html[lang="en"] h3,html[lang="en"] .display,html[lang="en"] .rep-card .title,html[lang="en"] .duo-col .big,html[lang="en"] .stance blockquote,html[lang="en"] .quote .pull,html[lang="en"] .faq summary,html[lang="en"] .audience b,html[lang="en"] .stance-points b,html[lang="en"] .hero .sub,html[lang="en"] .biz-body .slogan,html[lang="en"] .event-facts b,html[lang="en"] .incl-col h3{font-family:var(--serif);letter-spacing:.01em}
html[lang="en"] h1{font-size:clamp(44px,5.6vw,84px);font-weight:600;line-height:1.1}
html[lang="en"] h2{font-size:clamp(32px,3.6vw,52px);font-weight:600;line-height:1.18}
html[lang="en"] h3{font-size:clamp(22px,1.9vw,26px);font-weight:600;line-height:1.3}
html[lang="en"] .stance blockquote{font-size:clamp(22px,2.1vw,30px);font-weight:500;line-height:1.55}
html[lang="en"] .quote .pull{font-size:23px;line-height:1.45;font-weight:600}
html[lang="en"] .faq summary{font-size:20px;font-weight:600}
html[lang="en"] .hero .sub{font-style:italic;font-size:clamp(19px,1.7vw,25px);font-weight:500;letter-spacing:.02em}
html[lang="en"] .biz-body h3{font-size:clamp(28px,2.4vw,34px)}
html[lang="en"] .biz-body .slogan{font-style:italic;font-size:16px;letter-spacing:.04em}
html[lang="en"] .duo-col .big{font-size:clamp(40px,3.8vw,56px);font-weight:600}
html[lang="en"] .rep-card .title{font-size:24px;font-weight:600}
html[lang="en"] .audience b{font-size:19px}
html[lang="en"] .stance-points b{font-size:19px}
html[lang="en"] .step h3{font-size:22px}
html[lang="en"] .pillar h3{font-size:23px}
html[lang="en"] .numbered h3{font-size:25px}
html[lang="en"] .event-facts b{font-size:22px}
html[lang="en"] .incl-col h3{font-size:22px}
@media(max-width:900px){html[lang="en"] .hero h1{font-size:clamp(38px,10vw,52px)}}

/* ===================================================================== v27 additions */
/* one-line hero headlines */
.hero h1.one{white-space:nowrap}
.hero h1.one.jp8{font-size:clamp(36px,4.9vw,72px)}
.hero h1.one.jp10{font-size:clamp(34px,4.1vw,58px)}
html[lang="en"] .hero h1.one{font-size:clamp(40px,5vw,78px)}
.hero-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}
.hero-globe .cap{font-size:16px;letter-spacing:.12em}
.foot-brand .tag{font-size:19px;letter-spacing:.14em;color:var(--gold-soft);margin-top:12px;font-family:var(--display);font-weight:700}

/* full-bleed photo hero (cruise) */
.hero.photo{min-height:calc(100vh - 92px);max-height:900px;display:flex;align-items:flex-end;background:#061A36;color:#fff}
.hero.photo::before{display:none}
.hero.photo .bg{position:absolute;inset:0;background:url(cruise_hero.jpg) center 45%/cover no-repeat}
.hero.photo .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,26,54,.72) 0%,rgba(6,26,54,.38) 48%,rgba(6,26,54,.08) 100%),linear-gradient(180deg,rgba(6,26,54,0) 30%,rgba(6,26,54,.88) 100%)}
.hero.photo h1,.hero.photo .sub,.hero.photo .lead{text-shadow:0 2px 24px rgba(6,26,54,.55)}
.hero.photo .container{position:relative;z-index:2;padding-top:140px;padding-bottom:88px;width:100%}
.hero.photo h1{color:#fff}.hero.photo .sub{color:var(--gold-soft)}.hero.photo .lead{color:#E3E9F2;max-width:640px}.hero.photo .lead b{color:#fff;border-bottom-color:var(--gold-soft)}.hero.photo .crumb{color:rgba(255,255,255,.65)}.hero.photo .tag{border-color:rgba(230,205,138,.55);color:var(--gold-soft)}

/* split panels (two worlds) */
.split{display:grid;grid-template-columns:1fr 1fr;min-height:660px}
.panel{position:relative;padding:72px clamp(48px,6.5vw,124px);display:flex;flex-direction:column;justify-content:flex-end;color:#fff;overflow:hidden;min-height:680px}
.panel.navy{background:radial-gradient(circle at 72% 28%,rgba(230,205,138,.18),transparent 46%),#061A36}
.panel.navy .globe{position:absolute;right:-10%;top:-8%;width:58%;opacity:.8;filter:drop-shadow(0 30px 60px rgba(0,0,0,.55))}
.panel.photo{background:#0B2545}
.panel.photo .bg{position:absolute;inset:0;background:url(hero-ship.jpg) center 40%/cover no-repeat;transition:transform 1.2s ease}
.panel.photo:hover .bg{transform:scale(1.04)}
.panel.photo .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,42,64,.78) 0%,rgba(3,42,64,.55) 42%,rgba(3,42,64,.12) 72%,rgba(3,42,64,0) 100%),linear-gradient(180deg,rgba(3,42,64,0) 30%,rgba(3,42,64,.72) 100%)}
.panel.photo .in{text-shadow:0 1px 14px rgba(6,26,54,.6)}
.panel .in{position:relative;z-index:2;max-width:600px}
.panel .no{font-family:var(--serif);font-size:13px;letter-spacing:.36em;color:var(--gold-soft);font-weight:600;margin-bottom:18px}
.panel h2{color:#fff;font-size:clamp(28px,2.8vw,40px);margin-bottom:8px}
.panel .slogan{font-family:var(--display);color:var(--gold-soft);letter-spacing:.1em;font-size:15px;margin-bottom:18px;font-weight:600}
.panel p{color:#D5DEEC;font-size:15px;line-height:2;margin-bottom:18px}
.panel p b{color:#fff;font-weight:600}
.panel ul{margin-bottom:26px}.panel li{font-size:14px;color:#fff;padding:8px 0 8px 20px;border-bottom:1px solid rgba(255,255,255,.14);position:relative;line-height:1.7}.panel li::before{content:"";position:absolute;left:0;top:19px;width:10px;height:1px;background:var(--gold-soft)}
.panel .for{font-size:13px;letter-spacing:.16em;color:#9CA9BD;margin-bottom:16px;font-weight:700}
.panel .btn{padding:20px 38px;font-size:15.5px}

/* manifesto */
.manifesto{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}
.manifesto .m{padding-top:24px;border-top:1px solid var(--gold)}
.manifesto .word{font-family:var(--display);font-size:clamp(30px,3vw,44px);color:var(--navy);line-height:1.2;margin-bottom:16px;font-weight:700;letter-spacing:.04em}
.manifesto .word .em{color:var(--gold)}
.manifesto p{font-size:15px;line-height:2}
html[lang="en"] .manifesto .word{font-family:var(--serif);font-weight:600;font-size:clamp(34px,3.4vw,50px)}

/* scenes (editorial rows) */
.scene-row{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center;padding:48px 0;border-top:1px solid var(--line)}
.scene-row:first-child{border-top:0;padding-top:0}
.scene-row.flip .photo{order:2}
.scene-row .photo{aspect-ratio:16/10;overflow:hidden}
.scene-row .photo img{width:100%;height:100%;object-fit:cover;transition:transform .8s}
.scene-row:hover .photo img{transform:scale(1.03)}
.scene-row .no{font-family:var(--serif);font-size:15px;letter-spacing:.2em;color:var(--gold);font-weight:600;margin-bottom:12px}
.scene-row h3{font-size:clamp(24px,2.4vw,32px);margin-bottom:14px}
.scene-row p{font-size:15.5px;line-height:2.05;max-width:480px}

/* areas (services as a two-column list) */
.areas{display:grid;grid-template-columns:1fr 1fr;gap:0 56px;border-top:1px solid var(--line)}
.area{display:grid;grid-template-columns:72px 1fr;gap:20px;padding:30px 0;border-bottom:1px solid var(--line)}
.area .no{font-family:var(--serif);font-size:34px;color:var(--gold);line-height:1}
.area h3{font-size:20px;margin-bottom:8px}
.area p{font-size:14.5px;line-height:1.95;margin-bottom:8px}
.area .tags{font-size:12px;letter-spacing:.14em;color:#7d8aa0;font-weight:700}

@media(max-width:1100px){
  .hero-grid{grid-template-columns:1fr}
  .split{grid-template-columns:1fr}.panel{min-height:520px;padding:48px 32px}
  .manifesto{grid-template-columns:1fr;gap:28px}
  .scene-row{grid-template-columns:1fr;gap:24px;padding:36px 0}.scene-row.flip .photo{order:0}
  .areas{grid-template-columns:1fr}
}
@media(max-width:900px){
  .hero.photo{min-height:0}.hero.photo .container{padding-top:96px;padding-bottom:64px}
  .panel{padding:40px 24px;min-height:460px}.panel.navy .globe{width:70%;right:-15%;top:-8%;opacity:.5}
  .area{grid-template-columns:52px 1fr;gap:14px}.area .no{font-size:26px}
}

/* ---------- TOP: cruise panel uses the cruise sub-brand (rounded type, coral CTA) ---------- */
.panel.photo h2{font-family:'Zen Maru Gothic','Noto Sans JP',sans-serif;font-weight:900;letter-spacing:.02em;text-shadow:0 2px 20px rgba(3,42,64,.5)}
.panel.photo .slogan{font-family:'Klee One','Zen Maru Gothic',serif;color:#FFC98A;font-weight:600;letter-spacing:.06em}
.panel.photo .no{color:#FFC98A}
.panel.photo li::before{background:#FFC98A}
.panel.photo .btn{background:linear-gradient(135deg,#FF7A59,#FF9E6B);border-color:transparent;border-radius:999px;box-shadow:0 12px 26px rgba(255,122,89,.35)}
.panel.photo .btn:hover{background:linear-gradient(135deg,#FF6A45,#FF8E55);border-color:transparent;color:#fff}
.panel.navy .globe{right:-8%;top:-6%;width:56%;opacity:.85}
@media(max-width:1100px){.panel.navy .globe{width:60%;right:-14%;top:-8%;opacity:.55}}

/* ===================================================================== v30: line-break control + CTA emphasis */
h1,h2,h3,h4{text-wrap:balance;word-break:keep-all;overflow-wrap:anywhere}
.hero h1.one{white-space:nowrap}
body{text-wrap:pretty}
.hero h1.one{white-space:nowrap;text-wrap:nowrap}
.btn,.floating-cta,.header-cta,.nb{word-break:keep-all}
body{line-break:strict}

@media(max-width:480px){
  .header-cta{padding:11px 13px;font-size:12px;letter-spacing:.06em}
  .site-header .inner{gap:8px;padding:0 14px;height:66px}
  .mobile-nav{top:66px}
  .brand{gap:8px}.brand img{height:42px}.brand .en{font-size:15px;letter-spacing:.02em}.brand .jp{display:none}
  .lang{font-size:11px;gap:2px}.lang a{padding:2px 4px}
  .menu-toggle{width:40px}
}
@media(max-width:420px){.header-cta{display:none}}
@media(max-width:480px){html[lang="en"] .header-cta{display:none}}

/* ===================================================================== v31 */
@media(max-width:900px){.foot-logo{height:66px}.foot-lockup{gap:14px}}

.tags,.c-card .tags,.area .tags{word-break:keep-all}
@media(max-width:760px){html[lang="en"] .header-cta{display:none}}
@media(max-width:360px){
  h2{font-size:25px}.c-head h2{font-size:25px}
  .biz-body .slogan,.panel .slogan{font-size:13px;letter-spacing:.04em}
  .area .tags,.c-card .tags{font-size:12px;letter-spacing:.06em}
}
@media(max-width:340px){.brand img{height:36px}.brand .en{font-size:13.5px}.site-header .inner{padding:0 10px;gap:6px}}

/* ===================================================================== v33: English typography */
.nbd{display:inline-block}
br.d{display:inline}
@media(max-width:700px){.nbd{display:inline}br.d{display:none}}
html[lang="en"] .sec-head{grid-template-columns:1.5fr 1fr}
html[lang="en"] .cta-band{grid-template-columns:1.15fr 1fr}
html[lang="en"] .c-head{max-width:1000px}
html[lang="en"] .c-head p{max-width:840px;margin-left:auto;margin-right:auto}
html[lang="en"] .c-contact{grid-template-columns:1fr 1fr}
html[lang="en"] .timeline h3{font-size:20px}
html[lang="en"] .message h2{font-size:clamp(30px,2.5vw,36px)}
html[lang="en"] .foot-brand .tag{font-size:15px;letter-spacing:.1em}
html[lang="en"] .hero h1{font-size:clamp(38px,4.4vw,64px)}
html[lang="en"] .hero h1.one{font-size:clamp(40px,5vw,78px)}
@media(max-width:1100px){html[lang="en"] .sec-head,html[lang="en"] .cta-band,html[lang="en"] .c-contact{grid-template-columns:1fr}}
@media(max-width:480px){html[lang="en"] .hero h1{font-size:34px}}
@media(max-width:340px){html[lang="en"] .hero h1{font-size:31px}}

html[lang="en"] .cta-band h2{font-size:clamp(26px,3vw,48px)}
@media(max-width:360px){
  .area,.numbered li{grid-template-columns:1fr;gap:6px}
  .area .no{margin-bottom:4px}.numbered .no{font-size:28px}
  html[lang="en"] h2{font-size:28px}
  html[lang="en"] body.cruise .c-hero h1{font-size:32px}
  .c-incl-title{font-size:17px}.c-extra{padding:20px 18px 16px}
}
.c-incl-title{overflow-wrap:normal}.c-incl-title .t{flex:1;min-width:0}
@media(max-width:360px){.c-card h3{font-size:21px}}

.floating-cta{transition:background .2s,transform .2s,opacity .3s}
body:not(.scrolled) .floating-cta{opacity:0;pointer-events:none;transform:translateY(8px)}
