/* Shared navigation; mobile overrides are deliberately scoped below. */
.cecb-menu-panel{position:fixed;top:72px;left:50%;transform:translateX(-50%);z-index:100;width:min(340px,calc(100vw - 24px));padding:12px;border:1px solid #7285b1;border-radius:14px;background:#101d36;box-shadow:0 16px 45px #0008}
.cecb-menu-panel[hidden]{display:none}.cecb-menu-panel a{display:block;padding:14px;color:#fff;text-decoration:none;border-radius:8px}.cecb-menu-panel a:hover,.cecb-menu-panel a:focus-visible{background:#293e66}.home-menu{cursor:pointer}.home-menu:focus-visible{outline:2px solid #b7d1ff;outline-offset:3px}
@media(max-width:700px){
 html,body{height:auto!important;min-height:100dvh;overflow-x:clip!important;overflow-y:auto!important}
 body.reservation2-page .page-wrapper{height:auto!important;min-height:100dvh;overflow:visible!important}
 body.reservation2-page .hero-content{min-height:65dvh!important;height:auto!important;padding:120px 20px 32px!important;position:relative!important;inset:auto!important}
 body.reservation2-page .hero-copy h1{font-size:clamp(30px,8.5vw,48px)!important;line-height:1.06!important;width:auto!important;max-width:100%!important;letter-spacing:-.04em!important}
 body.reservation2-page .hero-copy h1 span{font-size:inherit!important;white-space:normal!important}
 body.reservation2-page .hero-subtitle{display:block!important;font-size:18px!important;line-height:1.4!important}
 body.reservation2-page .r2-main{position:relative!important;inset:auto!important;transform:none!important;width:100%!important;height:auto!important;max-height:none!important;overflow:visible!important;padding:90px 12px 170px!important}
 body.reservation2-page .r2-intro{margin:0 0 22px!important;padding:0!important}.r2-intro h1{font-size:clamp(28px,8vw,38px)!important;line-height:1.1!important}.r2-intro p{font-size:17px!important}
 body.reservation2-page .r2-steps{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:4px!important;width:100%!important;margin:0 0 20px!important;padding:8px 0!important;overflow:visible!important}
 .r2-steps button{min-width:0!important;min-height:48px;padding:5px 2px!important;display:flex!important;flex-direction:column;gap:3px!important;font-size:9px!important;letter-spacing:0!important}.r2-steps button span{font-size:15px!important}
 body.reservation2-page .r2-layout{display:flex!important;flex-direction:column!important;gap:16px!important;min-width:0!important}
 body.reservation2-page .r2-panel,body.reservation2-page .r2-panel-motion,body.reservation2-page #date-step{width:100%!important;min-width:0!important;height:auto!important;max-height:none!important;overflow:visible!important}
 body.reservation2-page .r2-panel{padding:16px!important}.r2-panel h2{font-size:26px!important;line-height:1.2!important}.r2-panel-head{gap:10px!important;margin-bottom:18px!important}
 .r2-calendar{width:100%!important;min-width:0!important;padding:10px!important;overflow:visible!important}.r2-calendar-head{gap:4px!important;font-size:11px!important;letter-spacing:.04em!important}.r2-weekdays,.r2-days{grid-template-columns:repeat(7,minmax(0,1fr))!important;gap:3px!important;width:100%!important;min-width:0!important}.r2-days button{min-width:0!important;padding:3px!important;min-height:42px!important;font-size:16px!important}.r2-weekdays span{font-size:10px!important}.r2-days i{min-width:0!important}
 .r2-slots{overflow:visible!important;max-height:none!important}.r2-slots button{min-height:48px!important;padding:10px!important}.r2-slots button:disabled{opacity:.7!important}.r2-slots small{font-size:11px!important}
 body.reservation2-page .r2-summary{position:fixed!important;bottom:0!important;left:0!important;right:0!important;top:auto!important;z-index:30;width:100%!important;height:auto!important;padding:12px 16px calc(12px + env(safe-area-inset-bottom))!important;border-radius:16px 16px 0 0!important;background:#101d36!important;display:grid!important;grid-template-columns:1fr auto;gap:5px 12px!important}
 .r2-summary>p{display:none!important}.r2-summary>strong{font-size:20px!important}.r2-summary>span{font-size:14px!important}.r2-summary>button{grid-column:2;grid-row:1/3;min-height:48px!important;margin:0!important;padding:12px!important;font-size:11px!important}
 body.reservation2-page .is-cart-step .r2-summary{display:none!important}.r2-cart{height:auto!important;overflow:visible!important}.r2-cart-actions{grid-template-columns:1fr!important}.r2-cart-actions button{min-height:48px}.r2-proof{position:relative!important;inset:auto!important;width:auto!important;max-width:calc(100% - 32px)!important;margin:20px 16px 30px!important}.is-booking .r2-proof{display:none!important}
 .r2-footer,.site-footer.auth-footer{position:relative!important;inset:auto!important;padding:18px 12px!important;min-height:54px;flex-wrap:wrap}.is-booking .r2-footer{display:none!important}
 body.auth-login-page .auth-main{position:relative!important;inset:auto!important;transform:none!important;height:auto!important;min-height:calc(100dvh - 80px)!important;padding:90px 16px 28px!important;display:block!important}.auth-main input{font-size:16px!important}.auth-main section,.auth-main>div{max-width:100%!important}.auth-main button{min-height:44px}.auth-footer a{display:inline-block;padding:10px}
}
@media(prefers-reduced-motion:reduce){.r2-main,.hero-content,.r2-summary{animation:none!important;transition:none!important}}
.membership-entry-note{max-width:480px;margin:0 auto 18px;padding:18px;border:1px solid #8cabe9;border-radius:12px;background:#142947;color:#fff;font-size:16px;line-height:1.5}
@media(max-width:700px){
 body.reservation2-page .r2-steps>[role=button]{min-width:0!important;min-height:48px;padding:5px 0!important;display:flex!important;flex-direction:column!important;gap:3px!important;font-size:9px!important;letter-spacing:0!important;white-space:normal!important;text-align:center!important}.r2-steps>[role=button] b{font-size:18px!important}
 body.reservation2-page .home-nav{position:fixed!important;top:0!important;left:0!important;right:0!important;z-index:60;background:#12223deb!important;height:64px!important}
 body.reservation2-page .page-wrapper,body.reservation2-page .r2-main,body.reservation2-page .r2-layout{transform:none!important;filter:none!important;perspective:none!important}
 body.reservation2-page .r2-summary{animation:none!important;transform:none!important;align-items:center!important;grid-template-rows:auto auto!important;min-height:90px!important;bottom:0!important}
 body.reservation2-page .r2-summary>strong{grid-column:1!important;grid-row:1!important;margin:0!important;line-height:1.2!important}
 body.reservation2-page .r2-summary>span{grid-column:1!important;grid-row:2!important;margin:0!important;line-height:1.3!important}
 body.reservation2-page .r2-summary>button{grid-column:2!important;grid-row:1/3!important;max-width:155px!important;line-height:1.3!important;height:auto!important}
 body.reservation2-page.is-booking .site-footer{display:none!important}
 body.reservation2-page:not(.is-booking) .site-footer{position:relative!important;inset:auto!important;padding:18px!important}
}
@media(max-width:700px){
 body.reservation2-page .r2-main,body.reservation2-page .r2-layout,body.reservation2-page .page-wrapper{animation:none!important;transition:none!important;transform:none!important;will-change:auto!important;backdrop-filter:none!important}
}
@media(max-width:700px){
 .membership-page input,.profile-page input,.profile-page textarea{font-size:16px!important;min-height:48px}
 .membership-page #members-container>div{padding:20px 16px!important;gap:16px!important;grid-template-columns:minmax(0,1fr)!important}
 .membership-page #members-container label,.profile-page label{font-size:12px!important;letter-spacing:.04em!important}
 .membership-page #members-container .btn-remove-member{min-width:44px;min-height:44px;right:4px!important;top:4px!important}
 .membership-page #price-recap{padding:24px 16px!important}
 .membership-page #price-details{font-size:14px!important;letter-spacing:0!important;line-height:1.5}
 .membership-page #members-form>div:last-child{padding:20px 16px!important}
 .membership-page #members-form button,.membership-page #members-form a,.profile-page button,.profile-page a{min-height:44px;font-size:12px!important;letter-spacing:.04em!important}
 .membership-page #accept-rules{min-width:24px;min-height:24px;margin-right:10px}
 .profile-page>div.max-w-6xl>div.grid{display:flex!important;flex-direction:column!important;gap:20px!important}
 .profile-page>div.max-w-6xl>div.grid>div{width:100%;min-width:0}
 .profile-page>div.max-w-6xl>div.grid>div:last-child{order:-1}
 .profile-page #bookings-list{max-height:none!important;overflow:visible!important}
 .profile-page #bookings-list>div{padding:16px!important}
 .profile-page .glass-card h3{font-size:14px!important}
 .profile-page #membership-details{font-size:14px!important}
 .profile-page .glass-card p{font-size:14px!important;line-height:1.5}
}

@media(max-width:700px){
 .profile-page>div.max-w-6xl,.profile-page>div.max-w-6xl>*{min-width:0!important;width:100%!important;box-sizing:border-box}
 .profile-page>div.max-w-6xl>header{display:flex!important;flex-direction:column!important;gap:8px!important}
 .profile-page>div.max-w-6xl>header>div{min-width:0!important;max-width:100%!important}
 .profile-page #bookings-list>div>div{min-width:0!important;flex-wrap:wrap}
 .profile-page #bookings-list button{color:#fff!important}
}

@media(max-width:700px){body.reservation2-page #booking.r2-main,body.reservation2-page #booking.r2-main.is-entering{transform:none!important;animation:none!important;transition:none!important}}

.r2-quota-mode{margin:0 0 20px;padding:16px;border:1px solid #86a9e6;border-radius:12px;background:#152b4c;color:#fff;text-align:left;font-size:16px;line-height:1.5}.r2-quota-mode label{display:flex;align-items:center;gap:12px;min-height:44px;font-weight:700}.r2-quota-mode input{width:24px;height:24px;flex-shrink:0}.r2-quota-mode p{margin:8px 0 0}.r2-cart-total strong{overflow-wrap:anywhere}.r2-cart-actions button:disabled{opacity:.55;cursor:wait}
