.sps-booking{max-width:1100px;margin:30px auto}.sps-filter{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;border:1px solid #aaa;border-radius:12px;padding:22px}.sps-filter label{font-weight:700}.sps-filter select,.sps-filter input{box-sizing:border-box;display:block;width:100%;margin-top:8px;padding:11px;font:inherit}.sps-filter button{grid-column:1/-1;justify-self:start;padding:11px 18px}.sps-results{margin-top:22px;border:1px solid #aaa;border-radius:12px;padding:22px}.sps-result{display:grid;grid-template-columns:190px 1fr 190px;gap:18px;align-items:center;padding:14px 4px;border-bottom:1px solid rgba(128,128,128,.35)}.sps-result:last-child{border-bottom:0}.sps-result span,.sps-note{opacity:.72}.sps-badge{display:inline-block;font-size:.75em;font-weight:700;border:1px solid currentColor;border-radius:999px;padding:2px 7px;margin-bottom:5px}.sps-no-exact{padding:4px 0 8px}.sps-results h3:not(:first-child){margin-top:28px}@media(max-width:850px){.sps-filter{grid-template-columns:1fr 1fr}.sps-result{grid-template-columns:1fr 1fr}.sps-result>div:last-child{grid-column:1/-1}}@media(max-width:560px){.sps-filter{grid-template-columns:1fr}.sps-result{grid-template-columns:1fr}}
.sps-start-note{margin-top:18px}

.sps-calendar-error{border:1px solid currentColor;border-radius:10px;padding:16px;margin:4px 0}.sps-calendar-error h3{margin-top:0}

.sps-debug{margin-top:24px;border:2px dashed currentColor;border-radius:12px;padding:18px}
.sps-debug h3{margin-top:0}
.sps-debug-table-wrap{overflow-x:auto}
.sps-debug-table{width:100%;border-collapse:collapse;margin-top:10px}
.sps-debug-table th,.sps-debug-table td{border-bottom:1px solid rgba(128,128,128,.35);padding:8px;text-align:left;white-space:nowrap}

.sps-result{grid-template-columns:190px 1fr 170px auto}
.sps-result-action{justify-self:end}
.sps-select-button{display:inline-block;text-decoration:none;border:1px solid currentColor;border-radius:8px;padding:8px 13px;font-weight:700}
.sps-more-options{margin-top:10px}
.sps-more-options summary{cursor:pointer;font-weight:700;padding:10px 0}
.sps-more-results{border-top:1px solid rgba(128,128,128,.25)}
.sps-selection-summary{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;border:1px solid #aaa;border-radius:12px;padding:20px;margin-bottom:20px}
.sps-selection-summary h3{margin:.25rem 0}
.sps-selection-summary p{margin:.35rem 0}
.sps-selection-kicker{font-size:.8em;font-weight:700;text-transform:uppercase;opacity:.7}
.sps-selection-actions{display:flex;gap:10px;align-items:center}
.sps-continue-disabled{padding:9px 14px;opacity:.5;cursor:not-allowed}
.sps-selection-note{grid-column:1/-1;margin-bottom:0!important}
@media(max-width:850px){.sps-result{grid-template-columns:1fr 1fr}.sps-result-action{justify-self:start}.sps-selection-summary{grid-template-columns:1fr}}

.sps-customer-form{border:1px solid #aaa;border-radius:12px;padding:22px;margin-bottom:20px}
.sps-contact-fields{display:grid;gap:16px}
.sps-contact-fields label{font-weight:700}
.sps-contact-fields input:not([type=checkbox]),.sps-contact-fields textarea{box-sizing:border-box;width:100%;display:block;margin-top:7px;padding:11px;font:inherit}
.sps-two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.sps-policy-check{display:flex;gap:10px;align-items:flex-start}
.sps-policy-check input{margin-top:3px}
.sps-sandbox-banner{border:2px solid currentColor;border-radius:10px;padding:12px 14px;margin-bottom:20px}
.sps-sandbox-banner strong{display:block;margin-bottom:3px}
.sps-sandbox-setup{border:1px dashed currentColor;border-radius:10px;padding:14px;margin-bottom:18px}
.sps-sandbox-checkout-button{justify-self:start;padding:12px 18px;font-weight:700}
.sps-checkout-status{border:2px solid currentColor;border-radius:12px;padding:20px;margin-bottom:20px}
.sps-checkout-status h3{margin:.25rem 0}
.sps-checkout-success .sps-selection-kicker{margin-bottom:4px}
@media(max-width:560px){.sps-two-col{grid-template-columns:1fr}}

.sps-sandbox-booking-success,.sps-sandbox-booking-error{margin-top:12px;border:1px solid currentColor;border-radius:8px;padding:12px}
.sps-sandbox-booking-success code,.sps-sandbox-booking-error code{word-break:break-all}

.sps-checkout-actions{display:grid;gap:16px}
.sps-production-test-box{border:3px solid currentColor;border-radius:12px;padding:16px;margin-top:8px}
.sps-production-test-box p{margin:.4rem 0 1rem}
.sps-live-kicker{font-size:.8em;font-weight:900;letter-spacing:.06em;text-transform:uppercase}
.sps-production-checkout-button{padding:12px 18px;font-weight:900;margin-top:12px}
.sps-production-disabled{border:2px dashed currentColor;border-radius:10px;padding:14px;margin-bottom:18px}
.sps-production-booking-success,.sps-production-booking-error{border:2px solid currentColor;border-radius:10px;padding:14px;margin-top:12px}
.sps-production-booking-error{font-weight:600}
.sps-production-booking-success code,.sps-production-booking-error code{word-break:break-all}

.sps-web-payments{border:2px solid currentColor;border-radius:12px;padding:18px;margin-top:8px}
.sps-web-payments h3{margin-top:0}
.sps-payment-tabs{display:flex;gap:8px;margin:14px 0}
.sps-payment-tab{padding:9px 13px;border:1px solid currentColor;border-radius:8px;cursor:pointer}
.sps-payment-tab.is-active{font-weight:800}
.sps-payment-panel{display:grid;gap:12px}
.sps-web-pay-button{justify-self:start;padding:12px 18px;font-weight:800}
.sps-payment-status{margin-top:14px;border-radius:8px;padding:10px 12px;background:rgba(128,128,128,.12)}
.sps-payment-status.is-error{font-weight:700}
.sps-payment-status.is-success{font-weight:800}
.sps-payment-status.is-partial{font-weight:700}
.sps-legacy-checkout{margin-top:14px;opacity:.8}
.sps-legacy-checkout summary{cursor:pointer;font-weight:700}

.sps-web-confirmation{border:2px solid currentColor;border-radius:12px;padding:18px}
.sps-web-confirmation h3{margin:.2rem 0 .8rem}
.sps-web-confirmation code{word-break:break-all}
.sps-start-over-link{font-weight:800}

.sps-production-web-payments{border-width:3px}
.sps-production-confirm{display:flex;gap:8px;align-items:flex-start;margin:12px 0 16px;font-weight:800}

.sps-production-disabled p{margin:.6rem 0}

.sps-finalize-booking{margin-top:12px;font-weight:900}

.sps-cancellation-policy{border:1px solid currentColor;border-radius:10px;padding:14px;margin:12px 0;line-height:1.45}
.sps-cancellation-policy strong{display:block;margin-bottom:8px}

.sps-selection-hold{margin-top:10px;padding:9px 11px;border:1px solid currentColor;border-radius:8px;display:inline-flex;gap:6px;align-items:center}
.sps-selection-hold-time{font-variant-numeric:tabular-nums;font-weight:800}
.sps-selection-summary.sps-hold-expired .sps-selection-hold{font-weight:700}


/* 8.0 booking-flow skeleton */
.sps-booking-path{border:1px solid rgba(128,128,128,.5);border-radius:14px;padding:14px 16px;margin:14px 0 22px}
.sps-booking-path-heading{display:flex;justify-content:space-between;gap:14px;align-items:baseline;margin-bottom:12px}
.sps-booking-path-heading span{font-size:.9em;opacity:.66}
.sps-booking-path-items{display:flex;align-items:stretch;gap:7px;overflow-x:auto;padding-bottom:3px}
.sps-path-step{display:flex;align-items:center;gap:8px;min-width:max-content;text-align:left;border:1px solid rgba(128,128,128,.45);border-radius:10px;padding:9px 11px;background:transparent;color:inherit;cursor:pointer}
.sps-path-step small{display:block;font-size:.72em;line-height:1.1;opacity:.62;text-transform:uppercase;letter-spacing:.04em}
.sps-path-step strong{display:block;margin-top:2px;font-size:.92em}
.sps-path-number{display:grid;place-items:center;width:24px;height:24px;border:1px solid currentColor;border-radius:999px;font-size:.76em;font-weight:800;opacity:.65}
.sps-path-step.is-current{outline:2px solid currentColor;outline-offset:1px}
.sps-path-step.is-complete .sps-path-number{font-weight:900;opacity:1}
.sps-path-arrow{display:flex;align-items:center;font-size:1.4em;opacity:.35}

.sps-booking-flow{margin:20px 0}
.sps-flow-intro{margin-bottom:12px}
.sps-flow-intro h3{margin-bottom:.25rem}
.sps-flow-intro p{margin-top:0;opacity:.72}
.sps-flow-form{display:block}
.sps-flow-step{border:1px solid #aaa;border-radius:14px;padding:22px}
.sps-flow-step[hidden]{display:none!important}
.sps-flow-step-heading h3{margin:.15rem 0}
.sps-flow-step-heading p{margin:.2rem 0 16px;opacity:.72}
.sps-flow-eyebrow{font-size:.75em;font-weight:800;text-transform:uppercase;letter-spacing:.05em;opacity:.65}
.sps-native-control{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.sps-choice-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}
.sps-choice-card{display:block;text-align:left;border:1px solid rgba(128,128,128,.55);border-radius:11px;padding:14px;background:transparent;color:inherit;cursor:pointer;min-height:54px}
.sps-choice-card:hover{border-color:currentColor}
.sps-choice-card.is-selected{outline:2px solid currentColor;outline-offset:1px}
.sps-choice-card strong{font-size:.96em}
.sps-flow-extra{display:block;margin-top:14px;font-weight:700;max-width:360px}
.sps-flow-extra input{box-sizing:border-box;width:100%;display:block;margin-top:7px;padding:11px;font:inherit}
.sps-flow-actions{display:flex;gap:10px;margin-top:18px}
.sps-flow-actions button{padding:10px 16px;font-weight:700}
.sps-flow-back{background:transparent;border:1px solid currentColor;border-radius:8px}
.sps-flow-next,.sps-flow-search{border-radius:8px}

@media(max-width:800px){
  .sps-choice-cards{grid-template-columns:1fr 1fr}
  .sps-booking-path-heading{display:block}
  .sps-booking-path-heading span{display:block;margin-top:3px}
}
@media(max-width:520px){
  .sps-choice-cards{grid-template-columns:1fr}
  .sps-booking-path{padding:12px}
  .sps-path-arrow{display:none}
  .sps-booking-path-items{gap:6px}
  .sps-path-step{padding:8px 9px}
}

/* 8.0.1 grouped booking flow + stronger booking path */
.sps-booking-path{
  position:sticky;
  top:10px;
  z-index:20;
  background:Canvas;
  color:CanvasText;
  border:2px solid currentColor;
  box-shadow:0 6px 20px rgba(0,0,0,.14);
}
.sps-booking-path-heading strong{font-size:1.05em}
.sps-path-step{background:Canvas;color:CanvasText}
.sps-path-step.is-current{box-shadow:inset 0 0 0 1px currentColor}
.sps-group-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
.sps-group-card,.sps-detail-card{min-height:92px}
.sps-group-card span,.sps-detail-card span{display:block;margin-top:5px;font-size:.88em;opacity:.72;line-height:1.35}
.sps-detail-card:disabled{opacity:.5;cursor:not-allowed}
.sps-flow-message{margin-top:12px;padding:10px 12px;border:1px dashed currentColor;border-radius:8px}
@media(max-width:620px){
  .sps-booking-path{top:4px}
  .sps-group-cards{grid-template-columns:1fr}
}


/* 8.0.2 — card layout + path integration fixes */

/*
 * Legacy .sps-filter button styles made every new choice card span the full
 * parent form grid and shrink to its content. Reset those properties inside
 * the choice-card grids so cards behave as real equal-width grid items.
 */
.sps-choice-cards .sps-choice-card{
  grid-column:auto!important;
  justify-self:stretch!important;
  width:100%;
  box-sizing:border-box;
}

/* Keep the progress path visually integrated with the site's existing theme. */
.sps-booking-path{
  position:relative;
  top:auto;
  background:rgba(255,255,255,.04);
  color:inherit;
  border:1px solid rgba(255,255,255,.45);
  box-shadow:none;
}

.sps-path-step{
  background:rgba(255,255,255,.035);
  color:inherit;
}

.sps-path-step.is-current{
  outline:2px solid currentColor;
  outline-offset:1px;
}

.sps-group-cards{
  width:100%;
}

.sps-group-card,
.sps-detail-card{
  min-width:0;
}


/* 8.0.3 — simpler hierarchy, bottom booking path */
.sps-booking-flow{
  margin:18px 0;
}

.sps-flow-intro{
  display:none!important;
}

.sps-flow-form{
  border:0!important;
  padding:0!important;
  background:transparent!important;
}

.sps-flow-step{
  border:0!important;
  border-radius:0!important;
  padding:0!important;
  background:transparent!important;
}

.sps-flow-step-heading{
  margin-bottom:16px;
}

.sps-choice-cards{
  margin-top:8px;
}

.sps-booking-path{
  position:relative!important;
  top:auto!important;
  margin:28px 0 8px!important;
  padding:12px 14px!important;
  border:1px solid rgba(255,255,255,.28)!important;
  background:rgba(255,255,255,.025)!important;
  box-shadow:none!important;
}

.sps-booking-path-heading{
  margin-bottom:9px!important;
}

.sps-booking-path-heading span{
  opacity:.58!important;
}


/* 8.0.4 — bottom path alignment + reset */
.sps-booking-path{
  display:block!important;
  width:100%!important;
  max-width:none!important;
  box-sizing:border-box!important;
  clear:both!important;
}

.sps-booking-path-heading{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:16px!important;
}

.sps-booking-path-tools{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.sps-reset-booking{
  font-weight:800;
  white-space:nowrap;
}

.sps-booking-path-items{
  width:100%;
  box-sizing:border-box;
}

@media(max-width:700px){
  .sps-booking-path-heading{
    align-items:flex-start!important;
  }

  .sps-booking-path-tools{
    justify-content:flex-start;
  }
}


/* 8.0.5 — centered progress path, two-column detail/duration choices, reset per step */

/* Undo 8.0.4's full-page-width progress bar. */
.sps-booking-path{
  width:calc(100% - 40px)!important;
  max-width:980px!important;
  margin:28px auto 8px!important;
}

.sps-booking-path-items{
  width:auto!important;
}

/* Engineer/rental/detail choices and duration choices use two columns. */
.sps-choice-cards[data-detail-cards],
.sps-choice-cards[data-choice-cards="duration"]{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
}

/* Put Start Over directly in each step title row. */
.sps-flow-step-heading{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
}

.sps-flow-heading-copy{
  min-width:0;
}

.sps-flow-reset{
  flex:0 0 auto;
  font-weight:800;
  white-space:nowrap;
  margin-top:3px;
}

@media(max-width:620px){
  .sps-booking-path{
    width:calc(100% - 20px)!important;
  }

  .sps-flow-step-heading{
    gap:10px;
  }

  .sps-choice-cards[data-detail-cards],
  .sps-choice-cards[data-choice-cards="duration"]{
    grid-template-columns:1fr!important;
  }
}


/* 8.0.6 — diversity-aware availability */
.sps-results-intro{
  margin-top:-4px;
  margin-bottom:14px;
  opacity:.72;
}

.sps-results .sps-result{
  margin-bottom:9px;
}

.sps-results .sps-badge{
  white-space:nowrap;
}


/* 8.0.7 — result refinements + simplified reset placement */
.sps-booking-reset-top{
  margin-top:-6px;
  margin-bottom:18px;
  opacity:.78;
}

.sps-booking-reset-top a,
.sps-reset-booking{
  font-weight:800;
}

.sps-results-refine{
  margin:0 0 18px;
  padding:14px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:10px;
}

.sps-results-refine-heading{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:baseline;
  margin-bottom:10px;
}

.sps-results-refine-heading span{
  font-size:.88em;
  opacity:.65;
}

.sps-results-refine-buttons{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.sps-results-refine-buttons button,
.sps-results-around button{
  padding:8px 11px;
  border-radius:8px;
}

.sps-results-refine-buttons button.is-active{
  outline:2px solid currentColor;
  outline-offset:1px;
  font-weight:800;
}

.sps-results-around{
  display:flex;
  gap:8px;
  margin-top:10px;
  align-items:center;
}

.sps-results-around[hidden]{
  display:none!important;
}

.sps-results-around input{
  max-width:180px;
}


/* 8.0.9 — cancellation acknowledgement + payment polish */

.sps-cancellation-policy{
  padding:16px!important;
}

.sps-cancellation-policy > div{
  margin-bottom:14px;
}

.sps-cancellation-policy .sps-policy-check{
  margin:14px -4px -2px;
  padding:12px 4px 2px;
  border-top:1px solid rgba(255,255,255,.18);
}

.sps-cancellation-policy .sps-policy-check span{
  font-weight:700;
}

.sps-web-payments{
  border:1px solid rgba(255,255,255,.32)!important;
  border-radius:12px!important;
  padding:18px!important;
  background:rgba(255,255,255,.025);
}

.sps-payment-heading{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
  margin-bottom:14px;
}

.sps-payment-heading h3{
  margin:0 0 4px!important;
}

.sps-payment-heading p{
  margin:0;
  opacity:.68;
  font-size:.92em;
}

.sps-payment-tabs{
  display:inline-flex!important;
  gap:4px!important;
  margin:0 0 16px!important;
  padding:4px;
  border:1px solid rgba(255,255,255,.2);
  border-radius:10px;
  background:rgba(0,0,0,.08);
}

.sps-payment-tab{
  border:0!important;
  border-radius:7px!important;
  padding:9px 13px!important;
  background:transparent!important;
  color:inherit!important;
  box-shadow:none!important;
}

.sps-payment-tab.is-active{
  background:rgba(255,255,255,.12)!important;
  outline:1px solid rgba(255,255,255,.55);
  font-weight:800;
}

.sps-payment-panel{
  display:grid!important;
  gap:14px!important;
}

.sps-square-card,
.sps-square-gift-card{
  background:#fff;
  border-radius:8px;
  overflow:hidden;
}

.sps-web-pay-button{
  justify-self:start!important;
  min-width:150px;
  padding:11px 16px!important;
  border-radius:8px!important;
  font-weight:800!important;
}

.sps-payment-status{
  margin-top:16px!important;
  padding:11px 12px!important;
  border-radius:8px!important;
  background:rgba(255,255,255,.07)!important;
  font-size:.92em;
}

@media(max-width:620px){
  .sps-payment-tabs{
    display:grid!important;
    grid-template-columns:1fr 1fr;
    width:100%;
    box-sizing:border-box;
  }

  .sps-payment-tab{
    width:100%;
  }

  .sps-web-pay-button{
    width:100%;
    justify-self:stretch!important;
  }
}


/* 8.0.11 — clearer date language and roomier recommendation cards */
.sps-results .sps-result{
  display:grid!important;
  grid-template-columns:minmax(150px,.8fr) minmax(260px,1.7fr) auto!important;
  align-items:center!important;
  gap:18px!important;
}

.sps-result-date{
  display:flex;
  flex-direction:column;
  gap:3px;
}

.sps-result-date strong{
  font-size:1.02em;
}

.sps-result-date span{
  font-size:1.08em;
  font-weight:800;
}

.sps-result-details{
  min-width:0;
}

.sps-result-reason{
  margin-top:5px;
  line-height:1.35;
  opacity:.82;
}

.sps-result-meta{
  margin-top:7px;
  font-weight:700;
  opacity:.78;
}

.sps-result-action{
  align-self:center;
}

@media(max-width:700px){
  .sps-results .sps-result{
    grid-template-columns:1fr auto!important;
  }

  .sps-result-details{
    grid-column:1 / -1;
    grid-row:2;
  }

  .sps-result-action{
    grid-column:2;
    grid-row:1;
  }
}


/* 8.0.12 — static payment methods, centered progress flow, search feedback */

.sps-payment-tabs{
  display:none!important;
}

.sps-payment-method{
  margin-top:18px;
}

.sps-payment-method + .sps-payment-method{
  margin-top:22px;
  padding-top:18px;
  border-top:1px solid rgba(255,255,255,.16);
}

.sps-payment-method-heading{
  margin-bottom:8px;
  font-size:.96em;
}

.sps-payment-panel[hidden]{
  display:grid!important;
}

.sps-payment-panel{
  gap:10px!important;
}

.sps-booking-path-items{
  display:flex!important;
  justify-content:center!important;
  flex-wrap:wrap!important;
}

.sps-booking-path-heading{
  text-align:center;
}

.sps-booking-path-tools{
  justify-content:center!important;
}

.sps-booking-filter.is-searching{
  opacity:.94;
}

.sps-search-spinner{
  display:inline-block;
  width:14px;
  height:14px;
  margin-right:8px;
  border:2px solid currentColor;
  border-right-color:transparent;
  border-radius:50%;
  vertical-align:-2px;
  animation:sps-search-spin .7s linear infinite;
}

@keyframes sps-search-spin{
  to{transform:rotate(360deg)}
}


/* 8.0.13 — compact centered booking path */
.sps-booking-path{
  width:fit-content!important;
  max-width:calc(100% - 40px)!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

.sps-booking-path-heading{
  min-width:0;
}

.sps-booking-path-items{
  width:fit-content!important;
  max-width:100%;
  margin-left:auto!important;
  margin-right:auto!important;
}

@media(max-width:700px){
  .sps-booking-path{
    width:calc(100% - 20px)!important;
  }

  .sps-booking-path-items{
    width:100%!important;
  }
}


/* 8.0.15 — centered choices + cleaner step-back editing */
.sps-choice-card{
  text-align:center!important;
  align-items:center!important;
  justify-content:center!important;
}

.sps-choice-card strong,
.sps-choice-card span{
  text-align:center!important;
}

.sps-detail-card,
.sps-group-card{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
}


/* 8.0.16 — standardized 1–8 hour choices + stronger navigation + centered refinements */

.sps-flow-actions{
  display:flex!important;
  align-items:center!important;
  gap:12px!important;
}

.sps-flow-next{
  min-width:220px!important;
  padding:14px 24px!important;
  font-size:1.05em!important;
  font-weight:800!important;
}

.sps-flow-back{
  min-width:110px!important;
  padding:11px 16px!important;
  font-size:.98em!important;
  font-weight:700!important;
}

.sps-results-refine{
  text-align:center;
}

.sps-results-refine-heading{
  display:block!important;
  text-align:center!important;
  margin-bottom:12px!important;
}

.sps-results-refine-heading strong{
  display:block;
  margin-bottom:3px;
}

.sps-results-refine-heading span{
  display:block;
  max-width:620px;
  margin:0 auto;
}

.sps-results-refine-buttons{
  justify-content:center!important;
}

.sps-results-around{
  justify-content:center!important;
}

@media(max-width:620px){
  .sps-flow-actions{
    flex-wrap:wrap;
  }

  .sps-flow-next{
    min-width:0!important;
    flex:1 1 100%;
  }

  .sps-flow-back{
    min-width:0!important;
    flex:0 0 50%;
  }
}


/* 8.0.17 — centered page intro + balanced navigation actions */

/* Center only the page-level title/intro. Step headings remain left-aligned. */
.sps-booking > h2{
  text-align:center!important;
}

.sps-booking-reset-top{
  text-align:center!important;
}

/*
 * Navigation spans the same content width as the choice cards above it.
 * Two controls: Back gets 1/3, Continue/Search gets 2/3.
 * One control: it fills the full row.
 */
.sps-flow-actions{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,2fr)!important;
  width:100%!important;
  gap:12px!important;
  justify-content:stretch!important;
  align-items:stretch!important;
}

.sps-flow-actions > button,
.sps-flow-actions > a{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  box-sizing:border-box!important;
  margin:0!important;
}

.sps-flow-actions > :only-child{
  grid-column:1 / -1!important;
}

.sps-flow-back{
  grid-column:1!important;
}

.sps-flow-next,
.sps-flow-search{
  grid-column:2!important;
  padding:14px 24px!important;
  font-size:1.05em!important;
  font-weight:800!important;
}

/* If the only action happens to carry a back/next class, let :only-child win. */
.sps-flow-actions > .sps-flow-back:only-child,
.sps-flow-actions > .sps-flow-next:only-child,
.sps-flow-actions > .sps-flow-search:only-child{
  grid-column:1 / -1!important;
}

/* Refinement belongs beneath the recommendations and stays visually centered. */
.sps-results-refine{
  margin-top:22px!important;
  margin-bottom:0!important;
}

@media(max-width:620px){
  .sps-flow-actions{
    grid-template-columns:minmax(0,1fr) minmax(0,2fr)!important;
    gap:8px!important;
  }

  .sps-flow-actions > .sps-flow-back{
    flex:none!important;
  }

  .sps-flow-actions > .sps-flow-next,
  .sps-flow-actions > .sps-flow-search{
    flex:none!important;
  }
}


/* 8.0.18 — softer primary action, compact nav width, alternating result rows */

/*
 * Keep Back as the existing outlined secondary action. Make Continue/Search
 * outlined at rest using the site's active/hover color, then fill on hover.
 * currentColor lets it inherit the site's button/accent color cleanly.
 */
.sps-flow-next,
.sps-flow-search{
  --sps-action-accent:#d4a64a;
  background:transparent!important;
  color:var(--sps-action-accent)!important;
  border:2px solid var(--sps-action-accent)!important;
  box-shadow:none!important;
  transition:background-color .16s ease,color .16s ease,border-color .16s ease!important;
}

.sps-flow-next:hover,
.sps-flow-next:focus-visible,
.sps-flow-search:hover,
.sps-flow-search:focus-visible{
  background:var(--sps-action-accent)!important;
  color:#111!important;
  border-color:var(--sps-action-accent)!important;
}

/* Navigation row uses about two-thirds of the card row and remains centered. */
.sps-flow-actions{
  width:66.666%!important;
  margin:18px auto 0!important;
}

/* If there's only one action, it still fills that compact action row. */
.sps-flow-actions > :only-child{
  width:100%!important;
}

/* Subtle zebra striping for scanability without turning rows into heavy boxes. */
.sps-results .sps-result:nth-of-type(even){
  background:rgba(0,0,0,.08);
}

.sps-results .sps-result{
  padding-left:10px!important;
  padding-right:10px!important;
}

@media(max-width:700px){
  .sps-flow-actions{
    width:100%!important;
  }
}


/* 8.0.20 — mobile copy, recommendation order, stacked booking summary */
.sps-reset-joiner{
  margin:0 .22em;
}

/* Reliable recommendation zebra striping: the first actual option is dark. */
.sps-recommendation-list .sps-result{
  background:transparent!important;
}
.sps-recommendation-list .sps-result:nth-child(odd){
  background:rgba(0,0,0,.08)!important;
}
.sps-recommendation-list .sps-result:nth-child(even){
  background:transparent!important;
}

/* Bottom booking summary is a true header -> steps -> helper layout. */
.sps-booking-path-heading{
  display:block!important;
  text-align:center!important;
  margin-bottom:12px!important;
}
.sps-booking-path-heading > strong{
  display:block!important;
  font-size:1.12em!important;
}
.sps-booking-path > .sps-booking-path-tools{
  display:block!important;
  text-align:center!important;
  margin-top:12px!important;
}
.sps-booking-path > .sps-booking-path-tools span{
  display:inline!important;
}

/* Mobile recommendation card order: date/time, recommendation reason, Select. */
@media(max-width:700px){
  .sps-recommendation-list .sps-result{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:10px!important;
  }

  .sps-recommendation-list .sps-result-date{
    order:1!important;
  }

  .sps-recommendation-list .sps-result-details{
    order:2!important;
    width:100%!important;
  }

  .sps-recommendation-list .sps-result-action{
    order:3!important;
    width:100%!important;
    align-self:stretch!important;
  }

  .sps-recommendation-list .sps-result-action .sps-select-button{
    display:block!important;
    width:100%!important;
    box-sizing:border-box!important;
    text-align:center!important;
  }

  .sps-booking-path{
    width:calc(100% - 20px)!important;
    max-width:520px!important;
  }

  .sps-booking-path-items{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:7px!important;
    width:100%!important;
    max-width:none!important;
  }

  .sps-booking-path-items .sps-path-arrow{
    display:none!important;
  }

  .sps-booking-path-items .sps-path-step{
    width:100%!important;
    box-sizing:border-box!important;
    text-align:left!important;
  }

  .sps-booking-reset-top{
    padding:0 12px;
  }
}


/* 8.0.21 — selected-session hierarchy, payment hold, narrower card input */

.sps-selection-primary{
  margin:.2rem 0 .35rem!important;
}

.sps-selection-date{
  margin:.15rem 0 .35rem!important;
}

.sps-selection-service{
  opacity:.68;
  margin-bottom:12px;
}

.sps-payment-hold{
  display:inline-flex;
  align-items:baseline;
  gap:6px;
  margin-top:8px;
  padding:7px 10px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:8px;
  background:rgba(255,255,255,.04);
}

.sps-square-card{
  width:100%!important;
  max-width:520px!important;
}

.sps-card-panel{
  justify-items:start!important;
}

@media(max-width:620px){
  .sps-square-card{
    max-width:100%!important;
  }
}


/* 8.0.22 — reliable mobile Square fields + equal card/gift widths */
.sps-payment-method,
.sps-payment-panel{
  min-width:0!important;
  max-width:100%!important;
}

.sps-square-card,
.sps-square-gift-card{
  width:100%!important;
  max-width:520px!important;
  min-width:0!important;
  min-height:48px;
  box-sizing:border-box!important;
}

.sps-square-card iframe,
.sps-square-gift-card iframe{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  display:block!important;
}

.sps-card-panel,
.sps-gift-panel{
  justify-items:start!important;
  width:100%!important;
  max-width:100%!important;
}

@media(max-width:620px){
  .sps-web-payments{
    padding:14px!important;
    max-width:100%!important;
    overflow:visible!important;
  }

  .sps-square-card,
  .sps-square-gift-card{
    width:100%!important;
    max-width:100%!important;
    min-height:52px;
  }
}


/* 8.0.23 — compact centered checkout payment box */
.sps-production-web-payments,
#sps-web-payments{
  width:calc(100% - 40px)!important;
  max-width:720px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  box-sizing:border-box!important;
}

.sps-production-web-payments .sps-payment-heading,
#sps-web-payments .sps-payment-heading{
  max-width:620px;
  margin-left:auto;
  margin-right:auto;
}

.sps-production-web-payments .sps-payment-method,
#sps-web-payments .sps-payment-method,
.sps-production-web-payments .sps-payment-status,
#sps-web-payments .sps-payment-status{
  max-width:620px;
  margin-left:auto!important;
  margin-right:auto!important;
}

.sps-square-card,
.sps-square-gift-card{
  max-width:500px!important;
}

@media(max-width:620px){
  .sps-production-web-payments,
  #sps-web-payments{
    width:100%!important;
    max-width:100%!important;
  }

  .sps-production-web-payments .sps-payment-method,
  #sps-web-payments .sps-payment-method,
  .sps-production-web-payments .sps-payment-heading,
  #sps-web-payments .sps-payment-heading{
    max-width:100%!important;
  }

  .sps-square-card,
  .sps-square-gift-card{
    max-width:100%!important;
  }
}


/* 8.0.24 — stronger choice titles, duration pricing, deliberate date/time rows */

.sps-choice-card strong{
  display:block!important;
  font-size:1.12em!important;
  line-height:1.2!important;
  font-weight:800!important;
}

.sps-detail-card strong,
.sps-group-card strong{
  font-size:1.18em!important;
}

.sps-choice-price{
  display:block!important;
  margin-top:5px!important;
  font-size:.88em!important;
  opacity:.72!important;
  font-weight:600!important;
}

/* When: Soonest full, Today/Tonight/Tomorrow thirds, Pick a Date full. */
[data-choice-cards="when"]{
  display:grid!important;
  grid-template-columns:repeat(6,minmax(0,1fr))!important;
  gap:11px!important;
}
[data-choice-cards="when"] .sps-when-soonest,
[data-choice-cards="when"] .sps-when-date{
  grid-column:1 / -1!important;
}
[data-choice-cards="when"] .sps-when-today,
[data-choice-cards="when"] .sps-when-tonight,
[data-choice-cards="when"] .sps-when-tomorrow{
  grid-column:span 2!important;
}

/* Time: Any full, two 50/50 rows, Pick a Time full. */
[data-choice-cards="time"]{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:11px!important;
}
[data-choice-cards="time"] .sps-time-any,
[data-choice-cards="time"] .sps-time-around{
  grid-column:1 / -1!important;
}

/* Warm accent on recommendation dates. */
.sps-recommendation-list .sps-result-date strong{
  color:#d4a64a!important;
  font-weight:800!important;
}

@media(max-width:520px){
  [data-choice-cards="when"]{
    grid-template-columns:repeat(6,minmax(0,1fr))!important;
  }
  [data-choice-cards="time"]{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  [data-choice-cards="when"] .sps-choice-card,
  [data-choice-cards="time"] .sps-choice-card{
    min-width:0!important;
    padding-left:8px!important;
    padding-right:8px!important;
  }
  [data-choice-cards="when"] .sps-choice-card strong,
  [data-choice-cards="time"] .sps-choice-card strong{
    font-size:1em!important;
  }
}


/* 8.0.25 — centered exact date/time inputs + cleaner first screen */
.sps-date-field,
.sps-around-field{
  margin-left:auto!important;
  margin-right:auto!important;
  text-align:center!important;
}

.sps-date-field input,
.sps-around-field input{
  text-align:center!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

.sps-booking-path[hidden]{
  display:none!important;
}


/* 8.0.26 — stronger first-screen cards */
.sps-group-card{
  min-height:132px!important;
  padding:22px 18px!important;
}

.sps-group-card strong{
  font-size:1.38em!important;
  line-height:1.15!important;
}

.sps-group-card span{
  margin-top:8px!important;
  font-size:.94em!important;
}

@media(max-width:520px){
  .sps-group-card{
    min-height:118px!important;
    padding:20px 16px!important;
  }

  .sps-group-card strong{
    font-size:1.3em!important;
  }
}


/* 8.0.27 — picker only on field click + truly centered payment shell */
.sps-production-web-payments,
#sps-web-payments{
  justify-self:center!important;
  align-self:start!important;
  width:min(720px, calc(100% - 40px))!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

.sps-production-web-payments .sps-payment-heading,
#sps-web-payments .sps-payment-heading,
.sps-production-web-payments .sps-payment-method,
#sps-web-payments .sps-payment-method,
.sps-production-web-payments .sps-payment-status,
#sps-web-payments .sps-payment-status{
  width:100%!important;
  max-width:620px!important;
  box-sizing:border-box!important;
}

.sps-card-panel,
.sps-gift-panel{
  width:100%!important;
}

.sps-square-card,
.sps-square-gift-card{
  width:min(500px, 100%)!important;
}

@media(max-width:620px){
  .sps-production-web-payments,
  #sps-web-payments{
    width:100%!important;
  }
}


/* 8.0.28 — payment shell hugs the actual payment content */
.sps-production-web-payments,
#sps-web-payments{
  width:fit-content!important;
  max-width:calc(100% - 40px)!important;
  min-width:0!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

.sps-production-web-payments .sps-payment-heading,
#sps-web-payments .sps-payment-heading,
.sps-production-web-payments .sps-payment-method,
#sps-web-payments .sps-payment-method,
.sps-production-web-payments .sps-payment-status,
#sps-web-payments .sps-payment-status{
  width:500px!important;
  max-width:100%!important;
}

