:root{--ink:#142a30;--muted:#607075;--accent:#e9462b;--paper:#fff;--line:#dce3e4;--soft:#f3f6f6;--green:#1c6757;--red:#a72619;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:#fff;font-size:16px;line-height:1.5;font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,a,summary{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a,summary{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid #237a9a;outline-offset:4px}[hidden]{display:none!important}.preview-bar{display:flex;align-items:center;justify-content:center;gap:12px;padding:10px 20px;background:#e7eefb;color:#233d72;font-size:.875rem;flex-wrap:wrap;text-align:center}.preview-bar span{font-weight:800;font-size:.75rem;letter-spacing:.08em}.header{max-width:1240px;margin:auto;padding:30px 48px 25px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.brand{text-decoration:none;color:var(--ink);font-size:1rem;font-weight:900;letter-spacing:.18em;line-height:1.1}.brand>span{display:block;font-size:1.65rem;letter-spacing:-.06em}.brand-period{color:var(--accent)}.event-label{text-align:right;font-weight:700;font-size:.875rem;letter-spacing:.04em}.event-label span{display:block;font-size:.75rem;color:var(--muted);margin-top:5px;letter-spacing:.05em}main{max-width:1240px;margin:auto;padding:40px 48px 0}.intro{margin-bottom:36px}.eyebrow{font-size:.75rem;font-weight:800;letter-spacing:.12em;color:var(--accent);margin:0 0 8px}h1{font-size:clamp(2rem,4vw,3.4rem);letter-spacing:-.055em;line-height:1.08;margin:0 0 13px;font-weight:800}.intro>p:last-child{margin:0;color:var(--muted);font-size:1.05rem}.booking-layout{display:grid;grid-template-columns:minmax(0,1.24fr) minmax(330px,1fr);gap:56px;align-items:start}.step-heading{display:flex;align-items:center;gap:12px;margin:0 0 18px}.step-heading h2{margin:0;font-size:1.05rem;font-weight:700;letter-spacing:-.01em}.step-no{color:var(--accent);font-size:.75rem;letter-spacing:.04em;border:1px solid #f4b8ae;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-weight:800;flex-shrink:0}.dates{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:32px}.date{border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--ink);padding:14px 16px;text-align:left;transition:background .15s,border-color .15s}.date:hover{border-color:var(--ink)}.date.selected{background:var(--ink);color:white;border-color:var(--ink)}.date-day{display:block;font-size:.95rem;font-weight:700}.date-number{display:flex;align-items:baseline;gap:10px;font-size:2.5rem;line-height:1.2;font-weight:800;letter-spacing:-.06em;margin:5px 0}.date-number>span{font-size:.75rem;font-weight:500;letter-spacing:.08em}.date-meta{font-size:.8125rem;color:var(--muted)}.selected .date-meta{color:#c0d2d5}.party-section{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-bottom:30px;margin-bottom:28px;border-bottom:1px solid var(--line)}.party-section .step-heading{margin-bottom:7px}.help{font-size:.875rem;color:var(--muted);margin:0}.indent{margin-left:40px}.stepper{border:1px solid var(--line);border-radius:8px;display:flex;align-items:center;flex-shrink:0;overflow:hidden;height:48px}.stepper button{border:0;background:var(--soft);width:40px;height:46px;color:var(--ink);font-size:1.4rem}.stepper button:disabled{color:#a6b1b4}.stepper input{width:44px;border:0;background:white;text-align:center;font-weight:700;padding:0;color:var(--ink);-moz-appearance:textfield}.stepper input::-webkit-inner-spin-button{appearance:none}.duration{font-size:.75rem;color:var(--muted);padding:2px 9px;border-radius:20px;background:var(--soft);margin-left:auto}.slots{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}.slot{border:1px solid var(--line);background:white;color:var(--ink);border-radius:8px;padding:16px 16px 14px;text-align:left;position:relative}.slot:hover:not(:disabled){border-color:var(--accent)}.slot.selected{border:2px solid var(--accent);padding:15px 15px 13px;background:#fff8f6}.slot-time{display:block;font-weight:700;font-size:.95rem}.slot-remaining{display:block;font-size:.8125rem;color:var(--green);margin-top:5px}.slot.selected:after{content:'✓';color:var(--accent);font-size:.75rem;position:absolute;right:12px;top:12px}.slot:disabled{background:#f3f5f5;color:#7a878a;border-color:#e5e9ea}.slot:disabled .slot-remaining{color:#7a878a}.slot.low .slot-remaining{color:#9d4d18}.slot.soldout .slot-remaining{color:var(--red)}.availability-note{font-size:.8125rem;color:var(--muted);margin:15px 0 0}.summary-card{border:1px solid var(--line);border-radius:12px 12px 0 0;box-shadow:0 10px 35px #142a3009;position:relative;margin-bottom:18px}.summary-top{background:var(--soft);padding:17px 27px;border-bottom:1px dashed #ccd7d9;border-radius:12px 12px 0 0;display:flex;justify-content:space-between;align-items:center;font-size:.75rem;letter-spacing:.09em;font-weight:700}.ticket-mark{font-family:monospace;color:var(--muted);font-size:.75rem}.summary-content{padding:25px 27px 20px}.summary-content h2{font-size:1.15rem;letter-spacing:-.025em;line-height:1.3;margin:0 0 4px}.summary-slot{font-size:.95rem;margin:0 0 17px;color:var(--muted)}.summary-party{display:flex;justify-content:space-between;font-size:.875rem;padding-bottom:20px;border-bottom:1px solid var(--line)}.summary-party span{color:var(--muted)}.deposit{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:20px}.deposit>div:first-child>span{font-weight:700;font-size:.875rem}.deposit p{font-size:.75rem;color:var(--muted);margin:4px 0 0;max-width:180px}.amount{font-size:2.1rem;font-weight:800;letter-spacing:-.06em;white-space:nowrap;line-height:1.15}.amount span{display:block;font-size:.75rem;letter-spacing:.04em;text-align:right;color:var(--muted);font-weight:500;margin-top:2px}.deposit-note{font-size:.8125rem;background:#edf5f2;color:#275747;padding:13px 14px;border-radius:5px;line-height:1.55;margin:18px 0 24px}.summary-content h3{font-size:.875rem;margin:0 0 15px}form label{font-size:.8125rem;font-weight:600;display:block;margin:12px 0 5px}form input{width:100%;height:43px;padding:10px 12px;border:1px solid #cdd7d9;border-radius:6px;color:var(--ink);background:white;font-size:1rem}form input::placeholder{color:#879295;font-size:.875rem}.field-note{font-size:.75rem;color:var(--muted);margin:5px 0 18px}.primary{display:flex;align-items:center;justify-content:center;gap:15px;text-align:center;border:0;border-radius:6px;background:var(--accent);color:white;min-height:49px;width:100%;padding:12px 15px;font-size:.9375rem;font-weight:700;text-decoration:none;transition:background .15s}.primary:hover:not(:disabled){background:#cc3620}.primary:disabled{background:#dce1e2;color:#778285}.primary>span{font-size:1.3rem;margin-left:auto}.checkout-note{text-align:center;font-size:.75rem;color:var(--muted);margin:11px 0 0}.ticket-edge{position:absolute;height:12px;left:-1px;right:-1px;bottom:-12px;background:linear-gradient(135deg,white 5px,transparent 0) 0 0/12px 12px,linear-gradient(225deg,white 5px,transparent 0) 0 0/12px 12px;filter:drop-shadow(0 1px 0 #dce3e4)}.demo-tools{background:#f6f8fd;border:1px solid #d9e2f5;border-radius:7px;margin-top:30px;padding:14px 16px;font-size:.8125rem;color:#324b77}.demo-tools summary{cursor:pointer;font-weight:700}.demo-tools p{line-height:1.6;margin:10px 0}.demo-actions{display:flex;flex-wrap:wrap;gap:8px}.demo-actions button{font-size:.8125rem;border:1px solid #b9c9e6;background:white;color:#324b77;padding:7px 10px;border-radius:5px}.demo-actions button:disabled{opacity:.4}footer{display:flex;justify-content:space-between;gap:20px;padding:24px 0;margin-top:58px;border-top:1px solid var(--line);font-size:.75rem;color:var(--muted)}.message{font-size:.875rem;padding:12px 14px;border-radius:6px;margin:12px 0}.error{background:#fff0ed;color:#a22f1f;border:1px solid #f2c5ba}.loading{grid-column:1/-1;color:var(--muted);font-size:.875rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}dialog{border:1px solid var(--line);border-radius:14px;width:min(480px,calc(100% - 32px));padding:0;color:var(--ink);box-shadow:0 20px 120px #001a2960}dialog::backdrop{background:#091e2a99;backdrop-filter:blur(3px)}.dialog-body{padding:32px}.dialog-body h2{font-size:1.8rem;line-height:1.12;letter-spacing:-.04em;margin:12px 0 14px}.dialog-body>p:not(.eyebrow){font-size:.875rem;color:var(--muted)}.confirmation-summary{display:flex;flex-direction:column;gap:8px;background:var(--soft);border-radius:7px;padding:18px;margin:22px 0;font-size:.875rem}.confirmation-summary>span:last-child{font-family:monospace;color:var(--muted);font-size:.75rem}.pay-total{display:flex;gap:10px;justify-content:space-between;font-size:.875rem;margin-bottom:14px}.dialog-body .primary{margin-top:20px}.secondary{width:100%;border:0;background:transparent;color:var(--muted);text-decoration:underline;text-underline-offset:3px;font-size:.8125rem;padding:15px 4px 0}.secondary:disabled{opacity:.5}
@media(min-width:1100px){.summary-card{margin-top:-8px}}
@media(max-width:960px){.header{padding:25px 28px}.booking-layout{gap:30px;grid-template-columns:minmax(0,1fr) minmax(310px,.95fr)}main{padding:32px 28px 0}.party-section{flex-wrap:wrap;gap:14px}.stepper{margin-left:40px}.summary-content{padding:22px}.summary-top{padding:16px 22px}.date{padding:18px}.slots{gap:10px}.slot-time{font-size:.875rem}}
@media(max-width:730px){.header{padding:22px}.event-label{font-size:.7rem}.event-label span{font-size:.7rem;max-width:150px}main{padding:28px 22px 0}.booking-layout{grid-template-columns:1fr;gap:34px}.intro{margin-bottom:27px}h1{font-size:2.5rem}.dates{margin-bottom:26px}.date{padding:12px 10px}.date-day{font-size:.8125rem}.date-number{font-size:2.2rem;gap:6px}.date-meta{font-size:.6875rem}.party-section{flex-wrap:nowrap;gap:8px}.stepper{margin-left:0}.party-section .help{max-width:195px}.slots{gap:12px}.slot{padding:17px}.slot.selected{padding:16px}.slot-time{font-size:1rem}.slot-remaining{font-size:.875rem}.summary-card{max-width:none}.summary-content{padding:25px}.summary-top{padding:17px 25px}.deposit p{max-width:none}.demo-tools{margin-top:24px}footer{flex-direction:column;gap:6px;margin-top:35px}.dialog-body{padding:25px}.preview-bar{font-size:.75rem;gap:3px 8px;padding:8px 16px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
