[hidden]{display:none!important}.booking-page{--booking-paper:#f9f6f0;--booking-ink:#1e1b18;--booking-coral:#d94e34;--booking-gold:#e5a93c;--booking-green:#1d3b38;min-height:calc(100dvh - 88px);color:var(--booking-ink);background:var(--booking-paper);padding:clamp(1rem,3vw,2rem) 1rem 3rem}.booking-wizard{width:min(52rem,100%);margin-inline:auto}.booking-step{padding-bottom:2rem}.step-heading{text-align:center;margin-bottom:1rem}.step-heading h1{color:var(--booking-green);letter-spacing:-.035em;margin:0 0 .4rem;font-size:clamp(2rem,9vw,3.5rem)}.step-heading p:last-child{color:#675f56;margin:0;font-size:.9rem}.booking-kicker{color:#a63826;letter-spacing:.16em;text-transform:uppercase;margin:0 0 .25rem;font:800 .72rem/1.2 system-ui,sans-serif}.personal-grid{grid-template-columns:1fr 1fr;gap:.7rem;display:grid}.field{letter-spacing:.02em;gap:.3rem;min-width:0;font-size:.76rem;font-weight:800;display:grid}.field span{line-height:1.25}.field input{width:100%;min-height:2.75rem;color:var(--booking-ink);background:#fff;border:1px solid #9c9081;border-radius:0;padding:.62rem .7rem;font:500 1rem/1.2 system-ui,sans-serif}.field input:focus-visible,.choice-card input:focus-visible{outline:3px solid var(--booking-gold);outline-offset:2px}.catalog-status,.load-error{text-align:center;color:#675f56;margin:1rem 0}.load-error p{margin-bottom:.65rem}.wizard-controls{gap:.6rem;margin:1.4rem 0 0;display:flex}.path-button,.primary-button,.secondary-button,.back-button{cursor:pointer;border:2px solid #0000;min-height:2.9rem;font:800 .9rem/1.2 system-ui,sans-serif}.path-button{border-color:var(--booking-coral);color:#fff;text-align:left;background:#a63826;flex:1;gap:.18rem;padding:.65rem;display:grid}.path-button span{font-size:.68rem;font-weight:600}.primary-button{border-color:var(--booking-coral);color:#fff;background:#a63826;flex:1;padding:.65rem 1.2rem}.back-button,.secondary-button{border-color:var(--booking-green);color:var(--booking-green);background:0 0;padding:.65rem 1rem}.choice-section{border:0;min-width:0;margin:0 0 1rem;padding:0}.choice-section legend{width:100%;color:var(--booking-green);margin-bottom:.55rem;font:700 1.25rem/1.2 Georgia,serif}.option-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;display:grid}.choice-card{cursor:pointer;background:#fff;border:1px solid #a99e90;align-items:center;gap:.6rem;min-height:3.5rem;padding:.65rem;display:flex;position:relative}.choice-card:has(input:checked){border-color:var(--booking-coral);box-shadow:inset 0 0 0 1px var(--booking-coral);background:#fff4ef}.choice-card input{width:1.15rem;height:1.15rem;accent-color:var(--booking-coral);flex:none;margin:0}.choice-card span{min-width:0;line-height:1.15;display:grid}.choice-card strong{font-size:.86rem}.choice-card small{color:#675f56;margin-top:.25rem;font-size:.75rem;font-weight:700}.partner-field{margin-bottom:1rem}.partner-field small{color:#675f56;font-weight:500}.equivalence-notice{border-left:4px solid var(--booking-gold);background:#fff2cc;margin:1rem 0;padding:1rem}.equivalence-notice p{margin-bottom:.65rem;font-size:.9rem}.selection-error{color:#a52216;font-weight:800}.wizard-controls{justify-content:space-between}.page-description{max-width:44rem;margin:1.25rem 0 0}.step-heading h1+.page-description,.booking-extras header h1+.page-description{margin-top:1.25rem}.page-description[data-align=center]{text-align:center;margin-inline:auto}.page-description[data-align=right]{text-align:right;margin-left:auto}.page-description[data-align=justify]{text-align:justify;hyphens:auto}.booking-notice{max-width:44rem;margin-inline:auto}.countdown{border-top:1px solid var(--ochre);border-bottom:1px solid var(--ochre);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;margin-top:1rem;padding:.7rem 1rem;display:flex}.countdown[hidden]{display:none}.countdown__label{color:var(--muted);font-family:var(--accent-font);letter-spacing:.14em;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:700}.countdown__units{gap:.9rem;margin:0;padding:0;list-style:none;display:flex}.countdown__units li{flex-direction:column;align-items:center;min-width:2.4rem;line-height:1;display:flex}.countdown__units strong{color:var(--forest);font-family:var(--display-font);font-variant-numeric:tabular-nums;font-size:1.45rem}.countdown__units li:first-child strong{color:var(--coral)}.countdown__units span{color:var(--muted);font-family:var(--accent-font);letter-spacing:.1em;text-transform:uppercase;margin-top:.3rem;font-size:.62rem}@media (width<=760px){.countdown{text-align:center;justify-content:center}.countdown__label{width:100%}}.muted-text{opacity:.75;margin:0}.page-description>:first-child{margin-top:0}.page-description>:last-child{margin-bottom:0}.page-description h2,.page-description h3,.page-description h4{margin:1rem 0 .4rem}.page-description ul,.page-description ol{padding-left:1.3rem}@media (width>=600px){.personal-grid{gap:.9rem}.field{font-size:.84rem}.option-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.path-button{text-align:center;padding:.85rem 1rem}}@media (width<=760px){.booking-page{min-height:100dvh;padding-bottom:5rem}.booking-step{padding-bottom:2rem}}@media (width<=370px){.personal-grid{gap:.5rem}.field input{padding-inline:.5rem}.path-button span{display:none}}@media (prefers-reduced-motion:reduce){.booking-page *{scroll-behavior:auto!important}}.booking-progress ol{flex-wrap:wrap;justify-content:center;gap:.3rem;max-width:42rem;margin:0 auto 1.2rem;padding:0;list-style:none;display:flex}.booking-progress li{color:#665f58;background:#ece4d5;border-radius:999px;align-items:center;gap:.35rem;padding:.25rem .55rem;font-size:.72rem;font-weight:800;display:flex}.booking-progress li span{background:#fff;border-radius:50%;place-items:center;width:1.35rem;height:1.35rem;display:grid}.booking-progress li em{font-style:normal;display:none}.booking-progress li.current{background:var(--booking-green);color:#fff}.booking-progress li.current em{display:inline}.booking-progress li.done{color:var(--booking-green);background:#d7e6dc}@media (width>=700px){.booking-progress li em{display:inline}}.booking-note{color:#4d463f;margin:0 0 1rem;font-size:.92rem;line-height:1.5}.intro-choice{gap:.8rem;margin:1.5rem 0;display:grid}@media (width>=600px){.intro-choice{grid-template-columns:1fr 1fr}}.choice-button{border:2px solid var(--booking-coral);color:#fff;cursor:pointer;background:#a63826;min-height:5rem;padding:1rem;font:800 1.05rem/1.3 system-ui,sans-serif}.choice-button:hover,.choice-button:focus-visible{outline:3px solid var(--booking-gold);outline-offset:2px;background:#8e2f1f}.pass-group{border:2px solid var(--booking-green);background:#fff;min-width:0;margin:0 0 1.2rem;padding:.8rem}.pass-group legend{background:var(--booking-green);color:#fff;letter-spacing:.05em;text-transform:uppercase;padding:.15rem .6rem;font:800 .85rem/1.2 system-ui,sans-serif}.pass-card{margin-top:.5rem}.pass-card:first-of-type{margin-top:0}.card-price{color:var(--booking-green);font-size:.9rem;font-weight:800}.choice-card small{font-weight:500}.level-rows,.shirt-rows{gap:.8rem;display:grid}.level-row{background:#fff;border:1px solid #cbbda8;gap:.3rem;padding:.7rem;display:grid}.level-row select,.shirt-row select{width:100%;min-height:2.6rem;font:inherit;color:var(--booking-ink);background:#fff;border:1px solid #9c9081;padding:.5rem}.level-description{color:#675f56;min-height:1.2rem}.shirt-row{background:#fff;border:1px solid #cbbda8;grid-template-columns:5rem 1fr;align-items:center;gap:.7rem;padding:.7rem;display:grid}.shirt-row .field{grid-column:span 1}.shirt-thumb{cursor:zoom-in;background:#f1ece2;border:1px solid #a99e90;width:5rem;height:5rem;padding:0;overflow:hidden}@media (width>=640px){.shirt-thumb{width:6rem;height:6rem}}.shirt-thumb img{object-fit:cover;width:100%;height:100%;display:block}.shirt-info{gap:.2rem;min-width:0;display:grid}.shirt-info small{color:#675f56}.shirt-modal{border:2px solid var(--booking-green);background:#fff;max-width:min(92vw,46rem);padding:.7rem}.shirt-modal::backdrop{background:#14100cb3}.shirt-modal img{max-width:100%;max-height:78vh;margin:.6rem auto 0;display:block}.booking-review{grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:.5rem 1rem;margin:0 0 1.2rem;display:grid}.booking-review dt{font-weight:800}.booking-review dd{overflow-wrap:anywhere;white-space:pre-line;margin:0}.link-button{text-align:center;text-decoration:none;display:inline-block}.primary-button:disabled{opacity:.6;cursor:not-allowed}@media (width<=420px){.booking-review{grid-template-columns:1fr;gap:.1rem}.booking-review dd{margin-bottom:.5rem}}.group-hint{color:#675f56;margin:0 0 .6rem;font-size:.8rem;font-weight:700}.pass-card{background:#fff;border:1px solid #a99e90;margin-top:.5rem}.pass-card .choice-card{border:0;margin:0}.pass-card.selected{border-color:var(--booking-coral);box-shadow:inset 0 0 0 1px var(--booking-coral)}.pass-description{color:#4d463f;padding:0 .8rem .7rem 2.55rem;font-size:.88rem;line-height:1.45}.pass-description>:first-child{margin-top:0}.pass-description>:last-child{margin-bottom:0}.pass-description ul,.pass-description ol,.dance-description ul,.dance-description ol{padding-left:1.2rem}.dance-description{border-left:3px solid var(--booking-gold);color:#4d463f;background:#faf5e8;margin-top:.4rem;padding:.6rem .8rem;font-size:.88rem;line-height:1.45}.dance-description>:first-child{margin-top:0}.dance-description>:last-child{margin-bottom:0}.dance-description h2,.dance-description h3,.dance-description h4{margin:.6rem 0 .25rem;font-size:1rem}.role-fixed{background:#faf5e8;border:1px solid #cbbda8;gap:.2rem;margin:0 0 1rem;padding:.7rem .9rem;display:grid}.role-fixed small{color:#675f56}.option-fields{gap:.7rem;display:grid}.pass-options{padding:0 .8rem .8rem 2.55rem}.option-choice{border:0;min-width:0;margin:0;padding:0}.option-choice legend{margin-bottom:.35rem;padding:0;font-size:.9rem;font-weight:800}.option-choice legend small,.option-text small{color:#675f56;font-weight:500}.option-chips{flex-wrap:wrap;gap:.4rem;display:flex}.option-chip{position:relative}.option-chip input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.option-chip span{background:#fff;border:1px solid #9c9081;align-items:center;gap:.4rem;min-height:2.4rem;padding:.35rem .8rem;font-size:.9rem;font-weight:700;display:inline-flex}.option-chip img{object-fit:cover;width:1.8rem;height:1.8rem}.option-chip input:checked+span{border-color:var(--booking-green);background:var(--booking-green);color:#fff}.option-chip input:focus-visible+span{outline:3px solid var(--booking-gold);outline-offset:2px}.option-text{gap:.25rem;display:grid}.option-text input{min-height:2.6rem;font:inherit;border:1px solid #9c9081;padding:.5rem}.option-check{align-items:center;gap:.5rem;font-size:.9rem;font-weight:700;display:flex}.shirt-options{border-top:1px dashed #cbbda8;grid-column:1/-1;padding-top:.3rem}.shirt-description{color:#675f56;font-size:.88rem;line-height:1.45}.shirt-description>:first-child{margin-top:0}.shirt-description>:last-child{margin-bottom:0}@media (width>=640px){.shirt-row{grid-template-columns:6rem 1fr 7rem}}.choice-head{flex-wrap:wrap;justify-content:space-between;gap:.3rem .8rem;padding:.8rem .8rem .2rem;display:flex}.participant-choice{border:0;gap:.5rem;min-width:0;margin:0;padding:.2rem .8rem .8rem;display:grid}.participant-choice legend{color:#4d463f;padding:0 0 .3rem;font-size:.85rem;font-weight:800}.participant-pick{gap:.5rem;display:grid}.participant-pick .option-fields{padding:0 0 .3rem 2.2rem}.pass-card>.shirt-thumb{margin:0 .8rem .6rem}.school-choice{background:#faf5e8;border:1px solid #cbbda8;gap:.5rem;margin:0 0 1rem;padding:.8rem;display:grid}.school-choice select{width:100%;min-height:2.6rem;font:inherit;color:var(--booking-ink);background:#fff;border:1px solid #9c9081;padding:.5rem}.card-price s{color:#8a8178;margin-right:.2rem;font-weight:500}.booking-preview-banner{border-left:4px solid var(--ochre);background:color-mix(in srgb, var(--ochre) 16%, transparent);border-radius:0 .6rem .6rem 0;margin:0 0 1rem;padding:.75rem 1rem;font-size:.9rem;line-height:1.5}
