.booking-form{max-width:600px;margin:32px auto;text-align:left;color:#fff}
.booking-callout{max-width:600px;margin:22px auto;padding:14px 16px;background:#50545a;border:1px solid #ba945f;border-radius:9px;text-align:center}
.booking-callout>span{display:block;color:#fff;font-size:14px;font-weight:600}
.booking-callout>a{display:block;width:fit-content;margin:4px auto;color:#ffd394;font-size:28px;line-height:1.6;font-weight:700;letter-spacing:.02em;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.booking-callout>a:hover{color:#ffe7c5}.booking-callout>small{display:block;color:#edf0f3;font-size:12px;line-height:1.6}
.booking-form [hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.booking-progress{display:flex;align-items:center;gap:10px;margin-bottom:26px;font-size:12px;font-weight:600;color:#e8eaed}
.booking-progress i{flex:1;border-top:1px solid #92969b}.booking-progress .is-current{color:#ffd394}
.booking-panel{min-width:0}.form-heading{display:flex;justify-content:space-between;gap:12px;align-items:start;margin-bottom:22px}.form-heading span{font-size:20px;font-weight:650}.form-heading p{font-size:13px;color:#edf0f3;margin:5px 0 0}
.form-field{margin-bottom:18px}.form-field label{display:block;font-size:14px;font-weight:650;margin-bottom:7px}.form-field em{color:#ffd394;font-style:normal}
.form-field input:not([type=hidden]){display:block;width:100%;min-width:0;padding:12px 14px;border:1px solid #9b9fa5;border-radius:7px;background:#50545a;color:#fff;font:inherit;font-size:16px;line-height:1.5}
.form-field input::placeholder{color:#e0e3e7;opacity:1}.booking-form input:focus-visible{outline:2px solid #ffd394;outline-offset:3px}.form-field input.is-invalid{border-color:#ffc3b7}
.form-error{display:block;font-size:13px;color:#ffd1c8;margin-top:4px}.form-error:empty{display:none}
.booking-privacy{padding:13px 0;margin:4px 0 16px;border-block:1px solid #73777d}.booking-privacy summary{font-size:14px;color:#ffdaaa;font-weight:600;gap:12px}.booking-privacy p,.booking-privacy li{font-size:13px;line-height:1.65;color:#f0f2f5}.booking-privacy p{margin:15px 0}.booking-privacy h3{font-size:17px;margin:20px 0 12px}.booking-privacy ul{padding-left:20px}
.checkbox-field{display:flex;gap:10px;align-items:flex-start;font-size:13px;line-height:1.65}.checkbox-field input{flex-shrink:0;width:20px;height:20px;margin:2px 0;accent-color:#efb76b}.privacy-consent{margin:18px 0 22px}.checkbox-field label{cursor:pointer}
.booking-service-value{font-weight:650;color:#ffd394;margin-bottom:22px}.booking-form .button{width:100%;background:#efb76b;color:#20170c;font-weight:700;min-height:48px;padding:13px 18px;gap:8px}.booking-form .button:hover{background:#ffcc89}.booking-form button:disabled{cursor:not-allowed}.booking-form .button:disabled{background:#686d74;color:#e3e6eb;border:1px solid #90959d}
.form-privacy,.booking-phone,.confirmation-note{font-size:13px;line-height:1.65;color:#edf0f3;margin:16px 0}.booking-phone a,.confirmation-note a{text-decoration:underline;text-underline-offset:4px;color:#ffd394;font-weight:650}
.form-back{background:transparent;border:1px solid #91959b;border-radius:6px;padding:8px 12px;color:#ffdaaa;font-size:13px;min-height:40px}.form-back:hover{background:#50545a}
.calendar-label{font-size:14px;font-weight:650;margin:0 0 10px}.calendar-section{margin:22px 0}.calendar-days{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.calendar-day,.calendar-time{background:#50545a;color:#fff;border:1px solid #92969d;border-radius:6px;padding:10px;font-size:13px;min-height:44px}.calendar-day strong,.calendar-day small{display:block}.calendar-day small{font-size:11px;margin-top:3px;color:#eef0f4}.calendar-day.is-selected,.calendar-time.is-selected{background:#efb76b;color:#20170c;border-color:#ffd394;font-weight:700}.calendar-day.is-selected small{color:#20170c}.calendar-time.is-booked{background:#41454b;color:#c5c8cd;border-color:#73777e;text-decoration:line-through}.calendar-time-heading>span{font-size:13px;display:block;margin:0 0 12px}.calendar-times{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;max-height:235px;overflow-y:auto;padding:4px}.calendar-time{padding:7px 3px}.booking-selection{padding:14px 0;color:#ffdaaa;font-size:14px}.calendar-legend{font-size:12px;color:#eceef2}.calendar-legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin:0 5px 0 10px;background:#efb76b}.calendar-legend i.is-booked{background:#afb3b9}.calendar-loading{padding:20px 0;font-size:14px}
.form-result:empty{display:none}.form-result{padding:14px;border:1px solid #ffc3b7;border-radius:6px;background:#50545a;color:#ffddd6;font-size:14px;margin-top:16px}.booking-confirmation{padding:20px 0}.confirmation-icon{color:#ffd394;font-size:36px}.booking-confirmation h3{font-size:27px;margin:12px 0 20px}.booking-confirmation p{font-size:15px}.booking-confirmation .eyebrow{color:#ffd394;font-size:12px}
.detail-dialog .booking-section{padding:0;background:transparent}.detail-dialog .booking-section h2{font-size:34px}.detail-dialog .booking-form{margin-top:24px}.detail-dialog .booking-phone{padding-top:20px;border-top:1px solid #7d8187}
.journey-panel .dialog-top{position:sticky;top:-30px;z-index:5;background:#474b51;padding-top:12px;min-height:60px}
.journey-panel .close-dialog{position:absolute;top:6px;right:0}
@media(max-width:760px){.booking-progress{gap:6px;font-size:11px}.calendar-times{grid-template-columns:repeat(3,minmax(0,1fr))}.form-heading span{font-size:18px}.detail-dialog .booking-section h2{font-size:30px}}
@media(max-width:760px){.journey-panel .dialog-top{top:-24px}}
