.checkout-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:1.5rem;align-items:start}.checkout-first{padding:1rem;background:#0b0b0b;border:1px solid var(--line);margin-bottom:1rem}.event-date-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin-top:1.25rem}.event-date-card{display:grid;gap:.28rem;min-height:130px;padding:1rem;border:1px solid #4a4140;background:#111;color:#fff;text-align:left;cursor:pointer;transition:border-color .18s,background .18s,transform .18s}.event-date-card:hover,.event-date-card:focus-visible{border-color:#e82c39;background:#1d1112;transform:translateY(-2px)}.event-date-card.selected{border-color:#ff3d49;background:#2a0d11;box-shadow:0 0 0 2px rgba(255,61,73,.18)}.event-date-card:disabled{cursor:not-allowed;opacity:.65;transform:none}.event-date-day{color:#ff626d;font-size:.7rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase}.event-date-card strong{font-size:1.35rem}.event-date-card span:not(.event-date-day){color:#c4b9b1;font-size:.82rem}.event-date-card em{margin-top:auto;color:#75dc91;font-size:.7rem;font-style:normal;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.event-date-card:disabled em{color:#aaa}.public-journey ol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1.5rem 0 0;padding:0;list-style:none}.public-journey li{display:flex;gap:1rem;padding:1.25rem;background:#111;border:1px solid var(--line)}.public-journey li>span{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;border-radius:50%;background:#a30d18;color:#fff;font-weight:900}.public-journey strong{color:#fff;font-size:1.02rem}.public-journey p{margin:.35rem 0 0;color:var(--muted);font-size:.88rem;line-height:1.55}.order-summary{position:sticky;top:1rem;padding:1.25rem;background:#080808;border:1px solid var(--line)}.order-summary dl{margin:0}.order-summary dl div{display:flex;justify-content:space-between;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--line)}.order-summary dt{color:var(--muted)}.order-summary dd{margin:0;text-align:right;font-weight:800}.order-summary .summary-total{font-size:1.25rem}.order-summary .summary-total dd{color:#fff}.checkout-assurances{display:grid;gap:.45rem;margin:1rem 0;padding:0;list-style:none;color:#cfc4bd;font-size:.82rem}.checkout-assurances li::before{content:'✓';margin-right:.5rem;color:#72df91;font-weight:900}.waiver-summary-link{display:inline-block;color:#fff;font-weight:800;text-decoration:underline;text-decoration-color:#e32836;text-underline-offset:.2rem}.payment-section{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line)}.checkout-pay{width:100%;font-size:1rem}.secure-note{text-align:center;font-size:.8rem}.guest-name-grid{margin-bottom:1rem}.confirmation-checklist{margin-top:2rem;padding:1.5rem;background:#0c0c0c;border:1px solid var(--line)}.confirmation-checklist ul{display:grid;gap:.65rem;padding:0;list-style:none}.confirmation-checklist li{display:grid;grid-template-columns:minmax(150px,.45fr) 1fr;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--line)}.confirmation-checklist li span{color:var(--muted)}@media(max-width:900px){.event-date-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.public-journey ol{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:800px){.checkout-layout{grid-template-columns:1fr}.order-summary{position:static;grid-row:1}}@media(max-width:600px){.event-date-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.event-date-card{min-height:116px}.public-journey ol{grid-template-columns:1fr}.confirmation-checklist li{grid-template-columns:1fr;gap:.2rem}}

.event-date-card.limited{border-color:#9a681f}.event-date-card.sold-out{border-color:#7e252c;background:#1b0b0d}.event-date-card.limited em{color:#ffd16a}.event-date-card.sold-out em{color:#ff7b85}.summary-availability{padding:.65rem;border-left:3px solid #b31320;background:#170e0f;color:#ddd!important;font-weight:700}
.waitlist-card{border-color:#6f252b;background:linear-gradient(145deg,#160d0f,#090909)}.waitlist-card form{margin-top:1.25rem}.waitlist-card button{margin-top:1rem}
.confirmation-order-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-top:1.5rem}.confirmation-order-facts span{display:grid;gap:.35rem;padding:1rem;background:rgba(5,5,5,.72);border:1px solid #4a3033}.confirmation-order-facts small,.guest-ticket-heading small{color:#b9aca5;font-size:.7rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.confirmation-order-facts strong{color:#fff;line-height:1.35}.waiver-progress-card{border-left:5px solid #d01a27}.waiver-progress-card.complete{border-left-color:#2eaa57}.waiver-progress-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem}.waiver-progress-heading h2{margin-bottom:.35rem}.waiver-progress-count{font-size:1.25rem;color:#fff;white-space:nowrap}.waiver-progress-track{height:10px;margin:1rem 0;border-radius:999px;background:#2b2424;overflow:hidden}.waiver-progress-track span{display:block;height:100%;background:linear-gradient(90deg,#a80f1a,#ed3340);transition:width .25s}.waiver-progress-card.complete .waiver-progress-track span{background:linear-gradient(90deg,#238e47,#48d878)}.guest-ticket-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1.25rem}.guest-ticket-card{display:flex;flex-direction:column;border-top:3px solid #c81b27}.guest-ticket-card.waiver-ready{border-top-color:#35b960}.guest-ticket-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.guest-ticket-heading h3{margin:.3rem 0 0;color:#fff;font-size:1.3rem}.guest-status{flex:0 0 auto;padding:.42rem .58rem;border-radius:999px;font-size:.68rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.guest-status.ready{color:#baf3ca;background:#12331d;border:1px solid #2c7944}.guest-status.missing{color:#ffd1d4;background:#3c1115;border:1px solid #84232b}.waiver-match-note{min-height:2.8rem;color:var(--muted);font-size:.86rem}.guest-ticket-card>.btn{align-self:flex-start}.ticket-barcode{display:grid;justify-items:center;gap:.45rem;margin-top:1.25rem;padding:1rem;background:#fff;color:#111;text-align:center}.ticket-barcode img{display:block;width:min(100%,520px);height:auto}.ticket-barcode strong{font-family:Consolas,monospace;font-size:1rem;letter-spacing:.08em}.ticket-barcode span{color:#555;font-size:.75rem;font-weight:800;text-transform:uppercase}
@media(max-width:750px){.confirmation-order-facts,.guest-ticket-grid{grid-template-columns:1fr}.guest-ticket-heading{align-items:center}.waiver-progress-heading{align-items:flex-start}}

.guest-name-group{min-width:0;margin:16px 0;padding:16px;border:1px solid #744047;border-radius:8px}.guest-name-group legend{padding:0 8px;font-weight:700}input[aria-invalid="true"]{border-color:#ff6671;outline-color:#ff6671}

/* Billing address on card checkout */
.billing-address{border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:14px 16px 4px;margin:14px 0}
.billing-address legend{padding:0 6px;font-weight:700}
.billing-address .muted{margin:0 0 10px;font-size:.9rem}

/* Ticket type choice (general / Fast Pass) */
.ticket-type-choice{border:0;padding:0;margin:14px 0;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.ticket-type-choice legend{font-weight:700;margin-bottom:8px;padding:0}
.ticket-type-option{display:flex;gap:12px;align-items:flex-start;padding:14px;border:1px solid rgba(255,255,255,.16);border-radius:12px;cursor:pointer;margin:0}
.ticket-type-option input[type=radio]{margin-top:4px;width:18px;height:18px;min-height:0;flex:none;padding:0;border:0;box-shadow:none;background:none;appearance:auto;accent-color:#d71920}
.ticket-type-option span{display:grid;gap:3px}
.ticket-type-option em{font-style:normal;font-weight:800}
.ticket-type-option small{opacity:.8;font-weight:400}
.ticket-type-option:has(input:checked){border-color:#d71920;box-shadow:0 0 0 1px #d71920 inset;background:rgba(215,25,32,.08)}

/* Kid ticket rows: keep hidden parts hidden even though labels are styled as grids */
#ticket-form [hidden]{display:none!important}
.guest-kid-row{margin-top:10px}
.guest-kid-row small{display:block;opacity:.75;font-weight:400;margin-top:4px}

/* Pop-up when a kid ticket's date of birth makes the child too old */
.age-dialog{max-width:min(520px,calc(100vw - 32px));border:2px solid #d71920;border-radius:14px;background:#141011;color:#f4ece4;padding:22px 22px 18px;box-shadow:0 20px 60px rgba(0,0,0,.6)}
.age-dialog::backdrop{background:rgba(0,0,0,.7)}
.age-dialog h2{margin:0 0 10px;font-size:1.35rem;color:#ff4d57}
.age-dialog p{margin:0 0 10px}
.age-dialog [data-age-message]{font-weight:700}
.age-dialog-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.age-dialog-actions button{flex:1 1 200px}

/* Ticket prices in the tickets page header: online price, cash price right below, then any note */
.price-rows{display:grid;gap:18px;margin-top:14px}
.price-row p{margin:0}
.price-row-online{line-height:1.2}
.price-row-online strong{font-weight:700}
.price-row-cash{margin-top:4px!important;font-size:1.05rem;font-weight:600;opacity:.9}
.price-row-note{margin-top:4px!important;font-size:.92rem}
