/* ==========================================================================
   MTI — SHARED ACCESSIBILITY + LEGIBILITY LAYER
   Loaded after each page's inline <style> so these rules take precedence.
   Sizes use rem so the accessibility widget's text-size control scales
   links and buttons along with the rest of the page.
   Targets WCAG 2.1 Level AA.
   ========================================================================== */

:root {
  /* Lighter brand red for small text on dark backgrounds (≈6:1 on #0a0a0a).
     The brand red (#E8192C) stays for backgrounds and large display text. */
  --red-text: #ff4d5e;
  --link-muted: #c4c4c4;
}

/* Respect a user's 200% text zoom and system settings */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }

/* Screen-reader-only utility (available on every page) */
.sr-only {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

/* ── FOCUS ─────────────────────────────────────────────────────────────── */
*:focus-visible { outline: 3px solid var(--white) !important; outline-offset: 3px !important; box-shadow: 0 0 0 6px var(--red) !important; }
.skip-to-main { font-size: 1.125rem; letter-spacing: 0.1em; padding: 16px 24px; }

/* ── NAVIGATION ────────────────────────────────────────────────────────── */
.nav-links a {
  font-size: 1.1875rem; /* 19px */
  letter-spacing: 0.08em;
  color: rgba(255,255,255,0.92);
  padding: 10px 0;
  display: inline-block;
}
.nav-links a:hover, .nav-links a.active { color: var(--red-text); }
.nav-links a.active { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 6px; }
@media (max-width: 1240px) and (min-width: 901px) {
  .nav-links { gap: 22px; }
  .nav-links a { font-size: 1.0625rem; letter-spacing: 0.05em; }
}
.nav-cta { font-size: 1.0625rem; letter-spacing: 0.08em; padding: 12px 24px; min-height: 44px; display: inline-flex; align-items: center; }

/* Hamburger: 44×44 touch target */
.nav-toggle { width: 44px; height: 44px; }
.nav-toggle span { left: 6px; width: 32px; }
.nav-toggle span:nth-child(1) { top: 13px; }
.nav-toggle span:nth-child(2) { top: 21px; }
.nav-toggle span:nth-child(3) { top: 29px; }
.nav-toggle.active span:nth-child(1), .nav-toggle.active span:nth-child(3) { top: 21px; }

@media (max-width: 900px) {
  /* Keep the closed off-canvas menu out of the keyboard tab order */
  .nav-links { visibility: hidden; transition: transform .35s ease, visibility 0s linear .35s; }
  .nav-links.active { visibility: visible; transition: transform .35s ease, visibility 0s; }
  .nav-links a { font-size: 1.875rem; padding: 18px 0; color: rgba(255,255,255,0.95); }
}

/* ── BUTTONS (primary calls to action) ─────────────────────────────────── */
.btn-primary, .btn-secondary, .btn-tickets, .btn-red, .btn-out,
.submit-btn, .konquer-btn, .cta-band a, .tier-btn,
.email-form button, .signup-form button[type="submit"] {
  font-size: 1.25rem;          /* 20px, up from 13–15px */
  letter-spacing: 0.1em;
  line-height: 1.25;
  min-height: 52px;
  padding-top: 15px; padding-bottom: 15px;
  display: inline-flex; align-items: center; justify-content: center; text-align: center;
}
.email-form button, .signup-form button[type="submit"] { display: flex; }
.btn-secondary { border-color: rgba(255,255,255,0.7); }
.btn-out { border-color: rgba(255,255,255,0.7); }
.btn-primary:hover, .btn-red:hover { color: var(--red-text); border-color: var(--red-text); }

/* Secondary / compact buttons */
.card-btn, .tier a, .flyer-download, .filter-btn, .social-btn {
  font-size: 1.125rem;         /* 18px, up from 11–13px */
  letter-spacing: 0.08em;
  line-height: 1.25;
  min-height: 48px;
  padding-top: 13px; padding-bottom: 13px;
}
.card-btn { display: inline-flex; align-items: center; }
.card-btn.outline { border-color: rgba(255,255,255,0.7); }
.card-btn.outline:hover { color: var(--red-text); border-color: var(--red-text); }
.tier a, .flyer-download { color: var(--red-text); border-color: var(--red-text); }
.filter-btn { color: rgba(255,255,255,0.88); border-color: #555; }
.social-btn { color: rgba(255,255,255,0.88); border-color: #555; }
.social-btn:hover { color: var(--red-text); border-color: var(--red-text); }
@media (max-width: 768px) {
  .btn-primary, .btn-secondary, .btn-tickets, .btn-red, .btn-out { font-size: 1.1875rem; padding: 15px 24px; }
  .nav-cta { font-size: 1rem; padding: 10px 16px; }
  .social-btn { font-size: 1rem; padding: 12px 16px; }
  .filter-btn { font-size: 1rem; padding: 12px 16px; }
}

/* Social cards (MTI 3 page) */
.social-card .platform { font-size: 1.75rem; }
.social-card .handle { font-size: 1rem; color: var(--red-text); letter-spacing: 0.06em; }
.social-card p { font-size: 1rem; color: rgba(255,255,255,0.8); }
.social-card .follow { font-family: 'Barlow Condensed', sans-serif; font-size: 1.125rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--white); display: inline-block; margin-top: 12px; text-decoration: underline; text-underline-offset: 4px; }

/* ── TEXT LINKS ────────────────────────────────────────────────────────── */
/* Links in running text are underlined so they don't rely on colour alone (WCAG 1.4.1) */
main p a, main li a:not([class]), .info-row .iv a, .text-link, .signup-consent a {
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
}
.text-link { color: var(--red-text); font-weight: 600; }
.info-row .iv { font-size: 1.0625rem; color: rgba(255,255,255,0.88); }
.info-row .iv a { color: var(--red-text); font-weight: 600; }
.info-row .il { font-size: 0.9375rem; color: rgba(255,255,255,0.7); letter-spacing: 0.08em; }
.toc li { font-size: 1.0625rem; }
.toc a { color: rgba(255,255,255,0.9); text-decoration: underline; text-underline-offset: 4px; display: inline-block; padding: 4px 0; }
.toc a:hover { color: var(--red-text); }
.toc-label { color: var(--red-text); }
.contact-box .email-line a, .email-link { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 6px; overflow-wrap: anywhere; }
.contact-box .email-line a:hover, .contact-box .email-line a:focus { color: var(--red-text); }
.contact-box p { font-size: 1rem; color: rgba(255,255,255,0.78); }
main a[href^="mailto:"] { overflow-wrap: anywhere; }

/* ── FOOTER ────────────────────────────────────────────────────────────── */
.footer-nav h4 { font-size: 1rem; color: var(--red-text); letter-spacing: 0.12em; }
.footer-nav ul { gap: 6px; }
.footer-nav a { font-size: 1.125rem; color: var(--link-muted); display: inline-block; padding: 6px 0; }
.footer-nav a:hover { color: var(--white); text-decoration: underline; text-underline-offset: 4px; }
.footer-brand p, .footer-bottom p { font-size: 0.9375rem; color: #a8a8a8; }
.footer-social a { width: 44px; height: 44px; color: #bdbdbd; border-color: #444; }
.footer-social a:hover { color: var(--red-text); border-color: var(--red-text); }
.footer-social a svg { width: 20px; height: 20px; }
.usab-badge { font-size: 0.875rem; color: #a8a8a8; border-color: #444; }

/* ── SMALL TEXT CONTRAST + SIZE ────────────────────────────────────────── */
.cd-label { font-size: 0.875rem; color: rgba(255,255,255,0.85); }
.stat-item .label { font-size: 0.9375rem; color: var(--white); }
.astat .l { font-size: 0.9375rem; color: #a8a8a8; }
.event-card .tag { color: var(--red-text); }
.event-card .meta, .event-card .meta span { font-size: 1rem; color: rgba(255,255,255,0.8); }
.event-card p { font-size: 1rem; color: rgba(255,255,255,0.78); }
.tier .name { font-size: 1rem; }
.tier p { font-size: 1rem; color: rgba(255,255,255,0.78); }
.meta-row span { font-size: 0.9375rem; color: rgba(255,255,255,0.8); }
.badge .b-label { font-size: 0.9375rem; }
.tax-badge p { font-size: 1rem; color: rgba(255,255,255,0.82); }
.donorbox-fineprint { font-size: 0.9375rem; color: rgba(255,255,255,0.72); }
.filter-label { color: var(--red-text); }
.filter-count { font-size: 0.9375rem; color: rgba(255,255,255,0.75); }
.g-overlay-tag { font-size: 1rem; color: var(--red-text); }
.lightbox-meta .tag { color: var(--red-text); }
.class-card p { font-size: 1rem; color: rgba(255,255,255,0.78); }
.tier-card.featured::before { font-size: 0.8125rem !important; }
.signup-form label { font-size: 0.9375rem; color: rgba(255,255,255,0.82); }
.signup-consent label { font-size: 0.875rem; color: rgba(255,255,255,0.78); }
.signup-consent input[type="checkbox"] { width: 22px; height: 22px; }
.signup-close { min-width: 44px; min-height: 44px; color: rgba(255,255,255,0.85); }

/* Placeholders meet 4.5:1 */
input::placeholder, textarea::placeholder { color: rgba(255,255,255,0.65); opacity: 1; }

/* Form fields: larger text, 44px+ targets */
input[type="email"], input[type="text"], input[type="tel"], select, textarea { font-size: 1.0625rem; min-height: 48px; }

/* ── ACCESSIBILITY WIDGET ──────────────────────────────────────────────── */
.a11y-panel { visibility: hidden; transition: opacity .25s, transform .25s, visibility 0s linear .25s; }
.a11y-panel.open { visibility: visible; transition: opacity .25s, transform .25s, visibility 0s; }
.a11y-close { width: 44px; height: 44px; font-size: 1.125rem; color: rgba(255,255,255,0.85); }
.a11y-grp-label { color: var(--red-text); }
.a11y-tog { font-size: 1.0625rem; min-height: 48px; color: rgba(255,255,255,0.9); }
.a11y-tog .a11y-state { font-size: 0.8125rem; color: rgba(255,255,255,0.75); border-color: #555; }
.a11y-tog.on .a11y-state { color: var(--red-text); border-color: var(--red-text); }
.a11y-sizes button { min-height: 44px; }
.a11y-reset { font-size: 1rem; min-height: 48px; color: rgba(255,255,255,0.85); }
.a11y-foot { font-size: 0.8125rem; color: rgba(255,255,255,0.65); }

/* ── MOTION ────────────────────────────────────────────────────────────── */
.stat-strip { position: relative; }
.stat-strip:hover .stat-track, .stat-strip:focus-within .stat-track, .stat-strip.paused .stat-track { animation-play-state: paused; }
.marquee-toggle {
  position: absolute; top: 50%; right: 12px; transform: translateY(-50%); z-index: 2;
  min-width: 44px; min-height: 44px; padding: 0 14px;
  background: var(--black); color: var(--white); border: 2px solid var(--white); cursor: pointer;
  font-family: 'Barlow Condensed', sans-serif; font-size: 1rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;
}
.marquee-toggle:hover { background: var(--white); color: var(--black); }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 0.001s !important; animation-iteration-count: 1 !important; transition-duration: 0.001s !important; }
}

/* ── GALLERY ───────────────────────────────────────────────────────────── */
.g-item:focus-visible .g-overlay, .g-item:focus-visible .g-zoom { opacity: 1; }
.g-overlay-title { font-size: 1.5rem; }
.lightbox-close { font-size: 1.375rem; }

/* ── FIGHT CARD ────────────────────────────────────────────────────────── */
.fc-na { color: rgba(255,255,255,0.7); }
.fight-card .fc-vs { color: rgba(255,255,255,0.75); }
