/* Cross-page typography, branding and responsive safeguards. Loaded last. */
body { font-family: var(--font-body); font-size: 1rem; }
.brand img, .nav-drawer-brand img, .legal-logo, .admin-brand img, .admin-drawer-brand img {
  width: 192px; height: auto; max-width: 100%; aspect-ratio: 299.99271 / 33.8186; object-fit: contain;
}
.login-card .logo { width: 220px; height: auto; margin-bottom: 1.75rem; }
.login-card h1 { font-size: 1.5rem; line-height: 1.25; }
.nav-links, .legal-links, .admin-nav-action { font-size: .875rem; }
.nav-primary-links > a, .legal-links > a { min-height: 44px; display: inline-flex; align-items: center; }
.section-kicker, .eyebrow, .meta-line, .data-table th, .flow-step b { font-size: .8125rem; }
.section-lead, .hero-text, .lede, .legal-content, .section-body > p { font-size: 1rem; line-height: 1.7; }
.form-hint, .field-hint, .field span, .field label, .login-card label, .form-status,
.custom-select-button, .button, .legal-button, .toc a, .toc strong, .secondary-link { font-size: .875rem; }
.login-card .intro, .login-card input, .login-card button { font-size: 1rem; }
.login-card .meta { font-size: .8125rem; flex-wrap: wrap; }
.login-card .meta a { color: var(--bd-admin-muted, #747477); }
.login-card .error, .login-card .success, .notice { font-size: .875rem; line-height: 1.6; overflow-wrap: anywhere; }
.fact span, .flow-step span, .list-item p, .note, footer { font-size: .875rem; }
.data-table { font-size: .875rem; }
.legal-button, .button, .nav-toggle, .nav-drawer-close, .admin-nav-toggle,
.admin-drawer-close, .admin-nav-action, .bd-consent__button { min-height: 44px; }
.nav-toggle, .nav-drawer-close, .admin-nav-toggle, .admin-drawer-close { min-width: 44px; }
.hero-grid > *, .section-grid > *, .form-shell > *, .fields > *, .legal-grid > *, .grid > * { min-width: 0; }
.table-scroll, .tablewrap, .table-wrap { max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; }
.cf-turnstile, [data-turnstile-slot] { max-width: 100%; }
.bd-consent { max-height: min(560px, 70svh); overflow: auto; overscroll-behavior: contain; }
.bd-consent__text { font-size: .875rem; }
.bd-consent__actions { flex-wrap: wrap; }
.space-after { margin-bottom: 14px; }
.space-after-small { margin-bottom: 10px; }
.space-before { margin-top: 14px; }
.no-margin { margin: 0; }
.logout-form { margin: 0; }
.logout-form button { font: inherit; cursor: pointer; }
.login-card .logout-form button.secondary-link { padding: 0; border: 0; background: transparent; text-align: left; font-size: .875rem; font-weight: 500; }
@media (max-width: 1080px) {
  h1 { font-size: clamp(2.2rem, 5vw, 3.5rem); }
  .brand img, .legal-logo, .admin-brand img { width: 180px; }
  .nav-links, .admin-nav-links { max-height: 100dvh; overflow-y: auto; }
  .js .nav-links:not(.is-open), .js .admin-nav-links:not(.is-open) { visibility: hidden; box-shadow: none; }
  .nav-primary-links > a, .nav-contact { font-size: 1rem; }
}
@media (max-width: 760px) {
  .container { width: min(100% - 32px, var(--container, 1160px)); }
  h1 { font-size: clamp(2rem, 7vw, 2.8rem); line-height: 1.16; letter-spacing: -.025em; }
  .hero { padding-top: 48px; padding-bottom: 48px; }
  .form-page, .section { padding-block: 48px; }
  .form-shell, .section-grid, .hero-grid, .legal-grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .form-aside, .section-aside { position: static; }
  input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select, textarea,
  .custom-select-button { font-size: 1rem; min-height: 44px; }
  .custom-select-list { max-height: min(320px, 48svh); overflow-y: auto; }
  .legal-links { white-space: normal; flex-wrap: wrap; gap: 4px 16px; overflow: visible; }
  .legal-nav { gap: 12px; }
  .legal-section { scroll-margin-top: 150px; }
  .data-table th, .data-table td { padding: 12px; }
  .bd-consent { bottom: max(8px, env(safe-area-inset-bottom)); }
  .bd-consent__actions { gap: 8px; }
  .bd-consent__button { flex: 1 1 140px; }
}
@media (max-width: 380px) {
  .brand img, .legal-logo, .admin-brand img { width: 168px; }
  .login-card { padding: 22px 18px; }
  .login-card .logo { width: 196px; }
  .cta-strip, .hero-actions, .community-hero-actions { gap: 12px; }
}
