/* Shared editorial scale. Program colours, artwork and form behaviour stay intact. */
body main{--section-space:clamp(40px,4.2vw,64px)}
body #contenido h1{font-size:clamp(42px,4.6vw,64px);line-height:1.04;letter-spacing:-.045em;text-wrap:balance}
body #contenido h2{font-size:clamp(30px,3.2vw,44px);line-height:1.12;letter-spacing:-.035em;text-wrap:balance}
body main h3{line-height:1.18}
body main :is(.bridge,.plan,.voices,.generations,.life,.continue,.journey-doors,.stories-generations,.grief-origin,.grief-learn,.grief-moments,.grief-includes,.momentum-definition,.momentum-outcomes,.momentum-for-you,.momentum-stories,.momentum-contact,.po-definition,.po-resonance,.po-journey,.po-lived,.po-territories,.po-voices,.po-faq,.po-related,.po-final,.quick-facts){padding-block:var(--section-space)}
body main :is(.catalog-hero,.editorial-hero,.levelup-hero,.stories-hero,.start-hero,.grief-hero){padding-block:128px 56px}
body main :is(.start-routes,.editorial-topics,.editorial-archive,.levelup-map,.grief-companion,.grief-video,.grief-cta,.editorial-next){padding-bottom:var(--section-space)}
body main :is(.plan-head,.voices-shell,.generations-head,.momentum-stories-grid,.momentum-for-you-grid,.grief-origin-grid,.grief-moments-grid,.po-related-grid,.po-faq-grid){gap:36px}
body main :is(.themes-grid,.momentum-outcome-grid){margin-top:28px}
body main :is(.theme,.momentum-outcome,.grief-learn-grid article,.po-definition-card){min-height:240px;padding:28px}
body main :is(.theme h3,.momentum-outcome h3,.grief-learn-grid h3,.po-definition-card h3){font-size:28px;line-height:1.15}
body main .po-definition-card h3{margin-top:28px}
body main .po-section-heading{margin-bottom:28px;gap:24px}
body main .po-final-grid{gap:40px}
body main .po-final h2{font-size:clamp(32px,3.2vw,44px);max-width:22ch}
body main .po-real-photo strong{font-size:clamp(30px,3vw,42px);line-height:1.12}
body main .levelup-map-grid article{min-height:280px;padding:28px}

/* The catalogue is a comparison, not three oversized landing pages. */
body main .start-routes-stack{gap:28px}
body main .start-route,body main .start-route-media{min-height:540px}
body main .start-route-copy{padding:clamp(28px,3vw,44px)}
body main .start-route-copy h2{font-size:clamp(30px,3vw,42px);line-height:1.12;margin-bottom:18px}
body main .start-route-copy h3{font-size:23px}
body main .start-route-label{margin-bottom:18px}
body main .start-route-facts{margin-top:18px}
body main .start-route blockquote{margin-top:20px;padding:16px 20px;font-size:17px}
body main .start-route-plan-art figcaption strong{font-size:clamp(32px,3.3vw,46px);line-height:1.06}
body main .upcoming-editions{padding-block:48px}
body main .start-proof{padding:40px 0 24px}
body main .start-proof-card{padding:36px 40px;gap:40px;align-items:center;border-radius:28px}
body main .start-proof-card h2{font-size:clamp(30px,3vw,40px);max-width:22ch;line-height:1.12}
body main .start-proof-card>div:last-child p{font-size:17px;line-height:1.6;margin-bottom:18px}

/* Keep the invitation subordinate to the form, with a useful reading width. */
body main .contact-section{padding:48px 0 64px}
body main .start-interest{padding-top:24px}
body main .contact-card{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);padding:12px;gap:12px;border-radius:30px;align-items:center}
body main .contact-intro{padding:30px;justify-content:flex-start}
body #contenido .contact-intro h2{font-size:clamp(30px,2.8vw,38px);line-height:1.15;letter-spacing:-.03em;max-width:22ch;margin-bottom:18px;text-wrap:pretty}
body main .contact-intro>p:not(.kicker):not(.contact-micro){font-size:16px;line-height:1.6}
body main .contact-photo{margin:24px 0 16px;min-height:0;height:220px;max-height:none;border-radius:20px;flex-shrink:0}
body main .contact-form{padding:30px;gap:20px;border-radius:22px}
body main .contact-form-head{gap:12px;padding-bottom:18px}
body main .contact-form-head strong{font-size:22px;line-height:1.2;letter-spacing:-.025em}
body main .contact-route>span{min-height:82px;padding:14px}
body main .contact-route b{padding-right:20px}
body main .contact-field textarea{min-height:100px}
body main .momentum-contact-copy h2,body main .grief-cta-copy h2{font-size:clamp(30px,3vw,42px);line-height:1.12}
body main :is(.momentum-contact-card-form,.grief-cta-contact){padding:36px;gap:32px;min-height:0}
.footer.ecosystem-footer{padding-block:48px}

@media(max-width:980px){
 body main .contact-card{grid-template-columns:1fr}
 body main .contact-intro{display:grid;grid-template-columns:1fr 1fr;gap:12px 24px;align-items:start}
 body main .contact-intro :is(.kicker,h2,p){grid-column:1}
 body main .contact-photo{grid-column:2;grid-row:1/5;height:240px;margin:0}
}
@media(max-width:700px){
 body main{--section-space:40px}
 body #contenido h1{font-size:clamp(36px,9.5vw,46px);line-height:1.08}
 body #contenido h2{font-size:30px;line-height:1.16;letter-spacing:-.03em}
 body main :is(.catalog-hero,.editorial-hero,.levelup-hero,.stories-hero,.start-hero,.grief-hero){padding-block:108px 36px}
 body main .start-route{min-height:0}
 body main .start-route-media{min-height:320px}
 body main .start-route-copy{padding:26px 22px}
 body main .start-proof{padding:28px 0 16px}
 body main .start-proof-card{padding:26px 24px;gap:20px;grid-template-columns:1fr}
 body main .contact-section{padding:32px 0 40px}
 body main .start-interest{padding-top:16px}
 body main .contact-intro{display:flex;padding:22px 16px;gap:0}
 body #contenido .contact-intro h2{font-size:30px;max-width:24ch}
 body main .contact-photo{width:100%;height:190px;margin:20px 0 14px}
 body main .contact-form{padding:22px 18px}
 body main .contact-form-head strong{font-size:20px}
 body main .contact-route-fieldset{grid-template-columns:1fr}
 body main .contact-route>span{min-height:0;padding:14px}
 body main :is(.momentum-contact-card-form,.grief-cta-contact){padding:24px 18px;gap:24px}
 body main .po-final-grid{gap:28px}
 body main .po-real-photo strong{font-size:30px}
 .footer.ecosystem-footer{padding-block:36px}
}
