/* Shared type roles across every route. This layer supersedes legacy page-specific sizes. */
:root{
 --font-heading:'Poppins',Arial,Helvetica,sans-serif;
 --font-body:Arial,Helvetica,sans-serif;
 --type-hero:clamp(2.5rem,4.5vw,4rem);
 --type-section:clamp(1.75rem,3vw,2.5rem);
 --type-heading:clamp(1.125rem,1.6vw,1.375rem);
 --type-body:1rem;
 --type-lead:1.125rem;
 --type-label:.875rem;
 --type-contact:1.375rem;
 --leading-body:1.75;
 --leading-label:1.6;
}
body{font-family:var(--font-body);font-size:var(--type-body);line-height:var(--leading-body)}
:root body h1,:root body h2,:root body h3,:root body h4{
 font-family:var(--font-heading)!important;font-weight:400!important;
 text-transform:none;
}
:root body h1{font-size:var(--type-hero)!important;line-height:1.16!important;letter-spacing:-.035em!important;margin-bottom:1.5rem}
:root body h2{font-size:var(--type-section)!important;line-height:1.25!important;letter-spacing:-.025em!important}
:root body h3,:root body h4{font-size:var(--type-heading)!important;line-height:1.4!important;letter-spacing:-.015em!important}
:root body p,:root body address{
 font-family:var(--font-body)!important;font-size:var(--type-body)!important;
 line-height:var(--leading-body)!important;letter-spacing:normal!important;font-weight:400;
}
:root body .hero-copy>p,:root body .subpage-hero-inner>p,:root body .contact-copy>p{
 font-size:var(--type-lead)!important;line-height:1.7!important;
}
:root body .review-excerpt{font-family:var(--font-heading)!important;font-size:var(--type-heading)!important;line-height:1.65!important;letter-spacing:-.015em!important}
/* Utility headings and metadata use the same compact role, regardless of HTML tag. */
:root body .footer-main h3,:root body .service-capabilities h3{
 font-family:var(--font-body)!important;font-size:var(--type-label)!important;
 line-height:var(--leading-label)!important;letter-spacing:normal!important;text-transform:none!important;
}
:root body .operations-team-note h2{font-size:var(--type-heading)!important;line-height:1.4!important;letter-spacing:-.015em!important}
:root body .modal-header h2{font-size:var(--type-heading)!important;line-height:1.4!important;letter-spacing:-.015em!important}
:root body label,:root body .header nav a,:root body .button,:root body .text-link,
:root body .tabs button,:root body .footer-links>a,:root body .footer-bottom>a,
:root body .motion-toggle,:root body .review-pause,:root body .rating-link,
:root body .section-context,:root body .contact-label,:root body .service-geography,
:root body .spec-list span,:root body .panel-tag,:root body .eyebrow{
 font-family:var(--font-body)!important;font-size:var(--type-label)!important;
 line-height:var(--leading-label)!important;letter-spacing:normal!important;
}
:root body .footer-bottom>p,:root body .footer-brand>p,
:root body .hero-note,:root body .form-note,:root body .modal-footer p,
:root body .general-status,:root body .service-scope,:root body .updates-channels>p{
 font-size:var(--type-label)!important;line-height:var(--leading-label)!important;
}
:root body input,:root body textarea,:root body select,:root body summary,:root body .spec-list strong{
 font-family:var(--font-body)!important;font-size:var(--type-body)!important;
 line-height:1.5!important;letter-spacing:normal!important;
}
:root body .contact-phone,:root body .email{
 font-family:var(--font-body)!important;font-size:var(--type-contact)!important;
 line-height:1.5!important;letter-spacing:normal!important;font-weight:400!important;
}
:root body .updates-channel>span:first-child{font-family:var(--font-heading);font-size:var(--type-heading)!important;line-height:1.4!important}
:root body .updates-channel>span:last-child{font-family:var(--font-body);font-size:var(--type-label)!important;line-height:var(--leading-label)!important}
/* Keep heading-to-copy rhythm consistent without changing structural layout spacing. */
:root body .section-top h2,:root body .use-cases-heading h2,:root body .service-stage-heading h2{margin-bottom:0}
:root body .team-member h3,:root body .values-list h3,:root body .use-cases-grid h3,
:root body .overview-card h3,:root body .contact-info-block h3,:root body .contact-office h3{margin-bottom:.75rem}
@media(max-width:700px){:root{--type-hero:clamp(2.125rem,8.8vw,3rem);--type-section:1.75rem;--type-heading:1.25rem;--type-lead:1rem}}

/* Contact labels and supporting details use the shared compact text role. */
:root body .office-contact-details h3{font-family:var(--font-body)!important;font-size:var(--type-label)!important;line-height:var(--leading-label)!important;letter-spacing:normal!important;color:var(--muted)}
:root body .office-contact-details p,:root body .office-map-actions p{font-size:var(--type-label)!important;line-height:var(--leading-label)!important}
