/* The appointment flow shares the cinematic site's palette and typography. */
.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{width:min(1010px,calc(100% - 48px));max-height:calc(100dvh - 48px);padding:0;background:#141b17;overscroll-behavior:contain;scrollbar-color:#586450 #141b17;color-scheme:dark}
#booking [hidden]{display:none!important}
#booking .dialog-close{position:sticky;float:right;margin:16px 16px -52px 0;top:16px;right:16px;width:36px;height:36px;background:#18221de8;backdrop-filter:blur(12px);z-index:5}
.booking-shell{display:grid;grid-template-columns:.72fr 1fr;min-width:0}
.booking-art{position:sticky;top:0;min-height:680px;max-height:850px;overflow:hidden;align-self:stretch;background:#0a100c}
.booking-art>img{position:absolute;width:100%;height:100%;inset:0;object-fit:cover;object-position:50% 52%;opacity:.65}
.booking-art:after{content:'';position:absolute;inset:0;background:linear-gradient(#07100c4d,transparent 30%,#07100ce8)}
.booking-art>div{position:relative;z-index:1;padding:45px 30px;height:100%;display:flex;flex-direction:column;justify-content:flex-end}
.booking-art .eyebrow{position:absolute;top:40px;font-size:8px;letter-spacing:1.5px;color:#d1d8ca}
.booking-art p{font-size:32px;line-height:1.16;letter-spacing:-1.6px}
.booking-art-note{font-size:10px;color:#b4bfb1;line-height:1.8;margin-top:24px}
.booking-content{min-width:0;padding:38px 42px 28px}
.booking-content>.eyebrow{font-size:8px;letter-spacing:1.7px;color:#a9b69e}
#booking h2{font-size:48px;line-height:1.03;letter-spacing:-2.5px;margin:17px 0 23px}
.form-progress{display:flex;align-items:center;gap:14px;margin-bottom:25px;color:#81907f;font-size:9px}
.form-progress>span{display:flex;align-items:center;gap:7px;white-space:nowrap}
.form-progress b{font-size:8px;font-weight:400;border:1px solid #ffffff25;border-radius:50%;width:24px;height:24px;display:grid;place-items:center}
.form-progress .active{color:#e7ebdf}.form-progress .active b{background:#b8c8a9;color:#182017;border-color:#b8c8a9}.form-progress>i{height:1px;background:#ffffff20;flex:1}
#booking fieldset{padding:0;border:0;margin:0;min-width:0}
#booking label{margin:0;display:block;font-size:10px;line-height:1.5;color:#d6dfd0}
#booking .service-picker>legend{font-size:10px;margin:0 0 9px;color:#d6dfd0}
.service-options{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:19px}
#booking .service-options label{position:relative;cursor:pointer}
.service-options input{position:absolute;top:14px;right:12px;width:12px;height:12px;accent-color:#becdaf;margin:0}
.service-options label>span{display:block;height:100%;padding:12px 27px 12px 13px;border:1px solid #ffffff20;transition:background .2s,border-color .2s}
.service-options strong{font-size:10px;font-weight:500;display:block}.service-options small{font-size:8px;color:#9eac96;display:block;margin-top:3px}
.service-options input:checked+span{border-color:#a4b895;background:#afc59c12}.service-options input:focus-visible+span{outline:2px solid #c8d9ba;outline-offset:3px}
#booking input:not([type=radio]):not([type=checkbox]),#booking textarea{display:block;width:100%;min-width:0;min-height:44px;margin-top:6px;padding:11px 12px;background:#0b120d70;border:1px solid #ffffff2e;border-radius:0;color:#eef0e7;font:inherit;font-size:12px;line-height:1.5;transition:border-color .2s}
#booking input::placeholder,#booking textarea::placeholder{color:#82907f;opacity:1}#booking input:focus-visible,#booking textarea:focus-visible{outline:1px solid #bdcfad;outline-offset:1px;border-color:#bdcfad}
#booking textarea{resize:vertical;min-height:72px;max-height:180px}
#booking .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin:15px 0}
#booking .form-hint{font-size:9px;line-height:1.7;color:#a2af9c;margin-top:15px}
#booking .button{width:100%;margin-top:18px;min-height:46px;padding:13px 18px;font-size:10px;gap:20px}
#booking .button:disabled{opacity:.65;cursor:wait;transform:none}
.booking-reassurance{font-size:8px;letter-spacing:.3px;text-align:center;margin-top:11px;color:#9aaa93}
.visit-summary{position:relative;border:1px solid #ffffff25;background:#b0c39d08;padding:13px 15px;margin-bottom:16px}
.visit-summary>span{font-size:8px;color:#a5b19c;text-transform:uppercase;letter-spacing:1px}.visit-summary>button{position:absolute;right:13px;top:8px;background:transparent;font-size:9px;min-height:30px;text-decoration:underline;color:#c9d6bf}
.visit-summary strong{display:block;font-size:11px;font-weight:500;margin-top:6px}.visit-summary p{font-size:10px;color:#aebba4;line-height:1.65;margin-top:4px;overflow-wrap:anywhere}
#booking #step-two>label{margin-top:14px}.optional{color:#89977f;font-size:8px;margin-left:5px}
#booking .consent{display:flex;gap:9px;align-items:flex-start;font-size:9px;line-height:1.6;color:#aebba5;margin-top:15px}.consent input{margin:2px 0 0;flex:none;width:14px;height:14px;accent-color:#b8c8a9}.consent a{text-decoration:underline;text-underline-offset:3px;color:#d7dfce}
#booking .form-back{display:block;width:100%;min-height:38px;background:transparent;color:#b2bea9;font-size:9px;margin-top:6px}
#form-result{font-size:11px;line-height:1.7;color:#e4c7ac;overflow-wrap:anywhere}#form-result:not(:empty){padding:14px;border:1px solid #e4c7ac40;margin-top:14px}#form-result a{text-decoration:underline}
.booking-trap{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.booking-alternatives{display:flex;align-items:center;gap:18px;border-top:1px solid #ffffff20;margin-top:24px;padding-top:18px;font-size:9px;color:#bbc8b0}
.booking-alternatives>span{margin-right:auto;color:#8d9c84;font-size:8px}.booking-alternatives a{display:flex;align-items:center;gap:7px;min-height:24px}.booking-alternatives svg{width:12px;height:12px}
.booking-success{padding:18px 0 20px;outline:none}.booking-success-mark{display:grid;place-items:center;border:1px solid #b8c8a966;background:#b8c8a90d;color:#c9d9bb;width:54px;height:54px;border-radius:50%;font-size:23px;margin-bottom:26px}
.booking-success .eyebrow{font-size:8px;color:#a9b69e}.booking-success h3{font-size:43px;font-weight:400;line-height:1.1;letter-spacing:-2px;margin:15px 0 24px}.booking-success>p:not(.eyebrow){font-size:12px;line-height:1.9;color:#b3c0a9}.booking-success .booking-reference{margin-top:20px;font-size:10px!important;overflow-wrap:anywhere}
@media(max-width:800px){#booking{width:min(570px,calc(100% - 32px))}.booking-shell{display:block}.booking-art{display:none}.booking-content{padding:33px 35px 27px}}
@media(max-width:600px){#booking{width:calc(100% - 20px);max-height:calc(100dvh - 20px);margin:auto}#booking h2{font-size:43px;margin:18px 0 22px}.booking-content{padding:30px 22px 23px}.booking-content>.eyebrow{font-size:7px}.form-progress{font-size:8px;gap:10px;margin-bottom:23px}#booking input:not([type=radio]):not([type=checkbox]),#booking textarea{font-size:16px;min-height:46px}.service-options strong{font-size:10px}.service-options small{font-size:8px}.service-options label>span{padding:12px 24px 12px 11px}#booking .form-grid{gap:10px}#booking .form-grid label{min-width:0}.booking-alternatives{gap:15px;font-size:9px}.booking-alternatives>span{max-width:85px;line-height:1.5}#booking .button{min-height:48px}#booking .dialog-close{margin-right:12px;top:12px;width:34px;height:34px}}
@media(max-width:380px){#booking .form-grid{grid-template-columns:1fr}.booking-content{padding-left:18px;padding-right:18px}}

/* Keep Safari's intrinsic date control inside its grid cell. */
#booking .form-grid>label{min-width:0;max-width:100%}
#booking .date-control{display:block;position:relative;min-width:0;max-width:100%;margin-top:6px}
#booking .date-control input[type=date]{-webkit-appearance:none;appearance:none;display:block;width:100%;max-width:100%;min-width:0;min-inline-size:0;box-sizing:border-box;height:46px;margin:0;padding-right:40px;text-align:left}
#booking .date-control input::-webkit-date-and-time-value{min-height:1.5em;text-align:left}
#booking .date-control input::-webkit-calendar-picker-indicator{opacity:0;cursor:pointer}
#booking .date-control:not(.has-value) input:not(:focus){color:transparent}
#booking .date-control:not(.has-value) input:not(:focus)::-webkit-datetime-edit{color:transparent}
#booking .date-placeholder{position:absolute;left:13px;right:40px;top:50%;transform:translateY(-50%);color:#82907f;font-size:12px;line-height:1.5;pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#booking .date-control.has-value .date-placeholder,#booking .date-control:focus-within .date-placeholder{visibility:hidden}
#booking .date-icon{position:absolute;right:13px;top:50%;transform:translateY(-50%);width:17px;height:17px;pointer-events:none;color:#b8c8a9}
@media(max-width:600px){#booking .visit-fields{grid-template-columns:minmax(0,1fr);gap:14px}#booking .date-placeholder{font-size:16px}#booking .date-control input[type=date]{height:48px}}
