html[data-venue] .card-reservation[hidden]{display:none!important}
html.card-reservation-open .reservation-dock{display:none}
.official-home .card-reservation,.identity-sy .card-reservation,.identity-st .card-reservation{max-width:1440px;padding:40px clamp(16px,5vw,70px) 70px;scroll-margin-top:100px;border:0}
.reservation-card{--ink:#ecedf1;--muted:#b9c0cd;--bg:#141b25;--panel:#202a37;--line:#455164;--accent:#a9c9f7;background:var(--bg);color:var(--ink);border:1px solid var(--line);padding:clamp(20px,3vw,42px);box-shadow:0 25px 70px #0003}
.card-heading{display:flex;align-items:start;justify-content:space-between;gap:25px}.card-heading .section-kicker{font:10px/1.6 var(--body);letter-spacing:.14em;text-transform:uppercase;margin-bottom:12px}.card-heading h2{font-size:clamp(32px,4vw,55px);margin:0}.card-heading .icon-button{flex:none;color:var(--ink);background:none;border:1px solid var(--line);width:44px;height:44px;font-size:24px}
.card-steps{display:grid;grid-template-columns:repeat(4,1fr);list-style:none;padding:0;margin:28px 0;border-bottom:1px solid var(--line);gap:15px}.card-steps li{font:11px/1.5 var(--body);padding:14px 0;color:var(--muted)}.card-steps li[aria-current]{color:var(--accent);border-bottom:2px solid var(--accent)}.card-steps span{margin-left:8px}.card-steps[hidden]{display:none}
#card-stage{min-height:530px}#card-stage .map-caption{margin-top:0}#card-stage .map-sidebar .book-selection{width:100%}.card-safety{font:10px/1.7 var(--body);color:var(--muted);border-top:1px solid var(--line);padding-top:20px;margin-top:28px}
.card-form{max-width:800px;margin:0 auto;padding:30px 0}.card-selection{color:var(--accent);font:12px/1.8 var(--body);border-bottom:1px solid var(--line);padding-bottom:22px;margin-bottom:24px}.card-intro{font-size:25px;line-height:1.4;margin-bottom:26px}.card-form .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:30px 0}.card-form label{display:block;font:13px/1.6 var(--body)}.card-form input:not([type=checkbox]){display:block;width:100%;min-width:0;background:#1d2735;border:1px solid var(--line);border-radius:0;color:var(--ink);padding:15px;margin-top:10px;font:16px var(--body);color-scheme:dark}.card-form small,.card-note{display:block;color:var(--muted);font:11px/1.7 var(--body);margin-top:12px}.card-form .booking-actions{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);margin-top:32px;padding-top:24px}.card-form .sample-panel{color:var(--muted);font:12px/1.7 var(--body);padding:18px;border:1px solid var(--line)}
.card-payment h3{font-size:25px;margin-bottom:22px}.payment-columns{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin:30px 0}.card-payment dl{display:grid;grid-template-columns:auto 1fr;gap:16px;font:13px/1.6 var(--body)}.card-payment dt{color:var(--muted)}.card-payment dd{margin:0;text-align:right;overflow-wrap:anywhere}.card-payment .text-link{background:none;color:var(--ink);border:0;border-bottom:1px solid var(--line)}.demo-card{display:grid;gap:24px;background:linear-gradient(135deg,#344764,#1d2734);border:1px solid #6e83a0;padding:24px}.demo-card span{font:10px var(--body);letter-spacing:.16em}.demo-card strong{font:18px var(--body);letter-spacing:.08em}.demo-card small{font-size:10px}.card-form .card-consent{display:flex;gap:12px;align-items:start;margin-top:30px;font-size:12px}.card-consent input{flex:none;width:18px;height:18px;margin-top:1px;accent-color:var(--accent)}.card-complete h3{font-size:32px}.card-complete p{margin:25px 0;line-height:1.7}.payment-mark{font-size:55px;color:var(--accent)}
#card-stage .form-error{font:13px/1.7 var(--body);color:#ffc2c2;min-height:22px;margin:18px 0}
@media(max-width:700px){.official-home .card-reservation,.identity-sy .card-reservation,.identity-st .card-reservation{padding-inline:12px;scroll-margin-top:105px}.reservation-card{padding:18px}.card-heading h2{font-size:30px}.card-steps{gap:8px}.card-steps li{font-size:9px}.card-steps span{display:block;margin:4px 0 0}#card-stage{min-height:460px}.card-form{padding:12px 0}.card-form .form-grid,.payment-columns{grid-template-columns:1fr;gap:20px}.card-form .booking-actions{gap:10px}.card-form .button{font-size:12px;padding:13px 16px;gap:10px}.card-payment h3{font-size:23px}}

.identity-ab .reservation-card{--accent:#ffbc00}
.identity-sy .reservation-card{--ink:#f4f0e6;--muted:#c2c7ce;--accent:#af9562;--line:#485368;--bg:#121c2b;--panel:#1a273a}

/* A short arrival into the plan; visibility and booking never depend on animation. */
.card-arriving .reservation-card{position:relative;isolation:isolate;animation:reservation-arrival .8s cubic-bezier(.16,1,.3,1) both}
.card-arriving .reservation-card:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:3;background:linear-gradient(115deg,transparent 30%,#dfebff20 45%,#dfebff05 52%,transparent 65%);background-size:240% 100%;animation:reservation-light .9s ease-out both}
@keyframes reservation-arrival{from{opacity:.25;transform:translateY(32px) scale(.975);clip-path:inset(5% 0 3%)}to{opacity:1;transform:none;clip-path:inset(0)}}
@keyframes reservation-light{from{background-position:140% 0;opacity:0}25%{opacity:1}to{background-position:-40% 0;opacity:0}}
html[data-motion=off] .card-arriving .reservation-card,html[data-motion=off] .card-arriving .reservation-card:after{animation:none}
@media(prefers-reduced-motion:reduce){.card-arriving .reservation-card,.card-arriving .reservation-card:after{animation:none}}

/* A single frame, with a quiet directional handoff between its live steps. */
#card-stage{display:flow-root;box-sizing:border-box}
.reservation-card{box-sizing:border-box}
.card-changing #card-stage,.card-changing #room-heading{will-change:transform,opacity}
.card-steps{position:relative;gap:0}
.card-steps li{transition:color .35s ease}
.card-steps li[aria-current]{border-bottom:0}
.card-steps:after{content:"";position:absolute;bottom:-1px;left:0;width:25%;height:2px;background:var(--accent);transform:translateX(var(--booking-progress,0%));transition:transform .48s cubic-bezier(.22,1,.36,1)}
.card-reservation[data-stage="1"]{--booking-progress:100%}
.card-reservation[data-stage="2"]{--booking-progress:200%}
.card-reservation[data-stage="3"]{--booking-progress:300%}
html[data-motion=off] .card-steps:after,html[data-motion=off] .card-steps li{transition:none}
@media(prefers-reduced-motion:reduce){.card-steps:after,.card-steps li{transition:none}}

.card-table-picker{display:none}
@media(max-width:700px){
  html.card-reservation-open .site-header{visibility:hidden}
  html[data-venue] .card-reservation{width:100%;max-width:none;margin-inline:0;padding:16px 10px 36px;scroll-margin-top:24px}
  .card-reservation .reservation-card{padding:18px 16px max(18px,env(safe-area-inset-bottom))}
  .card-heading{gap:12px}.card-heading>div{min-width:0}
  .card-heading h2{font-size:28px;line-height:1.12}
  .card-heading .section-kicker{font-size:9px;letter-spacing:.1em;margin-bottom:10px}
  .card-heading .icon-button{width:48px;height:48px}
  .card-steps{margin:20px 0}.card-steps li{font-size:11px;padding:10px 0}
  #card-stage{min-height:0}
  #card-stage .map-caption{font-size:12px;padding-bottom:12px;margin-bottom:8px}
  #card-stage .map-angles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:12px}
  #card-stage .map-angles button{font-size:11px;min-width:0;min-height:48px;padding:8px 4px}
  #card-stage .map-toolbar{margin-top:12px}
  #card-stage .map-toolbar button{min-height:48px;min-width:48px}
  #card-stage .map-explorer{gap:18px}
  #card-stage .map-sidebar{grid-template-columns:1fr;gap:12px;padding-top:18px!important}
  #card-stage .map-sidebar .selected-preview,#card-stage .map-sidebar .selection-image-note{display:none}
  #card-stage .card-table-picker{display:block;grid-column:1;grid-row:1}
  .card-table-picker label{display:block;font:13px/1.5 var(--body);margin-bottom:8px;color:var(--muted)}
  .card-table-picker select{display:block;width:100%;max-width:100%;min-width:0;min-height:52px;padding:12px;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:0;font:16px var(--body);color-scheme:dark}
  #card-stage .map-sidebar .map-selected{grid-column:1;grid-row:2;font-size:23px!important;margin:4px 0 0!important}
  #card-stage .map-sidebar .selection-facts{grid-column:1;grid-row:3;margin:0;font-size:12px;line-height:1.6}
  #card-stage .map-sidebar .book-selection{grid-column:1;grid-row:4;margin:4px 0 0;min-height:52px;font-size:13px}
  #card-stage .map-sidebar.has-mobile-picker .map-list{display:none}
  .card-form{padding:4px 0}.card-intro{font-size:22px;margin-bottom:20px}
  .card-selection{font-size:12px;padding-bottom:16px;margin-bottom:20px}
  .card-form .form-grid,.payment-columns{gap:20px;margin:24px 0}
  .card-form input:not([type=checkbox]){max-width:100%;min-height:52px}
  .card-form .booking-actions{display:grid;grid-template-columns:minmax(72px,.4fr) minmax(0,1fr);gap:10px;margin-top:24px;padding-top:20px}
  .card-form .booking-actions .button{width:100%;min-width:0;min-height:52px;padding:12px;font-size:13px;line-height:1.4;white-space:normal;justify-content:space-between}
  .card-form .booking-actions .button span{flex:none}
  .card-form .card-consent{min-height:48px;padding-block:8px;font-size:13px;line-height:1.6}
  .card-consent input{width:24px;height:24px}
  .card-payment .text-link{min-height:48px;padding-block:12px;text-align:left}
  .card-safety{font-size:11px;margin-top:22px;padding-top:18px}
}

/* Live booking on the venue domains (2026-10-30): the server's own price rows, the Square card. */
.live-rows .row{display:flex;justify-content:space-between;gap:16px;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.12)}
.live-rows .row .k{opacity:.75}
.live-rows .row.tot{font-weight:600}
.live-card{min-height:96px;margin:8px 0 12px}
.live-sub,.night-status{margin:8px 0}
.night-status:empty{display:none}