.sps-square-card,
.sps-square-gift-card{
  width:500px!important;
  max-width:100%!important;
}

@media(max-width:620px){
  .sps-production-web-payments,
  #sps-web-payments{
    width:100%!important;
    max-width:100%!important;
  }

  .sps-production-web-payments .sps-payment-heading,
  #sps-web-payments .sps-payment-heading,
  .sps-production-web-payments .sps-payment-method,
  #sps-web-payments .sps-payment-method,
  .sps-production-web-payments .sps-payment-status,
  #sps-web-payments .sps-payment-status,
  .sps-square-card,
  .sps-square-gift-card{
    width:100%!important;
  }
}


/* 8.0.29 — first-available engineer option */
[data-detail-cards] .sps-detail-card:first-child{
  grid-column:1 / -1;
  min-height:82px!important;
}


/* 8.0.30 — engineer choices first, First Available beneath them */
[data-detail-cards] .sps-detail-card:first-child{
  grid-column:auto!important;
  min-height:92px!important;
}

[data-detail-cards] .sps-detail-card:last-child{
  grid-column:1 / -1!important;
  min-height:82px!important;
}


/* 8.0.31 — rental layout + temporarily unavailable mastering */
[data-detail-cards][data-detail-group="rental"]{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
}

[data-detail-cards][data-detail-group="rental"] .sps-detail-card:first-child{
  grid-column:1 / 2!important;
}

