/* Requested page fixes. Existing layout, colors, and content are retained. */
.inner-page-hero .inner-page-image {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}
.inner-page-hero .content {
    width: 100%;
}
.desktop-nav .nav-links a[aria-current="page"],
.mobile-menu a[aria-current="page"] {
    color: #ffd700;
    text-decoration: underline;
    text-underline-offset: 6px;
}
.sticky-header .nav-links a[aria-current="page"] {
    color: #b05f00;
}
.mobile-menu { z-index: 1100; }
.mobile-menu-content { overflow-y: auto; }
.mobile-submenu-toggle {
    background: transparent;
    border: 0;
    color: #fff;
    font: inherit;
    font-size: 24px;
    padding: 0 10px;
    cursor: pointer;
}
.hamburger:focus-visible, .mobile-close:focus-visible,
.mobile-submenu-toggle:focus-visible {
    outline: 2px solid #ffd700;
    outline-offset: 4px;
}
#location, #meeting-room { scroll-margin-top: 90px; }
/* a11y: the page background stays the site green (like every other page) so the header text, which sits over the
   dark hero photo, is not computed against white; the areas that were white are painted white explicitly. */
body.attractions-page > section:not(.futuristic-slider):not(.booking-reservation-section) { background-color: #fff; }
.attractions-page .booking-reservation-section { box-shadow: 0 3px 8px rgba(0, 0, 0, 0.35), 0 0 0 100vmax #fff; }
.attractions-page .reservation-and-about { position: relative; z-index: 1; }
.attractions-page .attractions-container .category-header h2 {
    font-size: 22px;
    line-height: 1.4;
}
.attractions-page .attractions-container .attraction-name,
.attractions-page .attractions-container .attraction-name h3 {
    font-size: 18px;
    line-height: 1.5;
    margin: 0;
}
.attractions-page .attractions-container .attraction-info {
    min-width: 0;
}
.attractions-page .attractions-container .attraction {
    gap: 12px;
}
.attractions-page .attractions-container .attraction-distance {
    flex-shrink: 0;
    font-size: 14px;
    white-space: nowrap;
}
@media (max-width: 600px) {
    .attractions-page .attractions-container .category-header h2 { font-size: 20px; }
    .attractions-page .attractions-container .attraction-name,
    .attractions-page .attractions-container .attraction-name h3 { font-size: 16px; }
    .attractions-page .attractions-container .attraction-info { padding: 12px 0; }
}

/* Footer links never show an active state (active only in header menu) */
.footer-links a.active, .footer-links a[aria-current="page"] { text-decoration: none; font-weight: inherit; }

/* Home: location / booking cards never wider than the screen */
.map-wrapper-modern, .booking-wrapper-modern { min-width: 0; max-width: 100%; box-sizing: border-box; }
.video-container img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.map-frame-modern iframe { max-width: 100%; }
@media (max-width: 480px) {
    .booking-wrapper-modern { padding: 25px 18px; }
    .map-wrapper-modern { padding: 15px; }
    .booking-wrapper-modern h3, .map-heading-modern h2 { font-size: 1.5rem; }
}

/* Long words / URLs never break the layout */
.about-section p, .lqfaq-answer p, .footer-contact p { overflow-wrap: anywhere; }

/* Small phones (320px - 480px): keep every section inside the screen */
.about-section, .reservation-and-about .container { min-width: 0; max-width: 100%; }
.about-section h1, .section-heading { overflow-wrap: break-word; }
@media (max-width: 480px) {
    .reservation-and-about { padding: 30px 12px; border-width: 6px; }
    .about-section { padding: 10px 4px; }
    .about-section h1 { font-size: 1.6rem; }
    .well1 { font-size: 1.25rem; }
    .section-heading, .amenities-slider-title, .unique-slider-title, .gallery-title { font-size: 1.6rem; letter-spacing: 0; }
}

/* Slide-in animation of the location/booking cards must not create a sideways scroll */
.map-booking-modern { overflow: hidden; }

/* Footer: keep Contact / Quick Links / Policies in one row on desktop (full hotel name wraps inside its column) */
.footer-content > .footer-contact, .footer-content > .footer-links, .footer-content > .footer-policies { flex: 1 1 0; min-width: 240px; }
.footer-contact h4, .footer-contact h2 { line-height: 1.35; }


/* ===== Accessibility remediation v1 ===== */
/* Programmatic labels that keep the existing label-less look */
.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;
}
/* Slider dots are now real buttons: remove native button chrome so they look exactly like the former spans */
.dots button.dot { border: 0; padding: 0; margin: 0; font: inherit; display: block; -webkit-appearance: none; appearance: none; }
/* Booking button removed its focus outline; restore a visible keyboard focus indicator */
.booking-now-btn:focus-visible { outline: 2px solid #ffd700; outline-offset: 2px; }
/* Moving content pauses while the pointer or keyboard focus is on it (no visible control added) */
.amenities-slider-wrapper:hover .amenities-slider,
.amenities-slider:focus-within { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) {
    .amenities-slider { animation-play-state: paused; }
}
