/* Accessibility repairs: retain the existing layout, fonts and brand palette. */
.a11y-visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* Text links remain recognizable on light content backgrounds. */
.about p a, .about li a, #more a {
  color: #a50f20;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}
.about p a:hover, .about li a:hover, #more a:hover,
.about p a:focus-visible, .about li a:focus-visible, #more a:focus-visible {
  color: #790c18;
}
.ada a, .ada a:visited, .ada a:hover,
.cookie-banner p a, .cookie-banner p a:visited {
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

/* Clear keyboard focus without changing the resting appearance. */
a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible {
  outline: 3px solid #111;
  outline-offset: 3px;
  box-shadow: 0 0 0 6px #fff;
}
.back-to-top { color: #fff; }
.back-to-top:hover, .back-to-top:focus-visible { color: #111; }
.back-to-top em { color: inherit; }

/* Keep white text legible over the lightest parts of the background photos. */
#hero::before, #hero1::before { background: rgba(0, 0, 0, 0.60); }

/* Calendar selection and out-of-month dates keep their existing fills. */
td.calcell.oom { color: #555; }
td.calcell.selected, td.calcell.selected a { color: #111; }
.calendar a:focus-visible { position: relative; z-index: 2; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
}

/* Solid brand red avoids low contrast caused by translucent title bands. */
.title7 { background: #d7182a; }

/* Light caption panels retain their gray appearance over every slider photo. */
#wowslider-container1 .ws-title div,
#wowslider-container1 .ws-title span {
  background: #dedede;
  color: #222;
}

/* Expose the existing attraction hover state to keyboard users too. */
.box:focus-within::before { opacity: 0.6; transform: scale(1); }
.box:focus-within::after { opacity: 0.45; transform: scale(1); }
.box:focus-within .box-content { filter: blur(0); opacity: 1; }

/* Keep the gallery's green control, with enough contrast for its white icon. */
body:has(.spotlight-group) .back-to-top { background: #117c24; color: #fff; }
body:has(.spotlight-group) .back-to-top:hover { background: #0b641b; color: #fff; }

/* Maintain readable calendar icons on white fields. */
.agileits_reservation em.bi { color: #666; }
.agileits_reservation input:focus-visible,
.date_btn input[type="submit"]:focus-visible { outline: 3px solid #111; }

/* Responsive 16:9 YouTube video without altering the surrounding section. */
.videoWrapper.youtube-video {
  position: relative;
  width: 100%;
  height: 0;
  padding-top: 56.25%;
  overflow: hidden;
}
.videoWrapper.youtube-video iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