[data-detail-cards][data-detail-group="rental"] .sps-detail-card:last-child{
  grid-column:1 / -1!important;
}

.sps-group-card.is-coming-soon,
.sps-group-card:disabled{
  opacity:.42!important;
  cursor:not-allowed!important;
  filter:grayscale(.35);
  border-color:rgba(128,128,128,.4)!important;
}

.sps-group-card.is-coming-soon:hover,
.sps-group-card:disabled:hover{
  border-color:rgba(128,128,128,.4)!important;
}

@media(max-width:520px){
  [data-detail-cards][data-detail-group="rental"]{
    grid-template-columns:1fr!important;
  }

  [data-detail-cards][data-detail-group="rental"] .sps-detail-card:first-child,
  [data-detail-cards][data-detail-group="rental"] .sps-detail-card:last-child{
    grid-column:1!important;
  }
}


/* 8.0.32 — rental choices side-by-side; mastering disabled one level deeper */
[data-detail-cards][data-detail-group="rental"]{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
}

[data-detail-cards][data-detail-group="rental"] .sps-detail-card:first-child,
[data-detail-cards][data-detail-group="rental"] .sps-detail-card:last-child{
  grid-column:auto!important;
  min-height:92px!important;
}

[data-detail-cards][data-detail-group="mastering"] .sps-detail-card:disabled{
  opacity:.42!important;
  cursor:not-allowed!important;
  filter:grayscale(.35);
  border-color:rgba(128,128,128,.4)!important;
}

