/* Booking-only styles. The landing's visual sections remain independent. */
#booking-dialog{max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
#booking-dialog .booking-step-title{font-size:24px;letter-spacing:-.035em;margin:22px 0 12px;line-height:1.25}
#booking-dialog .booking-helper{margin-bottom:18px}
#booking-dialog .booking-feedback{padding:14px 16px;background:#e8f0fc;border:1px solid #c9daf3;border-radius:9px;color:#234467;font-size:12px;line-height:1.65;margin:14px 0;display:flex;align-items:center;gap:12px}
#booking-dialog .booking-feedback.is-error{background:#fff3e9;border-color:#f0d1af;color:#744321}
.booking-spinner{width:16px;height:16px;flex:0 0 16px;border:2px solid #b5cae7;border-top-color:#1765df;border-radius:50%;animation:booking-spin .9s linear infinite}
@keyframes booking-spin{to{transform:rotate(360deg)}}
#booking-dialog .booking-range{display:grid;grid-template-columns:38px 1fr 38px;gap:12px;align-items:center;margin-top:20px}
#booking-dialog .booking-range .button{margin:0;width:38px;height:38px;min-height:38px;padding:0;justify-content:center;font-size:17px;background:transparent;border-color:#c7d4e4;color:#24466d}
#booking-dialog .booking-range-label{text-align:center;font-size:13px;color:var(--ink);font-weight:600;margin:0}
#booking-dialog .booking-timezone{font-size:10px;color:var(--muted);margin:10px 0 16px;text-align:center}
.booking-day{border:0;padding:0;margin:18px 0}
.booking-day legend{font-size:12px;font-weight:600;color:var(--ink);margin-bottom:10px;padding:0;text-transform:capitalize}
.booking-slot-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.booking-slot{position:relative;display:block;cursor:pointer}
.booking-slot input{position:absolute;opacity:0;width:1px;height:1px;inset:50% auto auto 50%}
.booking-slot span{display:block;border:1px solid #bfcfe2;border-radius:7px;padding:11px 4px;font-size:11px;text-align:center;color:#294d78;background:#fbfdff;transition:background .15s,color .15s,border-color .15s}
.booking-slot:hover span{border-color:#1765df;background:#eef5ff}
.booking-slot input:checked+span{background:#1765df;border-color:#1765df;color:#fff;box-shadow:0 3px 10px #1765df24}
.booking-slot input:focus-visible+span{outline:3px solid #1765df;outline-offset:3px}
.booking-fields{display:grid;gap:14px;margin:24px 0 18px;padding-top:20px;border-top:1px solid var(--line)}
.booking-field{display:block;font-size:12px;font-weight:500;color:var(--ink)}
.booking-field input,.booking-field textarea{display:block;width:100%;border:1px solid #becde0;border-radius:7px;background:#fff;color:var(--ink);padding:12px;font:inherit;font-size:16px;line-height:1.4;margin-top:6px}
.booking-field input:focus-visible,.booking-field textarea:focus-visible,.booking-consent input:focus-visible{outline:3px solid #1765df;outline-offset:3px}
.booking-consent{display:flex;align-items:flex-start;gap:10px;margin:18px 0;color:#43566f;font-size:11px;line-height:1.65;cursor:pointer}
.booking-consent input{width:17px;height:17px;margin:3px 0 0;flex:0 0 17px;accent-color:#1765df}
#booking-dialog .booking-privacy{font-size:11px;color:var(--muted)}
.booking-privacy summary{cursor:pointer;color:#315b8e;text-decoration:underline;text-underline-offset:3px}
#booking-dialog .booking-privacy p{font-size:11px;line-height:1.7;margin:10px 0}
#booking-dialog .booking-text-link{display:block;color:#235ca2;text-decoration:underline;text-underline-offset:4px;font-size:12px;margin:13px 0;line-height:1.6}
#booking-dialog .booking-pay{background:#1765df;border-color:#1765df;justify-content:center;font-size:13px;min-height:51px;margin:0;gap:10px}
#booking-dialog .booking-pay:hover{background:#0e55c8}
#booking-dialog button:disabled{cursor:not-allowed;opacity:.48;transform:none;box-shadow:none}
#booking-dialog .booking-small{font-size:10px;line-height:1.75;margin:12px 0;color:var(--muted)}
#booking-dialog .booking-reference{font-size:9px;color:var(--muted);overflow-wrap:anywhere;border-top:1px solid var(--line);padding-top:15px;margin-top:22px}
.booking-chosen{border:1px solid #c6d7ed;border-radius:10px;padding:16px;background:#eff5fd;margin:18px 0}
.booking-chosen strong{font-size:14px;font-weight:600;text-transform:capitalize;display:block;color:#214a79}
.booking-chosen span{font-size:12px;display:block;color:#57718f;margin-top:5px}
#booking-dialog .booking-action{font-size:12px;line-height:1.5;justify-content:center;text-align:center;gap:8px}
@media(max-width:420px){.booking-slot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}#booking-dialog .booking-step-title{font-size:22px}}
@media(prefers-reduced-motion:reduce){.booking-spinner{animation:none}.booking-slot span{transition:none}}

/* Monthly picker: only dates with verified server slots can be selected. */
#booking-dialog .booking-range>button{width:38px;height:38px;border:1px solid #c7d4e4;border-radius:50%;background:#fff;color:#24466d;font-size:19px;cursor:pointer}
#booking-dialog .booking-range-label{font-size:16px;text-transform:capitalize}
.booking-calendar-week,.booking-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.booking-calendar-week{margin:18px 0 8px;text-align:center;color:#64748b;font-size:11px;font-weight:600}
.booking-calendar-grid{min-height:220px;align-content:start}
.booking-calendar-date{position:relative;aspect-ratio:1;border:1px solid transparent;border-radius:9px;background:#eaf2ff;color:#175bc6;font:inherit;font-size:13px;cursor:pointer;min-height:38px;font-weight:600;transition:background .15s,color .15s}
#booking-dialog .booking-calendar-date:disabled{opacity:1;background:transparent;color:#abb5c1;font-weight:400}
.booking-calendar-date:not(:disabled):hover{background:#d4e4fd}
.booking-calendar-date[aria-pressed=true]{background:#1765df;color:#fff;box-shadow:0 4px 12px #1765df26}
.booking-calendar-date[aria-current=date]::after{content:'';width:4px;height:4px;border-radius:50%;background:currentColor;position:absolute;bottom:5px;left:calc(50% - 2px)}
#booking-dialog button:focus-visible,#booking-dialog .booking-contacts a:focus-visible,#booking-dialog .booking-admin summary:focus-visible{outline:3px solid #1765df;outline-offset:3px}
#booking-dialog .booking-calendar-status{font-size:11px;line-height:1.65;color:#58708e;min-height:34px;margin:13px 0 0}
.booking-calendar-status button{display:block;background:none;border:0;text-decoration:underline;color:#1765df;padding:8px 0;font:inherit;cursor:pointer}
/* Contact shortcuts stay between the session price and every booking step. */
.booking-contacts{padding:0 0 20px;margin:0 0 4px;border-bottom:1px solid var(--line)}
#booking-dialog .booking-contacts p{font-size:12px;font-weight:600;line-height:1.55;margin:0 0 12px;color:#3c526f}
.booking-contacts>div{display:grid;grid-template-columns:1fr;gap:10px}
#booking-dialog .booking-contacts a{display:flex;align-items:center;justify-content:center;gap:9px;min-width:0;min-height:56px;border:1px solid;border-radius:12px;padding:13px 12px;color:#fff;font-size:13px;font-weight:650;line-height:1.3;text-decoration:none;transition:transform .18s,box-shadow .18s,filter .18s}
.booking-contacts a svg{display:block;flex:0 0 25px}
#booking-dialog .booking-contacts a>span{font-size:13px;line-height:1.3}
#booking-dialog .booking-contacts .booking-contact-arrow{font-size:16px;opacity:.8;margin-left:auto}
#booking-dialog #booking-whatsapp{border-color:#25d366;background:linear-gradient(135deg,#0b8044,#086839);box-shadow:0 5px 15px #128c4824}
#booking-dialog .booking-contacts a:hover{transform:translateY(-2px);filter:brightness(1.06);box-shadow:0 8px 20px #173b572c}
#booking-dialog .booking-contacts a:active{transform:translateY(0)}
@media(max-width:360px){#booking-dialog .booking-contacts a{gap:7px;padding:12px 9px;font-size:12px}#booking-dialog .booking-contacts a>span{font-size:12px}.booking-contacts a svg{width:22px;height:22px;flex-basis:22px}#booking-dialog .booking-contacts .booking-contact-arrow{display:none}}
@media(prefers-reduced-motion:reduce){#booking-dialog .booking-contacts a{transition:none}#booking-dialog .booking-contacts a:hover{transform:none}}
#booking-dialog [hidden]{display:none!important}
.booking-admin{margin-top:24px;border-top:1px solid var(--line);padding-top:18px}
.booking-admin>summary{font-size:11px;color:#5b6c83;cursor:pointer}
.booking-admin-body{padding-top:12px}
.booking-admin-form>h4{font-size:15px;color:var(--ink);margin:24px 0 12px}
.booking-admin-day,.booking-admin-exception{border:1px solid #d1ddeb;border-radius:9px;padding:12px;margin:12px 0;background:#fbfdff;min-width:0}
.booking-admin-day>legend,.booking-admin-exception>legend{font-size:12px;font-weight:600;color:#355373;padding:0 6px}
.booking-admin-window{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;align-items:end;margin-bottom:10px}
.booking-admin label{font-size:11px;color:#4d627d;display:block}
.booking-admin input[type=time],.booking-admin input[type=date]{display:block;border:1px solid #c6d2e1;border-radius:5px;background:#fff;padding:9px 6px;font-size:14px;max-width:100%;width:100%;min-width:0;margin-top:5px;color:var(--ink)}
.booking-admin-button{border:1px solid #c6d2e1;border-radius:5px;background:#fff;color:#315d8d;padding:9px 10px;min-height:36px;font-size:11px;cursor:pointer}
.booking-admin-button:hover{background:#edf4ff}
.booking-admin .booking-admin-closed{display:flex;gap:8px;align-items:center;margin:12px 0}
.booking-admin-closed input{width:16px;height:16px;accent-color:#1765df}
#booking-dialog .booking-admin .booking-pay{margin-top:20px}
@media(max-width:420px){.booking-calendar-grid{min-height:210px}.booking-calendar-date{font-size:12px;min-height:34px}.booking-admin-window{gap:5px}.booking-admin-window .booking-admin-button{padding:9px 6px;font-size:10px}}
@media(prefers-reduced-motion:reduce){.booking-calendar-date{transition:none}}

/* Private manual reservations use the same calendar as customer bookings. */
#booking-dialog .booking-slot-reserved:disabled{border:0;padding:0;background:transparent;opacity:1;cursor:default;text-align:center;font:inherit}
#booking-dialog .booking-slot-reserved span{background:#eef0f4;border-color:#d5dce6;color:#687789}
.booking-slot-reserved small{display:block;font-size:9px;font-weight:600;margin-top:4px;letter-spacing:.01em}
#booking-dialog .booking-calendar-date.is-reserved{background:#e6e9ef;color:#69768a}
#booking-dialog .booking-admin{margin:2px 0 20px;padding-top:0;border-top:0}
#booking-dialog .booking-admin>summary{padding:12px 14px;border:1px solid #c6d7ed;border-radius:9px;background:#eaf1fc;color:#224d85;font-size:12px;font-weight:600}
.booking-manual-panel{padding:16px;border:1px solid #b7ceeb;border-radius:12px;background:#f9fbff;margin-bottom:24px}
.booking-manual-panel h4{margin:0 0 8px;font-size:15px;letter-spacing:-.02em;color:#214973}
.booking-manual-panel h4:not(:first-child){margin-top:25px}
.booking-manual-calendar .booking-calendar-grid{min-height:180px}
#booking-dialog .booking-manual-reserve{width:100%;margin-bottom:8px}
.booking-manual-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid #d3deeb}
.booking-manual-row strong,.booking-manual-row small{display:block;font-size:11px;color:#30516f;line-height:1.6}
.booking-manual-row strong{text-transform:capitalize}
.booking-manual-row small{font-size:10px;color:#697c93}
.booking-manual-row button{flex-shrink:0}
.booking-multi-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.booking-multi-actions button{border:1px solid #c6d7ed;border-radius:6px;background:#edf4ff;color:#23558f;padding:8px 10px;font:inherit;font-size:10px;cursor:pointer;min-height:36px}
.booking-manual-selection ul{list-style:none;margin:0 0 12px;padding:0;max-height:180px;overflow-y:auto;border:1px solid #d3deeb;border-radius:8px;background:#fff}
.booking-manual-selection li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;font-size:10px;color:#30516f}
.booking-manual-selection li+li{border-top:1px solid #e1e8f1}
.booking-manual-selection li .booking-admin-button{font-size:10px;min-height:30px;padding:5px 8px}
.booking-manual-calendar .booking-calendar-date[data-selected-count]:not([data-selected-count="0"])::before{content:attr(data-selected-count);position:absolute;top:1px;right:1px;min-width:14px;height:14px;padding:0 3px;border-radius:8px;background:#174b9a;color:#fff;font-size:8px;line-height:14px}
@media(max-width:420px){.booking-manual-panel{padding:10px}.booking-manual-row{flex-wrap:wrap}.booking-manual-row button{width:100%}}

/* The agenda uses layered slate-blue surfaces, including its private editor. */
#booking-dialog{--ink:#dce8f6;--muted:#a5b9d0;--line:#354e69;--paper:#112238;color-scheme:dark;background:linear-gradient(150deg,#172e49,#102137 75%);border-color:#496683;color:var(--ink);box-shadow:0 30px 110px #0009}
#booking-dialog::backdrop{background:#020b18a6;backdrop-filter:blur(7px)}
#booking-dialog .booking-summary{border-color:var(--line)}
#booking-dialog .dialog-close{color:#bed3ea}
#booking-dialog .booking-feedback{background:#1b3a56;border-color:#3e6586;color:#c2e2ff}
#booking-dialog .booking-feedback.is-error{background:#422b2d;border-color:#815052;color:#ffd0c3}
#booking-dialog .booking-range>button,#booking-dialog .booking-range .button{background:#203c59;border-color:#4e6c89;color:#c7e3ff}
#booking-dialog .booking-calendar-week{color:#9eb6d2}
#booking-dialog .booking-calendar-date{background:#203e5f;color:#c1dfff;border-color:#3a5d80}
#booking-dialog .booking-calendar-date:disabled{background:transparent;color:#7890aa;border-color:transparent}
#booking-dialog .booking-calendar-date:not(:disabled):hover{background:#2e547c}
#booking-dialog .booking-calendar-date[aria-pressed=true]{background:#276bd4;border-color:#6aafff;color:#edf5ff}
#booking-dialog .booking-calendar-date.is-reserved{background:#27394d;color:#a9b6c7;border-color:#45576c}
#booking-dialog .booking-calendar-status,#booking-dialog .booking-contacts p{color:#afc5dd}
#booking-dialog .booking-slot span{background:#203951;border-color:#496580;color:#d6e7f9}
#booking-dialog .booking-slot:hover span{background:#2d4f71;border-color:#7ba9d5}
#booking-dialog .booking-slot input:checked+span{background:#2568ce;border-color:#78b7ff;color:#f0f7ff}
#booking-dialog .booking-slot-reserved span{background:#29394a;border-color:#435669;color:#abbacd}
#booking-dialog .booking-field input,#booking-dialog .booking-field textarea,#booking-dialog .booking-admin input[type=time],#booking-dialog .booking-admin input[type=date]{background:#0c1d30;border-color:#4a6580;color:#dce8f6}
#booking-dialog .booking-field input::placeholder,#booking-dialog .booking-field textarea::placeholder{color:#91a5bf}
#booking-dialog .booking-consent{color:#adc1d7}
#booking-dialog .booking-privacy summary,#booking-dialog .booking-text-link,#booking-dialog .booking-calendar-status button{color:#8fc5ff}
#booking-dialog .button{background:#245fba;border-color:#5089d7;color:#e6effb}
#booking-dialog .button:hover{background:#2d70d2}
#booking-dialog .button-outline{background:#233c58;border-color:#536e8b;color:#c7dbf1}
#booking-dialog .booking-chosen{background:#1d3b59;border-color:#496b8d}
#booking-dialog .booking-chosen strong{color:#cae4ff}#booking-dialog .booking-chosen span{color:#b0c5dd}
#booking-dialog .booking-admin>summary{background:#1b3551;border-color:#456b90;color:#b9d9fb}
#booking-dialog .booking-manual-panel{background:#10253d;border-color:#3a5d80}
#booking-dialog .booking-manual-panel h4,#booking-dialog .booking-manual-row strong{color:#c5ddf6}
#booking-dialog .booking-manual-row{border-color:#354f6a}
#booking-dialog .booking-manual-row small,#booking-dialog .booking-admin label{color:#a5bdd7}
#booking-dialog .booking-admin-day,#booking-dialog .booking-admin-exception{background:#172e47;border-color:#3d5875}
#booking-dialog .booking-admin-day>legend,#booking-dialog .booking-admin-exception>legend{color:#b8cfe7}
#booking-dialog .booking-admin-button,#booking-dialog .booking-multi-actions button{background:#243e5b;border-color:#506d8d;color:#cee4fb}
#booking-dialog .booking-admin-button:hover,#booking-dialog .booking-multi-actions button:hover{background:#31577f}
#booking-dialog .booking-manual-selection ul{background:#142d46;border-color:#3e5a76}
#booking-dialog .booking-manual-selection li{color:#c6def5}#booking-dialog .booking-manual-selection li+li{border-color:#3d5671}
#booking-dialog button:focus-visible,#booking-dialog input:focus-visible,#booking-dialog .booking-slot input:focus-visible+span{outline-color:#90c9ff}

/* Coupon entry stays tucked behind a single compact action. */
.booking-coupon-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0 16px}
.booking-coupon-status{font-size:11px;color:#acc3dd;line-height:1.5}
.booking-coupon-trigger{display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap;padding:9px 14px;min-height:40px;border-radius:20px;border:1px solid #55799e;background:#203f60;color:#d1e8ff;font:inherit;font-size:12px;font-weight:600}
.booking-coupon-trigger::before{content:'%';font-size:12px;color:#8ec8ff}
.booking-coupon-trigger:hover{background:#2b527a;border-color:#80b5e8}
.booking-discount-summary{display:flex;gap:12px;align-items:center;flex-wrap:wrap;border:1px solid #426a8d;background:#1b3a56;border-radius:10px;padding:14px;margin-bottom:14px;font-size:12px;color:#bed3e8}
.booking-discount-summary>span{margin-right:auto}.booking-discount-summary s{color:#9fb4cc}.booking-discount-summary strong{font-size:20px;color:#b5e4ff}
#booking-dialog .booking-coupon-dialog{color-scheme:dark;width:min(420px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;padding:32px;border-radius:20px;background:linear-gradient(145deg,#1d3b5c,#132940);border:1px solid #6487aa;color:#dce8f6;box-shadow:0 28px 90px #000a}
.booking-coupon-dialog::backdrop{background:#020c1bd9;backdrop-filter:blur(5px)}
#booking-dialog .booking-coupon-dialog h3{font-size:28px;line-height:1.15;margin-bottom:14px;max-width:300px}
#booking-dialog .booking-coupon-dialog p{font-size:12px;color:#b4c9e1;line-height:1.7}
#booking-dialog .booking-coupon-dialog .eyebrow{font-size:9px;letter-spacing:.12em;margin-bottom:15px;color:#88c5ff}
#booking-dialog .booking-coupon-dialog input{text-transform:uppercase;letter-spacing:.045em;margin-bottom:18px}
#booking-dialog .booking-coupon-dialog .button{width:100%;margin:8px 0 0}
#booking-dialog .booking-coupon-dialog .dialog-close{border:0;background:transparent;color:#c6dbef;box-shadow:none;margin:0;width:auto;min-height:0;padding:0 8px;font-size:28px}
@media(max-width:420px){#booking-dialog .booking-coupon-dialog{padding:30px 23px}.booking-coupon-status{font-size:10px}}
#booking-dialog .booking-summary{background:#213e5a;color:#d4e6f9;border:1px solid #47698b}

/* Slightly larger booking copy follows the landing's reading scale. */
#booking-dialog .booking-step-title{font-size:28px}#booking-dialog .booking-coupon-dialog h3{font-size:31px}
#booking-dialog p,#booking-dialog .booking-helper{font-size:14px}#booking-dialog .booking-timezone,#booking-dialog .booking-calendar-status,#booking-dialog .booking-small{font-size:12px}
#booking-dialog .booking-privacy,#booking-dialog .booking-privacy p,#booking-dialog .booking-consent{font-size:12px;line-height:1.7}
#booking-dialog .booking-field{font-size:14px}#booking-dialog .booking-slot span{font-size:13px}#booking-dialog .booking-calendar-week{font-size:12px}#booking-dialog .booking-calendar-date{font-size:14px}
#booking-dialog .booking-coupon-dialog p{font-size:14px}.booking-coupon-status{font-size:12px}

/* Short-notice appointments remain bookable, with a clear warning before checkout. */
#booking-dialog .booking-short-notice{margin:2px 0 22px;padding:16px 18px;border:1px solid #bc9259;border-left:4px solid #e5b86e;border-radius:12px;background:#3a3024;color:#f4dfb9}
#booking-dialog .booking-short-notice[hidden]{display:none}
#booking-dialog .booking-short-notice strong{display:block;font-size:15px;line-height:1.4;color:#f7d697}
#booking-dialog .booking-short-notice p{font-size:14px;line-height:1.65;margin:8px 0 0;color:#e4d4ba}
#booking-dialog .booking-short-notice:focus-visible{outline:2px solid #edc88f;outline-offset:4px}

/* Calendar actions are offered only after the server confirms the booking. */
#booking-dialog .booking-add-calendar{padding:20px;margin:20px 0;border:1px solid #527fa5;border-radius:15px;background:linear-gradient(135deg,#1b3c59,#152d46)}
#booking-dialog .booking-add-calendar h4{font-family:var(--heading);font-size:22px;line-height:1.25;letter-spacing:-.025em;color:#d6eafb;margin:0 0 10px}
#booking-dialog .booking-add-calendar p{font-size:14px;line-height:1.65;color:#b7cfe5;margin:0 0 16px}
.booking-calendar-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
#booking-dialog .booking-calendar-actions .button{font-size:13px;line-height:1.4;min-height:48px;padding:12px;justify-content:center;text-align:center;margin:0;white-space:normal}
#booking-dialog .booking-add-calendar .booking-small{font-size:12px;line-height:1.65;margin:14px 0 0;color:#a9c0d7}
@media(max-width:420px){#booking-dialog .booking-add-calendar{padding:18px}.booking-calendar-actions{grid-template-columns:1fr}}

.booking-field textarea{resize:vertical;min-height:112px;max-width:100%}.booking-field-hint{display:block;margin-top:7px;color:#a8bed5;font-size:11px;font-weight:400;line-height:1.5}
