/* Role-based type scale. Layout and brand colors remain in style.css. */
:root{
 --type-display:clamp(2.625rem,3.8vw,4rem);
 --type-section:clamp(2rem,2.6vw,2.625rem);
 --type-subheading:clamp(1.375rem,1.8vw,1.75rem);
 --type-body:1.125rem;
 --type-lead:1.1875rem;
 --type-ui:1rem;
 --type-caption:.875rem;
 --leading-body:1.6;
}
body{font-size:var(--type-body);line-height:var(--leading-body)}
h1,.hero h1{font-size:var(--type-display);line-height:1.12;letter-spacing:-.025em;font-weight:700;text-wrap:balance}
h2,.section h2,.journey h2{font-size:var(--type-section);line-height:1.22;letter-spacing:-.02em;font-weight:700;text-wrap:balance}
h3,.services h3,.stage-body h3,.material-list h3{font-size:var(--type-subheading);line-height:1.3;letter-spacing:-.015em;font-weight:700;text-wrap:balance}
.hero .lead{font-size:var(--type-lead);line-height:var(--leading-body);text-wrap:pretty}
.opening p:not(.section-label),.about p:not(.section-label),.services p,.questions p,.stage-body p,.section-head>p,.materials>div>p:not(.section-label),.material-list p,.contact>div>p:not(.section-label):not(.contact-note),.journey-heading>p:not(.section-label){font-size:var(--type-body);line-height:var(--leading-body)}
.section-label,.hero .intro,.hero-note,.sector-strip,.services a,.text-link,.stage-body ul,.scroll-hint,.process-top,.process-status,label,.contact .contact-note,#form-feedback,footer{font-size:var(--type-ui);line-height:1.5}
.hero .intro,.hero-note,.section-head>p{text-wrap:pretty}
.section-head>p{max-width:360px}
.stage-body ul{line-height:1.65}
.art-caption,.visual-label,.service-mark{font-size:var(--type-caption);line-height:1.5}
summary{font-size:var(--type-body);line-height:1.5}
header nav,.step-controls button,.step-controls button span{font-size:var(--type-ui)}
.brand-description{font-size:var(--type-ui);line-height:1.5}
.brand-description strong{font-size:var(--type-body);line-height:1.5}
input,select,textarea{font-size:var(--type-body);line-height:1.5}
.button,.button.small,.header-actions .button{font-size:var(--type-ui);line-height:1.4}
.text-link,.services a{font-weight:700}
.opening h2 span{display:block}
@media(min-width:721px) and (max-width:1100px){
 :root{--type-display:clamp(2rem,4.1vw,2.625rem);--type-section:1.875rem;--type-subheading:1.375rem}
}
@media(max-width:720px){
 :root{
  --type-display:clamp(1.5rem,calc(10vw - .32rem),3.375rem);
  --type-section:clamp(1.375rem,6.1vw,1.875rem);
  --type-subheading:clamp(1.25rem,5.1vw,1.5rem);
  --type-lead:clamp(1.125rem,4.6vw,1.3125rem);
 }
 .brand-description{font-size:clamp(.8125rem,3.8vw,1rem)}
 .brand-description strong{font-size:clamp(.9375rem,4.1vw,1.125rem)}
 .hero-actions .button,.hero-actions .text-link,.contact form>.button,#project-result .button{font-size:var(--type-body)}
 .section-head>p{max-width:none}
 .section{padding-top:52px;padding-bottom:52px}
 .section h2{margin-bottom:20px}
 .opening h2{font-size:clamp(1.5rem,calc(7.8vw - .27rem),2.625rem);line-height:1.3}
 .opening h2 span{text-wrap:balance}
 .contact h2{font-size:clamp(1rem,calc(6.25vw - .25rem),1.625rem);line-height:1.25}
 .services{gap:30px}
 .section h2 br{display:none}
 .solutions h2 br,.materials h2 br,.about h2 br{display:initial}
}
@media(max-width:359px){
 header nav,.step-controls button span{font-size:.9375rem}
}
