/* Final typography refinement. Keep colours, section-heading sizes, media,
   layout geometry, control hit areas and all motion definitions unchanged. */
:root{--fs-body:.875rem}
body{font-size:var(--fs-body);font-weight:400;letter-spacing:.035em}
@media(min-width:64em){:root{--fs-body:.90625rem}}

/* The display copy follows the existing section-heading size at every width. */
.fv h1{font-size:var(--fs-h2);font-weight:400;line-height:1.6;letter-spacing:.04em}
.fv h1 .en{font-size:1em}
h2{font-weight:400}
h3{font-size:clamp(1.0625rem,1rem + .25vw,1.1875rem);font-weight:400;line-height:1.7}
.big-h{font-weight:400!important}
.quote,.band-q p.big{font-weight:400}
.name{font-size:clamp(1.35rem,1.15rem + 1vw,1.8rem);font-weight:400}
.lead{line-height:1.95;letter-spacing:.04em;font-weight:400}
.txt p{line-height:2;letter-spacing:.035em;font-weight:400}
.sub{font-size:.875rem;line-height:1.9;letter-spacing:.04em}
.eyebrow{font-weight:400}
@media(min-width:64em){.sub{font-size:.9375rem}.eyebrow{font-size:.875rem}}

/* Body and card copy: a modest reduction, retaining generous line spacing. */
.cards4 h3{font-size:1.03125rem;font-weight:400;line-height:1.7}
.cards4 p,.steps p,.terms dd,.perk p,.acc .d{font-size:.875rem;line-height:1.9;letter-spacing:.035em}
.steps h3{font-size:clamp(1.0625rem,1rem + .15vw,1.125rem);font-weight:400}
.steps .n{font-size:1.45rem}
.price3 .l,.terms dt,.prof dt,.co dt{font-size:.875rem;font-weight:400}
.price .num{font-size:clamp(1.75rem,1.5rem + .8vw,2.15rem);font-weight:400}
.price .yen{font-size:1.0625rem}.price .per{font-size:.9375rem}
.interlude p.s{font-size:1rem;font-weight:400}
.q summary{font-size:clamp(1rem,.95rem + .2vw,1.0625rem);font-weight:400;line-height:1.85}
.perk h3{font-size:1rem;font-weight:400}
.acc .go{font-size:.96875rem;font-weight:400;line-height:1.75}
.acc .p{font-weight:400}

/* Navigation and buttons keep all existing minimum touch-target sizes. */
.nav a{font-size:.875rem}
.menu a.m{font-size:1.0625rem;font-weight:400;line-height:1.7}
.cta,.btn-sub,.pill{font-weight:400}
.cta-main,.cta.cta-m{font-size:1rem}
.link-arrow,.more summary{font-size:.90625rem;font-weight:400}
.ft nav a{font-size:.875rem}.ft .tag{font-size:.90625rem;font-weight:400}

/* Photo disclosure remains readable, without a white badge or background. */
.fv .cap{background:none;padding:0;border-radius:0;font-size:.71875rem;font-weight:400;line-height:1.5;color:var(--cocoa-ink);letter-spacing:.04em;text-shadow:0 1px 3px rgba(255,253,248,.9)}

/* One further editorial step; section titles and the approved hero size stay unchanged. */
.quote{font-size:clamp(1.1rem,1rem + .6vw,1.4rem);line-height:1.85}
.big-h{font-size:clamp(1.2rem,1rem + .85vw,1.65rem)!important;line-height:1.8!important}
.txt p{line-height:1.95;letter-spacing:.03em}
.prof dd,.co dd{font-size:var(--fs-body);line-height:1.85}
.interlude p.s{font-size:.9375rem}
@media(min-width:64em){.note,.fn summary,.fn p{font-size:.8125rem}}
/* Keep official artwork at its existing size, away from the couple's hands. */
@media(min-width:64em){.fv .miz{left:calc(34% + 40px);bottom:clamp(20px,3svh,36px)}}

/* Reset offscreen without a reverse fade; re-entry keeps the approved timing. */
.js .rv.rv-reset{transition:none}
