/* Appointment enhancements: native controls remain available without JavaScript. */
.appointment-card .booking-service-field{margin-block:6px 23px}
.booking-service-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.booking-service-card{position:relative;display:block;cursor:pointer;min-width:0}
.booking-service-card>input{position:absolute;inset:0;width:1px;height:1px;opacity:0;min-height:0;padding:0;margin:0}
.booking-service-face{position:relative;display:flex;align-items:center;gap:12px;min-height:86px;padding:15px 28px 15px 15px;background:#fffdfb;border:1px solid #ddd3e1;border-radius:9px;transition:border-color .18s,background .18s,box-shadow .18s;color:var(--deep)}
.booking-service-symbol{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:34px;height:38px;color:#9b70a6}
.booking-service-symbol>.icon{width:29px;height:29px;stroke-width:1.4}
.booking-service-title{font-size:14px;font-weight:600;line-height:1.45;letter-spacing:-.2px}
.booking-service-check{position:absolute;right:9px;top:9px;display:flex;align-items:center;justify-content:center;width:16px;height:16px;border:1px solid #dbcfdf;border-radius:50%;color:transparent;background:white;transition:background .18s,border-color .18s}
/* Center the visible check path, whose SVG bounds sit one unit above the viewBox center. */
.booking-service-check>.icon{display:block;width:12px;height:12px;stroke-width:2.5;transform:translateY(.5px)}
.booking-service-card:hover .booking-service-face{border-color:#a57bb1;background:#f8f2fa}
.booking-service-card>input:checked+.booking-service-face{border-color:var(--purple);background:#f1e8f5;box-shadow:inset 0 0 0 1px var(--purple)}
.booking-service-card>input:checked+.booking-service-face .booking-service-symbol{color:var(--purple)}
.booking-service-card>input:checked+.booking-service-face .booking-service-check{background:var(--purple);border-color:var(--purple);color:white}
.booking-service-card>input:focus-visible+.booking-service-face{outline:2px solid var(--purple);outline-offset:3px}
.booking-service-toggle{display:none;align-items:center;justify-content:space-between;gap:15px;min-height:52px;width:100%;padding:13px 15px;border:1px solid #d8c9dd;border-radius:7px;background:#fffdfb;text-align:left;font-size:15px;line-height:1.5;color:#615268}
.booking-service-toggle>.icon{width:18px;height:18px;transition:transform .2s}
.booking-service-toggle[aria-expanded=true]>.icon{transform:rotate(45deg)}
.booking-service-toggle.has-selection{color:var(--purple);border-color:#a57bb1;background:#f5edf7;font-weight:600}
.booking-service-error,.booking-date-error{display:block;color:#923e40;font-size:13px;line-height:1.6;margin-top:8px}
.booking-date-field{position:relative}
.field .booking-native-date{position:absolute;width:1px;height:1px;min-height:0;opacity:0;pointer-events:none;padding:0;border:0;clip-path:inset(50%)}
.booking-date-trigger{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:50px;padding:12px;border:1px solid #ddd3de;background:#fffdfb;color:#736878;border-radius:5px;font-size:16px;line-height:1.5;text-align:left;transition:border-color .2s,box-shadow .2s}
.booking-date-trigger.has-value{color:#413746}
.booking-date-trigger[aria-expanded=true],.booking-date-trigger:focus-visible{border-color:#9b70aa;box-shadow:0 0 0 3px #5d037e0e}
.booking-date-trigger[aria-invalid=true]{border-color:#b56969}
.booking-date-trigger>.icon{width:21px;height:21px;color:#8a5c96}
.booking-calendar{position:fixed;inset:auto;margin:0;max-height:calc(100dvh - 24px);overflow-y:auto;z-index:25;width:346px;max-width:calc(100vw - 68px);padding:16px;background:#fffdfb;border:1px solid #dac9df;border-radius:12px;box-shadow:0 18px 50px #2d133b29;color:var(--deep)}
.booking-calendar-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 13px;padding:0 0 11px;border-bottom:1px solid #eee4f1}
.booking-calendar-heading>span{font-size:13px;font-weight:600;line-height:1.4;color:#6b4f75}
.booking-calendar-close{display:flex;align-items:center;justify-content:center;width:27px;height:27px;padding:0;border:0;border-radius:50%;background:#f0e8f3;color:#734881;font-family:Arial,sans-serif;font-size:22px;line-height:1}
.booking-calendar-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:15px}
.booking-calendar-nav>button{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:34px;height:34px;min-height:34px;padding:0;background:#f0e8f3;color:var(--purple);border:0;border-radius:6px;font-family:Arial,sans-serif;font-size:27px;line-height:1}
.booking-calendar-nav>button:hover:not(:disabled){background:#e3d3eb}
.booking-calendar-nav>button:disabled{opacity:.3;cursor:default}
.booking-calendar-selects{display:flex;justify-content:center;gap:5px;min-width:0;flex:1}
.field .booking-calendar-selects select{width:auto;min-width:0;min-height:34px;padding:5px 23px 5px 7px;border:0;background-color:transparent;background-position:right 4px center;background-size:13px;color:var(--deep);font-size:15px;font-weight:600;line-height:1.5}
.field .booking-calendar-selects .booking-month{max-width:105px;flex:1}
.field .booking-calendar-selects .booking-year{width:78px;flex-shrink:0}
.booking-calendar-grid{width:100%;border-collapse:separate;border-spacing:3px;table-layout:fixed}
.booking-calendar-grid th{height:25px;padding:0;color:#977f9e;font-size:11px;font-weight:600;line-height:1.5;text-align:center}
.booking-calendar-grid td{padding:0;text-align:center;vertical-align:middle}
.booking-calendar-grid button{position:relative;display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:1;min-height:33px;padding:0;border:1px solid transparent;border-radius:7px;background:transparent;color:#4f3b58;font-size:14px;font-weight:500;line-height:1}
.booking-calendar-grid button:hover:not(:disabled){background:#eee1f3;color:var(--purple)}
.booking-calendar-grid button:disabled{color:#bcb0c1;opacity:.65;cursor:default}
.booking-calendar-grid button[aria-current=date]{border-color:#bc9ac9;color:var(--purple)}
.booking-calendar-grid button.is-selected{background:var(--purple);color:white;border-color:var(--purple);box-shadow:0 3px 8px #5d037e20}
.booking-calendar-grid button.is-selected:hover{background:#48065e;color:white}
.booking-calendar-grid button:focus-visible{outline-offset:1px}
.booking-calendar-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:12px;margin-top:12px;border-top:1px solid #eee4f1}
.booking-calendar-footer>button{background:#f0e8f3;border:0;border-radius:5px;color:var(--purple);padding:7px 12px;font-size:12px;font-weight:600}
.booking-calendar-footer>span{font-size:11px;color:#8b7692}
@media(min-width:1041px){.appointment-grid{grid-template-columns:.85fr 1.15fr;gap:70px}.appointment-card .booking-schedule{grid-template-columns:minmax(0,1fr) minmax(0,.95fr)}}
@media(min-width:761px) and (max-width:1040px){.booking-service-face{min-height:89px;padding:13px 23px 13px 10px;gap:7px}.booking-service-symbol{width:25px}.booking-service-symbol>.icon{width:24px;height:24px}.booking-service-title{font-size:13px}}
@media(max-width:760px){.booking-service-toggle{display:flex}.booking-service-cards{margin-top:11px;gap:10px}.booking-service-face{min-height:96px;flex-direction:column;align-items:flex-start;justify-content:center;gap:7px;padding:13px 16px}.booking-service-symbol{height:28px;width:27px}.booking-service-symbol>.icon{width:26px;height:26px}.booking-service-title{font-size:14px}.booking-service-check{top:11px;right:11px}.booking-calendar{width:100%;max-width:none;padding:14px}.booking-calendar-grid button{min-height:35px}.booking-calendar-grid th{font-size:12px}.field .booking-calendar-selects select{font-size:16px}.appointment-card .booking-service-field{margin-bottom:20px}}
@media(max-width:360px){.booking-service-face{padding:12px;min-height:97px}.booking-service-title{font-size:13px}.booking-calendar{padding:10px}.booking-calendar-nav{gap:4px}.booking-calendar-nav>button{width:29px;height:32px}.booking-calendar-selects{gap:1px}.field .booking-calendar-selects select{font-size:14px;padding-left:2px}.field .booking-calendar-selects .booking-year{width:70px}.booking-calendar-grid{border-spacing:1px}.booking-calendar-grid button{min-height:30px;font-size:13px}.booking-calendar-heading>span{font-size:12px}.booking-calendar-footer{gap:5px}.booking-calendar-footer>span{font-size:10px}}
@media(prefers-reduced-motion:reduce){.booking-service-face,.booking-service-check,.booking-service-toggle>.icon,.booking-date-trigger{transition:none}}
