/* Shared roles: display > section > item > body > supporting information. */
:root{
 --type-display:clamp(2.75rem,5.6vw,5rem);
 --type-section:clamp(1.875rem,2.65vw,2.5rem);
 --type-item:clamp(1.375rem,1.75vw,1.5625rem);
 --type-body:1.125rem;
 --type-lead:clamp(1.1875rem,1.6vw,1.375rem);
 --type-meta:.875rem;
 --weight-heading:600;
}
body{font-size:var(--type-body);line-height:1.7}
h1,h2,h3{font-weight:var(--weight-heading);text-wrap:balance;overflow-wrap:break-word}
h1{font-size:var(--type-display);line-height:1.08;letter-spacing:-.03em}
h2{font-size:var(--type-section);line-height:1.2;letter-spacing:-.025em}
h3{font-size:var(--type-item);line-height:1.3;letter-spacing:-.01em}
p{max-width:65ch;letter-spacing:0}
.page-heading{max-width:1200px}
.page-heading h1{max-width:21ch}
.page-heading p{font-size:var(--type-lead);line-height:1.55;margin-top:24px;max-width:52ch}
.hero-title p{font-size:var(--type-lead);line-height:1.55}
.project-column-hero .hero-title h1{font-size:var(--type-display);line-height:1.08}
.project-column-hero .hero-title p{font-size:var(--type-body);line-height:1.6}
.section-heading{margin-bottom:32px}
.services-home>h2{margin-bottom:32px}
.service-list h3,.card-caption h3,.card-caption h2{font-size:var(--type-item);font-weight:600;line-height:1.3}
.service-list p{font-size:var(--type-body);line-height:1.6}
.card-caption p{font-size:1rem;line-height:1.55}
.card-caption p:last-child{font-size:var(--type-meta)}
.practice-intro>p{font-size:clamp(1.625rem,2.6vw,2.375rem);font-weight:500;line-height:1.4;letter-spacing:-.015em}
.working p{font-size:var(--type-lead);line-height:1.6}
.prose h2,.contact-layout h2,.project-story h2{font-size:clamp(1.5rem,2vw,1.875rem);font-weight:600;line-height:1.3;margin:40px 0 16px}
.prose h2:first-child{margin-top:0}
.prose p{font-size:var(--type-body);line-height:1.7;margin-bottom:24px}
.contact-layout h2:first-child{margin-top:0}
.contact-address{font-size:clamp(1.25rem,2vw,1.625rem);font-weight:600;line-height:1.4}
.studio-section>h2{font-size:var(--type-section);font-weight:600;line-height:1.2;max-width:22ch}
.studio-section>div>p{font-size:var(--type-body);line-height:1.7;max-width:65ch;margin-bottom:24px}
.studio-section>div>.muted{font-size:var(--type-meta);line-height:1.65}
.studio-capabilities h3{font-size:var(--type-item);font-weight:600;line-height:1.3;margin-bottom:12px}
.studio-capabilities article{margin-bottom:32px}
.studio-clients h3{font-size:1.625rem;font-weight:600;line-height:1.25}
.studio-clients p{font-size:var(--type-body);line-height:1.65}
.studio-facts dt,dt{font-size:var(--type-meta);line-height:1.5}
.studio-facts dd{font-size:1.375rem;font-weight:600;line-height:1.4;font-variant-numeric:tabular-nums}
.certificate-trigger strong{font-size:1.25rem;font-weight:600;line-height:1.4;letter-spacing:-.01em}
.certificate-trigger small,.certificate-list li>.muted{font-size:var(--type-meta);line-height:1.6}
.certificate-action{font-size:1rem;font-weight:500}
.certificate-list li>p{font-size:1rem;line-height:1.65}
.certificate-pending{font-size:1rem;line-height:1.65}
.certificate-dialog-header h2{font-size:1.25rem;line-height:1.4;font-weight:600;letter-spacing:-.01em}
.text-link{font-size:1rem;font-weight:500;line-height:1.5}
.site-header nav a{font-size:1rem;font-weight:500;line-height:1.5}
.site-header nav a[aria-current]{font-weight:700}
.studio-jump{gap:12px 28px}
.studio-jump a{font-size:1rem;font-weight:500;line-height:1.5}
.muted,.filter-status,figcaption,.breadcrumbs{font-size:var(--type-meta);line-height:1.65}
.hero-controls{font-size:var(--type-meta);line-height:1.5}
.column-label h2,.column-glass h2{font-size:clamp(1.5rem,2vw,2rem);font-weight:600;line-height:1.25;letter-spacing:-.015em}
.column-label p,.column-glass>p{font-size:var(--type-meta);line-height:1.55;letter-spacing:.01em}
.column-glass>span{font-size:1rem;font-weight:500;line-height:1.5}
.column-glass small{font-size:.8125rem;line-height:1.6;letter-spacing:.01em}
footer{font-size:var(--type-meta);line-height:1.65}
footer .footer-note{font-size:var(--type-meta)}
::selection{background:#244b69;color:#fff}
@media(max-width:700px){
 :root{--type-body:1.0625rem;--type-section:1.875rem;--type-item:1.375rem}
 .project-column-hero .hero-title h1{font-size:var(--type-display)}
 .project-column-hero .hero-title p{font-size:var(--type-body)}
 .studio-section{gap:24px;padding:44px 0}
 .studio-section>h2{max-width:25ch}
 .studio-clients h3{font-size:1.5rem}
 .hero-column .column-glass h2{font-size:1.625rem}
 .certificate-dialog-header h2{font-size:1.125rem}
 .hero-controls{flex-wrap:wrap;gap:8px}
}