[data-detail-cards][data-detail-group="mastering"] .sps-detail-card:disabled:hover{
  border-color:rgba(128,128,128,.4)!important;
}

@media(max-width:520px){
  [data-detail-cards][data-detail-group="rental"]{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }

  [data-detail-cards][data-detail-group="rental"] .sps-detail-card{
    grid-column:auto!important;
    min-width:0!important;
    padding-left:10px!important;
    padding-right:10px!important;
  }

  [data-detail-cards][data-detail-group="rental"] .sps-detail-card strong{
    font-size:1em!important;
  }
}


/* 8.0.33 — Overnight ends at date selection; no redundant time step */
.sps-path-step[hidden],
.sps-path-arrow[hidden],
.sps-flow-next[hidden]{
  display:none!important;
}


/* 8.0.34 — post-payment confirmation / studio arrival page */
.sps-confirmation-page{
  max-width:980px;
  margin:32px auto;
}

.sps-confirmation-hero{
  text-align:center;
  margin-bottom:26px;
}

.sps-confirmation-kicker{
  font-size:.78em;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.06em;
  opacity:.68;
}

.sps-confirmation-hero h1{
  margin:.25rem 0 .35rem;
}

.sps-confirmation-hero p{
  margin:0 auto;
  max-width:680px;
  opacity:.75;
}

