#padco-booking-root,
#padco-staff-root,
body.toplevel_page_padco-booking-admin,
body[class*="_page_padco-booking-"] {
  --padco-black: #111111;
  --padco-charcoal: #333333;
  --padco-grey: #727272;
  --padco-line: #e5e5e5;
  --padco-soft: #f6f6f6;
  --padco-white: #ffffff;
  --padco-green: #3f5e43;
  --padco-mauve: #7e6677;
  --padco-radius: 22px;
  --padco-shadow: 0 18px 50px rgba(0, 0, 0, 0.08);
}

#padco-booking-root,
#padco-booking-root *,
#padco-staff-root,
#padco-staff-root * {
  box-sizing: border-box;
}

#padco-booking-root,
#padco-staff-root {
  color: var(--padco-black);
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

#padco-booking-root button,
#padco-staff-root button {
  font: inherit;
}

#padco-booking-root,
#padco-staff-root,
#padco-customer-account-root {
  min-height: 0;
  background: transparent;
}

.padco-shell {
  width: min(100%, 720px);
  margin: 0 auto;
  padding: 22px 16px 120px;
}

.padco-header,
.padco-basket-title,
.padco-calendar-toolbar,
.padco-step-heading,
.padco-basket-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.padco-header {
  padding: 8px 2px 18px;
}

.padco-eyebrow,
.padco-step-heading p,
.padco-label {
  margin: 0 0 5px;
  color: var(--padco-grey);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.padco-header h1,
.padco-step h2,
.padco-basket h2,
.padco-calendar-toolbar h2 {
  margin: 0;
}

.padco-header h1 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2rem, 8vw, 3rem);
}

.padco-basket-button {
  border: 0;
  border-radius: 999px;
  padding: 11px 15px;
  background: var(--padco-black);
  color: white;
  cursor: pointer;
  font-weight: 800;
}

.padco-basket-button span {
  display: inline-grid;
  min-width: 24px;
  height: 24px;
  margin-left: 6px;
  place-items: center;
  border-radius: 999px;
  background: var(--padco-mauve);
}

.padco-calendar-card,
.padco-step,
.padco-basket {
  margin-bottom: 16px;
  border: 1px solid var(--padco-line);
  border-radius: var(--padco-radius);
  background: var(--padco-white);
  box-shadow: var(--padco-shadow);
}

.padco-calendar-card {
  padding: 18px 14px;
}

.padco-calendar-toolbar {
  margin-bottom: 12px;
}

.padco-calendar-toolbar h2 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.35rem;
}

.padco-icon-button {
  width: 42px;
  height: 42px;
  border: 1px solid var(--padco-line);
  border-radius: 50%;
  background: white;
  cursor: pointer;
  font-size: 1.75rem;
  line-height: 1;
}

.padco-weekdays,
.padco-calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 6px;
}

.padco-weekdays {
  padding: 5px 0 8px;
  color: var(--padco-grey);
  font-size: 0.75rem;
  font-weight: 800;
  text-align: center;
}

.padco-day {
  position: relative;
  aspect-ratio: 1;
  border: 0;
  border-radius: 13px;
  background: transparent;
  color: var(--padco-charcoal);
  cursor: pointer;
  font-weight: 750;
}

.padco-day:hover:not(:disabled) {
  background: var(--padco-soft);
}

.padco-day.is-selected {
  background: var(--padco-black);
  color: white;
}

.padco-day.has-booking:not(.is-selected) {
  background: #f1ecf0;
}

.padco-day i {
  position: absolute;
  bottom: 5px;
  left: 50%;
  width: 5px;
  height: 5px;
  transform: translateX(-50%);
  border-radius: 50%;
  background: var(--padco-mauve);
}

.padco-day.is-selected i {
  background: white;
}

.padco-day:disabled {
  color: #c7c7c7;
  cursor: not-allowed;
}

.padco-day.is-empty {
  display: block;
}

.padco-step,
.padco-basket {
  padding: 20px;
}

.padco-step-heading {
  justify-content: flex-start;
  margin-bottom: 18px;
}

.padco-step-heading > span {
  display: grid;
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
  place-items: center;
  border-radius: 50%;
  background: var(--padco-mauve);
  color: white;
  font-weight: 900;
}

.padco-step-heading h2 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.6rem;
}

.padco-service-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.padco-service-card {
  display: flex;
  min-height: 92px;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  padding: 15px;
  border: 1px solid var(--padco-line);
  border-radius: 17px;
  background: white;
  cursor: pointer;
  font-weight: 850;
  text-align: left;
}

.padco-service-card.is-selected {
  border-color: var(--padco-green);
  background: #eff4f0;
  box-shadow: inset 0 0 0 1px var(--padco-green);
}

.padco-service-icon {
  font-size: 1.5rem;
}

.padco-options {
  margin-top: 18px;
}

.padco-chip-row,
.padco-time-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}

.padco-chip,
.padco-time,
.padco-mode-toggle button {
  border: 1px solid #d7d7d7;
  border-radius: 999px;
  background: white;
  color: var(--padco-black);
  cursor: pointer;
  font-weight: 750;
}

.padco-chip,
.padco-time {
  padding: 11px 14px;
}

.padco-chip.is-selected,
.padco-time.is-selected,
.padco-mode-toggle button.is-selected {
  border-color: var(--padco-black);
  background: var(--padco-black);
  color: white;
}

.padco-mode-toggle {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  padding: 5px;
  border-radius: 999px;
  background: var(--padco-soft);
}

.padco-mode-toggle button {
  padding: 11px 8px;
  border-color: transparent;
  background: transparent;
  font-size: 0.85rem;
}

.padco-time-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

.padco-time {
  border-radius: 13px;
}

.padco-primary,
.padco-checkout {
  width: 100%;
  margin-top: 20px;
  padding: 15px 18px;
  border: 0;
  border-radius: 14px;
  background: var(--padco-black);
  color: white;
  cursor: pointer;
  font-weight: 900;
}

.padco-primary:disabled {
  cursor: not-allowed;
  opacity: 0.35;
}

.padco-basket {
  border-top: 5px solid var(--padco-mauve);
}

.padco-basket-title {
  margin-bottom: 15px;
}

.padco-basket-title > strong {
  font-size: 1.3rem;
}

.padco-basket-list {
  display: grid;
  gap: 10px;
}

.padco-basket-item {
  align-items: flex-start;
  padding: 14px;
  border-radius: 15px;
  background: var(--padco-soft);
}

.padco-basket-item div:first-child {
  display: grid;
  gap: 4px;
}

.padco-basket-item span,
.padco-basket-item small {
  color: var(--padco-grey);
}

.padco-basket-actions {
  display: grid;
  justify-items: end;
  gap: 8px;
  white-space: nowrap;
}

.padco-basket-actions button {
  border: 0;
  background: transparent;
  color: var(--padco-mauve);
  cursor: pointer;
  font-size: 0.78rem;
  font-weight: 850;
}

.padco-checkout {
  background: var(--padco-green);
}

.padco-empty {
  margin: 0;
  color: var(--padco-grey);
}

@media (min-width: 640px) {
  .padco-shell {
    padding-top: 36px;
  }

  .padco-service-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .padco-time-grid {
    grid-template-columns: repeat(5, 1fr);
  }
}

.padco-pet-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.padco-pet-card {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 62px;
  padding: 12px 14px;
  border: 1px solid var(--padco-line);
  border-radius: 15px;
  background: var(--padco-white);
  cursor: pointer;
  text-align: left;
}

.padco-pet-card.is-selected {
  border-color: var(--padco-green);
  background: #eff4f0;
  box-shadow: inset 0 0 0 1px var(--padco-green);
}

.padco-help,
.padco-warning {
  margin: 12px 0 0;
  font-size: 0.88rem;
  line-height: 1.45;
}

.padco-help {
  color: var(--padco-grey);
}

.padco-warning {
  padding: 10px 12px;
  border-radius: 12px;
  background: #f7eef4;
  color: #6b365b;
  font-weight: 750;
}

.padco-fixed-slot {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.padco-fixed-slot > div {
  display: grid;
  gap: 4px;
  padding: 14px;
  border-radius: 15px;
  background: var(--padco-soft);
}

.padco-fixed-slot span {
  color: var(--padco-grey);
  font-size: 0.78rem;
  font-weight: 750;
  text-transform: uppercase;
}

.padco-buffer-note {
  display: grid;
  gap: 4px;
  margin-top: 16px;
  padding: 13px 14px;
  border-left: 4px solid var(--padco-green);
  border-radius: 10px;
  background: #f3f6f3;
}

.padco-buffer-note span {
  color: var(--padco-grey);
  font-size: 0.86rem;
}

@media (min-width: 640px) {
  .padco-service-grid-five {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
}


#padco-booking-root.padco-booking-root-auth {
  min-height: 0;
  padding: 0;
  background: transparent;
}

#padco-booking-root .padco-booking-access {
  width: min(100%, 440px);
  margin: 28px auto 0;
  padding: 28px;
  border: 1px solid var(--padco-line);
  border-radius: 18px;
  background: var(--padco-white);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.06);
  text-align: center;
}

#padco-booking-root .padco-booking-access h2 {
  margin: 0 0 8px;
}

#padco-booking-root .padco-booking-access p {
  margin: 0 0 20px;
  color: var(--padco-grey);
}

#padco-booking-root .padco-booking-access-actions {
  display: flex;
  gap: 10px;
  justify-content: center;
  flex-wrap: wrap;
}

#padco-booking-root .padco-access-primary,
#padco-booking-root .padco-access-secondary {
  display: inline-block;
  padding: 12px 20px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 700;
}

#padco-booking-root .padco-access-primary {
  background: var(--padco-green);
  color: #fff;
}

#padco-booking-root .padco-access-secondary {
  border: 1px solid var(--padco-green);
  color: var(--padco-green);
  background: transparent;
}


#padco-booking-root .padco-booking-login-form {
  display: grid;
  gap: 12px;
  margin-top: 20px;
  text-align: left;
}

#padco-booking-root .padco-booking-login-form label {
  display: grid;
  gap: 6px;
  font-weight: 600;
}

#padco-booking-root .padco-booking-login-form input[type="text"],
#padco-booking-root .padco-booking-login-form input[type="password"] {
  width: 100%;
  box-sizing: border-box;
  padding: 11px 13px;
  border: 1px solid #d7d7d7;
  border-radius: 10px;
  background: #fff;
  font: inherit;
}

#padco-booking-root .padco-booking-login-form .padco-booking-remember {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  font-weight: 400;
}

#padco-booking-root .padco-booking-remember input[type="checkbox"] {
  width: 18px;
  height: 18px;
  margin: 0;
  flex: 0 0 auto;
}

#padco-booking-root .padco-booking-login-form .padco-access-primary {
  width: 100%;
  border: 0;
  cursor: pointer;
  font: inherit;
}

#padco-booking-root .padco-booking-login-error {
  padding: 12px 14px;
  border-radius: 10px;
  background: #fff1f1;
}

