/* Booking calendar: all time choices are ordinary page content. */
.booking-picker{position:relative;border-radius:23px;padding:32px;overflow:visible;max-height:none}
.booking-picker h2,.booking-picker>h3{font-size:26px;letter-spacing:-.65px;margin-bottom:10px}
.booking-subtitle{color:var(--muted);margin:0 0 24px;line-height:1.6}
.booking-calendar{position:relative;border-bottom:1px solid var(--line);padding-bottom:16px}
.booking-calendar-top,.booking-month-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:0 0 15px}
.booking-month-toggle{display:flex;align-items:center;gap:8px;background:transparent;color:var(--navy);font-size:18px;font-weight:700;letter-spacing:-.2px;padding:8px 0;border:0;border-radius:6px;min-height:44px}
.booking-week-arrows{display:flex;gap:7px}
.booking-arrow{display:grid;place-items:center;width:40px;height:40px;padding:0;background:white;color:#526178;border:1px solid var(--line);border-radius:10px}
.booking-week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.booking-day{min-width:0;min-height:86px;border:0;background:transparent;color:var(--navy);border-radius:14px;padding:8px 0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:10px}
.booking-day span{font-size:13px;font-weight:600;color:#667386}
.booking-day b{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;font-size:17px;font-weight:650}
.booking-day:hover:not(:disabled){background:#f1f6ff;filter:none}
.booking-day.selected b{background:var(--blue);color:white;box-shadow:0 4px 14px #3170d434}
.booking-day.selected span{color:var(--blue);font-weight:750}
.booking-day:disabled{opacity:.3}
.booking-selected-date{font-size:13px;color:var(--muted);text-align:center;margin:12px 0 0}
.booking-month-panel{position:absolute;z-index:10;top:54px;left:0;width:min(350px,100%);border:1px solid #dfe6ee;background:white;border-radius:17px;box-shadow:0 25px 65px #182c4d26;padding:16px}
.booking-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
.booking-month-heading{font-size:14px}
.booking-month-heading .booking-arrow{width:36px;height:36px}
.booking-weekday{font-size:11px;text-align:center;color:var(--muted);padding:8px 0}
.booking-month-day{height:36px;padding:0;border:0;border-radius:8px;background:transparent;color:var(--navy);font-size:13px}
.booking-month-day.selected{background:var(--blue);color:white}
.booking-month-day:disabled{opacity:.3}
.booking-picker .booking-duration{font-size:14px;font-weight:550;color:#52617a;margin:22px 0 14px}
.booking-dayparts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:#f0f3f8;border-radius:16px;gap:4px;padding:5px}
.booking-daypart{padding:13px 5px;min-height:48px;border:0;border-radius:12px;color:#526178;background:transparent;display:flex;justify-content:center;align-items:center;gap:7px;font-weight:600;white-space:nowrap;font-size:14px}
.booking-daypart.active{background:var(--blue);color:white;box-shadow:0 3px 10px #1651b92e}
.booking-daypart:disabled{opacity:.4}
.booking-picker .slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;margin:19px 0 24px;min-height:110px;height:auto;max-height:none;overflow:visible;overflow-y:visible;overscroll-behavior:auto;align-content:start}
.booking-picker .slots button[data-start]{min-height:56px;height:auto;border:1.5px solid #d6dfeb;border-radius:13px;background:white;color:#30435d;font-weight:660;font-size:15px;padding:12px 6px;letter-spacing:.2px;scroll-margin-bottom:112px}
.booking-picker .slots button[data-start]:hover{border-color:var(--blue);background:#f5f9ff;filter:none}
.booking-picker .slots button[aria-pressed=true]{border-color:var(--blue);background:#ecf4ff;color:#004bcf;box-shadow:inset 0 0 0 .5px var(--blue)}
.booking-empty{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;min-height:100px;text-align:center;background:#f8fafc;border:1px dashed var(--line);border-radius:13px;padding:20px;margin:0;font-size:14px}
.booking-empty.error{background:#fff0ee;border-color:#f4c2bc}
.booking-note{display:flex;gap:14px;padding:18px;background:#f6f8fb;border:1px solid #e8edf3;border-radius:16px;color:#71849d}
.booking-note>svg{flex-shrink:0;margin-top:2px}
.booking-note strong{display:block;font-size:14px;margin-bottom:7px;font-weight:740;color:var(--navy)}
.booking-note p{margin:0;line-height:1.55;color:#526077;font-size:13px}
.booking-confirmation-note{font-size:12px;line-height:1.6;color:var(--muted);margin:16px 0 0}
.booking-summary{display:flex;flex-direction:column;gap:10px;background:#f4f7fb;border:1px solid #e8edf3;border-radius:13px;padding:16px;margin:16px 0;color:#4e5c70;font-size:13px;line-height:1.5}
.booking-summary-label{font-size:11px;color:var(--muted);font-weight:750;letter-spacing:.6px}
.booking-summary strong{color:var(--navy);font-size:15px}
.booking-summary-time{padding-top:9px;border-top:1px solid #e0e7ef;font-weight:600;color:#243a5c}
body.booking-step #page-title{font-size:38px;letter-spacing:-1.1px}
body.booking-step .checkout-page{max-width:1212px}
body.booking-step .layout{grid-template-columns:minmax(0,1fr) 304px;gap:24px}
body.booking-step .cart{border-radius:23px}
body.booking-step .steps{gap:10px;flex-wrap:wrap}
body.booking-step .steps li{font-size:12px;border:1px solid var(--line);border-radius:30px;padding:8px 12px;gap:7px;background:white}
body.booking-step .steps b{width:22px;height:22px;min-width:22px;font-size:11px}
body.booking-step .steps .active{background:#ebf3ff;border-color:#98baf4}
.booking-picker button:focus-visible{outline:3px solid #83b5ff;outline-offset:3px}
[hidden]{display:none!important}
@media(max-width:950px){body.booking-step .layout{grid-template-columns:minmax(0,1fr) 280px;gap:20px}.booking-picker{padding:24px}}
@media(max-width:760px){body.booking-step .layout{grid-template-columns:minmax(0,1fr);gap:22px}body.booking-step .cart{position:static}body.booking-step #page-title{font-size:32px}}
@media(max-width:560px){
  body.booking-step .checkout-page{padding:26px 17px 112px}
  body.booking-step .intro{margin-bottom:22px}
  body.booking-step .intro p:not(.eyebrow){font-size:15px}
  body.booking-step .steps{gap:7px}
  body.booking-step .steps li{font-size:11px;padding:7px 9px}
  body.booking-step .steps b{width:20px;height:20px;min-width:20px}
  .booking-picker{padding:23px 18px;border-radius:19px;height:auto;max-height:none;overflow:visible}
  .booking-picker h2,.booking-picker>h3{font-size:24px}
  .booking-subtitle{font-size:14px;margin-bottom:19px}
  .booking-week-grid{gap:3px}
  .booking-day{min-height:80px;gap:9px}
  .booking-day span{font-size:11px}
  .booking-day b{width:34px;height:34px;font-size:16px}
  .booking-daypart{font-size:12px;gap:5px;padding:12px 2px}
  .booking-daypart svg{width:16px;height:16px}
  .booking-month-toggle{font-size:17px}
  .booking-picker .slots{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(56px,auto);height:auto;max-height:none;overflow:visible;align-content:initial;gap:10px}
  .booking-picker .actions{position:fixed;z-index:40;bottom:0;left:0;right:0;margin:0;padding:13px 17px calc(13px + env(safe-area-inset-bottom));background:#fffffffa;border-top:1px solid #e3e8f0;box-shadow:0 -10px 35px #1f345511;gap:12px;backdrop-filter:blur(14px)}
  .booking-picker .actions button{flex:1;min-height:53px;border-radius:12px;font-size:14px}
  .booking-picker #appointment-next{flex:1.15}
  html{scroll-padding-bottom:112px}
  body.booking-step .dh-footer{padding-bottom:104px}
}
@media(max-width:360px){body.booking-step .checkout-page{padding-left:12px;padding-right:12px}.booking-picker{padding:20px 12px}.booking-week-grid{gap:1px}.booking-day b{width:32px;height:32px}.booking-daypart{font-size:11px;gap:3px}.booking-daypart svg{width:14px;height:14px}.booking-arrow{width:36px;height:40px}}
@media(prefers-reduced-motion:reduce){body.booking-step{scroll-behavior:auto}.booking-picker *{scroll-behavior:auto!important}}