.sps-confirmation-summary{
  border:1px solid rgba(128,128,128,.55);
  border-radius:14px;
  padding:22px;
  display:grid;
  grid-template-columns:minmax(0,1.5fr) minmax(240px,.8fr);
  gap:24px;
  align-items:start;
}

.sps-confirmation-summary h2{
  margin:0 0 8px;
}

.sps-confirmation-service{
  font-size:1.05em;
}

.sps-confirmation-square-service{
  margin-top:7px;
  opacity:.65;
}

.sps-confirmation-facts{
  display:grid;
  gap:10px;
}

.sps-confirmation-facts > div{
  border:1px solid rgba(128,128,128,.4);
  border-radius:9px;
  padding:10px 12px;
}

.sps-confirmation-facts small{
  display:block;
  opacity:.62;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.04em;
  margin-bottom:2px;
}

.sps-confirmation-arrival-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  margin-top:22px;
}

.sps-confirmation-photo,
.sps-confirmation-map{
  overflow:hidden;
  border:1px solid rgba(128,128,128,.45);
  border-radius:14px;
  min-height:320px;
}

.sps-confirmation-photo img{
  width:100%;
  height:100%;
  min-height:320px;
  object-fit:cover;
  display:block;
}

.sps-confirmation-map iframe{
  width:100%;
  height:100%;
  min-height:320px;
  border:0;
  display:block;
}