#padco-booking-root .padco-booking-security-note {
  display: grid;
  gap: 4px;
  padding: 12px 14px;
  border: 1px solid #e0ddd4;
  border-radius: 10px;
  background: #faf8f2;
  color: #4e514d;
  font-size: .9rem;
  line-height: 1.45;
}

#padco-booking-root .padco-booking-security-note strong {
  color: #2f3b31;
}

.padco-booking-page-shell .padco-booking-session-bar,
.padco-customer-account-shell .padco-booking-session-bar {
  width: min(100%, 1180px);
  box-sizing: border-box;
  margin: 0 auto 14px;
  padding: 10px 12px;
  border: 1px solid #dedede;
  border-radius: 12px;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.padco-booking-page-shell .padco-booking-session-bar span,
.padco-customer-account-shell .padco-booking-session-bar span {
  color: #5e655f;
}

.padco-booking-page-shell .padco-booking-session-bar small,
.padco-customer-account-shell .padco-booking-session-bar small {
  display: block;
  margin-top: 2px;
  color: #777;
}

.padco-booking-page-shell .padco-booking-logout,
.padco-customer-account-shell .padco-booking-logout {
  display: inline-block;
  padding: 8px 14px;
  border: 1px solid var(--padco-green, #3f5e43);
  border-radius: 999px;
  color: var(--padco-green, #3f5e43);
  background: transparent;
  text-decoration: none;
  font-weight: 700;
  white-space: nowrap;
}

#padco-booking-root .padco-booking-register {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-top: 16px;
  flex-wrap: wrap;
}

#padco-booking-root .padco-booking-register .padco-access-secondary {
  padding: 9px 16px;
}

@media (max-width: 520px) {
  .padco-booking-page-shell .padco-booking-session-bar,
  .padco-customer-account-shell .padco-booking-session-bar {
    align-items: flex-start;
    flex-direction: column;
  }

  #padco-booking-root .padco-booking-access {
    width: 100%;
    margin-top: 18px;
    padding: 22px 18px;
    border-radius: 16px;
  }
}

/* Database-backed public booking journey */
#padco-booking-root .padco-live-shell {
  width: min(100%, 1180px);
  margin: 0 auto;
}
#padco-booking-root .padco-live-header,
#padco-booking-root .padco-live-section-heading > div,
#padco-booking-root .padco-live-basket article,
#padco-booking-root .padco-live-basket-total,
#padco-booking-root .padco-live-calendar-head,
#padco-booking-root .padco-live-staff-mode {
  display: flex;
  align-items: center;
}
#padco-booking-root .padco-live-header {
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 22px;
}
#padco-booking-root .padco-live-header h1,
#padco-booking-root .padco-live-section h2,
#padco-booking-root .padco-live-section h3 {
  margin: 0;
}
#padco-booking-root .padco-live-kicker {
  margin: 0 0 5px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
  opacity: .65;
}
#padco-booking-root .padco-live-section {
  margin: 18px 0;
  padding: var(--padco-section-padding, 16px);
  border: 1px solid rgba(17,17,17,.12);
  border-radius: var(--padco-radius, 22px);
  background: var(--padco-white, #fff);
}
#padco-booking-root .padco-live-section-heading {
  margin-bottom: var(--padco-inner-gap, 10px);
}
#padco-booking-root .padco-live-section-heading > div {
  gap: 12px;
}
#padco-booking-root .padco-live-section-heading > div > span {
  display: grid;
  place-items: center;
  flex: 0 0 32px;
  width: 32px;
  height: 32px;
  border-radius: 999px;
  background: var(--padco-green, #3f5e43);
  color: #fff;
  font-weight: 800;
}
#padco-booking-root .padco-live-section-heading p,
#padco-booking-root .padco-live-category > p,
#padco-booking-root .padco-live-empty {
  margin: 4px 0 0;
  opacity: .72;
}
#padco-booking-root .padco-live-resource-grid,
#padco-booking-root .padco-live-service-grid,
#padco-booking-root .padco-live-option-grid,
#padco-booking-root .padco-live-slots {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: var(--padco-inner-gap, 10px);
}
#padco-booking-root .padco-live-choice,
#padco-booking-root .padco-live-service,
#padco-booking-root .padco-live-option,
#padco-booking-root .padco-live-slots button,
#padco-booking-root .padco-live-staff-mode button {
  border: 1px solid rgba(17,17,17,.16);
  border-radius: 12px;
  background: #fff;
  padding: var(--padco-choice-pad-y, 10px) var(--padco-choice-pad-x, 12px);
  text-align: left;
  cursor: pointer;
}
#padco-booking-root .padco-live-choice strong,
#padco-booking-root .padco-live-choice span,
#padco-booking-root .padco-live-service strong,
#padco-booking-root .padco-live-service span,
#padco-booking-root .padco-live-option strong,
#padco-booking-root .padco-live-option span {
  display: block;
}
#padco-booking-root .padco-live-choice span,
#padco-booking-root .padco-live-service span,
#padco-booking-root .padco-live-option span {
  margin-top: 3px;
  font-size: 13px;
  opacity: .72;
}
#padco-booking-root .padco-live-choice.is-selected,
#padco-booking-root .padco-live-service.is-selected,
#padco-booking-root .padco-live-option.is-selected,
#padco-booking-root .padco-live-slots button.is-selected,
#padco-booking-root .padco-live-staff-mode button.is-selected {
  border-color: var(--padco-green, #3f5e43);
  box-shadow: inset 0 0 0 1px var(--padco-green, #3f5e43);
}
#padco-booking-root .padco-live-add-resource {
  display: flex;
  gap: 8px;
  margin-top: 12px;
}
#padco-booking-root .padco-live-add-resource input {
  flex: 1;
}
#padco-booking-root .padco-live-category + .padco-live-category {
  margin-top: 20px;
}
#padco-booking-root .padco-live-option-grid {
  margin-top: 10px;
}
#padco-booking-root .padco-live-schedule-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr);
  gap: calc(var(--padco-inner-gap, 10px) + 4px);
}
#padco-booking-root .padco-live-calendar,
#padco-booking-root .padco-live-slot-panel {
  border: 1px solid rgba(17,17,17,.12);
  border-radius: 16px;
  padding: var(--padco-section-padding, 16px);
}
#padco-booking-root .padco-live-calendar-head {
  justify-content: space-between;
  margin-bottom: 12px;
}
#padco-booking-root .padco-live-calendar-head button {
  border: 0;
  background: transparent;
  font-size: 26px;
  cursor: pointer;
}
#padco-booking-root .padco-live-weekdays,
#padco-booking-root .padco-live-days {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 6px;
}
#padco-booking-root .padco-live-weekdays span {
  text-align: center;
  font-size: 12px;
  font-weight: 700;
  opacity: .6;
}
#padco-booking-root .padco-live-day {
  position: relative;
  min-height: var(--padco-day-min-height, 38px);
  border: 1px solid transparent;
  border-radius: 10px;
  background: rgba(17,17,17,.035);
  cursor: pointer;
}
#padco-booking-root .padco-live-day.is-selected {
  background: var(--padco-green, #3f5e43);
  color: #fff;
}
#padco-booking-root .padco-live-day.has-booking:not(.is-selected) {
  border-color: var(--padco-mauve, #7e6677);
}
#padco-booking-root .padco-live-day i {
  position: absolute;
  right: 5px;
  bottom: 5px;
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: var(--padco-mauve, #7e6677);
}
#padco-booking-root .padco-live-day:disabled {
  opacity: .28;
  cursor: default;
}
#padco-booking-root .padco-live-slot-panel {
  display: grid;
  align-content: start;
  gap: var(--padco-inner-gap, 10px);
}
#padco-booking-root .padco-live-slot-panel label,
#padco-booking-root .padco-live-checkout-panel label {
  display: grid;
  gap: 6px;
  font-weight: 650;
}
#padco-booking-root .padco-live-slot-panel select,
#padco-booking-root .padco-live-slot-panel input,
#padco-booking-root .padco-live-checkout-panel input,
#padco-booking-root .padco-live-checkout-panel textarea,
#padco-booking-root .padco-live-add-resource input {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid rgba(17,17,17,.18);
  border-radius: 10px;
  padding: var(--padco-control-pad-y, 9px) var(--padco-control-pad-x, 11px);
  font: inherit;
  background: #fff;
}
#padco-booking-root .padco-live-staff-mode {
  gap: 8px;
  flex-wrap: wrap;
}
#padco-booking-root .padco-live-slots button {
  text-align: center;
}
#padco-booking-root .padco-live-add,
#padco-booking-root .padco-live-confirm {
  width: 100%;
}
#padco-booking-root .padco-live-basket-list {
  display: grid;
  gap: 10px;
}
#padco-booking-root .padco-live-basket article {
  justify-content: space-between;
  gap: 16px;
  border: 1px solid rgba(17,17,17,.1);
  border-radius: 12px;
  padding: var(--padco-choice-pad-y, 10px) var(--padco-choice-pad-x, 12px);
}
#padco-booking-root .padco-live-basket article > div:first-child span,
#padco-booking-root .padco-live-basket article > div:first-child small {
  display: block;
  margin-top: 3px;
}
#padco-booking-root .padco-live-basket article > div:last-child {
  display: grid;
  justify-items: end;
  gap: 6px;
}
#padco-booking-root .padco-live-basket article button {
  border: 0;
  background: transparent;
  text-decoration: underline;
  cursor: pointer;
}
#padco-booking-root .padco-live-basket-total {
  justify-content: space-between;
  padding: 16px 4px 4px;
  font-size: 18px;
}
#padco-booking-root .padco-live-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--padco-inner-gap, 10px);
  margin-bottom: var(--padco-inner-gap, 10px);
}
#padco-booking-root .padco-live-saved-customer {
  display: grid;
  gap: 3px;
  padding: var(--padco-choice-pad-y, 10px) var(--padco-choice-pad-x, 12px);
  border-radius: 12px;
  background: rgba(17,17,17,.04);
  margin-bottom: 12px;
}
#padco-booking-root .padco-live-notice,
#padco-booking-root .padco-live-error-inline,
#padco-booking-root .padco-live-loading,
#padco-booking-root .padco-live-error {
  padding: var(--padco-choice-pad-y, 10px) var(--padco-choice-pad-x, 12px);
  border-radius: 12px;
  margin-bottom: 14px;
}
#padco-booking-root .padco-live-notice { background: rgba(63,94,67,.1); }
#padco-booking-root .padco-live-error-inline,
#padco-booking-root .padco-live-error { background: #fff1f1; }
#padco-booking-root .padco-live-loading { display: grid; gap: 4px; background: rgba(17,17,17,.04); }
#padco-booking-root .padco-live-confirmation {
  max-width: 680px;
  margin: 40px auto;
  padding: var(--padco-confirmation-padding, 26px);
  text-align: center;
  border: 1px solid rgba(17,17,17,.12);
  border-radius: var(--padco-radius, 22px);
  background: #fff;
}
#padco-booking-root .padco-live-confirmation-icon {
  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  margin: 0 auto 14px;
  border-radius: 999px;
  background: var(--padco-green, #3f5e43);
  color: #fff;
  font-size: 28px;
  font-weight: 800;
}
#padco-booking-root .padco-live-confirmation article {
  display: grid;
  gap: 3px;
  margin: 8px 0;
  padding: 12px;
  border-radius: 10px;
  background: rgba(17,17,17,.04);
}
@media (max-width: 760px) {
  #padco-booking-root .padco-live-schedule-grid,
  #padco-booking-root .padco-live-form-grid {
    grid-template-columns: 1fr;
  }
  #padco-booking-root .padco-live-section { padding: 16px; }
  #padco-booking-root .padco-live-header { align-items: flex-start; }
  #padco-booking-root .padco-live-basket article { align-items: flex-start; }
}

