/* ESP LP 1.4.0: shared typography, spacing, and responsive visual system. */
/* refinement consumes lp.css tokens; keep aliases only if lp not loaded */
:root{
  --navy:var(--esp-navy, #084873);
  --navy-d:var(--esp-navy-d, #092d49);
  --blue:var(--esp-blue, #08749f);
  --blue-l:var(--esp-blue-l, #81b7cd);
  --text:var(--esp-text, #283d4b);
  --muted:var(--esp-muted, #536774);
  --line:var(--esp-line, #d8e3e9);
  --bg-alt:var(--esp-bg-alt, #f2f7fa);
}
html{scroll-padding-top:100px}
body{font-size:15px;line-height:1.95;text-rendering:optimizeLegibility}
::selection{background:#cbe5ef;color:#092d49}
.wrap{max-width:1280px;padding:0 48px}
/* ---- header shell (sitebar): separate framework from body section/card rhythm ---- */
.sitebar{padding:16px 0;border-bottom:1px solid rgba(21,66,89,.12);background:rgba(255,255,255,.95);box-shadow:0 4px 24px #143e5c05}
.sitebar .wrap{gap:20px;flex-wrap:nowrap}
.sitebar .orgs{font-size:11px;line-height:1.8;letter-spacing:0}
.sitebar .orgs .org-name{display:inline-block;white-space:nowrap;font:inherit;color:inherit;margin:0}
.sitebar .nav{flex-wrap:nowrap;flex-shrink:0;font-size:12px;gap:5px}
.sitebar .nav a{padding:9px 10px}
.sitebar .nav a[href*="apply"]{background:var(--navy-d);color:white;padding:10px 18px;border-radius:3px}
.hero{padding:52px 0 70px;text-align:left;min-height:0;border:0;background:#f7fafc}
.hero-bg{background-image:url('../img/hero/hero-refined.webp?v=1421-original');background-size:cover;background-position:center;opacity:1}
.hero-bg::before{content:"";position:absolute;inset:0;background:url('../img/hero/hero-tokyo-city.webp?v=1421-city') center/cover no-repeat;mask-image:radial-gradient(ellipse 21% 32% at 52% 62%,#000 50%,transparent 100%)}
.hero::before{background:linear-gradient(90deg,#fff9 0%,#ffffff66 47%,#ffffff00 72%)}
.hero::after{background:linear-gradient(0deg,#fff 0%,#ffffff88 6%,transparent 28%)}
.hero .wrap{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(340px,.85fr);column-gap:64px;align-items:start}
.hero .kicker{grid-column:1;justify-self:start;background:none;border-left:3px solid var(--blue);padding:0 0 0 12px;color:var(--navy);font-size:12px;font-weight:700;letter-spacing:.13em;margin:0 0 24px}
.hero h1.title{grid-column:1;font-size:36px;line-height:1.45;letter-spacing:.025em;margin:0 0 20px;color:var(--navy-d);font-weight:700}
.hero h1 .title-prefix{display:block;font-size:54px;letter-spacing:.035em;line-height:1.25;margin-bottom:8px}
.hero h1 .title-main{display:block;white-space:nowrap}
.hero h1 .title-mobile-break,.hero .rule{display:none}
.hero .statement{grid-column:1;justify-self:start;max-width:100%;padding:0;background:none;color:var(--navy);font-size:22px;line-height:1.85;font-weight:600;letter-spacing:.03em;margin:0 0 22px}
.hero .lead{grid-column:1;font-size:14px;line-height:2;color:#324c5b;max-width:none;margin:0;letter-spacing:.005em}
.hero .factbox{grid-column:2;grid-row:2 / span 4;align-self:center;margin:0;padding:18px 28px 14px;background:rgba(255,255,255,.95);backdrop-filter:blur(12px);border:1px solid #fff;border-top:3px solid var(--navy);border-radius:4px;box-shadow:0 18px 65px #183e611c}
.factbox .row{grid-template-columns:48px 1fr;gap:16px;padding:18px 0}
.factbox dt{font-size:11px;letter-spacing:.08em;padding-top:2px}
.factbox dd{font-size:14px;font-weight:600;line-height:1.75}
.factbox dd small{font-size:11px;line-height:1.7;font-weight:400;color:#526b7b}
.factbox .row:last-child dd{font-size:17px;color:var(--navy-d);letter-spacing:0}
.hero .cta-row{grid-column:1;justify-content:flex-start;margin-top:28px;gap:12px}
.btn{min-height:54px;padding:15px 28px;font-size:14px;letter-spacing:.04em;border-radius:3px;box-shadow:none;gap:24px}
.btn-primary{background:var(--navy);border-color:var(--navy);box-shadow:0 6px 16px #07457116}
.btn-primary:after{content:'↗';font-size:17px;font-weight:400}
.btn-primary:hover{background:var(--navy-d);border-color:var(--navy-d);box-shadow:0 8px 24px #07457120}
.btn-ghost{background:#ffffffbb;border-color:#6d8a9c;color:var(--navy-d)}
section{padding:96px 0;scroll-margin-top:0}
.shead{text-align:left;margin-bottom:44px;padding-bottom:26px;border-bottom:1px solid var(--line);position:relative}
.shead h2{font-size:32px;line-height:1.5;color:var(--navy-d);letter-spacing:.035em}
.shead h2::after{position:absolute;bottom:-1px;left:0;width:var(--heading-bar-w, 64px);height:var(--heading-bar-h, 3px);margin:0;background:var(--blue)}
.shead .sub{font-size:14px;max-width:none;margin:14px 0 0;color:var(--muted);line-height:1.9}
.two,.four{gap:28px;align-items:stretch}
.card{padding:32px;border:1px solid var(--line);border-radius:var(--radius, 6px);box-shadow:var(--shadow-soft)}
.card h3{font-size:19px;line-height:1.6;margin-bottom:22px;color:var(--navy-d)}
.card h3::before{content:none}
.card--icon h3{gap:14px;margin-bottom:22px}
.card-icon{width:30px;height:30px;color:var(--blue)}
.card .grouplbl{font-size:12px;color:var(--navy);margin:23px 0 9px}
.card li{font-size:14px;line-height:1.95;padding:6px 0 6px 16px}
.card li::before{width:4px;height:4px;border-radius:50%;top:18px;background:#6d9fb2}
.card p{font-size:14px;line-height:2;color:var(--text)}
#why{padding-top:76px}
#why .two .card:first-child{background:#f5f9fb;border-color:#e0ebf1}
#why .two .card:last-child{background:#fff;border-top:3px solid var(--navy)}
.closing{max-width:100%;padding:34px 48px;margin-top:28px;font-size:23px;line-height:1.9;color:var(--navy-d);background:linear-gradient(110deg,#eff6fa,#f8fbfd);border-left:3px solid var(--blue);text-align:left;font-weight:600}
#design{background:#f0f6f9}
.design-diagram{max-width:940px;margin-bottom:26px;gap:15px}
.design-diagram__step{background:#fff;border:1px solid #d6e5ed;box-shadow:0 8px 24px #244d6706;padding:28px 20px;border-radius:3px}
.design-diagram__label{font-size:19px;color:var(--navy-d)}
.design-diagram__sub{font-size:13px}
.design-diagram__n{background:var(--navy);border-radius:50%}
.design-diagram__note{margin-bottom:38px;font-size:14px}
#design .four .card{border:0;border-top:1px solid #9bbfce;background:transparent;border-radius:0;padding:26px 12px 12px 0}
.curric-legend{justify-content:flex-start;gap:20px;margin-bottom:28px}
table.curric{border:1px solid var(--line)}
table.curric th{background:var(--navy-d);font-size:12px;padding:17px 20px}
table.curric td{padding:19px 20px;border-left:0;border-right:0;line-height:1.8}
table.curric td.band{background:#eaf2f7;border-right:1px solid #cfdee8;font-size:14px;width:190px}
table.curric td.no{font-size:13px;width:82px}
table.curric td.date{font-size:13px;color:#425f72;width:175px}
table.curric td.theme{font-size:15px;color:var(--navy-d)}
.tnote{font-size:12px;line-height:1.9;margin-top:20px}
#flow{background:#f4f8fa}
.flow-timeline{max-width:960px;margin-bottom:42px;padding:10px}
.flow-timeline__time{font-size:26px;font-variant-numeric:tabular-nums}
.flow3{gap:0;background:#fff;border:1px solid var(--line);border-radius:4px;overflow:hidden}
.flow3 .card{background:none;border:0;border-right:1px solid var(--line);border-radius:0;padding:34px 30px}
.flow3 .card:last-child{border:0}
.flow3 .fl{font-size:21px;color:var(--navy-d)}
.flow3 .fl::before{content:none}
.spk{gap:26px}
.spk-card,.spk .card{padding:0;border:0;border-bottom:1px solid #b7cbd8;border-radius:0;box-shadow:none}
.spk-card:hover,.spk .card:hover{box-shadow:none;transform:none;border-color:var(--navy)}
.spk-photo{border:0;border-radius:0;margin:0;aspect-ratio:4/5}
.spk .org{min-height:4.3em;font-size:11px;line-height:1.75;display:block;overflow:visible;border:0;padding:0;margin-bottom:12px}
.spk .name{font-size:24px;line-height:1.5;letter-spacing:.06em;color:var(--navy-d);margin-bottom:8px}
.spk .ttl{font-size:11px;line-height:1.8;min-height:3.6em;display:block;overflow:visible}
.spk .bio{font-size:13px;line-height:2;padding-top:16px;border-top:1px solid var(--line)}
.spk .ttl.is-placeholder,.spk .bio.is-placeholder{color:#627584}
.guest{margin-top:38px;padding:28px 32px;border:0;border-left:3px solid #a2c6d8;background:#f2f7fa;gap:32px;border-radius:0}
.guest .gl span::before{content:none}
.guest .gl strong{font-size:23px}
.guest p{font-size:14px}
#audience{background:#f4f8fa}
#audience .card{background:transparent;border:0;padding:16px 24px 12px 0}
#audience .two .card+.card{border-left:1px solid #cddde5;padding-left:36px}
.ol-grid{grid-template-columns:1.5fr 1fr;gap:56px}
.ol-row{grid-template-columns:85px 1fr;padding:18px 0;gap:20px}
.ol-row dt{font-size:12px}.ol-row dd{font-size:14px}
.price{background:var(--navy-d);color:white;border:0;border-radius:4px;padding:38px 30px;box-shadow:0 18px 40px #0c355017}
.price .lbl{color:#d3e9f3;font-size:13px}
.price .card-icon{color:#a5d1e5}
.price .amt{color:white;font-size:40px;letter-spacing:0;margin:20px 0 25px;font-variant-numeric:tabular-nums;line-height:1.5}
.price ul{border-color:#ffffff38}.price li{color:#edf5f9;border-color:#ffffff24;font-size:13px;line-height:1.9;padding-top:14px;padding-bottom:14px}.price li::before{top:23px}
#apply{background:#f2f7fa}
.steps{gap:24px}
.steps .card{position:relative;text-align:left;padding:28px 24px;border:0;border-top:1px solid #aac6d5;border-radius:0;background:transparent}
.steps .n{background:none;color:var(--navy);font-size:34px;line-height:1;width:auto;height:auto;margin-bottom:24px;font-weight:400;font-variant-numeric:tabular-nums}
.step-icon{color:#739db1;margin:0 0 18px}
.steps .card p{font-size:14px;line-height:1.95}
.contact{margin-top:48px;background:#fff;border:1px solid var(--line);border-top:2px solid var(--navy);box-shadow:none;padding:32px}
.contact__org{font-size:18px;line-height:1.7;margin:4px 0 8px}
.contact__orgs{font-size:11px;color:#536b7c;margin-bottom:22px}
.contact__channel-val .is-pending{color:#617987}
.contact__notes{padding-top:20px;margin-top:24px;font-size:12px}
.site-footer{background:linear-gradient(180deg,#f2f7fa 0px,#c4d4e0 14px,#7293ad 32px,#304f6b 52px,transparent 86px),radial-gradient(ellipse at 28% 0%,#174c70 0%,#0b2b48 42%,#030e1c 100%);padding:94px 0 36px;border-top:0}
.site-footer__brand{font-size:16px;color:#fff}
.site-footer__orgs{color:#c3d7e4;line-height:2}
.site-footer__copy{color:#a8c0d0;border-color:#ffffff25}
.apply-page{background:linear-gradient(135deg,#f0f6fa,#fafcfd 65%);padding:64px 0 88px}
.apply-page__wrap{max-width:880px}
.apply-page__kicker{color:var(--navy);background:none;border-left:3px solid var(--blue);padding:0 0 0 12px;font-size:12px;font-weight:700}
.apply-page__title{font-size:38px;color:var(--navy-d);letter-spacing:.04em}
.apply-meta{border:1px solid var(--line);border-left:3px solid var(--blue);box-shadow:none;padding:24px 28px;border-radius:3px}
.apply-meta dd{font-weight:600;color:var(--navy-d)}
.apply-meta__note{font-size:12px;line-height:1.95}
.apply-card,.apply-form{border-radius:5px;box-shadow:0 12px 45px #123a5410;border-color:#d8e5ed}
.apply-form{padding:40px;border-top:3px solid var(--navy)}
.apply-field{margin-bottom:26px}.apply-field label{font-size:14px}
.apply-field input[type="text"],.apply-field input[type="email"],.apply-field input[type="tel"],.apply-field textarea{background:#fbfdfe;border-radius:3px;min-height:52px;font-size:16px;padding:12px 14px}
.apply-field textarea{min-height:120px}
.apply-field label.apply-consent{display:flex;align-items:flex-start;gap:12px}
.apply-actions .btn-primary:after{content:none}
.apply-actions{margin-top:30px}
.apply-submit{min-height:56px;min-width:min(100%,320px)}
.apply-field .req,.apply-field .opt{border-radius:2px}
.sitebar .nav a{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
.admin-bar .sitebar{top:32px}
@media(max-width:782px){.admin-bar .sitebar{top:46px}}
@media(max-width:600px){.admin-bar .sitebar{top:0}.admin-bar .hero,.admin-bar .apply-page{margin-top:0}}
/* Content remains visible even if a tall section cannot meet the old reveal threshold. */
.has-reveal .reveal{opacity:1;transform:none}
@media(min-width:1600px){.hero{padding-top:74px;padding-bottom:90px}.hero-bg{background-position:center 58%}}
@media(max-width:1100px){.wrap{padding:0 32px}.sitebar .wrap{flex-wrap:wrap;justify-content:center;gap:8px}.sitebar .orgs{text-align:center}.hero .wrap{column-gap:32px;grid-template-columns:minmax(0,1.2fr) minmax(310px,.85fr)}.hero h1 .title-prefix{font-size:44px}.hero h1.title{font-size:29px}.hero .statement{font-size:20px}.hero .factbox{padding:16px 22px}.hero .btn{padding:14px 20px;font-size:13px}.ol-grid{gap:32px}.price .amt{font-size:34px}.spk{gap:28px}}
@media(max-width:820px){html{scroll-padding-top:140px}.hero{padding:40px 0 54px}.hero .wrap{display:flex;flex-direction:column}.hero-bg{background-position:65% top;background-size:auto 640px;background-repeat:no-repeat}.hero::before{background:linear-gradient(90deg,#fffffff2,#ffffff88)}.hero::after{background:linear-gradient(0deg,#fff 25%,transparent 65%)}.hero h1 .title-prefix{font-size:46px}.hero h1.title{font-size:34px}.hero .statement{max-width:600px;font-size:22px}.hero .lead{max-width:640px;font-size:14px}.hero .factbox{order:5;width:100%;max-width:none;margin-top:28px;padding:10px 24px;backdrop-filter:none;background:#ffffffed}.hero .cta-row{order:6;width:100%;margin-top:24px}.factbox .row{padding:13px 0;grid-template-columns:64px 1fr}.factbox dd{font-size:14px}.factbox dd small{font-size:12px}section{padding:68px 0}.shead h2{font-size:28px}.shead{margin-bottom:32px}.closing{font-size:21px;padding:28px 30px}.design-diagram{gap:0}.design-diagram__step{width:100%}.ol-grid{grid-template-columns:1fr}.price{max-width:none}.three{grid-template-columns:1fr}.flow3 .card{border:0;border-bottom:1px solid var(--line)}#audience .two .card+.card{border-left:0;border-top:1px solid var(--line);padding:28px 0 0}#audience .card{padding:0}.steps{gap:18px}.guest{gap:20px}}
@media(max-width:760px){table.curric{border:0}table.curric tr{border:1px solid var(--line);padding:18px 20px;border-radius:3px;box-shadow:none;margin-bottom:12px}table.curric td{padding:3px 0;border:0}table.curric td.band{display:block;width:auto;border:0;padding:8px 12px;margin:-18px -20px 16px;text-align:left;font-size:13px}table.curric td.no,table.curric td.date{display:inline-block;width:auto;font-size:13px;padding:0;margin-bottom:6px}table.curric td.theme{font-size:15px;line-height:1.8}table.curric tbody tr:nth-child(even) td:not(.band){background:transparent}.curric-legend{gap:12px 20px;font-size:12px}}
@media(max-width:600px){.wrap{padding:0 22px}.sitebar{padding:10px 0}.sitebar .orgs{font-size:9px;line-height:1.65;max-width:36em}.sitebar .nav{gap:0;justify-content:center;width:100%}.sitebar .nav a{font-size:10px;padding:8px}.sitebar .nav a[href*="apply"]{padding:9px 12px;margin-left:3px}.hero{padding:34px 0 46px}.hero .kicker{font-size:10px;letter-spacing:.1em;margin-bottom:22px}.hero h1.title{font-size:25px;margin-bottom:20px;letter-spacing:.005em}.hero h1 .title-prefix{font-size:35px;letter-spacing:.025em;margin-bottom:8px}.hero h1 .title-main{white-space:normal}.hero .statement{font-size:18px;line-height:1.85;text-wrap:pretty;letter-spacing:0;margin-bottom:20px}.hero .lead{font-size:13px;line-height:2;letter-spacing:0}.hero .factbox{padding:6px 18px;margin-top:24px}.factbox .row{grid-template-columns:42px 1fr;gap:13px;padding:12px 0}.factbox dd{font-size:12px}.factbox dd small{font-size:10px}.factbox .row:last-child dd{font-size:15px}.hero .cta-row{gap:10px;margin-top:20px}.btn,.hero .btn{font-size:13px;min-height:52px;padding:14px 22px}.hero .btn{justify-content:center}.shead{padding-bottom:22px;margin-bottom:26px}.shead h2{font-size:24px;letter-spacing:.015em}.shead .sub{font-size:13px}.card{padding:24px}.card h3{font-size:18px}.card li,.card p{font-size:13px}.two,.four{gap:18px}#why{padding-top:48px}.closing{font-size:19px;padding:24px 22px}.design-diagram__step{padding:22px}.design-diagram__note{font-size:12px;line-height:1.9}.spk{grid-template-columns:1fr;gap:36px}.spk-photo{width:100%;aspect-ratio:4/5;margin:0;border-radius:0}.spk-card,.spk .card.spk-card{padding:0}.spk-body{padding:18px 18px 22px}.spk .org{min-height:0;font-size:12px;line-height:1.9}.spk .ttl{font-size:12px;min-height:0}.spk .name{font-size:25px}.spk .bio{font-size:13px}.guest{padding:24px;grid-template-columns:1fr}.guest p{font-size:13px}.ol-row{grid-template-columns:58px 1fr;gap:14px}.ol-row dd{font-size:13px}.ol-row dd small{font-size:11px}.price{padding:30px 24px}.price .amt{font-size:36px}.steps .card{padding:20px 0}.steps .card p{font-size:12px}.steps .n{font-size:30px}.contact{padding:26px 18px}.contact__org{font-size:15px}.contact__orgs{font-size:10px}.contact__notes{font-size:11px}.site-footer{padding:32px 0 24px}.apply-form{padding:26px 20px}.apply-card{padding:26px 20px}.apply-hero{padding:40px 0}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.btn:hover{transform:none}}
@media(max-width:600px){.site-footer{padding:88px 0 30px}}
/* One viewport-fixed canvas, shared continuously by all body sections. */
body{isolation:isolate;background-color:#fff}
body::before{
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:url('../img/background/wallpaper-flow.webp') center/cover no-repeat;
  opacity:.62;
}
/* Reading surfaces follow content density, not an alternating colour stripe. */
section:is(#why,#design,#curriculum,#flow,#speakers,#audience,#outline,#apply,#cta-mid){border:0}
/* Shared section vertical rhythm — why-v3d overrides #why padding to 0 (its own wrap pad) */
#why{background:rgba(255,255,255,.76);padding:0}
#design{background:rgba(250,249,247,.86);padding:var(--section-pad-y, 84px) 0}
#curriculum{background:transparent;padding:var(--section-pad-y, 84px) 0}
#flow{background:transparent;padding:var(--section-pad-y, 84px) 0}
#speakers{background:rgba(255,255,255,.90);padding:var(--section-pad-y, 84px) 0}
#audience{background:rgba(250,249,247,.85);padding:var(--section-pad-y, 84px) 0}
#outline{background:transparent;padding:var(--section-pad-y, 84px) 0}
#apply{background:transparent;padding:var(--section-pad-y, 84px) 0 72px}
.apply-page{background:rgba(255,255,255,.55);border:0}
/* Quiet local panels, while blue remains a navigational and emphasis colour. */
#why .two .card:first-child{background:rgba(250,250,248,.92);border-color:#e2e4e3}
.closing{background:linear-gradient(110deg,rgba(245,247,247,.94),rgba(255,255,255,.78))}
.guest{background:rgba(248,249,248,.94)}
#apply .steps .card{border-top-color:#b7c4ca}
#apply .contact{background:rgba(255,255,255,.92);border-color:#dce2e5;border-top-color:var(--navy)}
.site-footer{background:linear-gradient(180deg,rgba(242,247,250,0) 0px,rgba(196,212,224,.65) 16px,#7293ad 36px,#244c69 64px,#0b2b48 110px,#030e1c 100%)}
@media(max-width:820px){section:is(#design,#curriculum,#flow,#speakers,#audience,#outline,#apply,#cta-mid){padding-top:var(--section-pad-y-md, 64px);padding-bottom:var(--section-pad-y-md, 64px)}}
@media(max-width:600px){section:is(#design,#curriculum,#flow,#speakers,#audience,#outline,#apply,#cta-mid){padding-top:var(--section-pad-y-sm, 52px);padding-bottom:var(--section-pad-y-sm, 52px)}}
#design .card p,#audience .card p{font-size:15px;line-height:1.95}
.contact__org{text-wrap:balance}
.price-icon{color:#a5d1e5}
@media(max-width:600px){#design .card p,#audience .card p{font-size:14px}.card p,.card li{font-size:14px}.steps .card p{font-size:14px;line-height:1.9}.contact__notes{font-size:12px}}
@media(max-width:600px){body::before{height:100lvh;background-position:80% center;opacity:.36}}
@media print{body::before{display:none!important}}
@media print{.sitebar,.cta-row,.review-nav{display:none!important}.hero-bg{display:none}.hero .wrap{display:block}.hero .factbox{margin-top:20px}section{break-inside:avoid;padding:24px 0}.has-reveal .reveal{opacity:1}.price{background:white;color:black}.price *{color:black!important}}

/* v1.4.9 speaker cards: refinement must not defeat lp.css full-bleed 4:5 */
.spk .card.spk-card,
.spk-card.card{padding:0;overflow:hidden}
.spk .card.spk-card .spk-photo,
.spk-card .spk-photo{width:100%;aspect-ratio:4/5;margin:0;border:0;border-radius:0}
@media(max-width:600px){
  .spk .card.spk-card .spk-photo,
  .spk-card .spk-photo{aspect-ratio:4/5;margin:0;border-radius:0}
}

/* v1.4.10: balanced overview cards and a softly illuminated fee panel. */
#outline .ol-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;align-items:stretch}
#outline .ol-grid>.card{min-width:0;padding:30px;border-radius:8px}
#outline .ol-row{grid-template-columns:78px minmax(0,1fr);gap:16px}
#outline .price{
  position:relative;isolation:isolate;overflow:hidden;min-width:0;max-width:none;
  display:flex;flex-direction:column;justify-content:center;align-items:stretch;
  padding:44px 38px;border:1px solid rgba(181,220,240,.35);border-radius:8px;
  background:
    radial-gradient(ellipse at 100% 0%,rgba(98,176,201,.38),transparent 60%),
    radial-gradient(ellipse at 0% 100%,rgba(19,114,147,.30),transparent 65%),
    linear-gradient(145deg,#174f70 0%,#103d5b 43%,#071c34 100%);
  box-shadow:0 22px 48px rgba(16,53,78,.16),inset 0 1px 0 rgba(226,247,255,.22);
}
#outline .price::before{
  content:"";position:absolute;z-index:-1;pointer-events:none;
  width:150%;height:85%;left:4%;top:-35%;border-radius:50%;transform:rotate(-28deg);
  border:1px solid rgba(213,242,255,.12);
  background:linear-gradient(155deg,rgba(194,235,248,.09),transparent 65%);
  box-shadow:0 30px 0 rgba(194,235,248,.025),0 62px 0 rgba(194,235,248,.015);
}
#outline .price-icon{
  display:grid;place-items:center;align-self:center;width:60px;height:60px;
  margin:0 0 22px;border:1px solid rgba(207,238,251,.30);border-radius:50%;
  color:#d2edf6;background:linear-gradient(145deg,#ffffff14,#ffffff04);
  box-shadow:inset 0 1px 0 #ffffff18;
}
#outline .price-icon svg{width:30px;height:30px}
#outline .price .lbl{color:#dceef5;font-size:14px;letter-spacing:.06em}
#outline .price .amt{color:#fff;font-size:clamp(42px,4.1vw,58px);line-height:1.25;margin:24px 0 34px;letter-spacing:-.025em;white-space:nowrap;text-shadow:0 2px 18px #03192b30}
#outline .price .amt small{display:inline-block;font-size:14px;letter-spacing:0;font-weight:600;white-space:nowrap}
#outline .price ul{border-color:#d8edf440}
#outline .price li{color:#f0f6fa;padding:19px 0 19px 20px;border-color:#d8edf426;font-size:14px;line-height:1.9}
#outline .price li::before{top:30px;width:5px;height:5px;border-radius:50%;background:#acd8e6;box-shadow:0 0 0 3px #bce4f00d}
@media(max-width:980px){#outline .ol-grid{grid-template-columns:minmax(0,1fr);gap:24px}#outline .price{padding:40px;min-height:0}}
@media(max-width:600px){
  #outline .ol-grid>.card{padding:24px 20px}
  #outline .ol-row{grid-template-columns:58px minmax(0,1fr);gap:14px;padding:16px 0}
  #outline .price{padding:32px 24px}
  #outline .price-icon{width:52px;height:52px;margin-bottom:18px}
  #outline .price .lbl{font-size:12px;letter-spacing:.02em}
  #outline .price .amt{font-size:clamp(32px,9vw,42px);margin:22px 0 28px}
  #outline .price .amt small{font-size:12px}
  #outline .price li{font-size:13px;padding-top:16px;padding-bottom:16px}
  #outline .price li::before{top:27px}
}
@media print{#outline .price{background:#fff;color:#000;box-shadow:none;border:1px solid #aaa}#outline .price::before{display:none}}

/* v1.4.13: small editorial photographs showing procedural progression. */
#apply .shead{margin-bottom:30px;padding-bottom:0;border-bottom:0}
#apply .shead h2{margin:0}
#apply .shead h2::after{display:none}
#apply .steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin-bottom:12px}
#apply .steps .card{
  --step-accent:#376b95;--step-ink:#315f86;
  position:relative;min-width:0;display:flex;flex-direction:column;text-align:left;
  padding:20px 24px 28px;border:1px solid #d5e2e9;border-radius:0;
  background:linear-gradient(155deg,#fff 45%,#f3f8fa 100%);
  box-shadow:0 12px 28px #183e5a0b,0 2px 5px #183e5a04;
}
#apply .steps .card::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,var(--step-accent),#d7e3e6);border-radius:0}
#apply .steps .card:not(:last-child)::after{content:"";position:absolute;z-index:1;right:-17px;top:70px;width:8px;height:8px;border-top:1.5px solid #6b96ab;border-right:1.5px solid #6b96ab;transform:rotate(45deg)}
#apply .step-visual{display:flex;align-items:center;gap:16px;min-width:0;height:104px;margin-bottom:24px}
#apply .steps .n{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;margin:0;color:var(--step-ink);font-size:32px;font-weight:400;line-height:1;border-radius:0;background:transparent;box-shadow:none}
#apply .step-art{display:block;min-width:0;width:calc(100% - 52px);height:104px;object-fit:cover;margin:0}
#apply .steps h3{margin:0 0 12px;font-size:18px;line-height:1.6;letter-spacing:.025em;color:#123c55}
#apply .steps .card p{margin:0;font-size:14px;line-height:1.95;color:#435b69}
#apply .steps .card:nth-child(2){--step-accent:#397f86;--step-ink:#326f75}
#apply .steps .card:nth-child(3){--step-accent:#aa8551;--step-ink:#806039}
#apply .steps .card:last-child{--step-accent:#4e806a;--step-ink:#426d59;border-color:#c6d7cd;background:linear-gradient(145deg,#fff 35%,#f0f5f1 100%)}
@media(max-width:1100px) and (min-width:821px){#apply .steps{gap:20px}#apply .steps .card{padding:14px 18px 24px}#apply .steps .card:not(:last-child)::after{right:-14px}#apply .steps h3{font-size:16px}#apply .step-visual{gap:12px;height:92px}#apply .step-art{width:calc(100% - 48px);height:92px}}
@media(max-width:820px) and (min-width:601px){#apply .steps{grid-template-columns:repeat(2,minmax(0,1fr))}#apply .steps .card:nth-child(2)::after{display:none}}
@media(max-width:600px){
  #apply .shead{margin-bottom:24px}
  #apply .steps{grid-template-columns:minmax(0,1fr);gap:20px;margin-bottom:12px}
  #apply .steps .card{display:grid;grid-template-columns:minmax(0,1fr) 112px;grid-template-rows:40px auto auto;column-gap:12px;padding:22px 22px 24px}
  #apply .step-visual{display:contents}
  #apply .steps .n{grid-column:1;grid-row:1;width:32px;height:32px;font-size:28px}
  #apply .step-art{grid-column:2;grid-row:1/3;align-self:center;width:112px;height:76px;margin:0 0 8px}
  #apply .steps h3{grid-column:1;grid-row:2;align-self:center;font-size:17px;margin:10px 0 18px;letter-spacing:0}
  #apply .steps .card p{grid-column:1/-1;grid-row:3;font-size:14px;line-height:1.85}
  #apply .steps .card:not(:last-child)::after{right:auto;left:34px;top:auto;bottom:-14px;transform:rotate(135deg)}
}
@media(max-width:360px){#apply .steps .card{grid-template-columns:minmax(0,1fr) 88px;padding:20px 18px;column-gap:8px}#apply .step-art{width:88px;height:64px}#apply .steps h3{font-size:16px}#apply .steps .card:not(:last-child)::after{left:30px}}
@media print{#apply .steps .card{box-shadow:none;background:white}#apply .steps .n{background:white;color:black;border:1px solid #777}}

#apply .steps-image-note{margin:0 0 28px;text-align:right;font-size:11px;line-height:1.6;color:#627784}

/* v1.4.14: compact fact groups with a clear label / value / note hierarchy. */
.hero .factbox{align-self:start;padding:14px 24px 12px;border-radius:0;background:rgba(255,255,255,.97)}
.hero .factbox .row{grid-template-columns:42px minmax(0,1fr);gap:14px;padding:13px 0;align-items:baseline}
.hero .factbox dt{padding:0;font-size:11px;line-height:1.65;font-weight:500;letter-spacing:.04em;color:#536c7b}
.hero .factbox dd{min-width:0;margin:0;font-size:14px;line-height:1.65;font-weight:500;letter-spacing:0;color:#203d50;font-variant-numeric:tabular-nums}
.hero .factbox dd small{display:block;margin-top:3px;font-size:11px;line-height:1.55;font-weight:400;color:#607581;letter-spacing:0}
.hero .factbox .row:first-child dd{font-weight:700}
.hero .factbox .row:last-child{padding-top:15px;padding-bottom:10px}
.hero .factbox .row:last-child dd{font-size:17px;font-weight:700;line-height:1.5;color:#092d49}
.hero .factbox .row:last-child dd small{font-weight:400}
@media(max-width:1100px){.hero .factbox{padding:12px 20px}.hero .factbox .row{grid-template-columns:38px minmax(0,1fr);gap:12px}.hero .factbox dd{font-size:13px}.hero .factbox .row:last-child dd{font-size:16px}}
@media(max-width:820px){.hero .factbox{margin-top:28px;padding:12px 24px}.hero .factbox .row{grid-template-columns:48px minmax(0,1fr);padding:12px 0}.hero .factbox dd{font-size:14px}.hero .factbox dd small{font-size:12px}}
@media(max-width:600px){.hero .factbox{margin-top:24px;padding:10px 18px}.hero .factbox .row{grid-template-columns:36px minmax(0,1fr);gap:12px;padding:11px 0}.hero .factbox dt{font-size:11px}.hero .factbox dd{font-size:13px;line-height:1.6}.hero .factbox dd small{font-size:11px;line-height:1.55;margin-top:3px}.hero .factbox .row:last-child dd{font-size:15px}}
.hero .factbox .fact-note-part{display:inline-block;max-width:100%}

/* v1.4.22: the hero information frame rises into place, then responds to hover. */
@keyframes espFactboxRise{
  from{opacity:.4;transform:translate3d(0,28px,0) scale(.985);box-shadow:0 3px 12px rgba(24,62,97,.06)}
  to{opacity:1;transform:translate3d(0,0,0) scale(1);box-shadow:0 18px 65px rgba(24,62,97,.11)}
}
@keyframes espFactboxRiseReduced{
  from{opacity:.75;transform:translate3d(0,12px,0);box-shadow:0 6px 20px rgba(24,62,97,.07)}
  to{opacity:1;transform:translate3d(0,0,0);box-shadow:0 18px 65px rgba(24,62,97,.11)}
}
.hero .factbox{
  animation:espFactboxRise 1050ms cubic-bezier(.16,1,.3,1) 120ms backwards;
  transition:transform 650ms cubic-bezier(.16,1,.3,1),box-shadow 650ms cubic-bezier(.16,1,.3,1);
}
@media(hover:hover) and (pointer:fine){
  .hero .factbox:hover{transform:translate3d(0,-9px,0);box-shadow:0 30px 78px rgba(24,62,97,.22),0 6px 18px rgba(24,62,97,.09)}
}
@media(prefers-reduced-motion:reduce){
  .hero .factbox{animation:espFactboxRiseReduced 700ms ease-out 100ms backwards;transition:transform 400ms ease-out,box-shadow 400ms ease-out}
  .hero .factbox:hover{transform:translate3d(0,-4px,0)}
}

/* v1.4.17: continuous scroll feedback and deliberate, reversible button lift. */
.sitebar[data-esp-scroll]::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;pointer-events:none;transform-origin:left;transform:scaleX(var(--reading-progress,0));background:linear-gradient(90deg,#0d4366,#7eaebf)}
.btn,.sitebar .nav a:last-child{
  --button-lift:-5px;
  position:relative;isolation:isolate;overflow:hidden;
  transition:transform .65s cubic-bezier(.16,1,.3,1),box-shadow .65s cubic-bezier(.16,1,.3,1),background-color .45s,border-color .45s,color .45s;
}
.btn::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 10%,rgba(255,255,255,.24) 50%,transparent 90%);transform:translateX(-125%);opacity:0;transition:transform .9s cubic-bezier(.22,1,.36,1),opacity .5s}
.btn-primary::after{display:inline-block;transition:transform .65s cubic-bezier(.16,1,.3,1)}
@media(hover:hover) and (pointer:fine){
  .btn:hover,.sitebar .nav a:last-child:hover{transform:translateY(var(--button-lift));box-shadow:0 15px 30px rgba(9,45,73,.22),0 4px 8px rgba(9,45,73,.10)}
  .btn:hover::before{opacity:1;transform:translateX(125%)}
  .btn-primary:hover::after{transform:translate(3px,-3px)}
}
.btn:focus-visible,.sitebar .nav a:last-child:focus-visible{outline:2px solid #4385a3;outline-offset:4px;transform:translateY(var(--button-lift));box-shadow:0 15px 30px rgba(9,45,73,.22),0 4px 8px rgba(9,45,73,.10)}
.btn:active,.sitebar .nav a:last-child:active{transform:translateY(-1px);box-shadow:0 4px 9px rgba(9,45,73,.18);transition-duration:.15s}
@media(prefers-reduced-motion:reduce){
  .btn,.sitebar .nav a:last-child{--button-lift:-2px;transition:transform .5s ease,box-shadow .5s ease,background-color .3s,border-color .3s,color .3s}
  .btn::before{transform:none!important;transition:opacity .5s;background:linear-gradient(115deg,transparent,rgba(255,255,255,.12),transparent)}
  .btn-primary::after{transform:none!important;transition:none}
}
@media print{.sitebar[data-esp-scroll]::after,.btn::before{display:none}}

/* v1.4.18: quiet line symbols and a unified purpose-specific request form. */
#apply .step-visual{height:68px;justify-content:space-between;align-items:center;margin-bottom:24px}
#apply .steps .n{width:auto;flex:0 0 auto;font-size:27px;font-weight:400;letter-spacing:-.02em}
#apply .step-symbol{display:block;width:58px;height:58px;flex:0 0 58px;color:var(--step-ink);margin-right:2px}
@media(max-width:1100px) and (min-width:821px){#apply .step-symbol{width:52px;height:52px;flex-basis:52px}}
@media(max-width:600px){
 #apply .steps .card{grid-template-columns:minmax(0,1fr) 62px;grid-template-rows:32px auto auto}
 #apply .step-visual{display:contents}
 #apply .step-symbol{grid-column:2;grid-row:1/3;align-self:center;width:54px;height:54px;margin:0 0 12px;justify-self:end}
 #apply .steps .n{font-size:25px;justify-content:start}
 #apply .steps h3{margin:10px 0 14px}
}
.apply-form [hidden]{display:none!important}
.request-selector{border:0;padding:0;margin:0 0 22px;min-width:0}
.request-selector legend{font-size:15px;font-weight:700;color:#123c55;padding:0;margin:0 0 14px}
.request-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.request-option{display:flex;align-items:center;gap:9px;padding:17px 12px;min-width:0;border:1px solid #cedce5;background:#fafcfd;cursor:pointer;color:#49606e;font-size:14px;font-weight:600;line-height:1.6;transition:background-color .2s,border-color .2s,box-shadow .2s}
.request-option input{width:16px;height:16px;flex:0 0 16px;margin:0;accent-color:#12506f}
.request-option:has(input:checked){border-color:#1a5776;background:#eef5f8;color:#0a3551;box-shadow:inset 0 2px 0 #1a5776}
.request-option:focus-within{outline:2px solid #5284a0;outline-offset:3px}
.request-intro{margin:0 0 28px;padding-bottom:24px;border-bottom:1px solid #dbe5eb;font-size:14px;line-height:1.9;color:#476170}
.request-intro p{margin:0}
.request-intro .request-nonbinding{margin-top:8px;font-size:12px;color:#526b79}
.request-success-note{margin-top:16px!important}
.apply-field__hint{font-size:12px;line-height:1.7;margin:7px 0 0;color:#647983}
.apply-actions .apply-submit{min-width:240px}
@media(max-width:600px){
 .request-options{grid-template-columns:1fr;gap:8px}
 .request-option{padding:13px 16px;font-size:14px}
 .request-intro{font-size:13px;margin-bottom:24px;padding-bottom:20px}
 .apply-actions .apply-submit{min-width:0;width:100%}
 .apply-page__title{font-size:28px}
}

/* v1.4.23: make the annual offer scannable without changing its icon or backdrop. */
#outline .price .lbl{font-size:13px;letter-spacing:.045em}
#outline .price .amt{font-size:clamp(40px,3.7vw,54px);margin:16px 0 34px;line-height:1.18}
#outline .price .amt small{font-size:14px;vertical-align:baseline}
#outline .price-includes{text-align:left;border-top:1px solid rgba(216,237,244,.42)}
#outline .price-includes__heading{margin:0;padding:23px 0 3px;color:#c9e7f1;font-size:12px;font-weight:700;letter-spacing:.12em}
#outline .price-includes__list{list-style:none;margin:0;padding:0;border:0;counter-reset:none}
#outline .price .price-includes__list li{
  display:grid;grid-template-columns:34px minmax(0,1fr);align-items:start;gap:14px;
  margin:0;padding:18px 0;border:0;border-bottom:1px solid rgba(216,237,244,.22);
  color:#fff;line-height:1.5;
}
#outline .price .price-includes__list li:last-child{border-bottom:0}
#outline .price .price-includes__list li::before{content:none}
#outline .price-includes__number{padding-top:3px;color:#9fd2e2;font-family:inherit;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.06em}
#outline .price-includes__content{display:grid;gap:4px;min-width:0}
#outline .price-includes__content strong{color:#fff;font-size:18px;font-weight:700;letter-spacing:.01em;line-height:1.5}
#outline .price-includes__content>span{color:#c5dce7;font-size:12px;line-height:1.65}
@media(max-width:600px){
  #outline .price .amt{font-size:clamp(32px,9vw,42px);margin:16px 0 28px}
  #outline .price-includes__heading{padding-top:20px}
  #outline .price .price-includes__list li{grid-template-columns:26px minmax(0,1fr);gap:11px;padding:15px 0}
  #outline .price-includes__number{font-size:12px}
  #outline .price-includes__content strong{font-size:15px}
  #outline .price-includes__content>span{font-size:11px}
}
@media print{#outline .price-includes{border-color:#aaa}#outline .price .price-includes__list li{border-color:#ccc}}

/* Original hero artwork with restrained background parallax. */
@keyframes espHeroCanvasDrift{
  from{transform:translate3d(-1.2%,0,0) scale(1.055)}
  to{transform:translate3d(1.2%,-.45%,0) scale(1.055)}
}
@keyframes espHeroCanvasDriftReduced{
  from{transform:translate3d(-1.6%,0,0) scale(1.055)}
  to{transform:translate3d(1.6%,-.3%,0) scale(1.055)}
}
@keyframes espHeroCityDrift{
  from{transform:translate3d(.9%,.2%,0) scale(1.025);opacity:.96}
  to{transform:translate3d(-.9%,-.2%,0) scale(1.025);opacity:1}
}
.hero-bg{
  transform-origin:70% 52%;
  animation:espHeroCanvasDrift 11s ease-in-out infinite alternate;
  will-change:transform;
}
.hero-bg::before{
  transform-origin:52% 62%;
  animation:espHeroCityDrift 11s ease-in-out infinite alternate;
  will-change:transform,opacity;
}
@media(max-width:820px){
  .hero-bg::before{animation-duration:13s}
}
@media(prefers-reduced-motion:reduce){
  .hero-bg{animation:espHeroCanvasDriftReduced 9s ease-in-out infinite alternate}
  .hero-bg::before{animation:none;transform:none;opacity:1;will-change:auto}
}

/* v1.4.31: full-bleed Tokyo perspective, four program leaders and concise facts. */
/* v1.4.64: mask the photo itself over a tall soft range (大味・自然・シームレス). No opaque white shelf. */
.hero.hero--impact{padding:0;min-height:0;text-align:left;background:#fff;border:0}
.hero--impact .hero-bg{
  /* v1.4.71: keep the mask on this fixed wrapper; parallax moves only the child photo. */
  animation:none;
  background:none;
  opacity:1;
  overflow:hidden;
  -webkit-mask-image:linear-gradient(to top,
    transparent 0%,
    rgba(0,0,0,.10) 10%,
    rgba(0,0,0,.30) 25%,
    rgba(0,0,0,.58) 43%,
    rgba(0,0,0,.84) 58%,
    #000 72%);
  mask-image:linear-gradient(to top,
    transparent 0%,
    rgba(0,0,0,.10) 10%,
    rgba(0,0,0,.30) 25%,
    rgba(0,0,0,.58) 43%,
    rgba(0,0,0,.84) 58%,
    #000 72%);
}
.hero--impact .hero-bg-media{
  position:absolute;inset:-80px 0;
  background-image:url('../img/hero/hero-impact-1431.webp?v=1471');
  background-position:center 58%;
  background-size:cover;
  background-repeat:no-repeat;
  will-change:transform;
}
.hero--impact .hero-bg::before{content:none;animation:none}
.hero--impact::before{background:linear-gradient(90deg,rgba(255,255,255,.82) 0%,rgba(255,255,255,.48) 20%,rgba(255,255,255,.16) 40%,rgba(255,255,255,.04) 52%,transparent 68%)}
/* v1.4.71: a light static veil finishes the wrapper's longer mask ramp. */
.hero--impact::after{
  content:"";position:absolute;inset:auto 0 0 0;height:12%;pointer-events:none;z-index:1;
  background:linear-gradient(to top,
    #fff 0%,
    rgba(255,255,255,.20) 34%,
    transparent 100%);
}
.hero--impact .wrap.hero-impact-layout{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1.22fr) minmax(0,.88fr);align-items:center;gap:clamp(26px,4vw,74px);max-width:1440px;min-height:700px;padding:52px clamp(24px,5vw,76px) 94px}
.hero-impact-copy,.hero-impact-people{min-width:0}
.hero--impact .kicker{display:flex;align-items:center;gap:14px;border:0;padding:0;background:none;margin:0 0 25px;font-size:12px;line-height:1.45;letter-spacing:.13em}
.hero-impact-index{display:grid;place-items:center;width:42px;height:42px;flex:none;border-radius:50%;background:#074b73;color:#fff;font-family:Georgia,serif;font-size:14px;letter-spacing:0}
.hero--impact h1.title{margin:0 0 22px;font-size:clamp(36px,3.7vw,58px);line-height:1.27;letter-spacing:.005em;color:#073854;text-wrap:balance}
.hero--impact h1 .title-prefix{display:block;font-size:clamp(51px,5.4vw,84px);line-height:1.12;letter-spacing:.015em;margin:0 0 4px}
.hero--impact h1 .title-main{display:block;white-space:nowrap}
.hero--impact h1 .title-mobile-break{display:none}
.hero--impact .statement{position:relative;margin:0 0 19px;padding:0 0 0 18px;max-width:100%;font-size:clamp(19px,1.65vw,25px);font-weight:700;line-height:1.75;letter-spacing:.035em;color:#0b4669;background:none}
.hero--impact .statement::before{content:"";position:absolute;left:0;top:3px;bottom:3px;width:4px;background:#0b6793}
.hero--impact .lead{margin:0;max-width:690px;font-size:13px;line-height:1.9;font-weight:500;color:#304958;text-shadow:0 1px 12px #fff}
.hero--impact .cta-row{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:10px;margin:24px 0 0}
.hero--impact .btn{min-height:54px;padding:13px 25px;font-size:14px}
.hero-impact-people{align-self:center}
.hero-impact-people-label{margin:0 0 20px;color:#063b5d;font-size:12px;font-weight:700;letter-spacing:.13em;text-align:center}
.hero-impact-people-label span{margin-left:8px;font:700 10px Georgia,serif;letter-spacing:.15em}
.hero-impact-people-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 18px}
.hero-impact-person{display:flex;flex-direction:column;align-items:center;min-width:0;text-align:center;animation:espImpactPersonRise .7s cubic-bezier(.2,.7,.2,1) both}
.hero-impact-person:nth-child(2){animation-delay:.08s}.hero-impact-person:nth-child(3){animation-delay:.16s}.hero-impact-person:nth-child(4){animation-delay:.24s}
@keyframes espImpactPersonRise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
.hero-impact-person img{display:block;object-fit:cover;object-position:center 28%;width:clamp(94px,9.7vw,142px);height:clamp(94px,9.7vw,142px);border:5px solid #fff;border-radius:50%;box-shadow:0 9px 32px rgba(5,52,82,.16)}
.hero-impact-person-caption{display:grid;align-content:center;gap:3px;width:min(100%,210px);min-height:58px;margin-top:-2px;padding:9px 6px 8px;background:rgba(255,255,255,.9);backdrop-filter:blur(8px);box-shadow:0 4px 20px rgba(12,54,83,.1)}
.hero-impact-person-caption strong{color:#063b5d;font-size:15px;line-height:1.35;letter-spacing:.04em}
.hero-impact-person-caption span{color:#31586d;font-size:9px;font-weight:700;line-height:1.35;overflow-wrap:anywhere}
@media(max-width:1100px){
 .hero--impact .wrap.hero-impact-layout{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);min-height:640px;gap:20px}
 .hero--impact h1.title{font-size:clamp(31px,3.4vw,42px)}
 .hero--impact h1 .title-prefix{font-size:clamp(43px,5vw,62px)}
 .hero--impact .lead{font-size:12px}
 .hero-impact-person img{width:100px;height:100px}
 .hero-impact-people-grid{gap:13px}
 .hero-impact-person-caption strong{font-size:13px}
}
@media(max-width:820px){
 .hero--impact .wrap.hero-impact-layout{display:flex;flex-direction:column;align-items:stretch;gap:32px;min-height:0;padding-top:44px;padding-bottom:92px}
 /* Mobile cityscape: keep same impact photo, crop toward skyline, lighter frost for readable navy copy */
 .hero--impact .hero-bg{background:none}
 .hero--impact .hero-bg-media{
   inset:-60px 0;
   background-image:url('../img/hero/hero-impact-1431.webp?v=1471');
   background-size:cover;
   background-position:68% 60%;
   opacity:1;
 }
 .hero--impact .hero-bg::before{
   content:"";
   position:absolute;inset:0;pointer-events:none;animation:none;
   background:url('../img/hero/hero-tokyo-city.webp?v=1451-city') 78% 35%/cover no-repeat;
   opacity:.42;
   -webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 28%,#000 78%,transparent 100%);
   mask-image:linear-gradient(180deg,transparent 0%,#000 28%,#000 78%,transparent 100%);
 }
 .hero--impact::before{
   background:linear-gradient(185deg,
     rgba(255,255,255,.72) 0%,
     rgba(255,255,255,.38) 20%,
     rgba(255,255,255,.12) 40%,
     rgba(234,244,250,.04) 52%,
     transparent 68%);
 }
 .hero--impact h1.title{font-size:clamp(30px,5vw,43px)}
 .hero--impact h1 .title-prefix{font-size:clamp(45px,8vw,64px)}
 .hero--impact .lead{max-width:720px}
 .hero--impact .cta-row{order:initial}
 .hero-impact-people{width:100%}
 .hero-impact-people-grid{max-width:550px;margin:0 auto;gap:18px}
 .hero-impact-person img{width:clamp(100px,17vw,130px);height:clamp(100px,17vw,130px)}
}
@media(max-width:600px){
 .hero--impact .wrap.hero-impact-layout{padding:32px 20px 80px;gap:28px}
 .hero--impact .kicker{margin-bottom:20px;font-size:10px}
 .hero-impact-index{width:36px;height:36px;font-size:12px}
 .hero--impact h1.title{font-size:clamp(25px,7.3vw,34px);line-height:1.35;margin-bottom:19px}
 .hero--impact h1 .title-prefix{font-size:clamp(40px,11vw,58px)}
 .hero--impact h1 .title-main{white-space:normal;overflow-wrap:anywhere}
 .hero--impact .statement{font-size:18px;line-height:1.7}
 .hero--impact .lead{font-size:12px;line-height:1.8}
 .hero--impact .cta-row{gap:10px}
 .hero--impact .btn{width:100%;min-height:50px}
 .hero--impact .hero-bg-media{background-position:72% 58%;background-size:cover}
 .hero--impact .hero-bg::before{opacity:.48;background-position:82% 32%}
 .hero--impact::before{
   background:linear-gradient(185deg,
     rgba(255,255,255,.68) 0%,
     rgba(255,255,255,.32) 20%,
     rgba(255,255,255,.10) 40%,
     rgba(234,244,250,.03) 52%,
     transparent 68%);
 }
 .hero-impact-people-label{margin-bottom:16px}
 .hero-impact-people-grid{gap:16px 10px}
 .hero-impact-person img{width:clamp(86px,27vw,112px);height:clamp(86px,27vw,112px);border-width:4px}
 .hero-impact-person-caption{min-height:60px;padding:8px 3px}
 .hero-impact-person-caption strong{font-size:12px}
 .hero-impact-person-caption span{font-size:8px}
}
@media(max-width:360px){.hero--impact h1.title{font-size:24px}.hero--impact h1 .title-prefix{font-size:38px}.hero-impact-person-caption strong{font-size:11px}}
@media(prefers-reduced-motion:reduce){
 .hero--impact .hero-bg{animation:none!important;transform:none!important;will-change:auto}
 .hero--impact .hero-bg-media{transform:none!important;will-change:auto}
 .hero-impact-person{animation:none}
}

/* Match the hero's white fade at the first section edge, then reveal the wallpaper. */
.hero--impact + #why{margin-top:-1px;background:#fff}

/* flow-timeline mobile vertical (1.4.38) — centered axis */
@media(max-width:820px){
#flow .flow-timeline{
  display:flex;flex-direction:column;align-items:stretch;flex-wrap:nowrap;
  position:relative;width:100%;max-width:340px;margin:0 auto 32px;padding:8px 0 10px;gap:0;
  box-sizing:border-box;
}
#flow .flow-timeline::before{
  content:"";position:absolute;top:18px;bottom:18px;left:50%;
  width:2px;margin-left:-1px;background:#c9d9e2;z-index:0;
}
#flow .flow-timeline__line{display:none!important}
#flow .flow-timeline__item{
  position:relative;z-index:1;display:grid!important;
  grid-template-columns:1fr 16px 1fr;align-items:center;column-gap:12px;
  width:100%;min-width:0;padding:14px 0;text-align:left;flex:none;
}
#flow .flow-timeline__time{
  grid-column:1;justify-self:end;text-align:right;
  font-size:13px!important;line-height:1.35;min-height:0;color:var(--blue);
  font-variant-numeric:tabular-nums;
}
#flow .flow-timeline__dot{
  grid-column:2;justify-self:center;align-self:center;
  width:12px;height:12px;margin:0;background:var(--navy);
  box-shadow:0 0 0 2px #fff,0 0 0 3.5px var(--navy);
}
#flow .flow-timeline__label{
  grid-column:3;justify-self:start;text-align:left;
  font-size:16px;letter-spacing:.04em;color:var(--navy);
}
#flow .flow3{margin-top:8px}
#flow .flow3 .card{padding:22px 20px}
#flow .flow3 .fl{font-size:18px}
#flow .flow3 .card p{font-size:13px;line-height:1.85}
}

/* audience mobile typography (1.4.50) */
#audience .shead .sub,
#audience .card li,
#audience .card .tnote{
  line-break:strict;
  word-break:keep-all;
  overflow-wrap:normal;
  letter-spacing:.01em;
}
#audience .nobr{
  display:inline-block;
  white-space:nowrap;
  word-break:keep-all;
  overflow-wrap:normal;
}
@media(max-width:820px){
#audience .card li{font-size:14px;line-height:1.92}
#audience .card .tnote{font-size:12.5px;line-height:1.85;margin-top:16px}
}
#audience .card .tnote .tnote-l2{
  display:block;
  white-space:nowrap;
}
@media(max-width:600px){
#audience .wrap{padding-left:18px;padding-right:18px}
#audience .card li{font-size:13.5px;line-height:1.9}
#audience .card .tnote{font-size:11px;line-height:1.85;letter-spacing:0}
#audience .card .tnote .tnote-l2{font-size:10.5px;letter-spacing:0}
}

/* ============================================================
   Mid-page dual CTA band (v1.4.51) — match apply/hero button styles
   ============================================================ */
.cta-band{
  position:relative;
  padding:56px 0;
  background:rgba(255,255,255,.88);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.cta-band__inner{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:8px;
  max-width:1280px;
}
.cta-band__kicker{
  margin:0;
  color:var(--blue);
  font-size:11px;
  font-weight:700;
  letter-spacing:.16em;
}
.cta-band__lead{
  margin:0 0 8px;
  color:var(--navy-d);
  font-size:clamp(18px,2vw,24px);
  font-weight:700;
  line-height:1.55;
  letter-spacing:.02em;
}
.cta-band .cta-row{
  justify-content:flex-start;
  margin-top:12px;
  gap:12px;
}
.cta-band .btn{min-height:54px;padding:15px 28px;font-size:14px}
@media(max-width:600px){
  .cta-band{padding:44px 0}
  .cta-band__lead{font-size:17px}
  .cta-band .cta-row{width:100%;flex-direction:column;align-items:stretch}
  .cta-band .btn{width:100%;justify-content:center}
}


/* Privacy policy page (index.php card) */
.privacy-policy{font-size:14px;line-height:1.9;color:var(--text,#1a2a3a);text-align:left}
.privacy-policy h2{font-size:16px;margin:1.6em 0 .55em;letter-spacing:.02em;color:var(--heading,#0b2b48)}
.privacy-policy ul{margin:.4em 0 1em;padding-left:1.35em}
.privacy-policy li{margin:.25em 0}
.privacy-policy p{margin:.6em 0}
.site-footer__legal a{color:#a8c0d0}
.site-footer__legal a:hover,.site-footer__legal a:focus{color:#fff}

/* v1.4.76: restore breathing room in the audience cards. */
#audience .shead{margin-bottom:56px}
#audience .card{padding:28px 32px 24px}
#audience .two .card+.card{padding-left:32px}
#audience .card--icon h3{margin-bottom:28px}
#audience .card li{padding-left:20px}

@media(max-width:820px){
  #audience .shead{margin-bottom:40px}
  #audience .card{padding:24px 24px 22px}
  #audience .two .card+.card{padding-left:24px;padding-top:30px}
  #audience .card--icon h3{margin-bottom:26px}
}
@media(max-width:600px){
  #audience .shead{margin-bottom:34px}
  #audience .card{padding:22px 20px 20px}
  #audience .two .card+.card{padding-left:20px;padding-top:28px}
  #audience .card li{padding-left:20px}
}
