:root {
  --premium-primary: #b69a62;
  --premium-primary-hover: #8f7444;
  --premium-text: #40382f;
  --premium-page-bg: #f3eee5;
  --premium-card: #faf7f1;
  --premium-heading-font: "Cormorant Garamond", serif;
  --premium-body-font: "Outfit", sans-serif;
  --premium-on-primary: #fff;
}
.premium-booking-hero { margin-top: 0 !important; }
body.premium-booking,
body.editorial-waitlist {
  background: var(--premium-page-bg) !important;
  color: var(--premium-text) !important;
  font-family: var(--premium-body-font) !important;
  font-weight: 300;
}
.premium-nav {
  background: color-mix(in srgb, var(--premium-card) 95%, transparent) !important;
  border-bottom: 1px solid color-mix(in srgb, var(--premium-text) 17%, transparent) !important;
  box-shadow: none !important;
  backdrop-filter: blur(18px);
}
.premium-booking-hero {
  min-height: 330px !important;
  border-radius: 0 0 50% 50% !important;
  background: var(--lustre-dark-surface, color-mix(in srgb, var(--premium-primary-hover) 42%, #29251f)) !important;
  color: var(--premium-on-primary) !important;
}
.premium-booking-hero h1,
.premium-booking-title,
.premium-service-card h2,
.premium-service-card h3,
.premium-calendar-title,
.premium-summary-title,
.editorial-waitlist h1 {
  font-family: var(--premium-heading-font) !important;
  font-weight: 400 !important;
  letter-spacing: -.025em !important;
}
.premium-booking-hero h1,
.premium-booking-title { font-size: clamp(3.2rem, 7vw, 6.5rem) !important; }
.premium-booking-subtitle,
.premium-back-home { color: color-mix(in srgb, var(--premium-on-primary) 82%, transparent) !important; }
.premium-appointment-body,
.premium-booking-body { padding-top: clamp(55px, 8vw, 110px) !important; }
.premium-service-card,
.premium-calendar-card,
.premium-time-card,
.premium-summary-card,
.premium-form-card,
.editorial-waitlist .waitlist-card,
.service-card {
  border: 1px solid color-mix(in srgb, var(--premium-primary) 25%, transparent) !important;
  border-radius: 2px 70px 2px 2px !important;
  background: color-mix(in srgb, var(--premium-primary) 4%, var(--premium-card)) !important;
  box-shadow: none !important;
}
.premium-service-card:nth-child(even),
.service-card:nth-child(even) { border-radius: 70px 2px 2px 2px !important; }
.premium-service-card:hover,
.service-card:hover {
  transform: translateY(-3px) !important;
  border-color: var(--premium-primary) !important;
  box-shadow: 0 18px 48px color-mix(in srgb, var(--premium-text) 9%, transparent) !important;
}
.premium-primary-btn,
.premium-book-btn,
.btn-primary,
.editorial-waitlist button[type="submit"] {
  background: var(--premium-primary) !important;
  border-color: var(--premium-primary) !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  color: var(--premium-on-primary) !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
}
.premium-secondary-btn,
.btn-outline-primary {
  border-color: var(--premium-primary) !important;
  border-radius: 999px !important;
  color: var(--premium-primary-hover) !important;
}
.premium-flow-step .num,
.premium-flow-step.active .num { border-color: var(--premium-primary) !important; }
.premium-flow-step.active .num { background: var(--premium-primary) !important; color: var(--premium-on-primary) !important; }
/* Booking headers sit on a darkened theme color; use a consistent light ink there. */
body.premium-booking .premium-booking-hero .premium-back-home,
body.premium-booking .premium-booking-hero .premium-booking-subtitle,
body.premium-booking .premium-booking-hero .premium-booking-title,
body.premium-booking .premium-booking-hero .premium-appointment-title,
body.premium-booking .premium-booking-hero h1,
body.premium-booking .premium-booking-hero .premium-flow-step,
body.premium-booking .premium-booking-hero .premium-flow-step .label {
  color: #fffaf5 !important;
}
body.premium-booking .premium-booking-hero .premium-flow-step .num {
  color: #29251f !important;
  background: #fffaf5 !important;
  border-color: #fffaf5 !important;
}
body.premium-booking .premium-booking-hero .premium-flow-step .num:not(:has(i)) {
  padding: 0 !important;
  line-height: 1;
}
body.premium-booking .premium-booking-hero .premium-flow-step.active .num {
  color: #29251f !important;
  background: color-mix(in srgb, var(--premium-primary) 40%, #fffaf5) !important;
  border-color: #fffaf5 !important;
}
body.premium-booking .premium-booking-hero .flow-line,
body.premium-booking .premium-booking-hero .flow-line.active {
  background: rgba(255, 250, 245, .65) !important;
  opacity: 1 !important;
}
body.premium-booking .premium-booking-hero .flow-step-link:hover,
body.premium-booking .premium-booking-hero .premium-back-home:hover {
  color: #fff !important;
}
.premium-service-card .price,
.premium-service-card-meta .price,
.premium-calendar-title,
.editorial-waitlist .eyebrow { color: var(--premium-primary-hover) !important; }
.form-control,
.custom-select,
input,
textarea,
select {
  border-color: color-mix(in srgb, var(--premium-text) 20%, transparent) !important;
  border-radius: 14px !important;
  background: color-mix(in srgb, var(--premium-primary) 2%, #fff) !important;
}
.form-control:focus,
input:focus,
textarea:focus,
select:focus {
  border-color: var(--premium-primary) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--premium-primary) 13%, transparent) !important;
}
.editorial-waitlist { background: var(--premium-page-bg) !important; }
.editorial-waitlist::before { background: radial-gradient(circle at 20% 10%, color-mix(in srgb, var(--premium-primary) 18%, transparent), transparent 45%) !important; }

@media (max-width: 767px) {
  .premium-booking-hero { min-height: 280px !important; border-radius: 0 0 38% 38% !important; }
  body.premium-booking .premium-booking-hero .premium-flow-steps { width: 100%; gap: 4px; padding-inline: 0; }
  body.premium-booking .premium-booking-hero .premium-flow-step { flex: 1 1 0; min-width: 0; align-items: center; text-align: center; }
  body.premium-booking .premium-booking-hero .premium-flow-step .label { display: block; width: 100%; max-width: none; text-align: center; font-size: .62rem !important; line-height: 1.2; }
  body.premium-booking .premium-booking-hero .premium-flow-step .label-full { display: none; }
  body.premium-booking .premium-booking-hero .premium-flow-step .label-short { display: inline; }
  body.premium-booking .premium-booking-hero .flow-line { flex: 0 1 20px; min-width: 4px; max-width: 20px; }
  .premium-service-card,
  .premium-calendar-card,
  .premium-time-card,
  .premium-summary-card,
  .premium-form-card { border-radius: 2px 42px 2px 2px !important; }
}
