.booking-step-label{color:#8a9c78;font-size:8px;font-weight:600;letter-spacing:1.7px;margin-bottom:12px}.duration-options{display:flex;gap:10px;padding:0;margin:23px 0 25px;border:0}.duration-options legend{font-size:10px;font-weight:550;margin-bottom:10px}.duration-option{flex:1;text-align:left;background:#fff;border:1px solid var(--line);border-radius:9px;padding:13px 17px;color:var(--ink)}.duration-option strong{display:block;font-family:var(--heading);font-size:15px;font-weight:650;line-height:1.4}.duration-option span{font-size:11px;color:var(--muted)}.duration-option.selected{background:#f0f6e8;border-color:#9eb87e}.calendar-month{display:flex;align-items:center;justify-content:space-between;margin:22px 0 17px}.calendar-month h4{font-family:var(--heading);font-weight:600;font-size:14px;margin:0;letter-spacing:-.2px}.calendar-month button{width:29px;height:29px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);font-size:20px;line-height:1}.calendar-month button:disabled{opacity:.3}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.calendar-weekdays{text-align:center;font-size:9px;color:#8e9885;margin-bottom:9px}.calendar-day{aspect-ratio:1.16;border:0;border-radius:8px;background:transparent;font-size:12px;position:relative;color:#718265;display:flex;align-items:center;justify-content:center}.calendar-day.has-slots{background:#eff5e8;color:var(--forest);font-weight:600}.calendar-day:not(:disabled):hover{background:#e2ebd7}.calendar-day:disabled{color:#cbd1c4}.calendar-day.selected{background:var(--forest)!important;color:#fff!important}.day-dot{position:absolute;bottom:5px;width:3px;height:3px;border-radius:50%;background:#8aa764}.calendar-day.selected .day-dot{background:var(--lime)}.calendar-zone{font-size:9px;color:#8a947d;margin-top:17px;text-align:center}.calendar-zone strong{font-weight:500;color:#718362}.selected-day-title{font-size:10px;display:flex;align-items:center;justify-content:space-between;gap:10px;margin:23px 0 12px;border-top:1px solid var(--line);padding-top:22px}.selected-day-title strong{font-weight:550}.selected-day-title span{color:#8a967d;font-size:9px}.time-slots{display:flex;gap:9px;flex-wrap:wrap}.time-slot{border:1px solid #bbcbae;border-radius:8px;background:#fff;color:#5d7848;min-width:calc(50% - 5px);flex:1;padding:13px;font-size:12px;font-weight:500}.time-slot.selected{background:var(--forest);border-color:var(--forest);color:white}.time-slot:hover:not(.selected){background:#f0f6e8}.slot-message{font-size:11px;line-height:1.8;color:#8a947e;text-align:center;padding:13px 7px;width:100%}.local-time-note{font-size:9px;color:#7c886f;line-height:1.8;margin-top:12px}.booking-widget #continue-booking{margin-top:19px}.request-time-link{border:0;background:none;color:#73875e;font-size:10px;display:flex;gap:8px;justify-content:center;align-items:center;width:100%;padding:20px 0 5px}.request-time-link:hover{text-decoration:underline}.calendar-closed{border:1px solid #e5eadd;border-radius:10px;background:#f8faf4;text-align:center;padding:29px 23px;margin:24px 0}.calendar-closed>.icon{width:30px;height:30px;color:#8eaa72;margin:0 auto 13px}.calendar-closed h4{font-family:var(--heading);font-size:17px;font-weight:550;margin:0 0 9px}.calendar-closed p{font-size:11px;color:#7c8970;line-height:1.8}.booking-summary{border:1px solid #dae4ce;background:#f2f6eb;border-radius:10px;padding:19px 20px;margin:21px 0;font-size:11px;line-height:1.85}.booking-summary strong{font-size:13px;font-weight:600;display:block;margin-bottom:6px}.booking-summary p{font-size:11px;color:#69795a;margin-top:3px}.booking-summary small{font-size:9px;color:#889778;display:block;margin-top:9px}.booking-form{margin-top:23px}.booking-form label{font-size:10px;font-weight:500;display:block;color:#5c7150;margin-bottom:16px}.booking-form input:not([type=checkbox]),.booking-form select,.booking-form textarea,.private-link-label input{display:block;width:100%;margin-top:7px;border:1px solid #d8e0d1;border-radius:7px;background:#fff;color:var(--ink);padding:11px 12px;font-size:12px;min-width:0}.booking-form select{height:43px}.booking-form textarea{resize:vertical;min-height:84px}.form-row{display:flex;gap:13px}.form-row>label{flex:1;min-width:0}.booking-form .consent-field{display:flex;align-items:flex-start;gap:9px;font-size:9px;line-height:1.8;color:#7c8770;margin:19px 0 23px}.consent-field input{width:14px;height:14px;flex-shrink:0;accent-color:var(--forest);margin:3px 0 0}.sensitive-warning{font-size:9px;line-height:1.75;color:#849172;display:flex;gap:8px;background:#f4f7ee;border-radius:7px;padding:11px}.sensitive-warning .icon{width:15px;height:15px;margin-top:2px}.form-hint{font-size:9px;color:#89977a;line-height:1.7;margin:0 0 20px}.form-error{font-size:11px;color:#8b4b33;line-height:1.8;margin-top:15px}.confirmation-icon{height:55px;width:55px;background:#eaf2df;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#6a864e;margin:4px 0 22px}.confirmation-icon .icon{width:28px;height:28px;stroke-width:1.8}.confirmation-manage{display:block;text-align:center;font-size:11px;color:#64804c;margin:15px 0 23px}.confirmation-save,.request-success-note{font-size:10px;line-height:1.8;color:#889577;margin-top:20px}.request-success-note{background:#f2f6eb;border-radius:9px;padding:15px;margin-bottom:25px}.private-link-label{display:block;font-size:9px;color:#7c8c6b;margin:20px 0 8px}.private-link-label input{font-size:10px}.copy-link{background:none;border:0;color:#64804c;font-size:10px;padding:5px 0}.booking-widget button:disabled{opacity:.5}.booking-section:has(.calendar-days){align-items:flex-start}.booking-widget:has(.calendar-days){padding:28px 30px}.booking-widget:has(.booking-form){padding:28px}.booking-widget .back-button:hover{color:var(--ink)}.booking-widget:has(.calendar-days) h3{font-size:24px}.booking-widget{scroll-margin-top:100px}.admin-footer-link{opacity:.7}.admin-footer-link:hover{opacity:1}
@media(max-width:960px){.booking-widget:has(.calendar-days){padding:25px}.booking-widget:has(.booking-form){padding:24px}.form-row{display:block}.form-row>label{width:100%}}
@media(max-width:740px){.booking-widget:has(.calendar-days){padding:25px 22px}.booking-widget:has(.booking-form){padding:25px 22px}.calendar-day{aspect-ratio:1.15;font-size:13px}.calendar-weekdays,.calendar-days{gap:5px}.calendar-day .day-dot{bottom:4px}.calendar-month h4{font-size:15px}.time-slot{font-size:13px;padding:14px}.booking-summary{padding:18px}.booking-form input:not([type=checkbox]),.booking-form select,.booking-form textarea{font-size:16px}.calendar-zone{line-height:1.8}.selected-day-title{font-size:11px}.duration-option span{font-size:12px}.request-time-link{font-size:11px}.form-row{display:flex;gap:11px}.form-row>label{width:auto}.booking-form label{font-size:11px}.booking-form .consent-field{font-size:10px}.confirmation-save{font-size:11px}.booking-widget #continue-booking{font-size:12px}}
@media(max-width:380px){.form-row{display:block}.booking-widget:has(.calendar-days){padding:22px 17px}.calendar-day{font-size:12px}.selected-day-title{font-size:10px}.selected-day-title span{font-size:8px}}

/* Explicit title lines prevent hidden mobile <br> elements from joining words. */
.booking-title-line {
  display: block;
}

.booking-section > .booking-intro,
.booking-section > .booking-widget {
  min-width: 0;
  max-width: 100%;
}

.booking-intro > p:not(.eyebrow) {
  width: 100%;
  max-width: min(100%, 24rem);
  overflow-wrap: break-word;
}

/* The selected package is visible before collecting any contact details. */
.session-overview{border:1px solid #dae4ce;background:#f7faf2;border-radius:10px;padding:18px;margin:20px 0;color:var(--ink);overflow-wrap:break-word}
.session-overview .booking-step-label{margin-bottom:8px}
.session-overview h4{font-family:var(--heading);font-size:17px;line-height:1.4;font-weight:600;letter-spacing:-.3px;margin:0 0 10px}
.session-overview p{font-size:11px;line-height:1.8;color:#69795a;margin:10px 0 0}
.session-overview strong{font-weight:600}
.session-coverage{padding-left:17px;margin:12px 0;font-size:11px;line-height:1.8;color:#69795a}
.session-coverage li{padding:2px 0}
.session-prices{list-style:none;margin:15px 0 0;padding:12px 0 0;border-top:1px solid var(--line)}
.session-prices li{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:11px;line-height:1.8;padding:3px 0}
.session-prices small{flex-basis:100%;color:var(--muted);font-size:10px}
.session-overview .session-preparation{border-top:1px solid var(--line);padding-top:12px;margin-top:15px}
.session-overview .session-payment,.session-overview .session-request-note{font-size:10px}
.session-availability,.session-length-note{font-size:11px;line-height:1.8;color:var(--muted);margin:14px 0}
.duration-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.duration-options legend{grid-column:1/-1}
.duration-option{min-width:0;padding:12px 9px}
.duration-option span{display:block;overflow-wrap:anywhere;font-size:10px;line-height:1.6;margin-top:3px}
.booking-widget .widget-note{line-height:1.8;text-align:center;flex-wrap:wrap}
.booking-widget button:focus-visible{outline:2px solid var(--forest);outline-offset:3px}
@media(max-width:520px){.booking-form .form-row{display:block}.booking-form .form-row>label{width:100%}.session-overview{padding:16px}.duration-option{padding:12px 7px}.duration-option strong{font-size:14px}.duration-option span{font-size:10px}.session-overview p,.session-coverage{font-size:11px}}
