:root{--booking-shell:min(92vw,1420px)}
.booking-page{background:#f6efe5;color:#253a37}
.booking-page main{position:relative;overflow:hidden;background:linear-gradient(180deg,#f8f2e9 0%,#f3e9dc 100%)}
.booking-page main:before,.booking-page main:after{content:"";position:absolute;pointer-events:none;z-index:0;width:260px;height:520px;opacity:.14;background:url('assets/palm-frond.svg') center/contain no-repeat}
.booking-page main:before{left:-95px;bottom:160px}.booking-page main:after{right:-110px;top:700px;transform:scaleX(-1) rotate(8deg)}

.booking-hero{position:relative;height:clamp(285px,25vw,390px);overflow:hidden;background:#f8f2e9}
.booking-hero>img{position:absolute;inset:0 0 0 42%;width:58%;height:100%;object-fit:cover;object-position:center 56%;filter:saturate(.86) contrast(.96)}
.booking-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#f8f2e9 0%,#f8f2e9 35%,rgba(248,242,233,.92) 45%,rgba(248,242,233,.1) 67%,rgba(248,242,233,0) 100%)}
.booking-hero-inner{position:relative;z-index:1;width:var(--booking-shell);height:100%;margin:auto;display:flex;align-items:center}
.booking-hero-copy{width:min(510px,41vw);padding:8px 0 18px}
.booking-crumbs{display:flex;align-items:center;gap:11px;color:#aa8b62;font-size:11px;margin-bottom:24px}.booking-crumbs a{color:#ba7d3f}.booking-crumbs span:first-of-type{font-size:20px;color:#d6b16f}
.booking-hero h1{font-size:clamp(43px,4.1vw,66px);line-height:1.04;letter-spacing:-.025em;color:#173f3f;font-weight:500}.booking-hero h1 em{color:var(--coral);font-weight:500}
.booking-hero-copy>p{font-size:13px;line-height:1.7;color:#53615e;max-width:480px;margin:20px 0 0}

.reservation-shell{position:relative;z-index:2;width:var(--booking-shell);margin:-27px auto clamp(34px,4vw,60px);display:grid;grid-template-columns:minmax(270px,.9fr) minmax(430px,1.36fr) minmax(285px,.82fr);background:#fffdf8;border:1px solid #eadcc9;border-radius:18px;box-shadow:0 24px 52px rgba(98,67,37,.14);overflow:hidden}
.booking-choices{padding:clamp(24px,2vw,34px);border-right:1px solid #eadfce}
.booking-step h2,.booking-summary>h2{display:flex;align-items:center;gap:11px;margin:0 0 20px;font:600 11px var(--sans);letter-spacing:.35px;color:#394845}.booking-step h2>span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#dfba6a,#c49137);color:#fff;font:600 13px var(--serif);flex:0 0 auto}
.booking-service-list{display:grid;gap:11px}.booking-service{position:relative;width:100%;height:126px;display:grid;grid-template-columns:88px 1fr;border:1px solid #e6d8c5;border-radius:11px;background:#fffaf3;padding:0;overflow:hidden;text-align:left;color:#2b3d39;cursor:pointer;transition:border-color .2s,box-shadow .2s,transform .2s}.booking-service:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(125,91,52,.09)}.booking-service.selected{border-color:#d9a34b;box-shadow:0 8px 22px rgba(199,145,57,.12)}
.booking-service>img{width:88px;height:100%;object-fit:cover}.service-copy{padding:14px 34px 10px 15px;display:flex;flex-direction:column}.service-copy strong{font:600 15px var(--serif);line-height:1.1}.service-copy small{font-size:9px;line-height:1.5;color:#66716d;margin-top:5px}.service-copy b{font-size:8px;font-weight:400;color:#887965;margin-top:auto}.service-copy b em{display:block;font:600 13px var(--sans);color:#243b38;font-style:normal;margin-top:1px}.selection-dot{position:absolute;right:13px;top:13px;width:21px;height:21px;border:1px solid #e2d4c0;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:10px}.booking-service.selected .selection-dot{background:#0b5558;border-color:#0b5558}.service-time{position:absolute;right:12px;bottom:11px;font-size:8px;color:#6e7774}
.booking-outline-link{display:flex;align-items:center;justify-content:center;height:43px;border:1px solid #d8b77f;border-radius:7px;margin-top:12px;color:#8b6134;font-size:9px;font-weight:600;letter-spacing:.35px;transition:.2s}.booking-outline-link:hover{background:#0b5054;color:#fff;border-color:#0b5054}
.stylist-step{margin-top:32px;padding-top:27px;border-top:1px solid #eadfce}.stylist-list{display:grid;gap:8px}.stylist-choice{width:100%;display:grid;grid-template-columns:50px 1fr 22px;align-items:center;gap:11px;min-height:68px;padding:7px 11px;border:1px solid #e7daca;border-radius:9px;background:#fffaf4;text-align:left;cursor:pointer;color:#263a37}.stylist-choice.selected{border-color:#d8a44c;background:#fff9ef}.stylist-choice>img{width:49px;height:49px;border-radius:50%;object-fit:cover}.stylist-choice span{display:flex;flex-direction:column}.stylist-choice strong{font:600 13px var(--serif)}.stylist-choice small{font-size:8px;color:#65716d}.stylist-choice em{font-size:7.5px;color:#b27b28;font-style:normal;margin-top:2px}.stylist-choice i{width:20px;height:20px;border-radius:50%;border:1px solid #e0d2bf;display:grid;place-items:center;font-style:normal;font-size:9px;color:#fff}.stylist-choice.selected i{background:#0c5559;border-color:#0c5559}

.booking-calendar-panel{padding:clamp(24px,2.3vw,38px);border-right:1px solid #eadfce;background:#fffdfa}.calendar-head{display:grid;grid-template-columns:36px 1fr 36px;align-items:center;margin:18px 0}.calendar-head button{border:0;background:transparent;color:#214644;font-size:26px;cursor:pointer}.calendar-head strong{text-align:center;font:500 22px var(--serif);color:#244a47}.calendar-week,.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);text-align:center}.calendar-week{margin-bottom:8px}.calendar-week span{font-size:9px;letter-spacing:.5px;color:#68736f}.calendar-days{row-gap:8px}.calendar-days span,.calendar-days button{display:grid;place-items:center;aspect-ratio:1;border:0;border-radius:50%;background:transparent;font:500 13px var(--sans);color:#263936}.calendar-days button{cursor:pointer;transition:.2s}.calendar-days button:hover{background:#f0e6d8}.calendar-days button.selected{background:#0a5559;color:#fff;box-shadow:0 6px 14px rgba(9,80,84,.25)}.calendar-days .outside{color:#d0ccc6}
.selected-date-row{display:flex;justify-content:space-between;gap:15px;align-items:center;margin:25px 0 14px;padding-top:21px;border-top:1px solid #eadfce}.selected-date-row h3{font-size:17px}.selected-date-row>span{border:1px solid #e4d9ca;border-radius:6px;padding:8px 10px;font-size:8px;color:#7a817e}.availability{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0 20px}.availability span{display:flex;align-items:center;gap:7px;font-size:8px;color:#6f7773}.availability i{width:12px;height:12px;border-radius:50%;background:#0a5559}.availability span:nth-child(2) i{background:#e5bd79}.availability span:nth-child(3) i{background:#c9c9c7}
.time-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.time-grid button{height:55px;border:1px solid #ded4c7;border-radius:7px;background:#fffdf9;color:#34413e;font:500 12px var(--sans);cursor:pointer;transition:.2s}.time-grid button:hover{border-color:#d2a052}.time-grid button.selected{background:#07575c;color:#fff;border-color:#07575c;box-shadow:0 7px 16px rgba(7,87,92,.22)}.time-grid button.limited{background:#fbefe0}
.duration-card{display:grid;grid-template-columns:42px 1fr auto;gap:13px;align-items:center;margin-top:28px;padding:18px 20px;background:linear-gradient(90deg,#f6eadb,#fff7ed);border-radius:8px}.duration-card>span{width:36px;height:36px;border:1.5px solid #b9873d;border-radius:50%;display:grid;place-items:center;color:#9b6a2c}.duration-card div{display:flex;flex-direction:column}.duration-card small{font-size:8px;color:#7a7971}.duration-card strong{font:500 18px var(--serif);color:#223e3b}.duration-card div:last-child{text-align:right}.deposit-note{display:grid;grid-template-columns:37px 1fr;gap:12px;margin-top:20px;padding:18px 20px;background:#fff4e5;border-radius:8px}.deposit-note>span{font-size:28px;color:#d5a145}.deposit-note strong{font-size:9px}.deposit-note p{font-size:9px;line-height:1.55;color:#59645f;margin:7px 0 0}

.booking-summary{padding:clamp(24px,2.2vw,36px);background:linear-gradient(180deg,#fbf6ed,#f7efe4)}.booking-summary>h2{margin-bottom:26px}.summary-image{height:245px;border-radius:12px;overflow:hidden;background:#ecdcc6}.summary-image img{width:100%;height:100%;object-fit:cover;object-position:center 28%}.summary-block{padding:18px 0;border-bottom:1px solid #e2d6c5;display:flex;flex-direction:column}.summary-block small{font-size:8px;color:#817c72}.summary-block strong{font:600 18px var(--serif);line-height:1.3}.summary-block span{font-size:8.5px;color:#7b756c;margin-top:4px}.summary-stylist-row{display:grid;grid-template-columns:1fr 55px;align-items:center}.summary-stylist-image{width:53px;height:53px;border-radius:50%;object-fit:cover}.summary-prices{display:grid;grid-template-columns:1fr auto;gap:19px 12px;padding:20px 0;margin:0;border-bottom:1px solid #e1d4c2;font-size:9px}.summary-prices dd{margin:0;font:600 13px var(--serif);text-align:right}.summary-prices dt:last-of-type,.summary-prices dd:last-of-type{font-weight:700;color:#173f3f}.reserve-now,.hold-date{width:100%;height:58px;border-radius:7px;font:600 10px var(--sans);letter-spacing:.35px;cursor:pointer}.reserve-now{display:flex;align-items:center;justify-content:center;gap:35px;margin-top:23px;border:0;background:linear-gradient(100deg,#e95536,#db4d2f);color:#fff;box-shadow:0 10px 22px rgba(213,71,43,.23)}.reserve-now span{font-size:23px}.hold-date{margin-top:11px;border:1px solid #dca476;background:transparent;color:#98633f}.hold-date span{font-size:8px;color:#948374}.hold-date.holding{border-color:#0b5558;color:#0b5558}.booking-status{min-height:32px;padding-top:10px;font-size:9px;line-height:1.5;color:#886934}.booking-status.success{color:#0b625d}.secure-note{position:relative;padding:17px 0 0 27px;font-size:8px!important;line-height:1.55!important;color:#666d69!important}.secure-note>span{position:absolute;left:0;top:17px;color:#bf8d3b;font-size:17px}.secure-note b{font-weight:600;color:#43504c}

.booking-benefits{position:relative;z-index:2;width:var(--booking-shell);margin:0 auto clamp(48px,5vw,78px);display:grid;grid-template-columns:repeat(4,1fr);padding:28px 0;background:#fffaf3;border:1px solid #eadcca;border-radius:15px;box-shadow:0 13px 30px rgba(111,79,45,.07)}.booking-benefits article{text-align:center;padding:5px 28px;border-right:1px solid #dfd2bf}.booking-benefits article:last-child{border:0}.booking-benefits article>span{display:block;color:#0a5559;font-size:30px;line-height:1;margin-bottom:15px}.booking-benefits h2{font-size:16px;color:#213e3b}.booking-benefits p{font-size:9px;line-height:1.65;color:#65706c;margin:7px 0 0}
.booking-map-button{display:inline-flex;margin-top:12px;padding:11px 17px;border-radius:6px;background:#fff4df;color:#29413f;font-size:9.5px;font-weight:600}.booking-page footer{margin-top:0}

@media (max-width:1180px){
  .reservation-shell{grid-template-columns:minmax(270px,.8fr) minmax(430px,1.2fr)}.booking-summary{grid-column:1/-1;display:grid;grid-template-columns:minmax(260px,.7fr) 1fr 1fr;gap:0 28px}.booking-summary>h2{grid-column:1/-1}.summary-image{grid-row:2/6;height:100%;min-height:310px}.booking-summary .summary-block,.booking-summary .summary-prices{align-self:start}.reserve-now,.hold-date,.booking-status,.secure-note{grid-column:3}.booking-benefits article{padding-inline:18px}
}
@media (max-width:820px){
  :root{--booking-shell:min(92vw,640px)}.booking-hero{height:410px}.booking-hero>img{inset:0;width:100%;height:100%;opacity:.36}.booking-hero:after{background:linear-gradient(90deg,rgba(248,242,233,.98),rgba(248,242,233,.88) 63%,rgba(248,242,233,.35))}.booking-hero-copy{width:100%;max-width:520px}.reservation-shell{grid-template-columns:1fr;margin-top:-20px}.booking-choices,.booking-calendar-panel{border-right:0;border-bottom:1px solid #eadfce}.booking-summary{grid-column:auto;display:block}.summary-image{height:300px;min-height:0}.booking-benefits{grid-template-columns:1fr 1fr;gap:0}.booking-benefits article:nth-child(2){border-right:0}.booking-benefits article:nth-child(-n+2){border-bottom:1px solid #dfd2bf;padding-bottom:28px}.booking-benefits article:nth-child(n+3){padding-top:28px}
}
@media (max-width:520px){
  .booking-hero{height:380px}.booking-hero h1{font-size:44px}.booking-hero-copy>p{font-size:11px}.booking-choices,.booking-calendar-panel,.booking-summary{padding:22px 17px}.booking-service{grid-template-columns:74px 1fr;height:118px}.booking-service>img{width:74px}.service-copy{padding-left:11px}.service-copy strong{font-size:13px}.time-grid{gap:8px}.time-grid button{height:46px;font-size:10px}.selected-date-row{align-items:flex-start;flex-direction:column}.duration-card{grid-template-columns:35px 1fr auto;padding:14px 12px}.booking-benefits{grid-template-columns:1fr;padding:0}.booking-benefits article,.booking-benefits article:nth-child(n){border:0;border-bottom:1px solid #dfd2bf;padding:25px}.booking-benefits article:last-child{border:0}
}


/* Service catalog selection received from the services page */
.summary-length {
  display: block;
  margin: 5px 0 2px;
  color: #e85b3f;
  font: 700 11px/1.35 var(--sans, Arial, sans-serif);
}

.summary-length[hidden] {
  display: none;
}

/* Warm opaque secondary booking action */
.booking-outline-link{
  background:#fff3e2;
  border-color:#dfbd8d;
  color:#5f4938;
  box-shadow:0 9px 22px rgba(104,69,35,.12);
}
.booking-outline-link:hover{
  background:#f8e5cd;
  border-color:#cf9f61;
  color:#16494b;
  box-shadow:0 13px 28px rgba(104,69,35,.16);
  transform:translateY(-2px);
}


/* Real-availability calendar: empty-slot message */
.slots-none{grid-column:1/-1;margin:6px 2px;font-size:13px;color:#6b5c50;line-height:1.5}
