/* Appointment form: the client's sand, gold, olive and charcoal palette. */
.booking-with-form{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:8%;align-items:center}
.booking-with-form .booking-copy h2{font-size:clamp(33.9px,2.8vw,40.2px);line-height:1.06}
.booking-with-form .booking-copy>p{font-size:16px;line-height:1.9;max-width:340px;margin:24px 0 30px}
.booking-portrait{height:205px;max-width:370px;position:relative;overflow:hidden;border-radius:100px 100px 12px 12px}
.booking-portrait img{width:100%;height:100%;object-fit:cover;object-position:50% 42%;filter:saturate(.7)}
.booking-portrait:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#30312e88,transparent 85%)}
.booking-portrait>span{position:absolute;z-index:1;left:28px;bottom:25px;font:22px/1 var(--serif);color:#f8f6ef}
.booking-portrait>span em{color:#f2e7ca;text-shadow:0 2px 10px #2229}
.booking-with-form .booking-details{margin-top:24px;font-size:16px;gap:16px;line-height:1.7}
.booking-direct{display:inline-block;margin-top:21px;color:#e5dcc5;font-size:16px;border-bottom:1px solid #c9b98f66;padding-bottom:5px}
.appointment-form{min-width:0;width:100%;color:#474747;border:1px solid #dfd3b6;border-radius:24px;padding:40px;background:radial-gradient(ellipse at 100% 0,#c9b98f77,transparent 65%),linear-gradient(145deg,#faf8f1,#ece5d3);box-shadow:0 25px 65px #1c201e33,inset 0 1px 0 #fff;position:relative}
.appointment-form:before{content:'';position:absolute;left:40px;right:40px;top:0;height:2px;background:linear-gradient(90deg,transparent,#b89d62,transparent)}
.appointment-heading .eyebrow{color:#716343;font-size:16px;letter-spacing:.17em}
.appointment-heading h3{font:32.4px/1.07 var(--serif);letter-spacing:-1px;margin:14px 0}
.appointment-heading p{font-size:16px;line-height:1.8;color:#666458;margin:0 0 27px;max-width:350px}
.appointment-form label,.appointment-form legend{font-size:16px;line-height:1.6;font-weight:600;letter-spacing:.015em}
.appointment-form label{display:block}
.appointment-form label>span:not(.input-hint){font-weight:400;color:#767264;font-size:16px}
.appointment-name-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}
.appointment-form input:not([type=radio]){width:100%;min-width:0;margin-top:7px;padding:13px 15px;min-height:50px;border:1px solid #c6bea9;border-radius:9px;background:#fffdf780;color:#474747;font:16px/1.4 var(--sans);outline-offset:3px;box-shadow:inset 0 1px 3px #77705708;transition:border-color .2s,box-shadow .2s,background .2s}
.appointment-form input::placeholder{color:#878376;font-size:16px;opacity:1}
.appointment-form input:focus{outline:2px solid #88856a;border-color:#88856a;background:#fffdf8;box-shadow:0 0 0 5px #c9b98f33}
.input-hint{display:block;font-size:16px;font-weight:400;line-height:1.7;color:#767264;margin-top:7px}
.appointment-form fieldset{padding:0;border:0;margin:24px 0}
.appointment-form legend{padding:0;margin-bottom:10px}
.appointment-options{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.appointment-options label{position:relative;cursor:pointer}
.appointment-options input{position:absolute;opacity:0;width:1px;height:1px}
.appointment-options label span{display:flex;align-items:center;justify-content:center;min-height:48px;border:1px solid #c6bea9;border-radius:9px;padding:10px;background:#faf8f155;color:#625f53!important;font-size:16px!important;transition:background .2s,color .2s,box-shadow .2s}
.appointment-options input:checked+span{background:linear-gradient(120deg,#74725d,#53554a);color:#fff9ec!important;border-color:#686951;box-shadow:inset 0 1px 0 #ffffff22,0 4px 10px #47474712}
.appointment-options input:focus-visible+span{outline:2px solid #88856a;outline-offset:3px}
.appointment-form .appointment-submit{width:100%;min-height:55px;font-size:16px;padding:16px 22px;border-color:#bba776;background:linear-gradient(110deg,#e7dab4,#c9b98f 48%,#b89d62);color:#393b32;cursor:pointer}
.appointment-note{margin:15px auto 0;max-width:360px;text-align:center;font-size:16px;line-height:1.8;color:#706b5e}
@media(max-width:1000px){.booking-with-form{gap:5%;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}.appointment-form{padding:30px}.appointment-heading h3{font-size:30.6px}.booking-with-form .booking-details{display:block}.booking-with-form .booking-details>span{display:block}.booking-with-form .booking-details>span+span{padding:0;border:0}}
@media(max-width:750px){.booking-with-form{display:grid;grid-template-columns:1fr;gap:35px;max-width:570px}.booking-with-form .booking-copy h2{font-size:35.3px}.booking-with-form .booking-copy>p{max-width:380px;margin-bottom:18px}.booking-portrait,.booking-with-form .booking-details{display:none}.booking-direct{margin-top:4px}.appointment-form{padding:30px 25px}.appointment-heading h3{font-size:31.3px}.appointment-name-row{gap:12px}.appointment-form:before{left:25px;right:25px}}
@media(max-width:370px){.appointment-name-row{grid-template-columns:1fr;gap:18px}.appointment-form{padding:28px 20px}.appointment-heading h3{font-size:22px}}
@media(prefers-reduced-motion:reduce){.appointment-form,.appointment-form *{transition:none!important;animation:none!important}}