.sps-confirmation-info{
  margin-top:22px;
  border:1px solid rgba(128,128,128,.45);
  border-radius:14px;
  padding:22px;
}

.sps-confirmation-info h2{
  margin-top:0;
}

.sps-confirmation-info-row + .sps-confirmation-info-row{
  border-top:1px solid rgba(128,128,128,.3);
  margin-top:16px;
  padding-top:16px;
}

.sps-confirmation-info-row h3{
  margin:0 0 5px;
}

.sps-confirmation-info-row p{
  margin:0;
}

.sps-confirmation-footer{
  margin-top:22px;
  text-align:center;
}

.sps-confirmation-id{
  opacity:.6;
  font-size:.88em;
}

@media(max-width:700px){
  .sps-confirmation-summary,
  .sps-confirmation-arrival-grid{
    grid-template-columns:1fr;
  }

  .sps-confirmation-page{
    margin:20px auto;
  }

  .sps-confirmation-photo,
  .sps-confirmation-map,
  .sps-confirmation-photo img,
  .sps-confirmation-map iframe{
    min-height:240px;
  }
}


/* 8.1.0 — editable visual booking cards */
.sps-choice-card.has-image{
  position:relative!important;
  overflow:hidden!important;
  isolation:isolate;
  background-image:
    linear-gradient(rgba(0,0,0,.48),rgba(0,0,0,.62)),
    var(--sps-card-image)!important;
  background-size:cover!important;
  background-position:center!important;
  color:#fff!important;
  border-color:rgba(255,255,255,.35)!important;
}

.sps-choice-card.has-image::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(to top,rgba(0,0,0,.22),transparent 55%);
}

.sps-choice-card.has-image strong,
.sps-choice-card.has-image span{
  position:relative;
  z-index:1;
  text-shadow:0 1px 3px rgba(0,0,0,.8);
}

.sps-choice-card.has-image span{
  opacity:.92!important;
}

.sps-choice-card.has-image:hover{
  border-color:#d4a64a!important;
}


/* 8.1.1 — taller visual choice cards */
.sps-group-card{
  min-height:210px!important;
}

[data-detail-cards][data-detail-group="recording"] .sps-detail-card{
  min-height:190px!important;
}

[data-detail-cards][data-detail-group="recording"] .sps-detail-card:last-child{
  min-height:118px!important;
}

[data-detail-cards][data-detail-group="rental"] .sps-detail-card{
  min-height:170px!important;
}

[data-detail-cards][data-detail-group="mixing"] .sps-detail-card,
[data-detail-cards][data-detail-group="mastering"] .sps-detail-card{
  min-height:170px!important;
}

.sps-choice-card.has-image{
  background-position:center center!important;
}

@media(max-width:620px){
  .sps-group-card{
    min-height:170px!important;
  }

  [data-detail-cards][data-detail-group="recording"] .sps-detail-card,
  [data-detail-cards][data-detail-group="rental"] .sps-detail-card,
  [data-detail-cards][data-detail-group="mixing"] .sps-detail-card,
  [data-detail-cards][data-detail-group="mastering"] .sps-detail-card{
    min-height:150px!important;
  }

  [data-detail-cards][data-detail-group="recording"] .sps-detail-card:last-child{
    min-height:108px!important;
  }
}


/* 8.1.2 — larger visual tiles and better portrait framing */
.sps-group-card{
  min-height:255px!important;
}

[data-detail-cards][data-detail-group="recording"] .sps-detail-card{
  min-height:250px!important;
}

/* Portraits look better with faces higher in the crop than a generic center crop. */
[data-detail-cards][data-detail-group="recording"] .sps-detail-card.has-image{
  background-position:center 28%!important;
}

/* First Available stays a secondary utility choice rather than a giant image tile. */
[data-detail-cards][data-detail-group="recording"] .sps-detail-card:last-child{
  min-height:128px!important;
}

[data-detail-cards][data-detail-group="rental"] .sps-detail-card,
[data-detail-cards][data-detail-group="mixing"] .sps-detail-card,
[data-detail-cards][data-detail-group="mastering"] .sps-detail-card{
  min-height:210px!important;
}