#padco-booking-root .padco-live-custom-fields {
  border: 0;
  margin: 18px 0;
  padding: 0;
}
#padco-booking-root .padco-live-custom-fields legend {
  padding: 0;
  margin-bottom: 4px;
  font-weight: 800;
  font-size: 16px;
}
#padco-booking-root .padco-live-custom-fields > p {
  margin: 0 0 12px;
  opacity: .72;
}
#padco-booking-root .padco-live-custom-fields label {
  display: grid;
  gap: 6px;
}
#padco-booking-root .padco-live-custom-fields small {
  opacity: .7;
  font-weight: 400;
}
#padco-booking-root .padco-live-custom-fields .padco-live-checkbox {
  align-content: start;
}
#padco-booking-root .padco-live-custom-fields .padco-live-checkbox > span {
  display: flex;
  align-items: center;
  gap: 8px;
}

.padco-live-payment-note {
  display: grid;
  gap: 4px;
  margin: 14px 0;
  padding: var(--padco-choice-pad-y, 10px) var(--padco-choice-pad-x, 12px);
  border-radius: 14px;
  background: var(--padco-soft-background, #f6f6f6);
}

.padco-live-payment-note span,
.padco-live-confirmation-payment {
  color: rgba(17, 17, 17, 0.68);
}

#padco-booking-root .padco-live-payment-choice {
  display: grid;
  gap: 10px;
  margin: 18px 0;
  padding: 0;
  border: 0;
}
#padco-booking-root .padco-live-payment-choice legend {
  margin-bottom: 2px;
  padding: 0;
  font-size: 16px;
  font-weight: 800;
}
#padco-booking-root .padco-live-payment-choice-card {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  margin: 0;
  padding: var(--padco-choice-pad-y, 10px) var(--padco-choice-pad-x, 12px);
  border: 1px solid rgba(17,17,17,.14);
  border-radius: 14px;
  background: #fff;
  cursor: pointer;
}
#padco-booking-root .padco-live-payment-choice-card input {
  width: auto;
  margin: 3px 0 0;
  flex: 0 0 auto;
}
#padco-booking-root .padco-live-payment-choice-card > span {
  display: grid;
  gap: 3px;
}
#padco-booking-root .padco-live-payment-choice-card small {
  color: rgba(17,17,17,.65);
  font-weight: 400;
}
#padco-booking-root .padco-live-payment-choice-card.is-selected {
  border-color: var(--padco-green, #3f5e43);
  box-shadow: 0 0 0 1px var(--padco-green, #3f5e43);
  background: var(--padco-primary-soft, #eef2ef);
}
#padco-booking-root .padco-live-payment-choice-card.is-disabled {
  opacity: .55;
  cursor: not-allowed;
}
#padco-booking-root .padco-live-payment-choice-billing {
  margin: 0 0 4px 34px;
  padding: 2px 0 2px 14px;
  border-left: 2px solid rgba(17,17,17,.1);
}
#padco-booking-root .padco-live-payment-choice-billing[hidden] {
  display: none !important;
}

/* Booking lifecycle modes: date ranges and recurring bookings */
#padco-booking-root .padco-live-range-panel {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  align-items: end;
  max-width: 760px;
}
#padco-booking-root .padco-live-range-panel label,
#padco-booking-root .padco-live-recurrence label {
  display: grid;
  gap: 6px;
  font-weight: 650;
}
#padco-booking-root .padco-live-range-panel input,
#padco-booking-root .padco-live-recurrence input,
#padco-booking-root .padco-live-recurrence select {
  width: 100%;
  box-sizing: border-box;
}
#padco-booking-root .padco-live-range-summary {
  grid-column: 1 / -1;
  margin: 0;
  padding: 12px 14px;
  border-radius: 12px;
  background: rgba(17,17,17,.045);
}
#padco-booking-root .padco-live-range-panel .padco-live-add {
  justify-self: start;
}
#padco-booking-root .padco-live-recurrence {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 2px 0;
  padding: 13px;
  border: 1px solid rgba(17,17,17,.12);
  border-radius: 12px;
}
#padco-booking-root .padco-live-recurrence legend {
  padding: 0 5px;
  font-weight: 800;
}
#padco-booking-root .padco-live-recurrence label span {
  font-size: 12px;
  opacity: .68;
}
@media (max-width: 760px) {
  #padco-booking-root .padco-live-range-panel,
  #padco-booking-root .padco-live-recurrence {
    grid-template-columns: 1fr;
  }
}

/* Appearance editor v2 public overrides */
#padco-booking-root {
  background: var(--padco-page-bg, #efefef);
  color: var(--padco-black, #111111);
  font-family: var(--padco-body-font, Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
}
#padco-booking-root .padco-live-shell {
  width: min(100%, var(--padco-content-width, 1180px));
}
#padco-booking-root .padco-live-section {
  margin: var(--padco-section-gap, 18px) 0;
  border-color: var(--padco-line, #e5e5e5);
  background: var(--padco-white, #ffffff);
  box-shadow: var(--padco-shadow, 0 18px 50px rgba(0,0,0,.08));
}
#padco-booking-root .padco-live-header h1,
#padco-booking-root .padco-live-section h2,
#padco-booking-root .padco-live-section h3,
#padco-booking-root .padco-live-confirmation h1 {
  font-family: var(--padco-heading-font, Georgia, "Times New Roman", serif);
}
#padco-booking-root .padco-live-choice,
#padco-booking-root .padco-live-service,
#padco-booking-root .padco-live-option,
#padco-booking-root .padco-live-slots button,
#padco-booking-root .padco-live-staff-mode button,
#padco-booking-root .padco-live-calendar,
#padco-booking-root .padco-live-slot-panel,
#padco-booking-root .padco-live-basket article,
#padco-booking-root .padco-live-saved-customer,
#padco-booking-root .padco-live-confirmation article,
#padco-booking-root .padco-live-checkout-panel input,
#padco-booking-root .padco-live-checkout-panel textarea,
#padco-booking-root .padco-live-checkout-panel select,
#padco-booking-root .padco-live-slot-panel input,
#padco-booking-root .padco-live-slot-panel select,
#padco-booking-root .padco-live-add-resource input {
  border-radius: var(--padco-input-radius, 12px);
}
#padco-booking-root .padco-primary,
#padco-booking-root .padco-checkout,
#padco-booking-root .padco-access-primary,
#padco-booking-root .padco-access-secondary,
#padco-booking-root .padco-basket-button,
#padco-booking-root .padco-live-add-resource button {
  border-radius: var(--padco-button-radius, 12px);
}
#padco-booking-root .padco-booking-access,
#padco-booking-root .padco-live-confirmation {
  border-color: var(--padco-line, #e5e5e5);
  background: var(--padco-white, #ffffff);
  box-shadow: var(--padco-shadow, 0 18px 50px rgba(0,0,0,.08));
}


/* Checkout policy consent */
.padco-live-consent { display: grid; gap: 8px; padding: 14px 16px; border: 1px solid rgba(17,17,17,.12); border-radius: var(--padco-card-radius, 18px); background: var(--padco-soft-bg, #f6f6f6); }
.padco-live-consent > label { display: flex; align-items: flex-start; gap: 10px; font-weight: 700; }
.padco-live-consent input[type=checkbox] { margin-top: 3px; flex: 0 0 auto; }
.padco-live-consent a, .padco-live-privacy-link a { text-decoration: underline; text-underline-offset: 2px; }
.padco-live-privacy-link { margin: 0; font-size: .9rem; opacity: .78; }

/* Public booking extras */
#padco-booking-root .padco-live-addons {
  display: grid;
  gap: 8px;
  margin: 8px 0 2px;
  padding: 13px;
  border: 1px solid rgba(17,17,17,.12);
  border-radius: var(--padco-input-radius, 12px);
}
#padco-booking-root .padco-live-addons legend {
  padding: 0 5px;
  font-weight: 800;
}
#padco-booking-root .padco-live-addon-choice {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 10px;
  align-items: start;
  padding: 9px 0;
  border-bottom: 1px solid rgba(17,17,17,.08);
}
#padco-booking-root .padco-live-addon-choice:last-child { border-bottom: 0; }
#padco-booking-root .padco-live-addon-choice input { margin-top: 3px; }
#padco-booking-root .padco-live-addon-choice span { display: grid; gap: 2px; }
#padco-booking-root .padco-live-addon-choice small { opacity: .7; }
#padco-booking-root .padco-live-addon-choice em { font-style: normal; white-space: nowrap; font-weight: 750; }
@media (max-width: 620px) {
  #padco-booking-root .padco-live-addon-choice { grid-template-columns: auto minmax(0, 1fr); }
  #padco-booking-root .padco-live-addon-choice em { grid-column: 2; }
}


/* Public booking container fit v0.24.0-dev.76
   Stay centred, respect the shortcode/Beaver Builder parent, and use the chosen maximum width. */
#padco-booking-root {
  position: relative;
  left: auto;
  width: 100%;
  max-width: var(--padco-content-width, 680px);
  margin-inline: auto;
  transform: none;
  container-name: padco-booking;
  container-type: inline-size;
  background: var(--padco-page-bg, #ffffff);
}

#padco-booking-root .padco-live-shell {
  width: 100%;
  max-width: none;
  padding: 8px 0 56px;
}

#padco-booking-root .padco-live-header {
  padding: 0 2px;
  margin-bottom: 18px;
}

#padco-booking-root .padco-live-section {
  border-color: rgba(17, 17, 17, 0.075);
  box-shadow: var(--padco-shadow, 0 18px 50px rgba(0, 0, 0, 0.04));
}

#padco-booking-root .padco-live-calendar,
#padco-booking-root .padco-live-slot-panel,
#padco-booking-root .padco-live-choice,
#padco-booking-root .padco-live-service,
#padco-booking-root .padco-live-option,
#padco-booking-root .padco-live-basket article {
  border-color: rgba(17, 17, 17, 0.10);
}

@media (max-width: 760px) {
  #padco-booking-root .padco-live-shell {
    padding-bottom: 40px;
  }
}

