.booking{--alert-dot: rgb(216, 90, 25);--alert-ink: #8A3A10;--alert-bg: color-mix(in oklab, var(--alert-dot) 14%, var(--paper));max-width:var(--maxw);margin:0 auto;padding:clamp(40px,6vw,88px) var(--pad) clamp(56px,7vw,96px)}.booking .eyebrow{display:flex;align-items:center;gap:var(--sp-2);font-family:var(--sans);font-size:var(--step--2);text-transform:uppercase;letter-spacing:.16em;color:var(--muted);margin-bottom:var(--sp-1)}.booking .eyebrow .rule{width:24px;height:1px;background:currentColor;opacity:.5}.booking .book-title{font-family:var(--serif);font-weight:400;font-size:var(--step-5);line-height:1.02;letter-spacing:-.02em;margin:0 0 6px;text-wrap:balance}.booking .book-lede{color:var(--muted);margin:0 0 var(--sp-5);max-width:60ch;font-size:var(--step-0)}.booking .flow-progress{display:flex;align-items:center;gap:var(--sp-2);font-family:var(--sans);font-size:var(--step--2);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:var(--sp-5)}.booking .flow-progress b{color:var(--ink)}.booking .view-toggle{display:inline-flex;gap:4px;padding:4px;background:var(--chip);border-radius:999px;margin-bottom:var(--sp-4)}.booking .view-toggle button{border:0;background:transparent;padding:9px 16px;min-height:40px;border-radius:999px;font-family:var(--sans);font-size:var(--step--2);text-transform:uppercase;letter-spacing:.1em;font-weight:600;color:var(--muted);cursor:pointer;transition:color .2s,background .2s}.booking .view-toggle button.active{background:var(--ink);color:var(--bg)}.booking .filter-row{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:var(--sp-5)}.booking .filter-chip{font-family:var(--sans);font-size:var(--step--2);text-transform:uppercase;letter-spacing:.1em;padding:8px 14px;min-height:36px;display:inline-flex;align-items:center;border:1px solid var(--line-strong);border-radius:999px;background:transparent;color:var(--muted);cursor:pointer;transition:all .2s ease}.booking .filter-chip.active{background:var(--ink);color:var(--bg);border-color:var(--ink)}.booking .catalog-grid{display:grid;grid-template-columns:1fr;gap:var(--grid-gap, clamp(16px, 1.6vw, 22px))}@media (min-width: 560px){.booking .catalog-grid{grid-template-columns:1fr 1fr}}@media (min-width: 920px){.booking .catalog-grid{grid-template-columns:1fr 1fr 1fr}}.booking .sess-card{background:var(--paper);border:.5px solid var(--line);border-radius:6px;overflow:hidden;display:flex;flex-direction:column;transition:transform .25s ease,box-shadow .25s ease}.booking .sess-card:hover{transform:translateY(-3px);box-shadow:0 18px 40px -20px color-mix(in oklab,var(--ink) 40%,transparent)}.booking .sess-photo{aspect-ratio:4 / 3;background:linear-gradient(135deg,#8b8a6b,#5c6b4a);position:relative;overflow:hidden}.booking .sess-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,.35))}.booking .sess-photo-img{position:absolute;inset:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block}.booking .sess-photo .ph-label{position:absolute;left:8px;bottom:8px;color:#fff;font-size:9px;text-transform:uppercase;letter-spacing:.1em;opacity:.85}.booking .sess-body{padding:var(--sp-3) var(--sp-3) var(--sp-4);display:flex;flex-direction:column;gap:6px;flex:1}.booking .sess-meta{font-size:var(--step--2);text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.booking .sess-meta .sess-date{white-space:nowrap}.booking .sess-title{font-family:var(--serif);font-size:var(--step-1);margin:0;line-height:1.2}.booking .sess-loc{font-size:12px;color:var(--muted)}.booking .sess-varies{font-size:11px;color:var(--muted);font-style:italic}.booking .class-card{cursor:pointer}.booking .sess-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:8px;border-top:.5px solid var(--line)}.booking .sess-price{font-family:var(--sans);font-weight:700;font-size:var(--step-0);font-variant-numeric:tabular-nums}.booking .cap-chip{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;padding:4px 9px;border-radius:999px;white-space:nowrap}.booking .cap-chip .dot{width:6px;height:6px;border-radius:50%}.booking .cap-chip.open{background:var(--chip);color:var(--ink)}.booking .cap-chip.open .dot{background:var(--accent)}.booking .cap-chip.low{background:var(--alert-bg);color:var(--alert-ink);font-weight:600}.booking .cap-chip.low .dot{background:var(--alert-dot);box-shadow:0 0 0 3px color-mix(in oklab,var(--alert-dot) 25%,transparent)}.booking .cap-chip.full{background:var(--ink);color:var(--bg)}.booking .cap-chip.full .dot{background:var(--bg)}.booking .link-cta{display:inline-flex;align-items:center;gap:6px;font-family:var(--sans);font-size:var(--step--2);text-transform:uppercase;letter-spacing:.1em;font-weight:600;color:var(--ink);padding:8px 6px;margin:-8px -6px;border-radius:999px;cursor:pointer;transition:color .2s}.booking .link-cta:hover{color:var(--accent-ink)}.booking .empty-note{margin-top:var(--sp-4);padding:var(--sp-5);border:1px dashed var(--line-strong);border-radius:8px;font-size:13px;color:var(--muted);text-align:center}.booking .catalog-grid.dates-mode{display:block}.booking .filter-row-class{margin-top:calc(-1 * var(--sp-3))}.booking .dates-list{display:flex;flex-direction:column}.booking .month-head{position:sticky;top:58px;z-index:5;font-family:var(--sans);font-size:var(--step--2);font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);background:var(--bg);padding:10px 2px 8px;margin:6px 0 8px;border-bottom:.5px solid var(--line)}.booking .dates-list .month-head:first-child{margin-top:0}.booking .date-row{display:flex;align-items:center;gap:var(--sp-3);padding:13px 16px;margin-bottom:8px;border:.5px solid var(--line-strong);border-radius:8px;background:var(--paper);color:var(--ink);text-decoration:none;transition:border-color .14s ease,background .14s ease,box-shadow .14s ease}.booking .date-row:hover,.booking .date-row:focus-visible{border-color:var(--accent-ink);background:color-mix(in oklab,var(--accent) 6%,var(--paper));box-shadow:0 6px 18px -12px color-mix(in oklab,var(--ink) 45%,transparent);outline:none}.booking .dr-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:3px}.booking .dr-date{font-family:var(--sans);font-weight:600;font-size:var(--step--1);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.booking .dr-sub{font-size:13px;color:var(--muted);display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 6px}.booking .dr-class{color:var(--ink);font-weight:500}.booking .dr-sep{opacity:.4}.booking .dr-end{flex:0 0 auto;display:flex;align-items:center;gap:var(--sp-3)}.booking .dr-price{font-family:var(--sans);font-weight:700;font-size:var(--step-0);font-variant-numeric:tabular-nums;white-space:nowrap}.booking .dr-chev{flex:0 0 auto;color:var(--muted);transition:transform .14s ease,color .14s ease}.booking .date-row:hover .dr-chev,.booking .date-row:focus-visible .dr-chev{color:var(--accent-ink);transform:translate(3px)}@media (max-width: 560px){.booking .date-row{flex-wrap:wrap;padding:12px 14px}.booking .dr-end{width:100%;gap:var(--sp-2);padding-top:6px}.booking .dr-chev{margin-left:auto}}.booking .btn.block{width:100%;justify-content:center}.booking .btn[disabled]{opacity:.45;cursor:not-allowed}.booking .back-link{display:inline-flex;align-items:center;gap:6px;font-size:var(--step--2);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:var(--sp-3);padding:8px 0}.booking .detail-hero{aspect-ratio:16 / 7;border-radius:8px;background:linear-gradient(135deg,#8b8a6b,#5c6b4a);margin-bottom:var(--sp-4);position:relative;overflow:hidden;isolation:isolate}.booking .detail-hero.has-img{background-size:cover;background-position:center}.booking .detail-hero:before{content:"";position:absolute;left:0;right:0;bottom:0;height:58%;z-index:-1;pointer-events:none;background:linear-gradient(0deg,color-mix(in oklab,#000 55%,transparent) 0%,color-mix(in oklab,#000 22%,transparent) 45%,transparent 100%)}.booking .detail-hero span{position:absolute;left:16px;bottom:14px;color:#fff;font-size:11px;text-transform:uppercase;letter-spacing:.12em;opacity:.95}.booking .detail-layout{display:grid;grid-template-columns:1fr;gap:var(--sp-5)}@media (min-width: 760px){.booking .detail-layout{grid-template-columns:1.5fr 1fr}}.booking .spec-row{display:grid;grid-template-columns:auto 1fr;gap:var(--sp-3);padding:10px 0;border-bottom:.5px solid var(--line);align-items:baseline}.booking .spec-label{font-size:var(--step--2);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);min-width:90px}.booking .spec-value{font-family:var(--serif);font-size:var(--step-1)}.booking .seats-module{background:var(--paper);border:.5px solid var(--line);border-radius:8px;padding:var(--sp-4);margin:var(--sp-4) 0}.booking .seats-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.booking .seats-title{font-family:var(--sans);font-weight:600;font-size:13px}.booking .seats-bar{height:6px;border-radius:999px;background:var(--chip);overflow:hidden;margin-bottom:8px}.booking .seats-fill{height:100%;background:var(--accent)}.booking .seats-fill.warn{background:var(--alert-dot)}.booking .seats-note{font-size:12px;color:var(--muted)}.booking .bring-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.booking .bring-list li{position:relative;padding-left:20px;font-size:13.5px}.booking .bring-list li:before{content:"";position:absolute;left:0;top:8px;width:11px;height:1px;background:var(--accent)}.booking .cp-maplink{color:var(--accent-ink);text-decoration:underline;text-decoration-thickness:.5px;text-underline-offset:2px;text-decoration-color:color-mix(in oklab,var(--accent-ink) 45%,transparent)}.booking .cp-maplink:hover{text-decoration-color:var(--accent)}.booking .side-card{background:var(--paper);border:.5px solid var(--line);border-radius:8px;padding:var(--sp-4);position:sticky;top:88px}.booking .side-price{font-family:var(--sans);font-weight:700;font-size:var(--step-3);line-height:1;margin-bottom:2px;font-variant-numeric:tabular-nums}.booking .side-price small{font-size:12px;font-weight:500;color:var(--muted)}.booking .side-note{font-size:12px;color:var(--muted);margin:8px 0 0}.booking .section-block{margin-bottom:var(--sp-5)}.booking .sb-title{font-family:var(--serif);font-size:var(--step-2);margin:0 0 var(--sp-3)}.booking fieldset{border:0;margin:0;padding:0}.booking .field-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3)}@media (max-width: 560px){.booking .field-row{grid-template-columns:1fr}}.booking .field{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--sp-3)}.booking .field>label{font-family:var(--sans);font-size:var(--step--2);text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.booking .field>label .req{color:var(--alert-ink)}.booking .field .hint{font-size:12px;color:var(--muted);margin-top:-2px}.booking .field input,.booking .field select,.booking .field textarea{font-family:inherit;font-size:16px;padding:11px 12px;min-height:44px;background:var(--paper);border:.5px solid var(--line-strong);border-radius:6px;color:var(--ink);outline:none}.booking .field textarea{min-height:76px;resize:vertical;font-size:15px}.booking .field input:focus,.booking .field select:focus,.booking .field textarea:focus{border-color:var(--accent);background:var(--bg)}.booking .field.error input{border-color:var(--alert-ink);background:color-mix(in oklab,var(--alert-bg) 60%,var(--paper))}.booking .field-error{font-size:12px;color:var(--alert-ink);font-weight:600}.booking .safety-card{border:1.5px solid var(--accent-ink);border-radius:10px;padding:var(--sp-4);background:color-mix(in oklab,var(--accent) 7%,var(--paper))}.booking .safety-head{display:flex;align-items:flex-start;gap:10px;margin-bottom:var(--sp-3)}.booking .safety-icon{flex:0 0 auto;width:26px;height:26px;border-radius:50%;background:var(--accent-ink);color:#fff;display:flex;align-items:center;justify-content:center}.booking .safety-head h4{font-family:var(--serif);font-size:var(--step-1);margin:0 0 2px}.booking .safety-head p{margin:0;font-size:12.5px;color:var(--muted)}.booking .emcon-card{border:1.5px solid var(--alert-ink);border-radius:10px;padding:var(--sp-4);background:color-mix(in oklab,var(--alert-dot) 6%,var(--paper))}.booking .emcon-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:var(--sp-3);flex-wrap:wrap}.booking .emcon-head h4{font-family:var(--serif);font-size:var(--step-1);margin:0}.booking .emcon-badge{font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;font-weight:700;color:#fff;background:var(--alert-ink);padding:4px 10px;border-radius:999px}.booking .consent-row{display:flex;align-items:flex-start;gap:12px;padding:var(--sp-3);background:var(--paper);border:.5px solid var(--line);border-radius:8px;cursor:pointer}.booking .consent-row input[type=checkbox]{margin-top:3px;width:20px;height:20px;flex:0 0 auto;accent-color:var(--accent-ink)}.booking .consent-row .cr-text b{display:block;font-size:13.5px;margin-bottom:2px}.booking .consent-row .cr-text span{font-size:12.5px;color:var(--muted)}.booking .waiver-box{position:relative;border:.5px solid var(--line-strong);border-radius:8px;background:var(--paper)}.booking .waiver-scroll{height:min(62vh,640px);overflow-y:scroll;padding:var(--sp-4) var(--sp-5);font-size:13px;line-height:1.7;color:var(--ink);scrollbar-width:auto;scrollbar-color:var(--accent-ink) color-mix(in oklab,var(--ink) 7%,var(--paper))}@media (max-width: 560px){.booking .waiver-scroll{height:60vh;padding:var(--sp-4)}}.booking .waiver-scroll::-webkit-scrollbar{width:12px}.booking .waiver-scroll::-webkit-scrollbar-track{background:color-mix(in oklab,var(--ink) 7%,var(--paper));border-radius:8px}.booking .waiver-scroll::-webkit-scrollbar-thumb{background:color-mix(in oklab,var(--accent-ink) 65%,var(--paper));border-radius:8px;border:3px solid var(--paper)}.booking .waiver-scroll:focus-visible{outline:2px solid var(--accent-ink);outline-offset:2px}.booking .waiver-prefill{border:1.5px solid var(--accent-ink);border-radius:10px;background:color-mix(in oklab,var(--accent) 7%,var(--paper));padding:var(--sp-4);margin-bottom:var(--sp-3)}.booking .prefill-badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--sans);font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-ink);margin-bottom:10px}.booking .prefill-badge:before{content:"✓";font-size:12px}.booking .prefill-dl{display:grid;grid-template-columns:1fr 1fr;gap:10px 20px;margin:0}@media (max-width: 560px){.booking .prefill-dl{grid-template-columns:1fr}}.booking .prefill-dl dt{font-family:var(--sans);font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:2px}.booking .prefill-dl dd{margin:0;font-size:14.5px;color:var(--ink);font-weight:500}.booking .waiver-scroll p{margin:0 0 10px}.booking .waiver-scroll .wv-h1{font-family:var(--serif);font-weight:500;font-size:var(--step-1);color:var(--ink);margin:0 0 6px;text-transform:none;letter-spacing:0}.booking .waiver-scroll .wv-h2{font-family:var(--serif);font-weight:500;font-size:var(--step-0);color:var(--ink);margin:4px 0 10px;text-transform:none;letter-spacing:0}.booking .waiver-scroll .wv-h3{font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.02em;text-transform:none;color:var(--ink);margin:16px 0 4px}.booking .waiver-scroll strong{color:var(--ink)}.booking .waiver-flag{font-size:11.5px;color:var(--alert-ink);background:var(--alert-bg);border-radius:6px;padding:8px 10px;margin-bottom:var(--sp-3)}.booking .waiver-note{font-size:12px;color:var(--muted);margin:8px 0 var(--sp-4)}.booking .ack-grid{display:grid;grid-template-columns:1fr;gap:8px;margin-top:12px}.booking .ack-cell{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--paper);border:.5px solid var(--line-strong);border-radius:8px;cursor:pointer;min-height:48px}.booking .ack-cell input[type=checkbox]{flex:0 0 auto;width:22px;height:22px;accent-color:var(--accent-ink)}.booking .ack-cell.acked{border-color:var(--accent-ink);background:color-mix(in oklab,var(--accent) 8%,var(--paper))}.booking .ack-cell.missing{border-color:var(--alert-ink);background:color-mix(in oklab,var(--alert-bg) 55%,var(--paper))}.booking .ack-text{flex:1;font-size:13px;line-height:1.35;color:var(--ink)}.booking .ack-text b{font-weight:600}.booking .ack-stamp{flex:0 0 auto;min-width:52px;text-align:center;font-family:Lora,serif;font-style:italic;font-size:17px;font-weight:600;color:var(--accent-ink);letter-spacing:.04em;transition:opacity .12s ease}.booking .ack-cell{transition:border-color .12s ease,background .12s ease,transform .06s ease;-webkit-tap-highlight-color:transparent}.booking .ack-cell:active{transform:scale(.994)}.booking .ack-cell.acked .ack-text b{color:var(--accent-ink)}.booking .ack-cell.just-acked .ack-stamp{animation:ack-pop .34s ease}@keyframes ack-pop{0%{transform:scale(.4);opacity:0}55%{transform:scale(1.18)}to{transform:scale(1);opacity:1}}@media (max-width: 560px){.booking .ack-cell{padding:14px;min-height:56px;gap:10px}.booking .ack-text{font-size:13.5px}}.booking .ack-progress{margin:14px 0 4px}.booking .ack-progress-line{font-family:var(--sans);font-size:12.5px;font-weight:600;color:var(--muted);margin-bottom:6px}.booking .ack-progress-line b{color:var(--ink);font-weight:700}.booking .ack-progress-track{height:6px;border-radius:999px;background:color-mix(in oklab,var(--line-strong) 60%,transparent);overflow:hidden}.booking .ack-progress-fill{height:100%;width:0;border-radius:999px;background:var(--accent-ink);transition:width .25s ease}.booking .ack-progress.complete .ack-progress-line{color:var(--accent-ink)}.booking .ack-progress.complete .ack-progress-line:before{content:"✓";font-weight:700}.booking .field.flagged input{border-color:var(--alert-ink);box-shadow:0 0 0 3px color-mix(in oklab,var(--alert-bg) 60%,transparent)}.booking .ack-guidance{display:block;margin-top:6px;color:var(--alert-ink);font-weight:600}.booking .form-status.ack-jump{cursor:pointer;text-decoration:underline}@media (prefers-reduced-motion: reduce){.booking .ack-cell.just-acked .ack-stamp{animation:none}.booking .ack-progress-fill{transition:none}}.booking .sig-input{font-family:Lora,serif!important;font-style:italic;font-size:20px!important}.booking .consent-row.consent-primary{border:1.5px solid var(--accent-ink);background:color-mix(in oklab,var(--accent) 7%,var(--paper))}.booking .signed-card{text-align:center;padding:var(--sp-6) var(--sp-4);border:1.5px solid var(--accent-ink);border-radius:12px;background:color-mix(in oklab,var(--accent) 6%,var(--paper))}.booking .signed-card h3{font-family:var(--serif);font-weight:400;font-size:var(--step-3);margin:0 0 4px}.booking .order-card{background:var(--paper);border:.5px solid var(--line);border-radius:8px;padding:var(--sp-4);margin-bottom:var(--sp-4)}.booking .order-row{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:.5px solid var(--line);font-size:13.5px}.booking .order-row:last-child{border-bottom:0}.booking .order-row.total{border-top:1px solid var(--ink);border-bottom:0;margin-top:4px;padding-top:12px;font-weight:700;font-size:16px}.booking .order-row.discount{color:var(--accent-ink);font-weight:600}.booking .order-row.discount .disc-code{display:inline-flex;align-items:center;gap:8px}.booking .order-row.discount .disc-tag{font-family:var(--sans);font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.booking .order-row.addon{color:var(--ink)}.booking .order-row.subtotal{font-weight:600}.booking .order-row.tax{color:var(--muted)}.booking .order-row.tax .tax-pending{font-style:italic}.booking .addon-list{display:flex;flex-direction:column;gap:10px;margin:var(--sp-4) 0 var(--sp-3)}.booking .addon-item{display:flex;align-items:flex-start;gap:12px;padding:14px;border:.5px solid var(--line-strong);border-radius:8px;background:var(--paper);cursor:pointer;transition:border-color .15s ease,background .15s ease}.booking .addon-item:hover{border-color:var(--accent)}.booking .addon-item:has(input:checked){border-color:var(--accent-ink);background:color-mix(in oklab,var(--accent) 6%,var(--paper))}.booking .addon-item input{flex:0 0 auto;width:20px;height:20px;margin-top:1px;accent-color:var(--accent-ink);cursor:pointer}.booking .addon-item .addon-name{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:3px;font-size:15px;font-weight:600;color:var(--ink);line-height:1.35}.booking .addon-item .addon-desc{font-size:12.5px;font-weight:400;color:var(--muted)}.booking .addon-item .addon-price{flex:0 0 auto;font-family:var(--sans);font-size:15px;font-weight:700;color:var(--accent-ink);white-space:nowrap}.booking .addon-actions{display:flex;gap:12px;margin-top:var(--sp-4)}.booking .addon-actions .btn{flex:1 1 0}.booking .coupon-remove{border:0;background:none;padding:0;font-family:var(--sans);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);text-decoration:underline;cursor:pointer}.booking .coupon-remove:hover{color:var(--alert-ink)}.booking .coupon-box{margin:0 0 var(--sp-4)}.booking .coupon-toggle{display:inline-flex;align-items:center;gap:6px;font-family:var(--sans);font-size:var(--step--2);text-transform:uppercase;letter-spacing:.1em;color:var(--accent-ink);font-weight:600;background:none;border:0;padding:0;cursor:pointer}.booking .coupon-toggle .chev{transition:transform .15s ease}.booking .coupon-toggle[aria-expanded=true] .chev{transform:rotate(90deg)}.booking .coupon-panel{margin-top:10px}.booking .coupon-panel[hidden]{display:none}.booking .coupon-field{display:flex;gap:8px;align-items:stretch}.booking .coupon-field input{flex:1 1 auto;min-width:0;font-family:var(--sans);font-size:15px;letter-spacing:.06em;text-transform:uppercase;padding:11px 12px;border:.5px solid var(--line-strong);border-radius:6px;background:var(--paper);color:var(--ink)}.booking .coupon-field input::-moz-placeholder{letter-spacing:normal;text-transform:none;color:var(--muted)}.booking .coupon-field input::placeholder{letter-spacing:normal;text-transform:none;color:var(--muted)}.booking .coupon-field input:focus{border-color:var(--accent);background:var(--bg);outline:none}.booking .coupon-field .btn{flex:0 0 auto}.booking .coupon-applied{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1.5px solid var(--accent-ink);border-radius:6px;background:color-mix(in oklab,var(--accent) 7%,var(--paper))}.booking .coupon-applied[hidden]{display:none}.booking .coupon-applied .ca-left{display:inline-flex;align-items:center;gap:8px;min-width:0}.booking .coupon-applied .ca-check{flex:0 0 auto;width:18px;height:18px;border-radius:50%;background:var(--accent-ink);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:11px}.booking .coupon-applied .ca-code{font-family:var(--sans);font-weight:700;font-size:13.5px;letter-spacing:.04em;color:var(--accent-ink)}.booking .coupon-applied .ca-save{font-size:12.5px;color:var(--muted)}.booking .coupon-status{font-size:13px;margin:8px 0 0;min-height:16px}.booking .coupon-status.err{color:var(--alert-ink);font-weight:600}.booking .coupon-status.ok{color:var(--accent-ink);font-weight:600}.booking .stripe-handoff{display:flex;align-items:center;gap:12px;padding:var(--sp-4);border-radius:8px;background:var(--deep);color:var(--paper);margin-bottom:var(--sp-4)}.booking .stripe-handoff[hidden]{display:none}.booking .stripe-badge{font-family:var(--sans);font-weight:700;font-size:13px;background:#fff;color:#111;padding:4px 10px;border-radius:5px;letter-spacing:-.02em}.booking .stripe-handoff p{margin:0;font-size:12.5px;color:color-mix(in oklab,var(--paper) 85%,transparent)}.booking .confirm-block{text-align:center;padding:var(--sp-6) var(--sp-3);border-top:1px dashed var(--line-strong);margin-top:var(--sp-5)}.booking .confirm-mark{width:52px;height:52px;border-radius:50%;background:var(--accent-ink);color:#fff;display:flex;align-items:center;justify-content:center;margin:0 auto var(--sp-3);font-size:24px}.booking .confirm-block h3{font-family:var(--serif);font-weight:400;font-size:var(--step-3);margin:0 0 4px}.booking .step-panel[hidden]{display:none}.booking .form-status{font-size:13px;margin-top:var(--sp-2);min-height:18px}.booking .form-status.err{color:var(--alert-ink);font-weight:600}.booking .form-status.ok{color:var(--accent-ink);font-weight:600}.booking .db-note{font-size:12px;color:var(--muted);border:1px dashed var(--line-strong);border-radius:8px;padding:10px 12px;margin-top:var(--sp-3)}.booking .waitlist-lead{font-size:13px;color:var(--ink);margin:0 0 10px;line-height:1.5}.booking #waitlist-box .field{margin-bottom:10px}.booking .waitlist-done{border:1.5px solid var(--accent-ink);border-radius:10px;background:color-mix(in oklab,var(--accent) 7%,var(--paper));color:var(--accent-ink);font-size:13px;line-height:1.5;padding:12px 14px;margin-top:4px}.booking.classpage .cp-specs{font-size:var(--step--1);color:var(--muted);margin:4px 0 var(--sp-3);font-variant-numeric:tabular-nums}.booking.classpage .detail-hero.has-img{background-size:cover;background-position:center}.booking .cp-cols{display:grid;grid-template-columns:1fr;gap:var(--sp-5);grid-template-areas:"intro" "side" "main"}.booking .cp-intro{grid-area:intro;min-width:0}.booking .cp-main{grid-area:main;min-width:0}.booking .cp-side{grid-area:side;min-width:0}@media (min-width: 820px){.booking .cp-cols{grid-template-columns:1.6fr 1fr;align-items:start;grid-template-areas:"intro side" "main side"}}@media (max-width: 819px){.booking .cp-side .side-card{position:static;top:auto}}.booking .cp-waiver-note{font-size:12.5px;color:var(--muted);line-height:1.5;margin:14px 0 0}.booking .cp-waiver-note a{color:var(--accent-ink);text-decoration:underline}.booking .tips-list{list-style:none;padding:0;margin:12px 0 0}.booking .tips-list li{font-size:13px;color:var(--muted);padding:3px 0 3px 18px;position:relative;line-height:1.5}.booking .tips-list li:before{content:"•";position:absolute;left:4px;color:var(--accent)}.booking .cp-log-head{font-weight:700;font-family:var(--sans);font-size:var(--step--1);margin-bottom:8px}.booking .cp-dates-head{margin-top:var(--sp-3)}.booking .cp-dates-title{font-family:var(--serif);font-weight:400;font-size:var(--step-1);line-height:1.1;letter-spacing:-.01em;margin:0}.booking .cp-dates-sub{font-size:12px;color:var(--muted);margin:3px 0 0}.booking .cp-dates{margin-top:12px}.booking .cp-date-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border:.5px solid var(--line-strong);border-radius:8px;margin-bottom:8px;text-decoration:none;color:var(--ink);font-size:var(--step--1);background:var(--paper);transition:border-color .14s ease,background .14s ease,box-shadow .14s ease}.booking .cp-date-row:hover,.booking .cp-date-row:focus-visible{border-color:var(--accent-ink);background:color-mix(in oklab,var(--accent) 7%,var(--paper));box-shadow:0 6px 18px -12px color-mix(in oklab,var(--ink) 45%,transparent);outline:none}.booking .cp-date-when{font-weight:600}.booking .cp-date-end{display:inline-flex;align-items:center;gap:10px}.booking .cp-date-arrow{display:inline-flex;color:var(--muted);transition:transform .14s ease,color .14s ease}.booking .cp-date-row:hover .cp-date-arrow,.booking .cp-date-row:focus-visible .cp-date-arrow{color:var(--accent-ink);transform:translate(3px)}.booking .cp-date-seats{font-size:var(--step--2);text-transform:uppercase;letter-spacing:.06em}.booking .cp-date-seats.open{color:var(--muted)}.booking .cp-date-seats.low{color:var(--alert-ink);font-weight:700}.booking .cp-date-seats.full{color:var(--muted)}.booking .cp-nodates{font-size:13px;color:var(--muted);line-height:1.5;padding:6px 0}.booking .cp-notice{text-align:center;padding:var(--sp-6) var(--sp-4)}.booking .code-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.booking .code-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 10px 8px 11px;border:1.5px solid var(--accent-ink);border-radius:999px;background:color-mix(in oklab,var(--accent) 7%,var(--paper))}.booking .code-chip .cc-check{flex:0 0 auto;width:16px;height:16px;border-radius:50%;background:var(--accent-ink);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:10px}.booking .code-chip .cc-code{font-family:var(--sans);font-weight:700;font-size:12.5px;letter-spacing:.04em;color:var(--accent-ink);text-transform:uppercase}.booking .code-chip .cc-amt{font-size:12.5px;color:var(--muted)}.booking .code-chip .cc-x{flex:0 0 auto;border:0;background:none;padding:0 2px;margin-left:2px;font-size:18px;line-height:1;color:var(--muted);cursor:pointer}.booking .code-chip .cc-x:hover{color:var(--alert-ink)}
