/* Intrinsic grid sizes keep date/time widgets and long text inside the form. */
.booking-grid{grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);gap:clamp(24px,5vw,70px);align-items:start}.booking-grid>*{min-width:0}.booking-intro .notice{max-width:100%;overflow-wrap:anywhere}#booking-form{min-width:0;width:100%;padding:clamp(20px,3vw,40px)}#booking-form>*{min-width:0}#booking-form fieldset{min-width:0}.request-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.request-options label{min-width:0}.request-options span{min-height:48px;display:grid;place-items:center;padding:12px 5px;overflow-wrap:anywhere}.calendar{width:100%;min-width:0;padding:24px;border-radius:8px;margin:30px 0;background:#11130f66}.calendar-kicker{font-size:8px;letter-spacing:1.5px;color:var(--muted);line-height:1.8;margin-bottom:18px}.calendar-head{gap:14px;min-width:0;margin-bottom:26px}.calendar-head>span{font-size:clamp(18px,2vw,24px);min-width:0;overflow-wrap:anywhere}.calendar-head>div{display:flex;flex-shrink:0;gap:8px}.calendar-head button{width:44px;height:44px;border-radius:50%;background:#ffffff04}.weekdays,.days{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.weekdays{font-size:10px;margin-bottom:12px}.day{width:100%;min-width:0;min-height:44px;aspect-ratio:1.12;border-radius:6px;font-size:13px;padding:6px 0;font-variant-numeric:tabular-nums}.day.today:not([aria-pressed=true]){border:1px solid #b9bd9160;color:var(--accent)}.day[aria-pressed=true]{box-shadow:0 4px 20px #b9bd9120;font-weight:600}.day:disabled{color:#6d7067}.date-status{padding:16px 0 0;border-top:1px solid var(--line);line-height:1.7;overflow-wrap:anywhere;color:var(--accent);font-size:11px}.form-section-title{font:400 19px 'Space Grotesk';margin:30px 0 22px}.fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 16px}.fields label{min-width:0;line-height:1.6}.fields input,.fields select,.fields textarea{max-width:100%;width:100%;min-width:0;min-height:46px;border-radius:5px;font-size:12px;padding:12px 10px}.fields textarea{min-height:90px}.form-note{overflow-wrap:anywhere}.submit{border-radius:5px;min-height:50px}@media(max-width:1000px){.booking-grid{grid-template-columns:1fr;gap:36px}.booking-intro{max-width:660px}.booking-intro .booking-step{max-width:100%}}@media(max-width:600px){#booking-form{padding:18px}.calendar{padding:14px}.calendar-kicker{font-size:7px;letter-spacing:1px}.weekdays,.days{gap:3px}.day{min-height:36px;font-size:12px}.calendar-head{gap:8px}.calendar-head>span{font-size:18px}.calendar-head>div{gap:5px}.calendar-head button{width:40px;height:44px}.fields{grid-template-columns:1fr}.fields .full{grid-column:auto}.fields input,.fields select,.fields textarea{font-size:16px}.request-options span{font-size:10px}.form-section-title{font-size:18px}}
/* Compact presentation-only booking. */
#booking-form{padding:24px}.booking-type{font-size:9px;letter-spacing:1.4px;color:var(--accent);margin-bottom:20px}.contact-first{gap:8px;margin-bottom:18px}.contact-first small{font-size:10px;line-height:1.6;color:var(--muted);grid-column:1/-1}.calendar{max-width:420px;padding:18px;margin:20px 0}.calendar-kicker{margin-bottom:12px;font-size:7px}.calendar-head{margin-bottom:14px}.calendar-head>span{font-size:20px}.calendar-head button{width:40px;height:40px}.weekdays{margin-bottom:7px}.day{aspect-ratio:auto;min-height:36px;height:36px;font-size:12px;padding:4px 0}.weekdays,.days{gap:4px}.date-status{padding-top:10px;margin-top:12px;font-size:10px}.form-section-title{margin:22px 0 16px}.fields{gap:15px 12px}.fields label{gap:7px}.fields input,.fields select{min-height:44px}.submit{margin-top:20px}@media(max-width:600px){#booking-form{padding:18px}.calendar{padding:12px}.calendar-head>span{font-size:18px}.day{height:40px;min-height:40px}.calendar-head button{height:44px}.contact-first{margin-bottom:16px}}
/* Full card width, retaining the compact row height. */
#booking-form .calendar{width:100%;max-width:none}

/* Native iOS date/time controls must shrink within the booking grid. */
#booking-form .fields,#booking-form .fields label{min-inline-size:0;max-inline-size:100%}
#booking-form .fields label{overflow-wrap:anywhere}
#booking-form input,#booking-form select,#booking-form textarea{display:block;box-sizing:border-box;inline-size:100%;min-inline-size:0;max-inline-size:100%}
#booking-form input[type=date],#booking-form input[type=time]{-webkit-appearance:none;appearance:none;text-align:left;overflow:hidden}
#booking-form input::-webkit-date-and-time-value{min-width:0;text-align:left}
#booking-form select{text-overflow:ellipsis}
@media(max-width:600px){#booking-form .fields{grid-template-columns:minmax(0,1fr)}#booking-form .calendar-head{flex-wrap:wrap}#booking-form .calendar-head>span{flex:1 1 120px}#booking-form .fields label>span{max-width:100%}}

.booking-direct{margin-top:28px;padding-top:24px;border-top:1px solid #ffffff26}.booking-direct h3{font-size:16px;line-height:1.5;margin:0 0 12px}.booking-direct-link{display:flex;align-items:center;gap:12px;min-height:44px;width:fit-content;max-width:100%;color:#fff;font-size:14px;text-decoration:none}.booking-direct-link img,.booking-direct-link svg{flex:0 0 24px}.booking-direct-link span{overflow-wrap:anywhere;min-width:0}.booking-direct-link:hover span{text-decoration:underline}.booking-direct-link:focus-visible{outline:2px solid #fff;outline-offset:4px}

.review-send-actions{display:grid;gap:10px;margin-top:22px}.review-send-actions a{display:flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 16px;border:1px solid #ffffff60;background:#ffffff0a;color:#fff;font-size:12px;text-align:center;line-height:1.5}.review-send-actions a:hover{background:#ffffff18}.review-send-actions a:focus-visible{outline:2px solid #fff;outline-offset:3px}.review-send-actions img,.review-send-actions svg{flex:0 0 20px}.review-actions{margin-top:14px}

.booking-validation{font-size:12px;line-height:1.6;color:#fff;margin:12px 0;overflow-wrap:anywhere}.booking-validation:empty{display:none}

.review-actions #download-pdf{background:#fff;color:#111;border-color:#fff;font-weight:600;min-height:44px}.review-actions button:disabled,.review-send-actions a[aria-disabled=true]{opacity:.55;cursor:wait}

#booking {
  scroll-margin-top: 100px;
}

@keyframes bookingHighlightPulse {
  0% { box-shadow: 0 0 0 0 rgba(189, 195, 145, 0.7); }
  50% { box-shadow: 0 0 35px 6px rgba(189, 195, 145, 0.45); border-color: rgba(189, 195, 145, 0.9); }
  100% { box-shadow: 0 0 0 0 rgba(189, 195, 145, 0); }
}

#booking-form.booking-target-active {
  animation: bookingHighlightPulse 1.6s ease-out 2;
  border-color: rgba(189, 195, 145, 0.85) !important;
}

