
:root{--book-blue:#2197a3;--book-green:#86b93b;--book-ink:#202528;--book-muted:#687275;--book-soft:#f4faf9;--book-line:#dfe9e8}
.booking-page-body{background:#fff;color:var(--book-ink)}
.booking-page{min-height:100vh}
.booking-hero{padding:92px 0 118px;background:radial-gradient(circle at 84% 25%,rgba(134,185,59,.18),transparent 24%),radial-gradient(circle at 10% 20%,rgba(33,151,163,.16),transparent 30%),linear-gradient(135deg,#eef9fa,#fff 54%,#f2f9ed)}
.booking-hero-copy{max-width:800px}
.booking-hero h1{font-family:"Poppins",sans-serif;font-size:clamp(44px,6vw,76px);line-height:1.02;letter-spacing:-.055em;margin:8px 0 18px;color:var(--book-ink)}
.booking-hero h1 span{color:var(--book-blue)}
.booking-hero p{max-width:690px;font-size:18px;line-height:1.7;color:var(--book-muted)}
.booking-trust{display:flex;flex-wrap:wrap;gap:12px 22px;margin-top:24px}
.booking-trust span{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600}.booking-trust i{color:var(--book-green);font-size:17px}
.booking-flow-section{padding:0 0 80px;background:#fff}.booking-flow-section>.container{margin-top:-48px;position:relative;z-index:2}
.booking-progress{max-width:900px;margin:0 auto 26px;padding:18px 28px;display:flex;align-items:center;background:#fff;border:1px solid var(--book-line);border-radius:16px;box-shadow:0 12px 36px rgba(32,37,40,.08)}
.booking-progress-item{display:flex;align-items:center;gap:8px;color:#98a1a3}.booking-progress-item span{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#edf2f1;font:700 12px "Poppins",sans-serif}.booking-progress-item small{font-weight:600;white-space:nowrap}.booking-progress-item.active{color:var(--book-ink)}.booking-progress-item.active span,.booking-progress-item.done span{background:var(--book-blue);color:#fff}.booking-progress-line{height:1px;flex:1;background:#dfe6e5;margin:0 12px}
.booking-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px;align-items:start}.booking-panel,.booking-summary-card{background:#fff;border:1px solid var(--book-line);border-radius:18px;box-shadow:0 14px 40px rgba(32,37,40,.065)}
.booking-panel{padding:30px}.booking-summary-card{position:sticky;top:105px;padding:24px}
.booking-step{display:none}.booking-step.active{display:block}.booking-step-heading{display:flex;gap:15px;align-items:flex-start;padding-bottom:22px;border-bottom:1px solid #edf1f0;margin-bottom:22px}.booking-step-number{color:var(--book-blue);font:800 12px "Poppins",sans-serif;letter-spacing:.08em;padding-top:7px}.booking-step-heading h2{font:700 clamp(25px,3vw,34px) "Poppins",sans-serif;letter-spacing:-.035em;margin:0 0 4px;color:var(--book-ink)}.booking-step-heading p{margin:0;color:var(--book-muted);font-size:13px}
.booking-service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.booking-service-card{position:relative;display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;text-align:left;gap:11px;padding:14px;border:1px solid #e3eae9;border-radius:11px;background:#fff;cursor:pointer;transition:.18s}.booking-service-card:hover{border-color:rgba(33,151,163,.55);transform:translateY(-1px)}.booking-service-card.selected{border-color:var(--book-blue);background:#f1fafa;box-shadow:inset 3px 0 0 var(--book-blue)}.service-check{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#f0f4f3;color:transparent}.selected .service-check{background:var(--book-blue);color:#fff}.booking-service-copy strong{display:block;font:600 13px "Poppins",sans-serif;color:var(--book-ink)}.booking-service-copy small{color:#849093;font-size:11px}.booking-service-price{font:800 18px "Poppins",sans-serif;color:var(--book-blue);letter-spacing:-.04em;white-space:nowrap}.booking-service-price small{font-size:8px;color:#7b8588;letter-spacing:.04em;margin-right:3px;vertical-align:3px}
.booking-actions{display:flex;justify-content:space-between;gap:12px;margin-top:26px}.booking-actions-end{justify-content:flex-end}.booking-next,.booking-submit,.booking-back{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:8px;padding:11px 17px;font:600 12px "Poppins",sans-serif;text-decoration:none;cursor:pointer}.booking-next,.booking-submit{border:1px solid var(--book-blue);background:var(--book-blue);color:#fff}.booking-back{border:1px solid #dbe4e3;background:#fff;color:var(--book-ink)}button:disabled{opacity:.45;cursor:not-allowed}
.booking-date-time-grid,.booking-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.booking-field{display:block}.booking-field>span{display:block;margin-bottom:7px;font:600 12px "Poppins",sans-serif;color:var(--book-ink)}.booking-field em{font-style:normal;font-weight:400;color:#929a9c}.booking-field input,.booking-field select,.booking-field textarea{width:100%;border:1px solid #dfe7e6;border-radius:9px;background:#fbfcfc;padding:12px 13px;color:var(--book-ink);outline:none}.booking-field input:focus,.booking-field select:focus,.booking-field textarea:focus{border-color:var(--book-blue);box-shadow:0 0 0 3px rgba(33,151,163,.09)}.booking-field-full{grid-column:1/-1}
.time-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.time-slot{padding:10px 8px;border:1px solid #dfe7e6;border-radius:8px;background:#fff;color:var(--book-ink);font-size:12px}.time-slot.selected{background:var(--book-blue);border-color:var(--book-blue);color:#fff}.booking-note{display:flex;gap:9px;margin-top:18px;padding:12px 14px;border-radius:9px;background:#f3f9ed;color:#5f6e58;font-size:11px}.booking-note i{color:var(--book-green)}
.booking-summary-card h3{font:700 22px "Poppins",sans-serif;margin:5px 0 18px;color:var(--book-ink)}.summary-empty{text-align:center;padding:28px 10px;color:#8a9597}.summary-empty i{font-size:32px;color:var(--book-blue)}.summary-empty p{font-size:12px;margin:8px 0}.summary-row{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid #edf1f0;font-size:12px}.summary-row span{color:#7a8588}.summary-row strong{text-align:right;color:var(--book-ink)}.summary-total{display:flex;align-items:end;justify-content:space-between;padding:18px 0}.summary-total span{font-size:12px;color:#7a8588}.summary-total strong{color:var(--book-blue);font:800 26px "Poppins",sans-serif}.summary-total small{font-size:9px;color:#7a8588;margin-right:4px}.summary-help{display:flex;gap:10px;padding:13px;background:linear-gradient(110deg,#eef9fa,#f3f9ed);border-radius:10px}.summary-help i{color:var(--book-blue)}.summary-help small,.summary-help strong{display:block}.summary-help small{font-size:10px;color:#788386}.summary-help strong{font-size:11px}
.booking-review{border:1px solid var(--book-line);border-radius:12px;overflow:hidden}.review-row{display:flex;justify-content:space-between;gap:20px;padding:13px 15px;border-bottom:1px solid #edf1f0}.review-row:last-child{border-bottom:0}.review-row span{font-size:12px;color:#778285}.review-row strong{text-align:right;font-size:12px}.booking-consent{display:flex;align-items:flex-start;gap:9px;margin-top:18px;font-size:11px;color:#667174}.booking-consent input{margin-top:3px}.booking-message{margin-top:12px;font-size:12px}.booking-message.error{color:#b42318}
.booking-success{text-align:center;padding:28px 10px}.booking-success-icon{width:72px;height:72px;margin:0 auto 18px;border-radius:50%;display:grid;place-items:center;background:var(--book-green);color:#fff;font-size:36px}.booking-success h2{font:700 34px "Poppins",sans-serif;margin:6px 0}.booking-success>p{color:var(--book-muted)}.booking-success .booking-review{text-align:left;margin:24px auto;max-width:600px}.booking-success-actions{display:flex;justify-content:center;gap:10px}
@media(max-width:991px){.booking-layout{grid-template-columns:1fr}.booking-summary-card{position:static;order:-1}.booking-hero{padding-top:72px}.booking-progress-item small{display:none}}
@media(max-width:767px){.booking-hero{padding:54px 0 88px}.booking-hero h1{font-size:44px}.booking-hero p{font-size:15px}.booking-flow-section>.container{margin-top:-38px}.booking-progress{padding:13px 14px}.booking-progress-line{margin:0 6px}.booking-panel{padding:18px}.booking-service-grid{grid-template-columns:1fr}.booking-service-card{grid-template-columns:30px minmax(0,1fr) auto;padding:12px}.booking-date-time-grid,.booking-form-grid{grid-template-columns:1fr}.booking-field-full{grid-column:auto}.time-slots{grid-template-columns:repeat(2,1fr)}.booking-summary-card{padding:18px}.booking-actions{flex-wrap:wrap}.booking-next,.booking-submit{margin-left:auto}.booking-trust{display:grid;gap:8px}.booking-success-actions{flex-direction:column}}


/* ===== LUWELL Booking V3: live staff/service availability ===== */
.v3-schedule-block{margin:0 0 24px;padding:20px;border:1px solid rgba(33,151,163,.16);border-radius:18px;background:#fff}
.v3-section-label{display:flex;gap:12px;align-items:center;margin-bottom:16px}
.v3-section-label>span{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--book-blue);color:#fff;font-weight:800;flex:0 0 34px}
.v3-section-label strong{display:block;font-size:1rem;color:#17252a}.v3-section-label small{display:block;color:#718086;margin-top:2px}
.v3-calendar{min-height:100px}.v3-calendar-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.v3-calendar-head strong{font-size:1.02rem;color:#17252a}.v3-calendar-nav{border:0;background:#f2f8f9;width:36px;height:36px;border-radius:50%;color:var(--book-blue)}
.v3-calendar-weekdays,.v3-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}
.v3-calendar-weekdays span{text-align:center;font-size:.72rem;font-weight:800;color:#89969a;padding:4px}
.v3-day{border:1px solid #e4ecee;background:#fff;min-height:46px;border-radius:12px;font-weight:700;color:#26363b;transition:.18s}
.v3-day:hover:not(:disabled){border-color:var(--book-blue);transform:translateY(-1px)}
.v3-day.available{background:#f7fcfc}.v3-day.selected{background:var(--book-blue);color:#fff;border-color:var(--book-blue)}
.v3-day:disabled,.v3-day.unavailable{background:#f5f6f6;color:#bdc4c6;border-color:#eef0f1;cursor:not-allowed;text-decoration:line-through}
.v3-day.outside{visibility:hidden}.v3-loading,.v3-empty{padding:16px;text-align:center;color:#7b888c;background:#f7f9f9;border-radius:12px;width:100%}
.v3-loading i{display:inline-block;animation:v3spin 1s linear infinite;margin-right:6px}@keyframes v3spin{to{transform:rotate(360deg)}}
.v3-professionals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.v3-professional{position:relative;border:1px solid #dfe9eb;background:#fff;border-radius:14px;padding:14px 14px 14px 46px;text-align:left;color:#243438}
.v3-professional:hover{border-color:var(--book-blue)}.v3-professional.selected{border-color:var(--book-blue);background:#f1fbfc;box-shadow:0 0 0 2px rgba(33,151,163,.08)}
.v3-professional i{position:absolute;left:15px;top:50%;transform:translateY(-50%);font-size:20px;color:var(--book-blue)}
.v3-professional strong{display:block}.v3-professional small{display:block;color:#7b888c;margin-top:2px}
@media(max-width:767px){.v3-schedule-block{padding:15px;border-radius:15px}.v3-calendar-weekdays,.v3-calendar-grid{gap:4px}.v3-day{min-height:42px;border-radius:9px;font-size:.85rem}.v3-professionals{grid-template-columns:1fr}}


/* ===== LUWELL V3 CALENDAR — POLISHED OVERRIDE ===== */
.v3-schedule-block{
  margin:0 0 26px;
  padding:24px;
  border:1px solid #e2ecee;
  border-radius:20px;
  background:#fff;
  box-shadow:0 10px 30px rgba(28,53,58,.045);
}
.v3-section-label{
  display:flex;
  align-items:flex-start;
  gap:13px;
  margin-bottom:22px;
}
.v3-section-label>span{
  width:34px;height:34px;flex:0 0 34px;
  display:grid;place-items:center;
  border-radius:50%;
  background:#2197a3;color:#fff;
  font:700 .85rem/1 "Poppins",sans-serif;
}
.v3-section-label>div{display:flex;flex-direction:column;gap:3px}
.v3-section-label strong{
  display:block;
  color:#1d282c;
  font:600 1rem/1.35 "Poppins",sans-serif;
}
.v3-section-label small{
  display:block;
  color:#7a878b;
  font-size:.82rem;
  line-height:1.45;
}
.v3-calendar{
  width:100%;
  min-height:0;
  max-width:720px;
  margin:0 auto;
  padding:20px 22px 22px;
  border:1px solid #edf1f2;
  border-radius:18px;
  background:#fbfdfd;
}
.v3-calendar-head{
  display:grid;
  grid-template-columns:42px 1fr 42px;
  align-items:center;
  gap:12px;
  margin-bottom:20px;
}
.v3-calendar-head strong{
  text-align:center;
  color:#1d282c;
  font:600 1.05rem/1.2 "Poppins",sans-serif;
}
.v3-calendar-nav{
  width:40px;height:40px;
  display:grid;place-items:center;
  border:1px solid #dce7e9;
  border-radius:12px;
  background:#fff;
  color:#2197a3;
  font-size:1.1rem;
  cursor:pointer;
  transition:.18s ease;
}
.v3-calendar-nav:hover{
  background:#eef9fa;
  border-color:#bcdde1;
  transform:translateY(-1px);
}
.v3-calendar-weekdays,
.v3-calendar-grid{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
}
.v3-calendar-weekdays{
  gap:8px;
  margin-bottom:8px;
}
.v3-calendar-weekdays span{
  padding:5px 0;
  text-align:center;
  color:#8a979b;
  font:700 .7rem/1 "Poppins",sans-serif;
  letter-spacing:.07em;
  text-transform:uppercase;
}
.v3-calendar-grid{gap:8px}
.v3-day{
  aspect-ratio:1/1;
  min-height:0;
  width:100%;
  max-width:52px;
  justify-self:center;
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid transparent;
  border-radius:14px;
  background:transparent;
  color:#2a383c;
  font:600 .9rem/1 "Poppins",sans-serif;
  text-decoration:none;
  cursor:pointer;
  transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease,box-shadow .16s ease;
}
.v3-day.available{
  background:#fff;
  border-color:#dce9eb;
  box-shadow:0 2px 7px rgba(29,55,60,.035);
}
.v3-day.available:hover{
  color:#157f8a;
  border-color:#8dcbd1;
  background:#f1fbfc;
  transform:translateY(-2px);
}
.v3-day.selected,
.v3-day.selected:hover{
  background:#2197a3;
  border-color:#2197a3;
  color:#fff;
  box-shadow:0 7px 16px rgba(33,151,163,.22);
  transform:none;
}
.v3-day:disabled,
.v3-day.unavailable{
  background:transparent;
  border-color:transparent;
  color:#c8ced0;
  cursor:not-allowed;
  text-decoration:none;
  box-shadow:none;
}
.v3-day.outside{
  visibility:hidden;
  pointer-events:none;
}
.v3-loading,.v3-empty{
  width:100%;
  padding:24px 16px;
  text-align:center;
  border:0;
  border-radius:14px;
  background:#f5f9f9;
  color:#7b898d;
  font-size:.88rem;
}
#timeSlots.time-slots{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}
#timeSlots .time-slot{
  min-height:46px;
  border:1px solid #dce8ea;
  border-radius:12px;
  background:#fff;
  color:#344347;
  font-weight:600;
}
#timeSlots .time-slot:hover{
  border-color:#8dcbd1;
  background:#f2fbfc;
  color:#157f8a;
}
#timeSlots .time-slot.selected{
  border-color:#2197a3;
  background:#2197a3;
  color:#fff;
}
.v3-professionals{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.v3-professional{
  min-height:70px;
  padding:14px 16px 14px 50px;
  border:1px solid #dfe9eb;
  border-radius:15px;
  background:#fff;
  box-shadow:0 5px 16px rgba(28,53,58,.035);
}
.v3-professional.selected{
  border-color:#2197a3;
  background:#f1fbfc;
  box-shadow:0 0 0 2px rgba(33,151,163,.08);
}

@media(max-width:767px){
  .v3-schedule-block{padding:17px;border-radius:17px}
  .v3-calendar{padding:16px 12px 17px;border-radius:16px}
  .v3-calendar-head{grid-template-columns:38px 1fr 38px;margin-bottom:16px}
  .v3-calendar-nav{width:36px;height:36px;border-radius:10px}
  .v3-calendar-weekdays,.v3-calendar-grid{gap:4px}
  .v3-calendar-weekdays span{font-size:.61rem;letter-spacing:.03em}
  .v3-day{max-width:43px;border-radius:11px;font-size:.82rem}
  #timeSlots.time-slots{grid-template-columns:repeat(2,minmax(0,1fr))}
  .v3-professionals{grid-template-columns:1fr}
}


/* ===== LUWELL CALENDAR FINAL — specificity-safe ===== */
#bookingCalendar.v3-calendar{
  box-sizing:border-box !important;
  width:100% !important;
  max-width:680px !important;
  margin:8px auto 0 !important;
  padding:22px !important;
  background:#fbfdfd !important;
  border:1px solid #e5eeee !important;
  border-radius:18px !important;
  box-shadow:none !important;
}
#bookingCalendar .v3-calendar-head{
  display:grid !important;
  grid-template-columns:42px 1fr 42px !important;
  align-items:center !important;
  gap:12px !important;
  width:100% !important;
  margin:0 0 20px !important;
}
#bookingCalendar .v3-calendar-head strong{
  display:block !important;
  margin:0 !important;
  text-align:center !important;
  color:#202528 !important;
  font-family:"Poppins",sans-serif !important;
  font-size:16px !important;
  font-weight:700 !important;
}
#bookingCalendar button.v3-calendar-nav{
  appearance:none !important;
  -webkit-appearance:none !important;
  box-sizing:border-box !important;
  display:grid !important;
  place-items:center !important;
  width:40px !important;
  height:40px !important;
  min-width:40px !important;
  padding:0 !important;
  margin:0 !important;
  border:1px solid #dce8e9 !important;
  border-radius:12px !important;
  background:#fff !important;
  color:#2197a3 !important;
  box-shadow:none !important;
  line-height:1 !important;
}
#bookingCalendar button.v3-calendar-nav:disabled{
  opacity:.28 !important;
}
#bookingCalendar .v3-calendar-weekdays,
#bookingCalendar .v3-calendar-grid{
  box-sizing:border-box !important;
  display:grid !important;
  grid-template-columns:repeat(7,minmax(0,1fr)) !important;
  width:100% !important;
  gap:8px !important;
}
#bookingCalendar .v3-calendar-weekdays{
  margin:0 0 8px !important;
}
#bookingCalendar .v3-calendar-weekdays span{
  display:block !important;
  padding:5px 0 !important;
  margin:0 !important;
  text-align:center !important;
  color:#8b979a !important;
  font-family:"Poppins",sans-serif !important;
  font-size:10px !important;
  font-weight:700 !important;
  line-height:1 !important;
  letter-spacing:.06em !important;
  text-transform:uppercase !important;
}
#bookingCalendar .v3-calendar-grid > .v3-day{
  appearance:none !important;
  -webkit-appearance:none !important;
  box-sizing:border-box !important;
  display:grid !important;
  place-items:center !important;
  justify-self:center !important;
  width:44px !important;
  height:44px !important;
  min-width:0 !important;
  min-height:0 !important;
  max-width:44px !important;
  padding:0 !important;
  margin:0 !important;
  border:1px solid transparent !important;
  border-radius:12px !important;
  background:transparent !important;
  box-shadow:none !important;
  color:#c3cbcd !important;
  font-family:"Poppins",sans-serif !important;
  font-size:13px !important;
  font-weight:600 !important;
  line-height:1 !important;
  text-decoration:none !important;
}
#bookingCalendar .v3-calendar-grid > button.v3-day.available{
  background:#fff !important;
  border-color:#dce8ea !important;
  color:#26363a !important;
  cursor:pointer !important;
  box-shadow:0 3px 10px rgba(31,58,63,.045) !important;
}
#bookingCalendar .v3-calendar-grid > button.v3-day.available:hover{
  background:#effafb !important;
  border-color:#91cbd1 !important;
  color:#168590 !important;
}
#bookingCalendar .v3-calendar-grid > button.v3-day.selected{
  background:#2197a3 !important;
  border-color:#2197a3 !important;
  color:#fff !important;
  box-shadow:0 7px 18px rgba(33,151,163,.22) !important;
}
#bookingCalendar .v3-calendar-grid > button.v3-day.unavailable,
#bookingCalendar .v3-calendar-grid > button.v3-day:disabled{
  background:transparent !important;
  border-color:transparent !important;
  color:#cbd1d3 !important;
  opacity:1 !important;
  cursor:not-allowed !important;
}
#bookingCalendar .v3-calendar-grid > .v3-day.outside{
  visibility:hidden !important;
}
@media(max-width:767px){
  #bookingCalendar.v3-calendar{padding:16px 10px !important}
  #bookingCalendar .v3-calendar-weekdays,
  #bookingCalendar .v3-calendar-grid{gap:4px !important}
  #bookingCalendar .v3-calendar-grid > .v3-day{
    width:38px !important;height:38px !important;max-width:38px !important;border-radius:10px !important;font-size:12px !important;
  }
  #bookingCalendar .v3-calendar-weekdays span{font-size:9px !important;letter-spacing:0 !important}
}
