header .language-control{position:relative;flex:none;color:#fff;font:inherit;margin:0;padding:0;border:0;z-index:40}
header .language-control summary{display:flex;align-items:center;justify-content:center;gap:7px;list-style:none;cursor:pointer;min-height:44px;white-space:nowrap;font:inherit;padding:0;background:none;border:0;color:inherit}
header .language-control summary::-webkit-details-marker{display:none}
header .language-control summary::after{content:none}
header .language-control summary svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5}
header .language-current{font-size:10px;opacity:.7;letter-spacing:.5px}
header .language-options{position:absolute;right:0;top:100%;display:grid;min-width:150px;padding:6px;background:#141414;border:1px solid #555;border-radius:4px}
header .language-options button{font:400 15px/1.5 'DM Sans',sans-serif;text-align:left;background:none;color:#fff;border:0;border-radius:2px;padding:10px 14px;min-height:44px;cursor:pointer}
header .language-options button:hover,header .language-options button[aria-pressed=true]{background:#333}
header .language-control :focus-visible{outline:2px solid white;outline-offset:3px}
@media(max-width:600px){header .language-control summary{font-size:13px}header .language-control{justify-self:end}}

/* Public glass controls: native portals and Stripe-hosted fields are untouched. */
html:not(.guest-booking) body{
 --bw-glass:linear-gradient(135deg,rgba(255,255,255,.16),rgba(255,255,255,.04) 48%,rgba(255,255,255,.09));
 --bw-glass-edge:rgba(255,255,255,.32);
}
html:not(.guest-booking) :is(header.membership-nav,.site-header) nav{column-gap:14px!important;justify-content:flex-end!important}
html:not(.guest-booking) :is(header.membership-nav,.site-header) nav a,
html:not(.guest-booking) header .language-control summary{
 padding:9px 13px!important;border:1px solid var(--bw-glass-edge)!important;border-radius:24px!important;
 background:var(--bw-glass)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 4px 14px rgba(0,0,0,.12);
 backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);text-decoration:none;box-sizing:border-box;
}
html:not(.guest-booking) :is(a.button,.membership-button,.membership-dark,.membership-outline,.portal-button,button:not(.language-options button),summary:not(header summary),.contact-method,.tip-option):not(#reservation *):not(.membership-terms *){
 border-radius:14px!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.3),inset 0 -1px 0 rgba(0,0,0,.1),0 5px 18px rgba(0,0,0,.1);
 background-image:var(--bw-glass)!important;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
 transition:box-shadow .2s ease,border-color .2s ease;
}
html:not(.guest-booking) main>.hero .hero-copy{font-family:'DM Sans',sans-serif!important;font-size:clamp(16px,1.25vw,20px)!important;font-weight:400!important;line-height:1.65!important;letter-spacing:0!important;font-style:normal!important;max-width:540px}
header .language-options{background:rgba(22,22,22,.94);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-radius:16px;border-color:var(--bw-glass-edge);box-shadow:inset 0 1px rgba(255,255,255,.15),0 12px 32px #0004}
header .language-options button{border-radius:10px}
html:not(.guest-booking) :is(a.button,button,summary,nav a):focus-visible{outline:2px solid currentColor;outline-offset:4px}
@media(hover:hover){html:not(.guest-booking) :is(a.button,button,summary,nav a):not(#reservation *):not(.membership-terms *):hover{box-shadow:inset 0 1px 0 #ffffff70,0 6px 20px #0003}}
@media(max-width:1249px) and (min-width:601px){
 html:not(.guest-booking){--public-header-height:144px!important}
 html:not(.guest-booking) header.membership-nav{flex-wrap:wrap;align-content:center;gap:8px}
 html:not(.guest-booking) header.membership-nav nav{flex:0 0 100%;justify-content:space-between}
}
@media(max-width:600px){
 html:not(.guest-booking){--public-header-height:246px!important}
 html:not(.guest-booking) :is(header.membership-nav,.site-header) nav{gap:7px 8px!important}
 html:not(.guest-booking) :is(header.membership-nav,.site-header) nav a,html:not(.guest-booking) header .language-control summary{padding:7px 8px!important;font-size:12px!important;min-height:40px}
 html:not(.guest-booking) header .language-control summary{gap:4px}
}
@media(prefers-reduced-motion:reduce){html:not(.guest-booking) :is(a.button,button,summary,nav a){transition:none!important}}
@media(prefers-reduced-transparency:reduce){html:not(.guest-booking) :is(header nav a,header summary){background:#222!important;color:#fff!important;backdrop-filter:none}}
@media(min-width:601px) and (max-width:1000px){
 html:not(.guest-booking){--public-header-height:194px!important}
 html:not(.guest-booking) header.membership-nav nav{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 14px!important;text-align:center}
 html:not(.guest-booking) header.membership-nav nav a{justify-content:center}
 html:not(.guest-booking) header.membership-nav nav .language-control{justify-self:end}
}

@media(min-width:1250px){
 html:not(.guest-booking){--public-header-height:92px!important}
 html:not(.guest-booking) header.membership-nav{flex-wrap:nowrap!important;gap:20px}
 html:not(.guest-booking) header.membership-nav nav{flex:0 1 auto!important;width:auto!important;font-size:14px!important}
 html:not(.guest-booking) header.membership-nav .wordmark{font-size:16px}
}

/* Plain navigation retains the approved spacing; glass elsewhere is unchanged. */
html:not(.guest-booking) :is(header.membership-nav,.site-header) nav a,
html:not(.guest-booking) header .language-control summary,
html:not(.guest-booking) :is(header.membership-nav,.site-header) nav a:hover,
html:not(.guest-booking) header .language-control summary:hover{
 background:transparent!important;border-color:transparent!important;border-radius:0!important;
 box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
}
