/* Booking page: an island-inspired service picker around Acuity's live calendar. */
body[data-page="booking"]{background:#fbfaf6}
.booking-page{max-width:1200px;width:calc(100% - 80px);padding:34px 0 82px}
.booking-hero{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:54px;align-items:end;padding:42px 0 40px;border-bottom:1px solid #d8e5e0}
.booking-hero-copy{max-width:720px}
.booking-eyebrow,.section-kicker{margin:0 0 15px;color:var(--teal);font-size:.74rem;font-weight:700;letter-spacing:.16em;line-height:1.35;text-transform:uppercase}
.booking-eyebrow{display:flex;align-items:center;gap:10px}
.booking-eyebrow>span{display:inline-block;width:30px;height:2px;background:var(--pink)}
.booking-hero h1{max-width:750px;font-size:clamp(2.7rem,5vw,5rem);letter-spacing:-.04em}
.booking-hero-copy>p:not(.booking-eyebrow){max-width:650px;margin-top:22px;color:var(--muted);font-size:1.04rem;line-height:1.7}
.booking-hero-meta{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:27px;color:var(--deep);font-size:.8rem;font-weight:600}
.booking-hero-meta span{display:inline-flex;align-items:center;gap:8px}
.booking-hero-meta i{display:grid;place-items:center;width:25px;height:25px;border:1px solid #9bc2b7;border-radius:50%;font-style:normal;color:var(--teal);font-size:.78rem}
.booking-hero-note{position:relative;overflow:hidden;padding:26px 25px 24px;border:1px solid #c5dcd3;border-radius:18px;background:#e6f2ed;box-shadow:0 16px 34px #064f5a12}
.booking-hero-note:after{content:'♡';position:absolute;right:-12px;bottom:-47px;color:#007d8214;font:9rem/.8 Georgia,serif;transform:rotate(-12deg)}
.booking-note-label{position:relative;z-index:1;display:block;color:var(--teal);font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.booking-hero-note strong{position:relative;z-index:1;display:block;margin:13px 0 12px;color:var(--deep);font:1.5rem/1.18 var(--serif)}
.booking-hero-note p{position:relative;z-index:1;color:#416269;font-size:.84rem;line-height:1.6}
.booking-hero-note a{position:relative;z-index:1;display:inline-flex;gap:7px;margin-top:17px;color:var(--deep);font-size:.78rem;font-weight:700;text-decoration:underline;text-underline-offset:4px}
.booking-progress{margin:27px 0 34px;padding:0;border:0;background:transparent;box-shadow:none}
.booking-progress ol{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:0;padding:0;list-style:none}
.booking-progress li{position:relative;display:flex;align-items:center;gap:10px;color:#7a8b8d;font-size:.78rem;font-weight:600}
.booking-progress li:not(:last-child):after{content:'';height:1px;flex:1;margin:0 18px;background:#d4e1dd}
.booking-progress li>span{display:grid;place-items:center;flex:0 0 33px;width:33px;height:33px;border:1px solid #b6ccc5;border-radius:50%;color:var(--teal);font-size:.7rem}
.booking-progress li.is-current{color:var(--deep)}
.booking-progress li.is-current>span{border-color:var(--teal);background:var(--teal);color:#fff;box-shadow:0 0 0 5px #dceee8}
.service-picker{padding:38px 38px 30px;border-radius:24px;background:#f4eee4;box-shadow:inset 0 1px #fff,0 14px 35px #6a58401a}
.service-picker-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,.62fr);gap:40px;align-items:end;margin-bottom:27px}
.service-picker-heading h2,.consultation-card h2,.long-plan-strip h2,.scheduler-header h2{font-size:clamp(2rem,3.2vw,3.25rem);letter-spacing:-.025em;color:var(--deep)}
.service-picker-heading>p{max-width:390px;color:#617174;font-size:.88rem;line-height:1.65}
.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}
.service-card{position:relative;display:flex;min-width:0;min-height:328px;flex-direction:column;padding:22px 21px 20px;border:1px solid #d9e0d9;border-radius:16px;background:#fffdfa;box-shadow:0 7px 17px #4d3c2720;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.service-card:hover{transform:translateY(-4px);border-color:#83bdb0;box-shadow:0 17px 30px #4d3c2730}
.service-card.is-selected{border-color:var(--teal);box-shadow:0 0 0 2px var(--teal),0 17px 30px #007d8220}
.service-card-featured{border-color:#e0b146;background:#fffaf0}
.service-card-featured:hover{border-color:#c58e17}
.service-badge{position:absolute;top:-12px;left:20px;padding:5px 10px;border-radius:99px;background:var(--yellow);color:#4c3a00;font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.service-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;min-height:74px}
.service-type{display:block;margin-bottom:8px;color:var(--teal);font-size:.69rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.service-card h3{max-width:230px;color:var(--deep);font-size:1.52rem;line-height:1.08;letter-spacing:-.015em}
.service-icon{display:grid;place-items:center;flex:0 0 43px;width:43px;height:43px;border-radius:13px;background:#fde4ec;color:var(--pink);font-size:1.45rem;line-height:1}
.service-icon-teal{background:#dcf1ed;color:var(--teal)}
.service-icon-gold{background:#ffefbe;color:#896200}
.service-icon-coral{background:#f9e4d7;color:#b45632}
.service-meta{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:20px 0 12px;padding-top:15px;border-top:1px solid #e5ebe6;color:#607277;font-size:.84rem}
.service-meta strong{color:var(--deep);font:2rem/1 var(--serif)}
.service-card>p{min-height:45px;color:#53676d;font-size:.87rem;line-height:1.55}
.service-details{margin:11px 0 14px;border-top:1px solid #edf0eb}
.service-details summary{padding:11px 22px 5px 0;color:var(--deep);font-size:.76rem;font-weight:700;line-height:1.3}
.service-details summary:after{top:6px;right:0;font-size:1.2rem;color:var(--teal)}
.service-details[open] summary{color:var(--teal)}
.service-details p{padding:3px 0 3px;color:#607277;font-size:.78rem;line-height:1.55}
.service-book{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;margin-top:auto;padding:12px 14px;border:1px solid var(--teal);border-radius:9px;background:var(--teal);color:#fff;font-size:.84rem;font-weight:700;transition:background .2s ease,transform .2s ease,box-shadow .2s ease}
.service-book:hover{background:var(--deep);transform:translateY(-1px);box-shadow:0 8px 16px #004e5422}
.service-book>span{font-size:1.2rem;line-height:1}
.service-selection-status{margin:22px 0 0;padding:12px 14px;border-left:3px solid var(--teal);background:#e3f2ed;color:#46666b;font-size:.8rem;line-height:1.5}
.consultation-card{display:grid;grid-template-columns:78px minmax(0,1fr) auto;gap:23px;align-items:center;margin-top:27px;padding:26px 29px;border-radius:18px;background:var(--deep);color:#fff;box-shadow:0 17px 32px #004e5428}
.consultation-mark{display:grid;place-items:center;width:72px;height:72px;border:1px solid #9bd2c3;border-radius:50%;color:var(--yellow);font:1.55rem/1 var(--serif)}
.consultation-mark span{display:block;margin-top:2px;color:#cae8df;font:700 .58rem/1 var(--sans);letter-spacing:.08em;text-transform:uppercase}
.consultation-copy .section-kicker{margin-bottom:9px;color:#a9d9cd}
.consultation-card h2{color:#fff;font-size:clamp(1.7rem,2.7vw,2.5rem)}
.consultation-card p:not(.section-kicker){max-width:650px;margin-top:9px;color:#d1e6df;font-size:.86rem;line-height:1.6}
.consultation-button{display:inline-flex;align-items:center;justify-content:space-between;gap:18px;min-height:49px;padding:13px 16px;border-radius:9px;background:var(--yellow);color:#413400;font-size:.8rem;font-weight:700;white-space:nowrap;transition:background .2s ease,transform .2s ease,box-shadow .2s ease}
.consultation-button:hover{background:#ffd875;transform:translateY(-2px);box-shadow:0 8px 18px #001d2025}
.consultation-button span{font-size:1.2rem}
.long-plan-strip{display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,1fr);gap:36px;align-items:center;margin-top:27px;padding:28px 30px;border:1px solid #c9dfd6;border-radius:17px;background:#eaf5f0}
.long-plan-strip .section-kicker{margin-bottom:9px}
.long-plan-strip h2{font-size:clamp(1.55rem,2.5vw,2.2rem)}
.long-plan-list{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.long-plan-list span{display:flex;flex-direction:column;gap:4px;padding:13px 12px;border-left:2px solid #8ebdb0;color:#5d7478;font-size:.75rem;line-height:1.35}
.long-plan-list strong{color:var(--deep);font-size:.84rem}
.scheduler-section{margin-top:51px;scroll-margin-top:30px}
.scheduler-header{display:flex;align-items:end;justify-content:space-between;gap:25px;margin-bottom:18px}
.scheduler-header .section-kicker{margin-bottom:9px}
.scheduler-header p:not(.section-kicker){max-width:620px;margin-top:10px;color:var(--muted);font-size:.88rem;line-height:1.55}
.scheduler-header>a,.booking-support a,.booking-details>a{display:inline-flex;align-items:center;gap:7px;color:var(--deep);font-size:.8rem;font-weight:700;text-decoration:underline;text-underline-offset:4px;white-space:nowrap}
.scheduler-header>a:hover,.booking-support a:hover,.booking-details>a:hover{color:var(--pink)}
.scheduler-status{margin:0 0 12px;padding:12px 16px;border-left:3px solid var(--teal);background:#eaf5f0;color:#43646b;font-size:.84rem;line-height:1.55}
.scheduler-status[hidden]{display:none}
.calendar-shell{overflow:hidden;border:1px solid #cfdfdb;border-radius:16px;background:#fff;box-shadow:0 12px 27px #213b3f12}
.calendar-shell-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 18px;border-bottom:1px solid #dce8e4;background:#f4faf7;color:var(--deep);font-size:.78rem;font-weight:700}
.calendar-shell-head span{display:inline-flex;align-items:center;gap:8px}
.calendar-shell-head i{width:8px;height:8px;border-radius:50%;background:#46a983;box-shadow:0 0 0 4px #d8eee5}
.calendar-shell-head small{color:#668084;font-size:.72rem;font-weight:500}
.acuity-scheduler{display:block;width:100%;height:760px;border:0;background:#fff}
.booking-support{margin-top:13px;color:var(--muted);font-size:.82rem;line-height:1.6}
.booking-details{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:25px;align-items:center;margin-top:30px;padding:20px 23px;border:1px solid #d2e3dc;border-radius:12px;background:#f1f8f4}
.booking-details p{max-width:760px;color:#546b70;font-size:.82rem;line-height:1.65}
.booking-details strong{color:var(--deep)}
body[data-page="booking"]>footer{padding-bottom:24px}
@media(max-width:1000px){
  .booking-page{width:calc(100% - 56px)}
  .booking-hero{grid-template-columns:minmax(0,1fr) minmax(250px,.7fr);gap:30px}
  .service-picker{padding:31px 26px 25px}
  .service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .consultation-card{grid-template-columns:66px minmax(0,1fr);gap:18px}
  .consultation-button{grid-column:2;justify-self:start}
  .long-plan-strip{grid-template-columns:1fr;gap:20px}
}
@media(max-width:700px){
  .booking-page{width:calc(100% - 34px);padding-top:24px;padding-bottom:58px}
  .booking-hero{grid-template-columns:1fr;gap:25px;padding:26px 0 31px}
  .booking-hero h1{font-size:clamp(2.55rem,12vw,4rem)}
  .booking-hero-copy>p:not(.booking-eyebrow){font-size:.96rem}
  .booking-hero-note{padding:22px 20px}
  .booking-progress{margin:22px 0 28px}
  .booking-progress ol{grid-template-columns:repeat(4,1fr);gap:4px}
  .booking-progress li{display:flex;flex-direction:column;gap:5px;text-align:center;font-size:.68rem}
  .booking-progress li:not(:last-child):after{position:absolute;top:16px;left:calc(50% + 20px);width:calc(100% - 40px);margin:0}
  .booking-progress li>span{flex-basis:32px;width:32px;height:32px}
  .service-picker{padding:28px 15px 19px;border-radius:17px}
  .service-picker-heading{display:block;margin-bottom:22px}
  .service-picker-heading>p{margin-top:12px;font-size:.84rem}
  .service-grid{grid-template-columns:1fr;gap:12px}
  .service-card{min-height:0;padding:20px 17px 17px}
  .service-card-head{min-height:66px}
  .service-card h3{font-size:1.48rem}
  .service-card>p{min-height:0}
  .service-meta{margin-top:17px}
  .service-details{margin-top:10px}
  .service-badge{left:17px}
  .consultation-card{grid-template-columns:57px minmax(0,1fr);gap:15px;margin-top:18px;padding:21px 18px}
  .consultation-mark{width:57px;height:57px;font-size:1.25rem}
  .consultation-card h2{font-size:1.8rem}
  .consultation-card p:not(.section-kicker){font-size:.82rem}
  .consultation-button{grid-column:1/-1;width:100%;justify-content:space-between}
  .long-plan-strip{gap:18px;margin-top:18px;padding:22px 18px}
  .long-plan-list{grid-template-columns:1fr;gap:8px}
  .long-plan-list span{flex-direction:row;align-items:baseline;justify-content:space-between;padding:10px 12px}
  .scheduler-section{margin-top:36px}
  .scheduler-header{display:block;margin-bottom:15px}
  .scheduler-header>a{margin-top:14px}
  .calendar-shell-head{align-items:flex-start;flex-direction:column;gap:7px;padding:13px 14px}
  .acuity-scheduler{height:850px}
  .booking-details{grid-template-columns:1fr;gap:15px;margin-top:22px;padding:18px}
}
@media(max-width:390px){
  .booking-hero-meta{display:grid;grid-template-columns:1fr 1fr;gap:11px}
  .booking-hero-meta span:last-child{grid-column:1/-1}
  .service-card h3{font-size:1.36rem}
}
@media(prefers-reduced-motion:reduce){
  .service-card,.service-book,.consultation-button{transition:none}
}
