.booking-page-main{max-width:var(--site-frame-width,1120px)}.booking-shell{grid-template-columns:minmax(280px,.78fr) minmax(0,1.65fr);align-items:start;gap:36px;display:grid}.booking-sidebar{border:1px solid var(--rule-color);background:var(--paper-color);border-radius:4px;padding:26px;position:sticky;top:24px;overflow:hidden}.booking-sidebar:before{content:"π + θ / schedule";border-bottom:1px solid var(--text-main);background:var(--banner-bg);color:#ffffffe6;letter-spacing:.08em;text-transform:uppercase;margin:-26px -26px 24px;padding:11px 26px;font-size:.7rem;display:block}.booking-eyebrow{color:var(--text-muted);letter-spacing:.1em;margin:0 0 10px;font-size:.72rem;font-weight:700}.booking-sidebar h1,.booking-success h1{border-bottom:1px dashed var(--rule-color);color:var(--text-main);font-family:var(--mono);letter-spacing:-.05em;margin:0 0 18px;padding:0 0 12px;font-size:clamp(1.55rem,3vw,2.15rem);font-weight:700;line-height:1.2}.booking-sidebar>p:not(.booking-eyebrow):not(.booking-note){font-size:.98rem;line-height:1.72}.booking-facts{border-top:1px dashed var(--rule-color);margin:26px 0}.booking-facts>div,.booking-summary-list>div{border-bottom:1px dashed var(--rule-color);grid-template-columns:106px minmax(0,1fr);gap:14px;padding:11px 0;display:grid}.booking-facts dt,.booking-summary-list dt{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;font-size:.7rem}.booking-facts dd,.booking-summary-list dd{overflow-wrap:anywhere;min-width:0;margin:0;font-size:.8rem;font-weight:700}.booking-note{border-left:3px solid var(--banner-bg);color:var(--text-muted);background:#2b4c7e0e;margin:0;padding:14px;font-size:.8rem;line-height:1.65}.booking-main{gap:22px;min-width:0;display:grid}.booking-step{border:1px solid var(--rule-color);background:var(--paper-color);border-radius:4px;min-width:0;padding:24px}.booking-step-heading{border-bottom:1px dashed var(--rule-color);align-items:flex-start;gap:14px;margin-bottom:22px;padding-bottom:14px;display:flex}.booking-step-heading>span{border:1px solid var(--text-main);background:var(--bg-color);border-radius:50%;flex:0 0 34px;justify-content:center;align-items:center;width:34px;height:34px;font-size:.72rem;font-weight:700;display:inline-flex}.booking-step-heading h2{letter-spacing:-.025em;border:0;margin:0 0 4px;padding:0;font-size:1rem}.booking-step-heading p{margin:0}.booking-date-control{grid-template-columns:46px minmax(0,1fr) 46px;gap:8px;width:min(100%,470px);display:grid}.booking-date-control label{min-width:0}.booking-date-control input,.booking-form input,.booking-form select,.booking-form textarea{border:1px solid var(--rule-color);width:100%;color:var(--text-main);font:inherit;background:#ffffffc7;border-radius:4px;padding:11px 12px;font-size:.86rem;transition:border-color .18s,box-shadow .18s,background .18s}.booking-date-control input{min-height:46px}.booking-date-control input:focus,.booking-form input:focus,.booking-form select:focus,.booking-form textarea:focus{border-color:var(--text-main);background:#fff;outline:none;box-shadow:0 0 0 3px #2c3e501a}.booking-date-arrow{border:1px solid var(--rule-color);min-width:46px;min-height:46px;color:var(--text-main);font:inherit;cursor:pointer;background:#ffffff7a;border-radius:4px;transition:background .18s,color .18s,border-color .18s}.booking-date-arrow:hover:not(:disabled){border-color:var(--text-main);background:var(--text-main);color:var(--bg-color)}.booking-date-arrow:disabled{opacity:.35;cursor:not-allowed}.booking-selected-date{color:var(--text-muted);margin:12px 0 0;font-size:.8rem}.booking-loading{border:1px dashed var(--rule-color);min-height:130px;color:var(--text-muted);place-items:center;font-size:.82rem;display:grid}.booking-availability{gap:18px;display:grid}.booking-availability-summary{border:1px solid #2b4c7e42;border-left:4px solid var(--banner-bg);background:#2b4c7e0b;border-radius:3px;justify-content:space-between;align-items:center;gap:20px;padding:14px 16px;display:flex}.booking-availability-summary>div{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.booking-availability-summary span{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;font-size:.68rem;font-weight:700}.booking-availability-summary strong{font-size:1.05rem}.booking-availability-summary p{color:var(--text-muted);text-align:right;margin:0;font-size:.76rem}.booking-slot-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;display:grid}.booking-slot{border:1px solid var(--rule-color);min-height:48px;color:var(--text-main);font:inherit;cursor:pointer;background:#ffffff94;border-radius:3px;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:8px 6px;font-size:.76rem;transition:transform .14s,border-color .14s,background .14s,color .14s;display:flex}.booking-slot small{color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;font-size:.58rem;font-weight:700;line-height:1}.booking-slot.earliest{border-color:var(--banner-bg);background:#2b4c7e13}.booking-slot:hover{border-color:var(--text-main);background:#fffffff5;transform:translateY(-1px)}.booking-slot.selected{border-color:var(--text-main);background:var(--text-main);color:var(--bg-color);box-shadow:2px 2px 0 var(--rule-color)}.booking-slot.selected small{color:#ffffffb8}.booking-empty{border:1px dashed var(--rule-color);background:#ffffff57;justify-items:start;gap:8px;padding:22px;display:grid}.booking-empty p{color:var(--text-muted);margin:0 0 6px;font-size:.84rem}.booking-details-step{scroll-margin-top:16px;animation:.2s ease-out booking-reveal}@keyframes booking-reveal{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.booking-form{gap:17px;display:grid}.booking-form-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}.booking-form label{gap:6px;min-width:0;display:grid}.booking-form label>span{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;font-size:.72rem;font-weight:700}.booking-form textarea{resize:vertical;min-height:120px;line-height:1.55}.booking-honeypot{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.booking-submit-row{flex-wrap:wrap;align-items:center;gap:18px;padding-top:4px;display:flex}.booking-submit-row p{max-width:360px;margin:0}.booking-error{color:#8b0019;background:#b000200b;border:1px solid #b00020;border-radius:3px;margin:0;padding:11px 13px;font-size:.8rem}.booking-success{border:1px solid var(--rule-color);background:var(--paper-color);text-align:left;border-radius:4px;max-width:720px;margin:36px auto 0;padding:clamp(26px,6vw,48px);box-shadow:7px 7px #2c3e5012}.booking-success-mark{border:1px solid var(--text-main);background:var(--text-main);width:48px;height:48px;color:var(--bg-color);border-radius:50%;place-items:center;margin-bottom:22px;font-size:1.35rem;display:grid}.booking-summary-list{border-top:1px dashed var(--rule-color);margin:24px 0}.booking-actions{flex-wrap:wrap;gap:8px;margin-top:22px;display:flex}.booking-actions button{font-family:var(--mono)}@media (max-width:980px){.booking-shell{grid-template-columns:1fr;gap:20px}.booking-sidebar{position:static}.booking-sidebar>p:not(.booking-eyebrow):not(.booking-note){max-width:760px}.booking-slot-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:680px){.booking-page-main{padding-left:14px;padding-right:14px}.booking-shell{gap:16px}.booking-sidebar,.booking-step,.booking-success{padding:16px}.booking-sidebar:before{margin:-16px -16px 18px;padding:10px 16px}.booking-sidebar h1,.booking-success h1{font-size:clamp(1.45rem,8vw,1.85rem)}.booking-facts{margin:20px 0}.booking-step-heading{gap:11px;margin-bottom:18px}.booking-step-heading>span{flex-basis:32px;width:32px;height:32px}.booking-date-control{grid-template-columns:44px minmax(0,1fr) 44px;width:100%}.booking-date-control input,.booking-form input,.booking-form select,.booking-form textarea{font-size:16px}.booking-date-arrow{min-width:44px;min-height:48px}.booking-availability-summary{flex-direction:column;align-items:flex-start;gap:6px;padding:12px 14px}.booking-availability-summary p{text-align:left}.booking-slot-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.booking-slot{min-height:50px;font-size:.78rem}.booking-form-row{grid-template-columns:1fr}.booking-facts>div,.booking-summary-list>div{grid-template-columns:92px minmax(0,1fr)}.booking-submit-row{flex-direction:column;align-items:stretch;gap:10px}.booking-submit-row .submit-btn{justify-self:stretch;width:100%;min-height:48px}}@media (max-width:430px){.booking-slot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-facts>div,.booking-summary-list>div{grid-template-columns:1fr;gap:3px}}@media (prefers-reduced-motion:reduce){.booking-details-step,.booking-slot{transition:none;animation:none}}
