/*
 * Site-wide type floors for supporting copy.
 *
 * Keep this targeted: the previous universal !important rule flattened large
 * editorial controls (including the site menu and questionnaire choices) to
 * the small-copy floor. These tokens raise only labels, metadata and body copy.
 */
:root {
  --readable-micro: clamp(12px, .62vw, 14px);
  --readable-small: clamp(13px, .72vw, 16px);
  --readable-body: clamp(14px, .82vw, 18px);
}

/* Persistent navigation, section labels, captions and compact metadata. */
:is(
  .gateway-header,
  .gateway-footer,
  .eyebrow,
  .sector-number,
  .sector-kicker,
  .sector-note,
  .branch-announcement-kicker,
  .branch-announcement-note,
  .branch-entry-kicker,
  .branch-entry-note,
  .header,
  .brief-header,
  .contact-header,
  .explore-header,
  .project-header,
  .menu-header,
  .typeface-switcher,
  .header-brand span,
  .contact-header .brand span,
  .hero-copy p,
  .statement p,
  .audience-intro p,
  .final-copy p,
  .kicker,
  .projects-heading p,
  .edge-note,
  .project-rail figcaption,
  .systems-prologue-footer,
  .systems-log-title > span,
  .day-cycle-status,
  .lighting-state-status,
  .scene-03-note,
  .scene-03-axis span,
  .scene-04-footer,
  .cinema-frame span,
  .scene-06-card span,
  .systems-rail span,
  .outdoor-state-status,
  .scene-07-coordinate,
  .integration-rail figcaption,
  .infrastructure-list,
  .power-state,
  .power-reserve-note,
  .res-projects-heading p,
  .res-projects-heading small,
  .res-project-rail figcaption,
  .res-project-rail .more-project small,
  .scene-11-note,
  .scene-12-footer,
  .scene-12-type a,
  .menu-nav a > span,
  .menu-preview span,
  .menu-secondary,
  .com-projects-heading small,
  .com-project-rail figcaption,
  .com-project-rail .more-project small,
  .back-link,
  .hero-copy > p:first-child,
  .scroll-cue,
  .section-index,
  .category-end > p,
  .project-proof-heading > p,
  .approach-grid article > span,
  .system-copy > p:first-of-type,
  .capabilities-heading > p,
  .capability-row > span,
  .proof-copy > p:first-of-type,
  .application-card figcaption,
  .assembly-study span,
  .category-end > a,
  .category-switcher a,
  .contact-intro dt,
  .contact-intro dd,
  .intro-copy p,
  .enquiry > header > p,
  label > span,
  legend,
  fieldset label span,
  .submit-row p,
  .form-note,
  .submit-row button,
  .brief-cta,
  .final-copy > a,
  .project-hero-copy p,
  .project-index,
  .project-intro-label,
  .project-details li,
  .gallery-item figcaption,
  .project-footer p,
  .project-footer-nav,
  .work-index-heading p,
  .work-card figcaption,
  .scene-copy p,
  .summary-heading p,
  .intro-index span,
  .continue-button,
  .editorial-slider > span,
  .selection-note,
  .word-composition > button.is-selected::after,
  .friction-list > button:not(.continue-button) span,
  .editorial-slider > i,
  .investment-slider > i,
  .systems-grid button > span,
  .systems-grid button > i,
  .validation-note,
  .submit-note,
  .summary-card span,
  .summary-actions button,
  .brief-progress
) {
  font-size: var(--readable-micro) !important;
}

/* Supporting sentences and compact form controls. */
:is(
  .intro,
  .hero-copy > span,
  .statement > span,
  .intro-copy > span,
  .enquiry > header > span,
  .approach-grid p,
  .system-copy > p:last-child,
  .capability-row p,
  .project-proof-copy,
  .scene-copy > span,
  .summary-heading > span,
  .investment-slider > span
) {
  font-size: var(--readable-small) !important;
}

:is(input, select, textarea) {
  font-size: var(--readable-body) !important;
}

/* Restore the intended editorial scale for interactive choices. */
.menu-nav a {
  font-size: clamp(34px, 3.25vw, 56px) !important;
}

.word-composition > button:not(.continue-button) {
  font-size: clamp(38px, 4vw, 74px) !important;
}

.friction-list > button:not(.continue-button) {
  font-size: clamp(18px, 1.7vw, 30px) !important;
}

.systems-grid button > strong {
  font-size: clamp(18px, 1.55vw, 28px) !important;
}

@media (max-width: 760px) {
  :root {
    --readable-micro: 12px;
    --readable-small: 13px;
    --readable-body: 16px;
  }

  .menu-nav a {
    font-size: clamp(28px, 8vw, 42px) !important;
  }

  .word-composition > button:not(.continue-button) {
    font-size: clamp(34px, 10vw, 54px) !important;
  }
}