@media(max-width:620px){
  .sps-group-card{
    min-height:205px!important;
  }

  [data-detail-cards][data-detail-group="recording"] .sps-detail-card{
    min-height:215px!important;
  }

  [data-detail-cards][data-detail-group="recording"] .sps-detail-card.has-image{
    background-position:center 24%!important;
  }

  [data-detail-cards][data-detail-group="recording"] .sps-detail-card:last-child{
    min-height:116px!important;
  }

  [data-detail-cards][data-detail-group="rental"] .sps-detail-card,
  [data-detail-cards][data-detail-group="mixing"] .sps-detail-card,
  [data-detail-cards][data-detail-group="mastering"] .sps-detail-card{
    min-height:180px!important;
  }
}


/* 8.1.4 — exact date/time first, with broad-search shortcuts underneath */
.sps-specific-picker{
  margin:0 0 14px!important;
  border:1px solid rgba(255,255,255,.28)!important;
  border-radius:14px!important;
  padding:10px!important;
  background:rgba(255,255,255,.035)!important;
}
.sps-specific-picker.is-selected{
  border:2px solid #d4a64a!important;
  padding:9px!important;
  background:rgba(212,166,74,.10)!important;
}
.sps-specific-picker-title{
  width:100%!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:18px!important;
  border:0!important;
  background:transparent!important;
  color:inherit!important;
  padding:8px 10px!important;
  cursor:pointer!important;
  text-align:left!important;
}
.sps-specific-picker-title strong{
  font-size:1.08em!important;
}
.sps-specific-picker-title span{
  color:#d4a64a!important;
  font-weight:800!important;
  text-align:right!important;
}
.sps-specific-picker .sps-flow-extra{
  display:block!important;
  margin:5px auto 2px!important;
}
[data-choice-cards="when"]{
  grid-template-columns:repeat(6,minmax(0,1fr))!important;
}
[data-choice-cards="when"] .sps-when-soonest{
  grid-column:1 / -1!important;
}
[data-choice-cards="when"] .sps-when-today,
[data-choice-cards="when"] .sps-when-tonight,
[data-choice-cards="when"] .sps-when-tomorrow{
  grid-column:span 2!important;
}
[data-choice-cards="time"]{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
}
[data-choice-cards="time"] .sps-time-any{
  grid-column:1 / -1!important;
}
@media(max-width:520px){
  .sps-specific-picker-title{
    display:block!important;
    text-align:center!important;
  }
  .sps-specific-picker-title span{
    display:block!important;
    margin-top:5px!important;
    text-align:center!important;
  }
}


/* 8.1.5 — immediate feedback when selecting a recommendation */
.sps-select-button.is-loading{
  position:relative!important;
  opacity:.9!important;
}
.sps-select-button.is-loading::before{
  content:""!important;
  display:inline-block!important;
  width:14px!important;
  height:14px!important;
  margin-right:8px!important;
  vertical-align:-2px!important;
  border:2px solid currentColor!important;
  border-right-color:transparent!important;
  border-radius:50%!important;
  animation:sps-select-spin .7s linear infinite!important;
}
@keyframes sps-select-spin{
  to{transform:rotate(360deg)}
}


/* 8.1.8 — weekend shortcut */
[data-choice-cards="when"] .sps-when-weekend{
  grid-column:1 / -1!important;
}
.sps-results-refine-days{
  margin-bottom:10px!important;
}


/* 8.1.9 — broaden-search controls above fallback recommendations */
.sps-results-refine-top{
  margin-top:16px!important;
  margin-bottom:18px!important;
}


/* 8.1.10 — calendar-style availability browser */
.sps-availability-browser{
  margin:24px 0!important;
  padding:20px!important;
  border:1px solid rgba(255,255,255,.28)!important;
  border-radius:14px!important;
  background:rgba(255,255,255,.025)!important;
}
.sps-availability-browser-heading{
  text-align:center!important;
  margin-bottom:18px!important;
}
.sps-availability-browser-heading h3{
  margin:0 0 6px!important;
}
.sps-availability-browser-heading p{
  margin:0!important;
  opacity:.8!important;
}
.sps-availability-months{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:18px!important;
}
.sps-availability-month{
  min-width:0!important;
}
.sps-availability-month-title{
  display:block!important;
  text-align:center!important;
  margin-bottom:10px!important;
  font-size:1.05em!important;
}
.sps-calendar-grid{
  display:grid!important;
  grid-template-columns:repeat(7,minmax(0,1fr))!important;
  gap:5px!important;
}
.sps-calendar-weekdays{
  margin-bottom:5px!important;
}
.sps-calendar-weekdays span{
  text-align:center!important;
  font-size:.72em!important;
  opacity:.65!important;
  text-transform:uppercase!important;
}
.sps-calendar-day{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  aspect-ratio:1 / 1!important;
  min-width:0!important;
  border-radius:8px!important;
  font-weight:700!important;
}
button.sps-calendar-day{
  border:1px solid #d4a64a!important;
  background:rgba(212,166,74,.10)!important;
  color:#d4a64a!important;
  cursor:pointer!important;
}
button.sps-calendar-day:hover,
button.sps-calendar-day.is-selected{
  background:#d4a64a!important;
  color:#172b4a!important;
}
.sps-calendar-day.is-unavailable{
  opacity:.25!important;
  border:1px solid rgba(255,255,255,.10)!important;
}
.sps-availability-day-slots{
  margin-top:20px!important;
  padding-top:18px!important;
  border-top:1px solid rgba(255,255,255,.18)!important;
}
.sps-availability-day-panel h4{
  text-align:center!important;
  margin:0 0 12px!important;
  color:#d4a64a!important;
}
.sps-availability-time-buttons{
  display:flex!important;
  flex-wrap:wrap!important;
  justify-content:center!important;
  gap:8px!important;
}
.sps-calendar-time{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:96px!important;
  text-decoration:none!important;
}
@media(max-width:700px){
  .sps-availability-months{
    grid-template-columns:1fr!important;
  }
  .sps-availability-browser{
    padding:14px!important;
  }
  .sps-calendar-grid{
    gap:4px!important;
  }
}


/* 8.1.11 — visual separation between exact pickers and broad choices */
.sps-choice-separator{
  display:flex!important;
  align-items:center!important;
  gap:12px!important;
  margin:14px 0!important;
  color:rgba(255,255,255,.62)!important;
  font-size:.9em!important;
  font-weight:700!important;
  text-transform:lowercase!important;
}
.sps-choice-separator::before,
.sps-choice-separator::after{
  content:""!important;
  flex:1 1 auto!important;
  height:1px!important;
  background:rgba(255,255,255,.22)!important;
}
.sps-choice-separator span{
  flex:0 0 auto!important;
}


/* 8.1.12 — restore mobile page gutter + single-month calendar navigation */
@media(max-width:620px){
  .sps-booking{
    width:calc(100% - 24px)!important;
    max-width:100%!important;
    margin-left:auto!important;
    margin-right:auto!important;
    box-sizing:border-box!important;
  }
  .sps-booking .sps-booking-path{
    width:100%!important;
  }
}

.sps-availability-months{
  display:block!important;
  max-width:560px!important;
  margin:0 auto!important;
}
.sps-availability-month-nav{
  display:grid!important;
  grid-template-columns:42px 1fr 42px!important;
  align-items:center!important;
  gap:8px!important;
  margin-bottom:10px!important;
}
.sps-availability-month-nav .sps-availability-month-title{
  margin:0!important;
}
.sps-calendar-nav{
  width:42px!important;
  height:38px!important;
  display:grid!important;
  place-items:center!important;
  border:1px solid rgba(255,255,255,.25)!important;
  border-radius:8px!important;
  background:transparent!important;
  color:inherit!important;
  font-size:1.55em!important;
  line-height:1!important;
  cursor:pointer!important;
}
.sps-calendar-nav:disabled{
  opacity:.22!important;
  cursor:default!important;
}