/* Modular calendar-forward booking journey v0.24.0-dev.4 */
#padco-booking-root .padco-live-modular{width:min(100%,var(--padco-content-width,760px));margin:0 auto;padding-bottom:64px}
#padco-booking-root .padco-live-modular .padco-live-section{margin:var(--padco-section-gap,12px) 0;padding:var(--padco-section-padding,16px)}
#padco-booking-root .padco-live-module-header{margin:4px 0 14px}
#padco-booking-root .padco-live-module-calendar{padding:var(--padco-section-padding,16px)}
#padco-booking-root .padco-live-calendar-forward{max-width:620px;margin:0 auto;border:0;padding:0}
#padco-booking-root .padco-live-calendar-forward .padco-live-day{min-height:var(--padco-day-min-height,38px);background:transparent}
#padco-booking-root .padco-live-calendar-forward .padco-live-day:hover:not(:disabled){background:var(--padco-soft,#f6f6f6)}
#padco-booking-root .padco-live-calendar-forward .padco-live-day.is-selected{background:var(--padco-black,#111);color:#fff}
#padco-booking-root .padco-live-resource-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
#padco-booking-root .padco-live-resource-item{position:relative}
#padco-booking-root .padco-live-resource-item .padco-live-choice{width:100%;height:100%;padding-right:38px}
#padco-booking-root .padco-live-resource-remove{position:absolute;top:7px;right:7px;width:26px;height:26px;padding:0;border:0;border-radius:999px;background:rgba(17,17,17,.06);color:var(--padco-black,#111);font-size:20px;line-height:1;cursor:pointer}
#padco-booking-root .padco-live-resource-remove:hover{background:rgba(126,102,119,.16);color:var(--padco-mauve,#7e6677)}
#padco-booking-root .padco-live-module-note{margin:9px 0 0;font-size:.82rem;opacity:.62}
#padco-booking-root .padco-live-service-grid{display:flex;flex-wrap:wrap;gap:8px}
#padco-booking-root .padco-live-service{flex:1 1 120px;min-height:var(--padco-service-min-height,52px)}
#padco-booking-root .padco-live-option-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
#padco-booking-root .padco-live-option{flex:0 1 auto;min-width:130px;padding:10px 12px;border-radius:999px}
#padco-booking-root .padco-live-staff-pills{display:flex;gap:8px;flex-wrap:wrap}
#padco-booking-root .padco-live-staff-pills button,#padco-booking-root .padco-live-staff-choices button{border-radius:999px;padding:10px 14px}
#padco-booking-root .padco-live-staff-choices{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
#padco-booking-root .padco-live-staff-choices button{border:1px solid rgba(17,17,17,.16);background:#fff;cursor:pointer}
#padco-booking-root .padco-live-staff-choices button.is-selected{background:var(--padco-black,#111);border-color:var(--padco-black,#111);color:#fff}
#padco-booking-root .padco-live-time-panel{display:grid;gap:12px}
#padco-booking-root .padco-live-time-panel>label{display:grid;gap:6px;font-weight:650}
#padco-booking-root .padco-live-time-panel select,#padco-booking-root .padco-live-time-panel input{width:100%;box-sizing:border-box;border:1px solid rgba(17,17,17,.18);border-radius:var(--padco-input-radius,12px);padding:10px 12px;background:#fff;font:inherit}
#padco-booking-root .padco-live-time-pills{display:flex;flex-wrap:wrap;gap:8px}
#padco-booking-root .padco-live-time-pills button{min-width:76px;border-radius:999px;padding:9px 13px;text-align:center}
#padco-booking-root .padco-live-time-pills button.is-selected{background:var(--padco-black,#111);border-color:var(--padco-black,#111);color:#fff;box-shadow:none}
#padco-booking-root .padco-live-range-compact{display:grid;grid-template-columns:1fr 1fr;gap:12px}
#padco-booking-root .padco-live-range-compact label{display:grid;gap:6px;font-weight:650}
#padco-booking-root .padco-live-range-compact input{width:100%;border:1px solid rgba(17,17,17,.18);border-radius:var(--padco-input-radius,12px);padding:10px 12px;font:inherit}
#padco-booking-root .padco-live-basket-actions-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}
#padco-booking-root .padco-live-clear-booking{margin-top:20px;padding:13px 15px;border:1px solid rgba(17,17,17,.16);border-radius:var(--padco-button-radius,12px);background:#fff;color:var(--padco-black,#111);cursor:pointer;font-weight:750}
#padco-booking-root .padco-live-basket-actions-row .padco-checkout{margin-top:20px}
#padco-booking-root .padco-live-section-heading>div>span:empty{display:none}
@media(max-width:760px){#padco-booking-root .padco-live-modular .padco-live-section{padding:16px}#padco-booking-root .padco-live-calendar-forward .padco-live-day{min-height:40px}#padco-booking-root .padco-live-range-compact{grid-template-columns:1fr}#padco-booking-root .padco-live-basket-actions-row{grid-template-columns:1fr}#padco-booking-root .padco-live-clear-booking{margin-top:0}}

/* Independent module visibility / selection action v0.24.0-dev.5 */
#padco-booking-root .padco-live-option-controls{display:grid;gap:12px;margin-top:14px;padding-top:14px;border-top:1px solid var(--padco-border,#e5e5e5)}
#padco-booking-root .padco-live-inline-control{display:grid;gap:6px;max-width:220px;font-weight:700}
#padco-booking-root .padco-live-inline-control input{min-height:42px;padding:8px 10px;border:1px solid var(--padco-border,#e5e5e5);border-radius:var(--padco-input-radius,12px);background:#fff}
#padco-booking-root .padco-live-selection-action{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:12px;margin-top:var(--padco-section-spacing,18px);padding:14px 0}
#padco-booking-root .padco-live-selection-action p{margin:0 auto 0 0}
#padco-booking-root .padco-live-selection-action .padco-live-add{min-width:150px}
@media(max-width:640px){#padco-booking-root .padco-live-selection-action{align-items:stretch}#padco-booking-root .padco-live-selection-action .padco-live-add{width:100%}}

/* Adaptive public-control contrast and field polish v0.24.0-dev.12 */
#padco-booking-root .padco-live-section-heading > div > span,
#padco-booking-root .padco-live-confirmation-icon {
  background: var(--padco-green, #3f5e43);
  color: var(--padco-on-primary, #ffffff);
}

#padco-booking-root .padco-primary,
#padco-booking-root .padco-checkout,
#padco-booking-root .padco-basket-button,
#padco-booking-root .padco-live-add-resource button {
  border: 1px solid var(--padco-green, #3f5e43);
  background: var(--padco-green, #3f5e43);
  color: var(--padco-on-primary, #ffffff);
  font-weight: 800;
  box-shadow: none;
}

#padco-booking-root .padco-basket-button span {
  background: var(--padco-mauve, #7e6677);
  color: var(--padco-on-accent, #ffffff);
}

#padco-booking-root .padco-live-add-resource button {
  flex: 0 0 auto;
  min-height: var(--padco-day-min-height, 38px);
  padding: 10px 15px;
  cursor: pointer;
  white-space: nowrap;
}

#padco-booking-root .padco-live-choice.is-selected,
#padco-booking-root .padco-live-service.is-selected {
  border-color: var(--padco-green, #3f5e43);
  background: var(--padco-primary-soft, #eef2ef);
  color: var(--padco-on-primary-soft, #111111);
  box-shadow: inset 0 0 0 1px var(--padco-green, #3f5e43);
}

#padco-booking-root .padco-live-option.is-selected,
#padco-booking-root .padco-live-slots button.is-selected,
#padco-booking-root .padco-live-staff-mode button.is-selected,
#padco-booking-root .padco-live-staff-choices button.is-selected,
#padco-booking-root .padco-live-time-pills button.is-selected,
#padco-booking-root .padco-live-calendar-forward .padco-live-day.is-selected,
#padco-booking-root .padco-live-day.is-selected {
  border-color: var(--padco-green, #3f5e43);
  background: var(--padco-green, #3f5e43);
  color: var(--padco-on-primary, #ffffff);
  box-shadow: none;
}

#padco-booking-root .padco-live-choice.is-selected strong,
#padco-booking-root .padco-live-choice.is-selected span,
#padco-booking-root .padco-live-service.is-selected strong,
#padco-booking-root .padco-live-service.is-selected span,
#padco-booking-root .padco-live-option.is-selected strong,
#padco-booking-root .padco-live-option.is-selected span {
  color: inherit;
}

#padco-booking-root .padco-live-calendar-forward .padco-live-day:hover:not(:disabled),
#padco-booking-root .padco-live-day:hover:not(:disabled) {
  background: var(--padco-primary-soft, #eef2ef);
  color: var(--padco-on-primary-soft, #111111);
}

#padco-booking-root .padco-live-calendar-forward .padco-live-day.is-selected:hover:not(:disabled),
#padco-booking-root .padco-live-day.is-selected:hover:not(:disabled) {
  background: var(--padco-green, #3f5e43);
  color: var(--padco-on-primary, #ffffff);
}

#padco-booking-root .padco-live-calendar-head button {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  padding: 0;
  border: 1px solid var(--padco-line, #e5e5e5);
  border-radius: 999px;
  background: var(--padco-white, #ffffff);
  color: var(--padco-black, #111111);
  line-height: 1;
}

#padco-booking-root .padco-live-calendar-head button:hover {
  border-color: var(--padco-green, #3f5e43);
  background: var(--padco-primary-soft, #eef2ef);
  color: var(--padco-on-primary-soft, #111111);
}

#padco-booking-root input[type="text"],
#padco-booking-root input[type="email"],
#padco-booking-root input[type="tel"],
#padco-booking-root input[type="number"],
#padco-booking-root input[type="date"],
#padco-booking-root input[type="time"],
#padco-booking-root select,
#padco-booking-root textarea {
  min-height: var(--padco-day-min-height, 38px);
  border: 1px solid var(--padco-line, #e5e5e5);
  background: var(--padco-white, #ffffff);
  color: var(--padco-black, #111111);
  box-shadow: none;
}

#padco-booking-root textarea {
  min-height: 110px;
}

#padco-booking-root input::placeholder,
#padco-booking-root textarea::placeholder {
  color: var(--padco-black, #111111);
  opacity: .45;
}

#padco-booking-root button:focus-visible,
#padco-booking-root input:focus-visible,
#padco-booking-root select:focus-visible,
#padco-booking-root textarea:focus-visible {
  outline: 3px solid var(--padco-primary-soft, #eef2ef);
  outline-offset: 2px;
  border-color: var(--padco-green, #3f5e43);
}

#padco-booking-root .padco-primary:disabled,
#padco-booking-root .padco-live-add:disabled,
#padco-booking-root .padco-live-confirm:disabled {
  opacity: .42;
  cursor: not-allowed;
}

/* Modular location + centring + option cleanup v0.24.0-dev.13 */

/* Let the shortcode block use the available page width, then centre the configured
   booking width inside it. This avoids wide booking forms overflowing to the right
   of constrained block-theme content columns. */
body .wp-block-post-content:has(#padco-booking-root),
body .entry-content:has(#padco-booking-root) {
  max-width: none !important;
  width: 100% !important;
}
body .wp-block-shortcode:has(#padco-booking-root) {
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
}
.padco-booking-page-shell {
  width: min(var(--padco-content-width, 760px), calc(100vw - 32px));
  max-width: none;
  margin-left: auto;
  margin-right: auto;
}
.padco-booking-page-shell > #padco-booking-root,
.padco-booking-page-shell > #padco-customer-account-root[data-padco-account-mode="booking-accordion"] {
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}
#padco-booking-root {
  position: static;
  left: auto;
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  transform: none;
}
#padco-booking-root .padco-live-shell.padco-live-modular {
  width: min(var(--padco-content-width, 760px), calc(100vw - 32px));
  max-width: none;
  margin-left: auto;
  margin-right: auto;
}

/* Location is now its own optional module rather than being embedded in Time. */
#padco-booking-root .padco-live-location-panel {
  display: grid;
  gap: 8px;
}
#padco-booking-root .padco-live-location-panel label {
  display: grid;
  gap: 6px;
  font-weight: 650;
}
#padco-booking-root .padco-live-location-panel select {
  width: 100%;
  box-sizing: border-box;
  min-height: var(--padco-day-min-height, 38px);
  border: 1px solid var(--padco-line, #e5e5e5);
  border-radius: var(--padco-input-radius, 12px);
  padding: 10px 12px;
  background: var(--padco-white, #ffffff);
  color: var(--padco-black, #111111);
  font: inherit;
}

/* Service options should read as proper choice tiles, not isolated pills. */
#padco-booking-root .padco-live-option-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}
#padco-booking-root .padco-live-option {
  flex: 1 1 160px;
  max-width: 280px;
  min-width: 0;
  min-height: 58px;
  padding: 11px 13px;
  border-radius: var(--padco-input-radius, 12px);
}
#padco-booking-root .padco-live-option.is-selected {
  border-color: var(--padco-green, #3f5e43);
  background: var(--padco-primary-soft, #eef2ef);
  color: var(--padco-on-primary-soft, #111111);
  box-shadow: inset 0 0 0 1px var(--padco-green, #3f5e43);
}

@media (max-width: 760px) {
  #padco-booking-root .padco-live-shell.padco-live-modular {
    width: calc(100vw - 24px);
  }
  #padco-booking-root .padco-live-option {
    max-width: none;
  }
}


/* Compact public choices v0.24.0-dev.14 */
#padco-booking-root .padco-live-service-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 190px));
  justify-content: start;
  gap: 8px;
}
#padco-booking-root .padco-live-service {
  min-height: 48px;
  padding: 9px 12px;
  flex: none;
}
#padco-booking-root .padco-live-option-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(135px, 190px));
  justify-content: start;
  gap: 8px;
}
#padco-booking-root .padco-live-option {
  min-height: 46px;
  max-width: none;
  padding: 8px 11px;
  border-radius: var(--padco-input-radius, 12px);
}
#padco-booking-root .padco-live-staff-pills button,
#padco-booking-root .padco-live-staff-choices button {
  min-height: 38px;
  padding: 7px 11px;
  font-size: .95rem;
  line-height: 1.2;
}
#padco-booking-root .padco-live-time-pills button {
  min-width: 64px;
  min-height: 36px;
  padding: 7px 10px;
}
@media (max-width: 520px) {
  #padco-booking-root .padco-live-service-grid,
  #padco-booking-root .padco-live-option-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Compact customer-first public booking journey v0.24.0-dev.52 */
#padco-booking-root .padco-live-modular {
  width: min(100%, var(--padco-content-width, 680px));
  padding-bottom: 44px;
}
#padco-booking-root .padco-live-modular .padco-live-section {
  margin: var(--padco-section-gap, 12px) 0;
  padding: 14px 16px;
}
#padco-booking-root .padco-live-section-heading {
  margin-bottom: 12px;
}
#padco-booking-root .padco-live-section-heading > div {
  gap: 10px;
}
#padco-booking-root .padco-live-section-heading > div > span {
  flex-basis: 28px;
  width: 28px;
  height: 28px;
  font-size: .9rem;
}
#padco-booking-root .padco-live-section-heading h2 {
  margin: 0;
  font-size: clamp(1.3rem, 2.4vw, 1.65rem);
  line-height: 1.15;
}
#padco-booking-root .padco-live-section-heading p {
  margin-top: 3px;
  font-size: .94rem;
  line-height: 1.35;
}
#padco-booking-root .padco-live-category > h3 {
  margin: 0 0 7px;
  font-size: 1rem;
  line-height: 1.25;
}
#padco-booking-root .padco-live-category + .padco-live-category {
  margin-top: 14px;
}
#padco-booking-root .padco-live-service-grid,
#padco-booking-root .padco-live-option-grid {
  gap: 7px;
}
#padco-booking-root .padco-live-service {
  min-height: var(--padco-day-min-height, 38px);
  padding: 8px 10px;
}
#padco-booking-root .padco-live-service strong,
#padco-booking-root .padco-live-option strong {
  font-size: .98rem;
  line-height: 1.2;
}
#padco-booking-root .padco-live-option-stage {
  margin-top: 12px;
  padding: 11px 12px 12px;
  border: 1px solid var(--padco-line, #e5e5e5);
  border-radius: var(--padco-input-radius, 12px);
  background: var(--padco-soft, #f6f6f6);
}
#padco-booking-root .padco-live-option-stage-heading {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 5px 9px;
}
#padco-booking-root .padco-live-option-stage-heading > strong {
  font-size: .95rem;
}
#padco-booking-root .padco-live-option-stage-heading > span {
  font-size: .84rem;
  opacity: .66;
}
#padco-booking-root .padco-live-option-stage .padco-live-option-grid {
  margin-top: 8px;
}
#padco-booking-root .padco-live-option {
  min-height: 42px;
  padding: 7px 10px;
}
#padco-booking-root .padco-live-option-controls {
  gap: 9px;
  margin-top: 10px;
  padding-top: 10px;
}
#padco-booking-root .padco-live-calendar-forward {
  max-width: 540px;
}
#padco-booking-root .padco-live-calendar-forward .padco-live-day {
  min-height: 40px;
}
#padco-booking-root .padco-live-calendar-head {
  margin-bottom: 8px;
}
#padco-booking-root .padco-live-staff-pills button,
#padco-booking-root .padco-live-staff-choices button {
  min-height: 36px;
  padding: 7px 11px;
}
#padco-booking-root .padco-live-time-panel {
  gap: 9px;
}
#padco-booking-root .padco-live-time-pills {
  gap: 7px;
}
#padco-booking-root .padco-live-time-pills button {
  min-width: 62px;
  min-height: 34px;
  padding: 6px 10px;
}
#padco-booking-root .padco-live-availability-empty {
  margin: 0;
  padding: 9px 11px;
  border: 1px solid var(--padco-line, #e5e5e5);
  border-radius: var(--padco-input-radius, 12px);
  background: var(--padco-soft, #f6f6f6);
  font-size: .92rem;
  line-height: 1.4;
}
#padco-booking-root .padco-live-selection-action {
  margin-top: 8px;
  padding: 4px 0 8px;
}
#padco-booking-root .padco-live-selection-action .padco-live-add {
  width: auto;
  min-width: 132px;
  padding: 10px 15px;
}
@media (max-width: 640px) {
  #padco-booking-root .padco-live-modular .padco-live-section {
    padding: 14px;
  }
  #padco-booking-root .padco-live-section-heading h2 {
    font-size: 1.35rem;
  }
  #padco-booking-root .padco-live-service,
  #padco-booking-root .padco-live-option,
  #padco-booking-root .padco-live-staff-pills button,
  #padco-booking-root .padco-live-staff-choices button,
  #padco-booking-root .padco-live-time-pills button {
    min-height: var(--padco-day-min-height, 38px);
  }
  #padco-booking-root .padco-live-selection-action .padco-live-add {
    width: 100%;
  }
}

