/* Shared screen typography. Keep reading text distinct from small labels. */
@media screen {
  :root {
    --gutter: clamp(22px, 3vw, 72px);
    --muted: #475b6b;
    --text-body: 1.125rem;
    --text-ui: 1rem;
    --text-small: .875rem;
    --text-label: .8125rem;
  }

  body { font-size: var(--text-body); line-height: 1.7; }
  .wrap { width: 100%; max-width: none; }
  .policy { max-width: none; }
  .concept-bar { font-size: .75rem; letter-spacing: .08em; }
  .concept-bar span:last-child { opacity: .85; }
  .brand { width: 360px; }
  .header-inner { height: 116px; }
  html { scroll-padding-top: 140px; }
  .page-intro h1 { font-size: clamp(2rem, 3.5vw, 3.25rem); max-width: none; }
  .main-nav { font-size: .9375rem; }
  .nav-panel { width: 360px; max-width: calc(100vw - 2 * var(--gutter)); max-height: calc(100dvh - 160px); overflow-y: auto; }
  .main-nav details:nth-last-of-type(-n+2) .nav-panel { left: auto; right: 0; }
  .nav-panel a { font-size: var(--text-ui); line-height: 1.55; }
  .eyebrow, .hero .eyebrow, .page-intro .eyebrow {
    font-size: var(--text-label);
    line-height: 1.6;
    letter-spacing: .1em;
  }

  .hero-copy > p {
    font-size: var(--text-body);
    line-height: 1.7;
    max-width: 34rem;
    color: var(--muted);
  }
  .button, .text-link { font-size: var(--text-ui); line-height: 1.5; }
  .button { min-height: 52px; }
  .flow-panel .panel-label { font-size: .75rem; letter-spacing: .08em; }
  .panel-bottom p { font-size: .8125rem; line-height: 1.6; max-width: 170px; }
  .event-date small { font-size: var(--text-small); line-height: 1.5; }
  .event-strip h2 { font-size: 1.5rem; line-height: 1.3; }
  .event-strip p { font-size: var(--text-ui); line-height: 1.6; }
  .event-tag { font-size: .75rem; line-height: 1.6; }
  .section-heading > p { font-size: var(--text-body); line-height: 1.65; }
  .direction .number { font-size: var(--text-label); }
  .direction p { font-size: var(--text-ui); line-height: 1.65; }
  .knowledge > div > p { font-size: 1.0625rem; line-height: 1.7; color: #dce5eb; }
  .knowledge-list a { font-size: 1.0625rem; line-height: 1.55; }
  .fact p { font-size: var(--text-ui); line-height: 1.6; max-width: 260px; }
  .news-card time, .archive-row time { font-size: var(--text-small); }
  .news-card p, .archive-row p { font-size: var(--text-ui); line-height: 1.65; }

  .footer p, .footer a { font-size: var(--text-ui); line-height: 1.65; }
  .footer-bottom { flex-wrap: wrap; font-size: var(--text-small); gap: 16px 24px; }
  .footer-bottom a, .footer-bottom > span { font-size: var(--text-small); }
  .breadcrumb { font-size: var(--text-body); line-height: 1.5; }
  .content-intro > .eyebrow, .services-page__intro .eyebrow, .page-intro > .eyebrow {
    font-size: var(--text-body); line-height: 1.5; letter-spacing: .055em;
  }
  .page-intro p { font-size: var(--text-body); line-height: 1.7; }
  .page-actions, .page-actions button { font-size: var(--text-small); line-height: 1.6; }
  .sitemap-links a { font-size: var(--text-ui); line-height: 1.6; }

  .search-input { font-size: var(--text-body); }
  .search-hint { font-size: var(--text-small); line-height: 1.6; }
  .search-result strong { font-size: 1.125rem; line-height: 1.5; }
  .search-result small { font-size: var(--text-ui); line-height: 1.6; }
  .table-filter label { font-size: var(--text-ui); line-height: 1.6; }
  .table-filter input { font-size: var(--text-body); }
  .table-filter .count { font-size: var(--text-small); line-height: 1.6; }
  .empty-state { font-size: 1.0625rem; line-height: 1.7; }
  .pagination { font-size: var(--text-ui); line-height: 1.6; }
  .preview-notice { font-size: .9375rem; line-height: 1.65; }
  .brand-grid p, .brand-grid a { font-size: var(--text-ui); line-height: 1.65; }
  .brand-review-note { font-size: .9375rem; line-height: 1.65; }
  .document-list > a { font-size: 1.0625rem; line-height: 1.6; }
  .document-list small { font-size: var(--text-small); }
  .contact-fields label { font-size: var(--text-ui); }
  .contact-fields input, .contact-fields textarea { font-size: var(--text-body); line-height: 1.6; }
  .contact-form .consent { font-size: .9375rem; line-height: 1.65; }
  .form-status { font-size: var(--text-ui); line-height: 1.65; }
  .mobile-nav a { font-size: 1.0625rem; line-height: 1.55; }
}

@media screen and (max-width: 1180px) {
  .main-nav { font-size: .875rem; }
  .brand { width: 280px; }
  .header-inner { height: 104px; }
}

@media screen and (min-width: 1181px) and (max-width: 1400px) {
  .brand { width: 320px; }
  .header-inner { height: 104px; }
}

@media screen and (min-width: 641px) and (max-width: 950px) {
  .brand { width: 300px; }
}

@media screen and (max-width: 640px) {
  :root { --text-body: 1.0625rem; --text-label: .75rem; }
  .concept-bar { font-size: .6875rem; }
  .header-inner { height: 96px; }
  .brand { width: clamp(160px, calc(100% - 96px), 280px); }
  .page-intro h1 { font-size: 2.125rem; }
  .event-date small { display: block; margin: 8px 0 0; }
  .hero-copy > p { max-width: 34rem; }
}

@media screen and (min-width: 1800px) {
  .archive-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .sitemap-links { columns: 3; }
}

/* The registry is a data page and needs the available screen width. */
@media screen {
  .registry table { table-layout: fixed; min-width: 1080px; }
  .registry .registry-number { width: 14rem; }
  .registry .registry-tax-id { width: 10rem; }
  .registry .registry-organization { width: 26%; }
  .registry th, .registry td { overflow-wrap: normal; word-break: normal; hyphens: none; padding: 16px 20px; }
  .registry th:nth-child(-n+2), .registry td:nth-child(-n+2) { white-space: nowrap; }
  .registry td:nth-child(-n+2) { font-variant-numeric: tabular-nums; }
}
