/* Text accessibility controls: minimum legibility plus optional readable/large modes. */
.text-accessibility-toggle {
  min-height: 38px;
  padding: 8px 12px;
  color: #171717;
  background: transparent;
  border: 1px solid rgba(17,17,17,.24);
  border-radius: 999px;
  cursor: pointer;
  font: 700 12px/1.2 "DM Sans",Arial,sans-serif;
  white-space: nowrap;
}
.text-accessibility-toggle:hover { background: rgba(0,0,0,.06); }
.text-accessibility-toggle:focus-visible { outline: 3px solid #111; outline-offset: 3px; }

/* Labels and explanatory text previously dropped as low as 8–10px. */
html :is(.eyebrow,.section-label,.breadcrumbs,.hero-chips span,.form-note,.trust-row,.photo-tag,
.illustration-label,.result-kicker,.intent-kicker,.profile-distance,.demo-note,.text-link,
.mini-consent,.form-status,.editorial-meta,.demand-map-toolbar,.demand-map-visual figcaption,
.demand-area-card__code,.demand-area-card__pulse,.demand-field,.demand-confirm,.footer,.site-footer,
.content-card .number,.data-table thead th,.answer-box span,.step-number,.profile-info p,
.privacy-copy li small,.console-user small,.setting small,.console-footer,
.demand-map-key__item span,.demand-area-card__detail) {
  font-size: max(12px,.75rem);
  line-height: 1.45;
}

html :is(.breadcrumbs,.section-label,.content-card .number,.data-table thead th,.answer-box span,
.editorial-meta,.directory-card small,.definition-card dt,.tool-note) { color:#666; }

html[data-text-mode="readable"] body,
html[data-text-mode="large"] body { font-family: Arial,Helvetica,sans-serif; }

html[data-text-mode="readable"] :where(h1,h2,h3,.brand,.area-card b,.faq-stack summary,.demand-map-summary),
html[data-text-mode="large"] :where(h1,h2,h3,.brand,.area-card b,.faq-stack summary,.demand-map-summary) {
  font-family: Arial,Helvetica,sans-serif;
  font-style: normal;
  font-weight: 700;
  letter-spacing: -.025em;
  line-height: 1.12;
}

html[data-text-mode="readable"] :where(p,li,dd,.hub-card p,.content-card p),
html[data-text-mode="large"] :where(p,li,dd,.hub-card p,.content-card p) {
  line-height: 1.72;
  letter-spacing: .005em;
}

html[data-text-mode="large"] :where(p,li,dd,summary,label,input,select,textarea,button,.site-nav,.desktop-nav,.nav-cta,.link-grid a,.hub-card p,.content-card p) {
  font-size: max(16px,1rem) !important;
}

html[data-text-mode="large"] :where(.eyebrow,.section-label,.breadcrumbs,.hero-chips span,small,.mini-consent,.editorial-meta,.footer,.site-footer) {
  font-size: max(14px,.875rem) !important;
  line-height: 1.5;
}

html[data-text-mode="large"] h1 { font-size: clamp(46px,7vw,78px); }
html[data-text-mode="large"] h2 { line-height: 1.1; }

@media (prefers-contrast: more) {
  .text-accessibility-toggle { color: CanvasText; background: Canvas; border: 2px solid CanvasText; }
  :where(p,small,.section-label,.breadcrumbs) { color: currentColor !important; opacity: .9; }
}

@media (forced-colors: active) {
  .text-accessibility-toggle { border: 2px solid ButtonText; }
}

@media (max-width: 850px) {
  .site-nav .text-accessibility-toggle,
  .desktop-nav .text-accessibility-toggle { display: inline-flex; }
}

@media (max-width: 580px) {
  .text-accessibility-toggle { min-height: 36px; padding: 7px 10px; font-size: 12px; }
  .site-header .nav-cta,
  .site-header > .button-small { display:none; }
  .site-header { gap:8px; }
  html[data-text-mode="large"] .content-shell,
  html[data-text-mode="large"] .site-header,
  html[data-text-mode="large"] .footer { width: calc(100% - 20px); }
}

.skip-link {
  position:fixed;
  top:8px;
  left:8px;
  z-index:9999;
  padding:12px 16px;
  color:#fff;
  background:#111;
  border-radius:6px;
  transform:translateY(-150%);
}
.skip-link:focus { transform:translateY(0); }

:where(a,button,input,select,textarea,summary):focus-visible {
  outline:3px solid #111;
  outline-offset:3px;
}

.content-hero :where(a,button,input,select,textarea,summary):focus-visible,
.dark-band :where(a,button,input,select,textarea,summary):focus-visible,
.footer :where(a,button):focus-visible,
.site-footer :where(a,button):focus-visible {
  outline-color:#fff;
}