/* Public choice polish v0.24.0-dev.53 */
#padco-booking-root .padco-live-location-choices {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
#padco-booking-root .padco-live-location-choices button,
#padco-booking-root .padco-live-location-summary {
  min-height: 38px;
  border: 1px solid var(--padco-line, #e5e5e5);
  border-radius: var(--padco-input-radius, 12px);
  background: var(--padco-white, #ffffff);
  color: var(--padco-black, #111111);
  padding: 8px 12px;
  font: inherit;
  font-weight: 650;
}
#padco-booking-root .padco-live-location-choices button {
  cursor: pointer;
}
#padco-booking-root .padco-live-location-choices button.is-selected,
#padco-booking-root .padco-live-location-summary {
  border-color: var(--padco-green, #3f5e43);
  background: var(--padco-primary-soft, #eef2ef);
  box-shadow: inset 0 0 0 1px var(--padco-green, #3f5e43);
}
#padco-booking-root .padco-live-location-summary {
  display: inline-flex;
  width: auto;
  align-items: center;
}
@media (max-width: 520px) {
  #padco-booking-root .padco-live-location-choices button {
    flex: 1 1 140px;
    min-height: var(--padco-day-min-height, 38px);
  }
}

/* dev.54: staged public catalogue: category -> service -> option. */
#padco-booking-root .padco-live-catalogue {
  display: grid;
  gap: 12px;
}
#padco-booking-root .padco-live-catalogue-stage {
  display: grid;
  gap: 8px;
}
#padco-booking-root .padco-live-catalogue-stage + .padco-live-catalogue-stage {
  margin-top: 2px;
  padding-top: 12px;
  border-top: 1px solid rgba(17,17,17,.10);
}
#padco-booking-root .padco-live-catalogue-stage-heading {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 5px 9px;
}
#padco-booking-root .padco-live-catalogue-stage-heading > strong {
  font-size: .95rem;
}
#padco-booking-root .padco-live-catalogue-stage-heading > span {
  font-size: .84rem;
  opacity: .66;
}
#padco-booking-root .padco-live-category-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
#padco-booking-root .padco-live-category-choice {
  flex: 0 1 auto;
  min-width: 120px;
  min-height: var(--padco-day-min-height, 38px);
  padding: 8px 12px;
  border: 1px solid rgba(17,17,17,.16);
  border-radius: var(--padco-input-radius, 12px);
  background: #fff;
  text-align: left;
  cursor: pointer;
  font: inherit;
}
#padco-booking-root .padco-live-category-choice strong,
#padco-booking-root .padco-live-category-choice span {
  display: block;
}
#padco-booking-root .padco-live-category-choice strong {
  font-size: .98rem;
  line-height: 1.2;
}
#padco-booking-root .padco-live-category-choice span {
  margin-top: 3px;
  font-size: .8rem;
  opacity: .68;
}
#padco-booking-root .padco-live-category-choice.is-selected {
  border-color: var(--padco-green, #3f5e43);
  background: var(--padco-soft, #f6f6f6);
  box-shadow: inset 0 0 0 1px var(--padco-green, #3f5e43);
}
#padco-booking-root .padco-live-service-stage .padco-live-option-stage {
  margin-top: 4px;
}
@media (max-width: 520px) {
  #padco-booking-root .padco-live-category-choice,
  #padco-booking-root .padco-live-service {
    flex: 1 1 calc(50% - 7px);
    min-width: 0;
  }
}


