/* Shared typography: visual role, rather than individual page, defines the scale. */
:root{
 --font-ui:Arial,Helvetica,sans-serif;
 --type-body:clamp(1rem,.95rem + .2vw,1.125rem);
 --type-lead:clamp(1.125rem,1rem + .3vw,1.25rem);
 --type-title:clamp(2.25rem,1.4rem + 3.3vw,4rem);
 --type-section:clamp(2rem,1.45rem + 2vw,3rem);
 --type-subheading:clamp(1.375rem,1.2rem + .6vw,1.75rem);
 --type-label:1.25rem;
 --type-small:.875rem;
}
body{font-family:var(--font-ui);font-size:var(--type-body);line-height:1.65}
button,input,select,textarea{font-family:var(--font-ui)}
#main :is(h1,h2,h3){font-family:var(--font-ui);font-weight:700;text-wrap:balance;overflow-wrap:break-word}
#main h1{font-size:var(--type-title);line-height:1.1;letter-spacing:-.045em}
#main h2,#main .illustrated-offer h3{font-size:var(--type-section);line-height:1.15;letter-spacing:-.04em}
#main h3{font-size:var(--type-subheading);line-height:1.25;letter-spacing:-.025em}
/* Large editorial moments retain emphasis while sharing one scale. */
#main .hero h1{font-size:clamp(2.5rem,1.45rem + 3.5vw,4.5rem)}
#main .closing h2{font-size:var(--type-title);line-height:1.1;letter-spacing:-.045em}
#main .need-intro h2{font-size:var(--type-section)}
#main .legal h2,#main .staff-cta h2{font-size:var(--type-subheading);line-height:1.25;letter-spacing:-.025em}
#main p,#main .content-section li,#main .engagement-models dd{font-size:var(--type-body);line-height:1.65}
#main .lead,#main .hero-description,#main .closing-row p{font-size:var(--type-lead);line-height:1.6}
#main .eyebrow,#main .offer-label,#main .trust-label{font-size:var(--type-label);line-height:1.4;font-weight:700;letter-spacing:.06em;text-transform:none}
#main .eyebrow,#main .offer-label{margin-bottom:24px}
#main .small,#main .breadcrumb,#main .talent-label,#main .seniority,#main .engagement-models dt,#main .preview-note,#main .form-error,#main figcaption,#main .reviews-source,#main .review-bottom,#main .project-purpose>span{font-size:var(--type-small);line-height:1.55;letter-spacing:0}
#main .offer-detail{font-size:1rem!important;line-height:1.6;letter-spacing:0}
#main .underlink,#main .trust-link,#main .saphan-shot figcaption a{font-size:1rem;line-height:1.5}
#main .faq summary{font-size:clamp(1.125rem,1rem + .35vw,1.375rem);font-weight:600;line-height:1.45;letter-spacing:-.015em}
#main .faq summary span{flex-shrink:0;font-size:1.5rem}
#main .button{font-size:1rem;line-height:1.4;font-weight:700;letter-spacing:0}
#main .need-options button{font-size:1rem;line-height:1.4}
#main .role-index>p{font-size:1rem}
#main .role-index a{font-size:1rem;line-height:1.5}
#main .review-summary{font-size:var(--type-lead);line-height:1.5}
#main .review-company{font-size:var(--type-subheading);line-height:1.25}
#main .form-grid label{font-size:1rem;font-weight:700;line-height:1.5}
#main .form-grid small{font-size:var(--type-small);font-weight:400;line-height:1.5}
#main input,#main select,#main textarea,#main textarea::placeholder{font-size:1rem;line-height:1.5}
#main .visual-node strong,#main .team-owner strong{font-size:1.25rem;line-height:1.3;letter-spacing:-.02em}
#main .visual-node small,#main .team-owner small,#main .team-roles>span,#main .project-purpose strong{font-size:var(--type-small);line-height:1.5}
#main .team-roles{flex-wrap:wrap}
#main .team-core{font-size:1.25rem}
#main .mint-play strong{font-size:var(--type-subheading);line-height:1.3}
#main .mint-play>span:not(.mint-play-icon){font-size:var(--type-small);line-height:1.5}
#main .tech-list li{font-size:1rem;line-height:1.5}
.footer p,.footer-bottom{font-size:var(--type-small);line-height:1.6}
.footer-top .footer-offer{font-size:1rem;line-height:1.5}
.cookie-banner h2{font-size:1.25rem;font-weight:700;line-height:1.25;letter-spacing:-.025em}
.cookie-banner p,.cookie-banner a,.cookie-settings,.consent,dialog p,.category p,.category>span,.dialog-actions button{font-size:var(--type-small);line-height:1.5}
dialog h2{font-size:1.75rem;line-height:1.25;font-weight:700}
.cookie-actions{flex-wrap:wrap}
#main[data-theme="saphan"] .underlink{color:#b4ceff}
@media(max-width:760px){
 #main .button{font-size:.9375rem;gap:16px}
 #main .eyebrow,#main .offer-label{letter-spacing:.04em}
 .site-header .brand{font-size:26px}
 .site-header nav{font-size:1rem}
 .cookie-banner{max-height:calc(100dvh - 32px);overflow:auto}
}
@media(max-width:360px){
 #main h1{font-size:2rem;overflow-wrap:anywhere}
 #main .hero h1{font-size:2.25rem}
 #main h2,#main .illustrated-offer h3{font-size:1.875rem}
 .site-header{padding-inline:16px;gap:10px}
 .site-header .brand{font-size:24px;gap:6px}
 .site-header .brand-symbol{width:28px}
}

/* Field values are regular-weight; labels carry the emphasis. */
#main input,#main select,#main textarea,#main textarea::placeholder{font-weight:400}
.footer .footer-offer a{font-size:1rem;line-height:1.5}

/* Section names and location trails are separate, shared text roles. */
#main .section-label{font-family:var(--font-ui);font-size:var(--type-label);font-weight:700;line-height:1.4;letter-spacing:.06em;text-transform:none}
#main .breadcrumb{font-family:var(--font-ui);font-size:.875rem;font-weight:400;line-height:1.55;letter-spacing:0;text-transform:none}
#main .breadcrumb a{font:inherit;color:inherit;text-underline-offset:4px}
#main .breadcrumb a:hover{text-decoration:underline}
@media(max-width:760px){:root{--type-label:1.125rem}#main .section-label{letter-spacing:.04em}}
