/* Shared type scale. Loaded last; layout and brand lettering stay independent. */
:root{--type-body:15px;--type-small:12px;--type-label:11px;--type-title:clamp(30px,3.2vw,46px);--type-card:clamp(20px,1.8vw,25px)}
body{font-size:var(--type-body)}
:is(#main,.header,.footer,dialog) :is(.eyebrow,.section-label,.section-kicker,.project-meta p,.service summary div>span,.process-grid article>span,.company-values article>span,.timeline-kind,.record-name>span){font-size:var(--type-label);line-height:1.5;letter-spacing:.06em}
#main :is(.section-head h2,.expertise-title h2,.overview h2,.company-overview h2,.company-contact h2){font-size:var(--type-title);line-height:1.35;letter-spacing:-.045em}
#main :is(.about h2,.contact-content h2,.detail-contact h2){font-size:clamp(34px,4vw,56px);line-height:1.4}
#main :is(.project-meta h3,.service h3,.process-grid h3,.company-values h3,.timeline-content h3,.story-columns h3){font-size:var(--type-card);line-height:1.4}
#main :is(.about-bottom p,.expertise-title>p,.service-body p,.process-grid p,.contact-bottom p,.company-lead,.company-description,.company-values p,.timeline-content p,.lead,.story-columns p,.detail-contact p:not(.eyebrow),.hero-copy>p:last-child){font-size:var(--type-body);line-height:1.8}
#main :is(.section-aside,.hero-intro,.detail-intro p,.record-name p,.record-summary p){font-size:14px;line-height:1.75}
#main :is(.sample-notice,.project-meta>span,.contact-note,.disclaimer,.compare-note,.history-note,.record-footnote,.record-year,.record-summary>span,.pending,.pill,.project-facts dt,.gallery figcaption,.detail-cover figcaption,.breadcrumbs,.breadcrumbs a,.timeline-date span){font-size:var(--type-small);line-height:1.65;letter-spacing:0}
#main :is(.filters button,.record-filters button,.text-link,.round-button,.project-facts dd,.company-tabs a,.detail-tabs nav,.detail-tabs button){font-size:14px;line-height:1.6}
#main :is(.filters sup,.record-filters sup,.company-tabs a span,.record-no){font-size:10px}
#main .record-name h3{font-size:20px;line-height:1.4}
#main .project-opening .detail-title-row h1{font-size:clamp(34px,4vw,56px);line-height:1.2}
body .header .desktop-nav{font-size:14px}
body .header .header-cta,body .header .desktop-nav .company-submenu a,body.home-page .header .desktop-nav .company-submenu a{font-size:13px}
body .footer :is(.footer-bottom,.footer-top p,.footer-top>a:last-child){font-size:12px;line-height:1.7}
#main :is(.image-note,.hero-bottom,.hero-caption,.company-banner small){font-size:10px;line-height:1.6}
dialog :is(.dialog-intro,.credits-list li,.form-result){font-size:14px;line-height:1.8}
dialog .field{font-size:13px}
dialog .field :is(input,select,textarea){font-size:16px}
dialog :is(.file-help,.viewer-count),#main :is([data-cover-count],[data-cover-play]){font-size:12px}
/* Allow growing text to remain readable instead of clipping a full-screen panel. */
#main .project-opening .detail-cover .image-button{min-height:150px}
#main .project-opening{height:auto;min-height:calc(100svh - var(--detail-inset));}
#main .project-opening .detail-cover{min-height:180px}
@media(min-width:761px) and (min-height:700px){#main .project-opening{height:calc(100svh - var(--detail-inset))}}
@media(max-width:760px){
 :root{--type-body:14px;--type-title:30px;--type-card:20px;--type-small:11px}
 #main :is(.section-aside,.hero-intro,.detail-intro p){font-size:13px}
 #main :is(.filters button,.record-filters button,.project-facts dd,.company-tabs a,.detail-tabs nav,.detail-tabs button){font-size:12px}
 #main .project-opening .detail-title-row{display:block}
 #main .project-opening .detail-title-row h1{font-size:34px}
 #main .project-opening .detail-intro{max-width:none;margin-top:16px}
 #main .project-opening .detail-cover{min-height:0}
 #main .project-opening .detail-cover .image-button{min-height:0}
 #main .project-opening .detail-intro .pill{font-size:11px}
 #main .hero-top .eyebrow{font-size:10px;letter-spacing:.025em}
 #main .hero-intro{white-space:normal}
 #main .hero-bottom{font-size:9px}
 #main .project-meta{display:block}
 #main .project-meta>span{margin-top:6px}
 body .header .header-cta{font-size:11px}
 body .footer :is(.footer-bottom,.footer-top p,.footer-top>a:last-child){font-size:11px}
}