/* Area 7: resource selection guidance */
#padco-booking-root .padco-live-resource-reminder {
  margin: 0 0 8px;
  font-weight: 600;
}

#padco-booking-root .padco-live-resource-count {
  margin: 0 0 12px;
  opacity: .7;
  font-size: .92em;
}

/* Area 7: partial resource confirmation */
#padco-booking-root .padco-live-modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(0, 0, 0, .42);
}

#padco-booking-root .padco-live-modal {
  position: relative;
  box-sizing: border-box;
  width: min(100%, 520px);
  padding: 24px;
  border-radius: 18px;
  background: #fff;
  color: #111;
  box-shadow: 0 24px 70px rgba(0, 0, 0, .2);
}

#padco-booking-root .padco-live-modal h2 {
  margin: 0 40px 10px 0;
}

#padco-booking-root .padco-live-modal p {
  margin: 0 0 12px;
}

#padco-booking-root .padco-live-modal-close {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 34px;
  height: 34px;
  padding: 0;
  border: 1px solid #ddd;
  border-radius: 999px;
  background: #fff;
  color: #111;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
}

#padco-booking-root .padco-live-confirm-check {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 18px 0;
}

#padco-booking-root .padco-live-confirm-check input {
  margin-top: 3px;
}

#padco-booking-root .padco-live-modal-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

#padco-booking-root .padco-live-modal-actions button {
  min-height: 40px;
  padding: 9px 14px;
  border: 1px solid #dcdcde;
  border-radius: 9px;
  background: #fff;
  cursor: pointer;
}

#padco-booking-root .padco-live-modal-actions .padco-live-primary {
  border-color: var(--padco-live-primary, #3f5e43);
  background: var(--padco-live-primary, #3f5e43);
  color: #fff;
}

@media (max-width: 600px) {
  #padco-booking-root .padco-live-modal-actions {
    display: grid;
  }

  #padco-booking-root .padco-live-modal-actions button {
    width: 100%;
  }
}


/* Container-responsive public booking layout v0.24.0-dev.76
   The shortcode follows the Beaver Builder/block column instead of the viewport. */
@container padco-booking (max-width: 720px) {
  #padco-booking-root .padco-live-schedule-grid,
  #padco-booking-root .padco-live-form-grid,
  #padco-booking-root .padco-live-range-panel,
  #padco-booking-root .padco-live-recurrence {
    grid-template-columns: minmax(0, 1fr);
  }

  #padco-booking-root .padco-live-header,
  #padco-booking-root .padco-live-basket article {
    align-items: flex-start;
  }

  #padco-booking-root .padco-live-payment-choice-billing {
    margin-left: 0;
  }
}

@container padco-booking (max-width: 520px) {
  #padco-booking-root .padco-live-resource-grid,
  #padco-booking-root .padco-live-service-grid,
  #padco-booking-root .padco-live-option-grid,
  #padco-booking-root .padco-live-slots {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #padco-booking-root .padco-live-section-heading > div {
    align-items: flex-start;
  }
}

@container padco-booking (max-width: 360px) {
  #padco-booking-root .padco-live-resource-grid,
  #padco-booking-root .padco-live-service-grid,
  #padco-booking-root .padco-live-option-grid,
  #padco-booking-root .padco-live-slots {
    grid-template-columns: minmax(0, 1fr);
  }
}


/* Container-responsive typography v0.24.0-dev.77
   Scale the customer-facing interface from the booking container width, not the viewport.
   Layout density continues to control spacing only. */
#padco-booking-root .padco-live-day,
#padco-booking-root .padco-live-weekdays span,
#padco-booking-root .padco-live-time-pills button,
#padco-booking-root .padco-live-slots button {
  min-width: 0;
  white-space: nowrap;
  overflow-wrap: normal;
  word-break: normal;
}

#padco-booking-root .padco-live-day {
  padding-inline: 2px;
  font-size: .95rem;
  line-height: 1;
}

@container padco-booking (max-width: 560px) {
  #padco-booking-root .padco-live-section-heading h2 {
    font-size: 1.2rem;
  }

  #padco-booking-root .padco-live-section-heading p,
  #padco-booking-root .padco-live-module-note,
  #padco-booking-root .padco-live-resource-count,
  #padco-booking-root .padco-live-availability-empty {
    font-size: .86rem;
  }

  #padco-booking-root .padco-live-category > h3,
  #padco-booking-root .padco-live-catalogue-stage-heading > strong,
  #padco-booking-root .padco-live-option-stage-heading > strong {
    font-size: .92rem;
  }

  #padco-booking-root .padco-live-catalogue-stage-heading > span,
  #padco-booking-root .padco-live-option-stage-heading > span,
  #padco-booking-root .padco-live-choice span,
  #padco-booking-root .padco-live-service span,
  #padco-booking-root .padco-live-option span {
    font-size: .78rem;
  }

  #padco-booking-root .padco-live-choice,
  #padco-booking-root .padco-live-service,
  #padco-booking-root .padco-live-option,
  #padco-booking-root .padco-live-category-choice,
  #padco-booking-root .padco-live-staff-pills button,
  #padco-booking-root .padco-live-staff-choices button,
  #padco-booking-root .padco-live-staff-mode button,
  #padco-booking-root .padco-live-time-pills button,
  #padco-booking-root .padco-live-slots button,
  #padco-booking-root .padco-live-location-choices button,
  #padco-booking-root .padco-live-location-summary {
    font-size: .9rem;
  }

  #padco-booking-root .padco-live-calendar-head {
    gap: 8px;
  }

  #padco-booking-root .padco-live-calendar-head h2,
  #padco-booking-root .padco-live-calendar-head h3,
  #padco-booking-root .padco-live-calendar-head strong {
    font-size: 1.02rem;
    line-height: 1.2;
  }

  #padco-booking-root .padco-live-calendar-head button {
    width: 34px;
    height: 34px;
    font-size: 1.25rem;
  }

  #padco-booking-root .padco-live-weekdays,
  #padco-booking-root .padco-live-days {
    gap: 4px;
  }

  #padco-booking-root .padco-live-weekdays span {
    font-size: .68rem;
  }

  #padco-booking-root .padco-live-day,
  #padco-booking-root .padco-live-calendar-forward .padco-live-day {
    min-height: 34px;
    padding: 0 1px;
    font-size: .88rem;
    line-height: 1;
  }

  #padco-booking-root .padco-live-basket,
  #padco-booking-root .padco-live-checkout-panel,
  #padco-booking-root .padco-live-payment-choice,
  #padco-booking-root .padco-live-confirmation {
    font-size: .92rem;
  }

  #padco-booking-root .padco-live-basket-total {
    font-size: 1rem;
  }
}

@container padco-booking (max-width: 440px) {
  #padco-booking-root .padco-live-modular .padco-live-section {
    padding-inline: 12px;
  }

  #padco-booking-root .padco-live-section-heading > div {
    gap: 8px;
  }

  #padco-booking-root .padco-live-section-heading > div > span {
    flex-basis: 26px;
    width: 26px;
    height: 26px;
    font-size: .8rem;
  }

  #padco-booking-root .padco-live-section-heading h2 {
    font-size: 1.08rem;
  }

  #padco-booking-root .padco-live-section-heading p {
    font-size: .8rem;
  }

  #padco-booking-root .padco-live-calendar,
  #padco-booking-root .padco-live-slot-panel {
    padding: 11px;
  }

  #padco-booking-root .padco-live-calendar-head h2,
  #padco-booking-root .padco-live-calendar-head h3,
  #padco-booking-root .padco-live-calendar-head strong {
    font-size: .94rem;
  }

  #padco-booking-root .padco-live-calendar-head button {
    width: 32px;
    height: 32px;
    font-size: 1.1rem;
  }

  #padco-booking-root .padco-live-weekdays,
  #padco-booking-root .padco-live-days {
    gap: 3px;
  }

  #padco-booking-root .padco-live-weekdays span {
    font-size: .62rem;
    letter-spacing: -.01em;
  }

  #padco-booking-root .padco-live-day,
  #padco-booking-root .padco-live-calendar-forward .padco-live-day {
    min-height: 31px;
    border-radius: 8px;
    font-size: .8rem;
  }

  #padco-booking-root .padco-live-choice,
  #padco-booking-root .padco-live-service,
  #padco-booking-root .padco-live-option,
  #padco-booking-root .padco-live-category-choice,
  #padco-booking-root .padco-live-staff-pills button,
  #padco-booking-root .padco-live-staff-choices button,
  #padco-booking-root .padco-live-staff-mode button,
  #padco-booking-root .padco-live-time-pills button,
  #padco-booking-root .padco-live-slots button {
    font-size: .84rem;
  }

  #padco-booking-root .padco-live-time-pills,
  #padco-booking-root .padco-live-staff-pills,
  #padco-booking-root .padco-live-staff-choices,
  #padco-booking-root .padco-live-category-grid {
    gap: 6px;
  }

  #padco-booking-root .padco-live-time-pills button {
    min-width: 58px;
    padding-inline: 8px;
  }

  #padco-booking-root input[type="text"],
  #padco-booking-root input[type="email"],
  #padco-booking-root input[type="tel"],
  #padco-booking-root input[type="number"],
  #padco-booking-root input[type="date"],
  #padco-booking-root input[type="time"],
  #padco-booking-root select,
  #padco-booking-root textarea {
    font-size: .9rem;
  }

  #padco-booking-root .padco-primary,
  #padco-booking-root .padco-checkout,
  #padco-booking-root .padco-live-add,
  #padco-booking-root .padco-live-confirm,
  #padco-booking-root .padco-live-clear-booking {
    font-size: .92rem;
  }
}

@container padco-booking (max-width: 360px) {
  #padco-booking-root .padco-live-modular .padco-live-section {
    padding-inline: 10px;
  }

  #padco-booking-root .padco-live-section-heading h2 {
    font-size: 1rem;
  }

  #padco-booking-root .padco-live-calendar,
  #padco-booking-root .padco-live-slot-panel {
    padding: 9px;
  }

  #padco-booking-root .padco-live-weekdays,
  #padco-booking-root .padco-live-days {
    gap: 2px;
  }

  #padco-booking-root .padco-live-weekdays span {
    font-size: .58rem;
  }

  #padco-booking-root .padco-live-day,
  #padco-booking-root .padco-live-calendar-forward .padco-live-day {
    min-height: 29px;
    font-size: .76rem;
  }

  #padco-booking-root .padco-live-time-pills button,
  #padco-booking-root .padco-live-slots button {
    font-size: .8rem;
  }
}

