/* Shared booking page and service-page enquiry component. */
.booking-section{position:relative;isolation:isolate;padding:155px 7% 110px;background:radial-gradient(ellipse at 70% 54%,var(--blue) 0%,#7cf4ff88 30%,#7cf4ff20 48%,transparent 70%),#fff;overflow:hidden;color:var(--ink)}
.booking-section--service{padding-top:100px}
.booking-layout{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(40px,6vw,100px);max-width:1440px;margin:0 auto;align-items:start;position:relative;z-index:1}
.booking-intro{padding-top:30px;min-width:0}
.booking-intro h1,.booking-intro h2{font-family:'Playfair Display',Georgia,serif;font-size:clamp(52px,5.6vw,86px);line-height:1.1;font-weight:400;margin:26px 0 35px;letter-spacing:-.045em}
.booking-intro h1 em,.booking-intro h2 em{display:block;font-weight:400}
.booking-intro p{font-size:21px;max-width:450px}
.booking-intro .booking-contact{line-height:1.9;margin:30px 0}
.booking-contact a{border-bottom:1px solid #16254466;overflow-wrap:anywhere}
.booking-intro .booking-cancellation{font-size:17px;max-width:350px}
.booking-cancellation a,.booking-information a{text-decoration:underline;text-underline-offset:3px}
.booking-section>.flower{width:38vw;height:38vw;left:-15vw;bottom:2%;opacity:.15;z-index:0}
born-booking-form{display:block;min-width:0}
.booking-form{background:var(--white);border-radius:var(--photo-radius);padding:clamp(25px,3vw,46px);box-shadow:0 22px 55px #1625440a}
.booking-required{margin:0 0 26px;font-size:14px;color:var(--body)}
.booking-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 20px}
.booking-field{min-width:0;margin-bottom:25px}
.booking-fields .booking-field{margin:0}
.booking-field>label,.booking-services legend,.booking-security-label{display:block;font-size:16px;font-weight:600;margin-bottom:10px;line-height:1.4}
.booking-field input:not([type=checkbox]),.booking-field textarea{display:block;width:100%;min-width:0;min-height:50px;border:1px solid #16254433;border-radius:12px;padding:12px 14px;background:#fff;color:var(--ink);font:inherit;font-size:16px;line-height:1.5;box-shadow:none}
.booking-field input[type=date],.booking-field input[type=time]{appearance:none;min-height:50px}
.booking-field input::placeholder{color:#687383;opacity:1}
.booking-field textarea{min-height:120px;resize:vertical}
.booking-form :is(input,textarea,button):focus-visible,.booking-option:has(input:focus-visible){outline:3px solid var(--pink);outline-offset:4px}
.booking-form [aria-invalid=true]:not(fieldset):not(.booking-security){border-color:#a21e42}
.field-error{display:block;color:#a21e42;font-size:15px;line-height:1.4;margin-top:9px}
.booking-time-note,.booking-choice-note,.booking-security-note{font-size:15px;line-height:1.5;color:var(--body)}
.booking-time-note{margin:15px 0 28px}
.booking-services{border:0;padding:0;margin:0 0 28px;min-width:0}
.booking-services legend{padding:0}
.booking-choice-note{margin:0 0 15px}
.booking-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.booking-option{display:flex;align-items:flex-start;gap:11px;min-height:104px;padding:17px 14px;border:1px solid #16254430;border-radius:15px;cursor:pointer;background:#fff}
.booking-option:has(input:checked){border-color:var(--pink);box-shadow:inset 0 0 0 1px var(--pink);background:#ff58800a}
.booking-option--fixed{grid-column:1/-1;cursor:default}
.booking-option>span{min-width:0;display:block}
.booking-service-name{display:block;font-size:16px;font-weight:600;line-height:1.35}
.booking-service-price{display:block;font-size:17px;margin-top:7px;font-weight:600}
.booking-option input,.booking-consent input{appearance:none;width:20px;height:20px;min-width:20px;flex-shrink:0;border:1px solid #16254466;border-radius:5px;background:#fff;margin:2px 0 0;display:grid;place-content:center;cursor:pointer}
.booking-option input:checked,.booking-consent input:checked{background:var(--pink);border-color:var(--pink)}
.booking-option input:checked:before,.booking-consent input:checked:before{content:'';width:9px;height:5px;border-left:2px solid var(--ink);border-bottom:2px solid var(--ink);transform:translateY(-1px) rotate(-45deg)}
.booking-consent label{display:flex;gap:12px;align-items:flex-start;cursor:pointer;min-height:44px;font-size:15px;font-weight:400;line-height:1.5;margin:0}
.booking-trap{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.booking-security{margin:25px 0}
.booking-challenge{max-width:100%;min-width:0}
.booking-submit{display:inline-flex;align-items:center;justify-content:space-between;gap:55px;min-height:58px;border:0;border-radius:35px;padding:20px 30px;background:var(--pink);color:var(--ink);font-size:12px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;cursor:pointer;max-width:100%;line-height:1.5}
.booking-submit span{font-size:20px}
.booking-submit:disabled{opacity:.65;cursor:wait}
.booking-information{padding:18px 7px 0;font-size:15px;color:var(--body)}
.booking-information p{margin:12px 0;line-height:1.5}
.booking-availability,.booking-result,.booking-success{border-radius:12px;padding:15px 17px;background:#7cf4ff33;font-size:16px;line-height:1.5;margin:0 0 25px;overflow-wrap:anywhere}
.booking-result{border:1px solid #a21e4250;background:#ff58800a}
.booking-success{margin:25px 0 0}
.booking-form [hidden]{display:none}
@media(min-width:1101px){.booking-page .header:not(.scrolled){background:#ffffffd9}}
@media(max-width:1100px){.booking-section{padding:135px 6% 85px}.booking-section--service{padding-top:85px}.booking-layout{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:35px}.booking-intro h1,.booking-intro h2{font-size:56px}.booking-form{padding:28px}.booking-options{grid-template-columns:1fr}.booking-option{min-height:82px}.booking-fields{grid-template-columns:1fr}}
@media(max-width:800px){.booking-layout{grid-template-columns:1fr;gap:35px;max-width:650px}.booking-intro{padding-top:0}.booking-intro h1,.booking-intro h2{font-size:clamp(48px,8vw,65px)}.booking-intro p{max-width:560px}.booking-intro .booking-cancellation{max-width:500px}.booking-options,.booking-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-option{min-height:100px}.booking-section>.flower{width:80vw;height:80vw;left:-40vw;bottom:20%}}
@media(max-width:500px){.booking-section{padding:120px 6% 70px}.booking-section--service{padding-top:75px}.booking-intro h1,.booking-intro h2{font-size:50px;margin-top:22px}.booking-intro p{font-size:20px}.booking-form{padding:25px 20px}.booking-fields,.booking-options{grid-template-columns:1fr}.booking-fields{gap:23px}.booking-option{min-height:80px}.booking-submit{width:100%;gap:20px}.booking-information{padding-left:0;padding-right:0}}
@media(forced-colors:active){.booking-option input,.booking-consent input{appearance:auto}.booking-option:has(input:checked){outline:2px solid Highlight}}
