/* Shared V2 navigation; same dimensions and grouped links on every public page. */
[hidden]{display:none!important}
:focus-visible{outline:2px solid var(--gold-lite);outline-offset:5px}
.skip-link{position:fixed;left:20px;top:-90px;z-index:200;padding:12px 20px;background:var(--cream);color:var(--ink)}
.skip-link:focus{top:14px}
.site-header{padding:16px 28px}
.site-header.scrolled{padding:10px 28px}
.site-header .brand{display:flex;align-items:center;gap:14px}
.site-header .brand-mark{width:54px;height:54px}
.site-header .brand-word{display:flex;flex-direction:column;line-height:1}
.site-header .brand-word strong{font-family:"Fraunces","EB Garamond",serif;font-size:21px;font-weight:400}
.site-header .brand-word span{font-size:10px;margin-top:5px}
.site-header .btn{width:auto}
.site-header .nav-book{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:12px 20px;font:11px/1.2 "JetBrains Mono",monospace;text-transform:uppercase}
.site-header .menu-toggle{width:46px;height:46px}
.desktop-nav .roll-link[aria-current]{color:var(--gold-lite)}
/* Four destinations; the original desktop header and controls. */
.desktop-nav{display:flex;align-items:center;gap:24px;margin-left:auto}
.roll-link{display:inline-flex;align-items:center;min-height:44px;overflow:hidden;font:11px/1.3 "JetBrains Mono",monospace;text-transform:uppercase;color:var(--cream-soft)}
.roll-link>span{position:relative;display:block;transition:transform .38s cubic-bezier(.22,1,.36,1)}
.roll-link>span::after{content:attr(data-label);position:absolute;left:0;top:130%;white-space:nowrap;color:var(--gold-lite)}
.roll-link:hover>span,.roll-link:focus-visible>span{transform:translateY(-130%)}
.roll-link{clip-path:inset(13px 0)}
/* A hardware keyboard still needs a focus ring on touch-capable viewports. */
.site-header :is(a,button):focus-visible{outline:2px solid var(--gold-lite);outline-offset:3px}
.site-header .roll-link:focus-visible{clip-path:none}
.nav-book{gap:12px;flex-shrink:0}
.site-header .menu-toggle{display:flex;position:relative;flex:0 0 46px}
.site-header .nav-frame{gap:24px}
.site-header.menu-open{background:var(--navy);border-bottom:1px solid var(--line)}
.menu-panel{width:min(100%,var(--nav-max));margin:22px auto 0;max-height:var(--menu-max-height,calc(100svh - 120px));overflow:auto;overscroll-behavior:contain;padding:10px 24px 30px}
.menu-heading{display:flex;justify-content:space-between;color:var(--muted);font-size:10px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.menu-main{display:grid;grid-template-columns:1fr 1fr;gap:28px 64px;padding:28px 0}
.menu-title{display:flex;gap:15px;align-items:baseline;font-family:"Fraunces","EB Garamond",serif;font-size:36px;line-height:1.2}
.menu-title sup{font:10px "JetBrains Mono",monospace;color:var(--gold-lite)}
.menu-title>span{margin-left:auto;font-size:20px;color:var(--gold-lite)}
.menu-title:hover{color:var(--gold-lite)}
.menu-sub{display:flex;flex-wrap:wrap;gap:8px 22px;margin:14px 0 0 30px;color:var(--muted);font-size:18px}
.menu-sub a:hover,.menu-bottom a:hover{color:var(--gold-lite)}
.menu-bottom{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:20px;border-top:1px solid var(--line)}
.menu-bottom>div{display:flex;gap:20px;font-size:18px}
.menu-phone{white-space:nowrap;font-family:"JetBrains Mono",monospace;font-size:14px;color:var(--gold-lite)}
.menu-shade{position:fixed;inset:0;z-index:79;background:rgba(7,11,17,.72)}
.no-script-nav{position:relative;z-index:90;padding:100px 24px 20px;display:flex;gap:14px;flex-wrap:wrap;background:var(--ink)}

@media(max-width:1199px){
  .desktop-nav{display:none}
  .site-header,.site-header.scrolled{top:12px;left:16px;right:16px;padding:10px 14px;border:1px solid var(--line);border-radius:40px;background:linear-gradient(135deg,rgba(255,255,255,.09),rgba(255,255,255,.025) 42%,rgba(255,255,255,.055)),rgba(15,25,39,.94);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
  .site-header .nav-frame{gap:12px}
  .site-header .brand{margin-right:auto}
  .site-header .brand-word{display:flex}
  .site-header .brand-mark{width:42px;height:42px}
  .site-header .nav-book{height:44px;min-height:44px;padding:10px 16px;font-size:10px}
  .site-header.menu-open{border-radius:24px;background:linear-gradient(135deg,rgba(255,255,255,.09),rgba(255,255,255,.025) 42%,rgba(255,255,255,.055)),rgba(15,25,39,.97)}
  .menu-panel{padding:0 8px 16px;max-height:var(--menu-max-height,calc(100svh - 110px));margin-top:20px}
  .menu-main{gap:26px}
  .menu-title{font-size:30px}
  .menu-bottom{flex-wrap:wrap}
  .menu-heading>span{display:none}
}
@media(max-width:767px){
  .site-header .brand-word{display:none}
  .site-header .nav-book>span{display:none}
  .site-header .menu-toggle{flex-basis:44px;width:44px;height:44px}
  .menu-main{grid-template-columns:1fr;gap:18px;padding:18px 0}
  .menu-title{font-size:28px}
  .menu-sub{font-size:16px;margin-top:10px;gap:8px 18px}
  .menu-bottom{gap:14px}
  .menu-bottom>div{font-size:16px;flex-direction:column;gap:8px}
  .menu-phone{font-size:12px}
}

@media(prefers-reduced-motion:reduce){.roll-link>span{transition:none}}

/* This menu treatment also serves booking pages without restyling their forms. */
.site-header .menu-title{position:relative;isolation:isolate;overflow:hidden;padding:12px 14px;margin:-12px -14px;border-radius:var(--radius);transition:color .28s ease}
.site-header .menu-title::before{content:"";position:absolute;inset:-1px;z-index:-1;background:linear-gradient(180deg,var(--gold-lite),var(--gold));transform:translateY(105%);border-radius:50% 50% 0 0;transition:transform .48s cubic-bezier(.22,1,.36,1),border-radius .48s cubic-bezier(.22,1,.36,1);pointer-events:none}
.site-header .menu-title:focus-visible,.site-header .menu-title:active{color:var(--ink)}
.site-header .menu-title:focus-visible::before,.site-header .menu-title:active::before{transform:translateY(0);border-radius:0}
.site-header .menu-title:focus-visible sup,.site-header .menu-title:focus-visible>span,.site-header .menu-title:active sup,.site-header .menu-title:active>span{color:var(--ink)}
@media(hover:hover) and (pointer:fine){
 .site-header .menu-title:hover{color:var(--ink)}
 .site-header .menu-title:hover::before{transform:translateY(0);border-radius:0}
 .site-header .menu-title:hover sup,.site-header .menu-title:hover>span{color:var(--ink)}
}
@media(prefers-reduced-motion:reduce){.site-header .menu-title::before{transition:none}}
