:root{--motion-ease:cubic-bezier(.22,.68,.25,1);--motion-fast:220ms;--motion-normal:360ms}
/* Fixed geometry: only opacity and transforms move the drawer and its links. */
.menu-toggle{position:relative;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--ivory);flex:none;cursor:pointer;transition:background-color 220ms ease,transform 220ms var(--motion-ease)}
.menu-toggle i{display:block;position:absolute;left:10px;top:21px;width:24px;height:1px;background:currentColor;transform:translateY(-4px);transition:transform 300ms var(--motion-ease)}
.menu-toggle i+i{transform:translateY(4px)}
.menu-toggle[aria-expanded=true] i,.nav-drawer.is-open .drawer-close i{transform:rotate(45deg)}
.menu-toggle[aria-expanded=true] i+i,.nav-drawer.is-open .drawer-close i+i{transform:rotate(-45deg)}
.menu-toggle:active{transform:scale(.94)}
.nav-drawer{inset:0;margin:0;padding:0;width:100%;height:100dvh;max-width:none;max-height:none;border:0;background:transparent;color:var(--ivory);overflow:hidden}
.nav-drawer::backdrop{background:transparent}
.drawer-overlay{position:absolute;inset:0;background:#08080894;opacity:0;transition:opacity 360ms ease}
.drawer-panel{position:absolute;inset:0 0 0 auto;width:min(440px,88vw);height:100%;background:#10110f;border-left:1px solid var(--line);transform:translateX(100%);transition:transform 420ms var(--motion-ease);display:flex;flex-direction:column;padding:105px clamp(25px,6vw,52px) 40px;overflow:auto;overscroll-behavior:contain}
.nav-drawer.is-open .drawer-overlay{opacity:1}.nav-drawer.is-open .drawer-panel{transform:translateX(0)}
.drawer-close{position:absolute;right:var(--gutter);top:19px;z-index:1;display:flex}
.drawer-panel nav{display:flex;flex-direction:column;gap:0;margin-block:auto}
.drawer-panel nav a{position:relative;display:block;border-bottom:1px solid var(--line);padding:19px 0;font:400 clamp(1.5rem,4.7vw,2.2rem)/1.3 var(--serif);letter-spacing:-.025em;opacity:0;transform:translateX(18px);transition:opacity 220ms ease,transform 280ms var(--motion-ease),color 220ms ease;transition-delay:calc((5 - var(--menu-index))*12ms)}
.nav-drawer.is-open nav a{opacity:1;transform:translateX(0);transition-delay:calc(65ms + var(--menu-index)*24ms)}
.drawer-panel nav a::after{content:'↗' / '';position:absolute;right:0;top:50%;font:400 20px/1 system-ui,sans-serif;opacity:0;transform:translate(-8px,-50%);transition:opacity 220ms ease,transform 220ms var(--motion-ease)}
.drawer-panel nav a[aria-current=page]{color:var(--gold)}
.drawer-panel nav a:active{color:var(--gold);transform:translateX(3px) scale(.99);transition-delay:0ms}
.drawer-panel nav a:focus-visible{color:var(--gold);outline-offset:5px}
@media(max-width:900px){button.mobile-nav.menu-toggle{display:flex}}
@media(min-width:901px){button.mobile-nav.menu-toggle{display:none}}
@media(max-width:600px){.drawer-close{top:12.5px}.drawer-panel{padding-top:85px}}
@media(max-height:560px){.drawer-panel{padding-top:70px;padding-bottom:20px}.drawer-panel nav a{padding:11px 0;font-size:1.4rem}}
/* Scoped to our controls; Lodgify owns its embedded controls and modal behaviour. */
.action,.header-book,.gallery-tools button,.film-trigger,.close-film,.lightbox button{transition:transform 220ms var(--motion-ease),background-color 220ms ease,border-color 220ms ease,color 220ms ease,box-shadow 220ms ease}
.action svg,.header-book svg{transition:transform 250ms var(--motion-ease)}
.action:active,.header-book:active,.gallery-tools button:active,.close-film:active{transform:scale(.975)}
.lightbox button:active{scale:.95}.film-trigger:active>span{scale:.95}
.film-trigger>span{transition:scale 220ms var(--motion-ease),background-color 220ms ease,border-color 220ms ease}
.desktop-nav a,.footer nav a,.booking-fallback{transition:color 220ms ease,opacity 220ms ease;text-underline-offset:6px}
.gallery-tile{transition:translate 320ms var(--motion-ease),opacity 280ms ease}
.gallery-tile img{transition:transform 420ms var(--motion-ease),filter 320ms ease}
.gallery-tile>span{transition:color 220ms ease,border-color 220ms ease}
.features>*,.tour-card{transition:translate 320ms var(--motion-ease),border-color 300ms ease}
.reveal-pending{opacity:0;translate:0 14px;transition:opacity 420ms var(--motion-ease),translate 420ms var(--motion-ease);transition-delay:var(--reveal-delay,0ms)}
.reveal-pending.is-revealed{opacity:1;translate:0 0}
.reveal-pending:focus-within{opacity:1;translate:0 0;transition-delay:0ms}
@media(hover:hover) and (pointer:fine){
 .menu-toggle:hover{background:#f5f0e60b}
 .drawer-panel nav a:hover{color:var(--gold);transform:translateX(4px);transition-delay:0ms}
 .drawer-panel nav a:hover::after,.drawer-panel nav a:focus-visible::after{opacity:1;transform:translate(0,-50%)}
 .action:hover,.header-book:hover{transform:translateY(-2px)}
 .action:hover svg,.header-book:hover svg{transform:translateX(3px)}
 .gallery-tile:hover{translate:0 -3px}.gallery-tile:hover img{transform:scale(1.015)}
 .gallery-tile:hover>span{color:var(--gold);border-color:var(--gold)}
 .features>*:hover{translate:0 -3px;border-color:#c9a45c80}
 .tour-card:hover{border-color:#c9a45c80}
 .film-trigger:hover>span{background:#c9a45c20;border-color:var(--gold)}
 .gallery-tools button:hover{color:var(--gold)}
}
/* Native cross-document transitions retain normal navigation and browser history. */
@view-transition{navigation:auto}
::view-transition-old(root){animation:lre-page-out 200ms ease both}
::view-transition-new(root){animation:lre-page-in 300ms ease both}
@keyframes lre-page-out{to{opacity:0}}
@keyframes lre-page-in{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){
 .menu-toggle,.menu-toggle i,.drawer-overlay,.drawer-panel,.drawer-panel nav a,.drawer-panel nav a::after,.action,.action svg,.header-book,.header-book svg,.gallery-tools button,.film-trigger,.film-trigger>span,.close-film,.lightbox button,.desktop-nav a,.footer nav a,.booking-fallback,.gallery-tile,.gallery-tile img,.gallery-tile>span,.features>*,.tour-card,.reveal-pending{transition:none!important;animation:none!important}
 .reveal-pending{opacity:1;translate:none}
 .action:hover,.action:active,.header-book:hover,.header-book:active,.gallery-tile:hover,.gallery-tile:hover img,.features>*:hover,.drawer-panel nav a:hover,.drawer-panel nav a:active{transform:none;translate:none}
 ::view-transition-old(root),::view-transition-new(root){animation:none!important}
}
