[hidden]{display:none!important}
.sf-cta[href],button.sf-cta{cursor:pointer;text-decoration:none;font-family:inherit;white-space:normal;max-width:100%;text-align:center}
.sf-cta:focus-visible,.sf-nav-link:focus-visible,.booking-view a:focus-visible,.booking-panel button:focus-visible,.calendar-day:focus-visible{outline:2px solid #8b694b;outline-offset:3px}
.sf-nav-row{position:relative}
.sf-nav-link{position:absolute;inset:0;border-radius:inherit;color:inherit;text-decoration:none}
.sf-nav-row:hover{background:#efe6da}
.booking-view{padding:26px 24px 36px}
.booking-view a,.booking-panel a{color:#66472f}
.booking-back{font-size:12px;text-decoration:none;display:inline-block;margin-bottom:24px}
.booking-heading{font-family:Georgia,'Times New Roman',serif;font-size:clamp(26px,2.5vw,38px);font-weight:400;letter-spacing:-.025em;margin:8px 0 12px;line-height:1.12}
.booking-intro{color:#7b695a;font-size:13px;line-height:1.7;margin:0;max-width:64ch}
.booking-meta{display:flex;flex-wrap:wrap;gap:9px;margin:19px 0 18px}
.booking-meta span{border:1px solid #e4d7c7;background:#f5eee4;padding:8px 11px;border-radius:6px;font-size:11px;color:#715944}
.booking-notice{padding:13px 15px;border-left:3px solid #b69a7c;background:#f3ebdf;font-size:12px;line-height:1.65;color:#6c5340;margin:18px 0}
.calendar-legend{display:flex;flex-wrap:wrap;gap:13px 22px;color:#604b39;font-size:16px;font-weight:600;line-height:1.5;margin:24px 0}
.calendar-legend span{display:flex;align-items:center;gap:9px}
.calendar-legend i{width:16px;height:16px;flex:none;border-radius:3px;display:inline-block;background:#f0ece6;border:1px solid #ded6cd}
.calendar-legend .free{background:#deead7;border-color:#c0d2b6}
.calendar-legend .busy{background:#ba9e81;border-color:#aa8a6b}
.calendar-legend .unknown{background:#fffaf3;border-color:#bfa98e}
.booking-months{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.calendar-month{padding:18px 15px;background:#fffdf9;border:1px solid #e6dacf;border-radius:9px;min-width:0}
.calendar-month h2{font-family:Georgia,'Times New Roman',serif;font-size:21px;font-weight:400;text-transform:capitalize;margin:0 0 16px}
.calendar-week,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.calendar-week span{font-size:10px;text-align:center;color:#9c8977;padding-bottom:10px}
.calendar-day{min-width:0;height:36px;border:1px solid #d7c6b2;border-radius:5px;background:#fffaf3;color:#5e4430;font:inherit;font-size:12px;cursor:pointer;position:relative}
.calendar-day.is-free{background:#deead7;border-color:#c0d2b6;color:#39513c}
.calendar-day.is-busy{background:#ba9e81;border-color:#ba9e81;color:#fff}
.calendar-day:disabled{background:#f0ece6;border-color:#f0ece6;color:#b4a89a;cursor:default}
.calendar-day.is-busy:disabled{background:#ba9e81;border-color:#ba9e81;color:#fff}
.calendar-day:not(:disabled):hover{border-color:#795d43;box-shadow:inset 0 0 0 1px #795d43}
.calendar-day[aria-pressed=true]{background:#5b402d;color:#fffaf3;border-color:#5b402d;box-shadow:0 0 0 2px #dfcbb5}
.calendar-day.is-today:after{content:'';position:absolute;width:3px;height:3px;background:currentColor;border-radius:50%;bottom:3px;left:calc(50% - 1.5px)}
.booking-selection{font-size:13px;color:#654b36;margin:18px 0 0;min-height:20px;line-height:1.6}
.booking-rules{border-top:1px solid #e4d7c7;margin-top:25px;padding-top:18px;color:#7b695a;font-size:12px;line-height:1.7}
.booking-rules summary{cursor:pointer;color:#58402d}
.booking-rules p{margin:8px 0}
.booking-panel{flex:none;border-bottom:1px solid #dbcab6;background:#f6efe5;min-width:0;max-height:48%;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;container-type:inline-size}
.booking-panel summary{cursor:pointer;padding:12px 14px;font-size:14px;font-weight:600;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:8px;color:#513925}
.booking-panel summary::-webkit-details-marker{display:none}
.booking-panel summary:after{content:'+';font-size:19px;font-weight:400}
.booking-panel[open] summary:after{content:'−'}
.booking-panel summary small{display:block;font-size:10px;color:#8c735d;font-weight:400;margin-top:4px;line-height:1.4}
.booking-panel-body{padding:0 14px 15px;min-width:0}
.booking-panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 12px}
.booking-panel-head strong{font-size:12px;font-weight:500}
.booking-text-button{border:0;background:none;padding:3px 0;color:#795536;text-decoration:underline;font-size:11px;cursor:pointer}
.booking-steps{display:flex;gap:5px;margin:0 0 13px}
.booking-step{flex:1;min-width:0;border:0;border-bottom:2px solid #d7c6b1;background:transparent;text-align:left;padding:6px 2px;color:#95816f;font-size:9px;line-height:1.4;cursor:pointer;overflow-wrap:anywhere}
.booking-step[aria-current=step]{border-color:#64452d;color:#4b321f;font-weight:bold}
.booking-step:disabled{cursor:default;opacity:.55}
.booking-step-title{font-size:13px;font-weight:600;margin:7px 0 12px}
.booking-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.booking-option{min-width:0;padding:12px 7px;border:1px solid #d6c2ab;border-radius:6px;background:#fffcf7;color:#5b412e;font-size:12px;line-height:1.45;cursor:pointer;overflow-wrap:anywhere}
.booking-option small{display:block;font-size:10px;color:#957c65;margin-top:4px}
.booking-option[aria-pressed=true]{background:#62462f;color:#fffaf3;border-color:#62462f;box-shadow:0 0 0 2px #e0cbb3}
.booking-option[aria-pressed=true] small{color:#e6d7c8}
.booking-option:disabled{cursor:default;background:#d9c6b0;color:#947b64;opacity:.6}
.booking-next{display:block;width:100%;min-height:35px;padding:9px 12px;margin-top:13px;border:1px solid #5a3d29;border-radius:5px;background:#5a3d29;color:#fffaf3;cursor:pointer;font-size:11px;line-height:1.4}
.booking-next:disabled{opacity:.5;cursor:default}
.booking-note{font-size:10px;line-height:1.65;color:#876f5a;margin:10px 0 0}
.booking-panel input{display:block;width:100%;min-width:0;font:inherit;font-size:12px;padding:9px 10px;margin-top:5px;border:1px solid #d8c4ac;border-radius:5px;background:#fffcf7;color:#4f3826;box-sizing:border-box}
.booking-field{display:block;font-size:11px;color:#775c43;margin:11px 0}
.booking-review{font-size:12px;line-height:1.7;padding:10px 12px;background:#ebe0d2;border-radius:6px;margin-bottom:12px}
.booking-review strong{display:block;color:#513722}
.booking-copy{background:#fffcf7;color:#60442c}
.booking-copy-status{font-size:11px;line-height:1.6;color:#765b43}
.booking-draft-text{display:block;white-space:pre-wrap;font:inherit;font-size:11px;background:#fffcf7;padding:10px;border:1px solid #d8c4ac;border-radius:5px;overflow-wrap:anywhere;margin-top:10px}
.chat-dock.has-booking .chat-frame{min-height:220px}
@media(min-width:961px){.is-chat-wide .booking-panel{max-height:40%;}.is-chat-wide .booking-panel-body{max-width:680px}.is-chat-wide .booking-panel summary{justify-content:flex-start;gap:18px}}
@container sf-storefront (max-width:640px){.booking-months{grid-template-columns:1fr}.booking-view{padding:22px 16px}.calendar-day{height:38px}}
@media(max-width:960px){.booking-view{padding:20px 16px 35px}.booking-months{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-heading{font-size:30px}.booking-panel{max-height:45%}.chat-dock.has-booking .chat-frame{min-height:140px}.booking-meta{gap:6px}.booking-meta span{padding:7px 9px}.booking-panel summary{padding:9px 12px}.app-shell:not(.is-chat-wide) .booking-panel[open]{max-height:48px}.app-shell:not(.is-chat-wide) .booking-panel-body{display:none}.sf-mobile-menu{background:none;border:0;padding:0;color:inherit;cursor:pointer}.app-shell.menu-open .salon-nav{display:flex!important;position:fixed;inset:0 auto 0 0;width:250px;z-index:80;box-shadow:10px 0 40px #3d2a1933}.mobile-menu-shade{position:fixed;inset:0;z-index:70;background:#30251f55;border:0;width:100%}}
@media(max-width:540px){.booking-months{grid-template-columns:1fr}.calendar-month{padding:18px}.calendar-day{height:38px}.booking-view .booking-heading{font-size:29px}}
/* Direct, reversible choices: no gated wizard or Continue button. */
.booking-panel summary small{line-height:1.35}
.booking-choice-section+.booking-choice-section{margin-top:14px;padding-top:13px;border-top:1px solid #dfcdb9}
.booking-panel-body{padding-top:2px}
.booking-panel-head{margin-bottom:13px}
.booking-step-title{font-size:12px;margin:0 0 9px}
.booking-option{padding:9px 6px;min-height:44px}
.booking-option small{margin-top:2px;font-size:10px}
.booking-break{margin-top:7px;text-align:center;color:#8c735b;font-size:10px}
.booking-empty{font-size:11px;line-height:1.6;color:#795e46;margin:8px 0 0;background:#ece0d1;border-radius:5px;padding:10px}
.booking-note{font-size:11px}
.booking-copy{background:#5a3d29;color:#fffaf3}
@media(max-width:960px){.app-shell:not(.is-chat-wide) .booking-panel[open]{max-height:112px}.app-shell:not(.is-chat-wide) .booking-panel-body{display:block}.app-shell:not(.is-chat-wide) .booking-panel-head{display:none}}
/* Booking owns the right panel. The existing iframe stays mounted and retains
   its session; it is visible on the storefront or while its real login is open. */
.is-booking-view:not(.booking-account-open) .chat-frame{display:none}
.is-booking-view.booking-account-open .booking-panel{display:none}
.app-shell.is-booking-view .booking-panel{flex:1 1 auto;max-height:none!important;min-height:0}
.booking-panel summary{position:sticky;top:0;z-index:1;background:#f6efe5;border-bottom:1px solid #e4d7c7;margin-bottom:12px}
.booking-panel summary:after{display:none}
.booking-hair-link{display:inline-block;font-size:12px;color:#795536;text-underline-offset:3px;margin:0 0 15px;line-height:1.6}
.booking-date-prompt{width:100%;display:block;border:1px solid #cbb194;border-radius:7px;background:#eaddcc;color:#543a26;text-align:left;padding:11px 12px;cursor:pointer;margin:0 0 14px}
.booking-date-prompt strong{display:block;font-size:13px}
.booking-date-prompt span{display:block;font-size:11px;line-height:1.5;margin-top:4px}
.booking-choice-section .booking-date-prompt{margin:10px 0 0}
.booking-review>div{margin-top:6px;color:#7b624d;font-size:11px}
.booking-calendar-filter{font-size:12px;line-height:1.65;color:#6c5846;margin:-8px 0 18px}
.calendar-day.has-appointments:before{content:'';position:absolute;top:4px;right:4px;width:5px;height:5px;background:#97734e;border-radius:50%}
.calendar-legend .partial{width:10px;height:10px;border:0;background:#97734e;border-radius:50%;margin:0 3px}
.calendar-day[aria-pressed=true]:disabled{box-shadow:0 0 0 2px #62462f}
.booking-available{font-size:11px;line-height:1.6;color:#4c6345;background:#e7efdf;border:1px solid #cedcc3;border-radius:5px;padding:9px 10px;margin:0 0 14px}
.booking-available strong,.booking-available span{display:block}
.booking-available span+span{margin-top:4px}
.booking-availability-empty{font-size:11px;line-height:1.6;color:#795d45;margin:0 0 14px}
.booking-panel summary .booking-summary-hair{margin:0 0 0 auto;font-size:11px;font-weight:400;flex:none}
@media(max-width:540px){
  .booking-view .booking-back{margin-bottom:16px}
  .calendar-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px;font-size:14px;line-height:1.4;margin:18px 0}
  .calendar-legend span{min-width:0;min-height:38px;gap:8px;align-items:center}
  .calendar-legend i{width:14px;height:14px}
  .calendar-legend .partial{width:8px;height:8px;margin:0 3px}
  .booking-calendar-filter{font-size:12px;line-height:1.5;margin:0 0 16px}
}

/* On mobile, two calendar rows and the form share the screen without overlap. */
.booking-mobile-calendar{display:none}
@media(max-width:960px){
  .app-shell.is-booking-view{grid-template-rows:auto auto minmax(0,1fr);height:var(--vv-h)}
  .app-shell.is-booking-view .storefront{grid-row:2;padding-bottom:0;scroll-padding-bottom:0;overflow:visible}
  .app-shell.is-booking-view .booking-view{padding:8px 12px 12px}
  .app-shell.is-booking-view .booking-view>:not(.booking-mobile-calendar){display:none}
  .booking-mobile-calendar{display:block;position:relative}
  .mobile-calendar-controls{display:grid;grid-template-columns:36px minmax(0,1fr) 36px 48px;gap:6px;align-items:center;margin-bottom:7px}
  .mobile-calendar-controls button,.mobile-calendar-controls select{height:34px;min-width:0;border:1px solid #dac8b4;border-radius:6px;background:#fffcf7;color:#5b412e;font:inherit;cursor:pointer}
  .mobile-calendar-controls button{font-size:25px;line-height:1;padding:0}
  .mobile-calendar-controls button:disabled{opacity:.35;cursor:default}
  .mobile-calendar-controls select{font-size:14px;font-weight:600;padding:0 6px;text-transform:capitalize;width:100%}
  .mobile-calendar-controls .calendar-colors-toggle{font-size:11px;text-decoration:underline;text-underline-offset:3px;border-color:transparent;background:transparent}
  .mobile-calendar-controls :focus-visible{outline:2px solid #8b694b;outline-offset:2px}
  .booking-mobile-calendar .calendar-week{gap:5px}
  .booking-mobile-calendar .calendar-week span{font-size:10px;padding-bottom:5px}
  .booking-mobile-calendar .calendar-days{grid-template-rows:repeat(2,38px);gap:5px}
  .booking-mobile-calendar .calendar-day{height:38px;font-size:13px}
  .mobile-calendar-colors{position:absolute;right:0;left:0;top:40px;z-index:50;background:#fffcf7;border:1px solid #d7c6b2;border-radius:8px;padding:10px 12px;box-shadow:0 8px 22px #49352322}
  .mobile-calendar-colors .calendar-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;font-size:12px;line-height:1.4;margin:0}
  .mobile-calendar-colors .calendar-legend span{min-height:28px;gap:7px}
  .mobile-calendar-colors .calendar-legend i{width:12px;height:12px}
  .mobile-calendar-colors .calendar-legend .partial{width:8px;height:8px;margin:0 2px}
  .app-shell.is-booking-view .chat-dock{position:relative;grid-column:1;grid-row:3;top:auto;left:auto;right:auto;height:auto;max-height:none;min-height:0;border-radius:12px 12px 0 0;box-shadow:0 -3px 12px #3d2a1908}
  .app-shell.is-booking-view .chat-toolbar{min-height:42px;padding:5px 12px}
  .app-shell.is-booking-view .chat-toolbar:before{display:none}
  .app-shell.is-booking-view .chat-label small{display:none}
  .app-shell.is-booking-view .booking-panel-head{display:flex}
  .app-shell.is-booking-view .booking-panel summary{padding:10px 14px}
  .app-shell.is-booking-view .booking-option{font-size:14px;padding:10px 6px}
  .app-shell.is-booking-view .booking-option small{font-size:11px}
  .app-shell.is-booking-view .booking-step-title{font-size:13px}
  .app-shell.is-booking-view .booking-panel input{font-size:16px}
  .app-shell.is-booking-view.is-chat-wide,.app-shell.is-booking-view.keyboard-open{grid-template-rows:auto 0 minmax(0,1fr)}
  .app-shell.is-booking-view.is-chat-wide .storefront,.app-shell.is-booking-view.keyboard-open .storefront{visibility:hidden;overflow:hidden}
}
