/* Shared type roles. Illustration lettering and the AIDEA wordmark are artwork. */
:root{--type-label:12px;--type-body:16px;--type-subhead:24px;--type-card:32px;--type-section:56px;--type-display:72px}
body{font-size:var(--type-body);line-height:1.6;letter-spacing:0}
body .intro-copy h1,body .footer-invite.footer-invite-image h2{font-size:var(--type-display);line-height:1.08;letter-spacing:-.035em}
body .dependency .section-heading h2,body .why-heading h2,body .outcomes-heading h2,body .test .section-head h2,body .faq-heading h2{font-size:var(--type-section);line-height:1.1;font-weight:600;letter-spacing:-.025em}
body .why-copy h3,body .outcome-copy h3{font-size:var(--type-card);line-height:1.2;font-weight:600;letter-spacing:-.02em}
body .dependency-detail h3,body .includes h3,body .extra h3,body .guarantee h3,body .next-title,body .faq-item summary{font-size:var(--type-subhead);line-height:1.3;font-weight:500;letter-spacing:-.015em}
body .intro-lede,body .section-heading>p,body .dependency-detail p,body .why-heading>p:last-child,body .why-copy p,body .outcomes-heading>p:last-child,body .outcome-copy>p,body .test .lead,body .includes p,body .extra p,body .price-terms,body .guarantee p,body .steps li,body .faq-answer,body .faq-answer p{font-size:var(--type-body);line-height:1.6;letter-spacing:0;font-weight:400}
body .btn,body .intro-actions .btn,body .text-link,body .outcomes-foot .text-link,body .why-outcomes-link,body .statement-footer .footer-invite-image .footer-contact,body .map-tabs button{font-size:var(--type-body);line-height:1.4;font-weight:500;letter-spacing:0}
body .intro-kicker,body .intro-scroll,body .eyebrow,body .section-number,body .small-note,body .quiet,body .detail-kicker,body .example-note,body .section-foot,body .why-number,body .outcome-kicker,body .outcome-counter,body .outcomes-foot>span,body .price-mail,body .footer-details,body .footer-image-credit,body .nav-links a,body .map-tabs button>span:first-child{font-size:var(--type-label);line-height:1.5;letter-spacing:.025em;font-weight:400}
body .intro-kicker,body .eyebrow,body .why-number,body .outcome-kicker,body .detail-kicker{font-weight:500;letter-spacing:.08em}
body .nav .nav-cta{font-size:var(--type-label)!important;line-height:1.5}
body .brand{font-size:var(--type-body)}
body .price{font-size:var(--type-section);line-height:1.1}
body .outcome-slide-number{font-size:var(--type-subhead);line-height:1.3}
body .outcome-slide-number>span{font-size:var(--type-label)}
/* Allow consistent body copy without squeezing the hero actions or card text. */
body .intro-lede{max-width:440px}
body .dependency-detail{min-height:220px}
body .extra h3{font-size:var(--type-subhead)}
@media(max-width:760px){
 :root{--type-subhead:20px;--type-card:28px;--type-section:36px;--type-display:44px}
 body .intro-actions{gap:12px}
 body .intro-actions .btn{padding:12px 16px;min-height:48px}
 body .intro-copy{padding-top:100px}
 body .footer-invite.footer-invite-image h2{max-width:10ch}
 body .map-tabs button{font-size:var(--type-body)}
 body .dependency-detail{min-height:240px}
}
@media(max-height:560px) and (min-width:761px){body .intro-copy h1{font-size:var(--type-section)}body .intro-copy{padding-top:80px}body .intro-kicker{margin-bottom:12px}body .intro-lede{margin:12px 0}}