/* 8.1.13 — keep exact date/time pickers comfortably inset on phones */
@media(max-width:520px){
  .sps-specific-picker{
    width:calc(100% - 28px)!important;
    max-width:420px!important;
    margin-left:auto!important;
    margin-right:auto!important;
    box-sizing:border-box!important;
  }
  .sps-specific-picker .sps-date-field,
  .sps-specific-picker .sps-around-field{
    width:100%!important;
    max-width:320px!important;
    box-sizing:border-box!important;
  }
  .sps-specific-picker .sps-date-field input,
  .sps-specific-picker .sps-around-field input{
    width:100%!important;
    max-width:320px!important;
    box-sizing:border-box!important;
  }
}


/* 8.2.0 — promo codes + express payment methods */
.sps-promo-box{
  width:100%!important;
  margin:0 0 16px!important;
}
.sps-promo-box label{
  display:block!important;
  margin-bottom:7px!important;
}
.sps-promo-row{
  display:grid!important;
  grid-template-columns:1fr auto!important;
  gap:8px!important;
}
.sps-promo-code{
  min-width:0!important;
  width:100%!important;
  box-sizing:border-box!important;
}
.sps-apply-promo{
  min-width:88px!important;
}
.sps-promo-status{
  margin-top:7px!important;
  font-size:.9em!important;
}
.sps-promo-status.is-success{color:#d4a64a!important}
.sps-promo-status.is-error{font-weight:700!important}
@media(max-width:520px){
  .sps-promo-row{
    grid-template-columns:minmax(0,1fr) 82px!important;
  }
}


/* 8.2.3 — compact mobile native pickers + 4+ hour savings indicator */
.sps-choice-discount{
  display:inline-block!important;
  margin-top:6px!important;
  padding:3px 8px!important;
  border:1px solid #d4a64a!important;
  border-radius:999px!important;
  color:#d4a64a!important;
  font-size:.76em!important;
  font-weight:800!important;
  line-height:1.2!important;
}

@media(max-width:520px){
  .sps-specific-picker .sps-date-field,
  .sps-specific-picker .sps-around-field{
    width:84%!important;
    max-width:280px!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }

  .sps-specific-picker .sps-date-field input,
  .sps-specific-picker .sps-around-field input{
    display:block!important;
    width:100%!important;
    max-width:280px!important;
    min-width:0!important;
    margin-left:auto!important;
    margin-right:auto!important;
    box-sizing:border-box!important;
  }
}


/* 8.2.5 — page-specific preset booking entry points */
.sps-preset-hidden-step{display:none!important}
.sps-preset-path .sps-preset-fixed-step{display:none!important}
.sps-flow-form[data-preset]:not([data-preset=""]) [data-flow-step="duration"] .sps-flow-back{display:none!important}


/* 8.2.6 — preset flows are their own 3-step experience */
.sps-flow-form[data-preset]:not([data-preset=""]) [data-flow-step="duration"] .sps-flow-actions{
  grid-template-columns:1fr!important;
}
.sps-flow-form[data-preset]:not([data-preset=""]) [data-flow-step="duration"] .sps-flow-next{
  grid-column:1 / -1!important;
  width:100%!important;
}


/* 8.2.8 — centered mobile native date/time controls + mobile step auto-scroll */
@media(max-width:520px){
  .sps-specific-picker .sps-date-field,
  .sps-specific-picker .sps-around-field{
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    width:100%!important;
    max-width:none!important;
    margin-left:auto!important;
    margin-right:auto!important;
    text-align:center!important;
  }

  .sps-specific-picker .sps-date-field input,
  .sps-specific-picker .sps-around-field input{
    display:block!important;
    width:82%!important;
    max-width:280px!important;
    min-width:0!important;
    margin:7px auto 0!important;
    align-self:center!important;
    box-sizing:border-box!important;
  }
}


/* 8.3.1 — checkout clarity, discount summaries, split payment guidance */
.sps-required-missing{
  border-color:#d96b6b!important;
  box-shadow:0 0 0 2px rgba(217,107,107,.22)!important;
}
.sps-required-missing-wrap{
  position:relative;
}
.sps-required-error-note{
  display:inline-block;
  margin-top:7px;
  padding:3px 8px;
  border-radius:999px;
  font-size:.78em;
  font-weight:800;
  line-height:1.35;
  background:rgba(217,107,107,.14);
  border:1px solid rgba(217,107,107,.55);
}
.sps-cancellation-policy.sps-required-missing-wrap,
.sps-policy-check.sps-required-missing-wrap{
  border-color:#d96b6b!important;
  box-shadow:0 0 0 2px rgba(217,107,107,.18)!important;
}
.sps-payment-status.is-blocking{
  padding:15px 16px!important;
  border:1px solid rgba(217,107,107,.72)!important;
  background:rgba(217,107,107,.13)!important;
  font-size:1.02em;
  line-height:1.45;
}
.sps-promo-status.is-success{
  display:grid;
  gap:3px;
  margin-top:10px;
  padding:11px 12px;
  border:1px solid rgba(212,166,74,.55);
  border-radius:9px;
  background:rgba(212,166,74,.08);
}
.sps-promo-status.is-success span{
  display:block;
}
.sps-promo-status.is-success small{
  opacity:.78;
}
.sps-payment-method-heading{
  display:flex;
  flex-wrap:wrap;
  gap:7px 12px;
  align-items:baseline;
}
.sps-payment-method-note{
  font-size:.82em;
  font-weight:600;
  opacity:.78;
}
.sps-split-payment-note{
  margin:10px 0 16px;
  padding:11px 12px;
  border-radius:9px;
  background:rgba(128,128,128,.10);
  line-height:1.45;
  font-size:.92em;
}
.sps-confirmation-discount-note,
.sps-confirmation-original-price{
  display:block;
  margin-top:4px;
  font-size:.82em;
  line-height:1.3;
}
.sps-confirmation-discount-note{
  color:#d4a64a;
  font-weight:800;
}
.sps-confirmation-original-price{
  opacity:.72;
  font-weight:600;
}

/* 8.3.2 — promo alignment and uppercase entry */
.sps-promo-wrap{width:500px!important;max-width:100%!important;margin-left:0!important;margin-right:auto!important}
.sps-promo-row{width:100%!important;max-width:500px!important}
.sps-promo-code{text-transform:uppercase!important;letter-spacing:.035em}
@media(max-width:560px){.sps-promo-wrap,.sps-promo-row{width:100%!important;max-width:100%!important}}

/* 8.3.3 — center promo controls with payment column and match action buttons */
.sps-promo-box,
.sps-promo-wrap{
  width:500px!important;
  max-width:100%!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
.sps-promo-row{
  width:100%!important;
  max-width:500px!important;
  grid-template-columns:minmax(0,1fr) 150px!important;
}
.sps-apply-promo{
  width:150px!important;
  min-width:150px!important;
  padding:11px 16px!important;
  border-radius:8px!important;
  font-weight:800!important;
}
@media(max-width:620px){
  .sps-promo-box,.sps-promo-wrap,.sps-promo-row{
    width:100%!important;
    max-width:100%!important;
  }
  .sps-promo-row{
    grid-template-columns:minmax(0,1fr) 110px!important;
  }
  .sps-apply-promo{
    width:110px!important;
    min-width:110px!important;
  }
}

/* 8.3.4 — align split-payment guidance with payment fields */
.sps-split-payment-note{width:500px!important;max-width:100%!important;margin-left:auto!important;margin-right:auto!important;box-sizing:border-box!important}
@media(max-width:620px){.sps-split-payment-note{width:100%!important;max-width:100%!important}}
