/* WCAG fixes belong to the actual components, independent of preferences. */
[hidden] { display: none !important; }
html { scroll-padding-top: 110px; scroll-padding-bottom: var(--cookie-clearance, 24px); }
body { padding-bottom: var(--cookie-clearance, 0px); }
main { scroll-margin-top: 110px; overflow-wrap: anywhere; }
main:focus { outline: none; }
:focus-visible { outline: 3px solid #146ac0 !important; outline-offset: 4px; box-shadow: 0 0 0 6px #fff !important; }
.skip-link { position: fixed; top: 8px; left: 12px; z-index: 2147483647; padding: 12px 18px; color: #fff; background: #111416; transform: translateY(-200%); }
.skip-link:focus { transform: none; color: #fff; }
.site-layout-fallback { position: relative; z-index: 10001; padding: 20px; color: #111; background: #fff; }
.site-dialog-open { overflow: hidden; }
header.reveal_header:not(.headroom--not-top) { background: #111416; }
button.hamburger_2 { padding: 8px 0; border: 0; background: transparent; font: inherit; cursor: pointer; }
header .language-select-minimal { color: #fff; background-color: #242827; border-color: #c6b38a; min-height: 32px; }
header.headroom--not-top .language-select-minimal { color: #222; background-color: #fff; border-color: #756343; }
.env-policy-page header .language-select-minimal { color: #fff; background-color: #242827; }
.nav_panel:not([open]) { display: none; }
dialog.nav_panel { margin: 0; padding: 64px 24px 24px; border: 0; width: min(390px, 100vw); max-width: 100vw; height: 100dvh; max-height: 100dvh; transform: none; color: #222; background: #fff; overflow-y: auto; }
dialog::backdrop { background: rgb(0 0 0 / 60%); }
.nav_panel .closebt { top: 14px; right: 18px !important; left: auto !important; width: 44px; height: 44px; padding: 0; border: 1px solid #62696d; border-radius: 50%; background: #fff; color: #222; font-size: 25px; }
.nav_panel .address_panel { position: static; padding: 0 0 20px; height: auto; }
.nav_panel .sidebar-navigation { position: static; padding: 15px 0; overflow: visible; }
.nav_panel .sidebar-navigation nav { height: auto; min-height: 0; }
.nav_panel .sidebar-navigation nav ul { position: static; width: auto; height: auto; padding: 0; margin: 0; transition: none; }
.nav_panel .sidebar-navigation nav ul ul { padding: 4px 0 8px 20px; }
.nav_panel .sidebar-navigation nav a, .nav_panel .sidebar-navigation nav button { display: block; padding: 10px 8px; margin: 0; width: 100%; color: #343a3d; text-align: left; line-height: 1.5; font: inherit; font-size: 15px; font-weight: 600; text-transform: none; }
.nav_panel .sidebar-navigation nav button { border: 0; background: transparent; }
.nav_panel [data-submenu-toggle]::after { content: '+'; float: right; }
.nav_panel [data-submenu-toggle][aria-expanded="true"]::after { content: '−'; }
.nav_panel a[aria-current="page"] { text-decoration: underline; text-underline-offset: 4px; }
.nav_panel .sidebar-navigation nav a .view-type { color: #595f63; font-size: 12px; }
.nav_panel .copy { position: static; margin-top: 18px; }
.language-note { color: #50565a; font-size: 13px; line-height: 1.6; }
footer.minimal-footer .footer-heading { margin-bottom: 16px; color: #bfc2c4; font-size: 12px; line-height: 1.5; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; }
footer.minimal-footer .copy, footer.minimal-footer .copy a { color: #bfc2c4; }
.footer-sitemap { width: min(100% - 48px, 1140px); margin: 0 auto 28px; }
.footer-sitemap summary { padding: 12px 0; cursor: pointer; }
.footer-sitemap ul { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 8px 20px; padding: 16px 0; list-style: none; }
.footer-sitemap a { display: inline-block; padding: 6px 0; }
.progress-wrap { background: #fff; color: #343a3d; border: 1px solid #756343; padding: 0; }
.progress-wrap:focus-visible { opacity: 1; visibility: visible; transform: none; }
.gallery-tile:focus-within .gallery-overlay { opacity: 1; }
.gallery-overlay { gap: 10px; flex-wrap: wrap; }
.photo-open { display: block; width: 100%; height: 100%; border: 0; padding: 0; background: transparent; cursor: zoom-in; }
.gallery-open { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: transparent; }
.gallery-overlay { pointer-events: none; }
.gallery-download { position: relative; z-index: 2; }
.room-carousel__slide[inert] { visibility: hidden; }
.room-carousel__dots { max-width: 95%; flex-wrap: wrap; justify-content: center; }
.room-carousel__dots button { flex: 0 0 24px; width: 24px; height: 24px; padding: 0; border: 2px solid #fff; background: #4d4d4d; }
.room-carousel__dots button.is-active { width: 24px; background: #fff; outline: 2px solid #222; }
.room-carousel__thumb.is-active { outline-color: #c6b38a; }
dialog.room-lightbox, dialog.gallery-lightbox { inset: 0; margin: auto; border: 0; padding: 72px 20px; width: 100vw; height: 100dvh; max-width: none; max-height: none; background: #111416; color: #fff; }
dialog.room-lightbox:not([open]), dialog.gallery-lightbox:not([open]) { display: none; }
dialog.room-lightbox[open], dialog.gallery-lightbox[open] { display: flex; align-items: center; justify-content: center; }
.photo-count { position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%); color: #fff; background: #111416; padding: 8px; }
.room-lightbox__image, .gallery-lightbox__image { max-height: calc(100dvh - 160px); }
.room-lightbox__image img, .gallery-lightbox__image img { max-height: calc(100dvh - 160px); object-fit: contain; }
.video-toggle { position: absolute; z-index: 4; right: 16px; bottom: 16px; padding: 10px 14px; border: 1px solid #fff; border-radius: 3px; color: #fff; background: #111416; }
.hero .wrapper { background: rgb(0 0 0 / 55%) !important; }
.hero.full-height { min-height: 620px; }
.hero-description { opacity: 1 !important; }
.marquee { height: auto; margin: 24px 0; overflow: visible; font-size: clamp(1.5rem, 5vw, 3rem); }
.marquee .track { position: static; white-space: normal; animation: none; transform: none; }
.marquee .content { color: #756343; opacity: 1; }
.title small, .room-card__body span, .env-eyebrow, .blog-card__meta, .blog-article__meta { color: #756343; }
.post-hero__subtitle { color: #756343; }
.post-toc li { color: #505b64; }
.cookie-consent { max-height: 50dvh; overflow-y: auto; }
.cookie-consent__button:hover, .cookie-consent__button:focus { background: #756343; }
.booking-help { color: #3e4549; font-size: 14px; line-height: 1.6; margin: 12px 0; }
.booking-error { color: #a01420; font-weight: 600; }
.legal-copy a, .post-content a { text-decoration: underline; text-underline-offset: 3px; }
.room-details__header { flex-wrap: wrap; }
.env-hero__link { max-width: 100%; white-space: normal; }
.env-eyebrow, .env-card__heading > div { min-width: 0; overflow-wrap: anywhere; }
.env-commitments li > span { min-width: 0; }
.contact-map iframe { width: 100%; border: 0; }
.about-hero__media { background-image: url("../img/about/GJSHFKLDJ-002-scaled.webp"); }
.contact-hero__media { background-image: url("../img/contact/DSC9502-scaled.webp"); }
.destination-hero__media { background-image: url("../img/destination/Destination1.webp"); }
.fitness-hero__media { background-image: url("../img/fitness/header_fitness.webp"); }
.gallery-hero__media { background-image: url("../img/services/6-3-scaled.webp"); }
.gastronomy-hero__media { background-image: url("../img/gastronomy/header_gastronomy.webp"); }
.meetings-hero__media { background-image: url("../img/meetings/meetings.webp"); }
.services-hero__media { background-image: url("../img/services/6-3-scaled.webp"); }
@media (max-width: 575px) {
    .header-content { min-height: 60px; }
    .nav-left .hamburger-label { display: none; }
    .cookie-consent { max-height: 45dvh; }
    .hero.full-height { min-height: 580px; }
    .hero .wrapper .title.white { bottom: 45px; }
    .video-toggle { font-size: 12px; bottom: 8px; }
    .env-hero > .container { display: block; }
    .room-lightbox__nav, .gallery-lightbox__nav { top: auto; bottom: 18px; transform: none; }
    .gallery-overlay span { max-width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
    [data-cue] { opacity: 1 !important; transform: none !important; }
    .marquee .track { animation: none !important; transform: none !important; }
}
