/* Shared typography scale. Keep root size unchanged to respect browser zoom. */
:root {
    --type-body-admin: .875rem;
    --type-body-web: .9375rem;
    --type-small: .8125rem;
    --type-caption: .75rem;
    --type-family: 'Inter', Arial, sans-serif;
}
.admin-app, .frontend-app { font-family: var(--type-family); -webkit-text-size-adjust: 100%; }
.admin-app { font-size: var(--type-body-admin); line-height: 1.6; }
.frontend-app { font-size: var(--type-body-web); line-height: 1.75; }
.admin-app :is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6),
.frontend-app :is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6) { font-family: var(--type-family); line-height: 1.35; letter-spacing: -.02em; }
.admin-app :is(h1,.h1) { font-size: 1.5rem !important; }
.admin-app :is(h2,.h2) { font-size: 1.25rem !important; }
.admin-app :is(h3,.h3) { font-size: 1.125rem !important; }
.admin-app :is(h4,.h4) { font-size: 1.0625rem !important; }
.admin-app :is(h5,.h5) { font-size: 1rem !important; }
.admin-app :is(h6,.h6) { font-size: .9375rem !important; }
.admin-app :is(.form-control,.form-select,.btn,.page-link) { font-size: var(--type-body-admin) !important; line-height: 1.5; }
.admin-app .form-label { font-size: var(--type-small) !important; font-weight: 600; }
.admin-app .table { font-size: var(--type-body-admin); line-height: 1.55; }
.admin-app .table th { font-size: var(--type-small); font-weight: 600; white-space: nowrap; }
.admin-app .table :is(th,td) { padding: .65rem .75rem; }
.admin-app .table .btn { font-size: var(--type-small) !important; }
.admin-app .nav-sidebar .nav-link { font-size: var(--type-body-admin) !important; line-height: 1.45; }
.admin-app .nav-sidebar .nav-header { font-size: var(--type-caption) !important; letter-spacing: .06em; }
.admin-app :is(.small,small,.form-text) { font-size: var(--type-small) !important; line-height: 1.6; }
.admin-app .badge { font-size: var(--type-caption) !important; }
.admin-app :is(.builder-note-list,.login-subtitle) { font-size: var(--type-body-admin) !important; }
.frontend-app :is(h1,.h1) { font-size: clamp(1.75rem, 2.6vw, 2.25rem) !important; }
.frontend-app .hero-section h1 { font-size: clamp(1.875rem, 3.2vw, 2.75rem) !important; line-height: 1.22; }
.frontend-app :is(h2,.h2) { font-size: clamp(1.375rem, 2vw, 1.75rem) !important; }
.frontend-app :is(h3,.h3) { font-size: 1.25rem !important; }
.frontend-app :is(h4,.h4) { font-size: 1.125rem !important; }
.frontend-app :is(h5,.h5) { font-size: 1rem !important; }
.frontend-app :is(h6,.h6) { font-size: .9375rem !important; }
.frontend-app :is(p, .vm-body, .company-story-text, .home-services-description, .home-history-text, .hero-slide-tagline) { font-size: var(--type-body-web) !important; line-height: 1.8; }
.frontend-app :is(.vm-body,.company-story-text) li { font-size: var(--type-body-web) !important; line-height: 1.8; }
.frontend-app .navbar-custom .navbar-nav > .nav-item > .nav-link,
.frontend-app :is(.nav-dropdown-menu .dropdown-item,.nav-dropdown-menu .dropdown-toggle,.mobile-menu-link) { font-size: var(--type-body-admin) !important; line-height: 1.4; }
.frontend-app :is(.section-tag,.hero-kicker,.vm-eyebrow) { font-size: var(--type-caption) !important; letter-spacing: .08em; }
.frontend-app :is(.btn,.form-control,.form-select,.pf-filter) { font-size: var(--type-body-admin) !important; line-height: 1.5; }
.frontend-app :is(.small,small,.form-text,.pf-caption p,.home-service-description,.footer-office-text,.pf-description) { font-size: var(--type-small) !important; line-height: 1.75; }
.frontend-app :is(.pf-kind,.pf-caption>span,.pf-meta,.home-service-badge,.footer-office-title) { font-size: var(--type-caption) !important; line-height: 1.5; }
.frontend-app .pf-caption h3 { font-size: 1rem !important; }
.frontend-app .vm-vision .vm-body { font-size: 1rem !important; }
.frontend-app .footer-dark h6 { font-size: var(--type-body-admin) !important; letter-spacing: .01em; }
.frontend-app .pf-modal-header .modal-title { font-size: 1.0625rem !important; }
.frontend-app :is(.vm-body,.company-story-text) span[style*="font-size"] { font-size: inherit !important; }
@media (max-width: 767.98px) {
    .frontend-app :is(.form-control,.form-select), .admin-app :is(.form-control,.form-select) { font-size: 1rem !important; }
    .frontend-app :is(h3,.h3) { font-size: 1.125rem !important; }
}
