/**
 * PA Media Booking — "Ive" design layer.
 *
 * The definitive design language for the booking funnel: calm, white, precise.
 * Inspired by Apple/Jony Ive — deference, clarity, generous whitespace, one
 * accent, soft depth, continuous-corner radii, and physics-based motion.
 *
 * Loads LAST (after booking-pro.css) so it harmonises the older v4 / experience
 * / saas / pro layers into a single coherent system. Scoped to .pa-booking-root.
 */

/* ============================================================= TOKENS ===== */
.pa-booking-root.pa-booking-v4 {
  /* Apple system greys */
  --iv-ink: #1d1d1f;
  --iv-secondary: #6e6e73;
  --iv-tertiary: #86868b;
  --iv-hairline: #d2d2d7;
  --iv-hairline-soft: rgba(0, 0, 0, 0.08);
  --iv-surface: #ffffff;
  --iv-surface-2: #f5f5f7;
  --iv-surface-3: #fbfbfd;
  --iv-accent: #0071e3;      /* Apple link/focus blue */
  --iv-accent-hover: #0077ed;
  --iv-focus-ring: rgba(0, 113, 227, 0.28);

  /* One consistent side gutter used by the hero + app body so text lines up
     down the whole funnel and never crowds the edge. */
  --iv-gutter: clamp(1.5rem, 4.5vw, 3rem);

  /* Inner padding for every box/card — text must never touch the left edge. */
  --iv-box-pad: clamp(1.35rem, 5vw, 1.85rem);

  /* Continuous-corner radii */
  --iv-r-shell: 28px;
  --iv-r-card: 18px;
  --iv-r-control: 12px;
  --iv-r-pill: 980px;

  /* Soft, diffuse depth */
  --iv-shadow-1: 0 1px 2px rgba(0, 0, 0, 0.04);
  --iv-shadow-2: 0 4px 16px rgba(0, 0, 0, 0.06);
  --iv-shadow-3: 0 18px 48px rgba(0, 0, 0, 0.10);

  /* Apple easing */
  --iv-ease: cubic-bezier(0.28, 0.11, 0.32, 1);
  --iv-ease-spring: cubic-bezier(0.34, 1.32, 0.46, 1);

  /* Map legacy variables onto the Ive system so older layers inherit it */
  --pa-color-ink: var(--iv-ink);
  --pa-color-muted: var(--iv-secondary);
  --pa-color-subtle: var(--iv-tertiary);
  --pa-color-border: var(--iv-hairline);
  --pa-color-surface: var(--iv-surface);
  --pa-color-surface-2: var(--iv-surface-2);
  --pa-color-focus: var(--iv-accent);
  --bk-ink: var(--iv-ink);
  --bk-muted: var(--iv-secondary);
  --bk-stroke: var(--iv-hairline);
  --bk-surface: var(--iv-surface);
}

/* ========================================================= TYPOGRAPHY ===== */
body.pa-glass-site .pa-booking-root.pa-booking-v4,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 {
  font-family: "SF Pro Display", "SF Pro Text", -apple-system, BlinkMacSystemFont,
    "Helvetica Neue", Helvetica, Arial, sans-serif !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-feature-settings: "kern" 1, "liga" 1;
  letter-spacing: -0.01em;
  color: var(--iv-ink);
}

/* ============================================================== SHELL ===== */
/* Replace the busy coloured "liquid glass" wash with a calm white surface. */
body.pa-glass-site .pa-booking-root.pa-booking-v4,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 {
  width: 100% !important;
  max-width: min(860px, calc(100vw - 2rem)) !important;
  margin: 1.5rem auto 3rem !important;
  border-radius: var(--iv-r-shell) !important;
  border: 1px solid var(--iv-hairline-soft) !important;
  background: var(--iv-surface) !important;
  background-image: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-shadow: var(--iv-shadow-3) !important;
  overflow: hidden !important;
}

/* Kill the coloured radial ambient layers — Ive deference. */
body.pa-glass-site .pa-booking-root.pa-booking-v4::before,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4::before,
body.pa-glass-site .pa-booking-root.pa-booking-v4::after,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4::after {
  display: none !important;
}

/* Light-grey body so the white cards inside read as distinct, premium surfaces
   instead of white-on-white boxes. */
body.pa-glass-site .pa-booking-v4 .pa-booking-app,
body.wp-theme-gutenify-photography .pa-booking-v4 .pa-booking-app {
  background: var(--iv-surface-2) !important;
  background-image: none !important;
  border-top: none !important;
  padding: clamp(1.5rem, 4.5vw, 3rem) var(--iv-gutter) clamp(2rem, 5vw, 3.25rem) !important;
}

/* =============================================================== HERO ===== */
/* Body-scoped so it beats the theme's higher-specificity padding rules and
   lines the hero up with the app body for a single, consistent side gutter. */
body.pa-glass-site .pa-booking-v4 .pa-booking-hero,
body.wp-theme-gutenify-photography .pa-booking-v4 .pa-booking-hero {
  padding: clamp(2.25rem, 6vw, 3.5rem) var(--iv-gutter) clamp(1.75rem, 4vw, 2.5rem) !important;
  border-bottom: 1px solid var(--iv-hairline-soft) !important;
  background: var(--iv-surface) !important;
}

.pa-booking-v4 .pa-booking-eyebrow {
  font-size: 0.78rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em !important;
  text-transform: none !important;
  color: var(--iv-tertiary) !important;
  margin: 0 0 0.6rem !important;
}

.pa-booking-v4 .pa-booking-title {
  font-size: clamp(1.9rem, 5.2vw, 2.6rem) !important;
  font-weight: 700 !important;
  line-height: 1.06 !important;
  letter-spacing: -0.025em !important;
  color: var(--iv-ink) !important;
  margin: 0 0 0.7rem !important;
}

.pa-booking-v4 .pa-booking-lead,
.pa-booking-v4 .pa-booking-lead--hero {
  font-size: clamp(1.05rem, 2.4vw, 1.2rem) !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  letter-spacing: -0.01em !important;
  color: var(--iv-secondary) !important;
  max-width: 33rem !important;
}

.pa-booking-v4 .pa-booking-value-prop {
  font-size: 0.98rem !important;
  color: var(--iv-secondary) !important;
  line-height: 1.55 !important;
  margin-top: 1rem !important;
}

.pa-booking-v4 .pa-booking-value-prop strong {
  color: var(--iv-ink) !important;
  font-weight: 600 !important;
}

/* Credential strip — quiet, evenly spaced */
.pa-booking-v4 .pa-booking-credential-strip {
  margin-top: 1.4rem !important;
  gap: 0.5rem 1.25rem !important;
}

.pa-booking-v4 .pa-credential-item {
  font-size: 0.84rem !important;
  font-weight: 500 !important;
  letter-spacing: -0.005em !important;
  color: var(--iv-secondary) !important;
}

.pa-booking-v4 .pa-credential-icon {
  color: var(--iv-ink) !important;
}

