/* Accessibility & polish — additive, design-safe (loaded after styles.css). */

/* 1) Visible keyboard focus (only for keyboard users, not mouse clicks) */
a:focus-visible,
button:focus-visible,
[role="button"]:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible,
.role-tab:focus-visible,
[data-speaker-filter]:focus-visible,
.mega-trigger:focus-visible {
  outline: 3px solid #f0bd66;
  outline-offset: 2px;
  border-radius: 6px;
}

/* 2) Skip-to-content link for keyboard / screen-reader users */
.skip-to-content {
  position: fixed;
  left: 12px;
  top: -64px;
  z-index: 100000;
  background: #0b1019;
  color: #fff;
  padding: 10px 18px;
  border-radius: 8px;
  font-weight: 800;
  text-decoration: none;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
  transition: top 0.16s ease;
}
.skip-to-content:focus {
  top: 12px;
  outline: 3px solid #f0bd66;
  outline-offset: 2px;
}

/* 3) Respect users who ask for less motion: calm looping/scroll animations
      (ticker, marquee, countdown, confetti, reveals) without breaking layout. */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
}

/* 4) Print: clean, ink-friendly output for letters, tickets, receipts, and pages.
      Hides site chrome/media; black text on white. */
@media print {
  .site-header, .announcement-bar, .live-ticker-bar, .site-footer,
  .skip-to-content, .nav-toggle, .mega-menu, .cookie-consent, [data-consent],
  video, .hero-media, .mkt-hero-video, .destination-welcome-video, .role-tabs-list,
  .live-ticker-wrapper, #live-ticker-wrapper {
    display: none !important;
  }
  html, body { background: #fff !important; color: #000 !important; }
  .section, .mkt-wrap, main { padding: 8px 0 !important; }
  *, *::before, *::after { box-shadow: none !important; text-shadow: none !important; }
  a { color: #000 !important; text-decoration: underline; }
  a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 0.85em; color: #444; }
  .button, button { border: 1px solid #000 !important; color: #000 !important; background: #fff !important; }
  h1, h2, h3 { color: #000 !important; page-break-after: avoid; }
  article, figure, .mkt-card { page-break-inside: avoid; }
}