/* Booking actions and refined native dropdown controls. */
.ngv-booking{display:inline-flex;align-items:center;justify-content:center;gap:12px;text-decoration:none;font-family:var(--sans);font-weight:600;line-height:1.3;white-space:nowrap;transition:background .2s,color .2s,box-shadow .2s}
.ngv-booking svg{flex-shrink:0}
.header .ngv-booking-header{background:#e9dbc3;color:#263e38;border:1px solid #b49a72;border-radius:5px;padding:16px 20px;min-height:54px;font-size:14px;letter-spacing:.025em}
.header .ngv-booking-header:hover{background:#ddc7a3;color:#20362f}
.ngv-booking-float{position:fixed;right:max(24px,env(safe-area-inset-right));bottom:calc(24px + env(safe-area-inset-bottom));z-index:45;padding:17px 23px;min-height:58px;border:1px solid #c5ab80;border-radius:999px;background:#263e38;color:#fff9ee;box-shadow:0 8px 30px #102a3033;font-size:16px;letter-spacing:.02em}
.ngv-booking-float:hover{background:#34564b;box-shadow:0 10px 32px #102a3055}
.ngv-booking-float .ngv-booking-icon{color:#e6cc9f}
.ngv-booking:focus-visible,.language-switcher summary:focus-visible{outline:3px solid #93714b;outline-offset:4px}
.language-switcher summary{gap:16px;border-radius:7px;transition:border-color .2s,background .2s}
.language-switcher summary:hover,.language-switcher[open]>summary{border-color:#a28c69;background:#eee8dd}
.language-switcher .language-chevron{font-size:0;width:9px;height:9px;flex:0 0 9px;border-right:1.7px solid currentColor;border-bottom:1.7px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .2s ease}
.language-switcher[open] .language-chevron{transform:translateY(2px) rotate(225deg)}
.language-options{border-radius:9px;padding:7px;box-shadow:0 12px 30px #18382c18}
.language-options a{border-radius:5px}
/* Leave room to reach footer links behind the persistent booking action. */
body>footer{padding-bottom:95px}
/* Consent and gallery dialogs take priority over the floating action. */
body:has(#cookie-banner:not([hidden])) .ngv-booking-float,
body:has(dialog[open]) .ngv-booking-float,
body:has(#navigation.open) .ngv-booking-float{visibility:hidden;pointer-events:none}
@media(min-width:1451px){.header nav{gap:clamp(12px,1.1vw,22px)}.header nav>.button{padding-inline:20px}}
/* Collapse before translated labels collide with the larger logo. */
@media(max-width:1450px){
 .header:has(#navigation){height:auto;min-height:164px;flex-wrap:wrap;gap:16px}
 .header #navigation{width:100%;justify-content:center;flex-wrap:wrap;padding:15px 0}
 .js .header:has(#navigation){height:164px;flex-wrap:nowrap}
 .js .header .menu-toggle{display:inline-flex;align-items:center;gap:6px;font-size:16px;min-height:44px;flex-shrink:0}
 .js .header #navigation{position:absolute;top:100%;left:0;width:100%;background:var(--paper);padding:24px;flex-direction:column;align-items:stretch;border-bottom:1px solid var(--line);box-shadow:0 10px 15px #0001;max-height:calc(100svh - 164px);overflow-y:auto;gap:12px;flex-wrap:nowrap}
 .js .header #navigation:not(.open){display:none}
 .header #navigation>a:not(.button){padding:8px 0;font-size:18px}
 #navigation .language-switcher{width:100%;font-size:18px}
 #navigation .language-options{position:static;margin-top:8px;box-shadow:none}
 #navigation .language-options a{font-size:18px}
 .header #navigation .ngv-booking-header{width:100%}
}
@media(max-width:650px){
 .header:has(#navigation),.js .header:has(#navigation){min-height:132px}
 .js .header:has(#navigation){height:132px}
 .js .header #navigation{max-height:calc(100svh - 132px)}
 .ngv-booking-float{right:max(16px,env(safe-area-inset-right));bottom:calc(16px + env(safe-area-inset-bottom));min-height:54px;padding:15px 19px;font-size:15px}
 .header:has(.legal-header-actions),.js .header:has(.legal-header-actions){height:auto;flex-wrap:wrap}
 .legal-header-actions{flex-wrap:wrap;justify-content:flex-start}
 .legal-header-actions>.button{flex:1;white-space:normal;text-align:center;padding:12px}
}
@media(prefers-reduced-motion:reduce){.ngv-booking,.language-switcher summary,.language-switcher .language-chevron{transition:none}}