/* ====================================================== STEPPER CHROME ===== */
body.pa-glass-site .pa-booking-v4 .pa-booking-chrome,
body.wp-theme-gutenify-photography .pa-booking-v4 .pa-booking-chrome {
  margin-bottom: clamp(1.5rem, 4vw, 2rem) !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.pa-booking-v4 .pa-stepper {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  padding: 0 !important;
  gap: 0 !important;
}

.pa-booking-v4 .pa-stepper-item {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  gap: 0.5rem !important;
}

.pa-booking-v4 .pa-stepper-num {
  width: 1.6rem !important;
  height: 1.6rem !important;
  border-radius: 50% !important;
  border: 1.5px solid var(--iv-hairline) !important;
  background: var(--iv-surface) !important;
  color: var(--iv-tertiary) !important;
  font-size: 0.8rem !important;
  font-weight: 600 !important;
  box-shadow: none !important;
  transition: all 0.4s var(--iv-ease) !important;
}

.pa-booking-v4 .pa-stepper-item.is-active .pa-stepper-num {
  background: var(--iv-ink) !important;
  border-color: var(--iv-ink) !important;
  color: #fff !important;
}

.pa-booking-v4 .pa-stepper-item.is-done .pa-stepper-num {
  background: var(--iv-ink) !important;
  border-color: var(--iv-ink) !important;
  color: #fff !important;
}

.pa-booking-v4 .pa-stepper-label {
  font-size: 0.82rem !important;
  font-weight: 500 !important;
  letter-spacing: -0.01em !important;
  color: var(--iv-tertiary) !important;
  text-transform: none !important;
}

.pa-booking-v4 .pa-stepper-item.is-active .pa-stepper-label {
  color: var(--iv-ink) !important;
  font-weight: 600 !important;
}

.pa-booking-v4 .pa-stepper-meter {
  background: var(--iv-hairline) !important;
  height: 2px !important;
  border-radius: 2px !important;
  overflow: hidden !important;
}

.pa-booking-v4 .pa-stepper-meter-fill {
  background: var(--iv-ink) !important;
  transition: width 0.5s var(--iv-ease) !important;
}

/* Schedule sub-flow progress */
.pa-booking-v4 .pa-flow-progress-meter {
  background: var(--iv-hairline) !important;
}
.pa-booking-v4 .pa-flow-progress-meter-fill {
  background: var(--iv-ink) !important;
  transition: width 0.5s var(--iv-ease) !important;
}
.pa-booking-v4 .pa-flow-progress-label {
  color: var(--iv-tertiary) !important;
  font-weight: 500 !important;
  letter-spacing: -0.01em !important;
  text-transform: none !important;
}
.pa-booking-v4 .pa-flow-progress-item.is-active .pa-flow-progress-label {
  color: var(--iv-ink) !important;
  font-weight: 600 !important;
}
.pa-booking-v4 .pa-flow-progress-item.is-done .pa-flow-progress-icon,
.pa-booking-v4 .pa-flow-progress-item.is-active .pa-flow-progress-icon {
  background: var(--iv-ink) !important;
  border-color: var(--iv-ink) !important;
  color: #fff !important;
}

/* ===================================================== SECTION HEADERS ===== */
.pa-booking-v4 .pa-section-title {
  font-size: 1.32rem !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
  color: var(--iv-ink) !important;
  margin-bottom: 0.4rem !important;
}

.pa-booking-v4 .pa-section-hint,
.pa-booking-v4 .pa-panel-hint,
.pa-booking-v4 .pa-step-hint,
.pa-booking-v4 .pa-step-intro-lead {
  font-size: 0.95rem !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  color: var(--iv-secondary) !important;
}

.pa-booking-v4 .pa-step-intro-eyebrow {
  color: var(--iv-tertiary) !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em !important;
  text-transform: none !important;
}

.pa-booking-v4 .pa-step-intro-title {
  font-size: 1.5rem !important;
  font-weight: 700 !important;
  letter-spacing: -0.022em !important;
  color: var(--iv-ink) !important;
}

/* Section cards — each step is a clean white card with EQUAL padding on all four
   sides, sitting on the grey app canvas with a clear gap between them. This kills
   the old slate "active ring", the white-on-white nesting, and the bottom-touch. */
.pa-booking-v4 .pa-glass-section,
.pa-booking-v4 .pa-glass-section--service,
.pa-booking-v4 .pa-glass-section--schedule,
.pa-booking-v4 .pa-glass-section--time {
  background: var(--iv-surface) !important;
  background-image: none !important;
  border: 1px solid var(--iv-hairline) !important;
  border-top: 1px solid var(--iv-hairline) !important;
  border-radius: var(--iv-r-card) !important;
  box-shadow: var(--iv-shadow-1) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  padding: var(--iv-box-pad) !important;
  margin: 0 !important;
}

.pa-booking-v4 .pa-booking-sheet > .pa-glass-section:first-child,
.pa-booking-v4 .pa-glass-section:first-child {
  border-top: 1px solid var(--iv-hairline) !important;
  padding-top: var(--iv-box-pad) !important;
}

.pa-booking-v4 .pa-booking-sheet {
  gap: clamp(1.1rem, 3.2vw, 1.5rem) !important;
}

/* Locked/disabled section reads quieter, but keeps the same padded card */
.pa-booking-v4 .pa-glass-section.is-locked {
  background: var(--iv-surface-3) !important;
  box-shadow: none !important;
}

/* ==================================================== SERVICE OPTIONS ===== */
.pa-booking-v4 .pa-service-list,
.pa-booking-v4 .pa-service-list--simple {
  gap: 0.75rem !important;
}

.pa-booking-v4 .pa-service-option {
  border-radius: var(--iv-r-control) !important;
  border: 1px solid transparent !important;
  background: var(--iv-surface-2) !important;
  box-shadow: none !important;
  transition: border-color 0.35s var(--iv-ease),
    background 0.35s var(--iv-ease), box-shadow 0.35s var(--iv-ease),
    transform 0.2s var(--iv-ease) !important;
}

.pa-booking-v4 .pa-service-option:hover:not(.is-selected) {
  border-color: var(--iv-hairline) !important;
  background: #eeeef0 !important;
  box-shadow: none !important;
  transform: none !important;
}

.pa-booking-v4 .pa-service-option.is-selected {
  background: var(--iv-ink) !important;
  border-color: var(--iv-ink) !important;
  color: #fff !important;
  box-shadow: var(--iv-shadow-2) !important;
  transform: none !important;
}

.pa-booking-v4 .pa-service-option.is-selected::after {
  background: rgba(255, 255, 255, 0.2) !important;
  color: #fff !important;
}

.pa-booking-v4 .pa-service-option-name {
  font-size: 1.05rem !important;
  font-weight: 600 !important;
  letter-spacing: -0.015em !important;
  line-height: 1.3 !important;
}

.pa-booking-v4 .pa-service-option-detail {
  font-size: 0.92rem !important;
  font-weight: 400 !important;
  color: var(--iv-secondary) !important;
  line-height: 1.45 !important;
}

.pa-booking-v4 .pa-service-option.is-selected .pa-service-option-detail {
  color: rgba(255, 255, 255, 0.78) !important;
}

.pa-booking-v4 .pa-service-recommended {
  display: inline-flex !important;
  align-self: flex-start !important;
  width: auto !important;
  max-width: max-content !important;
  align-items: center !important;
  border-radius: var(--iv-r-pill) !important;
  background: var(--iv-ink) !important;
  color: #fff !important;
  font-size: 0.68rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em !important;
  text-transform: uppercase !important;
  padding: 0.2rem 0.6rem !important;
  margin-bottom: 0.5rem !important;
}

.pa-booking-v4 .pa-service-option.is-selected .pa-service-recommended {
  background: #fff !important;
  color: var(--iv-ink) !important;
}

.pa-booking-v4 .pa-service-selected {
  border-radius: var(--iv-r-card) !important;
  border: 1px solid var(--iv-hairline) !important;
  background: var(--iv-surface-2) !important;
}

.pa-booking-v4 .pa-selected-value {
  color: var(--iv-ink) !important;
  font-weight: 600 !important;
  letter-spacing: -0.01em !important;
}

/* ========================================================== CALENDAR ===== */
/* Calendar lives inside the padded Date card — keep it transparent so it isn't
   a white box inside a white box. */
.pa-booking-v4 .pa-cal-pro .pa-cal-shell {
  border-radius: 0 !important;
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  overflow: visible !important;
  padding: 0 !important;
}

.pa-booking-v4 .pa-cal-pro .pa-cal-title {
  font-size: 1.12rem !important;
  font-weight: 600 !important;
  letter-spacing: -0.018em !important;
  color: var(--iv-ink) !important;
}

.pa-booking-v4 .pa-cal-pro .pa-cal-subtitle {
  font-weight: 400 !important;
  color: var(--iv-secondary) !important;
}

.pa-booking-v4 .pa-cal-pro .pa-cal-nav-btn {
  border-radius: 50% !important;
  width: 2.3rem !important;
  height: 2.3rem !important;
  border: 1px solid var(--iv-hairline) !important;
  background: var(--iv-surface) !important;
  color: var(--iv-ink) !important;
  box-shadow: none !important;
  transition: background 0.3s var(--iv-ease), border-color 0.3s var(--iv-ease) !important;
}

.pa-booking-v4 .pa-cal-pro .pa-cal-nav-btn:hover:not(:disabled) {
  background: var(--iv-surface-2) !important;
  border-color: var(--iv-tertiary) !important;
}

.pa-booking-v4 .pa-cal-pro .pa-cal-dow {
  font-size: 0.7rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em !important;
  color: var(--iv-tertiary) !important;
}

.pa-booking-v4 .pa-cal-pro .pa-cal-grid {
  gap: 4px !important;
}

.pa-booking-v4 .pa-cal-pro .pa-cal-day {
  border-radius: 50% !important;
  font-weight: 500 !important;
  letter-spacing: -0.01em !important;
  transition: background 0.28s var(--iv-ease), border-color 0.28s var(--iv-ease),
    color 0.28s var(--iv-ease), transform 0.18s var(--iv-ease) !important;
}

.pa-booking-v4 .pa-cal-pro .pa-cal-day.is-available {
  background: var(--iv-surface) !important;
  border: 1px solid transparent !important;
  color: var(--iv-ink) !important;
  box-shadow: none !important;
}

.pa-booking-v4 .pa-cal-pro .pa-cal-day.is-available.is-weekend {
  background: var(--iv-surface) !important;
}

.pa-booking-v4 .pa-cal-pro .pa-cal-day.is-available:hover:not(.is-selected) {
  background: var(--iv-surface-2) !important;
  border-color: transparent !important;
  box-shadow: none !important;
  transform: scale(1.04) !important;
}

.pa-booking-v4 .pa-cal-pro .pa-cal-day.is-today:not(.is-selected):not(.is-past):not(.is-unavailable) {
  border-color: var(--iv-hairline) !important;
}

.pa-booking-v4 .pa-cal-pro .pa-cal-day.is-today:not(.is-selected)::after {
  background: var(--iv-ink) !important;
}

.pa-booking-v4 .pa-cal-pro .pa-cal-day.is-selected {
  background: var(--iv-ink) !important;
  border-color: var(--iv-ink) !important;
  color: #fff !important;
  box-shadow: var(--iv-shadow-2) !important;
  transform: none !important;
}

.pa-booking-v4 .pa-cal-pro .pa-cal-day.is-past,
.pa-booking-v4 .pa-cal-pro .pa-cal-day.is-unavailable {
  background: transparent !important;
  color: #c7c7cc !important;
}

.pa-booking-v4 .pa-cal-availability-badge {
  border-radius: var(--iv-r-pill) !important;
  background: var(--iv-surface-2) !important;
  border: 1px solid var(--iv-hairline) !important;
  color: var(--iv-secondary) !important;
  font-weight: 500 !important;
  letter-spacing: -0.005em !important;
}

.pa-booking-v4 .pa-cal-today-btn {
  color: var(--iv-accent) !important;
  font-weight: 500 !important;
}

.pa-booking-v4 .pa-cal-timezone,
.pa-booking-v4 .pa-cal-meta-note {
  color: var(--iv-tertiary) !important;
  font-weight: 400 !important;
}

/* ====================================================== TIME WINDOWS ===== */
.pa-booking-v4 .pa-time-grid {
  gap: 0.7rem !important;
}

.pa-booking-v4 .pa-time-card {
  border-radius: var(--iv-r-control) !important;
  border: 1px solid var(--iv-hairline) !important;
  background: var(--iv-surface) !important;
  color: var(--iv-ink) !important;
  box-shadow: none !important;
  font-weight: 500 !important;
  letter-spacing: -0.01em !important;
  transition: border-color 0.32s var(--iv-ease), background 0.32s var(--iv-ease),
    color 0.32s var(--iv-ease), transform 0.18s var(--iv-ease) !important;
}

.pa-booking-v4 .pa-time-card:hover:not(.is-selected) {
  border-color: var(--iv-tertiary) !important;
  background: var(--iv-surface-2) !important;
  transform: translateY(-1px) !important;
}

.pa-booking-v4 .pa-time-card.is-selected {
  background: var(--iv-ink) !important;
  border-color: var(--iv-ink) !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  box-shadow: var(--iv-shadow-2) !important;
}

/* booking.css forces dark ink on .pa-booking-root .pa-time-title with !important;
   inside a selected card that becomes black-on-black. Beat it with higher
   specificity + -webkit-text-fill-color (Safari honors fill over color). */
body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-time-card.is-selected .pa-time-title,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-time-card.is-selected .pa-time-title,
body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-time-card.is-selected .pa-time-range,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-time-card.is-selected .pa-time-range,
body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-time-card.is-selected .pa-time-sub,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-time-card.is-selected .pa-time-sub,
body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-time-card.is-selected .pa-time-note,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-time-card.is-selected .pa-time-note,
body.pa-glass-site .pa-booking-v4 .pa-time-card.is-selected .pa-time-title,
body.wp-theme-gutenify-photography .pa-booking-v4 .pa-time-card.is-selected .pa-time-title,
body.pa-glass-site .pa-booking-v4 .pa-time-card.is-selected .pa-time-range,
body.wp-theme-gutenify-photography .pa-booking-v4 .pa-time-card.is-selected .pa-time-range,
body.pa-glass-site .pa-booking-v4 .pa-time-card.is-selected .pa-time-sub,
body.wp-theme-gutenify-photography .pa-booking-v4 .pa-time-card.is-selected .pa-time-sub,
body.pa-glass-site .pa-booking-v4 .pa-time-card.is-selected .pa-time-note,
body.wp-theme-gutenify-photography .pa-booking-v4 .pa-time-card.is-selected .pa-time-note,
.pa-booking-root.pa-booking-v4 .pa-time-card.is-selected .pa-time-title,
.pa-booking-root.pa-booking-v4 .pa-time-card.is-selected .pa-time-range,
.pa-booking-root.pa-booking-v4 .pa-time-card.is-selected .pa-time-sub,
.pa-booking-root.pa-booking-v4 .pa-time-card.is-selected .pa-time-note,
.pa-booking-v4 .pa-time-card.is-selected .pa-time-title,
.pa-booking-v4 .pa-time-card.is-selected .pa-time-range,
.pa-booking-v4 .pa-time-card.is-selected .pa-time-sub,
.pa-booking-v4 .pa-time-card.is-selected .pa-time-note {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}

body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-time-card.is-selected .pa-time-range,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-time-card.is-selected .pa-time-range,
body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-time-card.is-selected .pa-time-sub,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-time-card.is-selected .pa-time-sub,
body.pa-glass-site .pa-booking-v4 .pa-time-card.is-selected .pa-time-range,
body.wp-theme-gutenify-photography .pa-booking-v4 .pa-time-card.is-selected .pa-time-range,
body.pa-glass-site .pa-booking-v4 .pa-time-card.is-selected .pa-time-sub,
body.wp-theme-gutenify-photography .pa-booking-v4 .pa-time-card.is-selected .pa-time-sub,
.pa-booking-root.pa-booking-v4 .pa-time-card.is-selected .pa-time-range,
.pa-booking-root.pa-booking-v4 .pa-time-card.is-selected .pa-time-sub,
.pa-booking-v4 .pa-time-card.is-selected .pa-time-range,
.pa-booking-v4 .pa-time-card.is-selected .pa-time-sub {
  color: rgba(255, 255, 255, 0.82) !important;
  -webkit-text-fill-color: rgba(255, 255, 255, 0.82) !important;
}

/* Unselected time labels stay readable on the light card surface. */
.pa-booking-root.pa-booking-v4 .pa-time-card:not(.is-selected) .pa-time-title,
.pa-booking-v4 .pa-time-card:not(.is-selected) .pa-time-title {
  color: var(--iv-ink) !important;
  -webkit-text-fill-color: var(--iv-ink) !important;
}

.pa-booking-root.pa-booking-v4 .pa-time-card:not(.is-selected) .pa-time-range,
.pa-booking-v4 .pa-time-card:not(.is-selected) .pa-time-range {
  color: var(--iv-secondary) !important;
  -webkit-text-fill-color: var(--iv-secondary) !important;
}

/* =========================================================== FORM ===== */
.pa-booking-v4 .pa-form-group {
  border-radius: var(--iv-r-card) !important;
  border: 1px solid var(--iv-hairline) !important;
  background: var(--iv-surface) !important;
  box-shadow: var(--iv-shadow-1) !important;
  padding: clamp(1.5rem, 4.5vw, 1.9rem) !important;
}

.pa-booking-v4 .pa-form-group-title {
  font-size: 1.08rem !important;
  font-weight: 600 !important;
  letter-spacing: -0.018em !important;
  color: var(--iv-ink) !important;
}

.pa-booking-v4 .pa-form-group-hint {
  font-size: 0.9rem !important;
  font-weight: 400 !important;
  color: var(--iv-secondary) !important;
  line-height: 1.45 !important;
}

.pa-booking-v4 .pa-field-label {
  font-size: 0.86rem !important;
  font-weight: 500 !important;
  letter-spacing: -0.005em !important;
  color: var(--iv-ink) !important;
}

.pa-booking-v4 .pa-input,
.pa-booking-v4 .pa-text-input {
  border-radius: var(--iv-r-control) !important;
  border: 1px solid var(--iv-hairline) !important;
  background: var(--iv-surface) !important;
  color: var(--iv-ink) !important;
  font-size: 1rem !important;
  font-family: inherit !important;
  letter-spacing: -0.01em !important;
  box-shadow: none !important;
  padding: 0.85rem 1rem !important;
  transition: border-color 0.25s var(--iv-ease), box-shadow 0.25s var(--iv-ease) !important;
}

.pa-booking-v4 .pa-input::placeholder,
.pa-booking-v4 .pa-text-input::placeholder {
  color: var(--iv-tertiary) !important;
}

.pa-booking-v4 .pa-input:focus,
.pa-booking-v4 .pa-text-input:focus {
  outline: none !important;
  border-color: var(--iv-accent) !important;
  box-shadow: 0 0 0 4px var(--iv-focus-ring) !important;
}

.pa-booking-v4 .pa-input.pa-input-error,
.pa-booking-v4 .pa-text-input.pa-input-error {
  border-color: #ff3b30 !important;
  box-shadow: 0 0 0 4px rgba(255, 59, 48, 0.18) !important;
}

/* Event-type pills */
.pa-booking-v4 .pa-event-pill {
  border-radius: var(--iv-r-pill) !important;
  border: 1px solid var(--iv-hairline) !important;
  background: var(--iv-surface) !important;
  color: var(--iv-ink) !important;
  font-weight: 500 !important;
  letter-spacing: -0.01em !important;
  box-shadow: none !important;
  transition: all 0.3s var(--iv-ease) !important;
}

.pa-booking-v4 .pa-event-pill:hover:not(.is-selected) {
  border-color: var(--iv-tertiary) !important;
  background: var(--iv-surface-2) !important;
}

.pa-booking-v4 .pa-event-pill.is-selected {
  background: var(--iv-ink) !important;
  border-color: var(--iv-ink) !important;
  color: #fff !important;
}

/* Add-ons */
.pa-booking-v4 .pa-addon-option {
  border-radius: var(--iv-r-card) !important;
  border: 1px solid var(--iv-hairline) !important;
  background: var(--iv-surface) !important;
  box-shadow: none !important;
  transition: border-color 0.3s var(--iv-ease), background 0.3s var(--iv-ease) !important;
}

.pa-booking-v4 .pa-addon-option:hover {
  border-color: var(--iv-tertiary) !important;
  background: var(--iv-surface-2) !important;
}

.pa-booking-v4 .pa-addon-option:has(.pa-addon-checkbox:checked) {
  border-color: var(--iv-ink) !important;
  background: var(--iv-surface-2) !important;
}

.pa-booking-v4 .pa-addon-checkbox {
  accent-color: var(--iv-ink) !important;
}

.pa-booking-v4 .pa-addon-name {
  font-weight: 600 !important;
  letter-spacing: -0.015em !important;
  color: var(--iv-ink) !important;
}

.pa-booking-v4 .pa-addon-desc {
  color: var(--iv-secondary) !important;
}

/* ========================================================= BUTTONS ===== */
.pa-booking-v4 .pa-submit,
.pa-booking-v4 .pa-btn,
.pa-booking-v4 .pa-checkout-btn,
.pa-booking-v4 .pa-schedule-continue.is-ready {
  border-radius: var(--iv-r-pill) !important;
  background: var(--iv-ink) !important;
  border: none !important;
  color: #fff !important;
  font-family: inherit !important;
  font-size: 1.02rem !important;
  font-weight: 500 !important;
  letter-spacing: -0.01em !important;
  box-shadow: none !important;
  padding: 0.95rem 1.6rem !important;
  transition: background 0.3s var(--iv-ease), transform 0.18s var(--iv-ease),
    opacity 0.3s var(--iv-ease) !important;
}

.pa-booking-v4 .pa-submit:hover:not(:disabled),
.pa-booking-v4 .pa-btn:hover:not(:disabled),
.pa-booking-v4 .pa-checkout-btn:hover:not(:disabled),
.pa-booking-v4 .pa-schedule-continue.is-ready:hover {
  background: #000 !important;
  transform: translateY(-1px) !important;
  box-shadow: var(--iv-shadow-2) !important;
}

.pa-booking-v4 .pa-submit:active:not(:disabled),
.pa-booking-v4 .pa-btn:active:not(:disabled),
.pa-booking-v4 .pa-checkout-btn:active:not(:disabled) {
  transform: scale(0.985) !important;
}

.pa-booking-v4 .pa-schedule-continue.is-disabled,
.pa-booking-v4 .pa-submit:disabled,
.pa-booking-v4 .pa-btn:disabled {
  background: var(--iv-surface-2) !important;
  color: var(--iv-tertiary) !important;
  border: 1px solid var(--iv-hairline) !important;
  opacity: 1 !important;
}

.pa-booking-v4 .pa-schedule-continue.is-ready::after {
  display: none !important;
}

/* Text / link buttons — Apple blue */
.pa-booking-v4 .pa-back,
.pa-booking-v4 .pa-text-btn,
.pa-booking-v4 .pa-recap-bar-edit,
.pa-booking-v4 .pa-cal-today-btn {
  color: var(--iv-accent) !important;
  background: transparent !important;
  border: none !important;
  font-weight: 500 !important;
  letter-spacing: -0.01em !important;
  box-shadow: none !important;
  transition: color 0.2s var(--iv-ease) !important;
}

.pa-booking-v4 .pa-back:hover,
.pa-booking-v4 .pa-text-btn:hover,
.pa-booking-v4 .pa-recap-bar-edit:hover {
  color: var(--iv-accent-hover) !important;
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
}

.pa-booking-v4 .pa-continue-footnote {
  color: var(--iv-tertiary) !important;
  font-size: 0.84rem !important;
  font-weight: 400 !important;
}

/* ======================================================== RECAP BAR ===== */
.pa-booking-v4 .pa-recap-bar,
.pa-booking-v4 .pa-booking-recap {
  border-radius: var(--iv-r-card) !important;
  border: 1px solid var(--iv-hairline) !important;
  background: var(--iv-surface) !important;
  box-shadow: var(--iv-shadow-1) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  padding: clamp(1.1rem, 3.5vw, 1.4rem) clamp(1.25rem, 4vw, 1.6rem) !important;
}

.pa-booking-v4 .pa-recap-bar-kicker {
  color: var(--iv-tertiary) !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em !important;
  text-transform: uppercase !important;
}

.pa-booking-v4 .pa-recap-bar-date {
  color: var(--iv-ink) !important;
  font-weight: 600 !important;
  letter-spacing: -0.015em !important;
}

.pa-booking-v4 .pa-recap-bar-meta,
.pa-booking-v4 .pa-recap-bar-deposit {
  color: var(--iv-secondary) !important;
}

/* Date chips */
.pa-booking-v4 .pa-date-chip {
  border-radius: var(--iv-r-pill) !important;
  border: 1px solid var(--iv-hairline) !important;
  background: var(--iv-surface) !important;
  color: var(--iv-ink) !important;
  font-weight: 500 !important;
}

/* Trust / what-happens-next / deposit preview */
.pa-booking-v4 .pa-whats-next,
.pa-booking-v4 .pa-deposit-preview,
.pa-booking-v4 .pa-fast-banner {
  border-radius: var(--iv-r-card) !important;
  border: 1px solid var(--iv-hairline) !important;
  background: var(--iv-surface) !important;
  box-shadow: var(--iv-shadow-1) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  padding: clamp(1.25rem, 4vw, 1.6rem) clamp(1.25rem, 4vw, 1.7rem) !important;
}

.pa-booking-v4 .pa-whats-next-title {
  color: var(--iv-ink) !important;
  font-weight: 600 !important;
  letter-spacing: -0.015em !important;
}

/* Schedule checklist chips */
.pa-booking-v4 .pa-schedule-checklist-item {
  border-radius: var(--iv-r-pill) !important;
  border: 1px solid var(--iv-hairline) !important;
  background: var(--iv-surface) !important;
  color: var(--iv-secondary) !important;
  font-weight: 500 !important;
  transition: all 0.3s var(--iv-ease) !important;
}

.pa-booking-v4 .pa-schedule-checklist-item.is-done {
  border-color: var(--iv-ink) !important;
  color: var(--iv-ink) !important;
}

/* ===================================================== FOCUS RINGS ===== */
.pa-booking-v4 .pa-cal-day:focus-visible,
.pa-booking-v4 .pa-service-option:focus-visible,
.pa-booking-v4 .pa-time-card:focus-visible,
.pa-booking-v4 .pa-event-pill:focus-visible,
.pa-booking-v4 .pa-submit:focus-visible,
.pa-booking-v4 .pa-btn:focus-visible,
.pa-booking-v4 .pa-stepper-item:focus-visible {
  outline: none !important;
  box-shadow: 0 0 0 4px var(--iv-focus-ring) !important;
}

/* ========================================================= MOTION ===== */
.pa-booking-v4 .pa-step-stage--fwd,
.pa-booking-v4 .pa-step-stage--back {
  animation-timing-function: var(--iv-ease) !important;
}

@media (prefers-reduced-motion: reduce) {
  .pa-booking-v4 *,
  .pa-booking-v4 *::before,
  .pa-booking-v4 *::after {
    animation-duration: 0.001ms !important;
    transition-duration: 0.001ms !important;
  }
}

/* ============================================== BREATHING ROOM PASS ===== */
/* Goal: nothing crowds an edge; every box has room; clear space between boxes. */

/* White cards pop on the grey body */
.pa-booking-v4 .pa-time-card {
  box-shadow: var(--iv-shadow-1) !important;
}

/* Service options — comfortable, even padding; room on right for the check */
.pa-booking-v4 .pa-service-option {
  padding: 1.15rem 2.5rem 1.15rem 1.3rem !important;
}

/* Hints become quiet text, not nested boxes — removes box-in-box clutter */
.pa-booking-v4 .pa-date-hint,
.pa-booking-v4 .pa-time-hint,
.pa-booking-v4 .pa-panel-hint {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
  margin: 0.15rem 0 1rem !important;
  color: var(--iv-secondary) !important;
}

/* Calendar — let the days breathe inside the card (shell provides side pad) */
.pa-booking-v4 .pa-cal-pro .pa-cal-grid {
  gap: 7px !important;
  padding: 0.5rem 0 0 !important;
}

.pa-booking-v4 .pa-cal-pro .pa-cal-header {
  padding: 0 0 0.35rem !important;
}

/* —— Vertical rhythm: clear separation between stacked section cards —— */
.pa-booking-v4 .pa-booking-sheet {
  gap: clamp(1.1rem, 3.2vw, 1.5rem) !important;
}

/* Space every stacked block in the schedule step (sheet, recap, checklist,
   trust, actions) so no box butts up against the next. */
.pa-booking-v4 .pa-step-schedule {
  display: flex !important;
  flex-direction: column !important;
  gap: clamp(1.1rem, 3.2vw, 1.5rem) !important;
}

.pa-booking-v4 .pa-step-schedule > * {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.pa-booking-v4 .pa-form,
.pa-booking-v4 .pa-form-grouped {
  display: flex !important;
  flex-direction: column !important;
  gap: clamp(1.1rem, 3.5vw, 1.5rem) !important;
}

.pa-booking-v4 .pa-form-grouped .pa-form-group {
  margin: 0 !important;
}

.pa-booking-v4 .pa-form-group-body {
  display: flex !important;
  flex-direction: column !important;
  gap: 1rem !important;
}

/* Space the big blocks on the details step apart */
.pa-booking-v4 .pa-step .pa-whats-next,
.pa-booking-v4 .pa-step .pa-form,
.pa-booking-v4 .pa-step .pa-payment-schedule-card,
.pa-booking-v4 .pa-step .pa-checkout,
.pa-booking-v4 .pa-step .pa-terms-agreement {
  margin-top: clamp(1.25rem, 4vw, 1.75rem) !important;
}

/* Add-on rows — roomier inner padding */
.pa-booking-v4 .pa-addon-option {
  padding: 1.1rem 1.25rem !important;
}

/* ========================================= LEFT INSET — text never hugs box edge ===== */
/* Headings, hints, labels inside sections inherit section pad; these catch the rest. */

.pa-booking-v4 .pa-section-title,
.pa-booking-v4 .pa-section-hint,
.pa-booking-v4 .pa-section-label,
.pa-booking-v4 .pa-package-pricing-note {
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.pa-booking-v4 .pa-date-hint,
.pa-booking-v4 .pa-time-hint,
.pa-booking-v4 .pa-panel-hint,
.pa-booking-v4 .pa-step-hint {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.pa-booking-v4 .pa-service-selected,
.pa-booking-v4 .pa-recap-bar,
.pa-booking-v4 .pa-booking-recap,
.pa-booking-v4 .pa-whats-next,
.pa-booking-v4 .pa-deposit-preview,
.pa-booking-v4 .pa-fast-banner,
.pa-booking-v4 .pa-form-group,
.pa-booking-v4 .pa-schedule-trust {
  padding-left: var(--iv-box-pad) !important;
  padding-right: var(--iv-box-pad) !important;
}

.pa-booking-v4 .pa-cal-pro .pa-cal-meta,
.pa-booking-v4 .pa-cal-pro .pa-cal-legend,
.pa-booking-v4 .pa-cal-timezone,
.pa-booking-v4 .pa-cal-footer {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.pa-booking-v4 .pa-cal-pro .pa-cal-header,
.pa-booking-v4 .pa-cal-pro .pa-cal-grid {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.pa-booking-v4 .pa-service-option {
  padding-left: 1.3rem !important;
  padding-right: 2.5rem !important;
}

.pa-booking-v4 .pa-field-label,
.pa-booking-v4 .pa-form-group-title,
.pa-booking-v4 .pa-form-group-hint,
.pa-booking-v4 .pa-field-help {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.pa-booking-v4 .pa-input,
.pa-booking-v4 .pa-text-input,
.pa-booking-v4 textarea.pa-text-input {
  padding-left: 1rem !important;
  padding-right: 1rem !important;
}

/* ============================================================ MOBILE ===== */
@media (max-width: 640px) {
  /* Actions + footnote must stack so the button is full-width and nothing
     truncates ("Complete the…"). */
  .pa-booking-v4 .pa-booking-actions {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0.85rem !important;
    text-align: center !important;
  }

  .pa-booking-v4 .pa-booking-actions .pa-schedule-continue,
  .pa-booking-v4 .pa-booking-actions .pa-submit {
    width: 100% !important;
  }

  .pa-booking-v4 .pa-continue-footnote {
    width: 100% !important;
    text-align: center !important;
  }

  /* Recap + actions row (desktop sidebar) collapses to single column */
  .pa-booking-v4 .pa-step-schedule {
    gap: 1rem !important;
  }
}

/* ========================================= SUPPLEMENT — unified Ive briefing ===== */
.pa-booking-v4 {
  --iv-supp-max: min(560px, 100%);
  --iv-supp-card-pad: clamp(1.15rem, 3.6vw, 1.5rem);
  --iv-supp-row-pad: 0.9rem 1.05rem;
  --iv-supp-row-gap: 0.55rem;
  --iv-supp-section-gap: 0.85rem;
  --iv-supp-title: 1.0625rem;   /* 17px section heads */
  --iv-supp-label: 0.9375rem;   /* 15px row titles */
  --iv-supp-body: 0.875rem;     /* 14px supporting copy */
  --iv-supp-line: 1.45;
}

body.pa-glass-site .pa-booking-v4 .pa-booking-supplement,
body.wp-theme-gutenify-photography .pa-booking-v4 .pa-booking-supplement {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: clamp(0.9rem, 2.6vw, 1.15rem) !important;
  background: var(--iv-surface-2) !important;
  padding: 0 var(--iv-gutter) clamp(1.75rem, 4vw, 2.5rem) !important;
  font-family: "SF Pro Text", "SF Pro Display", -apple-system, BlinkMacSystemFont,
    "Helvetica Neue", Helvetica, Arial, sans-serif !important;
  -webkit-font-smoothing: antialiased !important;
}

.pa-booking-v4 .pa-booking-trust-rail {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0.45rem 1rem;
  width: 100%;
  max-width: min(1080px, calc(100vw - 1.5rem));
  margin: 0 auto 0.85rem;
  padding: 0.7rem 1rem;
  border-radius: 14px;
  border: 1px solid rgba(17, 17, 17, 0.08);
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 6px 20px rgba(17, 17, 17, 0.06);
  box-sizing: border-box;
}

.pa-booking-v4 .pa-booking-trust-rail .pa-credential-item {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: rgba(29, 29, 31, 0.78);
  line-height: 1.35;
}

.pa-booking-v4 .pa-booking-help-email {
  width: 100%;
  max-width: min(1080px, calc(100vw - 1.5rem));
  margin: 0.35rem auto 0.85rem;
  padding: 0 1rem;
  text-align: center;
  font-size: 0.9375rem;
  line-height: 1.5;
  color: rgba(29, 29, 31, 0.72);
  box-sizing: border-box;
}

.pa-booking-v4 .pa-booking-help-email a {
  font-weight: 700;
  color: #0071e3;
  text-decoration: none;
}

.pa-booking-v4 .pa-booking-help-email a:hover,
.pa-booking-v4 .pa-booking-help-email a:focus-visible {
  text-decoration: underline;
}

@media (max-width: 640px) {
  .pa-booking-v4 .pa-booking-trust-rail {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
  }
}

.pa-booking-v4 .pa-booking-supplement > * {
  width: var(--iv-supp-max) !important;
  max-width: var(--iv-supp-max) !important;
  margin-inline: auto !important;
  box-sizing: border-box !important;
}

/* Outer cards — identical shell */
.pa-booking-v4 .pa-how-it-works,
.pa-booking-v4 .pa-booking-faq,
.pa-booking-v4 .pa-booking-prep,
.pa-booking-v4 .pa-booking-policies {
  margin: 0 !important;
  padding: var(--iv-supp-card-pad) !important;
  background: var(--iv-surface) !important;
  border: 1px solid var(--iv-hairline) !important;
  border-radius: var(--iv-r-card) !important;
  box-shadow: var(--iv-shadow-1) !important;
}

/* Section headings — one style everywhere */
.pa-booking-v4 .pa-booking-faq-title,
.pa-booking-v4 .pa-booking-prep-title,
.pa-booking-v4 .pa-policies-title {
  margin: 0 0 var(--iv-supp-section-gap) !important;
  padding: 0 !important;
  font-size: var(--iv-supp-title) !important;
  font-weight: 600 !important;
  letter-spacing: -0.02em !important;
  line-height: 1.2 !important;
  color: var(--iv-ink) !important;
}

/* Inner rows — shared inset surface */
.pa-booking-v4 .pa-how-it-works li,
.pa-booking-v4 .pa-faq-item,
.pa-booking-v4 .pa-booking-prep-steps li,
.pa-booking-v4 .pa-policy-card {
  margin: 0 !important;
  padding: var(--iv-supp-row-pad) !important;
  background: var(--iv-surface-2) !important;
  border-radius: var(--iv-r-control) !important;
  border: none !important;
  box-shadow: none !important;
}

/* Row titles — one weight & size */
.pa-booking-v4 .pa-how-it-works li strong,
.pa-booking-v4 .pa-faq-q,
.pa-booking-v4 .pa-booking-prep-steps li strong,
.pa-booking-v4 .pa-policy-card h4 {
  display: block !important;
  margin: 0 0 0.28rem !important;
  padding: 0 !important;
  font-size: var(--iv-supp-label) !important;
  font-weight: 600 !important;
  letter-spacing: -0.01em !important;
  line-height: 1.3 !important;
  color: var(--iv-ink) !important;
}

/* Row body copy — one size & color */
.pa-booking-v4 .pa-how-step-detail,
.pa-booking-v4 .pa-faq-a,
.pa-booking-v4 .pa-booking-prep-steps li span,
.pa-booking-v4 .pa-policy-card p {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: var(--iv-supp-body) !important;
  font-weight: 400 !important;
  letter-spacing: -0.006em !important;
  line-height: var(--iv-supp-line) !important;
  color: var(--iv-secondary) !important;
}

/* —— How it works: 3 equal columns, same row language as FAQ —— */
.pa-booking-v4 .pa-how-it-works {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: var(--iv-supp-row-gap) !important;
  list-style: none !important;
  counter-reset: none !important;
  text-align: left !important;
}

.pa-booking-v4 .pa-how-it-works li::before {
  display: none !important;
  content: none !important;
}

/* —— FAQ list —— */
.pa-booking-v4 .pa-booking-faq-list {
  display: flex !important;
  flex-direction: column !important;
  gap: var(--iv-supp-row-gap) !important;
}

/* —— Prep timeline —— */
.pa-booking-v4 .pa-booking-prep-steps {
  display: flex !important;
  flex-direction: column !important;
  gap: var(--iv-supp-row-gap) !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  counter-reset: none !important;
}

.pa-booking-v4 .pa-booking-prep-steps li {
  display: block !important;
  counter-increment: none !important;
}

.pa-booking-v4 .pa-booking-prep-steps li::before {
  display: none !important;
  content: none !important;
}

.pa-booking-v4 .pa-booking-prep-steps li span {
  grid-column: unset !important;
}

/* —— Policies —— */
.pa-booking-v4 .pa-policies-grid {
  display: flex !important;
  flex-direction: column !important;
  gap: var(--iv-supp-row-gap) !important;
  margin: 0 !important;
}

@media (max-width: 640px) {
  .pa-booking-v4 .pa-how-it-works {
    grid-template-columns: 1fr !important;
  }
}

/* ============================================ DESIGN AUDIT PASS ===== */
/* Goal: one progress system, calm trust line, aligned cards, balanced
   actions, and a policies block that matches FAQ / prep exactly. */

/* 1 — Remove the redundant Service/Date/Time pill row. The top stepper
   (Schedule -> Details) plus the section cards already show progress. */
.pa-booking-v4 .pa-schedule-checklist {
  display: none !important;
}

/* 2 — Trust line becomes a quiet caption, not a heavy uppercase pill. */
.pa-booking-v4 .pa-schedule-trust {
  margin: 0 auto 0.25rem !important;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  font-size: 0.8125rem !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  color: var(--iv-tertiary) !important;
  line-height: 1.5 !important;
}

.pa-booking-v4 .pa-schedule-trust-dot {
  opacity: 0.4 !important;
}

/* 3 — Every stacked block in the schedule step spans the full card width
   (the container uses align-items:start, so block children must be told). */
.pa-booking-v4 .pa-step-schedule {
  align-items: stretch !important;
}

.pa-booking-v4 .pa-step-schedule > .pa-recap-bar,
.pa-booking-v4 .pa-recap-bar--sticky {
  width: 100% !important;
  box-sizing: border-box !important;
}

/* 4 — Action row: button on top, footnote centered beneath it, every width. */
.pa-booking-v4 .pa-booking-actions {
  flex-direction: column !important;
  align-items: center !important;
  gap: 0.7rem !important;
  text-align: center !important;
}

.pa-booking-v4 .pa-booking-actions .pa-continue-footnote {
  width: 100% !important;
  max-width: 480px !important;
  margin: 0 auto !important;
  text-align: center !important;
}

/* Locked/upcoming section hints read left, like the active hints. */
.pa-booking-v4 .pa-glass-section--schedule .pa-panel-hint,
.pa-booking-v4 .pa-glass-section--time .pa-panel-hint {
  text-align: left !important;
}

/* 5 — Policies match FAQ / prep exactly. Body-prefixed selectors beat the
   higher-specificity site.css policy rules that center + uppercase them. */
body.pa-glass-site .pa-booking-v4 .pa-policies-title,
body.wp-theme-gutenify-photography .pa-booking-v4 .pa-policies-title {
  margin: 0 0 var(--iv-supp-section-gap) !important;
  padding: 0 !important;
  border: none !important;
  text-align: left !important;
  font-size: var(--iv-supp-title) !important;
  font-weight: 600 !important;
  letter-spacing: -0.02em !important;
  line-height: 1.2 !important;
  color: var(--iv-ink) !important;
}

body.pa-glass-site .pa-booking-v4 .pa-policies-grid,
body.wp-theme-gutenify-photography .pa-booking-v4 .pa-policies-grid {
  display: flex !important;
  flex-direction: column !important;
  gap: var(--iv-supp-row-gap) !important;
  grid-template-columns: none !important;
  margin: 0 !important;
}

body.pa-glass-site .pa-booking-v4 .pa-booking-policies .pa-policy-card,
body.wp-theme-gutenify-photography .pa-booking-v4 .pa-booking-policies .pa-policy-card {
  margin: 0 !important;
  padding: var(--iv-supp-row-pad) !important;
  background: var(--iv-surface-2) !important;
  border: none !important;
  border-radius: var(--iv-r-control) !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

body.pa-glass-site .pa-booking-v4 .pa-booking-policies .pa-policy-card h4,
body.wp-theme-gutenify-photography .pa-booking-v4 .pa-booking-policies .pa-policy-card h4 {
  margin: 0 0 0.28rem !important;
  padding: 0 !important;
  font-size: var(--iv-supp-label) !important;
  font-weight: 600 !important;
  letter-spacing: -0.01em !important;
  line-height: 1.3 !important;
  text-transform: none !important;
  color: var(--iv-ink) !important;
}

body.pa-glass-site .pa-booking-v4 .pa-booking-policies .pa-policy-card p,
body.wp-theme-gutenify-photography .pa-booking-v4 .pa-booking-policies .pa-policy-card p {
  margin: 0 !important;
  padding: 0 !important;
  font-size: var(--iv-supp-body) !important;
  font-weight: 400 !important;
  letter-spacing: -0.006em !important;
  line-height: var(--iv-supp-line) !important;
  color: var(--iv-secondary) !important;
}

/* ===================================== READABILITY: NO WHITE-ON-WHITE ===== */
/* These elements were styled for a dark recap card; the Ive layer made the
   card white, which left their text white/near-white and invisible. Restore
   readable ink/secondary tones for the light surface. */

/* 6 — Completed "Your booking" recap (schedule step). */
.pa-booking-v4 .pa-recap-bar.is-complete .pa-recap-bar-date {
  color: var(--iv-ink) !important;
}

.pa-booking-v4 .pa-recap-bar.is-complete .pa-recap-bar-meta,
.pa-booking-v4 .pa-recap-bar.is-complete .pa-recap-bar-next {
  color: var(--iv-secondary) !important;
  opacity: 1 !important;
}

.pa-booking-v4 .pa-recap-bar.is-complete .pa-recap-bar-kicker {
  color: var(--iv-tertiary) !important;
  opacity: 1 !important;
}

/* Deposit reads as a quiet chip on the white card, not invisible white text. */
.pa-booking-v4 .pa-recap-bar .pa-recap-bar-deposit {
  background: var(--iv-surface-2) !important;
  color: var(--iv-ink) !important;
}

/* 7 — Invoice / quote notes in the deposit summary (details step). */
.pa-booking-v4 .pa-recap-invoice-note,
.pa-booking-v4 .pa-recap-quote-note {
  color: var(--iv-secondary) !important;
}

/* 8 — Add-on checkboxes were stretching to full row width (a global input
   rule). Lock them to a real checkbox so the row reads as box + label. */
.pa-booking-v4 .pa-addon-option {
  display: flex !important;
  align-items: center !important;
  gap: 0.85rem !important;
}

.pa-booking-v4 .pa-addon-checkbox {
  flex: 0 0 auto !important;
  width: 22px !important;
  height: 22px !important;
  min-width: 22px !important;
  max-width: 22px !important;
  margin: 0 !important;
  padding: 0 !important;
  accent-color: var(--iv-ink) !important;
  cursor: pointer !important;
}

.pa-booking-v4 .pa-addon-option .pa-addon-body {
  flex: 1 1 auto !important;
  min-width: 0 !important;
}

/* ===================================== SINGLE-SCREEN WIZARD ===== */
/* Compact card on /book/ — site header stays small; wizard is not clipped */

body.is-booking-funnel {
  overflow-x: hidden !important;
}

html.is-booking-funnel {
  overflow-x: hidden !important;
}

body.pa-booking-page main.wp-block-group,
body.pa-booking-page .entry-content {
  padding-top: 0.35rem !important;
  padding-bottom: 1rem !important;
}

body.pa-booking-page .wp-block-post-title,
body.pa-booking-page main > .wp-block-post-title,
body.pa-booking-page .wp-block-cover.alignfull:not(.pa-home-hero) {
  display: none !important;
}

body.pa-booking-page header.pa-site-header,
body.is-booking-funnel header.pa-site-header {
  padding-top: 0.35rem !important;
  padding-bottom: 0.35rem !important;
}

body.pa-booking-page,
body.is-booking-funnel {
  --pa-header-lockup-min: 0px;
  --pa-header-lockup-fluid: 38vw;
  --pa-header-lockup-max: 220px;
}

body.pa-booking-page header.pa-site-header .wp-block-site-logo img.pa-brand-logo-lockup,
body.pa-booking-page header.pa-site-header img.custom-logo.pa-brand-logo-lockup,
body.is-booking-funnel header.pa-site-header .wp-block-site-logo img.pa-brand-logo-lockup,
body.is-booking-funnel header.pa-site-header img.custom-logo.pa-brand-logo-lockup {
  width: auto !important;
  height: clamp(48px, 9vw, 72px) !important;
  max-height: 72px !important;
  max-width: min(42vw, 220px) !important;
  object-fit: contain !important;
  filter: none !important;
}

body.pa-booking-page .pa-booking-hero,
body.pa-booking-root--wizard .pa-booking-hero {
  display: none !important;
}

body.pa-booking-page .pa-booking-supplement,
body.pa-booking-root--wizard .pa-booking-supplement {
  display: block !important;
  margin-top: 2rem;
  padding-top: 0.5rem;
}

body.pa-booking-page .pa-booking-root,
body.pa-booking-root--wizard {
  margin-top: 0 !important;
}

body.pa-glass-site .pa-booking-root.is-single-screen,
body.wp-theme-gutenify-photography .pa-booking-root.is-single-screen {
  max-width: min(1080px, calc(100vw - 1.5rem)) !important;
  width: 100% !important;
  margin: 0.5rem auto !important;
  min-height: 0 !important;
  height: calc(100dvh - 5rem) !important;
  max-height: calc(100dvh - 5rem) !important;
  display: flex !important;
  flex-direction: column !important;
  border-radius: var(--iv-r-card, 20px) !important;
  box-shadow: var(--iv-shadow-2, 0 16px 48px rgba(17, 17, 17, 0.1)) !important;
  border: 1px solid var(--iv-hairline-soft, rgba(17, 17, 17, 0.08)) !important;
  background: var(--iv-surface, #fff) !important;
}

body.pa-glass-site .pa-booking-root.is-single-screen .pa-booking-hero,
body.wp-theme-gutenify-photography .pa-booking-root.is-single-screen .pa-booking-hero,
body.pa-glass-site .pa-booking-root.is-single-screen .pa-booking-supplement,
body.wp-theme-gutenify-photography .pa-booking-root.is-single-screen .pa-booking-supplement {
  display: none !important;
}

body.pa-glass-site .pa-booking-root.is-single-screen .pa-booking-app,
body.wp-theme-gutenify-photography .pa-booking-root.is-single-screen .pa-booking-app {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  height: 100% !important;
  max-height: none !important;
  overflow: visible !important;
  display: flex !important;
  flex-direction: column !important;
  padding: 0.5rem 1rem 0.5rem !important;
  margin: 0 !important;
}

@media (max-width: 600px) {
  body.pa-glass-site .pa-booking-root.is-single-screen .pa-booking-app,
  body.wp-theme-gutenify-photography .pa-booking-root.is-single-screen .pa-booking-app {
    min-height: 0 !important;
    max-height: none !important;
    height: 100% !important;
  }
}

@media (max-width: 782px) {
  body.pa-booking-page,
  body.is-booking-funnel {
    --pa-header-lockup-min: 0px;
    --pa-header-lockup-fluid: 58vw;
    --pa-header-lockup-max: 220px;
  }

  body.pa-booking-page header.pa-site-header,
  body.is-booking-funnel header.pa-site-header {
    padding-top: 0.25rem !important;
    padding-bottom: 0.25rem !important;
  }

  body.pa-booking-page header.pa-site-header .wp-block-site-logo img.pa-brand-logo-lockup,
  body.pa-booking-page header.pa-site-header img.custom-logo.pa-brand-logo-lockup,
  body.is-booking-funnel header.pa-site-header .wp-block-site-logo img.pa-brand-logo-lockup,
  body.is-booking-funnel header.pa-site-header img.custom-logo.pa-brand-logo-lockup {
    width: auto !important;
    height: clamp(48px, 14vw, 60px) !important;
    max-height: 60px !important;
    max-width: min(58vw, 220px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    border-radius: 12px !important;
    object-fit: contain !important;
    box-shadow: 0 4px 14px rgba(17, 17, 17, 0.12) !important;
  }

  body.pa-booking-page header .wp-block-site-logo a,
  body.is-booking-funnel header .wp-block-site-logo a,
  body.pa-booking-page header a.custom-logo-link,
  body.is-booking-funnel header a.custom-logo-link {
    border-radius: 12px !important;
    overflow: hidden !important;
    display: inline-flex !important;
    line-height: 0 !important;
  }

  body.pa-glass-site .pa-booking-root.is-single-screen,
  body.wp-theme-gutenify-photography .pa-booking-root.is-single-screen {
    height: calc(100dvh - 3.75rem) !important;
    max-height: calc(100dvh - 3.75rem) !important;
    margin: 0.35rem auto !important;
  }
}

#pa-booking-app.pa-booking-v4.is-single-screen {
  display: flex !important;
  flex-direction: column !important;
  min-height: 0 !important;
  flex: 1 1 auto !important;
  overflow: visible !important;
}

.pa-booking-v4.is-single-screen .pa-booking-chrome {
  flex: 0 0 auto !important;
  margin-bottom: 0.35rem !important;
}

.pa-booking-v4.is-single-screen .pa-stepper {
  margin-bottom: 0.25rem !important;
}

.pa-booking-v4.is-single-screen .pa-stepper-item {
  font-size: 0.72rem !important;
  padding: 0.28rem 0.4rem !important;
}

.pa-booking-v4.is-single-screen .pa-fast-banner,
.pa-booking-v4.is-single-screen .pa-schedule-trust,
.pa-booking-v4.is-single-screen .pa-schedule-checklist {
  display: none !important;
}

.pa-booking-v4.is-single-screen .pa-step-stage {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  overflow: visible !important;
}

.pa-booking-v4.is-single-screen .pa-step-schedule,
.pa-booking-v4.is-single-screen .pa-step-details-pay,
.pa-booking-v4.is-single-screen .pa-step:not(.pa-step-schedule) {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  overflow: visible !important;
}

.pa-booking-v4.is-single-screen .pa-booking-sheet--wizard {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  display: grid !important;
  flex-direction: unset !important;
  gap: 0.65rem !important;
  overflow: visible !important;
}

/* Sub-step progress: Package → Date → Time */
.pa-booking-v4.is-single-screen .pa-flow-progress {
  flex: 0 0 auto !important;
  margin: 0 0 0.35rem !important;
  padding: 0.45rem 0.55rem !important;
}

.pa-booking-v4.is-single-screen .pa-flow-progress-step {
  min-height: 36px !important;
  padding: 0.25rem 0.35rem !important;
}

.pa-booking-v4.is-single-screen .pa-flow-progress-label {
  font-size: 0.72rem !important;
}

.pa-booking-v4.is-single-screen .pa-flow-progress-icon {
  width: 1.35rem !important;
  height: 1.35rem !important;
  font-size: 0.68rem !important;
}

/* All schedule columns visible side-by-side — no panel swapping */
.pa-booking-v4.is-single-screen .pa-flow-progress--hidden {
  display: none !important;
}

.pa-booking-v4.is-single-screen .pa-glass-section.is-flow-upcoming,
.pa-booking-v4.is-single-screen .pa-glass-section.is-flow-done {
  display: none !important;
}

.pa-booking-v4.is-single-screen .pa-glass-section.is-flow-visible,
.pa-booking-v4.is-single-screen .pa-glass-section.is-flow-current {
  display: flex !important;
  flex-direction: column !important;
  overflow: visible !important;
  min-height: 0 !important;
  flex: 1 1 auto !important;
  margin: 0 !important;
  padding: 0.65rem 0.75rem !important;
  animation: none !important;
}

.pa-booking-v4.is-single-screen .pa-glass-section.is-disabled {
  opacity: 0.5;
  pointer-events: none;
}

.pa-booking-v4.is-single-screen .pa-booking-sheet--wizard {
  display: grid !important;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1.25fr) minmax(0, 0.95fr) !important;
  grid-template-rows: 1fr auto !important;
  gap: 0.65rem !important;
  align-items: stretch !important;
  overflow: visible !important;
  flex: 1 1 auto !important;
  min-height: 0 !important;
}

.pa-booking-v4.is-single-screen .pa-pricing-summary,
.pa-booking-v4.is-single-screen .pa-step-schedule > .pa-booking-actions {
  grid-column: 1 / -1 !important;
}

@keyframes pa-wizard-panel-in {
  from {
    opacity: 0;
    transform: translateX(10px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

.pa-booking-v4.is-single-screen .pa-booking-section-inner {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto !important;
  min-height: 0 !important;
  overflow: hidden !important;
}

.pa-booking-v4.is-single-screen .pa-wizard-summary {
  flex: 0 0 auto !important;
  margin: 0 0 0.5rem !important;
  padding: 0.55rem 0.75rem !important;
  font-size: 0.78rem !important;
  line-height: 1.4 !important;
  color: var(--iv-secondary) !important;
  background: var(--iv-surface-2) !important;
  border-radius: var(--iv-r-control) !important;
  text-align: center !important;
}

.pa-booking-v4.is-single-screen .pa-step-details {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto !important;
  min-height: 0 !important;
  overflow: hidden !important;
}

.pa-booking-v4.is-single-screen .pa-section-title {
  font-size: 0.95rem !important;
  margin-bottom: 0.35rem !important;
}

.pa-booking-v4.is-single-screen .pa-panel-hint,
.pa-booking-v4.is-single-screen .pa-section-hint,
.pa-booking-v4.is-single-screen .pa-package-pricing-note {
  font-size: 0.78rem !important;
  line-height: 1.35 !important;
  margin-bottom: 0.45rem !important;
}

/* Compact package list */
.pa-booking-v4.is-single-screen .pa-service-option {
  padding: 0.65rem 2rem 0.65rem 0.85rem !important;
}

.pa-booking-v4.is-single-screen .pa-service-option-name {
  font-size: 0.88rem !important;
}

.pa-booking-v4.is-single-screen .pa-service-option-detail {
  font-size: 0.74rem !important;
  line-height: 1.3 !important;
}

.pa-booking-v4.is-single-screen .pa-service-list--simple {
  gap: 0.4rem !important;
  overflow: visible !important;
  max-height: none !important;
  flex: unset !important;
  min-height: 0 !important;
  display: flex !important;
  flex-direction: column !important;
}

/* Compact calendar */
.pa-booking-v4.is-single-screen .pa-cal {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
}

.pa-booking-v4.is-single-screen .pa-cal-shell {
  flex: unset !important;
  overflow: visible !important;
  max-height: none !important;
}

.pa-booking-v4.is-single-screen .pa-cal-day {
  min-height: 34px !important;
  font-size: 0.78rem !important;
}

.pa-booking-v4.is-single-screen .pa-cal-meta-strip,
.pa-booking-v4.is-single-screen .pa-cal-legend,
.pa-booking-v4.is-single-screen .pa-date-chips-wrap {
  flex-shrink: 0 !important;
}

.pa-booking-v4.is-single-screen .pa-date-chips-wrap {
  margin-top: 0.35rem !important;
}

/* Compact time grid */
.pa-booking-v4.is-single-screen .pa-time-wrap {
  flex: unset !important;
  min-height: 0 !important;
  overflow: visible !important;
  margin: 0 !important;
}

.pa-booking-v4.is-single-screen .pa-time-grid {
  gap: 0.45rem !important;
}

.pa-booking-v4.is-single-screen .pa-time-card {
  padding: 0.5rem 0.45rem !important;
  min-height: 40px !important;
}

.pa-booking-v4.is-single-screen .pa-time-card .pa-time-title {
  font-size: 0.82rem !important;
}

.pa-booking-v4.is-single-screen .pa-time-card .pa-time-range {
  font-size: 0.72rem !important;
}

.pa-booking-v4.is-single-screen .pa-schedule-panel-next {
  flex: 0 0 auto !important;
  width: 100% !important;
  margin-top: 0.55rem !important;
  min-height: 42px !important;
  font-size: 0.88rem !important;
}

/* Details step — compact, scroll inside panel only if needed */
.pa-booking-v4.is-single-screen .pa-whats-next,
.pa-booking-v4.is-single-screen .pa-booking-recap-invoice,
.pa-booking-v4.is-single-screen .pa-payment-schedule {
  display: none !important;
}

.pa-booking-v4.is-single-screen .pa-step-toolbar {
  flex: 0 0 auto !important;
  margin: 0 0 0.35rem !important;
}

.pa-booking-v4.is-single-screen .pa-step-toolbar .pa-back {
  font-size: 0.82rem !important;
  padding: 0.25rem 0 !important;
}

.pa-booking-v4.is-single-screen .pa-form-group {
  padding: 0.75rem 0.85rem !important;
}

.pa-booking-v4.is-single-screen .pa-form-group-title {
  font-size: 0.92rem !important;
  margin-bottom: 0.25rem !important;
}

.pa-booking-v4.is-single-screen .pa-form-group-hint {
  font-size: 0.74rem !important;
  margin-bottom: 0.5rem !important;
}

.pa-booking-v4.is-single-screen .pa-field-label {
  font-size: 0.68rem !important;
}

.pa-booking-v4.is-single-screen .pa-text-input {
  padding: 0.55rem 0.65rem !important;
  font-size: 0.88rem !important;
}

.pa-booking-v4.is-single-screen .pa-field-help {
  font-size: 0.7rem !important;
  margin-top: 0.2rem !important;
}

.pa-booking-v4.is-single-screen .pa-form {
  flex: unset !important;
  min-height: 0 !important;
  overflow: visible !important;
  gap: 0.55rem !important;
}

.pa-booking-v4.is-single-screen .pa-booking-actions {
  flex: 0 0 auto !important;
  padding-top: 0.35rem !important;
}

.pa-booking-v4.is-single-screen .pa-booking-actions--sticky {
  position: static !important;
  box-shadow: none !important;
  border-top: 1px solid var(--iv-hairline-soft) !important;
  margin-top: auto !important;
  padding-top: 0.5rem !important;
}

.pa-booking-v4.is-single-screen .pa-checkout-btn,
.pa-booking-v4.is-single-screen .pa-submit {
  min-height: 44px !important;
  font-size: 0.92rem !important;
}

.pa-booking-v4.is-single-screen .pa-terms-agreement {
  flex-shrink: 0 !important;
  font-size: 0.74rem !important;
  margin: 0.35rem 0 !important;
}

.pa-booking-v4.is-single-screen .pa-checkout {
  flex-shrink: 0 !important;
}

/* Wizard panel navigation — app-style back + title */
.pa-booking-v4 .pa-wizard-panel-nav {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  margin: 0 0 0.55rem !important;
  flex-shrink: 0;
}

.pa-booking-v4 .pa-wizard-back {
  display: inline-flex !important;
  align-items: center;
  gap: 0.1rem;
  min-height: 44px;
  min-width: 44px;
  padding: 0.4rem 0.65rem 0.4rem 0 !important;
  margin: 0 0 0 -0.15rem !important;
  border: none !important;
  background: transparent !important;
  color: var(--iv-accent) !important;
  font-size: 0.9rem !important;
  font-weight: 500 !important;
  letter-spacing: -0.01em !important;
  cursor: pointer;
  align-self: flex-start;
  box-shadow: none !important;
  transition: color 0.2s var(--iv-ease), opacity 0.2s var(--iv-ease) !important;
}

.pa-booking-v4 .pa-wizard-back:hover,
.pa-booking-v4 .pa-wizard-back:focus-visible {
  color: var(--iv-accent-hover) !important;
  opacity: 0.92;
  outline: none;
}

.pa-booking-v4 .pa-wizard-back-chevron {
  font-size: 1.45rem;
  line-height: 1;
  font-weight: 400;
  margin-top: -0.06em;
}

.pa-booking-v4 .pa-wizard-panel-title {
  margin: 0 !important;
  font-size: clamp(1.2rem, 4.2vw, 1.45rem) !important;
  font-weight: 650 !important;
  letter-spacing: -0.02em !important;
  color: var(--iv-ink) !important;
  line-height: 1.15 !important;
}

.pa-booking-v4 .pa-wizard-panel-hint {
  margin: 0.15rem 0 0 !important;
  font-size: 0.78rem !important;
  line-height: 1.35 !important;
  color: var(--iv-secondary) !important;
}

.pa-booking-v4.is-single-screen .pa-step-toolbar {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
}

.pa-booking-v4.is-single-screen .pa-step-toolbar .pa-wizard-panel-title {
  margin-top: -0.15rem !important;
}

.pa-booking-v4 .pa-wizard-summary-bar {
  flex-shrink: 0;
  margin: 0 0 0.65rem;
  padding: 0.65rem 0.75rem;
  border-radius: var(--iv-r-card);
  border: 1px solid var(--iv-hairline-soft);
  background: var(--iv-surface-2);
}

.pa-booking-v4 .pa-wizard-summary {
  margin: 0 0 0.45rem !important;
  font-size: 0.82rem !important;
  line-height: 1.4 !important;
  color: var(--iv-ink) !important;
  font-weight: 500 !important;
}

.pa-booking-v4 .pa-wizard-summary-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.5rem;
}

.pa-booking-v4 .pa-wizard-summary-edit {
  min-height: 36px;
  padding: 0.35rem 0.65rem;
  border-radius: var(--iv-r-pill);
  border: 1px solid var(--iv-hairline);
  background: var(--iv-surface);
  color: var(--iv-accent) !important;
  font-size: 0.76rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.2s var(--iv-ease), border-color 0.2s var(--iv-ease);
}

.pa-booking-v4 .pa-wizard-summary-edit:hover,
.pa-booking-v4 .pa-wizard-summary-edit:focus-visible {
  background: var(--iv-surface-3);
  border-color: var(--iv-accent);
  outline: none;
}

.pa-booking-v4.is-single-screen .pa-schedule-panel-next {
  width: 100%;
  min-height: 44px;
  margin-top: 0.35rem;
}

/* Compact details form */
.pa-booking-v4.is-single-screen .pa-form-compact {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 0.45rem 0.55rem !important;
  padding: 0.55rem 0.65rem !important;
  flex: unset !important;
  min-height: 0 !important;
  overflow: visible !important;
}

.pa-booking-v4.is-single-screen .pa-form-compact .pa-field:first-child,
.pa-booking-v4.is-single-screen .pa-form-compact .pa-field:nth-child(4),
.pa-booking-v4.is-single-screen .pa-form-compact .pa-field:nth-child(5) {
  grid-column: 1 / -1;
}

.pa-booking-v4.is-single-screen .pa-form-compact .pa-field {
  margin: 0 !important;
}

.pa-booking-v4.is-single-screen .pa-form-compact .pa-field-label {
  font-size: 0.66rem !important;
  margin-bottom: 0.15rem !important;
}

.pa-booking-v4.is-single-screen .pa-form-compact .pa-text-input {
  padding: 0.48rem 0.55rem !important;
  font-size: 0.86rem !important;
}

.pa-booking-v4.is-single-screen .pa-form-compact textarea.pa-text-input {
  min-height: 3.2rem !important;
  resize: vertical;
}

.pa-booking-v4.is-single-screen .pa-wizard-summary-bar--compact {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin: 0 0 0.45rem !important;
  padding: 0.45rem 0.6rem !important;
}

.pa-booking-v4.is-single-screen .pa-wizard-summary-bar--compact .pa-wizard-summary {
  margin: 0 !important;
  font-size: 0.72rem !important;
  line-height: 1.3 !important;
  flex: 1 1 auto;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pa-booking-v4.is-single-screen .pa-wizard-summary-bar--compact .pa-wizard-summary-edit {
  flex: 0 0 auto;
  min-height: 32px;
  padding: 0.2rem 0.55rem;
  font-size: 0.7rem;
}

.pa-booking-v4.is-single-screen .pa-deposit-inline {
  flex: 0 0 auto;
  margin-top: 0.35rem;
  padding: 0.55rem 0.65rem;
  border-radius: var(--iv-r-card);
  border: 1px solid var(--iv-hairline-soft);
  background: var(--iv-surface-2);
}

.pa-booking-v4.is-single-screen .pa-deposit-inline-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
}

.pa-booking-v4.is-single-screen .pa-deposit-inline-label {
  display: block;
  font-size: 0.68rem;
  font-weight: 600;
  color: var(--iv-tertiary);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.pa-booking-v4.is-single-screen .pa-deposit-inline-amount {
  display: block;
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--iv-ink);
}

.pa-booking-v4.is-single-screen .pa-deposit-inline-btn {
  flex: 0 0 auto;
  min-height: 44px !important;
  padding: 0.5rem 0.85rem !important;
  font-size: 0.84rem !important;
  white-space: nowrap;
}

.pa-booking-v4.is-single-screen .pa-deposit-inline-fine {
  margin: 0.35rem 0 0 !important;
  font-size: 0.68rem !important;
  color: var(--iv-tertiary) !important;
  text-align: center;
}

.pa-booking-v4.is-single-screen .pa-terms-agreement {
  margin: 0.3rem 0 0 !important;
  font-size: 0.68rem !important;
  line-height: 1.35 !important;
}

.pa-booking-v4.is-single-screen .pa-service-list--simple {
  max-height: none !important;
  overflow: visible !important;
}

.pa-booking-v4.is-single-screen .pa-wizard-panel-hint {
  font-size: 0.72rem !important;
  margin-top: 0 !important;
}

.pa-booking-v4.is-single-screen .pa-wizard-panel-title {
  font-size: 1.05rem !important;
}

.pa-booking-v4.is-single-screen .pa-wizard-back {
  min-height: 36px !important;
  padding-top: 0.2rem !important;
  padding-bottom: 0.2rem !important;
}

@media (prefers-reduced-motion: reduce) {
  .pa-booking-v4.is-single-screen .pa-glass-section.is-flow-current {
    animation: none !important;
  }
}

@media (max-height: 700px) {
  .pa-booking-v4.is-single-screen .pa-booking-app {
    padding-top: 0.4rem !important;
  }

  .pa-booking-v4.is-single-screen .pa-glass-section.is-flow-current {
    padding: 0.65rem 0.85rem 0.55rem !important;
  }

  .pa-booking-v4.is-single-screen .pa-cal-day {
    min-height: 30px !important;
    font-size: 0.72rem !important;
  }
}

/* ── 3-step wizard: scrollable step body inside fixed viewport ── */

.pa-booking-v4.is-single-screen .pa-step-scroll {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  overflow: visible !important;
  scroll-padding-bottom: 0;
}

.pa-booking-v4.is-single-screen .pa-step-review,
.pa-booking-v4.is-single-screen .pa-step-details {
  flex: 1 1 auto !important;
  min-height: 0 !important;
}

.pa-booking-v4 .pa-stepper-three .pa-stepper-label {
  font-size: 0.68rem !important;
  line-height: 1.15 !important;
}

@media (max-width: 380px) {
  .pa-booking-v4 .pa-stepper-three .pa-stepper-label {
    font-size: 0.62rem !important;
  }

  .pa-booking-v4 .pa-stepper-three .pa-stepper-num {
    width: 1.35rem !important;
    height: 1.35rem !important;
    font-size: 0.65rem !important;
  }
}

/* Pricing summary — step 1 */
.pa-booking-v4 .pa-pricing-summary {
  margin-top: 0.35rem;
  padding: 0.75rem 0.85rem;
  border-radius: var(--iv-r-inner, 12px);
  background: var(--iv-surface-muted, rgba(17, 17, 17, 0.03));
  border: 1px solid var(--iv-hairline-soft, rgba(17, 17, 17, 0.08));
}

.pa-booking-v4 .pa-pricing-summary-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.pa-booking-v4 .pa-pricing-summary-label {
  font-weight: 700;
  font-size: 0.9rem;
  color: var(--pa-text, #111);
}

.pa-booking-v4 .pa-pricing-summary-from {
  font-size: 0.82rem;
  color: var(--pa-muted, #666);
}

.pa-booking-v4 .pa-pricing-summary-deposit {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
  margin-top: 0.55rem;
  padding-top: 0.55rem;
  border-top: 1px solid var(--iv-hairline-soft, rgba(17, 17, 17, 0.08));
}

.pa-booking-v4 .pa-pricing-summary-deposit-label {
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--pa-muted, #666);
}

.pa-booking-v4 .pa-pricing-summary-deposit-amount {
  font-size: 1.15rem;
  font-weight: 800;
  color: var(--pa-text, #111);
}

.pa-booking-v4 .pa-pricing-summary-note {
  margin: 0.45rem 0 0;
  font-size: 0.78rem;
  line-height: 1.4;
  color: var(--pa-muted, #666);
}

/* Contact recap — step 3 */
.pa-booking-v4 .pa-contact-recap {
  margin-top: 0.65rem;
  padding: 0.75rem 0.85rem !important;
}

.pa-booking-v4 .pa-contact-recap-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
}

.pa-booking-v4 .pa-contact-recap-kicker {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--pa-muted, #666);
}

.pa-booking-v4 .pa-contact-recap-lines {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.25rem 0.75rem;
  margin: 0;
  font-size: 0.85rem;
}

.pa-booking-v4 .pa-contact-recap-lines dt {
  margin: 0;
  color: var(--pa-muted, #666);
  font-weight: 500;
}

.pa-booking-v4 .pa-contact-recap-lines dd {
  margin: 0;
  font-weight: 600;
  color: var(--pa-text, #111);
  word-break: break-word;
}

/* Balance explainer — step 3 */
.pa-booking-v4 .pa-balance-explainer {
  margin: 0.65rem 0;
  padding: 0.85rem;
  border-radius: var(--iv-r-inner, 12px);
  background: linear-gradient(135deg, rgba(17, 17, 17, 0.02), rgba(17, 17, 17, 0.05));
  border: 1px solid var(--iv-hairline-soft, rgba(17, 17, 17, 0.08));
}

.pa-booking-v4 .pa-balance-explainer-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
}

.pa-booking-v4 .pa-balance-explainer-label {
  font-size: 0.78rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--pa-muted, #666);
}

.pa-booking-v4 .pa-balance-explainer-amount {
  font-size: 1.35rem;
  font-weight: 800;
  color: var(--pa-text, #111);
}

.pa-booking-v4 .pa-balance-explainer-remain,
.pa-booking-v4 .pa-balance-explainer-secure {
  margin: 0.5rem 0 0;
  font-size: 0.8rem;
  line-height: 1.45;
  color: var(--pa-muted, #666);
}

/* Sticky continue / pay actions stay visible */
.pa-booking-v4.is-single-screen .pa-step-continue,
.pa-booking-v4.is-single-screen .pa-step-schedule > .pa-booking-actions,
.pa-booking-v4.is-single-screen .pa-step-details > .pa-booking-actions,
.pa-booking-v4.is-single-screen .pa-step-review > .pa-booking-actions {
  flex: 0 0 auto !important;
  margin-top: 0.35rem !important;
  padding-top: 0.35rem !important;
  border-top: 1px solid var(--iv-hairline-soft, rgba(17, 17, 17, 0.06));
  background: var(--iv-surface, #fff);
}

body.pa-booking-page.is-booking-funnel {
  overflow: hidden !important;
  height: 100dvh !important;
}

body.pa-booking-page.is-booking-funnel .pa-booking-root.is-single-screen .pa-booking-app,
body.pa-booking-page.is-booking-funnel #pa-booking-app.is-single-screen {
  max-height: none !important;
}

body.pa-booking-page.is-booking-funnel .pa-booking-root.is-single-screen.is-keyboard-open .pa-booking-app,
body.pa-booking-page.is-booking-funnel #pa-booking-app.is-single-screen.is-keyboard-open {
  max-height: none !important;
}

@media (max-width: 600px) {
  .pa-booking-v4.is-single-screen .pa-stepper-three .pa-stepper-item {
    padding: 0.25rem 0.2rem !important;
  }

  .pa-booking-v4.is-single-screen .pa-form-compact .pa-text-input,
  .pa-booking-v4.is-single-screen .pa-form-compact textarea.pa-text-input {
    font-size: 16px !important; /* prevents iOS zoom + layout jump */
  }
}

/* ── Premium wizard chrome ── */

.pa-booking-v4 .pa-wizard-context {
  margin: 0.35rem 0 0.45rem;
  padding: 0 0.1rem;
}

.pa-booking-v4 .pa-wizard-context-meta {
  margin: 0 0 0.2rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--pa-muted, #666);
}

.pa-booking-v4 .pa-wizard-context-title {
  margin: 0;
  font-size: clamp(1.05rem, 3.5vw, 1.25rem);
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: var(--pa-text, #111);
}

.pa-booking-v4 .pa-wizard-context-hint {
  margin: 0.35rem 0 0;
  font-size: 0.84rem;
  line-height: 1.45;
  color: var(--pa-muted, #666);
}

.pa-booking-v4 .pa-wizard-context-trust {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin: 0.45rem 0 0;
  font-size: 0.72rem;
  font-weight: 500;
  color: var(--pa-muted, #888);
}

.pa-booking-v4 .pa-stepper-meter-fill {
  transition: width 0.5s cubic-bezier(0.22, 1, 0.36, 1) !important;
}

.pa-booking-v4 .pa-step-toolbar--back-only {
  margin-bottom: 0.35rem;
  padding: 0;
  border: none;
  background: transparent;
}

.pa-booking-v4 .pa-step-toolbar--back-only .pa-wizard-back {
  min-height: 44px;
  padding: 0.35rem 0.5rem 0.35rem 0;
}

/* Ready CTA — subtle affordance when step is complete */
.pa-booking-v4 .pa-submit.pa-btn.is-ready:not(:disabled) {
  box-shadow: 0 4px 18px rgba(17, 17, 17, 0.14), 0 0 0 1px rgba(17, 17, 17, 0.06);
  transform: translateZ(0);
  transition: box-shadow 0.25s ease, transform 0.2s ease;
}

.pa-booking-v4 .pa-submit.pa-btn.is-ready:not(:disabled):hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 22px rgba(17, 17, 17, 0.18);
}

.pa-booking-v4 .pa-submit.pa-btn.is-ready:not(:disabled):active {
  transform: translateY(0);
}

/* Inline valid state — quiet confirmation without toasts */
.pa-booking-v4 .pa-field.is-valid .pa-text-input:not(:focus) {
  border-color: rgba(34, 120, 72, 0.45);
  box-shadow: inset 0 0 0 1px rgba(34, 120, 72, 0.12);
}

.pa-sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* Dedicated /book/ page — center the wizard in the viewport */
body.pa-booking-page.is-booking-funnel {
  overflow: hidden;
  min-height: 100dvh;
}

body.pa-booking-page.is-booking-funnel .pa-booking-root.is-single-screen {
  margin: auto !important;
  align-self: center;
}

@supports (height: 100dvh) {
  body.pa-booking-page.is-booking-funnel .site-content,
  body.pa-booking-page.is-booking-funnel main {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: calc(100dvh - 5rem);
  }
}

/* Mobile keyboard — keep full layout; page does not scroll */
body.pa-booking-page.is-booking-funnel .pa-booking-root.is-single-screen.is-keyboard-open .pa-booking-app,
body.pa-booking-page.is-booking-funnel #pa-booking-app.is-single-screen.is-keyboard-open {
  max-height: none !important;
}

body.pa-booking-page.is-booking-funnel .pa-booking-root.is-single-screen.is-keyboard-open .pa-step-scroll {
  scroll-padding-bottom: 0;
}

@media (prefers-reduced-motion: reduce) {
  .pa-booking-v4 .pa-stepper-meter-fill,
  .pa-booking-v4 .pa-submit.pa-btn.is-ready:not(:disabled) {
    transition: none !important;
  }

  .pa-booking-v4 .pa-submit.pa-btn.is-ready:not(:disabled):hover {
    transform: none;
  }
}

/* === Wide no-scroll wizard — review step + compact tiles === */
.pa-booking-v4.is-single-screen .pa-step-review .pa-step-scroll {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 0.75rem !important;
  align-content: start !important;
}

.pa-booking-v4.is-single-screen .pa-step-review > .pa-booking-actions {
  grid-column: 1 / -1 !important;
}

.pa-booking-v4.is-single-screen .pa-time-grid {
  grid-template-columns: 1fr 1fr !important;
  gap: 0.4rem !important;
}

.pa-booking-v4.is-single-screen .pa-cal-day {
  min-height: 2rem !important;
  font-size: 0.72rem !important;
  padding: 0.15rem !important;
}

.pa-booking-v4.is-single-screen .pa-cal-legend,
.pa-booking-v4.is-single-screen .pa-cal-meta-strip {
  margin-top: 0.25rem !important;
  font-size: 0.68rem !important;
}

.pa-booking-v4.is-single-screen .pa-stepper {
  margin-bottom: 0.15rem !important;
}

@media (max-width: 900px) {
  .pa-booking-v4.is-single-screen .pa-booking-sheet--wizard {
    grid-template-columns: 1fr 1fr !important;
  }

  .pa-booking-v4.is-single-screen .pa-glass-section--service {
    grid-column: 1 / -1 !important;
  }

  .pa-booking-v4.is-single-screen .pa-glass-section--schedule {
    grid-column: 1 !important;
  }

  .pa-booking-v4.is-single-screen .pa-glass-section--time {
    grid-column: 2 !important;
  }

  .pa-booking-v4.is-single-screen .pa-step-review .pa-step-scroll {
    grid-template-columns: 1fr !important;
  }
}

/* ===== v2.5 Wizard UX Refinement ===== */

.pa-booking-root.pa-booking-v4 {
  --pa-wizard-gap: clamp(0.75rem, 2vw, 1.25rem);
  --pa-wizard-radius: var(--iv-r-card, 18px);
  --pa-wizard-touch: 48px;
}

/* Minimal stepper — labels only, subtle active bar */
.pa-booking-v4 .pa-stepper--minimal {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 1.25rem;
  margin-bottom: var(--pa-wizard-gap);
  padding-bottom: 0.65rem;
  border-bottom: 1px solid var(--iv-hairline-soft, rgba(0, 0, 0, 0.08));
}

.pa-booking-v4 .pa-stepper--minimal .pa-stepper-meter {
  display: none;
}

.pa-booking-v4 .pa-stepper--minimal .pa-stepper-item {
  flex: 1 1 auto;
  min-width: 0;
  position: relative;
  padding-bottom: 0.35rem;
}

.pa-booking-v4 .pa-stepper--minimal .pa-stepper-num {
  display: none;
}

.pa-booking-v4 .pa-stepper--minimal .pa-stepper-label {
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--iv-tertiary, #86868b);
  letter-spacing: -0.01em;
}

.pa-booking-v4 .pa-stepper--minimal .pa-stepper-item.is-active .pa-stepper-label {
  color: var(--iv-ink, #1d1d1f);
  font-weight: 600;
}

.pa-booking-v4 .pa-stepper--minimal .pa-stepper-item.is-active::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  border-radius: 2px;
  background: var(--iv-ink, #1d1d1f);
}

.pa-booking-v4 .pa-stepper--minimal .pa-stepper-item.is-done .pa-stepper-label {
  color: var(--iv-secondary, #6e6e73);
}

.pa-booking-v4 .pa-wizard-context {
  margin-bottom: var(--pa-wizard-gap);
}

.pa-booking-v4 .pa-wizard-context-title {
  font-size: clamp(1.35rem, 2.5vw, 1.65rem);
  font-weight: 650;
  letter-spacing: -0.025em;
  margin: 0 0 0.35rem;
  line-height: 1.15;
}

.pa-booking-v4 .pa-wizard-context-hint {
  margin: 0;
  font-size: 0.9375rem;
  color: var(--iv-secondary, #6e6e73);
  line-height: 1.45;
}

/* Step 1 — schedule grid v2.5 */
.pa-booking-v4.is-single-screen .pa-schedule-grid-v25 {
  display: grid !important;
  grid-template-columns: 1.1fr 1.3fr 0.9fr !important;
  gap: 0 !important;
  align-items: stretch !important;
  border: 1px solid var(--iv-hairline-soft, rgba(0, 0, 0, 0.08));
  border-radius: var(--pa-wizard-radius);
  overflow: hidden;
  background: var(--iv-surface, #fff);
}

.pa-booking-v4.is-single-screen .pa-schedule-grid-v25 .pa-flow-progress--hidden {
  display: none !important;
}

.pa-booking-v4.is-single-screen .pa-schedule-col,
.pa-booking-v4.is-single-screen .pa-glass-section.pa-schedule-col {
  padding: 0.85rem 1rem !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  min-height: 0;
}

.pa-booking-v4.is-single-screen .pa-schedule-grid-v25 .pa-glass-section--service {
  border-right: 1px solid var(--iv-hairline-soft, rgba(0, 0, 0, 0.08)) !important;
}

.pa-booking-v4.is-single-screen .pa-schedule-grid-v25 .pa-glass-section--schedule {
  border-right: 1px solid var(--iv-hairline-soft, rgba(0, 0, 0, 0.08)) !important;
}

.pa-booking-v4 .pa-schedule-col-title {
  margin: 0 0 0.65rem !important;
  font-size: 0.8125rem !important;
  font-weight: 650 !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
  color: var(--iv-secondary, #6e6e73) !important;
}

.pa-booking-v4 .pa-service-selected--compact {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.75rem;
  padding: 0.75rem 0.85rem;
  border: 1px solid var(--iv-hairline-soft);
  border-radius: var(--iv-r-control, 12px);
  background: var(--iv-surface-2, #f5f5f7);
}

.pa-booking-v4 .pa-service-selected-price {
  font-size: 0.8125rem;
  color: var(--iv-secondary, #6e6e73);
}

.pa-booking-v4 .pa-service-option-price {
  display: block;
  margin-top: 0.25rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--iv-ink, #1d1d1f);
}

.pa-booking-v4.is-single-screen .pa-service-option,
.pa-booking-v4.is-single-screen .pa-service-package--simple {
  min-height: 4.5rem !important;
  padding: 1rem !important;
}

.pa-booking-v4.is-single-screen .pa-service-option-name {
  font-size: 1rem !important;
  line-height: 1.25 !important;
}

.pa-booking-v4.is-single-screen .pa-service-option-detail {
  font-size: 0.875rem !important;
  line-height: 1.35 !important;
}

.pa-booking-v4.is-single-screen .pa-service-option.is-selected {
  box-shadow: inset 0 0 0 2px var(--iv-ink, #1d1d1f) !important;
}

.pa-booking-v4.is-single-screen .pa-cal-day {
  min-height: 2.25rem !important;
  font-size: 0.8125rem !important;
}

.pa-booking-v4.is-single-screen .pa-cal-day.is-selected {
  background: var(--iv-ink, #1d1d1f) !important;
  color: #fff !important;
  font-weight: 600 !important;
}

.pa-booking-v4.is-single-screen .pa-time-grid {
  grid-template-columns: 1fr 1fr !important;
  gap: 0.5rem !important;
}

.pa-booking-v4.is-single-screen .pa-time-card {
  min-height: var(--pa-wizard-touch) !important;
}

.pa-booking-v4.is-single-screen .pa-schedule-footer {
  grid-column: 1 / -1 !important;
  display: flex !important;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem 1.25rem;
  padding: 0.85rem 1rem !important;
  border-top: 1px solid var(--iv-hairline-soft, rgba(0, 0, 0, 0.08));
  background: var(--iv-surface-2, #f5f5f7);
}

.pa-booking-v4.is-single-screen .pa-schedule-footer .pa-pricing-summary--sticky {
  flex: 1 1 14rem;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
}

.pa-booking-v4.is-single-screen .pa-schedule-footer-cta {
  flex: 0 1 auto;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  background: transparent !important;
}

.pa-booking-v4.is-single-screen .pa-schedule-footer-cta .pa-submit {
  min-height: var(--pa-wizard-touch);
  padding-left: 1.35rem;
  padding-right: 1.35rem;
}

.pa-booking-v4.is-single-screen .pa-schedule-footer-cta .pa-continue-footnote {
  margin: 0.35rem 0 0;
  text-align: right;
}

.pa-booking-v4.is-single-screen .pa-schedule-footer-dock {
  flex: 0 0 auto !important;
  display: flex !important;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem 1rem;
  margin-top: auto !important;
  padding: 0.55rem 0 max(0.35rem, env(safe-area-inset-bottom, 0px)) !important;
  border-top: 1px solid var(--iv-hairline-soft, rgba(0, 0, 0, 0.08));
  background: var(--iv-surface, #fff);
}

.pa-booking-v4.is-single-screen .pa-schedule-footer-dock .pa-pricing-summary--sticky {
  flex: 1 1 10rem;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
}

.pa-booking-v4.is-single-screen .pa-schedule-footer-dock .pa-schedule-footer-cta {
  flex: 1 1 11rem;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  background: transparent !important;
}

.pa-booking-v4.is-single-screen .pa-schedule-footer-dock .pa-schedule-footer-cta .pa-submit {
  width: 100%;
}

/* Step 2 — grouped form */
.pa-booking-v4 .pa-form-sheet--grouped {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.pa-booking-v4 .pa-form-group--wizard {
  margin: 0;
  padding: 0;
  border: none;
  min-width: 0;
}

.pa-booking-v4 .pa-form-group--wizard .pa-form-group-title {
  font-size: 0.9375rem;
  font-weight: 650;
  letter-spacing: -0.01em;
  color: var(--iv-ink, #1d1d1f);
  padding: 0 0 0.5rem;
  margin: 0;
}

.pa-booking-v4 .pa-form-group--wizard .pa-form-group-body {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.pa-booking-v4 .pa-form-group--contact .pa-form-group-body {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.85rem;
}

@media (min-width: 768px) {
  .pa-booking-v4 .pa-form-group--contact .pa-form-group-body {
    grid-template-columns: 1fr 1fr;
  }

  .pa-booking-v4 .pa-form-group--contact .pa-field:first-child {
    grid-column: 1 / -1;
  }
}

.pa-booking-v4 .pa-form-group--wizard .pa-field-label {
  font-size: 0.9375rem;
  font-weight: 600;
}

.pa-booking-v4 .pa-form-group--wizard .pa-text-input,
.pa-booking-v4 .pa-form-group--wizard textarea.pa-input {
  min-height: var(--pa-wizard-touch);
  font-size: 1rem;
}

/* Step 3 — review + deposit */
.pa-booking-v4 .pa-review-card-v25 {
  border: 1px solid var(--iv-hairline-soft, rgba(0, 0, 0, 0.08));
  border-radius: var(--pa-wizard-radius);
  background: var(--iv-surface, #fff);
  padding: 1rem 1.15rem;
}

.pa-booking-v4 .pa-review-card-title {
  margin: 0;
  font-size: 1rem;
  font-weight: 650;
  letter-spacing: -0.02em;
}

.pa-booking-v4 .pa-review-card-row {
  display: grid;
  grid-template-columns: minmax(5.5rem, 7rem) 1fr auto;
  gap: 0.35rem 0.75rem;
  align-items: start;
  padding: 0.65rem 0;
  border-top: 1px solid var(--iv-hairline-soft, rgba(0, 0, 0, 0.08));
}

.pa-booking-v4 .pa-review-card-row:first-child {
  border-top: none;
  padding-top: 0.35rem;
}

.pa-booking-v4 .pa-review-card-label {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--iv-secondary, #6e6e73);
}

.pa-booking-v4 .pa-review-card-value {
  font-size: 0.9375rem;
  line-height: 1.4;
  color: var(--iv-ink, #1d1d1f);
  word-break: break-word;
}

.pa-booking-v4 .pa-deposit-section {
  margin-top: var(--pa-wizard-gap);
  padding: 1.1rem 1.15rem;
  border-radius: var(--pa-wizard-radius);
  background: var(--iv-surface-2, #f5f5f7);
  border: 1px solid var(--iv-hairline-soft, rgba(0, 0, 0, 0.08));
}

.pa-booking-v4 .pa-deposit-section-title {
  margin: 0 0 0.5rem;
  font-size: 1rem;
  font-weight: 650;
}

.pa-booking-v4 .pa-deposit-section-lead {
  margin: 0 0 0.85rem;
  font-size: 0.9375rem;
  line-height: 1.45;
  color: var(--iv-secondary, #6e6e73);
}

.pa-booking-v4 .pa-deposit-section-amount-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.75rem;
}

.pa-booking-v4 .pa-deposit-section-amount {
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: -0.02em;
}

.pa-booking-v4 .pa-deposit-trust-list {
  margin: 0 0 0.85rem;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.pa-booking-v4 .pa-deposit-trust-item {
  position: relative;
  padding-left: 1.35rem;
  font-size: 0.875rem;
  line-height: 1.4;
  color: var(--iv-ink, #1d1d1f);
}

.pa-booking-v4 .pa-deposit-trust-item::before {
  content: "\2713";
  position: absolute;
  left: 0;
  top: 0.05em;
  font-size: 0.8125rem;
  font-weight: 700;
  color: #227848;
}

.pa-booking-v4 .pa-deposit-section-secure {
  margin: 0;
  font-size: 0.8125rem;
  color: var(--iv-tertiary, #86868b);
}

.pa-booking-v4.is-single-screen .pa-step-review-v25 .pa-step-scroll--review {
  display: flex !important;
  flex-direction: column !important;
  gap: var(--pa-wizard-gap) !important;
  overflow: visible !important;
}

.pa-booking-v4.is-single-screen .pa-step-review-v25 > .pa-booking-actions .pa-submit {
  min-height: 3.25rem;
  width: 100%;
  font-size: 1rem;
  font-weight: 600;
}

@media (min-width: 900px) {
  .pa-booking-v4.is-single-screen .pa-step-review-v25 .pa-step-scroll--review {
    display: grid !important;
    grid-template-columns: 1.15fr 0.85fr !important;
    align-items: start !important;
  }

  .pa-booking-v4.is-single-screen .pa-step-review-v25 .pa-review-card-v25 {
    grid-column: 1;
    grid-row: 1 / span 2;
  }

  .pa-booking-v4.is-single-screen .pa-step-review-v25 .pa-deposit-section {
    grid-column: 2;
    margin-top: 0;
  }

  .pa-booking-v4.is-single-screen .pa-step-review-v25 .pa-terms-wrap {
    grid-column: 2;
  }
}

/* Scroll policy — desktop/tablet: no internal scroll; phone: allow .pa-step-scroll */
body.pa-booking-page.is-booking-funnel .pa-booking-v4.is-single-screen .pa-step-scroll {
  overflow: visible !important;
  max-height: none !important;
}

@media (max-width: 767px) {
  body.pa-booking-page.is-booking-funnel .pa-booking-v4.is-single-screen .pa-step-scroll {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
    max-height: none !important;
  }

  body.is-booking-funnel .pa-booking-v4.is-single-screen .pa-wizard-layout {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    display: flex !important;
    flex-direction: column !important;
  }

  body.is-booking-funnel .pa-booking-v4.is-single-screen .pa-wizard-main {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    display: flex !important;
    flex-direction: column !important;
  }

  body.is-booking-funnel .pa-booking-v4.is-single-screen .pa-wizard-context {
    display: none !important;
  }

  body.is-booking-funnel .pa-booking-v4.is-single-screen .pa-booking-chrome {
    margin-bottom: 0.15rem !important;
  }

  body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-stepper--minimal {
    margin-bottom: 0.45rem !important;
  }

  body.is-booking-funnel .pa-booking-v4.is-single-screen .pa-booking-app,
  body.is-booking-funnel #pa-booking-app.is-single-screen {
    padding: 0.35rem 0.75rem 0.35rem !important;
  }

  .pa-booking-v4.is-single-screen .pa-schedule-grid-v25 {
    grid-template-columns: 1fr !important;
  }

  .pa-booking-v4.is-single-screen .pa-schedule-grid-v25 .pa-glass-section--service,
  .pa-booking-v4.is-single-screen .pa-schedule-grid-v25 .pa-glass-section--schedule {
    border-right: none !important;
    border-bottom: 1px solid var(--iv-hairline-soft, rgba(0, 0, 0, 0.08)) !important;
  }

  .pa-booking-v4.is-single-screen .pa-schedule-footer {
    flex-direction: column;
    align-items: stretch !important;
  }

  .pa-booking-v4.is-single-screen .pa-schedule-footer-cta .pa-continue-footnote {
    text-align: left;
  }
}

@media (prefers-reduced-motion: reduce) {
  .pa-booking-v4 .pa-stepper--minimal .pa-stepper-item.is-active::after {
    transition: none !important;
  }
}

/* ===================================================================
   PA Media Booking — Global Polish v1.0
   Paste at bottom of booking-ive.css (after all existing rules)
   =================================================================== */

/* ── 0. Design tokens ─────────────────────────────────────────────── */
.pa-booking-root.pa-booking-v4 {
  --pol-ink:        #0f0f10;
  --pol-ink-2:      #3a3a3c;
  --pol-ink-3:      #6e6e73;
  --pol-ink-4:      #aeaeb2;
  --pol-surface:    #ffffff;
  --pol-surface-2:  #f5f5f7;
  --pol-surface-3:  #ebebed;
  --pol-hairline:   rgba(0,0,0,0.08);
  --pol-hairline-2: rgba(0,0,0,0.13);
  --pol-radius:     18px;
  --pol-radius-sm:  12px;
  --pol-radius-xs:  8px;
  --pol-touch:      48px;
  --pol-focus:      rgba(0,0,0,0.75);
  --pol-shadow-sm:  0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);
  --pol-shadow-md:  0 4px 12px rgba(0,0,0,0.08), 0 1px 3px rgba(0,0,0,0.05);
  --pol-shadow-lg:  0 8px 28px rgba(0,0,0,0.10), 0 2px 6px rgba(0,0,0,0.06);
  --pol-transition: 180ms cubic-bezier(0.25, 0.1, 0.25, 1);
  --pol-spring:     220ms cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* ── 1. Step transitions ──────────────────────────────────────────── */

.pa-booking-root.pa-booking-v4 .pa-step {
  animation: pa-step-in 260ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes pa-step-in {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}

.pa-booking-root.pa-booking-v4[data-step-dir="fwd"] .pa-step {
  animation-name: pa-step-in-fwd;
}
@keyframes pa-step-in-fwd {
  from { opacity: 0; transform: translateX(20px); }
  to   { opacity: 1; transform: translateX(0); }
}

.pa-booking-root.pa-booking-v4[data-step-dir="back"] .pa-step {
  animation-name: pa-step-in-back;
}
@keyframes pa-step-in-back {
  from { opacity: 0; transform: translateX(-20px); }
  to   { opacity: 1; transform: translateX(0); }
}

@media (prefers-reduced-motion: reduce) {
  .pa-booking-root.pa-booking-v4 .pa-step,
  .pa-booking-root.pa-booking-v4[data-step-dir="fwd"] .pa-step,
  .pa-booking-root.pa-booking-v4[data-step-dir="back"] .pa-step {
    animation: none !important;
  }
}

/* ── 2. Stepper ───────────────────────────────────────────────────── */

.pa-booking-v4 .pa-stepper--minimal {
  display: flex !important;
  gap: 0 !important;
  padding: 0.3rem !important;
  padding-bottom: 0.3rem !important;
  border-bottom: none !important;
  margin-bottom: 1.35rem !important;
  background: var(--pol-surface-2);
  border-radius: var(--pol-radius-sm);
  overflow: hidden;
}

.pa-booking-v4 .pa-stepper--minimal .pa-stepper-meter {
  display: none !important;
}

.pa-booking-v4 .pa-stepper--minimal .pa-stepper-item {
  flex: 1 !important;
  display: flex !important;
  align-items: center !important;
  gap: 0.45rem !important;
  padding: 0.55rem 0.85rem !important;
  border-radius: 10px !important;
  transition: background var(--pol-transition), box-shadow var(--pol-transition) !important;
  cursor: default;
  position: relative;
}

.pa-booking-v4 .pa-stepper--minimal .pa-stepper-item::after {
  display: none !important;
}

.pa-booking-v4 .pa-stepper--minimal .pa-stepper-item.is-active {
  background: var(--pol-surface) !important;
  box-shadow: var(--pol-shadow-sm) !important;
}

.pa-booking-v4 .pa-stepper--minimal .pa-stepper-item.is-done {
  opacity: 0.7;
}

.pa-booking-v4 .pa-stepper--minimal .pa-stepper-item.is-clickable {
  cursor: pointer !important;
}

.pa-booking-v4 .pa-stepper--minimal .pa-stepper-item.is-clickable:hover {
  opacity: 1 !important;
  background: rgba(0,0,0,0.04) !important;
}

.pa-booking-v4 .pa-stepper--minimal .pa-stepper-num {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 1.35rem !important;
  height: 1.35rem !important;
  border-radius: 50% !important;
  font-size: 0.6875rem !important;
  font-weight: 700 !important;
  flex-shrink: 0 !important;
  background: var(--pol-surface-3) !important;
  color: var(--pol-ink-2) !important;
  transition: background var(--pol-transition), color var(--pol-transition) !important;
}

.pa-booking-v4 .pa-stepper--minimal .pa-stepper-item.is-active .pa-stepper-num {
  background: var(--pol-ink) !important;
  color: #fff !important;
}

.pa-booking-v4 .pa-stepper--minimal .pa-stepper-item.is-done .pa-stepper-num {
  background: var(--pol-ink) !important;
  color: #fff !important;
}

.pa-booking-v4 .pa-stepper--minimal .pa-stepper-label {
  font-size: 0.8125rem !important;
  font-weight: 500 !important;
  color: var(--pol-ink-3) !important;
}

.pa-booking-v4 .pa-stepper--minimal .pa-stepper-item.is-active .pa-stepper-label {
  color: var(--pol-ink) !important;
  font-weight: 650 !important;
}

/* ── 3. Step context header ───────────────────────────────────────── */

.pa-booking-v4 .pa-wizard-context {
  margin-bottom: 1.1rem !important;
}

.pa-booking-v4 .pa-wizard-context-title {
  font-size: clamp(1.25rem, 2.5vw, 1.55rem) !important;
  font-weight: 700 !important;
  letter-spacing: -0.03em !important;
  line-height: 1.12 !important;
  margin: 0 0 0.3rem !important;
  color: var(--pol-ink) !important;
}

.pa-booking-v4 .pa-wizard-context-hint {
  font-size: 0.9375rem !important;
  color: var(--pol-ink-3) !important;
  margin: 0 !important;
  line-height: 1.45 !important;
}

/* ── 4. Inputs ────────────────────────────────────────────────────── */

.pa-booking-v4 .pa-text-input,
.pa-booking-v4 textarea.pa-input,
.pa-booking-v4 input[type="text"].pa-text-input,
.pa-booking-v4 input[type="email"].pa-text-input,
.pa-booking-v4 input[type="tel"].pa-text-input {
  display: block !important;
  width: 100% !important;
  min-height: var(--pol-touch) !important;
  padding: 0.7rem 0.9rem !important;
  font-size: 0.9375rem !important;
  font-family: inherit !important;
  line-height: 1.45 !important;
  color: var(--pol-ink) !important;
  background: var(--pol-surface) !important;
  border: 1.5px solid var(--pol-hairline-2) !important;
  border-radius: var(--pol-radius-xs) !important;
  box-shadow: var(--pol-shadow-sm) !important;
  transition: border-color var(--pol-transition), box-shadow var(--pol-transition) !important;
  outline: none !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  box-sizing: border-box !important;
}

.pa-booking-v4 .pa-text-input:hover,
.pa-booking-v4 textarea.pa-input:hover {
  border-color: rgba(0,0,0,0.22) !important;
}

.pa-booking-v4 .pa-text-input:focus,
.pa-booking-v4 textarea.pa-input:focus {
  border-color: var(--pol-ink) !important;
  box-shadow: 0 0 0 3px rgba(0,0,0,0.10), var(--pol-shadow-sm) !important;
}

.pa-booking-v4 .pa-text-input::placeholder,
.pa-booking-v4 textarea.pa-input::placeholder {
  color: var(--pol-ink-4) !important;
}

.pa-booking-v4 .pa-field-label {
  display: block !important;
  margin-bottom: 0.35rem !important;
  font-size: 0.875rem !important;
  font-weight: 600 !important;
  color: var(--pol-ink-2) !important;
  letter-spacing: -0.01em !important;
}

.pa-booking-v4 .pa-input-error,
.pa-booking-v4 .pa-text-input.pa-input-error {
  border-color: #d1242f !important;
  box-shadow: 0 0 0 3px rgba(209,36,47,0.12) !important;
}

/* ── 5. Primary CTA button ───────────────────────────────────────── */

.pa-booking-v4 .pa-submit.pa-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: var(--pol-touch) !important;
  padding: 0 1.75rem !important;
  font-size: 0.9375rem !important;
  font-weight: 650 !important;
  font-family: inherit !important;
  letter-spacing: -0.01em !important;
  color: #fff !important;
  background: var(--pol-ink) !important;
  border: none !important;
  border-radius: var(--pol-radius-xs) !important;
  box-shadow: 0 1px 2px rgba(0,0,0,0.18), 0 4px 12px rgba(0,0,0,0.12) !important;
  cursor: pointer !important;
  transition: background var(--pol-transition), box-shadow var(--pol-transition), transform var(--pol-transition) !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  white-space: nowrap !important;
}

.pa-booking-v4 .pa-submit.pa-btn:hover:not(:disabled) {
  background: #1a1a1d !important;
  box-shadow: 0 2px 4px rgba(0,0,0,0.18), 0 6px 18px rgba(0,0,0,0.16) !important;
  transform: translateY(-1px) !important;
}

.pa-booking-v4 .pa-submit.pa-btn:active:not(:disabled) {
  transform: translateY(0) !important;
  box-shadow: 0 1px 2px rgba(0,0,0,0.16) !important;
}

.pa-booking-v4 .pa-submit.pa-btn:focus-visible {
  outline: 2.5px solid var(--pol-focus) !important;
  outline-offset: 3px !important;
}

.pa-booking-v4 .pa-submit.pa-btn:disabled {
  opacity: 0.38 !important;
  cursor: not-allowed !important;
  transform: none !important;
  box-shadow: none !important;
}

.pa-booking-v4 .pa-submit.pa-btn.is-ready {
  opacity: 1 !important;
}

/* ── 6. Edit / ghost buttons ─────────────────────────────────────── */

.pa-booking-v4 .pa-text-btn,
.pa-booking-v4 .pa-recap-line-edit {
  display: inline-flex !important;
  align-items: center !important;
  padding: 0.2rem 0.5rem !important;
  font-size: 0.8125rem !important;
  font-weight: 600 !important;
  color: var(--pol-ink-2) !important;
  background: transparent !important;
  border: 1.5px solid var(--pol-hairline-2) !important;
  border-radius: 6px !important;
  cursor: pointer !important;
  transition: background var(--pol-transition), border-color var(--pol-transition) !important;
  white-space: nowrap !important;
  line-height: 1 !important;
}

.pa-booking-v4 .pa-text-btn:hover,
.pa-booking-v4 .pa-recap-line-edit:hover {
  background: var(--pol-surface-2) !important;
  border-color: rgba(0,0,0,0.2) !important;
}

.pa-booking-v4 .pa-text-btn:focus-visible,
.pa-booking-v4 .pa-recap-line-edit:focus-visible {
  outline: 2px solid var(--pol-focus) !important;
  outline-offset: 2px !important;
}

/* ── 7. Action footer ────────────────────────────────────────────── */

.pa-booking-v4 .pa-booking-actions {
  margin-top: 1.35rem !important;
  padding-top: 1.1rem !important;
  border-top: 1px solid var(--pol-hairline) !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 0.5rem !important;
}

.pa-booking-v4 .pa-booking-actions .pa-submit {
  width: 100% !important;
}

.pa-booking-v4 .pa-continue-footnote {
  font-size: 0.8125rem !important;
  color: var(--pol-ink-3) !important;
  margin: 0 !important;
  line-height: 1.4 !important;
}

/* ── 8. Step 0 — schedule grid ───────────────────────────────────── */

.pa-booking-v4.is-single-screen .pa-schedule-grid-v25 {
  border-radius: var(--pol-radius) !important;
  border: 1.5px solid var(--pol-hairline-2) !important;
  box-shadow: var(--pol-shadow-md) !important;
  overflow: hidden !important;
  background: var(--pol-surface) !important;
}

.pa-booking-v4.is-single-screen .pa-schedule-grid-v25 .pa-glass-section--service,
.pa-booking-v4.is-single-screen .pa-schedule-grid-v25 .pa-glass-section--schedule {
  border-right: 1.5px solid var(--pol-hairline-2) !important;
}

.pa-booking-v4.is-single-screen .pa-schedule-col,
.pa-booking-v4.is-single-screen .pa-glass-section.pa-schedule-col {
  padding: 1rem 1.1rem !important;
}

.pa-booking-v4 .pa-schedule-col-title {
  font-size: 0.6875rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.075em !important;
  text-transform: uppercase !important;
  color: var(--pol-ink-3) !important;
  margin: 0 0 0.85rem !important;
}

.pa-booking-v4.is-single-screen .pa-service-option,
.pa-booking-v4.is-single-screen .pa-service-package--simple {
  border-radius: var(--pol-radius-xs) !important;
  border: 1.5px solid var(--pol-hairline-2) !important;
  background: var(--pol-surface) !important;
  padding: 0.85rem !important;
  min-height: 4rem !important;
  transition: border-color var(--pol-transition), box-shadow var(--pol-transition), background var(--pol-transition) !important;
  box-shadow: var(--pol-shadow-sm) !important;
}

.pa-booking-v4.is-single-screen .pa-service-option:hover:not(.is-selected) {
  border-color: rgba(0,0,0,0.2) !important;
  box-shadow: var(--pol-shadow-md) !important;
}

.pa-booking-v4.is-single-screen .pa-service-option.is-selected {
  background: var(--pol-ink) !important;
  border-color: var(--pol-ink) !important;
  box-shadow: var(--pol-shadow-md) !important;
}

.pa-booking-v4.is-single-screen .pa-service-option.is-selected .pa-service-option-name,
.pa-booking-v4.is-single-screen .pa-service-option.is-selected .pa-service-option-detail,
.pa-booking-v4.is-single-screen .pa-service-option.is-selected .pa-service-option-price {
  color: rgba(255,255,255,0.9) !important;
}

.pa-booking-v4.is-single-screen .pa-service-option-name {
  font-size: 0.9375rem !important;
  font-weight: 650 !important;
  color: var(--pol-ink) !important;
  line-height: 1.2 !important;
}

.pa-booking-v4.is-single-screen .pa-service-option-detail {
  font-size: 0.8125rem !important;
  color: var(--pol-ink-3) !important;
  line-height: 1.35 !important;
  margin-top: 0.2rem !important;
}

.pa-booking-v4.is-single-screen .pa-service-option-price {
  font-size: 0.8125rem !important;
  font-weight: 650 !important;
  color: var(--pol-ink) !important;
  margin-top: 0.4rem !important;
}

.pa-booking-v4 .pa-service-selected--compact {
  background: var(--pol-surface-2) !important;
  border: 1.5px solid var(--pol-hairline-2) !important;
  border-radius: var(--pol-radius-xs) !important;
  padding: 0.7rem 0.85rem !important;
}

.pa-booking-v4.is-single-screen .pa-cal-day {
  min-height: 2.1rem !important;
  font-size: 0.8125rem !important;
  border-radius: 6px !important;
  transition: background var(--pol-transition), color var(--pol-transition) !important;
}

.pa-booking-v4.is-single-screen .pa-cal-day:not(.is-unavailable):not(.is-selected):hover {
  background: var(--pol-surface-2) !important;
}

.pa-booking-v4.is-single-screen .pa-cal-day.is-selected {
  background: var(--pol-ink) !important;
  color: #fff !important;
  font-weight: 700 !important;
  box-shadow: var(--pol-shadow-sm) !important;
}

.pa-booking-v4.is-single-screen .pa-time-card {
  min-height: var(--pol-touch) !important;
  border-radius: var(--pol-radius-xs) !important;
  border: 1.5px solid var(--pol-hairline-2) !important;
  font-size: 0.875rem !important;
  transition: border-color var(--pol-transition), background var(--pol-transition), box-shadow var(--pol-transition) !important;
}

.pa-booking-v4.is-single-screen .pa-time-card:hover:not(.is-selected) {
  border-color: rgba(0,0,0,0.22) !important;
  background: var(--pol-surface-2) !important;
}

.pa-booking-v4.is-single-screen .pa-time-card.is-selected {
  background: var(--pol-ink) !important;
  border-color: var(--pol-ink) !important;
  color: #fff !important;
  font-weight: 650 !important;
}

.pa-booking-v4.is-single-screen .pa-schedule-footer {
  background: var(--pol-surface-2) !important;
  border-top: 1.5px solid var(--pol-hairline-2) !important;
  padding: 0.85rem 1.1rem !important;
}

.pa-booking-v4 .pa-pricing-summary-label {
  font-size: 0.9375rem !important;
  font-weight: 650 !important;
  color: var(--pol-ink) !important;
}

.pa-booking-v4 .pa-pricing-summary-from {
  font-size: 0.875rem !important;
  color: var(--pol-ink-3) !important;
  margin-left: 0.5rem !important;
}

.pa-booking-v4 .pa-pricing-summary-deposit-amount {
  font-size: 1.1rem !important;
  font-weight: 700 !important;
  color: var(--pol-ink) !important;
}

.pa-booking-v4 .pa-pricing-summary-note {
  font-size: 0.8125rem !important;
  color: var(--pol-ink-3) !important;
  margin: 0.25rem 0 0 !important;
}

.pa-booking-v4 .pa-panel-hint {
  font-size: 0.875rem !important;
  color: var(--pol-ink-4) !important;
  line-height: 1.45 !important;
  margin: 0.5rem 0 !important;
}

/* ── 9. Step 1 — details form ────────────────────────────────────── */

.pa-booking-v4 .pa-form-sheet--grouped {
  display: flex !important;
  flex-direction: column !important;
  gap: 1.25rem !important;
}

.pa-booking-v4 .pa-form-group--wizard {
  background: var(--pol-surface) !important;
  border: 1.5px solid var(--pol-hairline-2) !important;
  border-radius: var(--pol-radius-sm) !important;
  padding: 1rem 1.1rem !important;
  box-shadow: var(--pol-shadow-sm) !important;
  margin: 0 !important;
}

.pa-booking-v4 .pa-form-group--wizard .pa-form-group-title {
  font-size: 0.6875rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.075em !important;
  text-transform: uppercase !important;
  color: var(--pol-ink-3) !important;
  margin: 0 0 0.85rem !important;
  padding: 0 !important;
}

.pa-booking-v4 .pa-form-group--wizard .pa-form-group-body {
  gap: 0.85rem !important;
}

/* ── 10. Step 2 — review + deposit ──────────────────────────────── */

.pa-booking-v4 .pa-review-card-v25 {
  border: 1.5px solid var(--pol-hairline-2) !important;
  border-radius: var(--pol-radius) !important;
  background: var(--pol-surface) !important;
  box-shadow: var(--pol-shadow-md) !important;
  padding: 1.1rem 1.25rem !important;
  overflow: hidden !important;
}

.pa-booking-v4 .pa-review-card-head {
  margin-bottom: 0.75rem !important;
  padding-bottom: 0.75rem !important;
  border-bottom: 1.5px solid var(--pol-hairline) !important;
}

.pa-booking-v4 .pa-review-card-title {
  font-size: 0.9375rem !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
  color: var(--pol-ink) !important;
}

.pa-booking-v4 .pa-review-card-row {
  grid-template-columns: minmax(5rem, 6.5rem) 1fr auto !important;
  gap: 0.25rem 0.65rem !important;
  padding: 0.6rem 0 !important;
  align-items: center !important;
}

.pa-booking-v4 .pa-review-card-label {
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.03em !important;
  text-transform: uppercase !important;
  color: var(--pol-ink-3) !important;
}

.pa-booking-v4 .pa-review-card-value {
  font-size: 0.9375rem !important;
  color: var(--pol-ink) !important;
  line-height: 1.4 !important;
}

.pa-booking-v4 .pa-deposit-section {
  background: var(--pol-surface) !important;
  border: 1.5px solid var(--pol-hairline-2) !important;
  border-radius: var(--pol-radius) !important;
  box-shadow: var(--pol-shadow-md) !important;
  padding: 1.1rem 1.25rem !important;
  margin-top: 1.25rem !important;
}

.pa-booking-v4 .pa-deposit-section-title {
  font-size: 0.9375rem !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
  color: var(--pol-ink) !important;
  margin: 0 0 0.5rem !important;
}

.pa-booking-v4 .pa-deposit-section-lead {
  font-size: 0.875rem !important;
  color: var(--pol-ink-3) !important;
  line-height: 1.5 !important;
  margin: 0 0 1rem !important;
}

.pa-booking-v4 .pa-deposit-section-amount-row {
  padding: 0.85rem 1rem !important;
  background: var(--pol-surface-2) !important;
  border-radius: var(--pol-radius-xs) !important;
  margin-bottom: 1rem !important;
}

.pa-booking-v4 .pa-deposit-section-amount-label {
  font-size: 0.875rem !important;
  font-weight: 500 !important;
  color: var(--pol-ink-2) !important;
}

.pa-booking-v4 .pa-deposit-section-amount {
  font-size: 1.5rem !important;
  font-weight: 750 !important;
  letter-spacing: -0.03em !important;
  color: var(--pol-ink) !important;
}

.pa-booking-v4 .pa-deposit-trust-list {
  gap: 0.5rem !important;
  margin-bottom: 1rem !important;
  padding: 0 !important;
}

.pa-booking-v4 .pa-deposit-trust-item {
  font-size: 0.875rem !important;
  color: var(--pol-ink-2) !important;
  padding-left: 1.4rem !important;
  line-height: 1.45 !important;
}

.pa-booking-v4 .pa-deposit-trust-item::before {
  content: "\2713" !important;
  font-weight: 800 !important;
  font-size: 0.75rem !important;
  color: #1a7a44 !important;
  top: 0.1em !important;
}

.pa-booking-v4 .pa-deposit-section-secure {
  font-size: 0.8125rem !important;
  color: var(--pol-ink-4) !important;
  padding-top: 0.75rem !important;
  border-top: 1px solid var(--pol-hairline) !important;
  margin-top: 0.25rem !important;
}

.pa-booking-v4.is-single-screen .pa-step-review-v25 > .pa-booking-actions .pa-submit {
  min-height: 3.25rem !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  letter-spacing: -0.01em !important;
  border-radius: var(--pol-radius-xs) !important;
}

/* ── 11. Error messages ───────────────────────────────────────────── */

.pa-booking-v4 .pa-error {
  padding: 0.75rem 1rem !important;
  background: #fff5f5 !important;
  border: 1.5px solid #fca5a5 !important;
  border-radius: var(--pol-radius-xs) !important;
  color: #9b1c1c !important;
  font-size: 0.875rem !important;
  font-weight: 500 !important;
  line-height: 1.45 !important;
  margin: 0 0 1rem !important;
}

/* ── 12. Mobile ───────────────────────────────────────────────────── */

@media (max-width: 767px) {
  .pa-booking-v4 .pa-stepper--minimal .pa-stepper-label {
    display: none !important;
  }

  .pa-booking-v4 .pa-stepper--minimal .pa-stepper-item.is-active .pa-stepper-label {
    display: block !important;
  }

  .pa-booking-v4 .pa-form-group--wizard {
    padding: 0.85rem 0.9rem !important;
  }

  .pa-booking-v4 .pa-review-card-v25,
  .pa-booking-v4 .pa-deposit-section {
    padding: 0.9rem 1rem !important;
  }

  .pa-booking-v4.is-single-screen .pa-schedule-footer {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0.75rem !important;
  }

  .pa-booking-v4.is-single-screen .pa-schedule-footer-cta .pa-continue-footnote {
    text-align: left !important;
  }
}

/* ===== v2.6 Spacious /book/ layout (anti-cramp) ===== */

body.pa-booking-page,
body.pa-booking-page.is-booking-funnel {
  --pa-header-lockup-min: 0px;
  --pa-header-lockup-max: 220px;
  --pa-header-lockup-fluid: 38vw;
  --pa-book-gap: 1.25rem;
}

@media (max-width: 767px) {
  body.pa-booking-page,
  body.pa-booking-page.is-booking-funnel {
    --pa-header-lockup-max: 240px;
    --pa-header-lockup-fluid: 78vw;
  }
}

body.pa-booking-page header.pa-site-header,
body.pa-booking-page.is-booking-funnel header.pa-site-header {
  padding-top: 0.35rem !important;
  padding-bottom: 0.35rem !important;
}

body.pa-booking-page main.wp-block-group,
body.pa-booking-page .entry-content {
  padding-top: 0.25rem !important;
  padding-bottom: 0.75rem !important;
}

/* Release fixed viewport cage on desktop — stop squeezing wizard into 100dvh box */
@media (min-width: 1024px) {
  body.pa-booking-page.is-booking-funnel {
    overflow-x: hidden !important;
    overflow-y: auto !important;
    height: auto !important;
    min-height: 100dvh !important;
  }

  body.pa-booking-page.is-booking-funnel .site-content,
  body.pa-booking-page.is-booking-funnel main {
    display: block !important;
    min-height: 0 !important;
    justify-content: flex-start !important;
  }

  body.pa-booking-page .pa-booking-root.is-single-screen {
    max-width: min(1160px, calc(100vw - 2.5rem)) !important;
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;
    margin: 0.75rem auto 2rem !important;
  }

  body.pa-booking-page .pa-booking-root.is-single-screen .pa-booking-app {
    height: auto !important;
    max-height: none !important;
    padding: 1.15rem 1.5rem 1.35rem !important;
  }

  body.pa-booking-page.is-booking-funnel .pa-booking-v4.is-single-screen .pa-step-scroll {
    overflow: visible !important;
    max-height: none !important;
  }
}

/* One chrome band: stepper + hint only (title duplicates stepper label) */
body.pa-booking-page .pa-booking-v4.is-single-screen .pa-wizard-context-title {
  display: none !important;
}

body.pa-booking-page .pa-booking-v4.is-single-screen .pa-wizard-context {
  margin: 0 0 0.75rem !important;
}

body.pa-booking-page .pa-booking-v4.is-single-screen .pa-wizard-context-hint {
  margin: 0 !important;
  font-size: 0.875rem !important;
}

body.pa-booking-page .pa-booking-v4.is-single-screen .pa-booking-chrome {
  margin-bottom: 0.25rem !important;
}

/* Stop clipping schedule columns */
body.pa-booking-page .pa-booking-v4.is-single-screen .pa-booking-section-inner,
body.pa-booking-page .pa-booking-v4.is-single-screen .pa-glass-section.is-flow-visible,
body.pa-booking-page .pa-booking-v4.is-single-screen .pa-glass-section.is-flow-current,
body.pa-booking-page .pa-booking-v4.is-single-screen .pa-step-schedule,
body.pa-booking-page .pa-booking-v4.is-single-screen .pa-step-stage {
  overflow: visible !important;
  min-height: 0 !important;
}

/* Keep 3-column schedule on tablet+ (override 900px 2-col break) */
@media (min-width: 768px) {
  body.pa-booking-page .pa-booking-v4.is-single-screen .pa-schedule-grid-v25,
  body.pa-booking-page .pa-booking-v4.is-single-screen .pa-booking-sheet--wizard {
    grid-template-columns: minmax(250px, 1.05fr) minmax(290px, 1.35fr) minmax(210px, 0.92fr) !important;
  }

  body.pa-booking-page .pa-booking-v4.is-single-screen .pa-glass-section--service,
  body.pa-booking-page .pa-booking-v4.is-single-screen .pa-glass-section--schedule,
  body.pa-booking-page .pa-booking-v4.is-single-screen .pa-glass-section--time {
    grid-column: auto !important;
  }
}

body.pa-booking-page .pa-booking-v4.is-single-screen .pa-schedule-col,
body.pa-booking-page .pa-booking-v4.is-single-screen .pa-glass-section.pa-schedule-col {
  padding: 1.1rem 1.2rem !important;
}

body.pa-booking-page .pa-booking-v4.is-single-screen .pa-schedule-grid-v25 {
  border-radius: 16px !important;
}

/* Service list — shorter cards, visible overflow */
body.pa-booking-page .pa-booking-v4.is-single-screen .pa-service-list--simple {
  gap: 0.55rem !important;
  max-height: none !important;
  overflow: visible !important;
}

body.pa-booking-page .pa-booking-v4.is-single-screen .pa-service-option,
body.pa-booking-page .pa-booking-v4.is-single-screen .pa-service-package--simple {
  min-height: 0 !important;
  padding: 0.7rem 0.85rem !important;
}

body.pa-booking-page .pa-booking-v4.is-single-screen .pa-service-option-name {
  font-size: 0.9375rem !important;
  line-height: 1.25 !important;
}

body.pa-booking-page .pa-booking-v4.is-single-screen .pa-service-option-detail {
  font-size: 0.8125rem !important;
  margin-top: 0.15rem !important;
}

body.pa-booking-page .pa-booking-v4.is-single-screen .pa-service-option-price {
  font-size: 0.8125rem !important;
  margin-top: 0.25rem !important;
}

/* Calendar + time — readable, not micro */
body.pa-booking-page .pa-booking-v4.is-single-screen .pa-cal-day {
  min-height: 2.35rem !important;
  font-size: 0.875rem !important;
}

body.pa-booking-page .pa-booking-v4.is-single-screen .pa-cal-legend,
body.pa-booking-page .pa-booking-v4.is-single-screen .pa-cal-meta-strip {
  font-size: 0.75rem !important;
}

body.pa-booking-page .pa-booking-v4.is-single-screen .pa-time-grid {
  gap: 0.55rem !important;
}

body.pa-booking-page .pa-booking-v4.is-single-screen .pa-time-card {
  min-height: 44px !important;
  padding: 0.6rem 0.7rem !important;
  font-size: 0.875rem !important;
}

body.pa-booking-page .pa-booking-v4.is-single-screen .pa-schedule-footer {
  padding: 1rem 1.2rem !important;
  gap: 1rem !important;
}

/* Step 2 + 3 — airy grouped form and review */
body.pa-booking-page .pa-booking-v4.is-single-screen .pa-form-sheet--grouped {
  gap: 1rem !important;
}

body.pa-booking-page .pa-booking-v4 .pa-form-group--wizard {
  padding: 1.1rem 1.2rem !important;
}

body.pa-booking-page .pa-booking-v4.is-single-screen .pa-step-details .pa-step-scroll,
body.pa-booking-page .pa-booking-v4.is-single-screen .pa-step-review-v25 .pa-step-scroll--review {
  gap: 1rem !important;
}

/* Compact stepper on book page */
body.pa-booking-page .pa-booking-v4 .pa-stepper--minimal {
  margin-bottom: 0.65rem !important;
}

body.pa-booking-page .pa-booking-v4 .pa-stepper--minimal .pa-stepper-item {
  padding: 0.5rem 0.75rem !important;
}

@media (max-width: 767px) {
  body.pa-booking-page.is-booking-funnel .pa-booking-v4.is-single-screen .pa-step-scroll {
    max-height: calc(100dvh - 10rem) !important;
  }
}

/* ===================================================================
   PA Media Booking — Polish v2.0
   Scoped to actual DOM structure confirmed from live inspection.
   Paste at the very bottom of booking-ive.css.
   =================================================================== */

/* ── TOKENS ─────────────────────────────────────────────────────────
   On .pa-booking-root (where .pa-booking-v4 actually lives)
   ─────────────────────────────────────────────────────────────────── */
.pa-booking-root.pa-booking-v4 {
  --p-ink:       #0f0f10;
  --p-ink2:      #3a3a3c;
  --p-ink3:      #6e6e73;
  --p-ink4:      #aeaeb2;
  --p-bg:        #ffffff;
  --p-bg2:       #f5f5f7;
  --p-bg3:       #e8e8ed;
  --p-line:      rgba(0,0,0,0.09);
  --p-line2:     rgba(0,0,0,0.15);
  --p-r:         16px;
  --p-r-sm:      10px;
  --p-r-xs:      8px;
  --p-touch:     48px;
  --p-sh1:       0 1px 3px rgba(0,0,0,0.07), 0 1px 2px rgba(0,0,0,0.04);
  --p-sh2:       0 4px 16px rgba(0,0,0,0.09), 0 1px 4px rgba(0,0,0,0.05);
  --p-t:         160ms cubic-bezier(0.25, 0.1, 0.25, 1);
}

/* ── FIX: wizard title is display:none — restore it ─────────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app h2#pa-wizard-step-title,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-wizard-context-title {
  display: block !important;
  font-size: clamp(1.2rem, 2.2vw, 1.5rem) !important;
  font-weight: 700 !important;
  letter-spacing: -0.03em !important;
  line-height: 1.15 !important;
  margin: 0 0 0.25rem !important;
  color: var(--p-ink) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-wizard-context-hint {
  font-size: 0.9rem !important;
  color: var(--p-ink3) !important;
  margin: 0 0 1rem !important;
}

/* ── STEPPER — pill tab style ────────────────────────────────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-stepper--minimal {
  display: flex !important;
  gap: 0 !important;
  padding: 4px !important;
  margin-bottom: 1.25rem !important;
  background: var(--p-bg2) !important;
  border: 1px solid var(--p-line) !important;
  border-radius: 12px !important;
  border-bottom: 1px solid var(--p-line) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-stepper--minimal .pa-stepper-meter {
  display: none !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-stepper--minimal .pa-stepper-item {
  flex: 1 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.4rem !important;
  padding: 0.5rem 0.75rem !important;
  border-radius: 9px !important;
  background: transparent !important;
  box-shadow: none !important;
  position: relative !important;
  cursor: default !important;
  transition: background var(--p-t), box-shadow var(--p-t) !important;
}

/* Kill the underline from v2.5 */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-stepper--minimal .pa-stepper-item::after {
  display: none !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-stepper--minimal .pa-stepper-item.is-active {
  background: var(--p-bg) !important;
  box-shadow: 0 1px 4px rgba(0,0,0,0.10), 0 0 0 1px rgba(0,0,0,0.06) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-stepper--minimal .pa-stepper-item.is-done {
  opacity: 0.65 !important;
  cursor: pointer !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-stepper--minimal .pa-stepper-item.is-done:hover {
  opacity: 1 !important;
  background: rgba(0,0,0,0.035) !important;
}

/* Step number circles */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-stepper--minimal .pa-stepper-num {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 20px !important;
  height: 20px !important;
  border-radius: 50% !important;
  font-size: 0.6875rem !important;
  font-weight: 700 !important;
  flex-shrink: 0 !important;
  background: var(--p-bg3) !important;
  color: var(--p-ink2) !important;
  transition: background var(--p-t), color var(--p-t) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-stepper--minimal .pa-stepper-item.is-active .pa-stepper-num {
  background: var(--p-ink) !important;
  color: #fff !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-stepper--minimal .pa-stepper-item.is-done .pa-stepper-num {
  background: var(--p-ink) !important;
  color: #fff !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-stepper--minimal .pa-stepper-label {
  font-size: 0.8rem !important;
  font-weight: 500 !important;
  color: var(--p-ink3) !important;
  white-space: nowrap !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-stepper--minimal .pa-stepper-item.is-active .pa-stepper-label {
  color: var(--p-ink) !important;
  font-weight: 650 !important;
}

/* ── SCHEDULE GRID — the 3-column card ───────────────────────────── */

/* The grid wrapper itself */
.pa-booking-root.pa-booking-v4.is-single-screen #pa-booking-app .pa-schedule-grid-v25 {
  display: grid !important;
  grid-template-columns: 1fr 1.35fr 0.9fr !important;
  border-radius: var(--p-r) !important;
  border: 1.5px solid var(--p-line2) !important;
  box-shadow: var(--p-sh2) !important;
  overflow: hidden !important;
  background: var(--p-bg) !important;
  gap: 0 !important;
}

/* Column padding */
.pa-booking-root.pa-booking-v4.is-single-screen #pa-booking-app .pa-schedule-grid-v25 .pa-schedule-col {
  padding: 1rem 1rem !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

/* Column dividers */
.pa-booking-root.pa-booking-v4.is-single-screen #pa-booking-app .pa-glass-section--service {
  border-right: 1.5px solid var(--p-line2) !important;
}

.pa-booking-root.pa-booking-v4.is-single-screen #pa-booking-app .pa-glass-section--schedule {
  border-right: 1.5px solid var(--p-line2) !important;
}

/* Column labels (SERVICE / DATE / TIME) */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-schedule-col-title {
  font-size: 0.6875rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--p-ink3) !important;
  margin: 0 0 0.85rem !important;
}

/* ── SERVICE CARDS ───────────────────────────────────────────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-service-option {
  display: flex !important;
  border: 1.5px solid var(--p-line2) !important;
  border-radius: var(--p-r-xs) !important;
  background: var(--p-bg) !important;
  padding: 0.75rem 0.85rem !important;
  margin-bottom: 0.5rem !important;
  cursor: pointer !important;
  text-align: left !important;
  width: 100% !important;
  transition: border-color var(--p-t), box-shadow var(--p-t), background var(--p-t) !important;
  box-shadow: var(--p-sh1) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-service-option:last-child {
  margin-bottom: 0 !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-service-option:hover:not(.is-selected) {
  border-color: rgba(0,0,0,0.22) !important;
  box-shadow: var(--p-sh2) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-service-option.is-selected {
  background: var(--p-ink) !important;
  border-color: var(--p-ink) !important;
  box-shadow: var(--p-sh2) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-service-option.is-selected .pa-service-option-name,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-service-option.is-selected .pa-service-option-detail,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-service-option.is-selected .pa-service-option-price,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-service-option.is-selected .pa-service-recommended {
  color: rgba(255,255,255,0.9) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-service-option-name {
  display: block !important;
  font-size: 0.9375rem !important;
  font-weight: 650 !important;
  color: var(--p-ink) !important;
  line-height: 1.2 !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-service-option-detail {
  display: block !important;
  font-size: 0.8125rem !important;
  color: var(--p-ink3) !important;
  line-height: 1.35 !important;
  margin-top: 0.2rem !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-service-option-price {
  display: block !important;
  font-size: 0.8125rem !important;
  font-weight: 650 !important;
  color: var(--p-ink) !important;
  margin-top: 0.35rem !important;
}

/* ── CALENDAR ────────────────────────────────────────────────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-cal-day {
  border-radius: 6px !important;
  transition: background var(--p-t), color var(--p-t) !important;
  font-size: 0.8125rem !important;
  min-height: 2rem !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-cal-day:not(.is-unavailable):not(.is-selected):not(.is-past):hover {
  background: var(--p-bg2) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-cal-day.is-selected {
  background: var(--p-ink) !important;
  color: #fff !important;
  font-weight: 700 !important;
}

/* ── TIME CARDS ──────────────────────────────────────────────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-time-card {
  min-height: var(--p-touch) !important;
  border-radius: var(--p-r-xs) !important;
  border: 1.5px solid var(--p-line2) !important;
  font-size: 0.875rem !important;
  font-weight: 500 !important;
  transition: border-color var(--p-t), background var(--p-t) !important;
  cursor: pointer !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-time-card:hover:not(.is-selected) {
  border-color: rgba(0,0,0,0.22) !important;
  background: var(--p-bg2) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-time-card.is-selected {
  background: var(--p-ink) !important;
  border-color: var(--p-ink) !important;
  color: #fff !important;
  font-weight: 650 !important;
}

/* ── SCHEDULE FOOTER ─────────────────────────────────────────────── */
.pa-booking-root.pa-booking-v4.is-single-screen #pa-booking-app .pa-schedule-footer {
  grid-column: 1 / -1 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  flex-wrap: wrap !important;
  gap: 0.75rem 1rem !important;
  padding: 0.85rem 1rem !important;
  background: var(--p-bg2) !important;
  border-top: 1.5px solid var(--p-line2) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-pricing-summary--sticky {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-pricing-summary-label {
  font-size: 0.9375rem !important;
  font-weight: 650 !important;
  color: var(--p-ink) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-pricing-summary-from {
  font-size: 0.875rem !important;
  color: var(--p-ink3) !important;
  margin-left: 0.4rem !important;
}

/* ── PRIMARY BUTTON ──────────────────────────────────────────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-submit.pa-btn,
.pa-booking-root.pa-booking-v4 #pa-booking-app button.pa-submit {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: var(--p-touch) !important;
  padding: 0 1.65rem !important;
  font-size: 0.9375rem !important;
  font-weight: 650 !important;
  font-family: inherit !important;
  letter-spacing: -0.01em !important;
  color: #fff !important;
  background: var(--p-ink) !important;
  border: none !important;
  border-radius: var(--p-r-xs) !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.2), 0 4px 14px rgba(0,0,0,0.14) !important;
  cursor: pointer !important;
  transition: background var(--p-t), box-shadow var(--p-t), transform var(--p-t) !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  white-space: nowrap !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-submit.pa-btn:hover:not(:disabled),
.pa-booking-root.pa-booking-v4 #pa-booking-app button.pa-submit:hover:not(:disabled) {
  background: #1c1c1f !important;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2), 0 8px 20px rgba(0,0,0,0.16) !important;
  transform: translateY(-1px) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-submit.pa-btn:active:not(:disabled),
.pa-booking-root.pa-booking-v4 #pa-booking-app button.pa-submit:active:not(:disabled) {
  transform: translateY(0) !important;
  box-shadow: 0 1px 2px rgba(0,0,0,0.18) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-submit.pa-btn:disabled,
.pa-booking-root.pa-booking-v4 #pa-booking-app button.pa-submit:disabled {
  opacity: 0.35 !important;
  cursor: not-allowed !important;
  transform: none !important;
  box-shadow: none !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-submit.pa-btn.is-ready {
  opacity: 1 !important;
}

/* ── EDIT / GHOST BUTTONS ────────────────────────────────────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-text-btn,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-recap-line-edit {
  display: inline-flex !important;
  align-items: center !important;
  padding: 0.2rem 0.55rem !important;
  font-size: 0.8125rem !important;
  font-weight: 600 !important;
  color: var(--p-ink2) !important;
  background: transparent !important;
  border: 1.5px solid var(--p-line2) !important;
  border-radius: 6px !important;
  cursor: pointer !important;
  transition: background var(--p-t), border-color var(--p-t) !important;
  white-space: nowrap !important;
  line-height: 1.2 !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-text-btn:hover,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-recap-line-edit:hover {
  background: var(--p-bg2) !important;
  border-color: rgba(0,0,0,0.22) !important;
}

/* ── ACTION FOOTER ───────────────────────────────────────────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-booking-actions {
  margin-top: 1.25rem !important;
  padding-top: 1rem !important;
  border-top: 1px solid var(--p-line) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-booking-actions .pa-submit {
  width: 100% !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-continue-footnote {
  margin: 0.4rem 0 0 !important;
  font-size: 0.8125rem !important;
  color: var(--p-ink3) !important;
}

/* ── STEP TRANSITIONS ────────────────────────────────────────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step {
  animation: pa-pol-in 240ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes pa-pol-in {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}

.pa-booking-root.pa-booking-v4 #pa-booking-app[data-step-dir="fwd"] .pa-step {
  animation-name: pa-pol-fwd;
}
@keyframes pa-pol-fwd {
  from { opacity: 0; transform: translateX(18px); }
  to   { opacity: 1; transform: translateX(0); }
}

.pa-booking-root.pa-booking-v4 #pa-booking-app[data-step-dir="back"] .pa-step {
  animation-name: pa-pol-back;
}
@keyframes pa-pol-back {
  from { opacity: 0; transform: translateX(-18px); }
  to   { opacity: 1; transform: translateX(0); }
}

@media (prefers-reduced-motion: reduce) {
  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step {
    animation: none !important;
  }
}

/* ── STEP 1 — DETAILS FORM ───────────────────────────────────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-group--wizard {
  background: var(--p-bg) !important;
  border: 1.5px solid var(--p-line2) !important;
  border-radius: var(--p-r-sm) !important;
  padding: 1rem 1.1rem !important;
  box-shadow: var(--p-sh1) !important;
  margin: 0 !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-group--wizard .pa-form-group-title {
  font-size: 0.6875rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--p-ink3) !important;
  margin: 0 0 0.85rem !important;
  padding: 0 !important;
}

/* Inputs */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-text-input,
.pa-booking-root.pa-booking-v4 #pa-booking-app textarea.pa-input {
  min-height: var(--p-touch) !important;
  padding: 0.65rem 0.85rem !important;
  font-size: 0.9375rem !important;
  font-family: inherit !important;
  color: var(--p-ink) !important;
  background: var(--p-bg) !important;
  border: 1.5px solid var(--p-line2) !important;
  border-radius: var(--p-r-xs) !important;
  box-shadow: var(--p-sh1) !important;
  outline: none !important;
  width: 100% !important;
  box-sizing: border-box !important;
  transition: border-color var(--p-t), box-shadow var(--p-t) !important;
  appearance: none !important;
  -webkit-appearance: none !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-text-input:focus,
.pa-booking-root.pa-booking-v4 #pa-booking-app textarea.pa-input:focus {
  border-color: var(--p-ink) !important;
  box-shadow: 0 0 0 3px rgba(0,0,0,0.10) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-text-input::placeholder,
.pa-booking-root.pa-booking-v4 #pa-booking-app textarea.pa-input::placeholder {
  color: var(--p-ink4) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-field-label {
  display: block !important;
  margin-bottom: 0.3rem !important;
  font-size: 0.875rem !important;
  font-weight: 600 !important;
  color: var(--p-ink2) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-input-error {
  border-color: #c0392b !important;
  box-shadow: 0 0 0 3px rgba(192,57,43,0.12) !important;
}

/* ── STEP 2 — REVIEW CARD ────────────────────────────────────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-review-card-v25 {
  border: 1.5px solid var(--p-line2) !important;
  border-radius: var(--p-r) !important;
  background: var(--p-bg) !important;
  box-shadow: var(--p-sh2) !important;
  padding: 1.1rem 1.25rem !important;
  overflow: hidden !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-review-card-head {
  padding-bottom: 0.7rem !important;
  margin-bottom: 0.25rem !important;
  border-bottom: 1.5px solid var(--p-line) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-review-card-title {
  font-size: 0.9375rem !important;
  font-weight: 700 !important;
  color: var(--p-ink) !important;
  letter-spacing: -0.02em !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-review-card-label {
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
  color: var(--p-ink3) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-review-card-value {
  font-size: 0.9375rem !important;
  color: var(--p-ink) !important;
  line-height: 1.4 !important;
}

/* ── STEP 2 — DEPOSIT SECTION ────────────────────────────────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-deposit-section {
  background: var(--p-bg) !important;
  border: 1.5px solid var(--p-line2) !important;
  border-radius: var(--p-r) !important;
  box-shadow: var(--p-sh2) !important;
  padding: 1.1rem 1.25rem !important;
  margin-top: 0 !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-deposit-section-title {
  font-size: 0.9375rem !important;
  font-weight: 700 !important;
  color: var(--p-ink) !important;
  margin: 0 0 0.4rem !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-deposit-section-lead {
  font-size: 0.875rem !important;
  color: var(--p-ink3) !important;
  line-height: 1.5 !important;
  margin: 0 0 0.85rem !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-deposit-section-amount-row {
  display: flex !important;
  align-items: baseline !important;
  justify-content: space-between !important;
  padding: 0.8rem 1rem !important;
  background: var(--p-bg2) !important;
  border-radius: var(--p-r-xs) !important;
  margin-bottom: 0.85rem !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-deposit-section-amount {
  font-size: 1.5rem !important;
  font-weight: 750 !important;
  letter-spacing: -0.03em !important;
  color: var(--p-ink) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-deposit-trust-item {
  font-size: 0.875rem !important;
  color: var(--p-ink2) !important;
  line-height: 1.45 !important;
  padding-left: 1.4rem !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-deposit-trust-item::before {
  content: "\2713" !important;
  font-weight: 800 !important;
  color: #1a7a44 !important;
  font-size: 0.75rem !important;
  top: 0.1em !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-deposit-section-secure {
  font-size: 0.8125rem !important;
  color: var(--p-ink4) !important;
  border-top: 1px solid var(--p-line) !important;
  padding-top: 0.7rem !important;
  margin-top: 0.5rem !important;
}

/* ── ERROR MESSAGE ───────────────────────────────────────────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-error {
  padding: 0.75rem 1rem !important;
  background: #fff5f5 !important;
  border: 1.5px solid #fca5a5 !important;
  border-radius: var(--p-r-xs) !important;
  color: #9b1c1c !important;
  font-size: 0.875rem !important;
  font-weight: 500 !important;
  margin: 0 0 1rem !important;
}

/* ── MOBILE ──────────────────────────────────────────────────────── */
@media (max-width: 767px) {
  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-stepper--minimal .pa-stepper-label {
    display: none !important;
  }
  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-stepper--minimal .pa-stepper-item.is-active .pa-stepper-label {
    display: block !important;
  }
  .pa-booking-root.pa-booking-v4.is-single-screen #pa-booking-app .pa-schedule-grid-v25 {
    grid-template-columns: 1fr !important;
  }
  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-group--wizard {
    padding: 0.85rem !important;
  }
}

@media (max-width: 767px) {
  body.pa-booking-page.is-booking-funnel .pa-booking-v4.is-single-screen .pa-step-scroll {
    max-height: calc(100dvh - 10rem) !important;
  }
}

/* ===== v2.5 Wizard UX Refinement — REBUILT ===== */

/* TOKENS */
.pa-booking-root.pa-booking-v4 {
  --p-ink:    #0f0f10;
  --p-ink2:   #3a3a3c;
  --p-ink3:   #6e6e73;
  --p-ink4:   #aeaeb2;
  --p-bg:     #ffffff;
  --p-bg2:    #f5f5f7;
  --p-bg3:    #e8e8ed;
  --p-line:   rgba(0,0,0,0.09);
  --p-line2:  rgba(0,0,0,0.15);
  --p-r:      16px;
  --p-rsm:    10px;
  --p-rxs:    8px;
  --p-touch:  48px;
  --p-sh1:    0 1px 3px rgba(0,0,0,0.07),0 1px 2px rgba(0,0,0,0.04);
  --p-sh2:    0 4px 16px rgba(0,0,0,0.09),0 1px 4px rgba(0,0,0,0.05);
  --p-t:      160ms cubic-bezier(0.25,0.1,0.25,1);
}

/* ── LAYOUT SHELL ── */
.pa-booking-root.pa-booking-v4 #pa-booking-app {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  color: var(--p-ink) !important;
}

/* ── WIZARD TITLE — currently hidden, restore it ── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-wizard-context-title,
.pa-booking-root.pa-booking-v4 #pa-booking-app h2#pa-wizard-step-title {
  display: block !important;
  font-size: clamp(1.2rem,2.2vw,1.5rem) !important;
  font-weight: 700 !important;
  letter-spacing: -0.03em !important;
  line-height: 1.15 !important;
  margin: 0 0 0.2rem !important;
  color: var(--p-ink) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-wizard-context-hint {
  font-size: 0.9rem !important;
  color: var(--p-ink3) !important;
  margin: 0 0 1.1rem !important;
  line-height: 1.5 !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-wizard-context {
  margin-bottom: 0.85rem !important;
}

/* ── STEPPER — pill tab style ── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-stepper--minimal {
  display: flex !important;
  gap: 0 !important;
  padding: 4px !important;
  margin-bottom: 1.35rem !important;
  background: var(--p-bg2) !important;
  border: 1px solid var(--p-line) !important;
  border-bottom: 1px solid var(--p-line) !important;
  border-radius: 12px !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-stepper--minimal .pa-stepper-meter {
  display: none !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-stepper--minimal .pa-stepper-item {
  flex: 1 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.4rem !important;
  padding: 0.5rem 0.75rem !important;
  border-radius: 9px !important;
  background: transparent !important;
  box-shadow: none !important;
  position: relative !important;
  cursor: default !important;
  transition: background var(--p-t),box-shadow var(--p-t) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-stepper--minimal .pa-stepper-item::after {
  display: none !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-stepper--minimal .pa-stepper-item.is-active {
  background: var(--p-bg) !important;
  box-shadow: 0 1px 4px rgba(0,0,0,0.10),0 0 0 1px rgba(0,0,0,0.06) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-stepper--minimal .pa-stepper-item.is-done {
  opacity: 0.6 !important;
  cursor: pointer !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-stepper--minimal .pa-stepper-item.is-done:hover {
  opacity: 1 !important;
  background: rgba(0,0,0,0.035) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-stepper--minimal .pa-stepper-num {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 20px !important;
  height: 20px !important;
  border-radius: 50% !important;
  font-size: 0.6875rem !important;
  font-weight: 700 !important;
  flex-shrink: 0 !important;
  background: var(--p-bg3) !important;
  color: var(--p-ink2) !important;
  transition: background var(--p-t),color var(--p-t) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-stepper--minimal .pa-stepper-item.is-active .pa-stepper-num,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-stepper--minimal .pa-stepper-item.is-done .pa-stepper-num {
  background: var(--p-ink) !important;
  color: #fff !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-stepper--minimal .pa-stepper-label {
  font-size: 0.8rem !important;
  font-weight: 500 !important;
  color: var(--p-ink3) !important;
  white-space: nowrap !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-stepper--minimal .pa-stepper-item.is-active .pa-stepper-label {
  color: var(--p-ink) !important;
  font-weight: 650 !important;
}

/* ── STEP TRANSITIONS ── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step {
  animation: pa-step-rise 240ms cubic-bezier(0.22,1,0.36,1) both !important;
}

@keyframes pa-step-rise {
  from { opacity:0; transform:translateY(10px); }
  to   { opacity:1; transform:translateY(0); }
}

.pa-booking-root.pa-booking-v4 #pa-booking-app[data-dir="fwd"] .pa-step {
  animation-name: pa-step-fwd !important;
}
@keyframes pa-step-fwd {
  from { opacity:0; transform:translateX(20px); }
  to   { opacity:1; transform:translateX(0); }
}

.pa-booking-root.pa-booking-v4 #pa-booking-app[data-dir="back"] .pa-step {
  animation-name: pa-step-back !important;
}
@keyframes pa-step-back {
  from { opacity:0; transform:translateX(-20px); }
  to   { opacity:1; transform:translateX(0); }
}

@media (prefers-reduced-motion: reduce) {
  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step {
    animation: none !important;
  }
}

/* ── STEP 0: SCHEDULE GRID ── */
.pa-booking-root.pa-booking-v4.is-single-screen #pa-booking-app .pa-schedule-grid-v25 {
  display: grid !important;
  grid-template-columns: 1fr 1.35fr 0.9fr !important;
  gap: 0 !important;
  border-radius: var(--p-r) !important;
  border: 1.5px solid var(--p-line2) !important;
  box-shadow: var(--p-sh2) !important;
  overflow: hidden !important;
  background: var(--p-bg) !important;
  align-items: stretch !important;
}

.pa-booking-root.pa-booking-v4.is-single-screen #pa-booking-app .pa-schedule-grid-v25 .pa-flow-progress--hidden {
  display: none !important;
}

.pa-booking-root.pa-booking-v4.is-single-screen #pa-booking-app .pa-schedule-grid-v25 .pa-schedule-col,
.pa-booking-root.pa-booking-v4.is-single-screen #pa-booking-app .pa-schedule-grid-v25 .pa-glass-section {
  padding: 1rem 1rem !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.pa-booking-root.pa-booking-v4.is-single-screen #pa-booking-app .pa-glass-section--service {
  border-right: 1.5px solid var(--p-line2) !important;
}

.pa-booking-root.pa-booking-v4.is-single-screen #pa-booking-app .pa-glass-section--schedule {
  border-right: 1.5px solid var(--p-line2) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-schedule-col-title,
.pa-booking-root.pa-booking-v4 #pa-booking-app h3.pa-section-title {
  font-size: 0.6875rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--p-ink3) !important;
  margin: 0 0 0.85rem !important;
}

/* ── SERVICE CARDS ── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-service-list {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.5rem !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-service-option {
  display: block !important;
  width: 100% !important;
  text-align: left !important;
  border: 1.5px solid var(--p-line2) !important;
  border-radius: var(--p-rxs) !important;
  background: var(--p-bg) !important;
  padding: 0.75rem 0.85rem !important;
  cursor: pointer !important;
  transition: border-color var(--p-t),box-shadow var(--p-t),background var(--p-t) !important;
  box-shadow: var(--p-sh1) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-service-option:hover:not(.is-selected) {
  border-color: rgba(0,0,0,0.25) !important;
  box-shadow: var(--p-sh2) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-service-option.is-selected {
  background: var(--p-ink) !important;
  border-color: var(--p-ink) !important;
  box-shadow: var(--p-sh2) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-service-option.is-selected .pa-service-option-name,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-service-option.is-selected .pa-service-option-detail,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-service-option.is-selected .pa-service-option-price,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-service-option.is-selected .pa-service-recommended {
  color: rgba(255,255,255,0.92) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-service-option-name {
  display: block !important;
  font-size: 0.9375rem !important;
  font-weight: 650 !important;
  color: var(--p-ink) !important;
  line-height: 1.2 !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-service-option-detail {
  display: block !important;
  font-size: 0.8125rem !important;
  color: var(--p-ink3) !important;
  line-height: 1.35 !important;
  margin-top: 0.2rem !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-service-option-price {
  display: block !important;
  font-size: 0.8125rem !important;
  font-weight: 650 !important;
  color: var(--p-ink) !important;
  margin-top: 0.35rem !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-service-selected--compact {
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 0.35rem 0.65rem !important;
  padding: 0.7rem 0.85rem !important;
  background: var(--p-bg2) !important;
  border: 1.5px solid var(--p-line2) !important;
  border-radius: var(--p-rxs) !important;
}

/* ── CALENDAR ── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-cal-day {
  border-radius: 6px !important;
  font-size: 0.8125rem !important;
  min-height: 2rem !important;
  transition: background var(--p-t),color var(--p-t) !important;
  cursor: pointer !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-cal-day:not(.is-unavailable):not(.is-selected):not(.is-past):hover {
  background: var(--p-bg2) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-cal-day.is-selected {
  background: var(--p-ink) !important;
  color: #fff !important;
  font-weight: 700 !important;
}

/* ── TIME CARDS ── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-time-card {
  min-height: var(--p-touch) !important;
  border-radius: var(--p-rxs) !important;
  border: 1.5px solid var(--p-line2) !important;
  font-size: 0.875rem !important;
  font-weight: 500 !important;
  cursor: pointer !important;
  transition: border-color var(--p-t),background var(--p-t) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-time-card:hover:not(.is-selected) {
  border-color: rgba(0,0,0,0.25) !important;
  background: var(--p-bg2) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-time-card.is-selected {
  background: var(--p-ink) !important;
  border-color: var(--p-ink) !important;
  color: #fff !important;
  font-weight: 650 !important;
}

/* ── SCHEDULE FOOTER ── */
.pa-booking-root.pa-booking-v4.is-single-screen #pa-booking-app .pa-schedule-footer {
  grid-column: 1 / -1 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  flex-wrap: wrap !important;
  gap: 0.75rem 1rem !important;
  padding: 0.85rem 1rem !important;
  background: var(--p-bg2) !important;
  border-top: 1.5px solid var(--p-line2) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-pricing-summary--sticky {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-pricing-summary-label {
  font-size: 0.9375rem !important;
  font-weight: 650 !important;
  color: var(--p-ink) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-pricing-summary-from {
  font-size: 0.875rem !important;
  color: var(--p-ink3) !important;
  margin-left: 0.4rem !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-schedule-footer-cta {
  flex: 0 1 auto !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  background: transparent !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-panel-hint {
  font-size: 0.875rem !important;
  color: var(--p-ink4) !important;
  margin: 0.5rem 0 !important;
}

/* ── PRIMARY BUTTON ── */
.pa-booking-root.pa-booking-v4 #pa-booking-app button.pa-submit,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-submit.pa-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: var(--p-touch) !important;
  padding: 0 1.65rem !important;
  font-size: 0.9375rem !important;
  font-weight: 650 !important;
  font-family: inherit !important;
  letter-spacing: -0.01em !important;
  color: #fff !important;
  background: var(--p-ink) !important;
  border: none !important;
  border-radius: var(--p-rxs) !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.2),0 4px 14px rgba(0,0,0,0.14) !important;
  cursor: pointer !important;
  transition: background var(--p-t),box-shadow var(--p-t),transform var(--p-t) !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  white-space: nowrap !important;
  text-decoration: none !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app button.pa-submit:hover:not(:disabled),
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-submit.pa-btn:hover:not(:disabled) {
  background: #1c1c1f !important;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2),0 8px 20px rgba(0,0,0,0.16) !important;
  transform: translateY(-1px) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app button.pa-submit:active:not(:disabled),
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-submit.pa-btn:active:not(:disabled) {
  transform: translateY(0) !important;
  box-shadow: 0 1px 2px rgba(0,0,0,0.18) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app button.pa-submit:disabled,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-submit.pa-btn:disabled {
  opacity: 0.35 !important;
  cursor: not-allowed !important;
  transform: none !important;
  box-shadow: none !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app button.pa-submit.is-ready,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-submit.pa-btn.is-ready {
  opacity: 1 !important;
}

/* ── EDIT / GHOST BUTTONS ── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-text-btn,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-recap-line-edit {
  display: inline-flex !important;
  align-items: center !important;
  padding: 0.2rem 0.55rem !important;
  font-size: 0.8125rem !important;
  font-weight: 600 !important;
  color: var(--p-ink2) !important;
  background: transparent !important;
  border: 1.5px solid var(--p-line2) !important;
  border-radius: 6px !important;
  cursor: pointer !important;
  transition: background var(--p-t),border-color var(--p-t) !important;
  white-space: nowrap !important;
  line-height: 1.2 !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-text-btn:hover,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-recap-line-edit:hover {
  background: var(--p-bg2) !important;
  border-color: rgba(0,0,0,0.22) !important;
}

/* ── ACTION FOOTER ── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-booking-actions {
  margin-top: 1.25rem !important;
  padding-top: 1rem !important;
  border-top: 1px solid var(--p-line) !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 0.4rem !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-booking-actions button.pa-submit,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-booking-actions .pa-submit.pa-btn {
  width: 100% !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-continue-footnote {
  margin: 0 !important;
  font-size: 0.8125rem !important;
  color: var(--p-ink3) !important;
  line-height: 1.4 !important;
}

/* ── STEP 1: FORM ── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-sheet--grouped {
  display: flex !important;
  flex-direction: column !important;
  gap: 1rem !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-group--wizard {
  background: var(--p-bg) !important;
  border: 1.5px solid var(--p-line2) !important;
  border-radius: var(--p-rsm) !important;
  padding: 1rem 1.1rem !important;
  box-shadow: var(--p-sh1) !important;
  margin: 0 !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-group--wizard .pa-form-group-title {
  font-size: 0.6875rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--p-ink3) !important;
  margin: 0 0 0.85rem !important;
  padding: 0 !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-group--wizard .pa-form-group-body {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.75rem !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-field-label {
  display: block !important;
  margin-bottom: 0.3rem !important;
  font-size: 0.875rem !important;
  font-weight: 600 !important;
  color: var(--p-ink2) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-text-input,
.pa-booking-root.pa-booking-v4 #pa-booking-app textarea.pa-input {
  display: block !important;
  width: 100% !important;
  min-height: var(--p-touch) !important;
  padding: 0.65rem 0.85rem !important;
  font-size: 0.9375rem !important;
  font-family: inherit !important;
  line-height: 1.45 !important;
  color: var(--p-ink) !important;
  background: var(--p-bg) !important;
  border: 1.5px solid var(--p-line2) !important;
  border-radius: var(--p-rxs) !important;
  box-shadow: var(--p-sh1) !important;
  outline: none !important;
  box-sizing: border-box !important;
  transition: border-color var(--p-t),box-shadow var(--p-t) !important;
  appearance: none !important;
  -webkit-appearance: none !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-text-input:hover,
.pa-booking-root.pa-booking-v4 #pa-booking-app textarea.pa-input:hover {
  border-color: rgba(0,0,0,0.25) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-text-input:focus,
.pa-booking-root.pa-booking-v4 #pa-booking-app textarea.pa-input:focus {
  border-color: var(--p-ink) !important;
  box-shadow: 0 0 0 3px rgba(0,0,0,0.09) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-text-input::placeholder,
.pa-booking-root.pa-booking-v4 #pa-booking-app textarea.pa-input::placeholder {
  color: var(--p-ink4) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-input-error,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-text-input.pa-input-error {
  border-color: #c0392b !important;
  box-shadow: 0 0 0 3px rgba(192,57,43,0.12) !important;
}

@media (min-width: 768px) {
  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-group--contact .pa-form-group-body {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 0.75rem !important;
  }
  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-group--contact .pa-form-group-body .pa-field:first-child {
    grid-column: 1 / -1 !important;
  }
}

/* ── STEP 2: REVIEW CARD ── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-review-card-v25 {
  border: 1.5px solid var(--p-line2) !important;
  border-radius: var(--p-r) !important;
  background: var(--p-bg) !important;
  box-shadow: var(--p-sh2) !important;
  padding: 1.1rem 1.25rem !important;
  overflow: hidden !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-review-card-head {
  padding-bottom: 0.7rem !important;
  margin-bottom: 0.5rem !important;
  border-bottom: 1.5px solid var(--p-line) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-review-card-title {
  font-size: 0.9375rem !important;
  font-weight: 700 !important;
  color: var(--p-ink) !important;
  letter-spacing: -0.02em !important;
  margin: 0 !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-review-card-sections {
  display: flex !important;
  flex-direction: column !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-review-card-row {
  display: grid !important;
  grid-template-columns: minmax(5rem,6.5rem) 1fr auto !important;
  gap: 0.2rem 0.65rem !important;
  align-items: center !important;
  padding: 0.6rem 0 !important;
  border-top: 1px solid var(--p-line) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-review-card-row:first-child {
  border-top: none !important;
  padding-top: 0.25rem !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-review-card-label {
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
  color: var(--p-ink3) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-review-card-value {
  font-size: 0.9375rem !important;
  color: var(--p-ink) !important;
  line-height: 1.4 !important;
  word-break: break-word !important;
}

/* ── STEP 2: DEPOSIT ── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-deposit-section {
  background: var(--p-bg) !important;
  border: 1.5px solid var(--p-line2) !important;
  border-radius: var(--p-r) !important;
  box-shadow: var(--p-sh2) !important;
  padding: 1.1rem 1.25rem !important;
  margin-top: 0 !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-deposit-section-title {
  font-size: 0.9375rem !important;
  font-weight: 700 !important;
  color: var(--p-ink) !important;
  margin: 0 0 0.4rem !important;
  letter-spacing: -0.02em !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-deposit-section-lead {
  font-size: 0.875rem !important;
  color: var(--p-ink3) !important;
  line-height: 1.5 !important;
  margin: 0 0 0.85rem !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-deposit-section-amount-row {
  display: flex !important;
  align-items: baseline !important;
  justify-content: space-between !important;
  padding: 0.8rem 1rem !important;
  background: var(--p-bg2) !important;
  border-radius: var(--p-rxs) !important;
  margin-bottom: 0.85rem !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-deposit-section-amount-label {
  font-size: 0.875rem !important;
  font-weight: 500 !important;
  color: var(--p-ink2) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-deposit-section-amount {
  font-size: 1.5rem !important;
  font-weight: 750 !important;
  letter-spacing: -0.03em !important;
  color: var(--p-ink) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-deposit-trust-list {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 0 0.85rem !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 0.45rem !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-deposit-trust-item {
  position: relative !important;
  padding-left: 1.4rem !important;
  font-size: 0.875rem !important;
  color: var(--p-ink2) !important;
  line-height: 1.45 !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-deposit-trust-item::before {
  content: "\2713" !important;
  position: absolute !important;
  left: 0 !important;
  top: 0.1em !important;
  font-weight: 800 !important;
  font-size: 0.75rem !important;
  color: #1a7a44 !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-deposit-section-secure {
  font-size: 0.8125rem !important;
  color: var(--p-ink4) !important;
  border-top: 1px solid var(--p-line) !important;
  padding-top: 0.7rem !important;
  margin-top: 0.5rem !important;
}

/* ── STEP 2: REVIEW LAYOUT (desktop 2-col) ── */
.pa-booking-root.pa-booking-v4.is-single-screen #pa-booking-app .pa-step-review-v25 .pa-step-scroll--review {
  display: flex !important;
  flex-direction: column !important;
  gap: 1rem !important;
}

@media (min-width: 900px) {
  .pa-booking-root.pa-booking-v4.is-single-screen #pa-booking-app .pa-step-review-v25 .pa-step-scroll--review {
    display: grid !important;
    grid-template-columns: 1.2fr 0.8fr !important;
    align-items: start !important;
    gap: 1.25rem !important;
  }
  .pa-booking-root.pa-booking-v4.is-single-screen #pa-booking-app .pa-step-review-v25 .pa-review-card-v25 {
    grid-column: 1 !important;
    grid-row: 1 / span 2 !important;
  }
  .pa-booking-root.pa-booking-v4.is-single-screen #pa-booking-app .pa-step-review-v25 .pa-deposit-section {
    grid-column: 2 !important;
    margin-top: 0 !important;
  }
  .pa-booking-root.pa-booking-v4.is-single-screen #pa-booking-app .pa-step-review-v25 .pa-terms-wrap {
    grid-column: 2 !important;
  }
}

.pa-booking-root.pa-booking-v4.is-single-screen #pa-booking-app .pa-step-review-v25 > .pa-booking-actions button.pa-submit {
  width: 100% !important;
  min-height: 3.25rem !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
}

/* ── ERROR ── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-error {
  padding: 0.75rem 1rem !important;
  background: #fff5f5 !important;
  border: 1.5px solid #fca5a5 !important;
  border-radius: var(--p-rxs) !important;
  color: #9b1c1c !important;
  font-size: 0.875rem !important;
  font-weight: 500 !important;
  margin: 0 0 1rem !important;
  line-height: 1.45 !important;
}

/* ── SCROLL POLICY ── */
body.pa-booking-page.is-booking-funnel .pa-booking-v4.is-single-screen .pa-step-scroll {
  overflow: visible !important;
  max-height: none !important;
}

@media (max-width: 767px) {
  body.pa-booking-page.is-booking-funnel .pa-booking-v4.is-single-screen .pa-step-scroll {
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    max-height: calc(100dvh - 12rem) !important;
  }
  .pa-booking-root.pa-booking-v4.is-single-screen #pa-booking-app .pa-schedule-grid-v25 {
    grid-template-columns: 1fr !important;
  }
  .pa-booking-root.pa-booking-v4.is-single-screen #pa-booking-app .pa-glass-section--service,
  .pa-booking-root.pa-booking-v4.is-single-screen #pa-booking-app .pa-glass-section--schedule {
    border-right: none !important;
    border-bottom: 1.5px solid var(--p-line2) !important;
  }
  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-stepper--minimal .pa-stepper-label {
    display: none !important;
  }
  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-stepper--minimal .pa-stepper-item.is-active .pa-stepper-label {
    display: block !important;
  }
  .pa-booking-root.pa-booking-v4.is-single-screen #pa-booking-app .pa-schedule-footer {
    flex-direction: column !important;
    align-items: stretch !important;
  }
}

/* =================================================================== */
/* v3.0 — NATURAL FLOW                                                  */
/* End the "single-screen" viewport trap. The wizard now grows with    */
/* its content and the PAGE scrolls, so the bottom is never clipped    */
/* on any device. This is the standard professional booking pattern.   */
/* =================================================================== */

/* 1. Root card: grow with content; never cap to the viewport */
body.pa-glass-site .pa-booking-root.pa-booking-v4.is-single-screen,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4.is-single-screen,
body.pa-booking-page .pa-booking-root.pa-booking-v4.is-single-screen,
body.is-booking-funnel .pa-booking-root.pa-booking-v4.is-single-screen {
  display: block !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
  max-width: min(1100px, calc(100vw - 2rem)) !important;
  margin: 1.5rem auto 3rem !important;
}

/* 2. App + inner stages: natural block flow, no flex height-fill */
body.pa-glass-site .pa-booking-root.is-single-screen .pa-booking-app,
body.wp-theme-gutenify-photography .pa-booking-root.is-single-screen .pa-booking-app,
.pa-booking-root.pa-booking-v4.is-single-screen #pa-booking-app,
#pa-booking-app.pa-booking-v4.is-single-screen {
  display: block !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
  flex: none !important;
  padding: clamp(1rem, 3vw, 1.85rem) !important;
}

.pa-booking-v4.is-single-screen .pa-step-stage,
.pa-booking-v4.is-single-screen .pa-step,
.pa-booking-v4.is-single-screen .pa-step-schedule,
.pa-booking-v4.is-single-screen .pa-step-details-pay,
.pa-booking-v4.is-single-screen .pa-step:not(.pa-step-schedule) {
  display: block !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
  flex: none !important;
}

/* 3. Inner panel never traps or clips — the page scrolls (all viewports,
      including the mobile rule above that re-capped max-height). */
body.pa-booking-page.is-booking-funnel .pa-booking-v4.is-single-screen .pa-step-scroll,
body.pa-booking-page .pa-booking-v4.is-single-screen .pa-step-scroll,
body.is-booking-funnel .pa-booking-v4.is-single-screen .pa-step-scroll,
.pa-booking-root.pa-booking-v4.is-single-screen .pa-step-scroll {
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  -webkit-overflow-scrolling: auto !important;
}

/* =================================================================== */
/* New 2026 PAMA badge in the header (booking + home funnel surfaces).  */
/* Size by HEIGHT so the badge stays tasteful, with a rounded tile.     */
/* =================================================================== */
body.pa-booking-page header.pa-site-header .wp-block-site-logo img.pa-brand-logo-lockup,
body.pa-booking-page header.pa-site-header img.custom-logo.pa-brand-logo-lockup,
body.pa-booking-page header .wp-block-site-logo img.pa-brand-logo-lockup,
body.pa-booking-page header img.custom-logo.pa-brand-logo-lockup,
body.is-booking-funnel header.pa-site-header .wp-block-site-logo img.pa-brand-logo-lockup,
body.is-booking-funnel header.pa-site-header img.custom-logo.pa-brand-logo-lockup,
body.is-booking-funnel header .wp-block-site-logo img.pa-brand-logo-lockup,
body.is-booking-funnel header img.custom-logo.pa-brand-logo-lockup {
  width: auto !important;
  height: clamp(200px, 28vw, 320px) !important;
  max-width: min(92vw, 680px) !important;
  max-height: 320px !important;
  border-radius: 20px !important;
  object-fit: contain !important;
  filter: none !important;
  box-shadow: 0 8px 26px rgba(17, 17, 17, 0.2) !important;
}

/* =================================================================== */
/* NO PRICES — hide every monetary amount in the booking UI.            */
/* Package prices and deposit figures are removed from display; the     */
/* GoDaddy Pay Link still collects the deposit on its own checkout.     */
/* =================================================================== */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-service-option-price,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-service-selected-price,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-pricing-summary-from,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-pricing-summary-deposit,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-pricing-summary-note,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-recap-bar-deposit,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-deposit-section-amount-row,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-deposit-section-note,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-deposit-inline-copy,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-pay-amount,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-pay-breakdown,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-deposit-strip-amount,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-deposit-bar-amount,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-deposit-preview,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-checkout-total,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-checkout-amount-hero,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-checkout-fine,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-vault-amount-block {
  display: none !important;
}

/* ============================================================
   SINGLE-PANEL WIZARD FIT  (all devices)
   The schedule renders one panel at a time (Service -> Date -> Time).
   Collapse the multi-column schedule grid to a single, centered,
   full-width column so the active step uses the whole booking area
   instead of sitting in the narrow left track beside empty/disabled
   columns. Service options become a responsive grid so every option
   stays visible without scrolling. Gated on :has(.is-flow-current),
   so if the side-by-side overview ever returns it is left untouched.
   ============================================================ */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-schedule-grid-v25:has(.is-flow-current),
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-booking-sheet--wizard:has(.is-flow-current) {
  grid-template-columns: minmax(0, 1fr) !important;
  justify-items: stretch !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-schedule-grid-v25 .pa-glass-section.is-flow-current {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  max-width: 720px !important;
  margin-inline: auto !important;
  align-self: start !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-schedule-grid-v25 > .pa-schedule-footer {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  max-width: 720px !important;
  margin-inline: auto !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-schedule-grid-v25:has(.is-flow-current) .pa-service-list--simple {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)) !important;
  gap: 0.6rem !important;
  align-content: start !important;
  max-height: none !important;
  overflow: visible !important;
}

/* ============================================================
   iOS LIQUID GLASS — booking polish (June 2026)
   Frosted controls, centered wizard copy, generous tap targets.
   ============================================================ */

body.pa-glass-site .pa-booking-root.pa-booking-v4,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 {
  --iv-glass-bg: rgba(255, 255, 255, 0.58);
  --iv-glass-bg-strong: rgba(255, 255, 255, 0.76);
  --iv-glass-border: rgba(255, 255, 255, 0.68);
  --iv-glass-edge: rgba(0, 0, 0, 0.07);
  --iv-glass-blur: blur(22px) saturate(185%);
  --iv-glass-inset: inset 0 1px 0 rgba(255, 255, 255, 0.78);
  --iv-glass-shadow: 0 10px 32px rgba(0, 0, 0, 0.07), var(--iv-glass-inset);
  --iv-glass-cta: rgba(29, 29, 31, 0.88);
  --iv-glass-cta-hover: rgba(0, 0, 0, 0.92);
  --iv-glass-cta-border: rgba(255, 255, 255, 0.16);
  --iv-glass-selected: rgba(29, 29, 31, 0.9);
  --iv-box-pad: clamp(1.45rem, 5.2vw, 2rem);
  --iv-touch: 48px;
}

/* Hero + intro — centered, breathable */
body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-booking-hero,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-booking-hero {
  text-align: center !important;
}

body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-booking-lead,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-booking-lead,
body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-booking-lead--hero,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-booking-lead--hero,
body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-booking-value-prop,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-booking-value-prop {
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
}

body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-booking-credential-strip,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-booking-credential-strip {
  justify-content: center !important;
}

body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-stepper,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-stepper {
  justify-content: center !important;
}

body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-step-intro,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-step-intro {
  text-align: center !important;
  padding-inline: var(--iv-gutter) !important;
}

/* Frosted step cards */
body.pa-glass-site .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-glass-section,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-glass-section {
  background: var(--iv-glass-bg-strong) !important;
  backdrop-filter: var(--iv-glass-blur) !important;
  -webkit-backdrop-filter: var(--iv-glass-blur) !important;
  border: 1px solid var(--iv-glass-border) !important;
  box-shadow: var(--iv-glass-shadow) !important;
  padding: var(--iv-box-pad) !important;
}

body.pa-glass-site .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-glass-section.is-flow-current .pa-section-title,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-glass-section.is-flow-current .pa-section-title {
  text-align: center !important;
  margin-bottom: 0.4rem !important;
}

body.pa-glass-site .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-glass-section.is-flow-current .pa-panel-hint,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-glass-section.is-flow-current .pa-panel-hint,
body.pa-glass-site .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-glass-section.is-flow-current .pa-section-hint,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-glass-section.is-flow-current .pa-section-hint,
body.pa-glass-site .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-glass-section.is-flow-current .pa-package-pricing-note,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-glass-section.is-flow-current .pa-package-pricing-note {
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
  max-width: 36rem !important;
}

body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-schedule-trust,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-schedule-trust {
  text-align: center !important;
  justify-content: center !important;
}

/* Service tiles — frosted glass */
body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-service-option,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-service-option {
  background: var(--iv-glass-bg) !important;
  backdrop-filter: var(--iv-glass-blur) !important;
  -webkit-backdrop-filter: var(--iv-glass-blur) !important;
  border: 1px solid var(--iv-glass-border) !important;
  box-shadow: var(--iv-glass-inset), 0 4px 14px rgba(0, 0, 0, 0.04) !important;
  padding: 1rem 1.1rem !important;
  text-align: left !important;
}

body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-service-option:hover:not(.is-selected),
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-service-option:hover:not(.is-selected) {
  background: var(--iv-glass-bg-strong) !important;
  border-color: rgba(255, 255, 255, 0.85) !important;
  transform: translateY(-1px) !important;
  box-shadow: var(--iv-glass-inset), 0 8px 22px rgba(0, 0, 0, 0.07) !important;
}

body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-service-option.is-selected,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-service-option.is-selected {
  background: var(--iv-glass-selected) !important;
  backdrop-filter: blur(20px) saturate(160%) !important;
  -webkit-backdrop-filter: blur(20px) saturate(160%) !important;
  border-color: var(--iv-glass-cta-border) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.14), 0 12px 28px rgba(0, 0, 0, 0.22) !important;
}

/* Calendar — glass nav + day pills */
body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-cal-pro .pa-cal-nav-btn,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-cal-pro .pa-cal-nav-btn {
  width: var(--iv-touch) !important;
  height: var(--iv-touch) !important;
  background: var(--iv-glass-bg) !important;
  backdrop-filter: var(--iv-glass-blur) !important;
  -webkit-backdrop-filter: var(--iv-glass-blur) !important;
  border: 1px solid var(--iv-glass-border) !important;
  box-shadow: var(--iv-glass-inset), 0 4px 12px rgba(0, 0, 0, 0.05) !important;
}

body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-cal-pro .pa-cal-day.is-available,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-cal-pro .pa-cal-day.is-available {
  background: var(--iv-glass-bg) !important;
  backdrop-filter: var(--iv-glass-blur) !important;
  -webkit-backdrop-filter: var(--iv-glass-blur) !important;
  border: 1px solid transparent !important;
  box-shadow: var(--iv-glass-inset) !important;
}

body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-cal-pro .pa-cal-day.is-selected,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-cal-pro .pa-cal-day.is-selected {
  background: var(--iv-glass-selected) !important;
  backdrop-filter: blur(18px) saturate(160%) !important;
  -webkit-backdrop-filter: blur(18px) saturate(160%) !important;
  border-color: var(--iv-glass-cta-border) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.14), 0 8px 20px rgba(0, 0, 0, 0.18) !important;
}

body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-cal-today-btn,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-cal-today-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 36px !important;
  padding: 0.45rem 0.95rem !important;
  border-radius: var(--iv-r-pill) !important;
  background: var(--iv-glass-bg) !important;
  backdrop-filter: var(--iv-glass-blur) !important;
  -webkit-backdrop-filter: var(--iv-glass-blur) !important;
  border: 1px solid var(--iv-glass-border) !important;
  box-shadow: var(--iv-glass-inset), 0 4px 12px rgba(0, 0, 0, 0.05) !important;
  color: var(--iv-accent) !important;
  text-decoration: none !important;
}

body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-cal-timezone,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-cal-timezone,
body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-cal-meta-note,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-cal-meta-note {
  text-align: center !important;
}

/* Time windows — glass cards */
body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-time-card,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-time-card {
  background: var(--iv-glass-bg) !important;
  backdrop-filter: var(--iv-glass-blur) !important;
  -webkit-backdrop-filter: var(--iv-glass-blur) !important;
  border: 1px solid var(--iv-glass-border) !important;
  box-shadow: var(--iv-glass-inset), 0 4px 14px rgba(0, 0, 0, 0.04) !important;
  padding: 0.95rem 1rem !important;
  text-align: center !important;
}

body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-time-card.is-selected,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-time-card.is-selected {
  background: var(--iv-glass-selected) !important;
  backdrop-filter: blur(20px) saturate(160%) !important;
  -webkit-backdrop-filter: blur(20px) saturate(160%) !important;
  border-color: var(--iv-glass-cta-border) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.14), 0 12px 28px rgba(0, 0, 0, 0.22) !important;
}

/* Primary CTAs — dark liquid glass */
body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-submit,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-submit,
body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-btn,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-btn,
body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-checkout-btn,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-checkout-btn,
body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-schedule-continue.is-ready,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-schedule-continue.is-ready {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: var(--iv-touch) !important;
  width: 100% !important;
  max-width: 420px !important;
  margin-inline: auto !important;
  padding: 0.95rem 1.5rem !important;
  border-radius: var(--iv-r-pill) !important;
  background: var(--iv-glass-cta) !important;
  backdrop-filter: blur(24px) saturate(165%) !important;
  -webkit-backdrop-filter: blur(24px) saturate(165%) !important;
  border: 1px solid var(--iv-glass-cta-border) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18), 0 12px 32px rgba(0, 0, 0, 0.22) !important;
  color: #fff !important;
  font-size: 1.02rem !important;
  font-weight: 600 !important;
  letter-spacing: -0.015em !important;
  text-decoration: none !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}

body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-submit:hover:not(:disabled),
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-submit:hover:not(:disabled),
body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-btn:hover:not(:disabled),
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-btn:hover:not(:disabled),
body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-checkout-btn:hover:not(:disabled),
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-checkout-btn:hover:not(:disabled),
body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-schedule-continue.is-ready:hover,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-schedule-continue.is-ready:hover {
  background: var(--iv-glass-cta-hover) !important;
  transform: translateY(-1px) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.22), 0 16px 36px rgba(0, 0, 0, 0.26) !important;
}

body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-submit:active:not(:disabled),
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-submit:active:not(:disabled),
body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-btn:active:not(:disabled),
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-btn:active:not(:disabled),
body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-schedule-continue.is-ready:active,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-schedule-continue.is-ready:active {
  transform: scale(0.985) !important;
}

body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-schedule-continue.is-disabled,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-schedule-continue.is-disabled,
body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-submit:disabled,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-submit:disabled,
body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-btn:disabled,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-btn:disabled {
  background: var(--iv-glass-bg) !important;
  backdrop-filter: var(--iv-glass-blur) !important;
  -webkit-backdrop-filter: var(--iv-glass-blur) !important;
  border: 1px solid var(--iv-glass-border) !important;
  color: var(--iv-tertiary) !important;
  box-shadow: var(--iv-glass-inset) !important;
  opacity: 1 !important;
  transform: none !important;
}

/* Secondary / edit — light glass pills */
body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-back,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-back,
body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-text-btn,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-text-btn,
body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-recap-bar-edit,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-recap-bar-edit,
body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-recap-line-edit,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-recap-line-edit {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 36px !important;
  padding: 0.45rem 0.95rem !important;
  border-radius: var(--iv-r-pill) !important;
  background: var(--iv-glass-bg) !important;
  backdrop-filter: var(--iv-glass-blur) !important;
  -webkit-backdrop-filter: var(--iv-glass-blur) !important;
  border: 1px solid var(--iv-glass-border) !important;
  box-shadow: var(--iv-glass-inset), 0 4px 12px rgba(0, 0, 0, 0.04) !important;
  color: var(--iv-accent) !important;
  font-weight: 600 !important;
  text-decoration: none !important;
}

body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-back:hover,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-back:hover,
body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-text-btn:hover,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-text-btn:hover,
body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-recap-bar-edit:hover,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-recap-bar-edit:hover {
  background: var(--iv-glass-bg-strong) !important;
  color: var(--iv-accent-hover) !important;
  text-decoration: none !important;
}

/* Action rows + sticky footer — centered, app-like */
body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-booking-actions,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-booking-actions,
body.pa-glass-site .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-schedule-footer-cta,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-schedule-footer-cta {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.75rem !important;
  text-align: center !important;
  padding: 0.25rem 0 !important;
}

body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-continue-footnote,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-continue-footnote {
  width: 100% !important;
  max-width: 420px !important;
  margin: 0 auto !important;
  text-align: center !important;
  line-height: 1.45 !important;
}

body.pa-glass-site .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-schedule-footer,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-schedule-footer {
  background: var(--iv-glass-bg-strong) !important;
  backdrop-filter: var(--iv-glass-blur) !important;
  -webkit-backdrop-filter: var(--iv-glass-blur) !important;
  border-top: 1px solid var(--iv-glass-border) !important;
  box-shadow: 0 -8px 28px rgba(0, 0, 0, 0.06), var(--iv-glass-inset) !important;
  padding: clamp(1rem, 3.5vw, 1.35rem) var(--iv-gutter) !important;
}

@media (prefers-reduced-motion: reduce) {
  body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-service-option,
  body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-service-option,
  body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-time-card,
  body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-time-card,
  body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-submit,
  body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-submit,
  body.pa-glass-site .pa-booking-root.pa-booking-v4 .pa-cal-pro .pa-cal-day,
  body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 .pa-cal-pro .pa-cal-day {
    transition: none !important;
    transform: none !important;
  }
}

/* ============================================================
   MOBILE BOOKING — scrollable app shell (fixes clipped /book/)
   The viewport cage (overflow:hidden + 100dvh + huge header logo)
   prevented scrolling on phones — form content was unreachable.
   ============================================================ */

html.is-booking-funnel,
body.pa-booking-page.is-booking-funnel {
  overflow-x: hidden !important;
  overflow-y: auto !important;
  height: auto !important;
  min-height: 100dvh !important;
  -webkit-overflow-scrolling: touch !important;
}

body.pa-booking-page.is-booking-funnel {
  padding-bottom: max(0.5rem, env(safe-area-inset-bottom, 0px)) !important;
}

body.pa-booking-page.is-booking-funnel .site-content,
body.pa-booking-page.is-booking-funnel main,
body.pa-booking-page.is-booking-funnel main.wp-block-group,
body.pa-booking-page.is-booking-funnel .entry-content {
  display: block !important;
  flex: none !important;
  justify-content: flex-start !important;
  align-items: stretch !important;
  min-height: 0 !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
}

body.pa-booking-page .pa-booking-sticky {
  display: none !important;
}

/* Booking /book/ header — compact badge (not the 200–320px homepage hero logo) */
body.pa-booking-page header.pa-site-header .wp-block-site-logo img.pa-brand-logo-lockup,
body.pa-booking-page header.pa-site-header img.custom-logo.pa-brand-logo-lockup,
body.pa-booking-page header .wp-block-site-logo img.pa-brand-logo-lockup,
body.pa-booking-page header img.custom-logo.pa-brand-logo-lockup,
body.is-booking-funnel header.pa-site-header .wp-block-site-logo img.pa-brand-logo-lockup,
body.is-booking-funnel header.pa-site-header img.custom-logo.pa-brand-logo-lockup,
body.is-booking-funnel header .wp-block-site-logo img.pa-brand-logo-lockup,
body.is-booking-funnel header img.custom-logo.pa-brand-logo-lockup {
  width: auto !important;
  height: clamp(56px, 9vw, 88px) !important;
  max-height: 88px !important;
  max-width: min(42vw, 280px) !important;
  border-radius: 14px !important;
  box-shadow: 0 4px 14px rgba(17, 17, 17, 0.12) !important;
}

/* Booking card grows with content — never clip to one screen */
body.pa-booking-page .pa-booking-root.pa-booking-v4,
body.pa-booking-page.is-booking-funnel .pa-booking-root.pa-booking-v4.is-single-screen {
  display: block !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
  margin: 0.5rem auto 2rem !important;
  max-width: min(1100px, calc(100vw - 1rem)) !important;
  border-radius: clamp(16px, 4vw, 22px) !important;
}

body.pa-booking-page .pa-booking-root.pa-booking-v4 .pa-booking-app,
body.pa-booking-page #pa-booking-app.pa-booking-v4.is-single-screen {
  display: block !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
  padding: clamp(0.85rem, 3vw, 1.35rem) clamp(0.85rem, 3.5vw, 1.25rem) clamp(1.25rem, 4vw, 1.75rem) !important;
}

body.pa-booking-page .pa-booking-v4.is-single-screen .pa-step-stage,
body.pa-booking-page .pa-booking-v4.is-single-screen .pa-step,
body.pa-booking-page .pa-booking-v4.is-single-screen .pa-step-schedule,
body.pa-booking-page .pa-booking-v4.is-single-screen .pa-step-scroll,
body.pa-booking-page .pa-booking-v4.is-single-screen .pa-booking-section-inner,
body.pa-booking-page .pa-booking-v4.is-single-screen .pa-step-details,
body.pa-booking-page .pa-booking-v4.is-single-screen .pa-cal {
  display: block !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
  flex: none !important;
}

body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-schedule-grid-v25,
body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-booking-sheet--wizard {
  display: block !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
}

body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-glass-section.is-flow-current {
  max-width: none !important;
  width: 100% !important;
  padding: clamp(1rem, 3.5vw, 1.25rem) !important;
}

body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-schedule-footer {
  position: static !important;
  margin-top: 1rem !important;
  padding: 1rem clamp(0.85rem, 3vw, 1rem) max(1rem, env(safe-area-inset-bottom, 0px)) !important;
  border-top: 1px solid var(--iv-hairline-soft, rgba(0, 0, 0, 0.08)) !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-schedule-footer-cta .pa-submit,
body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-schedule-footer-cta .pa-schedule-continue {
  position: static !important;
  width: 100% !important;
  max-width: none !important;
}

@media (max-width: 767px) {
  /* Compact header — logo was 200–320px tall and ate the whole screen */
  body.pa-booking-page.is-booking-funnel header.pa-site-header,
  body.pa-booking-page header.pa-site-header {
    padding: 0.4rem 0.65rem 0.35rem !important;
  }

  body.pa-booking-page header.pa-site-header .wp-block-site-logo img.pa-brand-logo-lockup,
  body.pa-booking-page header.pa-site-header img.custom-logo.pa-brand-logo-lockup,
  body.pa-booking-page header .wp-block-site-logo img.pa-brand-logo-lockup,
  body.pa-booking-page header img.custom-logo.pa-brand-logo-lockup,
  body.is-booking-funnel header.pa-site-header .wp-block-site-logo img.pa-brand-logo-lockup,
  body.is-booking-funnel header.pa-site-header img.custom-logo.pa-brand-logo-lockup,
  body.is-booking-funnel header .wp-block-site-logo img.pa-brand-logo-lockup,
  body.is-booking-funnel header img.custom-logo.pa-brand-logo-lockup {
    width: auto !important;
    height: clamp(48px, 13vw, 68px) !important;
    max-height: 68px !important;
    max-width: min(58vw, 200px) !important;
    border-radius: 12px !important;
    box-shadow: 0 2px 10px rgba(17, 17, 17, 0.1) !important;
  }

  body.pa-booking-page header.pa-site-header .pa-site-nav-pill-row {
    gap: 0.35rem !important;
    margin-top: 0.35rem !important;
  }

  body.pa-booking-page header.pa-site-header .pa-site-nav-pill {
    min-height: 36px !important;
    padding: 0.35rem 0.7rem !important;
    font-size: 0.68rem !important;
    letter-spacing: 0.06em !important;
  }

  body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-schedule-grid-v25:has(.is-flow-current) .pa-service-list--simple {
    grid-template-columns: 1fr !important;
  }

  body.pa-booking-page .pa-booking-root.pa-booking-v4 .pa-service-option,
  body.pa-booking-page .pa-booking-root.pa-booking-v4 .pa-service-package--simple {
    min-height: 3.25rem !important;
    padding: 0.85rem 1rem !important;
  }

  body.pa-booking-page .pa-booking-v4 .pa-flow-progress {
    margin-bottom: 0.65rem !important;
    padding: 0.5rem 0.55rem !important;
    border-radius: 12px !important;
    background: var(--iv-surface-2, #f5f5f7) !important;
  }

  body.pa-booking-page .pa-booking-v4 .pa-stepper--minimal {
    margin-bottom: 0.5rem !important;
  }

  body.pa-booking-page footer.wp-block-template-part {
    margin-top: 0.5rem !important;
  }
}

/* ===================================================================
   PA Media Booking v2.5 — Wizard UX Refinement (Option A)
   Single-panel Step 1 · premium surfaces · viewport-fit desktop
   =================================================================== */

/* ── Stepper: active step obvious ─────────────────────────────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-stepper--minimal .pa-stepper-item.is-active .pa-stepper-label {
  font-weight: 650 !important;
  letter-spacing: -0.015em !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-stepper--minimal .pa-stepper-item.is-active::after {
  height: 2.5px !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-stepper--minimal .pa-stepper-item.is-clickable:focus-visible {
  outline: 2px solid var(--iv-accent, #0071e3) !important;
  outline-offset: 3px !important;
  border-radius: 4px !important;
}

/* ── Step context: tighter chrome ─────────────────────────────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-wizard-context {
  margin-bottom: clamp(0.65rem, 2vw, 1rem) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-wizard-context-hint {
  font-size: 0.9rem !important;
}

/* ── Step 1: service cards ────────────────────────────────────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-service-option,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-service-package--simple {
  position: relative !important;
  min-height: 5.25rem !important;
  padding: 1.1rem 1.15rem !important;
  text-align: left !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-schedule-grid-v25:has(.is-flow-current) .pa-service-list--simple {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important;
  gap: 0.75rem !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-service-option-name {
  font-size: 1.0625rem !important;
  font-weight: 650 !important;
  line-height: 1.2 !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-service-option-detail {
  font-size: 0.875rem !important;
  line-height: 1.4 !important;
  margin-top: 0.3rem !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-service-option-price {
  font-size: 0.875rem !important;
  font-weight: 650 !important;
  margin-top: 0.45rem !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-service-option-check {
  position: absolute !important;
  top: 0.75rem !important;
  right: 0.75rem !important;
  width: 1.35rem !important;
  height: 1.35rem !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 50% !important;
  background: rgba(255, 255, 255, 0.22) !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  line-height: 1 !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-service-option.is-selected {
  box-shadow: var(--pol-shadow-md, 0 4px 12px rgba(0, 0, 0, 0.08)) !important;
}

/* ── Step 1: calendar readability ─────────────────────────────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-cal-title {
  font-size: 1.0625rem !important;
  font-weight: 650 !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-cal-day {
  min-height: 2.5rem !important;
  font-size: 0.875rem !important;
  font-weight: 500 !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-cal-day.is-selected {
  font-weight: 700 !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-cal-legend {
  font-size: 0.75rem !important;
  gap: 0.65rem 1rem !important;
}

/* ── Step 1: inline sub-progress (hide on desktop — footer carries state) */
@media (min-width: 768px) {
  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-flow-progress--sub {
    display: none !important;
  }
}

@media (max-width: 767px) {
  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-flow-progress--sub {
    margin-bottom: 0.75rem !important;
  }
}

/* ── Step 1: footer — pricing always visible + Continue ───────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-schedule-footer {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 0.85rem 1.25rem !important;
  padding: 0.95rem 1.1rem !important;
  border-top: 1px solid var(--iv-hairline-soft, rgba(0, 0, 0, 0.08)) !important;
  background: var(--iv-surface-2, #f5f5f7) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-pricing-summary--sticky {
  flex: 1 1 12rem !important;
  min-width: 0 !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-pricing-summary-label {
  font-size: 0.9375rem !important;
  font-weight: 650 !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-pricing-summary-note--placeholder {
  margin: 0.15rem 0 0 !important;
  font-size: 0.8125rem !important;
  color: var(--iv-secondary, #6e6e73) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-pricing-summary-deposit-amount {
  font-size: 1.125rem !important;
  font-weight: 700 !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-schedule-footer-cta {
  flex: 0 1 auto !important;
  min-width: min(100%, 15rem) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-schedule-footer-cta .pa-submit {
  min-height: var(--pa-wizard-touch, 48px) !important;
  min-width: 11rem !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  padding: 0.75rem 1.5rem !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-schedule-footer-cta .pa-continue-footnote {
  font-size: 0.8125rem !important;
  color: var(--iv-secondary, #6e6e73) !important;
  text-align: right !important;
}

/* ── Step 2: two-column guided form (desktop) ───────────────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-wizard-columns {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

@media (min-width: 900px) {
  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-wizard-columns {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.35rem 1.5rem;
    align-items: start;
  }
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-wizard-col {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  min-width: 0;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-group--wizard {
  padding: 1rem 1.1rem !important;
  border: 1px solid var(--iv-hairline-soft, rgba(0, 0, 0, 0.08)) !important;
  border-radius: var(--pa-wizard-radius, 18px) !important;
  background: var(--iv-surface, #fff) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-group--wizard .pa-form-group-title {
  font-size: 1rem !important;
  font-weight: 650 !important;
  padding-bottom: 0.65rem !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-group--wizard .pa-field-label {
  font-size: 0.9375rem !important;
  font-weight: 600 !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-group--wizard .pa-text-input,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-group--wizard textarea.pa-input {
  min-height: var(--pa-wizard-touch, 48px) !important;
  font-size: 1rem !important;
  padding: 0.85rem 1rem !important;
  background: #f2f2f7 !important;
  border: 1px solid rgba(60, 60, 67, 0.22) !important;
  border-radius: 12px !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.65) !important;
  color: var(--iv-ink, #1d1d1f) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-group--wizard .pa-text-input::placeholder,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-group--wizard textarea.pa-input::placeholder {
  color: rgba(60, 60, 67, 0.48) !important;
  -webkit-text-fill-color: rgba(60, 60, 67, 0.48) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-group--wizard .pa-text-input:hover,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-group--wizard textarea.pa-input:hover {
  border-color: rgba(60, 60, 67, 0.34) !important;
  background: #ebebf0 !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-group--wizard .pa-text-input:focus,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-group--wizard textarea.pa-input:focus {
  background: #ffffff !important;
  border-color: var(--iv-accent, #0071e3) !important;
  box-shadow: 0 0 0 4px rgba(0, 113, 227, 0.16) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-group--wizard .pa-field {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  margin: 0 0 0.85rem !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-group--wizard .pa-field:last-child {
  margin-bottom: 0 !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-group--wizard .pa-form-group-body {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-group--wizard .pa-event-wrap {
  margin: 0 0 0.85rem !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-group--wizard .pa-event-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-group--wizard .pa-event-pill {
  min-height: 40px !important;
  padding: 0.45rem 0.9rem !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details > .pa-booking-actions--primary .pa-submit {
  min-height: 3.15rem !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
}

/* ── Step 3: review + deposit ─────────────────────────────────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-review-card-v25 {
  padding: 1.15rem 1.25rem !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-review-card-title {
  font-size: 1.0625rem !important;
  font-weight: 650 !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-review-card-label {
  font-size: 0.8125rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-review-card-value {
  font-size: 0.9375rem !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-deposit-section {
  padding: 1.2rem 1.25rem !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-deposit-section-amount {
  font-size: 1.5rem !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-deposit-trust-item {
  font-size: 0.875rem !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-review-cta-hint {
  margin: 0 !important;
  font-size: 0.8125rem !important;
  line-height: 1.4 !important;
  color: var(--iv-secondary, #6e6e73) !important;
  text-align: center !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-review-v25 > .pa-booking-actions--primary .pa-submit,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-review-v25 > .pa-booking-actions--primary .pa-checkout-btn {
  min-height: 3.25rem !important;
  font-size: 1.0625rem !important;
  font-weight: 600 !important;
}

/* ── Viewport fit: desktop/tablet no internal scroll ──────────────── */
@media (min-width: 768px) {
  body.pa-booking-page.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-scroll {
    overflow: visible !important;
    max-height: none !important;
  }

  body.pa-booking-page.is-booking-funnel .pa-booking-root.pa-booking-v4 {
    max-height: calc(100dvh - 2rem) !important;
  }
}

@media (max-width: 767px) {
  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-schedule-footer {
    flex-direction: column !important;
    align-items: stretch !important;
  }

  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-schedule-footer-cta .pa-submit {
    width: 100% !important;
    min-width: 0 !important;
  }

  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-schedule-footer-cta .pa-continue-footnote {
    text-align: left !important;
  }
}

/* ── Focus + reduced motion ───────────────────────────────────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-service-option:focus-visible,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-cal-day:focus-visible,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-time-card:focus-visible,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-submit:focus-visible {
  outline: 2px solid var(--iv-accent, #0071e3) !important;
  outline-offset: 2px !important;
}

@media (prefers-reduced-motion: reduce) {
  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-service-option,
  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-cal-day,
  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-submit {
    transition: none !important;
  }
}

/* ===================================================================
   PA Media Booking 4.0 — Phase 1 Design System + UX
   =================================================================== */

.pa-booking-root.pa-booking-v4 {
  --bk4-space-1: 8px;
  --bk4-space-2: 16px;
  --bk4-space-3: 24px;
  --bk4-space-4: 32px;
  --bk4-space-5: 48px;
  --bk4-ink: #1d1d1f;
  --bk4-muted: #6e6e73;
  --bk4-hairline: rgba(0, 0, 0, 0.08);
  --bk4-surface: #ffffff;
  --bk4-surface-2: #f5f5f7;
  --bk4-accent: #0071e3;
  --bk4-radius-shell: 28px;
  --bk4-radius-card: 16px;
  --bk4-radius-control: 12px;
  --bk4-duration: 180ms;
  --bk4-ease: cubic-bezier(0.28, 0.11, 0.32, 1);
}

/* ── Welcome ──────────────────────────────────────────────────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app.is-welcome {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 20rem;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-welcome {
  padding: var(--bk4-space-4) 0;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-welcome-inner {
  max-width: 28rem;
  margin: 0 auto;
  text-align: center;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-welcome-title {
  margin: 0 0 var(--bk4-space-2);
  font-size: clamp(1.75rem, 4vw, 2.25rem);
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.1;
  color: var(--bk4-ink);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-welcome-lead {
  margin: 0 0 var(--bk4-space-3);
  font-size: 1rem;
  line-height: 1.5;
  color: var(--bk4-muted);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-welcome-start {
  width: 100%;
  max-width: 16rem;
  margin: 0 auto var(--bk4-space-3);
  min-height: var(--bk4-space-5);
}

/* ── Confidence panel (compact) ───────────────────────────────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-confidence-panel {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--bk4-space-1) var(--bk4-space-2);
  margin-top: var(--bk4-space-2);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-confidence-item {
  font-size: 0.8125rem;
  color: var(--bk4-muted);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-confidence-item::before {
  content: "\2713 ";
  font-weight: 700;
  color: var(--bk4-ink);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-confidence-timing {
  flex: 0 0 100%;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--bk4-ink);
  margin-top: 0.15rem;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-booking-chrome .pa-confidence-panel {
  justify-content: flex-start;
  margin-top: var(--bk4-space-1);
}

/* ── Wizard layout + sticky summary (desktop) ─────────────────────── */
@media (min-width: 900px) {
  body.pa-booking-page .pa-booking-root.pa-booking-v4 {
    max-width: min(1040px, calc(100vw - 2rem)) !important;
  }

  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-wizard-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 220px;
    gap: var(--bk4-space-3);
    align-items: start;
  }

  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-sticky-summary {
    position: sticky;
    top: var(--bk4-space-2);
    padding: var(--bk4-space-2);
    border-radius: var(--bk4-radius-card);
    background: var(--bk4-surface);
    border: 1px solid var(--bk4-hairline);
  }
}

@media (max-width: 899px) {
  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-sticky-summary {
    display: none !important;
  }
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-sticky-summary-title {
  margin: 0 0 var(--bk4-space-2);
  font-size: 0.8125rem;
  font-weight: 650;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--bk4-muted);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-sticky-summary-list {
  margin: 0;
  display: grid;
  gap: var(--bk4-space-1);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-sticky-summary-list dt {
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--bk4-muted);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-sticky-summary-list dd {
  margin: 0 0 var(--bk4-space-1);
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--bk4-ink);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-sticky-summary-empty {
  margin: 0;
  font-size: 0.875rem;
  color: var(--bk4-muted);
}

/* ── Stepper: Service · Event · Review ────────────────────────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-stepper--minimal {
  margin-bottom: var(--bk4-space-2);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-wizard-context-title {
  font-size: clamp(1.35rem, 2.5vw, 1.65rem);
  margin-bottom: 0;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-wizard-context-hint {
  margin-top: var(--bk4-space-1);
}

/* ── Empty states ─────────────────────────────────────────────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-empty-state {
  margin: var(--bk4-space-2) 0 0;
  font-size: 0.9375rem;
  color: var(--bk4-muted);
  text-align: center;
}

/* ── Flat form (Step 1 — less clutter) ────────────────────────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-sheet--flat .pa-form-group--wizard {
  padding: 1.05rem 1.15rem !important;
  border: 1px solid rgba(60, 60, 67, 0.12) !important;
  background: rgba(255, 255, 255, 0.92) !important;
  margin: 0 !important;
  border-radius: 16px !important;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-sheet--flat .pa-form-wizard-columns {
  gap: var(--bk4-space-3);
}

@media (min-width: 900px) {
  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-sheet--flat .pa-form-wizard-columns {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--bk4-space-3) var(--bk4-space-4);
  }
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-sheet--flat .pa-form-group-title {
  font-size: 1rem;
  font-weight: 650;
  padding-bottom: var(--bk4-space-1);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-sheet--flat .pa-text-input,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-sheet--flat textarea.pa-input {
  min-height: var(--bk4-space-5);
  border-radius: var(--bk4-radius-control);
}

/* ── Service cards v4 ─────────────────────────────────────────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-schedule-grid-v25:has(.is-flow-current) .pa-service-list--simple {
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)) !important;
  gap: var(--bk4-space-2) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-service-option,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-service-package--simple {
  min-height: 5.5rem !important;
  padding: var(--bk4-space-2) !important;
  border-radius: var(--bk4-radius-control) !important;
  border: 1px solid var(--bk4-hairline) !important;
  box-shadow: none !important;
  transition: border-color var(--bk4-duration) var(--bk4-ease),
    background var(--bk4-duration) var(--bk4-ease) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-service-option.is-selected {
  background: var(--bk4-ink) !important;
  border-color: var(--bk4-ink) !important;
}

/* ── Calendar hero ────────────────────────────────────────────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-cal-day {
  min-height: 2.65rem !important;
  font-size: 0.875rem !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-cal-title {
  font-size: 1.0625rem !important;
  font-weight: 650 !important;
}

/* ── Motion 180ms ─────────────────────────────────────────────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-stage--fwd,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-stage--back,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-stage--static {
  animation-duration: var(--bk4-duration) !important;
}

@media (prefers-reduced-motion: reduce) {
  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-stage--fwd,
  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-stage--back,
  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-stage--static {
    animation: none !important;
  }
}

/* ===================================================================
   PA Media Booking 4.0 — Phase 1 Refinement (presentation only)
   =================================================================== */

.pa-booking-root.pa-booking-v4 {
  --bk4-space-6: 56px;
  --bk4-btn-height: 52px;
  --bk4-btn-pad-x: 1.75rem;
}

/* ── Whitespace + vertical rhythm ─────────────────────────────────── */
body.pa-glass-site .pa-booking-v4 .pa-booking-app,
body.wp-theme-gutenify-photography .pa-booking-v4 .pa-booking-app {
  padding-top: clamp(1.75rem, 4vw, 2.5rem) !important;
  padding-bottom: clamp(2rem, 5vw, 3.5rem) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-booking-chrome {
  margin-bottom: var(--bk4-space-3) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-wizard-context {
  margin-bottom: var(--bk4-space-3) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-wizard-context-title {
  margin-bottom: var(--bk4-space-1) !important;
  letter-spacing: -0.025em;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-scroll {
  gap: var(--bk4-space-3);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-sheet--flat .pa-form-wizard-columns {
  gap: var(--bk4-space-4) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-sheet--flat .pa-form-wizard-col {
  gap: var(--bk4-space-4) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-schedule-grid-v25 .pa-schedule-col,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-schedule-grid-v25 .pa-glass-section {
  padding: var(--bk4-space-3) var(--bk4-space-3) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-schedule-footer {
  padding: var(--bk4-space-3) !important;
  margin-top: var(--bk4-space-1);
}

/* ── Primary buttons (consistent every step) ──────────────────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-submit.pa-btn,
.pa-booking-root.pa-booking-v4 #pa-booking-app button.pa-submit,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-checkout-btn {
  min-height: var(--bk4-btn-height) !important;
  padding: 0 var(--bk4-btn-pad-x) !important;
  font-size: 1.0625rem !important;
  font-weight: 600 !important;
  letter-spacing: -0.01em !important;
  border-radius: var(--bk4-radius-control) !important;
  transition: background var(--bk4-duration) var(--bk4-ease),
    transform var(--bk4-duration) var(--bk4-ease),
    box-shadow var(--bk4-duration) var(--bk4-ease) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-submit.pa-btn.is-ready:not(:disabled):hover,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-checkout-btn.is-ready:not(:disabled):hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-submit.pa-btn.is-ready:not(:disabled):active,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-checkout-btn.is-ready:not(:disabled):active {
  transform: translateY(0);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-booking-actions--primary {
  margin-top: var(--bk4-space-3);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-welcome-start {
  min-height: var(--bk4-btn-height) !important;
  max-width: 18rem;
}

/* ── Calendar (presentation only) ─────────────────────────────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-cal-shell {
  padding: var(--bk4-space-1) 0 !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-cal-grid-wrap {
  padding: var(--bk4-space-2) 0 !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-cal-dow {
  gap: var(--bk4-space-1) !important;
  margin-bottom: var(--bk4-space-1) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-cal-dow-cell {
  font-size: 0.6875rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.04em !important;
  color: var(--bk4-muted) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-cal-grid {
  gap: var(--bk4-space-1) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-cal-day {
  min-height: 3rem !important;
  font-size: 0.9375rem !important;
  font-weight: 500 !important;
  border-radius: var(--bk4-radius-control) !important;
  transition: background var(--bk4-duration) var(--bk4-ease),
    color var(--bk4-duration) var(--bk4-ease) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-cal-day.is-unavailable,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-cal-day.is-booked,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-cal-day.is-past,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-cal-day.is-lead {
  color: var(--bk4-muted) !important;
  opacity: 0.55 !important;
  font-weight: 400 !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-cal-day.is-selected {
  background: var(--bk4-ink) !important;
  color: #fff !important;
  font-weight: 700 !important;
  opacity: 1 !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-cal-day:not(.is-unavailable):not(.is-selected):not(.is-past):not(.is-booked):hover {
  background: var(--bk4-surface-2) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-cal-title {
  font-size: 1.125rem !important;
  margin-bottom: 0.15rem !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-cal-subtitle {
  font-size: 0.8125rem !important;
  color: var(--bk4-muted) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-cal-legend {
  margin-top: var(--bk4-space-2) !important;
  padding-top: var(--bk4-space-2) !important;
  border-top: 1px solid var(--bk4-hairline);
  gap: var(--bk4-space-2) !important;
}

/* ── Review summary ───────────────────────────────────────────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-review-summary {
  padding: var(--bk4-space-4);
  border-radius: var(--bk4-radius-card);
  background: var(--bk4-surface);
  border: 1px solid var(--bk4-hairline);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-review-summary-title {
  margin: 0 0 var(--bk4-space-3);
  font-size: 0.8125rem;
  font-weight: 650;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--bk4-muted);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-review-summary-list {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-review-summary-row {
  display: grid;
  grid-template-columns: 7.5rem 1fr auto;
  gap: var(--bk4-space-2);
  align-items: baseline;
  padding: var(--bk4-space-2) 0;
  border-bottom: 1px solid var(--bk4-hairline);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-review-summary-row:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-review-summary-row:first-child {
  padding-top: 0;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-review-summary-label {
  margin: 0;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--bk4-muted);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-review-summary-value {
  margin: 0;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.4;
  color: var(--bk4-ink);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-review-summary-edit {
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--bk4-muted);
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-review-summary-row--deposit {
  margin-top: var(--bk4-space-1);
  padding-top: var(--bk4-space-3);
  border-top: 2px solid var(--bk4-ink);
  border-bottom: none;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-review-summary-deposit {
  font-size: 1.375rem !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-review-final .pa-step-scroll--review {
  display: flex !important;
  flex-direction: column !important;
  gap: var(--bk4-space-3) !important;
}

/* ── Deposit block (single message) ───────────────────────────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-deposit-section--compact {
  padding: var(--bk4-space-3) var(--bk4-space-4);
  border-radius: var(--bk4-radius-card);
  background: var(--bk4-surface-2);
  border: none;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-deposit-section-lead {
  margin: 0 0 var(--bk4-space-2);
  font-size: 0.9375rem;
  line-height: 1.5;
  color: var(--bk4-muted);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-deposit-section-amount-row {
  margin: 0;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-deposit-section-amount-label {
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--bk4-ink);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-deposit-section-amount {
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: -0.02em;
}

/* ── Confidence panel (welcome only, subdued) ─────────────────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-confidence-panel {
  gap: var(--bk4-space-1) var(--bk4-space-3);
  margin-top: var(--bk4-space-4);
  max-width: 22rem;
  margin-left: auto;
  margin-right: auto;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-confidence-item {
  font-size: 0.75rem;
  color: var(--bk4-muted);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-confidence-timing {
  display: none;
}

/* ── Mobile polish ────────────────────────────────────────────────── */
@media (max-width: 767px) {
  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-cal-day {
    min-height: 2.75rem !important;
    font-size: 0.875rem !important;
  }

  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-review-summary {
    padding: var(--bk4-space-3);
  }

  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-review-summary-row {
    grid-template-columns: 5.5rem 1fr auto;
    gap: var(--bk4-space-1) var(--bk4-space-2);
  }

  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-submit.pa-btn,
  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-checkout-btn {
    width: 100% !important;
  }

  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-sheet--flat .pa-text-input,
  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-sheet--flat textarea.pa-input {
    min-height: var(--bk4-btn-height) !important;
    font-size: 1rem !important;
  }

  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-wizard-layout {
    gap: var(--bk4-space-2);
  }
}

@media (prefers-reduced-motion: reduce) {
  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-submit.pa-btn.is-ready:not(:disabled):hover,
  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-checkout-btn.is-ready:not(:disabled):hover {
    transform: none !important;
  }
}

/* ===================================================================
   PA Media Booking 4.0 — Phase 2 (presentation only)
   Calendar · time · motion · glass cleanup · service-aware form
   =================================================================== */

/* ── Wizard: solid surfaces (override liquid glass in funnel) ─────── */
body.pa-glass-site .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-glass-section,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-glass-section,
body.pa-glass-site .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-service-option,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-service-option,
body.pa-glass-site .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-time-card,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-time-card,
body.pa-glass-site .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-event-pill,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-event-pill,
body.pa-glass-site .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-cal-nav-btn,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-cal-nav-btn {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-shadow: none !important;
}

body.pa-glass-site .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-glass-section,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-glass-section {
  background: var(--bk4-surface) !important;
  border: none !important;
}

body.pa-glass-site .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-schedule-grid-v25,
body.wp-theme-gutenify-photography .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-schedule-grid-v25 {
  background: var(--bk4-surface) !important;
  border: 1px solid var(--bk4-hairline) !important;
  box-shadow: none !important;
}

/* ── Step motion (180ms fade + 8px) ───────────────────────────────── */
@keyframes pa-bk4-step-in {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes pa-bk4-step-fwd {
  from {
    opacity: 0;
    transform: translateX(8px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes pa-bk4-step-back {
  from {
    opacity: 0;
    transform: translateX(-8px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-stage--init,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-stage--static {
  animation: pa-bk4-step-in var(--bk4-duration) var(--bk4-ease) both;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-stage--fwd {
  animation: pa-bk4-step-fwd var(--bk4-duration) var(--bk4-ease) both;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-stage--back {
  animation: pa-bk4-step-back var(--bk4-duration) var(--bk4-ease) both;
}

@media (prefers-reduced-motion: reduce) {
  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-stage--init,
  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-stage--static,
  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-stage--fwd,
  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-stage--back {
    animation: none !important;
  }
}

/* ── Calendar v40 ─────────────────────────────────────────────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-cal-v40 .pa-cal-header {
  margin-bottom: var(--bk4-space-2);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-cal-nav-btn {
  width: var(--bk4-btn-height);
  height: var(--bk4-btn-height);
  min-width: var(--bk4-btn-height);
  border-radius: var(--bk4-radius-control);
  border: 1px solid var(--bk4-hairline);
  background: var(--bk4-surface);
  color: var(--bk4-ink);
  font-size: 1.25rem;
  line-height: 1;
  transition: background var(--bk4-duration) var(--bk4-ease);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-cal-nav-btn:hover:not(:disabled) {
  background: var(--bk4-surface-2);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-cal-nav-btn:disabled {
  opacity: 0.35;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-cal-meta {
  margin-bottom: var(--bk4-space-2);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-cal-availability-badge {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--bk4-muted);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-cal-day.is-today:not(.is-selected) {
  box-shadow: inset 0 0 0 2px var(--bk4-ink);
  font-weight: 600;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-cal-day.is-available {
  color: var(--bk4-ink);
  opacity: 1 !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-cal-day.is-unavailable {
  text-decoration: line-through;
  text-decoration-color: rgba(0, 0, 0, 0.2);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-cal-today-btn {
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--bk4-muted);
  background: none;
  border: none;
  text-decoration: underline;
  text-underline-offset: 2px;
  cursor: pointer;
  padding: 0;
}

/* ── Time windows v40 ─────────────────────────────────────────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-time-grid-v40 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--bk4-space-2);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-time-card {
  min-height: var(--bk4-btn-height) !important;
  padding: var(--bk4-space-2) !important;
  border: 1px solid var(--bk4-hairline) !important;
  border-radius: var(--bk4-radius-control) !important;
  background: var(--bk4-surface) !important;
  text-align: left;
  transition: border-color var(--bk4-duration) var(--bk4-ease),
    background var(--bk4-duration) var(--bk4-ease) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-time-card.is-selected {
  background: var(--bk4-ink) !important;
  border-color: var(--bk4-ink) !important;
  color: #fff !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-time-card.is-selected .pa-time-title,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-time-card.is-selected .pa-time-range {
  color: rgba(255, 255, 255, 0.92) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-time-title {
  font-size: 0.9375rem;
  font-weight: 650;
  display: block;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-time-range {
  font-size: 0.8125rem;
  color: var(--bk4-muted);
  display: block;
  margin-top: 0.15rem;
}

/* ── Event type pills (photo / video services) ────────────────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-event-wrap-v40 {
  border: none;
  margin: 0 0 var(--bk4-space-2);
  padding: 0;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-event-wrap-v40 .pa-field-label {
  margin-bottom: var(--bk4-space-1);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-event-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(8.5rem, 1fr));
  gap: var(--bk4-space-1);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-event-pill {
  min-height: 44px;
  padding: 0.5rem 0.75rem;
  border: 1px solid var(--bk4-hairline);
  border-radius: var(--bk4-radius-control);
  background: var(--bk4-surface);
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--bk4-ink);
  cursor: pointer;
  transition: background var(--bk4-duration) var(--bk4-ease),
    border-color var(--bk4-duration) var(--bk4-ease);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-event-pill.is-selected {
  background: var(--bk4-ink);
  border-color: var(--bk4-ink);
  color: #fff;
}

/* ── Sticky summary polish ────────────────────────────────────────── */
@media (min-width: 900px) {
  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-sticky-summary {
    padding: var(--bk4-space-3);
  }

  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-sticky-summary-list dd {
    font-size: 0.9375rem;
  }
}

/* ── Mobile: time grid single column on narrow screens ────────────── */
@media (max-width: 480px) {
  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-time-grid-v40 {
    grid-template-columns: 1fr;
  }

  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-cal-day {
    min-height: 2.85rem !important;
  }
}

/* ════════════════════════════════════════════════════════════════════
   PA Media Booking 4.0 — Phase 3: checkout, success, toasts
   ════════════════════════════════════════════════════════════════════ */

/* ── Review checkout block (terms + CTA spacing) ─────────────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-review-checkout {
  margin-top: var(--bk4-space-3);
  padding-top: var(--bk4-space-3);
  border-top: 1px solid var(--bk4-hairline);
}

/* ── Terms agreement v40 ─────────────────────────────────────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-terms-agreement-v40 {
  margin: 0 !important;
  padding: var(--bk4-space-2) var(--bk4-space-3);
  border: 1px solid var(--bk4-hairline);
  border-radius: var(--bk4-radius-control);
  background: var(--bk4-surface-muted, rgba(17, 17, 17, 0.02));
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-terms-agreement-v40.has-error {
  border-color: var(--bk4-danger, #b42318);
  background: rgba(180, 35, 24, 0.04);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-terms-agreement-label {
  display: flex;
  align-items: flex-start;
  gap: var(--bk4-space-2);
  cursor: pointer;
  font-size: 0.875rem;
  line-height: 1.45;
  color: var(--bk4-ink);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-terms-checkbox {
  flex-shrink: 0;
  width: 1.125rem;
  height: 1.125rem;
  margin-top: 0.15rem;
  accent-color: var(--bk4-ink);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-terms-link {
  color: var(--bk4-ink);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-terms-agreement-v40 .pa-field-error-msg {
  margin: var(--bk4-space-1) 0 0;
  font-size: 0.8125rem;
  color: var(--bk4-danger, #b42318);
}

/* ── Inline success (JS renderSuccess) ───────────────────────────── */
.pa-booking-root.pa-booking-v4.is-success-inline #pa-booking-app {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: min(28rem, calc(100dvh - 8rem));
  padding: var(--bk4-space-4) var(--bk4-space-2);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-done-v40 {
  width: min(32rem, 100%);
  margin: 0 auto;
  text-align: center;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-done-v40 .pa-done-icon {
  width: 3rem;
  height: 3rem;
  margin: 0 auto var(--bk4-space-2);
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--bk4-ink);
  color: #fff;
  font-size: 1.25rem;
  font-weight: 700;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-done-v40 .pa-done-eyebrow {
  margin: 0 0 var(--bk4-space-1);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--bk4-muted);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-done-v40 .pa-done-title {
  margin: 0 0 var(--bk4-space-2);
  font-size: clamp(1.375rem, 4vw, 1.625rem);
  font-weight: 650;
  line-height: 1.2;
  color: var(--bk4-ink);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-done-v40 .pa-done-lead {
  margin: 0 0 var(--bk4-space-3);
  font-size: 0.9375rem;
  line-height: 1.55;
  color: var(--bk4-muted);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-done-timeline-v40 {
  list-style: none;
  margin: 0 0 var(--bk4-space-3);
  padding: 0;
  text-align: left;
  border: 1px solid var(--bk4-hairline);
  border-radius: var(--bk4-radius-control);
  overflow: hidden;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-done-timeline-v40 li {
  position: relative;
  padding: var(--bk4-space-2) var(--bk4-space-2) var(--bk4-space-2) 2.25rem;
  border-bottom: 1px solid var(--bk4-hairline);
  font-size: 0.875rem;
  line-height: 1.45;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-done-timeline-v40 li:last-child {
  border-bottom: none;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-done-timeline-v40 li::before {
  content: '';
  position: absolute;
  left: 0.85rem;
  top: 1.15rem;
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: var(--bk4-hairline-strong, rgba(17, 17, 17, 0.2));
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-done-timeline-v40 li.is-complete::before {
  background: var(--bk4-ink);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-done-timeline-v40 li.is-active::before {
  box-shadow: 0 0 0 3px rgba(17, 17, 17, 0.12);
  background: var(--bk4-ink);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-done-timeline-v40 strong {
  display: block;
  font-size: 0.8125rem;
  font-weight: 650;
  color: var(--bk4-ink);
  margin-bottom: 0.15rem;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-done-timeline-v40 span {
  color: var(--bk4-muted);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-done-v40 .pa-done-actions {
  display: flex;
  flex-direction: column;
  gap: var(--bk4-space-2);
  align-items: stretch;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-done-v40 .pa-ics-btn {
  width: 100%;
  min-height: var(--bk4-btn-height);
}

/* ── PHP success page (#pa-booking-success) ────────────────────────── */
.pa-booking-root.pa-booking-v4.pa-booking-success-premium,
#pa-booking-success.pa-booking-success-premium {
  width: min(32rem, calc(100% - 2rem));
  margin: var(--bk4-space-4) auto;
  padding: var(--bk4-space-4) var(--bk4-space-3);
  text-align: center;
  border: 1px solid var(--bk4-hairline, rgba(17, 17, 17, 0.08));
  border-radius: var(--bk4-radius-card, 16px);
  background: var(--bk4-surface, #fff);
}

.pa-booking-root.pa-booking-v4.pa-booking-success-premium .pa-success-icon,
#pa-booking-success .pa-success-icon {
  width: 3rem;
  height: 3rem;
  margin: 0 auto var(--bk4-space-2);
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--bk4-ink, #111);
  color: #fff;
  font-size: 1.25rem;
  font-weight: 700;
}

.pa-booking-root.pa-booking-v4.pa-booking-success-premium .pa-success-eyebrow,
#pa-booking-success .pa-success-eyebrow {
  margin: 0 0 var(--bk4-space-1);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--bk4-muted, #737373);
}

.pa-booking-root.pa-booking-v4.pa-booking-success-premium h2,
#pa-booking-success h2 {
  margin: 0 0 var(--bk4-space-2);
  font-size: clamp(1.375rem, 4vw, 1.625rem);
  font-weight: 650;
  line-height: 1.2;
}

.pa-booking-root.pa-booking-v4.pa-booking-success-premium .pa-success-lead,
#pa-booking-success .pa-success-lead {
  margin: 0 0 var(--bk4-space-3);
  font-size: 0.9375rem;
  line-height: 1.55;
  color: var(--bk4-muted, #737373);
}

.pa-booking-root.pa-booking-v4.pa-booking-success-premium .pa-success-timeline,
#pa-booking-success .pa-success-timeline {
  list-style: none;
  margin: 0 0 var(--bk4-space-3);
  padding: 0;
  text-align: left;
  border: 1px solid var(--bk4-hairline, rgba(17, 17, 17, 0.08));
  border-radius: var(--bk4-radius-control, 10px);
  overflow: hidden;
}

.pa-booking-root.pa-booking-v4.pa-booking-success-premium .pa-success-timeline li,
#pa-booking-success .pa-success-timeline li {
  padding: var(--bk4-space-2) var(--bk4-space-2) var(--bk4-space-2) 2.25rem;
  border-bottom: 1px solid var(--bk4-hairline, rgba(17, 17, 17, 0.08));
  font-size: 0.875rem;
  line-height: 1.45;
  position: relative;
}

.pa-booking-root.pa-booking-v4.pa-booking-success-premium .pa-success-timeline li:last-child,
#pa-booking-success .pa-success-timeline li:last-child {
  border-bottom: none;
}

.pa-booking-root.pa-booking-v4.pa-booking-success-premium .pa-success-trust,
#pa-booking-success .pa-success-trust {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--bk4-space-1) var(--bk4-space-2);
  margin-bottom: var(--bk4-space-3);
  font-size: 0.8125rem;
  color: var(--bk4-muted, #737373);
}

.pa-booking-root.pa-booking-v4.pa-booking-success-premium .pa-done-actions,
#pa-booking-success .pa-done-actions {
  display: flex;
  flex-direction: column;
  gap: var(--bk4-space-2);
  align-items: stretch;
}

.pa-booking-root.pa-booking-v4.pa-booking-success-premium .pa-ics-btn--primary,
#pa-booking-success .pa-ics-btn--primary {
  min-height: var(--bk4-btn-height, 52px);
  border-radius: var(--bk4-radius-control, 10px);
  font-weight: 600;
}

.pa-booking-root.pa-booking-v4.pa-booking-success-premium .pa-success-contact,
#pa-booking-success .pa-success-contact {
  margin-top: var(--bk4-space-3);
  font-size: 0.875rem;
}

.pa-booking-root.pa-booking-v4.pa-booking-success-premium .pa-success-timezone-note,
#pa-booking-success .pa-success-timezone-note {
  font-size: 0.8125rem !important;
  color: var(--bk4-muted, #737373) !important;
  margin-top: var(--bk4-space-2) !important;
}

/* ── Toast stack ───────────────────────────────────────────────────── */
.pa-toast-stack {
  position: fixed;
  bottom: max(1rem, env(safe-area-inset-bottom));
  left: 50%;
  transform: translateX(-50%);
  z-index: 100000;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  pointer-events: none;
  width: min(22rem, calc(100vw - 2rem));
}

.pa-toast {
  padding: 0.75rem 1rem;
  border-radius: var(--bk4-radius-control, 10px);
  font-size: 0.875rem;
  font-weight: 500;
  color: #fff;
  background: var(--bk4-ink, #111);
  box-shadow: 0 8px 24px rgba(17, 17, 17, 0.18);
  animation: pa-bk4-toast-in var(--bk4-duration, 180ms) var(--bk4-ease, ease) both;
}

.pa-toast.is-success {
  background: #1a6b3c;
}

.pa-toast.is-error {
  background: var(--bk4-danger, #b42318);
}

@keyframes pa-bk4-toast-in {
  from {
    opacity: 0;
    transform: translateY(0.5rem);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .pa-toast {
    animation: none;
  }
}

/* ── Loading skeleton v40 ──────────────────────────────────────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-booking-skeleton-v40 {
  padding: var(--bk4-space-4) var(--bk4-space-2);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-booking-skeleton-v40 .pa-skeleton-bar {
  height: 0.75rem;
  border-radius: 999px;
  background: linear-gradient(
    90deg,
    rgba(17, 17, 17, 0.06) 0%,
    rgba(17, 17, 17, 0.1) 50%,
    rgba(17, 17, 17, 0.06) 100%
  );
  background-size: 200% 100%;
  animation: pa-bk4-shimmer 1.2s ease-in-out infinite;
}

@keyframes pa-bk4-shimmer {
  0% { background-position: 100% 0; }
  100% { background-position: -100% 0; }
}

@media (prefers-reduced-motion: reduce) {
  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-booking-skeleton-v40 .pa-skeleton-bar {
    animation: none;
    background: rgba(17, 17, 17, 0.08);
  }
}

/* ===================================================================
   PA Media Booking 4.0 — Phase 4 (completion pass)
   Mobile polish · errors · empty states · motion cleanup · stepper
   =================================================================== */

/* ── Disable legacy stagger inside wizard ─────────────────────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-stagger-item {
  animation: none !important;
}

/* ── Service card hover (subtle) ─────────────────────────────────── */
@media (hover: hover) {
  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-service-option:not(.is-selected):hover {
    border-color: rgba(0, 0, 0, 0.18) !important;
    background: var(--bk4-surface-2) !important;
  }
}

/* ── Stepper v40 ───────────────────────────────────────────────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-stepper-v40 .pa-stepper-label {
  font-size: var(--bk4-type-stepper, 0.8125rem);
  font-weight: 500;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-stepper-v40 .pa-stepper-item.is-active .pa-stepper-label {
  font-weight: 650;
  color: var(--bk4-ink);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-stepper-v40 .pa-stepper-item.is-done .pa-stepper-num {
  background: var(--bk4-ink);
  color: #fff;
}

/* ── Wizard context (no duplicate hints on review) ─────────────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-wizard-context-v40 {
  padding-bottom: var(--bk4-space-2);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-wizard-context-v40 .pa-wizard-context-title {
  margin: 0;
  font-size: var(--bk4-type-h2, clamp(1.35rem, 2.5vw, 1.65rem));
  font-weight: 650;
  letter-spacing: -0.02em;
  color: var(--bk4-ink);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-wizard-context-v40 .pa-wizard-context-hint {
  margin: var(--bk4-space-1) 0 0;
  font-size: 0.9375rem;
  color: var(--bk4-muted);
}

/* ── Empty states ──────────────────────────────────────────────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-empty-state-v40 {
  margin: var(--bk4-space-3) 0;
  padding: var(--bk4-space-3);
  text-align: center;
  font-size: 0.9375rem;
  line-height: 1.45;
  color: var(--bk4-muted);
  border: 1px dashed var(--bk4-hairline);
  border-radius: var(--bk4-radius-control);
  background: var(--bk4-surface-2);
}

/* ── Error banner + field errors ───────────────────────────────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-error-v40 {
  margin: 0 0 var(--bk4-space-2);
  padding: var(--bk4-space-2) var(--bk4-space-3);
  border-radius: var(--bk4-radius-control);
  background: rgba(180, 35, 24, 0.08);
  border: 1px solid rgba(180, 35, 24, 0.2);
  color: var(--bk4-danger, #b42318);
  font-size: 0.875rem;
  line-height: 1.45;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-field-error-msg {
  margin-top: 0.35rem;
  font-size: 0.8125rem;
  color: var(--bk4-danger, #b42318);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-input-error,
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-text-input.pa-input-error {
  border-color: var(--bk4-danger, #b42318) !important;
  box-shadow: 0 0 0 3px rgba(180, 35, 24, 0.12) !important;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-text-input:focus,
.pa-booking-root.pa-booking-v4 #pa-booking-app textarea.pa-input:focus {
  outline: none;
  border-color: var(--bk4-ink) !important;
  box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.08) !important;
}

/* ── Mobile polish (touch + readability) ───────────────────────────── */
@media (max-width: 767px) {
  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-v40 .pa-text-input,
  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-v40 textarea.pa-input,
  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-group--wizard .pa-text-input,
  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-group--wizard textarea.pa-input {
    font-size: 16px !important;
    min-height: 48px !important;
    padding: 0.9rem 1rem !important;
  }

  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-wizard-columns,
  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-sheet--flat .pa-form-wizard-columns {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.85rem !important;
  }

  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-sheet--flat .pa-form-group--wizard {
    padding: 1rem !important;
  }

  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-group--wizard .pa-event-pill {
    flex: 1 1 calc(50% - 0.45rem);
    justify-content: center;
    min-height: 44px !important;
  }

  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-wizard-back,
  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-event-pill,
  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-cal-nav-btn {
    min-height: 44px;
    min-width: 44px;
  }

  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-booking-action {
    padding-bottom: max(var(--bk4-space-2), env(safe-area-inset-bottom));
  }

  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-review-summary-v40 .pa-review-summary-row {
    grid-template-columns: 1fr;
    gap: 0.15rem;
  }

  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-review-summary-v40 .pa-review-summary-edit {
    justify-self: start;
    margin-top: 0.25rem;
  }

  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-scroll {
    padding-left: var(--bk4-space-2);
    padding-right: var(--bk4-space-2);
  }

  .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-service-list--simple {
    grid-template-columns: 1fr !important;
  }
}

/* ── Review step cohesion ──────────────────────────────────────────── */
.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-review-v40 .pa-deposit-section--compact {
  margin-top: var(--bk4-space-2);
  padding: var(--bk4-space-2) 0;
  border: none;
  background: transparent;
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-review-v40 .pa-deposit-section-lead {
  margin: 0 0 var(--bk4-space-2);
  font-size: 0.9375rem;
  line-height: 1.5;
  color: var(--bk4-muted);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-review-v40 .pa-deposit-section-amount-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: var(--bk4-space-2) 0;
  border-top: 1px solid var(--bk4-hairline);
}

.pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-review-v40 .pa-deposit-section-amount {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--bk4-ink);
}

/* ── Mobile wizard: less scroll, pinned actions ─────────────────── */
@media (max-width: 767px) {
  body.is-booking-funnel .pa-booking-v4.is-single-screen .pa-glass-section {
    padding: 0.65rem 0.75rem !important;
  }

  body.is-booking-funnel .pa-booking-v4.is-single-screen .pa-wizard-panel-nav {
    margin-bottom: 0.35rem !important;
  }

  body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-service-option {
    padding: 0.55rem 0.65rem !important;
    min-height: 44px !important;
  }

  body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-cal-day {
    min-height: 2.35rem !important;
    font-size: 0.8rem !important;
  }

  body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-time-card {
    min-height: 44px !important;
    padding: 0.5rem 0.65rem !important;
  }

  body.is-booking-funnel .pa-booking-v4.is-single-screen .pa-step-details > .pa-booking-actions--sticky,
  body.is-booking-funnel .pa-booking-v4.is-single-screen .pa-step-review > .pa-booking-actions--sticky {
    margin-top: auto !important;
    padding-top: 0.45rem !important;
    padding-bottom: max(0.35rem, env(safe-area-inset-bottom, 0px)) !important;
    background: var(--iv-surface, #fff) !important;
    border-top: 1px solid var(--iv-hairline-soft, rgba(0, 0, 0, 0.08)) !important;
  }

  body.is-booking-funnel .pa-booking-v4.is-single-screen .pa-form-group--wizard {
    margin-bottom: 0.35rem !important;
  }

  body.is-booking-funnel .pa-booking-v4.is-single-screen .pa-form-sheet--grouped {
    gap: 0.75rem !important;
  }

  body.is-booking-funnel .pa-booking-v4.is-single-screen .pa-step-toolbar--back-only {
    margin-bottom: 0.2rem !important;
  }
}

/* ===================================================================
   PA Media Booking — professional spacing (funnel-wide)
   Generous padding + rhythm on /book/ — overrides tighter legacy tiers.
   =================================================================== */

body.pa-booking-page .pa-booking-root.pa-booking-v4,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 {
  --bk4-space-1: 10px;
  --bk4-space-2: 20px;
  --bk4-space-3: 28px;
  --bk4-space-4: 40px;
  --bk4-space-5: 56px;
  --bk4-space-6: 72px;
  --bk4-card-pad-y: 1.5rem;
  --bk4-card-pad-x: 1.75rem;
  --bk4-field-gap: 1.25rem;
}

body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app {
  padding-left: clamp(0.5rem, 2vw, 1rem) !important;
  padding-right: clamp(0.5rem, 2vw, 1rem) !important;
}

body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-booking-chrome,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-booking-chrome {
  margin-bottom: var(--bk4-space-4) !important;
  padding-bottom: var(--bk4-space-2) !important;
}

body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-stepper--minimal,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-stepper--minimal {
  margin-bottom: var(--bk4-space-4) !important;
  padding: var(--bk4-space-2) 0 !important;
}

body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-wizard-context,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-wizard-context {
  margin-bottom: var(--bk4-space-4) !important;
  padding-bottom: var(--bk4-space-1) !important;
}

body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-wizard-context-title,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-wizard-context-title {
  margin-bottom: var(--bk4-space-2) !important;
  line-height: 1.15 !important;
}

body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-wizard-context-hint,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-wizard-context-hint {
  margin-top: var(--bk4-space-2) !important;
  line-height: 1.5 !important;
}

body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-scroll,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-scroll {
  gap: var(--bk4-space-4) !important;
}

body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-toolbar,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-toolbar {
  margin-bottom: var(--bk4-space-3) !important;
}

/* Form sheets + columns */
body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-sheet--grouped,
body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-sheet--flat,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-sheet--grouped,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-sheet--flat {
  gap: var(--bk4-space-4) !important;
}

body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-wizard-columns,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-wizard-columns {
  gap: var(--bk4-space-4) !important;
}

body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-wizard-col,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-wizard-col {
  gap: var(--bk4-space-4) !important;
}

/* Section cards — padded panels (flat + grouped) */
body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-group--wizard,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-group--wizard {
  padding: var(--bk4-card-pad-y) var(--bk4-card-pad-x) !important;
  margin: 0 !important;
  border: 1px solid var(--bk4-hairline) !important;
  border-radius: var(--bk4-radius-card) !important;
  background: var(--bk4-surface) !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04) !important;
}

body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-sheet--flat .pa-form-group--wizard,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-sheet--flat .pa-form-group--wizard {
  padding: var(--bk4-card-pad-y) var(--bk4-card-pad-x) !important;
  border: 1px solid var(--bk4-hairline) !important;
  border-radius: var(--bk4-radius-card) !important;
  background: var(--bk4-surface) !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04) !important;
}

body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-group--wizard .pa-form-group-title,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-group--wizard .pa-form-group-title {
  margin: 0 0 var(--bk4-space-3) !important;
  padding: 0 0 var(--bk4-space-2) !important;
  border-bottom: 1px solid var(--bk4-hairline);
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--bk4-muted) !important;
}

body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-group--wizard .pa-form-group-body,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-group--wizard .pa-form-group-body {
  gap: var(--bk4-field-gap) !important;
}

body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-group--wizard .pa-field,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-group--wizard .pa-field {
  margin: 0 !important;
}

body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-field-label,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-field-label {
  display: block !important;
  margin: 0 0 0.5rem !important;
  padding: 0 !important;
  font-size: 0.9375rem !important;
  font-weight: 600 !important;
  line-height: 1.35 !important;
}

body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-field-help,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-field-help {
  margin: 0.5rem 0 0 !important;
  font-size: 0.8125rem !important;
  line-height: 1.45 !important;
}

body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-text-input,
body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app textarea.pa-input,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-text-input,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app textarea.pa-input {
  min-height: 3.125rem !important;
  padding: 0.85rem 1.05rem !important;
  font-size: 1rem !important;
  line-height: 1.45 !important;
  border-radius: var(--bk4-radius-control) !important;
}

body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app textarea.pa-input,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app textarea.pa-input {
  min-height: 6.5rem !important;
  padding-top: 0.9rem !important;
  resize: vertical;
}

body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-group--contact .pa-form-group-body,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-group--contact .pa-form-group-body {
  gap: var(--bk4-field-gap) !important;
}

@media (min-width: 768px) {
  body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-group--contact .pa-form-group-body,
  body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-group--contact .pa-form-group-body {
    column-gap: var(--bk4-space-3) !important;
    row-gap: var(--bk4-field-gap) !important;
  }
}

/* Sticky summary sidebar */
@media (min-width: 900px) {
  body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-wizard-layout,
  body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-wizard-layout {
    gap: var(--bk4-space-4) !important;
    grid-template-columns: minmax(0, 1fr) 15.5rem !important;
  }

  body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-sticky-summary,
  body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-sticky-summary {
    padding: var(--bk4-space-3) !important;
  }

  body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-sticky-summary-title,
  body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-sticky-summary-title {
    margin-bottom: var(--bk4-space-3) !important;
    padding-bottom: var(--bk4-space-2) !important;
    border-bottom: 1px solid var(--bk4-hairline);
  }

  body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-sticky-summary-list,
  body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-sticky-summary-list {
    gap: var(--bk4-space-2) !important;
  }

  body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-sticky-summary-list dd,
  body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-sticky-summary-list dd {
    margin-bottom: var(--bk4-space-2) !important;
  }
}

/* Primary actions */
body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-booking-actions,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-booking-actions {
  margin-top: var(--bk4-space-4) !important;
  padding-top: var(--bk4-space-3) !important;
  gap: var(--bk4-space-2) !important;
}

body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-continue-footnote,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-continue-footnote {
  margin-top: var(--bk4-space-1) !important;
  padding: 0 var(--bk4-space-1) !important;
  line-height: 1.45 !important;
}

/* Schedule + review steps — same rhythm */
body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-glass-section,
body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-schedule-col,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-glass-section,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-schedule-col {
  padding: var(--bk4-space-3) var(--bk4-space-3) !important;
}

body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-review-card-v25,
body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-deposit-section,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-review-card-v25,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-deposit-section {
  padding: var(--bk4-card-pad-y) var(--bk4-card-pad-x) !important;
  margin-top: var(--bk4-space-3) !important;
}

body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-review-card-row,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-review-card-row {
  padding: 0.85rem 0 !important;
}

/* Mobile: keep generous spacing (override cramped funnel rules) */
@media (max-width: 767px) {
  body.is-booking-funnel .pa-booking-v4.is-single-screen .pa-form-group--wizard {
    margin-bottom: 0 !important;
  }

  body.is-booking-funnel .pa-booking-v4.is-single-screen .pa-form-sheet--grouped,
  body.is-booking-funnel .pa-booking-v4.is-single-screen .pa-form-sheet--flat {
    gap: var(--bk4-space-3) !important;
  }

  body.is-booking-funnel .pa-booking-v4.is-single-screen .pa-form-wizard-columns,
  body.is-booking-funnel .pa-booking-v4.is-single-screen .pa-form-wizard-col {
    gap: var(--bk4-space-3) !important;
  }

  body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-group--wizard {
    padding: 1.25rem 1.35rem !important;
  }

  body.is-booking-funnel .pa-booking-v4.is-single-screen .pa-step-details > .pa-booking-actions--sticky,
  body.is-booking-funnel .pa-booking-v4.is-single-screen .pa-step-review > .pa-booking-actions--sticky {
    padding-top: var(--bk4-space-2) !important;
    padding-bottom: max(var(--bk4-space-2), env(safe-area-inset-bottom, 0px)) !important;
  }
}

/* ── Details step: clear single-column form + visible fillable fields ── */
body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details .pa-details-form,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details .pa-details-form {
  max-width: 40rem;
  margin: 0 auto;
}

body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-wizard-columns--stack,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-wizard-columns--stack,
body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-sheet--flat .pa-form-wizard-columns--stack,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-form-sheet--flat .pa-form-wizard-columns--stack {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.85rem !important;
  width: 100% !important;
}

body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details .pa-form-group--wizard,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details .pa-form-group--wizard {
  padding: 1.15rem 1.2rem !important;
  border: 1px solid rgba(60, 60, 67, 0.14) !important;
  border-radius: 18px !important;
  background: #ffffff !important;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04) !important;
}

body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details .pa-form-group-hint,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details .pa-form-group-hint {
  margin: 0 0 0.85rem !important;
  font-size: 0.875rem !important;
  color: rgba(60, 60, 67, 0.72) !important;
}

body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details .pa-form-group-body,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details .pa-form-group-body {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.9rem !important;
}

body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details .pa-field,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details .pa-field {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.4rem !important;
  margin: 0 !important;
}

body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details .pa-field-label,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details .pa-field-label {
  font-size: 0.9375rem !important;
  font-weight: 650 !important;
  color: #1d1d1f !important;
  text-transform: none !important;
  letter-spacing: -0.01em !important;
}

/* Contact: name full width; email + phone side-by-side on wider screens */
body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details .pa-form-group--contact .pa-form-group-body,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details .pa-form-group--contact .pa-form-group-body {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 0.9rem !important;
}

@media (min-width: 640px) {
  body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details .pa-form-group--contact .pa-form-group-body,
  body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details .pa-form-group--contact .pa-form-group-body {
    grid-template-columns: 1fr 1fr !important;
  }

  body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details .pa-form-group--contact .pa-form-group-body > .pa-field:first-child,
  body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details .pa-form-group--contact .pa-form-group-body > .pa-field:first-child {
    grid-column: 1 / -1 !important;
  }
}

/* Hide redundant Location/Venue card eyebrow — field label is enough */
body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details .pa-form-group--location > .pa-form-group-title,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details .pa-form-group--location > .pa-form-group-title {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* High-contrast fillable controls (clear “type here” wells) */
body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details .pa-text-input,
body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details textarea.pa-input,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details .pa-text-input,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details textarea.pa-input {
  min-height: 3.35rem !important;
  padding: 0.95rem 1.1rem !important;
  font-size: 1.0625rem !important;
  line-height: 1.4 !important;
  color: #1d1d1f !important;
  background: #d8d8de !important;
  border: 2px solid #6e6e73 !important;
  border-radius: 14px !important;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.06) !important;
}

body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details .pa-text-input::placeholder,
body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details textarea.pa-input::placeholder,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details .pa-text-input::placeholder,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details textarea.pa-input::placeholder {
  color: rgba(60, 60, 67, 0.55) !important;
  -webkit-text-fill-color: rgba(60, 60, 67, 0.55) !important;
  opacity: 1 !important;
}

body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details .pa-text-input:hover,
body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details textarea.pa-input:hover,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details .pa-text-input:hover,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details textarea.pa-input:hover {
  background: #ceced6 !important;
  border-color: #1d1d1f !important;
}

body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details .pa-text-input:focus,
body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details textarea.pa-input:focus,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details .pa-text-input:focus,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details textarea.pa-input:focus {
  background: #ffffff !important;
  border-color: #0071e3 !important;
  box-shadow: 0 0 0 4px rgba(0, 113, 227, 0.18) !important;
}

body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details textarea.pa-input,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details textarea.pa-input {
  min-height: 6.75rem !important;
}

body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details .pa-event-pill-row,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details .pa-event-pill-row {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 0.5rem !important;
}

body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details .pa-event-pill,
body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details .pa-event-pill {
  min-height: 44px !important;
  padding: 0.55rem 0.95rem !important;
  border: 1.5px solid rgba(60, 60, 67, 0.28) !important;
  background: #f2f2f7 !important;
}

@media (max-width: 767px) {
  body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details .pa-text-input,
  body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details textarea.pa-input,
  body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details .pa-text-input,
  body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details textarea.pa-input {
    font-size: 16px !important;
    min-height: 3.35rem !important;
  }

  body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details .pa-form-group--wizard,
  body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details .pa-form-group--wizard {
    padding: 1.1rem 1rem !important;
  }

  body.pa-booking-page .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details .pa-event-pill,
  body.is-booking-funnel .pa-booking-root.pa-booking-v4 #pa-booking-app .pa-step-details .pa-event-pill {
    flex: 1 1 calc(50% - 0.35rem);
    justify-content: center;
  }
}