/* Narrow-container shell compaction v0.24.0-dev.78
   Keep typography readable while reducing the vertical footprint of stacked modules.
   Density still matters: responsive values derive from the existing density variables. */
@container padco-booking (max-width: 560px) {
  #padco-booking-root .padco-live-modular {
    padding-bottom: 28px;
  }

  #padco-booking-root .padco-live-modular .padco-live-section {
    margin: min(var(--padco-section-gap, 12px), 8px) 0;
    padding: clamp(10px, calc(var(--padco-section-padding, 16px) - 6px), 16px);
  }

  #padco-booking-root .padco-live-section-heading {
    margin-bottom: clamp(6px, calc(var(--padco-inner-gap, 10px) - 2px), 10px);
  }

  #padco-booking-root .padco-live-section-heading > div,
  #padco-booking-root .padco-live-catalogue,
  #padco-booking-root .padco-live-catalogue-stage,
  #padco-booking-root .padco-live-time-panel,
  #padco-booking-root .padco-live-slot-panel,
  #padco-booking-root .padco-live-basket-list,
  #padco-booking-root .padco-live-payment-choice {
    gap: clamp(6px, calc(var(--padco-inner-gap, 10px) - 3px), 11px);
  }

  #padco-booking-root .padco-live-category + .padco-live-category {
    margin-top: 9px;
  }

  #padco-booking-root .padco-live-catalogue-stage + .padco-live-catalogue-stage {
    margin-top: 0;
    padding-top: 8px;
  }

  #padco-booking-root .padco-live-resource-reminder,
  #padco-booking-root .padco-live-resource-count {
    margin-bottom: 7px;
  }

  #padco-booking-root .padco-live-resource-grid,
  #padco-booking-root .padco-live-service-grid,
  #padco-booking-root .padco-live-option-grid,
  #padco-booking-root .padco-live-category-grid,
  #padco-booking-root .padco-live-time-pills,
  #padco-booking-root .padco-live-staff-pills,
  #padco-booking-root .padco-live-staff-choices,
  #padco-booking-root .padco-live-location-choices,
  #padco-booking-root .padco-live-form-grid {
    gap: clamp(6px, calc(var(--padco-inner-gap, 10px) - 3px), 10px);
  }

  #padco-booking-root .padco-live-form-grid {
    margin-bottom: clamp(6px, calc(var(--padco-inner-gap, 10px) - 3px), 10px);
  }

  #padco-booking-root .padco-live-choice,
  #padco-booking-root .padco-live-service,
  #padco-booking-root .padco-live-option,
  #padco-booking-root .padco-live-category-choice,
  #padco-booking-root .padco-live-basket article,
  #padco-booking-root .padco-live-saved-customer,
  #padco-booking-root .padco-live-payment-choice-card,
  #padco-booking-root .padco-live-notice,
  #padco-booking-root .padco-live-error-inline,
  #padco-booking-root .padco-live-loading,
  #padco-booking-root .padco-live-error {
    padding-block: clamp(7px, calc(var(--padco-choice-pad-y, 10px) - 3px), 11px);
    padding-inline: clamp(9px, calc(var(--padco-choice-pad-x, 12px) - 2px), 14px);
  }

  #padco-booking-root .padco-live-service,
  #padco-booking-root .padco-live-option {
    min-height: clamp(36px, calc(var(--padco-service-min-height, 52px) - 14px), 46px);
  }

  #padco-booking-root .padco-live-category-choice,
  #padco-booking-root .padco-live-staff-pills button,
  #padco-booking-root .padco-live-staff-choices button,
  #padco-booking-root .padco-live-staff-mode button,
  #padco-booking-root .padco-live-time-pills button,
  #padco-booking-root .padco-live-location-choices button,
  #padco-booking-root .padco-live-location-summary {
    min-height: 34px;
    padding-block: clamp(6px, calc(var(--padco-control-pad-y, 9px) - 2px), 9px);
    padding-inline: clamp(8px, calc(var(--padco-control-pad-x, 11px) - 2px), 12px);
  }

  #padco-booking-root .padco-live-option-stage,
  #padco-booking-root .padco-live-calendar,
  #padco-booking-root .padco-live-slot-panel,
  #padco-booking-root .padco-live-recurrence,
  #padco-booking-root .padco-live-addons,
  .padco-live-consent {
    padding: clamp(9px, calc(var(--padco-section-padding, 16px) - 6px), 14px);
  }

  #padco-booking-root .padco-live-option-stage {
    margin-top: 8px;
  }

  #padco-booking-root .padco-live-option-stage .padco-live-option-grid {
    margin-top: 6px;
  }

  #padco-booking-root .padco-live-option-controls {
    margin-top: 7px;
    padding-top: 7px;
  }

  #padco-booking-root .padco-live-calendar-head {
    margin-bottom: 6px;
  }

  #padco-booking-root .padco-live-basket-total {
    padding: 9px 2px 2px;
  }

  #padco-booking-root .padco-live-custom-fields,
  #padco-booking-root .padco-live-payment-choice,
  .padco-live-payment-note {
    margin-block: 9px;
  }

  #padco-booking-root .padco-live-custom-fields > p {
    margin-bottom: 8px;
  }

  #padco-booking-root .padco-live-selection-action {
    margin-top: 4px;
    padding: 2px 0 3px;
  }

  #padco-booking-root .padco-live-selection-action .padco-live-add {
    min-width: 116px;
    padding: 8px 13px;
  }

  #padco-booking-root .padco-live-basket-actions-row .padco-checkout {
    margin-top: 8px;
  }

  #padco-booking-root .padco-live-confirmation {
    margin: 20px auto;
    padding: clamp(16px, calc(var(--padco-confirmation-padding, 26px) - 8px), 24px);
  }

  #padco-booking-root .padco-live-confirmation-icon {
    width: 46px;
    height: 46px;
    margin-bottom: 10px;
    font-size: 24px;
  }

  #padco-booking-root .padco-live-confirmation article {
    margin: 6px 0;
    padding: 9px;
  }
}

@container padco-booking (max-width: 440px) {
  #padco-booking-root .padco-live-modular {
    padding-bottom: 20px;
  }

  #padco-booking-root .padco-live-modular .padco-live-section {
    margin: min(var(--padco-section-gap, 12px), 6px) 0;
    padding: clamp(8px, calc(var(--padco-section-padding, 16px) - 8px), 13px);
  }

  #padco-booking-root .padco-live-section-heading {
    margin-bottom: 6px;
  }

  #padco-booking-root .padco-live-section-heading > div {
    gap: 7px;
  }

  #padco-booking-root .padco-live-choice,
  #padco-booking-root .padco-live-service,
  #padco-booking-root .padco-live-option,
  #padco-booking-root .padco-live-category-choice,
  #padco-booking-root .padco-live-basket article,
  #padco-booking-root .padco-live-saved-customer,
  #padco-booking-root .padco-live-payment-choice-card {
    padding-block: clamp(6px, calc(var(--padco-choice-pad-y, 10px) - 4px), 10px);
    padding-inline: clamp(8px, calc(var(--padco-choice-pad-x, 12px) - 3px), 12px);
  }

  #padco-booking-root .padco-live-service,
  #padco-booking-root .padco-live-option {
    min-height: clamp(34px, calc(var(--padco-service-min-height, 52px) - 18px), 42px);
  }

  #padco-booking-root .padco-live-category-choice,
  #padco-booking-root .padco-live-staff-pills button,
  #padco-booking-root .padco-live-staff-choices button,
  #padco-booking-root .padco-live-staff-mode button,
  #padco-booking-root .padco-live-time-pills button,
  #padco-booking-root .padco-live-location-choices button,
  #padco-booking-root .padco-live-location-summary {
    min-height: 32px;
    padding-block: clamp(5px, calc(var(--padco-control-pad-y, 9px) - 3px), 8px);
    padding-inline: clamp(7px, calc(var(--padco-control-pad-x, 11px) - 3px), 10px);
  }

  #padco-booking-root .padco-live-option-stage,
  #padco-booking-root .padco-live-calendar,
  #padco-booking-root .padco-live-slot-panel,
  #padco-booking-root .padco-live-recurrence,
  #padco-booking-root .padco-live-addons,
  .padco-live-consent {
    padding: clamp(7px, calc(var(--padco-section-padding, 16px) - 8px), 11px);
  }

  #padco-booking-root .padco-live-basket-total {
    padding-top: 6px;
  }

  #padco-booking-root .padco-live-custom-fields,
  #padco-booking-root .padco-live-payment-choice,
  .padco-live-payment-note {
    margin-block: 7px;
  }

  #padco-booking-root .padco-live-confirmation {
    margin: 14px auto;
    padding: clamp(13px, calc(var(--padco-confirmation-padding, 26px) - 12px), 20px);
  }
}

@container padco-booking (max-width: 360px) {
  #padco-booking-root .padco-live-modular .padco-live-section {
    margin: min(var(--padco-section-gap, 12px), 5px) 0;
    padding: clamp(7px, calc(var(--padco-section-padding, 16px) - 9px), 11px);
  }

  #padco-booking-root .padco-live-option-stage,
  #padco-booking-root .padco-live-calendar,
  #padco-booking-root .padco-live-slot-panel,
  #padco-booking-root .padco-live-recurrence,
  #padco-booking-root .padco-live-addons,
  .padco-live-consent {
    padding: 7px;
  }

  #padco-booking-root .padco-live-category-choice,
  #padco-booking-root .padco-live-staff-pills button,
  #padco-booking-root .padco-live-staff-choices button,
  #padco-booking-root .padco-live-staff-mode button,
  #padco-booking-root .padco-live-time-pills button {
    min-height: 31px;
  }
}

/* Area 10: resource-card cleanup and narrow-container text refinement. */
#padco-booking-root .padco-live-resource-reminder {
  margin: 0 0 7px;
  font-size: .84rem;
  line-height: 1.35;
  font-weight: 400;
  opacity: .76;
}
#padco-booking-root .padco-live-resource-type-group + .padco-live-resource-type-group { margin-top: 9px; }
#padco-booking-root .padco-live-resource-type-group > h3 {
  margin: 0 0 6px;
  font-size: .78rem;
  line-height: 1.25;
  font-weight: 650;
  opacity: .72;
}

