/* v47 mobile viewport and legibility pass; additive, after v46 cascade. */
@media (max-width:760px){
 html{scroll-padding-top:76px}
 body{min-width:0;overflow-x:clip}
 main,section,footer{max-width:100%}
 .container{width:calc(100% - 40px)}
 .hero{min-height:100svh;min-height:100dvh;display:flex;flex-direction:column;justify-content:flex-end;padding-top:env(safe-area-inset-top);overflow:hidden}
 .hero-photo{inset:0 0 auto;height:clamp(310px,53svh,550px)}
 .hero-photo>img{height:100%;width:100%;object-fit:cover;object-position:65% 32%}
 .hero-gradient{background:linear-gradient(0deg,#090d16 0%,#090d16 28%,#090d16e8 45%,#090d1670 72%,#090d1610 100%)}
 .hero-content{padding-top:clamp(245px,38svh,440px);padding-bottom:max(26px,env(safe-area-inset-bottom));width:100%}
 .hero h1,.hero-content>h1{font-size:clamp(38px,10vw,58px);line-height:1.06;overflow-wrap:normal}
 .hero .label{font-size:clamp(9px,2.4vw,11px);letter-spacing:.075em;line-height:1.55;margin-bottom:18px}
 .hero-content>p:not(.label){font-size:clamp(14px,3.6vw,16px);line-height:1.6;margin-top:18px}
 .hero-actions{margin-top:20px;gap:10px}
 .hero-actions .btn,.hero-actions .btn.ghost{font-size:13px;min-height:48px;padding:12px 16px}
 .hero-bottom{margin-top:24px;gap:12px;padding-top:15px;font-size:10px;line-height:1.5;letter-spacing:.02em}
 .hero-bottom>a{font-size:11px}
 .section{padding-block:clamp(56px,9vw,78px)}
 .label,.label-plain{font-size:max(10px,2.5vw)}
 .fineprint{font-size:12px}
 .footer-grid a:not(.btn),.footer-grid .footer-contact>a:not(.btn){font-size:12px}
 .report-tag,.report-metrics span,.browser-chrome>span{font-size:10px}
 .report-metrics strong{font-size:14px}
 .scope-stats p{font-size:12px}
 .scope-stats strong{font-size:clamp(32px,9vw,48px)}
 .hero-photo img,.editorial-visual img,.dossier-visual img{max-width:100%}
}
@media(max-width:380px){
 .container{width:calc(100% - 32px)}
 .hero-content{padding-top:clamp(235px,36svh,350px)}
 .hero-photo{height:clamp(290px,51svh,410px)}
 .hero h1,.hero-content>h1{font-size:clamp(35px,10.3vw,43px)}
 .hero-actions .btn,.hero-actions .btn.ghost{font-size:12px}
}
@media(max-width:760px) and (max-height:720px){
 .hero{min-height:100svh}
 .hero-photo{height:clamp(265px,47svh,370px)}
 .hero-content{padding-top:clamp(220px,34svh,300px)}
 .hero h1,.hero-content>h1{font-size:clamp(35px,9vw,46px)}
 .hero-bottom{margin-top:18px}
}
@media(prefers-reduced-motion:reduce){.hero-photo>img{animation:none!important}}

/* V48: tablet landscape editorial hero: retain natural image contrast and balanced viewport. */
@media (min-width: 768px) and (max-width: 1440px) and (orientation: landscape) {
 body[data-page] main .premium-journal .intro-grid { gap:clamp(28px,4vw,58px);align-items:center; }
 body[data-page] main .premium-journal .premium-photo { margin-top:clamp(24px,4svh,42px); }
 body[data-page] main .premium-journal { padding-top:clamp(28px,5svh,64px); }
}
/* Never allow an old CSS opacity rule to leave hero imagery translucent. */
body[data-page] main .premium-journal .premium-photo img { opacity:1; }
