/* Site-wide density tuning: compact, consistent spacing without changing type or color. */
:root {
    --section-padding: clamp(40px, 3.5vw, 52px);
    --page-header-padding: clamp(44px, 3.75vw, 56px);
}

.main-content section:not(.company-page section) { scroll-margin-top: 92px; }

/* One site-wide section rhythm. The important declaration intentionally
   overrides older route-specific premium styles that reintroduced 5–8rem. */
.main-content .section,
.main-content .section-alt,
.main-content .app-section,
.main-content .company-section {
    padding-block: var(--section-padding) !important;
}

.main-content > .section:first-child:has(.page-header) {
    padding-block: var(--page-header-padding) !important;
}

.section-header, .section-title, .app-section-title { margin-bottom: clamp(20px, 2.5vw, 30px); }
.card, [class*="-card"] { --card-space: clamp(18px, 2vw, 26px); }
.form-group, .mb-4 { margin-bottom: 1rem !important; }
.form-control, .form-select { min-height: 44px; }
.btn, button, [class*="button"] { line-height: 1.2; }
.site-footer { padding-top: clamp(44px, 5vw, 68px); }

@media (max-width: 767.98px) {
    :root {
        --section-padding: 34px;
        --page-header-padding: 38px;
    }

    .section-header, .section-title, .app-section-title { margin-bottom: 20px; }
}
