/* A compact booking interface. All original controls and actions are retained. */
.booking-card.booking-redesign {
  --forest: #1B2A22;
  --green: #146B3A;
  --ink: #1B2A22;
  --text: #4B5A52;
  --line: #dce5de;
  max-width: 1060px;
  padding: 28px;
  border: 1px solid #dce5de;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 14px 45px #143c300b;
}
.booking-card.booking-redesign.ui-premium {
  grid-template-columns: minmax(0, 1fr) 260px;
  gap: 0 28px;
}
.booking-card.booking-redesign .booking-head { padding: 0 0 16px; }
.booking-card.booking-redesign .booking-kicker { font-size: 13px !important; color: #4B5A52; }
.booking-card.booking-redesign #step-counter { padding: 0; margin-left: 6px; background: none; }
.booking-card.booking-redesign .booking-head h2 { font-size: 30px; margin: 6px 0; font-weight: 650; }
.booking-card.booking-redesign .booking-head p { font-size: 15px; line-height: 1.4; }
.booking-card.booking-redesign .steps {
  gap: 14px;
  margin: 0 0 22px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
}
.booking-card.booking-redesign .steps li { border-bottom: 3px solid #e5eae5; }
.booking-card.booking-redesign .steps li[aria-current="step"],
.booking-card.booking-redesign .steps li.done { border-color: #146B3A; }
.booking-card.booking-redesign .steps button {
  justify-content: flex-start;
  padding: 8px 0 12px;
  min-height: 44px;
  border-radius: 0;
  background: none;
  box-shadow: none;
  color: #536259;
  font-size: 15px !important;
  font-weight: 500;
}
.booking-card.booking-redesign .steps li[aria-current="step"] button { background: none; box-shadow: none; color: #1B2A22; font-weight: 700; }
.booking-card.booking-redesign .steps i { display: none; }
.booking-card.booking-redesign form > fieldset > legend { font-size: 19px !important; margin-bottom: 12px !important; }
.booking-card.booking-redesign .service-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.booking-card.booking-redesign .service-options label {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 8px;
  min-height: 0 !important;
  padding: 14px 12px !important;
  border: 1px solid #d1ddd4;
  border-radius: 12px;
  background: #fff;
}
.booking-card.booking-redesign .service-options label:has(input:checked) {
  border-color: #1B2A22;
  background: #1B2A22;
  box-shadow: none;
}
.booking-card.booking-redesign .service-options .service-icon { width: 28px; height: 28px; padding: 4px; border-radius: 7px; background: #edf3ee; }
.booking-card.booking-redesign .service-options label:has(input:checked) .service-icon { background: #ffffff1c; color: #fff; }
.booking-card.booking-redesign .service-options label > span { display: flex; flex-direction: column; gap: 5px; }
.booking-card.booking-redesign .service-options b { font-size: 16px !important; line-height: 1.22; letter-spacing: -.02em; }
.booking-card.booking-redesign .service-options small { display: none; }
.booking-card.booking-redesign .service-options strong { font-size: 16px !important; margin: 2px 0 0; align-self: auto; color: #1B2A22; }
.booking-card.booking-redesign .service-options label:has(input:checked) :is(b, strong) { color: #fff; }
.booking-card.booking-redesign .service-options label > i { top: 12px; right: 10px; width: 17px; height: 17px; font-size: 11px; border-color: #adbdb2; }
.booking-card.booking-redesign .service-options label:has(input:checked) > i { color: #1B2A22; background: #fff; border-color: #fff; }
.booking-card.booking-redesign .redesign-service-description { margin: 10px 0 0; color: #4B5A52; font-size: 15px; line-height: 1.4; }
.booking-card.booking-redesign #step1 > .home-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 12px; margin: 20px 0 0; padding: 0 0 18px; }
.booking-card.booking-redesign .home-grid > div:has(#hours) { order: 2; grid-column: auto; }
.booking-card.booking-redesign .home-grid #sq-home { display: block; order: 3; grid-column: 1 / -1; }
.booking-card.booking-redesign .home-grid #sq-home > .sq-counts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.booking-card.booking-redesign .home-grid .room-count { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto 46px 1fr; align-self: stretch; align-items: start; gap: 6px; padding: 0; border: 0; }
.booking-card.booking-redesign .home-grid .room-count label { display: contents !important; }
.booking-card.booking-redesign .home-grid .room-count label > span { grid-column: 1; grid-row: 1; font-size: 16px; }
.booking-card.booking-redesign .home-grid .room-count label > small { grid-column: 1; grid-row: 3; margin: 0; font-size: 15px !important; line-height: 1.35; }
.booking-card.booking-redesign .home-grid .room-count label > small:empty { display: none; }
.booking-card.booking-redesign .home-grid .room-stepper {
  grid-column: 1; grid-row: 2;
  display: grid; grid-template-columns: 44px minmax(24px, 1fr) 44px;
  width: 100%; padding: 0; gap: 0;
  border: 1px solid #c7d5ca; border-radius: 10px; background: #fff;
}
.booking-card.booking-redesign .room-stepper button { min-height: 44px; min-width: 44px; border: 0; background: transparent; }
.booking-card.booking-redesign .home-grid .room-stepper input { width: 100%; min-width: 0; height: 44px; min-height: 44px; background: none; }
.booking-card.booking-redesign .home-grid > .frequency-field { margin: 0; padding-top: 0; }
.booking-card.booking-redesign .frequency-choices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.booking-card.booking-redesign .frequency-choices button { min-height: 44px; padding: 8px; border-radius: 8px; background: #f7f9f6; }
.booking-card.booking-redesign .frequency-choices button[aria-pressed="true"] { background: #e9f2ec; border-color: #146B3A; color: #1B2A22; }
.booking-card.booking-redesign #step1 > :is(.condition-section, #service-questions, .supply-options) { margin-top: 16px; padding: 0 0 16px; border: 0; border-bottom: 1px solid #e0e7e1; border-radius: 0; background: none; }
.booking-card.booking-redesign #step1 > .condition-section { padding-top: 0 !important; }
.booking-card.booking-redesign #condition-section textarea { min-height: 48px; height: 52px; }
.booking-card.booking-redesign #condition-recommendation { margin: 0 0 10px; }
.booking-card.booking-redesign #service-questions .booking-option-buttons { grid-template-columns: 1fr; gap: 0; }
.booking-card.booking-redesign #service-questions .booking-option-button { min-height: 58px; padding: 10px 0; border: 0; border-bottom: 1px solid #e0e7e1; border-radius: 0; background: none; }
.booking-card.booking-redesign .booking-option-copy { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 10px; row-gap: 2px; }
.booking-card.booking-redesign .booking-option-description { margin: 0; color: #4B5A52; font-size: 15px !important; }
.booking-card.booking-redesign .booking-option-symbol { width: 28px; height: 28px; border-radius: 50%; background: #edf3ee; font-size: 21px; }
.booking-card.booking-redesign #service-questions .booking-option-button[aria-expanded="true"] { background: none; color: #1B2A22; }
.booking-card.booking-redesign .booking-option-panel { margin-top: 10px; padding: 0; border: 0; box-shadow: none; }
.booking-card.booking-redesign #step1 > .supply-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.booking-card.booking-redesign .supply-options .sup-opt { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; min-height: 0 !important; padding: 12px 10px; border-radius: 10px; box-shadow: none; }
.booking-card.booking-redesign .supply-options .sup-ic { display: none; }
.booking-card.booking-redesign .sup-tx { grid-column: 1 / -1; padding-right: 14px; }
.booking-card.booking-redesign .sup-pr { grid-column: 1; text-align: left; }
.booking-card.booking-redesign .sup-dot { top: 12px; right: 8px; width: 16px; height: 16px; }
.booking-card.booking-redesign .sup-tx b { font-size: 16px !important; line-height: 1.3; }
.booking-card.booking-redesign .sup-tx small { margin-top: 3px; font-size: 15px !important; line-height: 1.35; }
.booking-card.booking-redesign .sup-opt:has(input:checked) { background: #edf5ef; border-color: #146B3A; box-shadow: none; }
.booking-card.booking-redesign .condition-estimate { margin: 12px 0 0; padding: 10px 0; background: none; border: 0; }
.booking-card.booking-redesign .condition-final { font-size: 15px; }
.booking-card.booking-redesign .total-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 6px 12px; margin: 0; padding: 18px; border: 0; border-radius: 14px; background: #1B2A22; color: #fff; }
.booking-card.booking-redesign .total-row > div { display: contents; }
.booking-card.booking-redesign .total-row > div > span { grid-column: 1; grid-row: 1; }
.booking-card.booking-redesign .total-row #total { grid-column: 2; grid-row: 1; }
.booking-card.booking-redesign .total-row #breakdown { grid-column: 1 / -1; grid-row: 2; margin: 0; }
.booking-card.booking-redesign .total-row :is(span, small, output) { color: #fff !important; }
.booking-card.booking-redesign #breakdown { font-size: 15px !important; line-height: 1.4; font-weight: 400; opacity: .85; }
.booking-card.booking-redesign #total { font-size: 32px; line-height: 1.1; font-weight: 650; white-space: nowrap; }
.booking-card.booking-redesign .price-assurance { margin: 10px 0 0; line-height: 1.4; }
.booking-card.booking-redesign .deduct-hint { margin: 6px 0 0; }
.booking-card.booking-redesign .form-buttons { margin-top: 18px; gap: 10px; }
.booking-card.booking-redesign .form-buttons .main-button { min-height: 52px; border-radius: 10px; padding: 12px 16px; background: #146B3A; box-shadow: none; }
.booking-card.booking-redesign .form-buttons .back { min-height: 48px; padding: 10px 14px; border: 1px solid #c7d5ca; border-radius: 10px; }
.booking-card.booking-redesign .booking-reassurance { margin: 8px 0 0; text-align: center; font-size: 15px !important; }
.booking-card.booking-redesign .booking-summary { padding: 20px; border: 1px solid #dce5de; border-radius: 14px; background: #f6f8f4; }
.booking-card.booking-redesign .ui-summary-title { font-size: 13px !important; letter-spacing: .04em; }
.booking-card.booking-redesign .ui-summary-price { margin-top: 16px; padding-top: 16px; }
.booking-card.booking-redesign #ui-summary-total { font-size: 36px; }
.booking-card.booking-redesign #step2 > .schedule-picker { margin: 16px 0 0; padding: 0 0 18px; border: 0; border-bottom: 1px solid #e0e7e1; border-radius: 0; background: none; }
.booking-card.booking-redesign .time-cards { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.booking-card.booking-redesign .time-cards button { min-height: 62px !important; padding: 9px 3px; }
.booking-card.booking-redesign .time-glyph { display: none; }
.booking-card.booking-redesign #step2 .form-section-title { margin: 18px 0 10px; padding-top: 0; border: 0; font-size: 18px; }
.booking-card.booking-redesign #step2 :is(.contact-grid, .address-grid) { gap: 12px; }
.booking-card.booking-redesign #step2 > :is(.form-static, .billing-address, .static-field-group) { padding: 14px 0; border: 0; border-top: 1px solid #e0e7e1; border-radius: 0; background: none; }
.booking-card.booking-redesign #step2 > label.checkbox:has(#vacuum) { margin-top: 10px; padding: 12px; border-radius: 10px; background: #f4f7f2; }
.booking-card.booking-redesign .photo-consent legend { font-size: 16px; }
.booking-card.booking-redesign #step3 .review { margin: 0; border-radius: 0; }
.booking-card.booking-redesign #step3 .review > div { grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr) !important; gap: 12px; padding: 9px 0; }
.booking-card.booking-redesign #step3 .review dt { color: #4B5A52; overflow-wrap: normal; }
.booking-card.booking-redesign #step3 .review dd { font-weight: 600; }
.booking-card.booking-redesign #step3 .review > .sum { margin-top: 10px; padding: 16px; border-radius: 12px; background: #1B2A22; }
.booking-card.booking-redesign #step3 .review > .sum :is(dt, dd) { color: #fff; }
.booking-card.booking-redesign #step3 .review > .sum dd { font-size: 28px !important; }
.booking-card.booking-redesign #step3 .review > .review-deduction { grid-template-columns: minmax(0, 1fr) !important; gap: 3px; }
.booking-card.booking-redesign .review-more { margin: 14px 0; padding: 12px; border-radius: 10px; background: #f7f9f5; }
.booking-card.booking-redesign .review-more > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; cursor: pointer; list-style: none; }
.booking-card.booking-redesign .review-more > summary::-webkit-details-marker { display: none; }
.booking-card.booking-redesign .review-more > summary::after { content: '+'; font-size: 24px; font-weight: 400; }
.booking-card.booking-redesign .review-more[open] > summary::after { content: '−'; }
.booking-card.booking-redesign .form-buttons .main-button.wide { margin-top: 0; }
.booking-card.booking-redesign #step3 > :is(.discount-box, .pay-methods) { padding: 14px 0; border: 0; border-top: 1px solid #e0e7e1; border-radius: 0; background: none; }
.booking-card.booking-redesign .pay-method { grid-template-columns: minmax(0, 1fr) 22px; min-height: 76px; padding: 14px; gap: 12px; border-radius: 10px; box-shadow: none; }
.booking-card.booking-redesign .pay-method:has(input:checked) { background: #edf5ef; box-shadow: none; }
.booking-card.booking-redesign .pay-ic { display: none; }
.booking-card.booking-redesign .pay-tx { grid-column: 1; padding-right: 0; }
.booking-card.booking-redesign .pay-dot { grid-column: 2; grid-row: 1; }
.booking-card.booking-redesign .pay-tx b { font-size: 16px !important; }
.booking-card.booking-redesign :is(.pay-tx small, .photo-consent p) { font-size: 15px; line-height: 1.4; }
.booking-card.booking-redesign :is(input:not([type="radio"]):not([type="checkbox"]), select, textarea) { border-radius: 9px; border-color: #c1d0c5; }
.booking-card.booking-redesign :is(input, select, textarea):focus-visible { outline: 3px solid #95b99f; outline-offset: 2px; }
@media (max-width: 960px) {
  .booking-card.booking-redesign.ui-premium { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .booking-card.booking-redesign .booking-summary { display: contents; }
}
@media (max-width: 600px) {
  .booking-card.booking-redesign { padding: 20px 14px !important; border-radius: 16px; }
  .booking-card.booking-redesign .booking-head { padding-bottom: 12px; }
  .booking-card.booking-redesign .booking-head h2 { font-size: 27px; }
  .booking-card.booking-redesign .steps { gap: 10px; margin-bottom: 18px; }
  .booking-card.booking-redesign .steps button { justify-content: flex-start; padding: 7px 0 10px; }
  .booking-card.booking-redesign .booking-summary { display: none; }
  .booking-card.booking-redesign.ui-premium form > fieldset { margin-top: 0; }
  .booking-card.booking-redesign .service-options label { padding: 12px 8px !important; gap: 8px; }
  .booking-card.booking-redesign .service-options b { font-size: 16px !important; }
  .booking-card.booking-redesign .service-options label { padding-inline: 6px !important; }
  .booking-card.booking-redesign .service-options .service-word { display: block; }
  .booking-card.booking-redesign .service-options b { min-height: 37px; }
  .booking-card.booking-redesign .service-options strong { font-size: 16px !important; }
  .booking-card.booking-redesign .home-grid #sq-home > .sq-counts { gap: 10px; }
  .booking-card.booking-redesign #service-questions .booking-option-buttons { grid-template-columns: 1fr; }
  .booking-card.booking-redesign #service-questions .booking-option-button { min-height: 54px; gap: 8px; }
  .booking-card.booking-redesign .booking-option-copy { display: flex; }
  .booking-card.booking-redesign .booking-option-description { margin-top: 0; }
  .booking-card.booking-redesign #step1 > .home-grid { gap: 14px 10px; margin-top: 16px; padding-bottom: 16px; }
  .booking-card.booking-redesign .supply-options .sup-opt { padding: 10px 9px; }
  .booking-card.booking-redesign .sup-tx { padding-right: 0; }
  .booking-card.booking-redesign .sup-dot { position: relative; grid-column: 2; grid-row: 2; align-self: center; }
  .booking-card.booking-redesign .total-row { gap: 6px 10px; padding: 16px; }
  .booking-card.booking-redesign #total { margin-left: auto; font-size: 32px; }
  .booking-card.booking-redesign .total-row > div { flex: 1 1 135px; }
  .booking-card.booking-redesign #step2 .contact-grid { grid-template-columns: minmax(0, 1fr); }
  .booking-card.booking-redesign #step2 .address-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .booking-card.booking-redesign .time-cards { gap: 4px; }
  .booking-card.booking-redesign .time-cards strong { font-size: 15px; }
  .booking-card.booking-redesign .time-cards button { font-size: 15px !important; }
  .booking-card.booking-redesign .time-cards button strong { font-size: 14px; }
  .booking-card.booking-redesign .review-edit-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .booking-card.booking-redesign .review-edit-links button { padding: 8px 4px; }
  .booking-card.booking-redesign #step3 .review > div:not(.sum):not(.review-deduction) { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 8px; }
  .booking-card.booking-redesign #step3 .review dd { text-align: right; }
  .booking-card.booking-redesign #step3 .review > .sum dd { text-align: right; }
}

/* Readable mobile forms: persistent labels, large targets and verified colors. */
.booking-zone:has(.booking-redesign) { background: #fff; }
.booking-card.booking-redesign { color: #1B2A22; font-size: 16px; line-height: 1.5; }
.booking-card.booking-redesign :is(p, .review dd) { font-size: 16px; line-height: 1.5; }
.booking-card.booking-redesign :is(label, .frequency-label, .booking-option-title, .service-options b) { font-size: 16px !important; }
.booking-card.booking-redesign :is(small, .field-help, .sq-hint, .step-hint, .required-note, .price-assurance, .deduct-hint, .ui-summary-breakdown, .ui-summary-extras li) { font-size: 15px !important; line-height: 1.5; color: #4B5A52; }
.booking-card.booking-redesign :is(input:not([type=checkbox]):not([type=radio]), select, textarea) { min-height: 52px; font-size: 16px; color: #1B2A22; }
.booking-card.booking-redesign :is(input, select, textarea) { border-color: #76877b; }
.booking-card.booking-redesign textarea { resize: vertical; }
.booking-card.booking-redesign :is(button, summary, .sq-choice label, label.checkbox) { min-height: 48px; }
.booking-card.booking-redesign .form-buttons :is(.main-button, .back) { min-height: 56px; }
.booking-card.booking-redesign .form-buttons .main-button { background: #146B3A; border-color: #146B3A; color: #fff; font-size: 16px !important; }
.booking-card.booking-redesign .steps { gap: 10px; }
.booking-card.booking-redesign .steps button { min-height: 56px; font-size: 16px !important; line-height: 1.3; }
.booking-card.booking-redesign .service-options label { min-height: 112px !important; border-color: #76877b; }
.booking-card.booking-redesign .service-options label:has(input:checked) { background: #E7F3EC; border-color: #146B3A; box-shadow: inset 0 0 0 1px #146B3A; }
.booking-card.booking-redesign .service-options label:has(input:checked) :is(b,strong) { color: #1B2A22; }
.booking-card.booking-redesign .service-options label:has(input:checked) .service-icon { background: #146B3A; color: #fff; }
.booking-card.booking-redesign .service-options label:has(input:checked) > i { background: #146B3A; border-color: #146B3A; color: #fff; }
.booking-card.booking-redesign .service-options strong { color: #1B2A22; }
.booking-card.booking-redesign .home-grid #size,
.booking-card.booking-redesign .home-grid #hours { height: 52px; min-height: 52px; }
.booking-card.booking-redesign .home-grid .room-stepper { grid-template-columns: 48px minmax(24px,1fr) 48px; min-height: 50px; border-color: #76877b; }
.booking-card.booking-redesign .home-grid .room-stepper :is(button,input) { min-height: 48px; height: 48px; }
.booking-card.booking-redesign .home-grid .room-stepper button { min-width: 48px; }
.booking-card.booking-redesign .home-grid .room-count { grid-template-rows: auto 50px 1fr; }
.booking-card.booking-redesign .frequency-choices button { min-height: 48px; border-color: #76877b; font-size: 16px !important; }
.booking-card.booking-redesign .frequency-choices button[aria-pressed=true] { background: #E7F3EC; border-color: #146B3A; color: #1B2A22; box-shadow: inset 0 0 0 1px #146B3A; }
.booking-card.booking-redesign .total-row { background: #F7F9F7; border: 1px solid #76877b; color: #1B2A22; }
.booking-card.booking-redesign .total-row :is(span,small,output) { color: #1B2A22 !important; opacity: 1; }
.booking-card.booking-redesign #total { font-size: 32px; }
.booking-card.booking-redesign #step3 .review > .sum { background: #E7F3EC; }
.booking-card.booking-redesign #step3 .review > .sum :is(dt,dd) { color: #1B2A22; }
.booking-card.booking-redesign #step3 .review > .sum dd { font-size: 32px !important; }
.booking-card.booking-redesign .booking-summary { border-color: #76877b; background: #fff; }
.booking-card.booking-redesign .ui-summary-breakdown { margin: 8px 0 0; }
.booking-card.booking-redesign .booking-includes { margin: 4px 0 0; border-bottom: 1px solid #dce5de; }
.booking-card.booking-redesign .booking-includes > summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 0; color: #146B3A; font-size: 16px; font-weight: 600; cursor: pointer; list-style: none; }
.booking-card.booking-redesign .booking-includes > summary::after { content: '+'; font-size: 24px; font-weight: 400; }
.booking-card.booking-redesign .booking-includes[open] > summary::after { content: '−'; }
.booking-card.booking-redesign .booking-includes summary::-webkit-details-marker { display: none; }
.booking-card.booking-redesign .booking-includes-body { padding-bottom: 12px; }
.booking-card.booking-redesign .booking-includes-body ul { display: grid; gap: 8px; margin: 0; padding-left: 20px; font-size: 16px; color: #1B2A22; }
.booking-card.booking-redesign #condition-section:not(:has(textarea)):has(#condition-recommendation[hidden]):not(:has(.condition-error:not([hidden]))) { display: none; }
.booking-card.booking-redesign .exact-time { margin-top: 10px; padding: 0; border: 0; background: none; }
.booking-card.booking-redesign .exact-time > summary { font-size: 16px; }
.booking-card.booking-redesign .booking-notes { margin-top: 18px; padding: 16px 0; border-top: 1px solid #dce5de; }
.booking-card.booking-redesign .booking-notes textarea { width: 100%; min-height: 84px; }
.booking-card.booking-redesign .booking-notes .field-help { margin: 6px 0 0; }
.booking-card.booking-redesign .field-error,
.booking-card.booking-redesign .form-errors { color: #B3261E; border-color: #B3261E; font-size: 16px !important; }
.booking-card.booking-redesign [aria-invalid=true] { border-color: #B3261E !important; }
.booking-card.booking-redesign .pay-method { min-height: 80px; border-color: #76877b; }
.booking-card.booking-redesign .pay-method:has(input:checked) { background: #E7F3EC; border-color: #146B3A; }
.booking-card.booking-redesign .date-card { min-height: 64px !important; min-width: 48px; }
.booking-card.booking-redesign .time-cards button { min-height: 64px !important; min-width: 48px; }
.booking-card.booking-redesign .date-card[aria-pressed=true],
.booking-card.booking-redesign .time-cards button[aria-pressed=true] { background: #146B3A; border-color: #146B3A; color: #fff; }
.booking-card.booking-redesign #discount-btn { min-height: 56px; min-width: 56px; background: #146B3A; }
.booking-card.booking-redesign #step3 .review dt { color: #4B5A52; }
@media(max-width:600px) {
  .booking-card.booking-redesign .service-options b { font-size: 16px !important; }
  .booking-card.booking-redesign .steps button { font-size: 15px !important; }
  .booking-card.booking-redesign .booking-summary { display: block; position: static; margin: 0 0 18px; padding: 12px; border-radius: 12px; }
  .booking-card.booking-redesign[data-step="1"] .booking-summary { display: none; }
  .booking-card.booking-redesign .ui-summary-overview { display: grid; grid-template-columns: minmax(0,1fr) auto; position: static; padding: 0; margin: 0; border: 0; background: none; box-shadow: none; }
  .booking-card.booking-redesign .ui-summary-price { margin: 0; padding: 0; }
  .booking-card.booking-redesign #ui-summary-total { font-size: 28px; }
  .booking-card.booking-redesign .ui-summary-breakdown { font-size: 15px !important; }
  .booking-card.booking-redesign .ui-summary-extras { display: none; }
  .booking-card.booking-redesign .ui-summary-copy #ui-summary-context { font-size: 15px !important; }
}
.booking-card.booking-redesign .billing-extra { margin: 14px 0; border-top: 1px solid #dce5de; }
.booking-card.booking-redesign .billing-extra > summary { display: flex; align-items: center; min-height: 48px; color: #146B3A; font-size: 16px; font-weight: 600; cursor: pointer; }
.booking-card.booking-redesign .billing-extra .billing-address { margin-top: 8px; padding: 0; background: none; border: 0; }
.booking-card.booking-redesign #step3 .review > .sum { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.booking-card.booking-redesign #step3 .review > .sum dd { white-space: nowrap; }
@media(max-width:360px) {
  .booking-card.booking-redesign #step3 .review > .sum dd { font-size: 28px !important; }
  .booking-card.booking-redesign .service-options b { font-size: 16px !important; }
  .booking-card.booking-redesign .service-options label { padding-inline: 6px !important; }
}

.booking-card.booking-redesign .discount-box > summary { min-height: 48px; padding: 0; color: #146B3A; font-size: 16px; }
.booking-card.booking-redesign .discount-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; }
.booking-card.booking-redesign .discount-row > label { grid-column: 1 / -1; }

/* Spacing and typography only. Retain the production form's original palette. */
.booking-card.booking-redesign { line-height: 1.4; }
.booking-card.booking-redesign :is(p,small,.field-help,.step-hint,.price-assurance,.deduct-hint) { line-height: 1.4; }
.booking-card.booking-redesign :is(legend,.form-section-title,.form-static-title) { font-family: inherit; font-weight: 650; }
.booking-card.booking-redesign :is(.supply-options,.pay-methods) > legend { font-size: 16px !important; }
.booking-card.booking-redesign .booking-head { padding-bottom: 10px; }
.booking-card.booking-redesign .booking-head h2 { margin-block: 4px; }
.booking-card.booking-redesign .steps { margin-bottom: 16px; gap: 10px; }
.booking-card.booking-redesign .steps button { min-height: 48px; padding-block: 6px 10px; }
.booking-card.booking-redesign .steps li { border-bottom-width: 2px; }
.booking-card.booking-redesign :is(input:not([type=checkbox]):not([type=radio]),select,textarea) { font-family: inherit; font-size: 16px; line-height: 1.4; }
.booking-card.booking-redesign :is(input,textarea)::placeholder { font-size: 15px; }
.booking-card.booking-redesign .service-options label { padding: 10px 8px !important; gap: 6px; }
.booking-card.booking-redesign .service-options label > span { gap: 3px; }
.booking-card.booking-redesign .service-options b { line-height: 1.2; }
.booking-card.booking-redesign .redesign-service-description { margin-top: 8px; }
.booking-card.booking-redesign .booking-includes { border-bottom-width: 0; }
.booking-card.booking-redesign .booking-includes > summary { padding-block: 4px; }
.booking-card.booking-redesign #step1 > .home-grid { gap: 12px 10px; margin-top: 12px; padding-bottom: 4px; border-width: 0; }
.booking-card.booking-redesign .home-grid .room-count { gap: 4px; }
.booking-card.booking-redesign #step1 > :is(.condition-section,#service-questions,.supply-options) { margin-top: 12px; padding-bottom: 4px; border-width: 0 !important; }
.booking-card.booking-redesign #step1 > .condition-section { padding-top: 0 !important; }
.booking-card.booking-redesign #condition-recommendation { margin-bottom: 6px; }
.booking-card.booking-redesign #service-questions .booking-option-button { padding-block: 8px; border-bottom-width: 0; }
.booking-card.booking-redesign .supply-options .sup-opt { gap: 6px; padding: 10px; }
.booking-card.booking-redesign .sup-tx { padding-right: 0; }
.booking-card.booking-redesign .sup-tx small { margin-top: 3px; }
.booking-card.booking-redesign .condition-estimate { margin-top: 8px; padding-block: 8px; }
.booking-card.booking-redesign .condition-final { font-size: 15px; }
.booking-card.booking-redesign .total-row { padding: 14px; }
.booking-card.booking-redesign .price-assurance { margin-top: 8px; }
.booking-card.booking-redesign .deduct-hint { margin-top: 4px; }
.booking-card.booking-redesign .form-buttons { margin-top: 14px; }
.booking-card.booking-redesign .form-buttons :is(.main-button,.back) { font-size: 16px !important; }
.booking-card.booking-redesign #step2 > .schedule-picker { margin-top: 12px; padding-bottom: 6px; border-bottom-width: 0; }
.booking-card.booking-redesign .time-picker { border-top-width: 0; margin-top: 12px; padding-top: 4px; }
.booking-card.booking-redesign .time-cards button { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 4px; }
.booking-card.booking-redesign .time-cards button strong { font-size: 15px; }
.booking-card.booking-redesign .time-cards button small { margin: 0; }
.booking-card.booking-redesign .exact-time { margin-top: 6px; }
.booking-card.booking-redesign #step2 .form-section-title { margin: 16px 0 8px; }
.booking-card.booking-redesign #step2 > :is(.form-static,.billing-address,.static-field-group) { padding-block: 10px; border-top-width: 0; }
.booking-card.booking-redesign :is(.billing-extra,.booking-notes) { border-top-width: 0; }
.booking-card.booking-redesign .booking-notes { margin-top: 8px; padding-block: 8px; }
.booking-card.booking-redesign .booking-notes textarea { min-height: 84px; }
.booking-card.booking-redesign #step3 .review > div { padding-block: 7px; border-bottom-width: 0; }
.booking-card.booking-redesign #step3 .review dd { font-size: 16px; text-wrap: balance; }
.booking-card.booking-redesign .review-more { margin-block: 10px; padding: 10px 12px; }
.booking-card.booking-redesign .review-more > summary { font-weight: 600; }
.booking-card.booking-redesign #step3 > :is(.discount-box,.pay-methods) { padding-block: 10px; border-top-width: 0; }
.booking-card.booking-redesign #confirm-text { font-size: 15px; line-height: 1.4; }
@media(max-width:600px) {
  .booking-card.booking-redesign { padding: 16px 12px !important; }
  .booking-card.booking-redesign .service-options label { padding: 10px 6px !important; }
  .booking-card.booking-redesign .service-options b { min-height: 37px; }
  .booking-card.booking-redesign .booking-summary { margin-bottom: 14px; }
  .booking-card.booking-redesign .ui-summary-overview { gap: 10px; }
  .booking-card.booking-redesign #step3 .review > div:not(.sum):not(.review-deduction) { grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr) !important; }
}
@media(min-width:601px) {
  .booking-card.booking-redesign .frequency-choices { grid-template-columns: repeat(4,minmax(0,1fr)); }
}
@media(min-width:961px) {
  /* Use the form's full width instead of an empty column beside later fields. */
  .booking-card.booking-redesign.ui-premium { grid-template-columns: minmax(0,1fr); gap: 0; }
  .booking-card.booking-redesign.ui-premium > form { grid-column: 1; grid-row: 4; }
  .booking-card.booking-redesign.ui-premium > .booking-summary { grid-column: 1; grid-row: 3; position: static; padding: 14px 16px; margin: 0 0 16px; }
  .booking-card.booking-redesign .ui-summary-overview { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 16px; align-items: center; }
  .booking-card.booking-redesign .ui-summary-title { display: none; }
  .booking-card.booking-redesign .ui-summary-price { margin: 0; padding: 0; border-top-width: 0; }
  .booking-card.booking-redesign #ui-summary-total { font-size: 30px; }
  .booking-card.booking-redesign .ui-summary-extras { display: flex; flex-wrap: wrap; gap: 6px 16px; padding-top: 8px; margin-top: 8px; border-top-width: 0; }
  .booking-card.booking-redesign .ui-summary-note { display: none; }
  .booking-card.booking-redesign #step1 > .home-grid { grid-template-columns: repeat(4,minmax(0,1fr)); align-items: start; }
  .booking-card.booking-redesign .home-grid #sq-home { grid-column: 3 / 5; grid-row: 1; }
  .booking-card.booking-redesign .home-grid > .frequency-field { grid-column: 1 / -1; order: 4; }
  .booking-card.booking-redesign #step2 .contact-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .booking-card.booking-redesign #step2 .address-grid { grid-template-columns: minmax(0,2fr) repeat(2,minmax(0,1fr)); }
  .booking-card.booking-redesign #step2 :is(.address-grid,.contact-grid) > div:first-child { grid-column: auto; }
  .booking-card.booking-redesign #step3 .review { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: 28px; }
  .booking-card.booking-redesign #step3 .review > :is(.sum,.review-deduction,.review-more) { grid-column: 1 / -1; }
  .booking-card.booking-redesign #step3 .pay-methods { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
  .booking-card.booking-redesign .pay-methods legend { grid-column: 1 / -1; }
  .booking-card.booking-redesign .pay-method { margin: 0; }
}

@media(min-width:961px) {
  .booking-card.booking-redesign.ui-premium > .booking-summary { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 6px 24px; }
  .booking-card.booking-redesign .ui-summary-overview { display: contents; }
  .booking-card.booking-redesign .ui-summary-copy { grid-column: 1; grid-row: 1; }
  .booking-card.booking-redesign .ui-summary-price { grid-column: 2; grid-row: 1; }
  .booking-card.booking-redesign .ui-summary-breakdown { grid-column: 2; grid-row: 2; margin: 0; text-align: right; }
  .booking-card.booking-redesign .ui-summary-extras { grid-column: 1; grid-row: 2; padding: 0; margin: 0; }
  .booking-card.booking-redesign .ui-summary-discount { grid-column: 1 / -1; }
}

/* A consistent service configurator: original colors, quieter shapes and hierarchy. */
.booking-card.booking-redesign { border-radius: 24px; }
.booking-card.booking-redesign .booking-head { position: relative; }
.booking-card.booking-redesign .booking-kicker { padding-right: 56px; letter-spacing: .08em; }
.booking-card.booking-redesign #step-counter { position: absolute; right: 0; top: 0; font-variant-numeric: tabular-nums; letter-spacing: 0; }
.booking-card.booking-redesign .booking-head h2 { font-weight: 650; letter-spacing: -.035em; }
.booking-card.booking-redesign form > fieldset > legend { margin-bottom: 10px !important; font-weight: 650; }
.booking-card.booking-redesign .service-options { gap: 10px; }
.booking-card.booking-redesign .service-options label { border-radius: 14px; }
.booking-card.booking-redesign .service-options label > span { width: 100%; text-align: left; align-items: flex-start; }
.booking-card.booking-redesign .service-options b { font-weight: 650; letter-spacing: -.015em; text-align: left; }
.booking-card.booking-redesign .service-options strong { font-weight: 600; font-variant-numeric: tabular-nums; }
.booking-card.booking-redesign :is(input:not([type=checkbox]):not([type=radio]),select,textarea),
.booking-card.booking-redesign .home-grid .room-stepper { border-radius: 12px; }
.booking-card.booking-redesign .home-grid :is(input,select) { font-weight: 600; }
.booking-card.booking-redesign :is(.field-help,.sq-hint,.redesign-service-description) { font-weight: 400; letter-spacing: 0; }
.booking-card.booking-redesign :is(#size-hint,#hours-hint) { margin: 5px 0 0; line-height: 1.35; }
.booking-card.booking-redesign .frequency-choices { gap: 8px; }
.booking-card.booking-redesign .frequency-choices button { border-radius: 10px; font-weight: 500; }
.booking-card.booking-redesign .frequency-choices button[aria-pressed=true] { font-weight: 650; }
.booking-card.booking-redesign :is(.supply-options .sup-opt,.pay-method) { border-radius: 12px; }
.booking-card.booking-redesign .sup-dot { top: auto; right: auto; position: relative; grid-column: 2; grid-row: 2; align-self: center; justify-self: end; }
.booking-card.booking-redesign .sup-tx { grid-column: 1 / -1; }
.booking-card.booking-redesign .total-row { padding: 16px; border-radius: 14px; }
.booking-card.booking-redesign .total-row > div > span { font-size: 16px; font-weight: 650; }
.booking-card.booking-redesign :is(#total,#ui-summary-total) { font-variant-numeric: tabular-nums; letter-spacing: -.035em; }
.booking-card.booking-redesign .form-buttons :is(.main-button,.back) { border-radius: 12px; }
.booking-card.booking-redesign .booking-summary { border-radius: 14px; }
.booking-card.booking-redesign #step2 .form-section-title { font-weight: 650; letter-spacing: -.015em; }
.booking-card.booking-redesign .date-card,
.booking-card.booking-redesign .time-cards button { border-radius: 12px; }
.booking-card.booking-redesign .review-more { border-radius: 12px; }
.booking-card.booking-redesign .pay-tx b { font-family: inherit; font-weight: 650; }
@media(max-width:600px) {
  .booking-card.booking-redesign { border-radius: 20px; }
  .booking-card.booking-redesign .service-options { gap: 8px; }
  .booking-card.booking-redesign .service-options label { padding: 10px 8px !important; }
  .booking-card.booking-redesign .service-options label > i { right: 8px; }
  .booking-card.booking-redesign .service-options label > span { gap: 4px; }
  .booking-card.booking-redesign .total-row { padding: 14px; }
}
@media(min-width:900px) {
  .booking-card.booking-redesign .service-options label { display: grid; grid-template-columns: 28px minmax(0,1fr); align-items: center; gap: 12px; min-height: 88px !important; padding: 14px 18px !important; }
  .booking-card.booking-redesign .service-options label > span { padding-right: 8px; }
  .booking-card.booking-redesign .service-options b { min-height: 0; }
  .booking-card.booking-redesign .service-options .service-word { display: inline; }
  .booking-card.booking-redesign .service-options label > i { top: 10px; right: 10px; }
}
@media(max-width:600px) {
  /* Lead with the service and rate; keep the two symbols together below. */
  .booking-card.booking-redesign .service-options label {
    display: grid;
    grid-template-columns: 28px minmax(0,1fr);
    grid-template-rows: 1fr 28px;
    align-items: start;
    gap: 6px 4px;
  }
  .booking-card.booking-redesign .service-options label > span { grid-column: 1 / -1; grid-row: 1; gap: 4px; }
  .booking-card.booking-redesign .service-options label > .service-icon { grid-column: 1; grid-row: 2; }
  .booking-card.booking-redesign .service-options label > i { position: static; grid-column: 2; grid-row: 2; align-self: center; justify-self: end; }
}

/* Compact service rows at every screen width; keep the original radio controls. */
.booking-card.booking-redesign .service-options {
  grid-template-columns: minmax(0, 1fr);
  gap: 8px;
}
.booking-card.booking-redesign .service-options label {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) 18px;
  grid-template-rows: auto;
  align-items: center;
  gap: 10px;
  min-height: 60px !important;
  padding: 12px !important;
  border-radius: 12px;
  cursor: pointer;
}
.booking-card.booking-redesign .service-options label > .service-icon {
  grid-column: 1;
  grid-row: 1;
  width: 28px;
  height: 28px;
}
.booking-card.booking-redesign .service-options label > span {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-column: 2;
  grid-row: 1;
  align-items: center;
  gap: 10px;
  padding: 0;
}
.booking-card.booking-redesign .service-options b {
  min-height: 0;
  line-height: 1.3;
}
.booking-card.booking-redesign .service-options .service-word { display: inline; }
.booking-card.booking-redesign .service-options strong {
  grid-column: 2;
  grid-row: 1;
  margin: 0;
  line-height: 1.3;
}
.booking-card.booking-redesign .service-options label > i {
  position: static;
  grid-column: 3;
  grid-row: 1;
  align-self: center;
  justify-self: end;
}
.booking-card.booking-redesign .service-options label:hover { transform: none; }
.booking-card.booking-redesign .service-options label:has(input:focus-visible) {
  outline: 3px solid #95b99f;
  outline-offset: 2px;
}

/* Brief, unobtrusive feedback for selection and navigation. */
@media(prefers-reduced-motion:no-preference) {
  .booking-card.booking-redesign :is(.service-options label,.sup-opt,.pay-method,.frequency-choices button,.date-card,.time-cards button) {
    transition: border-color 160ms ease, background-color 160ms ease, box-shadow 160ms ease;
  }
  .booking-card.booking-redesign :is(input,select,textarea) {
    transition: border-color 160ms ease, box-shadow 160ms ease;
  }
  .booking-card.booking-redesign #booking-form > fieldset:not([hidden]),
  .booking-card.booking-redesign .booking-option-panel:not([hidden]),
  .booking-card.booking-redesign .booking-includes[open] .booking-includes-body {
    animation: booking-content-enter 160ms ease-out both;
  }
  .booking-card.booking-redesign .form-buttons button { transition: transform 100ms ease, opacity 160ms ease; }
  .booking-card.booking-redesign .form-buttons button:active { transform: scale(.99); }
}
@keyframes booking-content-enter {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: none; }
}
/* Concise window selection; the original palette and numeric inputs remain. */
.booking-card.booking-redesign #service-questions #booking-windows-toggle { display: grid; grid-template-columns: 34px minmax(0,1fr) 28px; gap: 10px; align-items: center; min-height: 58px; padding: 6px 10px; border: 1px solid var(--line); border-radius: 12px; background: #fff; color: var(--ink); }
.booking-card.booking-redesign #booking-windows-toggle .booking-option-copy { display: grid; gap: 0; text-align: left; }
.booking-card.booking-redesign #booking-windows-toggle .booking-option-description { line-height: 1.2; }
.booking-card.booking-redesign .booking-window-icon { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 9px; background: #E7F3EC; color: var(--green); }
.booking-card.booking-redesign .booking-window-icon svg { width: 22px; height: 22px; }
.booking-card.booking-redesign #service-questions #booking-windows-toggle:is([aria-expanded=true],.has-selection) { border-color: var(--green); }
.booking-card.booking-redesign #service-questions #booking-windows-toggle.has-selection { background: #E7F3EC; }
@media(max-width:600px) {
  .booking-card.booking-redesign #service-questions #booking-windows-toggle { min-height: 54px; }
}
.booking-card.booking-redesign #condition-section:not(:has(textarea)):not(:has(.condition-error:not([hidden]))) { display: none; }
.booking-card.booking-redesign .condition-estimate:not(:has(.condition-extra-note:not([hidden]))):not(:has(.condition-details:not([hidden]))) { display: none; }
.booking-card.booking-redesign .booking-option-description:empty { display: none; }
.booking-card.booking-redesign #service-questions #sq-window-block { border-radius: 12px; box-shadow: none; }
.booking-card.booking-redesign #service-questions #sq-window-block .sq-windows { gap: 12px; padding: 14px; }
.booking-card.booking-redesign #service-questions #sq-window-block .sq-count { grid-template-columns: minmax(0,1fr) 132px; gap: 10px; padding-block: 10px; }
.booking-card.booking-redesign #service-questions #sq-window-block .sq-window-main { padding-top: 0; }
.booking-card.booking-redesign #service-questions #sq-window-block :is(label,small,.sq-hint,.sq-window-prices > span) { font-size: 15px; line-height: 1.4; }
.booking-card.booking-redesign #service-questions #sq-window-block .window-stepper { display: grid; grid-template-columns: 44px minmax(0,1fr) 44px; align-items: center; border: 1px solid #76877b; border-radius: 12px; background: #fff; }
.booking-card.booking-redesign #service-questions #sq-window-block .window-stepper input { width: 100%; min-width: 0; height: 44px; min-height: 44px; padding: 0; border: 0; border-radius: 0; background: transparent; font-size: 16px; box-shadow: none; appearance: textfield; }
.booking-card.booking-redesign .window-stepper input::-webkit-inner-spin-button,
.booking-card.booking-redesign .window-stepper input::-webkit-outer-spin-button { appearance: none; margin: 0; }
.booking-card.booking-redesign .window-stepper button { min-width: 44px; min-height: 44px; padding: 0; border: 0; background: transparent; color: var(--green); font-family: inherit; font-size: 22px; font-weight: 500; line-height: 1; border-radius: 11px; }
.booking-card.booking-redesign .window-stepper button:disabled { opacity: .35; cursor: default; }
.booking-card.booking-redesign #service-questions #sq-window-block .sq-window-prices > span { padding: 8px 3px; }
.booking-card.booking-redesign #service-questions #sq-window-block .sq-window-prices > span.is-active { border-color: var(--green); background: #E7F3EC; }
.booking-card.booking-redesign #service-questions #sq-window-block .sq-window-prices b { font-size: 15px; }
.booking-card.booking-redesign #service-questions #sq-window-block .sq-window-safety { padding-top: 0; border-top: 0; }
.booking-card.booking-redesign #service-questions #sq-window-summary > b,
.booking-card.booking-redesign #service-questions #sq-window-summary > span:first-of-type { display: none; }
.booking-card.booking-redesign #service-questions #sq-window-summary > span { font-size: 15px; }
/* Omit the deduction note without reserving space in the booking layout. */
.booking-card.booking-redesign #deduct-hint,
.booking-card.booking-redesign #step3 .review > .review-deduction { display: none; }

/* Compact supplies; the selected option and its price remain visible. */
.booking-card.booking-redesign .supply-options .sup-opt {
  min-height: 76px !important;
  padding: 8px;
  gap: 4px;
  align-content: center;
}
.booking-card.booking-redesign .supply-options .sup-tx b {
  display: block;
  min-height: 0;
  line-height: 1.25;
}
.booking-card.booking-redesign .supply-options .sup-tx small { display: none; }
.booking-card.booking-redesign .supply-options .sup-pr { line-height: 1.25; }
.booking-card.booking-redesign #service-questions #sq-window-block .sq-window-prices { display: none; }

@media(prefers-reduced-motion:reduce) {
  .booking-card.booking-redesign *,
  .booking-card.booking-redesign *::before,
  .booking-card.booking-redesign *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
}
