/* APX type scale: all text roles are defined here. Sizes use rem for zoom. */
:root{
  --font-family:Inter,Arial,sans-serif;
  --type-display:4rem;
  --type-section:2.75rem;
  --type-subtitle:1.5rem;
  --type-panel:1.75rem;
  --type-small-title:1.125rem;
  --type-body:1rem;
  --type-label:.875rem;
  --type-caption:.75rem;
  --weight-title:700;
  --weight-body:400;
  --weight-label:650;
  --leading-title:1.25;
  --leading-body:1.7;
  font-family:var(--font-family);
}
body{font-size:var(--type-body);font-weight:var(--weight-body);line-height:var(--leading-body);letter-spacing:0}
h1,h2,h3{font-family:var(--font-family);font-weight:var(--weight-title);letter-spacing:0;overflow-wrap:break-word;text-wrap:balance}
h1{font-size:var(--type-display);line-height:1.15}
h2{font-size:var(--type-section);line-height:var(--leading-title)}
h3{font-size:var(--type-subtitle);line-height:1.35}
p{font-size:var(--type-body);line-height:var(--leading-body)}
.hero h1 span{font-size:var(--type-panel);font-weight:600;line-height:1.4;letter-spacing:0}
.hero-description{font-size:var(--type-body);line-height:var(--leading-body)}
.quote-intro h2{font-size:var(--type-panel);line-height:1.3}
.quote-intro>p{font-size:var(--type-label);line-height:1.65}
.eyebrow,.service-index,.photo-label{font-size:var(--type-caption);font-weight:700;line-height:1.6;letter-spacing:.1em}
.hero .eyebrow{white-space:normal}
.photo-label strong{font-size:var(--type-subtitle);font-weight:700;line-height:1.35;letter-spacing:0}
.photo-label{max-width:calc(100% - 48px)}
.difference-list h3,.principle-content h3{font-size:var(--type-subtitle);line-height:1.35}
.values-grid h3,.process-line h3,.location h3{font-size:var(--type-small-title);line-height:1.4}
.location h3 span{font-size:var(--type-label);font-weight:500}
.location p,.process-line p,.inline-benefits,.load-profile,.brand-slogan{font-size:var(--type-label);line-height:1.65}
.base-benefits dt{font-size:var(--type-body);font-weight:700;line-height:1.5}
.base-benefits dd{font-size:var(--type-body);line-height:var(--leading-body)}
.about-signature{font-size:var(--type-small-title);font-weight:600;line-height:1.6;letter-spacing:0}
.principles-tabs button{font-size:var(--type-small-title);font-weight:650;line-height:1.5;letter-spacing:0}
.principles-tabs button span,.difference-list article>span,.process-line b{font-size:var(--type-caption);font-weight:650;line-height:1.5;letter-spacing:.04em}
.institutional-proof,.institutional-proof p{font-size:var(--type-label);line-height:1.65}
.institutional-proof p{font-weight:700}
.main-nav a{font-size:var(--type-label);font-weight:600;line-height:1.5}
.button,.inline-link,.text-action{font-size:var(--type-body);font-weight:700;line-height:1.5;letter-spacing:0}
.button-small,.header-quote,.mobile-cta a{font-size:var(--type-label);line-height:1.5}
.button-outline{font-weight:600}
.contact-direct{font-size:var(--type-label);line-height:1.6}
.contact-direct strong{font-size:var(--type-small-title);line-height:1.5}
.footer-grid h2{font-size:var(--type-body);font-weight:700;line-height:1.5;letter-spacing:0;text-wrap:wrap}
.footer-grid>div>a:not(.brand),.footer-grid>div>p,.social-links a,.privacy-info,.portal-disabled{font-size:var(--type-label);line-height:1.7}
.footer-bottom p,.privacy-toggle,.portal-disabled span,.social-links a>span{font-size:var(--type-caption);line-height:1.6}
.floating-contact .contact-label{font-size:var(--type-label);font-weight:700;line-height:1.5}
.floating-contact small,.hero-caption,.hero-caption button,.map-fallback,.image-note,.draft-label{font-size:var(--type-caption);line-height:1.6;letter-spacing:0}
.hero-caption{font-weight:600;letter-spacing:.06em}
.field label,.field-group-label{font-size:var(--type-label);font-weight:var(--weight-label);line-height:1.5;letter-spacing:0}
.field label{flex-wrap:wrap;gap:2px 8px}
.field label span{font-size:var(--type-caption);font-weight:400;line-height:1.5}
input,select,.quantity-input select{font-family:var(--font-family);font-size:var(--type-body);font-weight:400;line-height:1.5;letter-spacing:0}
.quote-progress,.quote-progress b,.step-top p,.back-button,.form-status{font-size:var(--type-label);line-height:1.6}
.quote-progress,.step-top p{font-weight:650}
.difference-pagination{font-size:var(--type-label);line-height:1.6;letter-spacing:0}
.difference-pagination button{font-weight:var(--weight-label)}
.field-error,.privacy-note{font-size:var(--type-caption);line-height:1.6}
@media(max-width:960px){:root{--type-display:3.5rem;--type-section:2.5rem}.main-nav a{font-size:var(--type-body)}}
@media(max-width:720px){:root{--type-display:2.5rem;--type-section:2rem;--type-subtitle:1.375rem;--type-panel:1.5rem}.hero h1 span{font-size:1.375rem}.field-error,.privacy-note{font-size:.8125rem}}
@media(max-width:370px){:root{--type-display:2.25rem}}
.contact-channel span,.contact-note{font-size:var(--type-label);line-height:1.65}
.contact-channel strong{font-size:var(--type-small-title);font-weight:700;line-height:1.5}
.contact-schedule dt,.contact-fallback label{font-size:var(--type-label);font-weight:650;line-height:1.5}
.contact-schedule dd{font-size:var(--type-body);line-height:1.7}
.contact-form textarea{font-family:var(--font-family);font-size:var(--type-body);font-weight:400;line-height:1.7;letter-spacing:0}
