.booking-drawer{width:100%;max-width:none;height:min(var(--booking-content-height,92dvh), 92dvh);border:1px solid var(--border-subtle);background:var(--surface-card);max-height:92dvh;color:var(--text-body);box-shadow:var(--shadow-lg);border-bottom:0;border-radius:28px 28px 0 0;margin:0;padding:0;transition:height .24s cubic-bezier(.22,1,.36,1);position:fixed;inset:auto 0 0;overflow:hidden}.booking-drawer[open]{animation:.28s cubic-bezier(.22,1,.36,1) booking-slide-up}.booking-drawer::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000059}.booking-shell{flex-direction:column;height:100%;min-height:0;display:flex}.booking-header{border-bottom:1px solid var(--border-subtle);background:var(--surface-card);flex:none;padding:16px 20px}.booking-handle{background:var(--border-default);border-radius:99px;width:40px;height:4px;margin:-4px auto 14px}.booking-heading-row{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.booking-heading-row>div{min-width:0}.booking-header h1{font:var(--weight-semibold) 22px/1.25 var(--font-ui);letter-spacing:-.02em;overflow-wrap:anywhere}.booking-header h2{font:var(--type-h3);overflow-wrap:anywhere}.booking-eyebrow{font:var(--type-label);color:var(--brand);margin-bottom:5px}.booking-badges{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.booking-badges>span{background:var(--surface-brand-soft);color:var(--brand);font:var(--type-label);border-radius:8px;padding:6px 10px}.booking-form{flex-direction:column;flex:1;min-height:0;display:flex}.booking-progress{border-bottom:1px solid var(--border-subtle);flex:none;gap:10px;margin:0;padding:14px 20px;list-style:none;display:flex}.booking-progress li{font:var(--type-label);color:var(--text-muted);flex:1;align-items:center;gap:6px;display:flex}.booking-progress li>span{background:var(--kalk-25);border:1px solid var(--border-subtle);border-radius:50%;flex:0 0 24px;place-items:center;height:24px;display:grid}.booking-progress li[aria-current=step]{color:var(--brand);font-weight:var(--weight-semibold)}.booking-progress li[aria-current=step]>span{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.booking-progress li[data-complete=true]>span{background:var(--surface-brand-soft);color:var(--brand)}.booking-step-count{font:var(--type-label);color:var(--text-muted);margin-bottom:6px}.booking-step-title{font:var(--type-h3);color:var(--text-strong);margin-bottom:16px}.booking-waitlist{margin-top:16px}.booking-actions{align-items:stretch;gap:12px;display:flex}.booking-actions>button[type=submit]{flex:1;min-width:0}.booking-scroll{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:1;min-height:0;padding:20px;scroll-padding:20px;overflow-y:auto}.booking-scroll-content{display:flow-root}.booking-course{border:1px solid var(--border-subtle);background:var(--kalk-25);overflow-wrap:anywhere;border-radius:16px;padding:18px}.booking-course h2{font:var(--type-h3);margin-bottom:10px}.booking-course h3{font:var(--weight-semibold) 14px/1.4 var(--font-ui);margin:20px 0 6px}.booking-course p,.booking-dates{font:var(--type-body-sm)}.booking-description{white-space:pre-wrap}.booking-count{background:var(--surface-brand-soft);color:var(--brand);border-radius:6px;margin-left:4px;padding:2px 7px}.booking-dates{margin:0;padding:0;list-style:none}.booking-dates li{border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;justify-content:space-between;gap:2px 12px;padding:9px 0;display:flex}.booking-dates li:last-child{border-bottom:0}.booking-dates time{font-weight:var(--weight-medium);color:var(--text-strong)}.booking-text-button{min-height:44px;color:var(--brand);font:var(--weight-semibold) 14px/1.5 var(--font-ui);text-align:left;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;align-items:center;padding:6px 0;text-decoration:underline;display:inline-flex}.booking-required{font:var(--type-body-sm);margin:0 0 16px}.booking-section{border:0;min-width:0;margin:0;padding:0}.booking-fields{gap:16px;display:grid}.booking-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;display:grid}.booking-address-grid{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}.booking-fields input:not([type=checkbox]),.booking-fields textarea{min-width:0;min-height:48px;scroll-margin:20px;font-size:16px!important}.booking-fields label{font-size:13px!important}.booking-fields input[type=date]{display:block}.booking-fields input:focus,.booking-fields textarea:focus{box-shadow:0 0 0 3px color-mix(in srgb, var(--brand) 20%, transparent)!important}.booking-hint{font:var(--type-body-sm);margin-top:-8px}.booking-notice{background:var(--surface-brand-soft);font:var(--type-body-sm);color:var(--text-strong);border-radius:12px;padding:14px}.booking-checkbox{border:1px solid var(--border-default);min-height:48px;font:var(--type-body-sm);cursor:pointer;border-radius:12px;align-items:flex-start;gap:12px;padding:12px;display:flex}.booking-checkbox input{width:22px;height:22px;accent-color:var(--brand);flex:0 0 22px;margin:0}.booking-consent{border-top:1px solid var(--border-subtle);padding-top:10px}.booking-footer{padding:14px 20px max(14px, env(safe-area-inset-bottom));border-top:1px solid var(--border-subtle);background:var(--surface-card);flex:none}.booking-error{font:var(--type-body-sm);color:var(--danger-fg);margin-bottom:12px}.booking-spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite booking-spin}.booking-success{flex-direction:column;gap:20px;display:flex}.booking-success h2{font:var(--type-h3)}.booking-success-mark{width:64px;height:64px;color:var(--success-fg);background:var(--success-bg);border-radius:50%;place-items:center;margin-top:12px;font-size:30px;display:grid}.booking-terms-dialog{border:1px solid var(--border-subtle);background:var(--surface-card);width:490px;max-width:calc(100vw - 24px);height:min(720px,88dvh);max-height:88dvh;color:var(--text-body);box-shadow:var(--shadow-lg);border-radius:20px;margin:auto;padding:0;overflow:hidden}.booking-terms-dialog::backdrop{background:#00000059}@media (max-width:767px){.booking-drawer .booking-scroll{scrollbar-width:none}.booking-drawer .booking-scroll::-webkit-scrollbar{display:none}}@media (max-width:379px){.booking-grid{grid-template-columns:minmax(0,1fr)}}@media (min-width:768px){.booking-drawer{border-radius:24px 0 0 24px;width:490px;height:100dvh;max-height:100dvh;transition:none;inset:0 0 0 auto}.booking-drawer[open]{animation-name:booking-slide-left}.booking-handle{display:none}.booking-header,.booking-scroll{padding:24px}.booking-progress,.booking-footer{padding-left:24px;padding-right:24px}}@media (prefers-reduced-motion:reduce){.booking-drawer[open],.booking-spinner{animation:none}.booking-drawer{transition:none}}@keyframes booking-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes booking-slide-left{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes booking-spin{to{transform:rotate(360deg)}}
