/* Francy's beauty planner: discovery, calendar and booking feedback. */
.site-home [hidden]{display:none!important}
.hero-discovery{margin-top:28px;max-width:470px}.hero-discovery>span{font:italic 18px Georgia,serif;color:var(--olive)}
.hero-discovery>div{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.hero-discovery button,.filter-chips button{border:1px solid #c7cdbd;background:#fffdf8;color:var(--pine);border-radius:30px;min-height:44px;padding:10px 16px;font:13px 'Segoe UI',sans-serif;cursor:pointer;transition:background .2s,transform .2s}
.hero-discovery button:hover,.filter-chips button:hover{background:#e9edde;transform:translateY(-2px)}
.site-home .hero-note{margin-top:23px}.site-home .hero-visual{background:radial-gradient(ellipse at top,#e4d2b6,#e7e4d7)}
.ritual-toolbar{display:flex;justify-content:space-between;gap:20px;align-items:center;margin:0 0 28px}.filter-chips{display:flex;gap:8px;flex-wrap:wrap}
.filter-chips button[aria-pressed=true]{background:var(--pine);color:white;border-color:var(--pine)}
#ritual-count{font-size:12px;color:var(--olive);white-space:nowrap}
.site-home .treatment-grid{grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch}
.site-home .treatment{display:flex;flex-direction:column;min-width:0}.site-home .treatment .text-link{align-self:start;margin-top:auto;min-height:44px}
.site-home .treatment .treatment-meta{font-size:12px;font-weight:600;color:var(--pine);padding:15px 0 20px;margin-top:auto}
.site-home .treatment p{font-size:14px;line-height:1.75}
.booking-progress{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:0;margin:0 0 18px}
.booking-progress li{display:flex;align-items:center;gap:12px;border-bottom:2px solid #d8dece;padding:15px 0;color:#67735f;font-size:14px}
.booking-progress li>span{font-size:11px;letter-spacing:1px}
.booking-progress li[aria-current=step]{color:var(--pine);border-color:var(--terra);font-weight:600}
.booking-progress li.is-done{border-color:var(--pine);color:var(--pine)}
.booking-progress li.is-done>span::after{content:' ✓'}
.booking-guidance{font:italic 21px/1.5 Georgia,serif;color:var(--pine);margin-bottom:20px;min-height:32px}
.site-home .booking-layout{grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr);align-items:start}
.booking-calendar{margin-top:12px;background:#fffdf8;border:1px solid #d3daca;border-radius:18px;padding:24px;max-width:520px;box-shadow:0 8px 30px #354d3e05}
.calendar-header{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:23px}
.calendar-header .eyebrow{font-size:9px;letter-spacing:1.8px;color:var(--olive)}
.calendar-header h4{font:27px/1.3 Georgia,serif;text-transform:capitalize;margin:6px 0 0;color:var(--pine)}
.calendar-navigation{display:flex;gap:8px}
.calendar-navigation button{width:44px;height:44px;border-radius:50%;background:#f1f3e9;border:1px solid #d3daca;color:var(--pine);font-size:20px;cursor:pointer}
.calendar-navigation button:disabled{opacity:.35;cursor:default}
.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.calendar-weekdays{margin-bottom:10px;text-align:center;font-size:11px;color:#697461}
.calendar-days button{border:1px solid transparent;background:transparent;color:#354d3e;min-width:0;width:100%;min-height:44px;aspect-ratio:1;border-radius:50%;font:14px 'Segoe UI',sans-serif;cursor:pointer;position:relative}
.calendar-days button:not(:disabled):hover{background:#edf0e2;border-color:#c7d0b7}
.calendar-days button[aria-current=date]::after{content:'';position:absolute;bottom:5px;left:calc(50% - 2px);width:4px;height:4px;border-radius:50%;background:currentColor}
.calendar-days button[aria-pressed=true]{background:var(--pine);color:white;box-shadow:0 4px 12px #354d3e26}
.calendar-days button[aria-pressed=true]:not(:disabled):hover{background:var(--pine);color:white;border-color:var(--pine)}
.calendar-days button:disabled{color:#a5aa9f;background:#f6f6f0;cursor:default}
.calendar-selection{border-top:1px solid #e0e4d7;padding-top:16px;margin-top:18px;font-size:14px;color:var(--pine);font-weight:600;text-transform:capitalize}
.calendar-hint{font-size:12px;color:#697461;line-height:1.7;margin-top:7px!important}
.booking-calendar[aria-disabled=true]{opacity:.65}
.date-alternative{font-size:12px;color:var(--olive);margin:18px 0 7px!important}
.site-home #date{max-width:270px}.site-home .slots-context{font-size:14px;margin:4px 0 12px;color:var(--pine);text-transform:capitalize}
.site-home .slots[aria-busy=true]{min-height:65px;opacity:.65}
.site-home .slots>p,.site-home .slots>.next-available{grid-column:1/-1;flex-basis:100%;font-size:14px}
.next-available{border:1px solid #a9b99b;border-radius:8px;background:#eef2e5;color:var(--pine);padding:13px 18px;min-height:46px;cursor:pointer;text-align:left}
.booking-success{border:1px solid #bfcfb1;background:#eef3e6;border-radius:18px;padding:30px;margin:25px 0}
.site-home .booking-success h3{font:34px Georgia,serif;margin:15px 0}.booking-success p{font-size:14px;line-height:1.8}.booking-success .text-link{background:none;border:0;border-bottom:1px solid #a8aa96;cursor:pointer;color:var(--pine);margin-top:20px;min-height:44px}
#success-reference{font-size:12px;overflow-wrap:anywhere}
.booking-completed>.form-section,.booking-completed>#submit-booking{display:none}
.site-home .notice{font-size:13px;line-height:1.8}.site-home #form-message{overflow-wrap:anywhere}
@media(max-width:1000px){.site-home .booking-layout{gap:28px;grid-template-columns:minmax(0,1.4fr) minmax(240px,1fr)}.site-home .booking-summary{padding:24px}.site-home .treatment-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ritual-toolbar{align-items:start;flex-direction:column;gap:12px}}
@media(max-width:760px){
 .hero-discovery{margin-top:22px}.hero-discovery>span{font-size:17px}.hero-discovery button{font-size:12px;padding:10px 13px}
 .site-home .hero-visual{min-height:0}.site-home .treatment p{font-size:13px}.site-home .treatment .treatment-meta{font-size:12px;padding:12px 0 16px}.site-home .treatment .text-link{font-size:12px}
 .filter-chips{gap:7px}.filter-chips button{font-size:12px;padding:9px 14px}.ritual-toolbar{margin-bottom:24px}
 .site-home .booking-layout{grid-template-columns:minmax(0,1fr)}.booking-progress{gap:9px}.booking-progress li{font-size:12px;gap:7px;padding:13px 0}.booking-progress li>span{font-size:10px}.booking-guidance{font-size:20px;margin-bottom:18px}
 .booking-calendar{padding:16px;border-radius:13px;margin-left:-4px;margin-right:-4px;max-width:none}.calendar-header{margin-bottom:20px}.calendar-header h4{font-size:24px}.calendar-header .eyebrow{font-size:8px}.calendar-navigation{gap:5px}.calendar-navigation button{width:40px;height:40px}
 .calendar-days,.calendar-weekdays{gap:2px}.calendar-days button{min-height:40px;font-size:13px}.calendar-hint{font-size:12px}.calendar-selection{font-size:13px}
 .site-home .quick-days{margin-bottom:15px}.site-home #date{max-width:100%}.site-home .notice{font-size:12px}.booking-success{padding:23px}.site-home .booking-success h3{font-size:28px}
}
@media(max-width:370px){.calendar-days button{min-height:34px;font-size:12px}.booking-calendar{padding:12px}.calendar-header h4{font-size:22px}.calendar-navigation button{width:36px;height:36px}.booking-progress li{font-size:11px;gap:5px}.site-home .treatment-grid{grid-template-columns:minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){.hero-discovery button,.filter-chips button{transition:none}.hero-discovery button:hover,.filter-chips button:hover{transform:none}}
