/* User-selected display options. The approved design remains the default. */
.footer-settings { width: 2.75rem; height: 2.75rem; min-width: 2.75rem; min-height: 2.75rem; padding: 0.4375rem; border: 1px solid currentColor; border-radius: 50%; background: transparent; color: inherit; vertical-align: middle; }
.footer-settings svg { display: block; width: 100%; height: 100%; }
.footer-settings:hover { color: var(--gold-light); background: #ffffff0d; }
.site-footer noscript p { max-width: 60ch; line-height: 1.65; }
.a11y-dialog-open { overflow: hidden; }
.a11y-dialog { width: min(34rem, calc(100% - 2rem)); max-height: calc(100dvh - 2rem); margin: auto; padding: 1.5rem; border: 1px solid #637080; border-radius: 0.5rem; background: #fff; color: #1b2a3a; overflow: auto; overscroll-behavior: contain; box-shadow: 0 1rem 4rem #0004; }
.a11y-dialog::backdrop { background: #071422b3; }
.a11y-dialog-header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.75rem 1rem; }
.a11y-dialog h2 { margin: 0; font-size: 1.5rem; line-height: 1.3; letter-spacing: normal; }
.a11y-dialog button { min-height: 2.75rem; border: 1px solid #637080; padding: 0.625rem 0.875rem; border-radius: 0.25rem; background: #fff; color: #13263b; font: inherit; font-weight: 700; overflow-wrap: anywhere; }
.a11y-dialog button:hover { background: #edf1f5; }
.a11y-dialog button[aria-disabled="true"] { color: #637080; cursor: default; }
.a11y-dialog button[aria-disabled="true"]:hover { background: #fff; }
.a11y-close span { margin-left: 0.25rem; }
.a11y-font-controls { min-width: 0; margin: 1.5rem 0 0; padding: 1rem; border: 1px solid #637080; border-radius: 0.25rem; }
.a11y-font-controls legend { padding-inline: 0.25rem; font-weight: 700; }
.a11y-font-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.75rem; }
.a11y-font-actions button { min-width: 2.75rem; }
.a11y-font-actions output { font-variant-numeric: tabular-nums; font-weight: 700; }
.a11y-options { margin-block: 1rem; }
.a11y-option { display: flex; align-items: center; gap: 0.75rem; padding-block: 0.875rem; border-bottom: 1px solid #d9e0e6; min-height: 2.75rem; cursor: pointer; }
.a11y-option span { min-width: 0; overflow-wrap: anywhere; line-height: 1.5; }
.a11y-option input { appearance: auto; flex: 0 0 auto; width: 1.5rem; height: 1.5rem; margin: 0; accent-color: #13263b; }
.a11y-note { font-size: 0.875rem; color: #536372; }
.a11y-dialog .a11y-reset { width: 100%; }
.a11y-statement-link { margin-bottom: 0; }
.a11y-statement-link a { text-decoration: underline; }

:root[data-a11y-font-size="80"] { font-size: 80%; --a11y-scale: 0.8; }
:root[data-a11y-font-size="90"] { font-size: 90%; --a11y-scale: 0.9; }
:root[data-a11y-font-size="110"] { font-size: 110%; --a11y-scale: 1.1; }
:root[data-a11y-font-size="120"] { font-size: 120%; --a11y-scale: 1.2; }
:root[data-a11y-font-size="130"] { font-size: 130%; --a11y-scale: 1.3; }
:root[data-a11y-font-size="140"] { font-size: 140%; --a11y-scale: 1.4; }
:root[data-a11y-font-size="150"] { font-size: 150%; --a11y-scale: 1.5; }

/* Reading mode simplifies the main content; controls retain their familiar font. */
:root[data-a11y-reading] body { background: #f9f6f1; }
:root[data-a11y-reading] main { font-family: Georgia, 'Times New Roman', serif; }
:root[data-a11y-reading] main .container { max-width: 50rem; }
:root[data-a11y-reading] main p:not(.eyebrow) { font-size: 1.125rem; line-height: 1.8; }
:root[data-a11y-reading] main :is(h1, h2, h3) { line-height: 1.5; letter-spacing: normal; }
:root[data-a11y-reading] :is(.about, .section-tinted, .legal-content) { background: #f9f6f1; }
:root[data-a11y-reading] :is(.about-grid, .station-grid, .offer-grid, .team-grid, .contact-grid) { grid-template-columns: minmax(0, 1fr); }
:root[data-a11y-reading] .media-panel { flex-wrap: wrap; }
:root[data-a11y-reading] .person p { min-height: 0; }
:root[data-a11y-reading] .station-label { font-family: Arial, Helvetica, sans-serif; line-height: 1.25; }

/* Solid high-contrast surfaces. White logo areas preserve the original images. */
:root[data-a11y-contrast] { --navy: #000; --ink: #fff; --muted: #fff; --gold: #ff0; --gold-light: #ff0; --surface: #000; --line: #fff; background: #000; color: #fff; }
:root[data-a11y-contrast] :is(body, .site-header, #site-nav, .hero, .about, .section-tinted, .station, .offer, .person, .contact-panel, .media-panel, .legal-content, .legal-container, .legal-bottom, .site-footer, .a11y-dialog) { background: #000; color: #fff; }
:root[data-a11y-contrast] :is(.hero-headline em, .hero-description, .media-panel h2 + p, .prose p, .legal-copy, .legal-copy h1, .legal-copy h2, .a11y-note) { color: #fff; }
:root[data-a11y-contrast] .faq-item summary:hover { color: #ff0; }
:root[data-a11y-contrast] .station-logo { background: #fff; }
:root[data-a11y-contrast] .station-label { background: #fff; color: #000; }
:root[data-a11y-contrast] :is(a, .footer-settings) { color: #ff0; }
:root[data-a11y-contrast] .brand { background: #fff; }
:root[data-a11y-contrast] :is(.button, .menu-toggle, .a11y-dialog button) { background: #000; color: #ff0; border: 1px solid #ff0; }
:root[data-a11y-contrast] :is(.button, .menu-toggle, .a11y-dialog button):hover { background: #262626; }
:root[data-a11y-contrast] .a11y-dialog button[aria-disabled="true"] { color: #ccc; border-color: #ccc; }
:root[data-a11y-contrast] :is(.a11y-dialog, .a11y-font-controls, .a11y-option, .faq-item, .legal-copy h1) { border-color: #fff; }
:root[data-a11y-contrast] .a11y-option input { accent-color: #ff0; }
:root[data-a11y-contrast] :focus-visible { outline-color: #00ffff; }
:root[data-a11y-contrast] .portrait { filter: grayscale(1); }
:root[data-a11y-contrast] .legal-copy .editorial-note { background: #000; color: #fff; border-color: #ff0; }

:root[data-a11y-links] a:not(.brand) { background: #ff0; color: #000; text-decoration: underline; font-weight: 700; }
:root[data-a11y-links] .footer-settings { background: #ff0; color: #000; text-decoration: underline; font-weight: 700; }
:root[data-a11y-motion] { scroll-behavior: auto; }
:root[data-a11y-motion] *, :root[data-a11y-motion] *::before, :root[data-a11y-motion] *::after { animation: none; transition: none; scroll-behavior: auto; }

@media (max-width: 30rem) {
  .a11y-dialog { width: calc(100% - 1rem); max-height: calc(100dvh - 1rem); padding: 1rem; }
}
@media (forced-colors: active) {
  .a11y-dialog, .a11y-dialog button, .a11y-font-controls { border-color: ButtonText; }
  .a11y-option input { forced-color-adjust: auto; }
  :root[data-a11y-contrast] :focus-visible { outline-color: Highlight; }
}
@media print {
  .a11y-dialog, .footer-settings { display: none; }
}
