.skip-link {
  position: fixed;
  top: 10px;
  left: 10px;
  z-index: 10000;
  padding: 10px 14px;
  border-radius: 8px;
  background: #fff;
  color: #003d9e;
  font-weight: 700;
  box-shadow: 0 6px 24px rgba(0, 0, 0, .22);
  transform: translateY(-160%);
  transition: transform .18s ease;
}
.skip-link:focus { transform: translateY(0); }

.journey-video-frame { position: relative; }
.journey-play {
  position: absolute;
  inset: 50% auto auto 50%;
  z-index: 3;
  min-width: 48px;
  min-height: 48px;
  padding: 11px 16px;
  border: 1px solid rgba(255, 255, 255, .8);
  border-radius: 999px;
  background: rgba(0, 41, 102, .88);
  color: #fff;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
  transform: translate(-50%, -50%);
  box-shadow: 0 8px 24px rgba(0, 0, 0, .28);
}
.journey-play:hover,
.journey-play:focus-visible { background: #0050ce; }
.journey-play[hidden] { display: none; }

[role="button"]:focus-visible,
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 3px solid #d4a017;
  outline-offset: 3px;
}

.hero-search input,
.hero-search select,
.tool-form input,
.tool-form select,
.contact-form input,
.contact-form select,
.contact-form textarea,
.swap-btn,
.consent-banner button {
  min-height: 44px;
}
.guide-card a,
.map-directions {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
}
.ig-pill { min-width: 44px; min-height: 44px; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}
