/* Magazine typography v3 — strict hierarchy, million-dollar rhythm */

:root{
--mag-display:'Cormorant Garamond',Georgia,'Times New Roman',serif;
--mag-body:'Inter Tight',-apple-system,BlinkMacSystemFont,sans-serif;
--mag-h1:clamp(2.25rem,5.2vw,4.25rem);
--mag-h2:clamp(1.65rem,3.2vw,2.65rem);
--mag-h3:clamp(1.2rem,2.1vw,1.65rem);
--mag-h4:clamp(1rem,1.6vw,1.25rem);
--mag-body-size:1rem;
--mag-lead:clamp(1.05rem,1.35vw,1.15rem);
--mag-small:.875rem;
--mag-label:.75rem;
--mag-btn:.78rem;
--mag-label-track:.2em;
--mag-btn-track:.14em;
--mag-body-track:0;
--mag-display-track:-.018em;
}

body{font-family:var(--mag-body)!important;font-size:var(--mag-body-size)!important;line-height:1.72!important;letter-spacing:var(--mag-body-track)!important}

/* ═══ HEADING LADDER (always h1 > h2 > h3 > h4 > body) ═══ */
h1,h1[style],.hero h1,.page-hero h1,.community-hero-content h1,.service-hero-content h1,.cs-hero h1,.case-hero h1,main>h1{
font-family:var(--mag-display)!important;font-weight:400!important;
font-size:var(--mag-h1)!important;line-height:1.06!important;letter-spacing:var(--mag-display-track)!important}

h2,h2[style],.section-title,.section-title[style],section>h2,.ai-quick-answers>h2,.cs-related>h2,.cs-main h2,.case-body h2{
font-family:var(--mag-display)!important;font-weight:400!important;
font-size:var(--mag-h2)!important;line-height:1.12!important;letter-spacing:var(--mag-display-track)!important}

h3,h3[style],.why-card h3,.package h3,.process-step h3,.step h3,.port-card h3,.faq-q,.faq-question{
font-family:var(--mag-display)!important;font-weight:400!important;
font-size:var(--mag-h3)!important;line-height:1.22!important;letter-spacing:-.01em!important}

h4,h4[style],.label,.eyebrow,.section-kicker,.badge-text,.hero-kicker,.cs-loc,.rel-loc{
font-family:var(--mag-body)!important;font-size:var(--mag-label)!important;font-weight:600!important;
letter-spacing:var(--mag-label-track)!important;text-transform:uppercase!important;line-height:1.4!important}

/* Body copy — never larger than h3 */
p,p[style],li,td,dd,blockquote,figcaption,.section-sub,.section-sub[style],.hero-sub,.hero p,
.ai-rescue-answer,.ai-rescue-answer[style],.ai-rescue-tldr li,.ai-rescue-tldr p,
[itemprop="text"],.faq-a,.faq-answer,.faq-a p,.cs-main p,.case-body p,.tst-text,.port-card p,.why-card p,.package li,
.meta-stamp,.cs-bc,.cs-cat,.v3m-cta-s{
font-family:var(--mag-body)!important;font-size:var(--mag-body-size)!important;font-weight:300!important;
line-height:1.72!important;letter-spacing:0!important}

/* Lead paragraphs only — still below h3 */
.lead,.hero-sub,.section-intro,p.lead{font-size:var(--mag-lead)!important;line-height:1.65!important}

/* Kill inline paragraph bloat */
p[style*="font-size:1.15rem"],p[style*="font-size:1.2rem"],p[style*="font-size:1.22rem"],
p[style*="font-size:1.3rem"],p[style*="font-size:1.4rem"],p[style*="font-size:1.5rem"],
p[style*="font-size:1.55rem"],p[style*="font-size:1.6rem"],p[style*="font-size:1.7rem"],
p[style*="font-size:1.8rem"],p[style*="font-size:1.9rem"],p[style*="font-size:2rem"],
.ai-rescue-answer[style*="font-size:1.02rem"],.ai-rescue-answer[style*="font-size:1.05rem"]{
font-size:var(--mag-body-size)!important}

/* Shrink oversized inline h2 that compete with h1 */
h2[style*="font-size:1.95rem"],h2[style*="font-size:2rem"],h2[style*="font-size:2.2rem"]{
font-size:var(--mag-h2)!important}

/* Bump tiny inline h2 (matrix mx-links etc.) */
h2[style*="font-size:1.4rem"],h2[style*="font-size:1.35rem"],h2[style*="font-size:1.3rem"],
.mx-links .section-title,.mx-links h2{
font-size:clamp(1.35rem,2.4vw,1.85rem)!important}

/* Stats & numbers */
.trust-item .number,.stat .n,.stat-num,.v2-stat-number,.step .no,.step-number,.win-stat .num,.cs-num,.case-stat .v{
font-family:var(--mag-display)!important;font-weight:400!important;font-size:clamp(1.35rem,2.5vw,1.9rem)!important}
.trust-item .label,.stat .l,.cs-lbl,.case-stat .l{font-size:var(--mag-small)!important;letter-spacing:.1em!important}

/* Buttons & UI */
.btn,.btn-primary,.btn-b,.btn-secondary,.btn-ghost,.btn-g,.nav-cta,.pkg-cta,.lp-btn,.lp-cta,.cs-cta-btn{
font-family:var(--mag-body)!important;font-size:var(--mag-btn)!important;font-weight:600!important;
letter-spacing:var(--mag-btn-track)!important;text-transform:uppercase!important;border-radius:0!important}

/* AI / FAQ blocks */
.ai-rescue-tldr strong,.ai-summary span[style*="text-transform:uppercase"],
details.ai-rescue-faq summary{font-size:var(--mag-small)!important;letter-spacing:var(--mag-label-track)!important}
details.ai-rescue-faq summary,summary[itemprop="name"]{font-size:var(--mag-body-size)!important;font-weight:500!important}

/* Kill legacy font stacks */
[style*="font-family:'Inter'"],[style*="font-family: 'Inter'"],
[style*="font-family:Inter"],[style*="font-family:'DM Sans'"],[style*="font-family: 'DM Sans'"],
[style*="font-family:'Playfair Display'"],[style*="font-family: 'Playfair Display'"],
[style*="font-family:Georgia"],[style*="font-family: Georgia"],
[style*="font-family:'Times New Roman'"]{font-family:var(--mag-body)!important}
[style*="font-family:'Cormorant Garamond'"],[style*="font-family: 'Cormorant Garamond'"],
[style*="font-family:'Playfair Display'"] h1,[style*="font-family:'Playfair Display'"] h2{
font-family:var(--mag-display)!important}