@container padco-booking (max-width: 560px) {
  #padco-booking-root .padco-live-section-heading h2 { font-size: 1.08rem; }
  #padco-booking-root .padco-live-section-heading p,
  #padco-booking-root .padco-live-module-note,
  #padco-booking-root .padco-live-availability-empty { font-size: .8rem; }
  #padco-booking-root .padco-live-resource-reminder { font-size: .78rem; }
  #padco-booking-root .padco-live-choice,
  #padco-booking-root .padco-live-service,
  #padco-booking-root .padco-live-option,
  #padco-booking-root .padco-live-category-choice,
  #padco-booking-root .padco-live-staff-pills button,
  #padco-booking-root .padco-live-staff-choices button,
  #padco-booking-root .padco-live-staff-mode button,
  #padco-booking-root .padco-live-time-pills button,
  #padco-booking-root .padco-live-slots button,
  #padco-booking-root .padco-live-location-choices button,
  #padco-booking-root .padco-live-location-summary { font-size: .84rem; }
  #padco-booking-root .padco-live-choice strong,
  #padco-booking-root .padco-live-service strong,
  #padco-booking-root .padco-live-option strong,
  #padco-booking-root .padco-live-category-choice strong { font-size: .84rem; line-height: 1.2; }
}

@container padco-booking (max-width: 440px) {
  #padco-booking-root .padco-live-section-heading h2 { font-size: 1rem; }
  #padco-booking-root .padco-live-section-heading p { font-size: .76rem; }
  #padco-booking-root .padco-live-resource-reminder { font-size: .74rem; margin-bottom: 5px; }
  #padco-booking-root .padco-live-choice,
  #padco-booking-root .padco-live-service,
  #padco-booking-root .padco-live-option,
  #padco-booking-root .padco-live-category-choice,
  #padco-booking-root .padco-live-staff-pills button,
  #padco-booking-root .padco-live-staff-choices button,
  #padco-booking-root .padco-live-staff-mode button,
  #padco-booking-root .padco-live-time-pills button,
  #padco-booking-root .padco-live-slots button { font-size: .8rem; }
  #padco-booking-root .padco-live-choice strong,
  #padco-booking-root .padco-live-service strong,
  #padco-booking-root .padco-live-option strong,
  #padco-booking-root .padco-live-category-choice strong { font-size: .8rem; }
}

/* Area 10 final responsive pass v0.24.0-dev.82
   Compact partial-resource modal, daypart time groups, and confirmation sizing. */
#padco-booking-root .padco-live-time-groups {
  display: grid;
  gap: 8px;
}

#padco-booking-root .padco-live-time-periods {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding-bottom: 1px;
}

#padco-booking-root .padco-live-time-periods button {
  min-height: 32px;
  padding: 6px 11px;
  border: 1px solid var(--padco-line, #e5e5e5);
  border-radius: 999px;
  background: var(--padco-white, #fff);
  color: inherit;
  font: inherit;
  font-size: .84rem;
  font-weight: 650;
  line-height: 1.1;
  cursor: pointer;
}

#padco-booking-root .padco-live-time-periods button.is-selected {
  border-color: var(--padco-green, #3f5e43);
  background: var(--padco-green, #3f5e43);
  color: #fff;
}

#padco-booking-root .padco-live-modal {
  width: min(calc(100vw - 24px), 460px);
  max-height: calc(100dvh - 24px);
  overflow: auto;
  padding: 20px;
  border-radius: 16px;
}

#padco-booking-root .padco-live-modal h2 {
  font-size: clamp(1.35rem, 4.6vw, 1.75rem);
  line-height: 1.1;
}

#padco-booking-root .padco-live-modal p,
#padco-booking-root .padco-live-confirm-check {
  font-size: .94rem;
  line-height: 1.4;
}

#padco-booking-root .padco-live-confirmation {
  box-sizing: border-box;
  width: 100%;
  max-width: min(100%, 680px);
}

#padco-booking-root .padco-live-confirmation h1 {
  margin: 12px 0 16px;
  font-size: clamp(2rem, 7cqi, 3.2rem);
  line-height: 1.05;
  overflow-wrap: normal;
  word-break: normal;
}

#padco-booking-root .padco-live-confirmation > p {
  margin-inline: auto;
  max-width: 42ch;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

#padco-booking-root .padco-live-confirmation article strong,
#padco-booking-root .padco-live-confirmation article span {
  overflow-wrap: anywhere;
}

@media (max-width: 600px) {
  #padco-booking-root .padco-live-modal-backdrop {
    padding: 10px;
  }

  #padco-booking-root .padco-live-modal {
    width: min(calc(100vw - 20px), 440px);
    max-height: calc(100dvh - 20px);
    padding: 16px;
    border-radius: 14px;
  }

  #padco-booking-root .padco-live-modal h2 {
    margin-right: 36px;
    margin-bottom: 8px;
  }

  #padco-booking-root .padco-live-modal p,
  #padco-booking-root .padco-live-confirm-check {
    font-size: .9rem;
  }

  #padco-booking-root .padco-live-confirm-check {
    margin: 14px 0;
  }

  #padco-booking-root .padco-live-modal-actions {
    grid-template-columns: 1fr;
  }
}

@container padco-booking (max-width: 560px) {
  #padco-booking-root .padco-live-time-groups {
    gap: 6px;
  }

  #padco-booking-root .padco-live-time-periods {
    gap: 5px;
  }

  #padco-booking-root .padco-live-time-periods button {
    min-height: 30px;
    padding: 5px 9px;
    font-size: .78rem;
  }

  #padco-booking-root .padco-live-confirmation {
    margin: 14px auto;
    padding: clamp(14px, calc(var(--padco-confirmation-padding, 26px) - 10px), 20px);
  }

  #padco-booking-root .padco-live-confirmation h1 {
    margin: 9px 0 12px;
    font-size: clamp(1.55rem, 8cqi, 2.15rem);
    line-height: 1.06;
  }

  #padco-booking-root .padco-live-confirmation > p,
  #padco-booking-root .padco-live-confirmation-payment {
    font-size: .86rem;
  }

  #padco-booking-root .padco-live-confirmation article {
    font-size: .88rem;
  }

  #padco-booking-root .padco-live-confirmation .padco-primary {
    min-height: 38px;
    padding: 8px 12px;
    font-size: .9rem;
  }
}

@container padco-booking (max-width: 440px) {
  #padco-booking-root .padco-live-time-pills {
    gap: 5px;
  }

  #padco-booking-root .padco-live-time-pills button,
  #padco-booking-root .padco-live-slots button {
    min-width: 56px;
    min-height: 30px;
    padding: 5px 8px;
    font-size: .78rem;
  }

  #padco-booking-root .padco-live-confirmation {
    margin: 10px auto;
    padding: 13px;
  }

  #padco-booking-root .padco-live-confirmation-icon {
    width: 42px;
    height: 42px;
    margin-bottom: 8px;
    font-size: 22px;
  }

  #padco-booking-root .padco-live-confirmation h1 {
    margin: 7px 0 10px;
    font-size: clamp(1.4rem, 8.5cqi, 1.85rem);
  }

  #padco-booking-root .padco-live-confirmation > p,
  #padco-booking-root .padco-live-confirmation-payment {
    font-size: .8rem;
  }

  #padco-booking-root .padco-live-confirmation article {
    margin: 5px 0;
    padding: 8px;
    font-size: .82rem;
  }
}

/* Booking + embedded My bookings shared layout · v0.24.0-dev.112 */
.padco-booking-page-shell {
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}

.padco-booking-page-shell > #padco-booking-root,
.padco-booking-page-shell > #padco-customer-account-root[data-padco-account-mode="booking-accordion"] {
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}

.padco-booking-page-shell > #padco-booking-root .padco-live-shell.padco-live-modular {
  width: min(var(--padco-content-width, 760px), calc(100vw - 32px));
  max-width: none;
  margin-left: auto;
  margin-right: auto;
}

.padco-booking-page-shell.has-customer-account > #padco-booking-root .padco-live-shell.padco-live-modular {
  padding-bottom: 0;
}

@media (max-width: 760px) {
  .padco-booking-page-shell > #padco-booking-root .padco-live-shell.padco-live-modular {
    width: calc(100vw - 24px);
  }
}


/* Live-site host-theme isolation v0.24.0-dev.125
   Keep PadCo's button-based choices self-contained when WordPress themes apply
   global button colours/appearance. This replaces the calendar-only isolation. */
#padco-booking-root :is(
  .padco-live-choice,
  .padco-live-service,
  .padco-live-option,
  .padco-live-category-choice,
  .padco-live-staff-pills button,
  .padco-live-staff-choices button,
  .padco-live-staff-mode button,
  .padco-live-time-periods button,
  .padco-live-time-pills button,
  .padco-live-slots button,
  .padco-live-location-choices button
) {
  visibility: visible !important;
  opacity: 1 !important;
  color: var(--padco-black, #111) !important;
  -webkit-text-fill-color: currentColor !important;
  background-color: var(--padco-white, #fff) !important;
  text-shadow: none !important;
  appearance: none;
  -webkit-appearance: none;
}

/* Resource/service/category/location selections intentionally use the softer
   booking-form highlight rather than turning the whole tile solid green. */
#padco-booking-root :is(
  .padco-live-choice.is-selected,
  .padco-live-service.is-selected,
  .padco-live-category-choice.is-selected,
  .padco-live-location-choices button.is-selected
) {
  color: var(--padco-on-primary-soft, #111) !important;
  -webkit-text-fill-color: currentColor !important;
  background-color: var(--padco-primary-soft, #eef2ef) !important;
  border-color: var(--padco-green, #3f5e43) !important;
}

/* Compact choice controls keep the established solid-green selected state. */
#padco-booking-root :is(
  .padco-live-option.is-selected,
  .padco-live-staff-pills button.is-selected,
  .padco-live-staff-choices button.is-selected,
  .padco-live-staff-mode button.is-selected,
  .padco-live-time-periods button.is-selected,
  .padco-live-time-pills button.is-selected,
  .padco-live-slots button.is-selected
) {
  color: var(--padco-on-primary, #fff) !important;
  -webkit-text-fill-color: currentColor !important;
  background-color: var(--padco-green, #3f5e43) !important;
  border-color: var(--padco-green, #3f5e43) !important;
}

/* Calendar buttons are part of the same host-theme boundary, but unavailable
   days remain visible and intentionally muted. */
#padco-booking-root .padco-live-days .padco-live-day {
  display: grid !important;
  place-items: center;
  visibility: visible !important;
  opacity: 1;
  color: var(--padco-black, #111) !important;
  -webkit-text-fill-color: currentColor !important;
  background: rgba(17,17,17,.035) !important;
  text-shadow: none !important;
  appearance: none;
  -webkit-appearance: none;
}
#padco-booking-root .padco-live-days .padco-live-day:disabled {
  display: grid !important;
  visibility: visible !important;
  opacity: .28 !important;
  color: var(--padco-black, #111) !important;
  -webkit-text-fill-color: currentColor !important;
  background: rgba(17,17,17,.035) !important;
  cursor: default;
  pointer-events: none;
}
#padco-booking-root .padco-live-days .padco-live-day.is-selected:not(:disabled) {
  opacity: 1 !important;
  color: #fff !important;
  -webkit-text-fill-color: currentColor !important;
  background: var(--padco-green, #3f5e43) !important;
}
#padco-booking-root .padco-live-days .padco-live-day.has-booking:not(.is-selected) {
  border-color: var(--padco-mauve, #7e6677) !important;
}
