/* Customer booking: editorial salon identity and a clear, accessible reservation flow. */
.public-enhanced{padding:0 40px 32px;background:var(--bg);min-height:100dvh}
.public-enhanced .booking-brand{max-width:1280px;min-height:96px;padding:22px 0;border-bottom:1px solid var(--border);margin:auto;gap:22px;letter-spacing:0}
.public-salon-brand{display:flex;gap:12px;align-items:center;min-width:0;color:var(--text)}
.public-masthead{min-width:0}
.public-salon-brand:hover{color:var(--text)}.public-salon-brand strong{display:block;font-size:18px;font-weight:650;letter-spacing:-.04em;line-height:1.35}.public-salon-brand small{display:block;font-size:8px;font-weight:600;letter-spacing:.2em;margin-top:4px;color:var(--muted)}
.public-brand-symbol{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--border-strong);border-radius:50%;flex:none;color:var(--primary-text)}.public-brand-symbol svg{width:22px;height:22px}
.public-header-note{display:flex;align-items:center;gap:7px;margin-left:auto;color:var(--muted);font-size:11px;font-weight:400}.public-header-note svg{width:14px;height:14px}
.public-enhanced .booking-brand>.btn{color:var(--text);border:1px solid var(--border);border-radius:8px;background:var(--surface);padding:10px 13px;font-size:10px;white-space:nowrap;flex:none}
.public-enhanced .booking-layout{grid-template-columns:minmax(0,.94fr) minmax(0,1.06fr);gap:clamp(35px,6vw,96px);max-width:1220px;margin:56px auto 0}
.public-enhanced .booking-intro{position:sticky;top:28px;align-self:start;padding-top:14px;min-width:0}
.public-enhanced .booking-card{padding:36px;min-width:0;border:1px solid var(--border);border-radius:var(--theme-radius);background:var(--surface);box-shadow:0 18px 65px #23251905;scroll-margin-top:24px}
.public-card-kicker{display:flex;align-items:center;justify-content:space-between;gap:12px}.public-card-kicker .eyebrow{font-size:9px;font-weight:650;letter-spacing:.14em}.public-card-kicker>span:last-child{display:flex;align-items:center;gap:5px;font-size:9px;color:var(--muted)}.public-card-kicker svg{width:12px;height:12px;color:var(--primary-text)}
.public-enhanced .booking-card>h2{font-size:32px;letter-spacing:-.045em;font-weight:600;margin:16px 0 8px;line-height:1.2}.public-enhanced .booking-card>.panel-subtitle{font-size:12px;line-height:1.8;color:var(--muted);margin:0 0 23px}
.public-progress{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 -36px;padding:18px 36px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--surface-soft)}.public-progress-step{display:flex;align-items:center;gap:7px;font-size:10px;color:var(--muted);white-space:nowrap}.public-progress-step>span{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;border:1px solid var(--border-strong);font-size:8px}.public-progress-step.complete{color:var(--primary-text)}.public-progress-step.complete>span{color:var(--booking-ink);background:var(--booking-accent);border-color:var(--booking-accent)}.public-progress-step.current{color:var(--text);font-weight:650}.public-progress-step.current>span{border-color:var(--booking-accent)}.public-progress-line{flex:1;height:1px;background:var(--border-strong);max-width:24px}
.public-section{padding:27px 0;border-bottom:1px solid var(--border);scroll-margin-top:20px}.public-section-title{display:flex;gap:11px;align-items:center;margin-bottom:20px}.public-section-title>span{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--primary-soft);font-size:10px;font-weight:650;color:var(--primary-text);flex:none}.public-section-title h3{font-size:15px;font-weight:650;letter-spacing:-.025em;margin:0 0 5px}.public-section-title p{font-size:11px;line-height:1.6;margin:0;color:var(--muted)}
.public-service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:20px}.public-service{position:relative;text-align:left;padding:16px 14px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);border-radius:calc(var(--theme-radius)*.5);cursor:pointer;min-width:0;transition:border-color .18s,background .18s,transform .18s}.public-service:hover{transform:translateY(-2px);border-color:var(--booking-accent)}.public-service>span{display:flex;gap:9px;align-items:center;padding-right:15px}.public-service strong{font-size:12px;line-height:1.5}.public-service>span svg{width:17px;height:17px;flex:none;color:var(--primary-text)}.public-service small{display:flex;gap:5px;align-items:center;font-size:10px;margin:11px 0 10px;color:var(--muted)}.public-service small svg{width:12px;height:12px}.public-service b{font-size:14px;font-weight:650}.public-service>svg{position:absolute;right:10px;top:16px;width:14px;height:14px;color:var(--primary-text)}.public-service.selected{border-color:var(--primary-text);box-shadow:inset 0 0 0 1px var(--primary-text);background:var(--primary-soft)}
.public-enhanced .field label{color:var(--text);font-size:11px;font-weight:600;margin-bottom:8px}.public-enhanced .field :is(input,select,textarea){background:var(--surface);color:var(--text);border-color:var(--border-strong);border-radius:8px;font-size:12px;min-height:44px}.public-enhanced .field textarea{resize:vertical}.public-enhanced :is(input,textarea)::placeholder{color:var(--muted);opacity:1}.public-enhanced .field input[type=date]{color-scheme:inherit;min-width:0}
.public-enhanced :is(button,a,input,select,textarea):focus-visible{outline:3px solid var(--primary-text);outline-offset:3px}.public-enhanced .field :is(input,select,textarea):focus{border-color:var(--booking-accent);box-shadow:0 0 0 3px var(--primary-soft)}
.public-date-toolbar{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:16px}.public-date-toolbar>.field{max-width:240px;flex:1;margin:0}.public-date-navigation{display:flex;gap:7px}.public-date-navigation button{border:1px solid var(--border-strong);font-size:25px;background:var(--surface);color:var(--text);min-width:40px;min-height:42px;border-radius:8px}
.public-date-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-bottom:22px}.public-date{border:1px solid var(--border-strong);background:var(--surface);color:var(--text);padding:10px 2px;border-radius:8px;cursor:pointer;text-align:center;transition:background .18s,border-color .18s}.public-date:hover{border-color:var(--booking-accent)}.public-date small,.public-date span{display:block;font-size:9px}.public-date strong{display:block;font-size:21px;line-height:1.4;margin:4px 0;font-weight:600;font-variant-numeric:tabular-nums}.public-date.selected{background:var(--booking-accent);border-color:var(--primary-text);color:var(--booking-ink)}
.public-slot-group h4{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:650;margin:20px 0 11px;letter-spacing:0}.public-slot-group h4>svg{width:14px;height:14px;color:var(--primary-text)}.public-slot-group h4 small{font-size:9px;color:var(--muted);font-weight:400;margin-left:auto}.public-enhanced .slots-grid{grid-template-columns:repeat(auto-fill,minmax(66px,1fr));gap:7px;margin-top:0}.public-enhanced .slot{min-height:44px;border-radius:7px;font-size:11px;font-weight:550;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font-variant-numeric:tabular-nums}.public-enhanced .slot:hover{border-color:var(--booking-accent);background:var(--primary-soft)}.public-enhanced .slot.selected{background:var(--booking-accent);border-color:var(--primary-text);color:var(--booking-ink);font-weight:700}
.public-empty{padding:26px;text-align:center;background:var(--surface-soft);border:1px dashed var(--border-strong);border-radius:12px}.public-empty>svg{display:block;margin:0 auto 12px;width:26px;height:26px;color:var(--primary-text)}.public-empty strong{font-size:13px}.public-empty p{font-size:12px;line-height:1.8;color:var(--muted)}.public-enhanced .btn.secondary{color:var(--text);background:var(--surface);border-color:var(--border-strong)}
.public-live-status{min-height:18px;font-size:11px;line-height:1.7;margin:14px 0 0;color:var(--muted)}.public-enhanced .booking-summary{display:flex;align-items:start;justify-content:space-between;gap:18px;margin:25px 0 0;padding:20px;background:var(--surface-soft);border:1px solid var(--border);border-radius:12px}.public-enhanced .booking-summary>div{display:grid;gap:7px;min-width:0}.public-enhanced .booking-summary small{font-size:8px;letter-spacing:.13em;font-weight:650;color:var(--muted)}.public-enhanced .booking-summary>div strong{font-size:14px;text-align:left;color:var(--text)}.public-enhanced .booking-summary span{font-size:11px;line-height:1.6;color:var(--muted)}.public-enhanced .booking-summary>strong{font-size:18px;max-width:42%;text-align:right;flex:none;color:var(--text);letter-spacing:-.03em}.public-confirm-note{display:flex;gap:8px;font-size:10px;line-height:1.8;color:var(--muted);margin:16px 0}.public-confirm-note svg{flex:none;width:14px;height:14px;margin-top:2px;color:var(--primary-text)}.public-enhanced #public-form>button[type=submit]{width:100%;min-height:52px;border-radius:10px;font-size:13px;margin-top:12px;justify-content:space-between;padding:14px 19px}.public-enhanced .field-error{color:#b34745;font-size:12px;line-height:1.6}
.public-enhanced .booking-footer{max-width:1280px;display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--border);padding-top:22px;margin:40px auto 0;text-align:left;font-size:10px;color:var(--muted)}.booking-footer strong{color:var(--text);font-weight:600}
.public-success-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:20px 0 12px}.public-enhanced .booking-success{padding:22px 0}.public-enhanced .booking-success>.btn{margin-top:20px}.public-enhanced .booking-success>small{display:block;color:var(--muted)}.public-enhanced .booking-success h2{font-size:29px}.public-enhanced .booking-success .success-mark{background:var(--primary-soft);color:var(--primary-text)}.public-enhanced .badge.pending{color:var(--text);background:var(--surface-soft);border:1px solid var(--border)}
.public-enhanced [hidden]{display:none!important}.public-enhanced button:disabled{cursor:not-allowed;opacity:.5}.public-enhanced .booking-card :is(input,select,textarea){min-width:0}.public-enhanced .booking-card .form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.public-enhanced .public-section .form-grid{margin-bottom:18px}
[data-booking-theme=heritage] .booking-card{border-color:var(--border-strong);box-shadow:0 0 0 5px var(--bg),0 0 0 6px var(--border)}[data-booking-theme=heritage] .booking-card>h2{font-family:Georgia,serif;font-weight:400;font-size:34px}[data-booking-theme=heritage] :is(.public-service,.public-date,.slot,#public-form>button[type=submit]){border-radius:3px}
[data-booking-theme=noir] .booking-card>h2{font-family:Arial,sans-serif;font-weight:800;font-size:34px;letter-spacing:-.06em}[data-booking-theme=noir] .public-progress{background:var(--bg)}[data-booking-theme=noir] .public-service.selected{background:color-mix(in srgb,var(--booking-accent) 12%,var(--surface))}
[data-booking-theme=botanical] :is(.public-date,.public-section-title>span){border-radius:14px}[data-booking-theme=botanical] .public-service{border-radius:16px}[data-booking-theme=botanical] #public-form>button[type=submit]{border-radius:50px}
[data-booking-theme=coastal] .booking-card{border-top:4px solid var(--booking-accent)}[data-booking-theme=coastal] .public-brand-symbol{border-radius:11px;background:var(--surface)}
[data-booking-theme=minimal] :is(.public-progress,.public-service,.public-date,.slot,.booking-summary,#public-form>button[type=submit],.field input,.field select,.field textarea){border-radius:2px}[data-booking-theme=minimal] .booking-card>h2{font-family:Arial,sans-serif;font-weight:750;letter-spacing:-.06em}[data-booking-theme=minimal] .public-brand-symbol{border-radius:0;border-color:var(--text)}
:is([data-booking-theme=heritage],[data-booking-theme=noir]) .field-error{color:#ffa6a0}
@media(max-width:1100px){.public-enhanced{padding:0 28px 28px}.public-enhanced .booking-layout{gap:36px;margin-top:38px}.public-enhanced .booking-card{padding:28px}.public-progress{margin:0 -28px;padding:16px 28px}.public-enhanced .booking-intro h1{font-size:48px}.public-header-note{display:none}.public-enhanced .booking-brand>.btn{margin-left:auto}.theme-salon-status{display:none}}
@media(max-width:850px) and (min-width:761px){.public-enhanced .booking-layout{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:25px}.public-enhanced .booking-card{padding:24px}.public-progress{margin:0 -24px;padding:16px 24px}.public-enhanced .booking-intro h1{font-size:39px}.public-service strong{font-size:11px}.public-service>span svg{display:none}.public-card-kicker>span:last-child{display:none}.public-progress-step{font-size:9px;gap:4px}.public-progress-line{max-width:12px}}
@media(max-width:760px){.public-enhanced{padding:0 22px 26px}.public-enhanced .booking-brand{min-height:82px;padding:18px 0;gap:10px}.public-enhanced .booking-layout{grid-template-columns:1fr;gap:30px;margin-top:30px;max-width:620px}.public-enhanced .booking-intro{position:static;padding-top:0}.public-enhanced .booking-intro h1{font-size:42px;margin:15px 0 17px}.public-enhanced .booking-card{padding:28px}.public-progress{margin:0 -28px;padding:15px 28px}.public-enhanced .booking-footer{flex-direction:column;text-align:center;gap:6px;margin-top:30px;padding-top:20px}.public-enhanced .theme-salon-status{display:flex}.public-enhanced .booking-salon{margin:20px 0 15px}.public-enhanced .salon-contact{margin-bottom:0}.public-enhanced .theme-intro-link{display:none}.public-enhanced .booking-card :is(input,select,textarea){font-size:16px}.public-salon-brand strong{font-size:17px}}
@media(max-width:480px){.public-enhanced{padding:0 16px 24px}.public-enhanced .booking-brand{min-height:76px;gap:10px}.public-salon-brand{gap:8px}.public-brand-symbol{width:34px;height:34px}.public-brand-symbol svg{width:18px;height:18px}.public-salon-brand strong{font-size:15px}.public-salon-brand small{font-size:7px;letter-spacing:.13em}.public-enhanced .booking-brand>.btn{font-size:9px;padding:9px 10px;gap:5px}.public-enhanced .booking-brand>.btn svg{width:12px;height:12px}.public-enhanced .booking-layout{margin-top:26px;gap:26px}.public-enhanced .booking-intro h1{font-size:38px;line-height:1.08}.theme-intro-copy>.eyebrow{font-size:8px}.public-enhanced .theme-visual :is(.theme-cover,.salon-cover){aspect-ratio:1.9}.theme-visual-caption{padding:12px;font-size:9px;gap:8px}.theme-visual-caption>span:first-child{font-size:8px}.theme-visual-seal{width:52px;height:52px;top:12px;right:12px}.theme-visual-seal small{font-size:6px}.theme-salon-status{max-width:88px;white-space:normal;line-height:1.6}.public-enhanced .booking-card{padding:24px 18px}.public-progress{margin:0 -18px;padding:14px 18px;gap:5px}.public-progress-step{font-size:9px;gap:5px}.public-progress-line{max-width:16px}.public-card-kicker>span:last-child{font-size:8px}.public-enhanced .booking-card>h2{font-size:28px}.public-service-grid{gap:8px}.public-service{padding:14px 10px}.public-service>span{gap:6px}.public-service>span svg{width:14px;height:14px}.public-service strong{font-size:11px}.public-service b{font-size:13px}.public-date-strip{gap:4px}.public-date strong{font-size:19px}.public-date small,.public-date span{font-size:8px}.public-date-navigation button{min-width:36px}.public-section-title h3{font-size:14px}.public-enhanced .booking-summary{padding:16px;gap:10px}.public-enhanced .booking-summary>strong{font-size:15px}.public-enhanced .booking-card .form-grid{grid-template-columns:1fr;gap:16px}.public-section{padding:24px 0}.public-enhanced .public-section .form-grid .field{margin-bottom:0}.public-enhanced .public-section .form-grid{margin-bottom:16px}.public-enhanced .booking-salon h3{font-size:13px}}
.public-notification-consent { margin: 18px 0; padding: 16px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface); }
.public-notification-consent .connections-check { display: flex; align-items: flex-start; gap: 10px; line-height: 1.6; font-size: 12px; color: var(--text); cursor: pointer; }
.public-notification-consent .connections-check input { width: 18px; height: 18px; flex: 0 0 18px; margin: 2px 0 0; accent-color: var(--primary); }
.public-notification-consent .field { margin-bottom: 14px; }
@media(max-width:760px){#public-form .field :is(input,select,textarea){font-size:16px}}
