/* Reserve space for vertical scrollbar on cart/checkout (price blocks don’t jump). */
html:has(body:has(.rental-cart)),
html:has(body.woocommerce-cart),
html:has(body.woocommerce-checkout) {
  scrollbar-gutter: stable;
}

@media (max-width: 767.98px) {
  html:has(body:has(.rental-cart)),
  html:has(body.woocommerce-cart),
  html:has(body.woocommerce-checkout) {
    scrollbar-gutter: auto;
    overflow-x: hidden;
    max-width: 100%;
  }

  body.woocommerce-cart,
  body.woocommerce-checkout,
  body:has(.rental-cart) {
    overflow-x: hidden;
    max-width: 100%;
  }
}

/*
 * Brand tokens only on rental flow pages — canvas stays scoped to WC content (see `.woocommerce`),
 * so breadcrumb stays default and footer / `.dumpsterRental` CTA keeps normal backgrounds.
 */
body.woocommerce-cart,
body.woocommerce-checkout,
body:has(.rental-cart) {
  --primary-color: var(--td-primary, #294467);
  --primary-color-rgb: var(--td-primary-rgb, 41, 68, 103);
  --primary: var(--td-primary, #294467);
  --header-bg: var(--td-primary, #294467);
  /* Tinted fills from logo primary (~12% on white) */
  --primary-light: color-mix(in srgb, var(--td-primary, #294467) 13%, #ffffff);
  --primary-hover: var(--td-primary-hover, #1f364f);
  --primary-dark: var(--td-primary-hover, #1f364f);

  /* Cart/checkout CTAs + active step: logo coral (--td-secondary) */
  --rental-flow-cta: var(--td-secondary, #c65252);
  --rental-flow-cta-rgb: var(--td-secondary-rgb, 198, 82, 82);
  --rental-flow-cta-hover: var(--td-secondary-hover, #a84343);

  /* Invalid/required/chrome: coral (orange read as clash vs CTAs on navy slab); global tokens unchanged. */
  --td-accent-orange: var(--td-secondary, #c65252);
  --td-accent-orange-rgb: var(--td-secondary-rgb, 198, 82, 82);

  /*
   * Borders aligned with Get a Quote fields (thin strokes + slight rounding).
   * Primary CTAs stay pill-shaped (9999px) like the rest of the theme—not .btnCall’s square corners.
   */
  --rental-field-border-width: 1px;
  --rental-field-radius: 4px;
  --rental-cta-border-width: 1px;
  --rental-cta-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25);
  --rental-cart-btn-radius: 9999px;

  /* Cards, inputs, Places dropdown — required; otherwise var(--color-surface) is invalid and backgrounds drop out */
  --color-surface: #fff;
  --color-surface-subtle: #eef2f8;
  /* Text on coral / primary CTAs (invalid var was letting WC underline .btn / #place_order text fall back to blue). */
  --color-on-primary: #fff;
}

/* Kill the thin white gutter: primary-nav .breadcrumb uses margin-bottom: 1rem, and OL flow margins stack. */
body:has(.rental-cart) nav[aria-label="breadcrumb"] {
  margin-bottom: 0;
}

body:has(.rental-cart) nav[aria-label="breadcrumb"] .breadcrumb {
  margin-bottom: 0;
  margin-block-start: 0;
  margin-block-end: 0;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

/* Full-bleed rental strip — white canvas like the rest of the site (form panels carry the blue slab). */
body:has(.rental-cart) .woocommerce {
  max-width: none;
  width: 100%;
  margin: 0;
  padding-top: 0;
  padding-left: 0;
  padding-right: 0;
  background-color: var(--color-surface, #fff);
}

body:has(.rental-cart) .woocommerce > :first-child {
  margin-top: 0 !important;
}

/* Bootstrap .container-fluid adds horizontal padding — background looked inset on wide screens. */
.rental-cart.container-fluid {
  width: 100%;
  max-width: 100%;
  margin-left: 0;
  margin-right: 0;
  padding-left: 0;
  padding-right: 0;
  box-sizing: border-box;
  overflow-x: clip;
}

.rental-cart {
  --card-bg: var(--color-surface, #fff);
  /* Theme may omit --color-border; fall back so cards/inputs always paint a stroke */
  --card-border: var(--color-border, #cbd5e1);
  --card-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
  --form-card-bg: var(--color-surface, #fff);
  --form-card-border: 1px solid var(--color-border, #cbd5e1);
  --form-card-radius: 8px;
  --form-card-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
  --form-card-padding: 2rem;
  --header-bg: var(--primary-color, #294467);
  --accent-success: var(--tertiary-color, #1a8943);
  --accent-warning: #e7711b;
  --text-muted: var(--color-text-muted);
  --input-border: var(--color-border, #cbd5e1);
  --error-color: var(--td-accent-orange, #c65252);
  --gutter-mobile: var(--gutter-mobile, 12px);
  --gutter-tablet: var(--gutter-tablet, 16px);
  --gutter-desktop: var(--gutter-desktop, 20px);
  --gutter-large: var(--gutter-large, 24px);
  --container-max-width: var(--container-max-width, 1200px);
  /* --rental-cart-btn-radius: pill CTAs (set on cart/checkout body, matches theme nav/contact chips) */
  background: var(--color-surface, #fff);
  padding: 2rem 0 3rem;
}

/* Cart + checkout: navy slab (get-a-quote / .msg-parts-container); thank-you uses default white tokens on .rental-cart. */
.rental-cart:not(.rental-cart--confirmation) {
  /* Solid primary: translucent navy over white reads washed — keep slab opaque (#294467). */
  --form-card-bg: var(--primary-color, #294467);
  --form-card-border: none;
  --form-card-radius: 0;
  --form-card-shadow: 0 4px 28px rgba(17, 28, 45, 0.22);
}

.rental-cart__header {
  margin-bottom: 1.5rem;
}

.rental-cart__title {
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  font-weight: 700;
  color: #1f2937;
  margin-bottom: 0.25rem;
}

.rental-cart__subtitle {
  color: var(--text-muted);
  font-size: 0.95rem;
}

/* Shared overlay and hidden state for all cart modals */
.rental-cart__quote-expiry-modal,
.rental-cart__call-modal,
.rental-cart__quote-modal,
.rental-cart__weight-calc-modal {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.75);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  padding: 1.5rem;
  animation: fadeIn 0.2s ease;
}

.rental-cart__weight-calc-modal {
  background: rgba(17, 28, 45, 0.72);
}

.rental-cart__quote-expiry-modal--hidden,
.rental-cart__call-modal--hidden,
.rental-cart__quote-modal--hidden,
.rental-cart__weight-calc-modal--hidden {
  display: none;
}

/* Modal inner boxes need positioning context so the top-right X button anchors correctly. */
.rental-cart__call-modal-inner,
.rental-cart__quote-modal-inner,
.rental-cart__quote-expiry-modal-inner,
.rental-cart__weight-calc-modal-inner {
  position: relative;
}

/* Shared top-right "X" close button used across ecomm modals (call-us, lock-in-quote,
 * restart-cart, pricing-change-confirm, weight calculator). quote-expiry intentionally
 * omits this because outside-click dismissal is blocked while the cart is expiring. */
.rental-cart__modal-close-x {
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
  width: 2rem;
  height: 2rem;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: 0;
  border-radius: 50%;
  color: var(--text-muted, #666);
  line-height: 0;
  cursor: pointer;
  transition: background-color 0.15s ease, color 0.15s ease;
  z-index: 2;
}

.rental-cart__modal-close-x:hover {
  background-color: rgba(0, 0, 0, 0.06);
  color: var(--text-dark, #1a1a1a);
}

.rental-cart__modal-close-x:focus-visible {
  outline: 2px solid var(--primary-color, #294467);
  outline-offset: 2px;
  background-color: rgba(0, 0, 0, 0.06);
  color: var(--text-dark, #1a1a1a);
}

/* Weight calc modal inner wraps .td-weight-calc (rounded border); tuck the X
 * slightly inside so it sits above the card's corner rather than floating in whitespace. */
.rental-cart__modal-close-x--weight-calc {
  top: 0.75rem;
  right: 0.75rem;
  background-color: rgba(255, 255, 255, 0.9);
}

.rental-cart__modal-close-x--weight-calc:hover {
  background-color: #fff;
  color: var(--primary-color, #294467);
}

.rental-cart__modal-close-x--weight-calc:focus-visible {
  background-color: #fff;
}

/* Weight calculator modal — inner sizing + themed card chrome */
.rental-cart__weight-calc-modal-inner {
  width: 100%;
  max-width: 480px;
  animation: slideUp 0.3s ease;
}

.rental-cart__weight-calc-modal .td-weight-calc {
  max-width: 100%;
  max-height: 90vh;
  overflow-y: auto;
  overflow-x: visible;
  overscroll-behavior: contain;
  margin: 0;
  padding: 1.625rem 1.5rem 1.125rem;
  border: 1px solid var(--card-border, #cbd5e1);
  border-radius: 8px;
  box-shadow: 0 20px 50px rgba(17, 28, 45, 0.28), 0 1px 0 rgba(255, 255, 255, 0.06) inset;
  scrollbar-width: thin;
  scrollbar-color: rgba(var(--primary-color-rgb, 41, 68, 103), 0.35) transparent;
}

.rental-cart__weight-calc-modal .td-weight-calc::-webkit-scrollbar {
  width: 6px;
}

.rental-cart__weight-calc-modal .td-weight-calc::-webkit-scrollbar-track {
  background: transparent;
}

.rental-cart__weight-calc-modal .td-weight-calc::-webkit-scrollbar-thumb {
  background-color: rgba(var(--primary-color-rgb, 41, 68, 103), 0.22);
  border-radius: 3px;
}

.rental-cart__weight-calc-modal .td-weight-calc::-webkit-scrollbar-thumb:hover {
  background-color: rgba(var(--primary-color-rgb, 41, 68, 103), 0.38);
}

/* Quote expiry modal: "Are you still there?" shown when ~1 min left */

.rental-cart__quote-expiry-modal-inner {
  background: var(--color-surface);
  border-radius: 12px;
  padding: 2rem;
  max-width: 420px;
  width: 100%;
  text-align: center;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
  animation: slideUp 0.3s ease;
}

.rental-cart__quote-expiry-modal-icon {
  display: flex;
  justify-content: center;
  margin-bottom: 1rem;
  color: var(--primary-color, #294467);
}

.rental-cart__quote-expiry-modal-icon svg {
  width: 48px;
  height: 48px;
}

.rental-cart__quote-expiry-modal-title {
  margin-bottom: 0.75rem;
  font-size: 1.5rem;
  font-weight: 600;
  text-align: center;
  color: var(--text-color, var(--color-text-secondary));
}

.rental-cart__quote-expiry-modal-countdown {
  margin: 0 0 1.5rem;
  text-align: center;
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--color-text);
  line-height: 1.2;
}

#quote-expiry-countdown {
  color: var(--primary-color, #294467);
  font-weight: 700;
}

#quote-expiry-countdown.rental-cart__quote-expiry-modal-countdown--urgent {
  color: var(--td-accent-orange, #c65252);
}

#quote-expiry-countdown.rental-cart__quote-expiry-modal-countdown--expired,
.rental-cart__quote-expiry-modal-countdown.rental-cart__quote-expiry-modal-countdown--expired {
  color: var(--accent-warning, #e7711b);
}

.rental-cart__quote-expiry-modal-actions {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  align-items: stretch;
}

.rental-cart__quote-expiry-modal-close {
  background: transparent;
  border: 0;
  color: var(--text-muted, #666);
  font-size: 0.9375rem;
  cursor: pointer;
  padding: 0.5rem;
  transition: color 0.2s;
}

.rental-cart__quote-expiry-modal-close:hover {
  color: var(--text-color, var(--color-text-secondary));
}

/* Restart-cart modal: pill CTAs; modal sits outside .rental-cart so global .btn-primary (square/coral) would win without these rules.
 * Continue = same coral primary as .rental-cart .btn-primary; Start Over = secondary navy outline so it doesn’t compete. */
.rental-cart__quote-expiry-modal #restart-cart-modal-actions .btn {
  display: inline-flex;
  align-items: center;
  width: 100%;
  justify-content: center;
  border-radius: var(--rental-cart-btn-radius, 9999px);
}

.rental-cart__quote-expiry-modal #restart-cart-modal-actions .rental-cart__quote-expiry-modal-extend.btn-primary {
  font-weight: 600;
  background: var(--rental-flow-cta, var(--td-secondary, #c65252));
  border: var(--rental-cta-border-width, 1px) solid var(--rental-flow-cta, var(--td-secondary, #c65252));
  color: var(--color-on-primary, #fff);
  text-decoration: none;
  box-shadow: var(--rental-cta-shadow, 0 4px 4px 0 rgba(0, 0, 0, 0.25));
  transition:
    background-color 0.15s ease,
    border-color 0.15s ease,
    color 0.15s ease,
    box-shadow 0.15s ease,
    text-decoration-color 0.15s ease,
    transform 0.08s ease;
}

.rental-cart__quote-expiry-modal #restart-cart-modal-actions .rental-cart__quote-expiry-modal-extend.btn-primary:hover:not(:disabled) {
  background: #fff !important;
  border-color: #fff !important;
  color: var(--rental-flow-cta, var(--td-secondary, #c65252)) !important;
  opacity: 1;
  text-decoration: underline;
  text-underline-offset: 2px;
  box-shadow: 0 2px 10px rgba(17, 28, 45, 0.18);
}

.rental-cart__quote-expiry-modal #restart-cart-modal-actions .rental-cart__quote-expiry-modal-extend.btn-primary:focus-visible {
  outline: 2px solid var(--td-secondary, #c65252);
  outline-offset: 2px;
}

.rental-cart__quote-expiry-modal #restart-cart-modal-actions .rental-cart__quote-expiry-modal-extend.btn-primary:active:not(:disabled) {
  transform: scale(0.99);
}

/* Start Over — scoped to restart modal only (class name is legacy) */
.rental-cart__quote-expiry-modal #restart-cart-modal-actions .rental-cart__btn--destructive {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: var(--rental-cta-border-width, 1px) solid var(--td-primary, #294467);
  color: var(--td-primary, #294467);
  font-weight: 600;
  font-size: 1.25rem;
  line-height: 1.5;
  padding: 0.5rem 1rem;
  border-radius: var(--rental-cart-btn-radius, 9999px);
  box-shadow: none;
  transition:
    background 0.2s,
    color 0.2s,
    border-color 0.2s,
    box-shadow 0.2s,
    transform 0.08s ease;
}
/* Larger hit area so gap above button doesn’t cause hover stutter */
.rental-cart__quote-expiry-modal #restart-cart-modal-actions .rental-cart__btn--destructive::before {
  content: '';
  position: absolute;
  top: -0.8rem;
  left: -4px;
  right: -4px;
  bottom: -4px;
  z-index: -1;
}
.rental-cart__quote-expiry-modal #restart-cart-modal-actions .rental-cart__btn--destructive:hover {
  background: var(--td-primary-hover, #1f364f);
  color: var(--color-on-primary, #fff);
  border-color: var(--td-primary-hover, #1f364f);
  box-shadow: 0 2px 10px rgba(var(--td-primary-rgb, 41, 68, 103), 0.25);
}
.rental-cart__quote-expiry-modal #restart-cart-modal-actions .rental-cart__btn--destructive:focus-visible {
  outline: 2px solid var(--td-primary, #294467);
  outline-offset: 2px;
}
.rental-cart__quote-expiry-modal #restart-cart-modal-actions .rental-cart__btn--destructive:focus {
  box-shadow: 0 0 0 2px rgba(var(--td-primary-rgb, 41, 68, 103), 0.28);
}
.rental-cart__quote-expiry-modal #restart-cart-modal-actions .rental-cart__btn--destructive:active:not(:disabled) {
  transform: scale(0.99);
}

.rental-field {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.rental-field__label {
  font-size: 0.7rem;
  font-weight: 700;
  color: #4b5563;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.rental-field__input,
.rental-field__select,
.rental-field__textarea {
  width: 100%;
  border: var(--rental-field-border-width, 1px) solid var(--input-border, #cbd5e1);
  border-radius: var(--rental-field-radius, 4px);
  padding: 0.6rem 0.75rem;
  font-size: 0.95rem;
  background: var(--color-surface);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.rental-field__input:hover:not(:focus),
.rental-field__select:hover:not(:focus),
.rental-field__textarea:hover:not(:focus) {
  border-color: #cbd5e1;
}

.rental-field__input:focus,
.rental-field__select:focus,
.rental-field__textarea:focus {
  outline: none;
  border-color: var(--primary-color, #294467);
  box-shadow: 0 0 0 2px rgba(var(--primary-color-rgb, 41, 68, 103), 0.2);
}

.rental-field__textarea {
  min-height: 90px;
  resize: vertical;
}

.rental-cart__steps-indicator {
  margin-bottom: 2rem;
}

.rental-cart__steps-indicator-list {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0;
  list-style: none;
  margin: 0;
  padding: 0;
  counter-reset: step-indicator;
}

.rental-cart__steps-indicator-item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  min-width: 0;
}

.rental-cart__steps-indicator-item:last-child .rental-cart__steps-indicator-connector {
  display: none;
}

.rental-cart__steps-indicator-num {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 50%;
  background: #e5e7eb;
  color: #6b7280;
  font-size: 0.875rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.rental-cart__steps-indicator-label {
  margin-top: 0.5rem;
  font-size: 0.8125rem;
  font-weight: 500;
  line-height: 1.25;
  color: var(--text-muted);
  text-align: center;
  transition: color 0.2s ease;
}

.rental-cart__steps-indicator-connector {
  position: absolute;
  top: 1.125rem;
  left: calc(50% + 1.125rem);
  right: calc(-50% + 1.125rem);
  height: 2px;
  background: #e5e7eb;
  transition: background 0.2s ease;
}

.rental-cart__steps-indicator-item--completed .rental-cart__steps-indicator-num {
  background: var(--accent-success, #1a8943);
  color: var(--color-on-primary);
}

.rental-cart__steps-indicator-item--completed .rental-cart__steps-indicator-label {
  color: var(--text-muted);
}

.rental-cart__steps-indicator-item--completed .rental-cart__steps-indicator-connector {
  background: var(--accent-success, #1a8943);
}

.rental-cart__steps-indicator-item--active .rental-cart__steps-indicator-num {
  background: var(--rental-flow-cta, #c65252);
  color: #fff;
  box-shadow: 0 0 0 2px rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.25);
}

.rental-cart__steps-indicator-item--active .rental-cart__steps-indicator-label {
  color: var(--rental-flow-cta, #c65252);
  font-weight: 600;
}

.rental-cart__steps-indicator-item--active .rental-cart__steps-indicator-connector {
  background: #e5e7eb;
}

.rental-cart__steps-indicator-item--upcoming .rental-cart__steps-indicator-num {
  background: #e5e7eb;
  color: #9ca3af;
}

.rental-cart__steps-indicator-item--upcoming .rental-cart__steps-indicator-label {
  color: #9ca3af;
}

.rental-cart__steps-indicator-item--reachable {
  cursor: pointer;
}

/* Step indicator link (checkout: back to cart) — match num/label rhythm of non-link items */
.rental-cart__steps-indicator-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  color: inherit;
  text-decoration: none;
  cursor: pointer;
}

.rental-cart__steps-indicator-link .rental-cart__steps-indicator-label {
  margin-top: 0;
}

@media (max-width: 575.98px) {
  .rental-cart__steps-indicator-label {
    font-size: 0.75rem;
    line-height: 1.25;
  }
}

/* Step indicator placement; :empty when indicator is in summary bar */
.rental-cart__step-indicator-placement:empty {
  display: none;
}

/* Summary bar: slot for pill (replaces Edit when present) */
.rental-cart__summary-bar-step-slot {
  flex-shrink: 0;
  min-width: 0;
  margin-left: 1rem;
}

.rental-cart__summary-bar-step-slot:empty {
  display: none;
}

.rental-cart__summary-bar-step-slot:not(:empty) {
  display: flex;
  align-items: center;
}

.rental-cart__summary-bar .rental-cart__summary-bar-step-slot:not(:empty) + .rental-cart__summary-edit {
  display: none;
}

/* Pill step indicator in summary bar */
.rental-cart__summary-bar .rental-cart__steps-indicator {
  margin-bottom: 0;
}

.rental-cart__summary-bar .rental-cart__steps-indicator-list {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  gap: 0;
  height: 2rem;
  min-width: 10rem;
  border-radius: 999px;
  overflow: hidden;
  background: #e5e7eb;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.06);
}

.rental-cart__summary-bar .rental-cart__steps-indicator-item {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  min-width: 0;
}

/* Diagonal segment edges (clip-path) */
.rental-cart__summary-bar .rental-cart__steps-indicator-item:first-child {
  clip-path: polygon(0 0, 100% 0, 92% 100%, 0 100%);
}

.rental-cart__summary-bar .rental-cart__steps-indicator-item:not(:first-child):not(:last-child) {
  clip-path: polygon(8% 0, 100% 0, 92% 100%, 0 100%);
}

.rental-cart__summary-bar .rental-cart__steps-indicator-item:last-child {
  clip-path: polygon(8% 0, 100% 0, 100% 100%, 0 100%);
}

.rental-cart__summary-bar .rental-cart__steps-indicator-num {
  width: auto;
  height: auto;
  min-width: 1.25rem;
  font-size: 0.875rem;
  font-weight: 700;
  background: transparent;
  border-radius: 0;
  position: relative;
  z-index: 2;
}

.rental-cart__summary-bar .rental-cart__steps-indicator-label {
  display: none;
}

.rental-cart__summary-bar .rental-cart__steps-indicator-connector {
  display: none;
}

.rental-cart__summary-bar .rental-cart__steps-indicator-item--completed {
  background: var(--accent-success, #1a8943);
}

.rental-cart__summary-bar .rental-cart__steps-indicator-item--completed .rental-cart__steps-indicator-num {
  color: var(--color-on-primary);
}

.rental-cart__summary-bar .rental-cart__steps-indicator-item--active {
  background: var(--rental-flow-cta, #c65252);
}

.rental-cart__summary-bar .rental-cart__steps-indicator-item--active .rental-cart__steps-indicator-num {
  color: #fff;
}

.rental-cart__summary-bar .rental-cart__steps-indicator-item--upcoming {
  background: #e5e7eb;
}

.rental-cart__summary-bar .rental-cart__steps-indicator-item--upcoming .rental-cart__steps-indicator-num {
  color: #6b7280;
}

.rental-cart__summary-bar .rental-cart__steps-indicator-item--reachable {
  cursor: pointer;
}

.rental-cart__summary-bar .rental-cart__steps-indicator-item--reachable:hover {
  filter: brightness(1.08);
}

.rental-cart__summary-bar .rental-cart__steps-indicator-item--upcoming:not(.rental-cart__steps-indicator-item--reachable) {
  cursor: default;
}

/* Large viewports: mini indicator top-right on cart flow (checkout uses .rental-cart__checkout-hero flex row instead) */
@media (min-width: 1680px) {
  .rental-cart:not(.rental-cart--checkout) .rental-cart__step-indicator-placement .rental-cart__steps-indicator {
    position: absolute;
    top: 0.5rem;
    right: 1.5rem;
    margin-bottom: 0;
    width: auto;
    z-index: 5;
  }

  .rental-cart__step-indicator-placement .rental-cart__steps-indicator-list {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.25rem;
  }

  .rental-cart__step-indicator-placement .rental-cart__steps-indicator-item {
    flex: 0 0 auto;
    flex-direction: row;
    align-items: center;
    gap: 0.25rem;
    min-width: 0;
  }

  .rental-cart__step-indicator-placement .rental-cart__steps-indicator-num {
    width: 1.5rem;
    height: 1.5rem;
    font-size: 0.75rem;
    background: #e5e7eb;
    border-radius: 50%;
    color: #6b7280;
  }

  .rental-cart__step-indicator-placement .rental-cart__steps-indicator-label {
    margin-top: 0;
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1.2;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    white-space: nowrap;
  }

  .rental-cart__step-indicator-placement .rental-cart__steps-indicator-connector {
    position: static;
    width: 0.375rem;
    height: 2px;
    min-width: 0.375rem;
    margin: 0 0.125rem;
    flex-shrink: 0;
  }

  .rental-cart__step-indicator-placement .rental-cart__steps-indicator-item--completed .rental-cart__steps-indicator-num {
    background: var(--accent-success, #1a8943);
    color: var(--color-on-primary);
  }

  .rental-cart__step-indicator-placement .rental-cart__steps-indicator-item--completed .rental-cart__steps-indicator-connector {
    background: var(--accent-success, #1a8943);
  }

  .rental-cart__step-indicator-placement .rental-cart__steps-indicator-item--active .rental-cart__steps-indicator-num {
    background: var(--rental-flow-cta, #c65252);
    color: #fff;
    box-shadow: 0 0 0 2px rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.25);
  }

  .rental-cart__step-indicator-placement .rental-cart__steps-indicator-item--active .rental-cart__steps-indicator-label {
    color: var(--rental-flow-cta, #c65252);
  }

  .rental-cart__step-indicator-placement .rental-cart__steps-indicator-item--active .rental-cart__steps-indicator-connector {
    background: #e5e7eb;
  }

  .rental-cart__step-indicator-placement .rental-cart__steps-indicator-item--upcoming .rental-cart__steps-indicator-num {
    background: #e5e7eb;
    color: #9ca3af;
  }

  .rental-cart__step-indicator-placement .rental-cart__steps-indicator-item--upcoming .rental-cart__steps-indicator-connector {
    background: #e5e7eb;
  }

  .rental-cart__step-indicator-placement .rental-cart__steps-indicator-item--reachable {
    cursor: pointer;
  }

  .rental-cart__step-indicator-placement .rental-cart__steps-indicator-link {
    flex-direction: row;
    gap: 0.25rem;
  }
}

.rental-cart__steps-wrap {
  position: relative;
}

/* Container: max-width + gutters; !important overrides Bootstrap */
.rental-cart .container {
  position: relative;
  width: 100%;
  max-width: 1400px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: 0 20px !important;
  box-sizing: border-box;
}

@media (min-width: 992px) {
  .rental-cart .container {
    padding: 0 24px !important;
  }

  .rental-cart:not(.rental-cart--confirmation) {
    --form-card-padding: 2.25rem;
  }
}

@media (min-width: 1200px) {
  .rental-cart .container {
    padding: 0 28px !important;
  }
}

.rental-cart__step {
  opacity: 0;
  visibility: hidden;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  transform: translateY(10px);
  transition: opacity 350ms ease-out, visibility 350ms ease-out, transform 350ms ease-out;
  pointer-events: none;
}

.rental-cart__step--active {
  position: relative;
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
}

.rental-cart__step--collapsed {
  display: none !important;
}

.rental-cart__step-header {
  margin-bottom: 1rem;
  text-align: center;
}

.rental-cart__step-title {
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  font-weight: 700;
  color: var(--primary-color, #294467);
  margin-bottom: 0.35rem;
}

.rental-cart__step-subtitle {
  color: var(--text-muted);
  font-size: 1rem;
  line-height: 1.45;
}

/* Cart flow: match checkout hero — left type + readable measure from tablet up; stay centered on small phones */
@media (min-width: 768px) {
  .rental-cart:not(.rental-cart--checkout) .rental-cart__step-header {
    text-align: left;
  }

  .rental-cart:not(.rental-cart--checkout) .rental-cart__step-subtitle {
    max-width: 42em;
  }

  .rental-cart:not(.rental-cart--checkout) .rental-cart__step-header--review {
    text-align: left;
  }

  .rental-cart:not(.rental-cart--checkout) .rental-cart__step-header--review .rental-cart__step-subtitle {
    margin-left: 0;
    margin-right: 0;
  }

  .rental-cart:not(.rental-cart--checkout) .rental-cart__repricing-note {
    margin-top: 0.85rem;
    margin-left: 0;
    margin-right: 0;
  }
}

.rental-cart__repricing-note {
  margin: 0.85rem auto 0;
  max-width: 42rem;
  padding: 0.75rem 1rem;
  border: 1px solid rgba(var(--primary-color-rgb, 41, 68, 103), 0.18);
  border-radius: 10px;
  background: rgba(var(--primary-color-rgb, 41, 68, 103), 0.06);
  color: var(--primary-color, #294467);
  font-size: 0.9375rem;
  line-height: 1.45;
}

.rental-cart__step-content {
  background: var(--form-card-bg);
  border: var(--form-card-border);
  border-radius: var(--form-card-radius);
  padding: clamp(2rem, 4vw, 2.5rem);
  box-shadow: var(--form-card-shadow);
}

/* Contact step wraps the same `.rental-cart__form` card — collapse inner chrome to one bordered surface */
.rental-cart__step-content > .rental-cart__form {
  margin: 0;
  padding: 0;
  background: transparent;
  border: none;
  box-shadow: none;
  border-radius: 0;
}

/* ── Quote-style slab: light copy on navy panel (inputs stay white surfaces) ── */

.rental-cart__step-content .rental-cart__step-title {
  color: #fff;
}

.rental-cart__step-content .rental-cart__step-subtitle {
  color: rgba(255, 255, 255, 0.86);
}

.rental-cart__form .rental-cart__section-title,
.rental-cart__step-content .rental-cart__section-title,
.rental-cart__step-content .rental-cart__section-title--small {
  color: #fff;
}

.rental-cart__form .rental-cart__section-hint,
.rental-cart__step-content .rental-cart__section-hint {
  color: rgba(255, 255, 255, 0.78);
}

.rental-cart__form .rental-cart__form-hint,
.rental-cart__step-content .rental-cart__form-hint {
  color: rgba(255, 255, 255, 0.72);
}

.rental-cart__form .rental-field__label,
.rental-cart__step-content .rental-field__label {
  color: rgba(255, 255, 255, 0.92);
}

.rental-cart__form .rental-field__hint,
.rental-cart__step-content .rental-field__hint {
  color: rgba(255, 255, 255, 0.68);
}

.rental-cart__form .rental-field__optional,
.rental-cart__step-content .rental-field__optional {
  color: rgba(255, 255, 255, 0.62);
}

.rental-cart__form .rental-field__checkbox-label,
.rental-cart__step-content .rental-field__checkbox-label {
  color: rgba(255, 255, 255, 0.94);
}

.rental-cart__form .rental-cart__checkbox-hint,
.rental-cart__step-content .rental-cart__checkbox-hint {
  color: rgba(255, 255, 255, 0.76);
}

.rental-cart__form .rental-cart__radio-option,
.rental-cart__step-content .rental-cart__radio-option {
  color: rgba(255, 255, 255, 0.92);
}

.rental-cart__form .rental-cart__checkbox-block,
.rental-cart__form .rental-cart__radio-block--gate {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.18);
}

.rental-cart__form .rental-cart__form-section--gate .rental-cart__gate-code-wrap,
.rental-cart__form .rental-cart__radio-block--gate .rental-cart__gate-code-wrap {
  border-top-color: rgba(255, 255, 255, 0.15);
}

.rental-cart__form .rental-cart__form-section {
  border-bottom-color: rgba(255, 255, 255, 0.14);
}

.rental-cart__form .rental-cart__contractor-message {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.22);
}

.rental-cart__form .rental-cart__contractor-message-text {
  color: rgba(255, 255, 255, 0.92);
}

.rental-cart__form .rental-cart__contractor-message-text a {
  color: #fff;
}

.rental-cart:not(.rental-cart--checkout) .rental-cart__summary-bar {
  border-radius: 0;
}

/* Weight calc: label above pill (navy slab) */
.rental-cart:not(.rental-cart--checkout) .rental-cart__calc-trigger-wrap {
  flex-direction: column;
  align-items: flex-end;
  gap: 0.45rem;
}

.rental-cart:not(.rental-cart--checkout) .rental-cart__calc-trigger-hint {
  margin: 0;
  max-width: 15rem;
  color: rgba(255, 255, 255, 0.95);
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: normal;
  text-transform: none;
  line-height: 1.35;
  text-align: right;
}

/* "20 Yard Selected" under Weight Calculator — same navy slab as hint; avoid muted gray on primary. */
.rental-cart:not(.rental-cart--checkout) .rental-cart__calc-confirmation {
  color: rgba(255, 255, 255, 0.9);
  font-weight: 500;
}

.rental-cart__summary-bar {
  position: relative;
  z-index: 1;
  background: var(--card-bg);
  border: 1px solid rgba(var(--primary-color-rgb, 41, 68, 103), 0.4);
  border-radius: 8px;
  padding: 1rem 1.35rem 1rem 1.25rem;
  margin-bottom: 1.5rem;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem 1.25rem;
  box-shadow: var(--card-shadow);
  container-type: inline-size;
}

.rental-cart__summary-content {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.45rem;
  flex-wrap: nowrap;
  flex: 1;
  min-width: 0;
  padding-right: 0.25rem;
}

.rental-cart__summary-icon {
  font-size: 1.2rem;
  display: inline-flex;
  align-items: center;
}

.rental-cart__summary-icon svg {
  width: 1.1rem;
  height: 1.1rem;
  flex-shrink: 0;
}

.rental-cart__summary-text {
  font-size: 0.9rem;
  line-height: 1.45;
  color: var(--primary-color, #294467);
  font-weight: 500;
}

/* Summary segments: click to go back to step */
.rental-cart__summary-segment {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: none;
  border: 0;
  padding: 0;
  margin: 0;
  font: inherit;
  font-size: 0.9rem;
  font-weight: 500;
  line-height: 1.45;
  color: var(--primary-color, #294467);
  cursor: pointer;
  text-align: left;
  vertical-align: middle;
  align-self: stretch;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.rental-cart__summary-segment:hover {
  filter: brightness(0.88);
}

.rental-cart__summary-segment:hover .rental-cart__summary-text {
  text-decoration: underline;
  text-underline-offset: 2px;
}

.rental-cart__summary-segment:focus-visible {
  outline: 2px solid var(--primary-color, #294467);
  outline-offset: 2px;
  border-radius: 2px;
}

.rental-cart__summary-text--location {
  white-space: normal;
  word-break: break-word;
}

/* First row: pin + address */
.rental-cart__summary-line {
  align-items: flex-start;
  white-space: normal;
}

.rental-cart__summary-line > .rental-cart__summary-icon {
  flex-shrink: 0;
  margin-top: 0.14em;
  color: var(--primary-color, #294467);
}

.rental-cart__summary-row[data-summary-row="project_material"].rental-cart__summary-segment {
  align-items: flex-start;
}

.rental-cart__summary-row[data-summary-row="project_material"] > .rental-cart__summary-icon {
  flex-shrink: 0;
  margin-top: 0.14em;
}

.rental-cart__summary-bar .rental-cart__summary-icon {
  color: var(--primary-color, #294467);
}

.rental-cart__summary-edit {
  background: var(--primary-color);
  color: var(--color-on-primary);
  border: var(--rental-cta-border-width, 1px) solid rgba(255, 255, 255, 0.35);
  border-radius: var(--rental-field-radius, 4px);
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
  font-weight: 600;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 0.4rem;
  transition: background-color 200ms ease, transform 200ms ease;
  white-space: nowrap;
  flex-shrink: 0;
  align-self: flex-start;
  margin-top: 0.06rem;
  text-decoration: none;
  box-sizing: border-box;
}

.rental-cart__summary-edit:hover {
  background: var(--td-accent-orange);
  transform: translateY(-1px);
}

.rental-cart__summary-edit:focus-visible {
  outline: 2px solid var(--primary-color, #294467);
  outline-offset: 2px;
}

/* Narrow summary card: stack rows and center Edit (and step pill slot) below details */
@container (max-width: 1119.98px) {
  .rental-cart__summary-bar {
    flex-direction: column;
    align-items: stretch;
  }

  .rental-cart__summary-content {
    padding-right: 0;
  }

  .rental-cart__summary-bar-step-slot:not(:empty) {
    align-self: center;
    margin-left: 0;
    margin-top: 0.35rem;
  }

  .rental-cart__summary-edit {
    align-self: center;
    margin-top: 0.65rem;
  }
}

@container (min-width: 1120px) {
  .rental-cart__summary-bar {
    align-items: center;
    justify-content: center;
  }

  .rental-cart__summary-content {
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-start;
    gap: 0.85rem 1rem;
    padding-right: 0;
  }

  .rental-cart__summary-row,
  .rental-cart__summary-line {
    flex: 0 1 auto;
    min-width: 0;
    min-height: 2rem;
    align-items: center;
  }

  .rental-cart__summary-line > .rental-cart__summary-icon {
    margin-top: 0;
  }

  .rental-cart__summary-segment {
    width: auto;
    max-width: 100%;
    min-height: 2rem;
    align-items: center;
  }

  .rental-cart__summary-text {
    line-height: 1.2;
  }

  .rental-cart__summary-text--location,
  .rental-cart__summary-row[data-summary-row="project_material"] .rental-cart__summary-text {
    display: inline-block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    word-break: normal;
  }

  .rental-cart__summary-text--location {
    max-width: clamp(14rem, 28cqi, 28rem);
  }

  .rental-cart__summary-row[data-summary-row="project_material"] .rental-cart__summary-text {
    max-width: clamp(9rem, 16cqi, 16rem);
  }

  .rental-cart__summary-row[data-summary-row="size"] .rental-cart__summary-text,
  .rental-cart__summary-row[data-summary-row="date"] .rental-cart__summary-text {
    white-space: nowrap;
  }

  .rental-cart__summary-bar-step-slot {
    align-self: center;
    margin-left: 1.25rem;
  }

  .rental-cart__summary-row[data-summary-row="project_material"].rental-cart__summary-segment {
    align-items: center;
  }
}

@media (prefers-reduced-motion: reduce) {
  .rental-cart__summary-edit {
    transition: none;
  }

  .rental-cart__summary-edit:hover {
    transform: none;
  }
}

.rental-cart__form {
  background: var(--form-card-bg);
  border: var(--form-card-border);
  border-radius: var(--form-card-radius);
  padding: var(--form-card-padding);
  box-shadow: var(--form-card-shadow);
}

.rental-cart__form-section {
  margin-bottom: 2rem;
  padding-bottom: 2rem;
  border-bottom: var(--rental-field-border-width, 1px) solid #e5e7eb;
}

.rental-cart__form-section:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}

.rental-cart__section-title {
  font-size: 1.4rem;
  font-weight: 500;
  color: var(--primary-color, #294467);
  margin-bottom: 1rem;
}

.rental-cart__section-hint {
  font-size: 0.9rem;
  line-height: 1.45;
  color: var(--text-muted);
  margin-bottom: 1rem;
}

.rental-cart__form-row {
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr;
}

.rental-cart__form-row--promo {
  max-width: 600px;
}

.rental-cart__form-row--promo .input-group {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
}

.rental-cart__form-row--promo .input-group .rental-field__input {
  flex: 1;
  min-width: 0;
}

.rental-cart__form-row--promo .input-group .btn {
  flex-shrink: 0;
}

.rental-field--address {
  flex: 2;
  position: relative;
  /* Stack above the next form section so the predictions list is not painted under “Project type” */
  z-index: 2;
}

#step-order-info #rental-address:focus,
#step-order-info #rental-address:focus-visible,
#step-contact-info .rental-field__input:focus,
#step-contact-info .rental-field__input:focus-visible,
#step-contact-info .rental-field__textarea:focus,
#step-contact-info .rental-field__textarea:focus-visible {
  outline: none !important;
  border-color: var(--primary-color, #294467) !important;
  box-shadow: 0 0 0 2px rgba(var(--primary-color-rgb, 41, 68, 103), 0.28) !important;
}

#step-contact-info .rental-field__textarea {
  border: var(--rental-field-border-width, 1px) solid var(--input-border, #e9ecef);
}

.rental-cart__address-predictions {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  margin-top: 2px;
  background-color: var(--color-surface, #fff);
  border: 1px solid var(--input-border, var(--color-border));
  border-radius: var(--rental-field-radius, 4px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
  max-height: 280px;
  overflow-y: auto;
  z-index: 100;
  list-style: none;
  padding: 0;
  margin-bottom: 0;
}

.rental-cart__address-predictions.rental-cart__address-predictions--visible {
  display: block;
}

.rental-cart__address-prediction {
  padding: 0.6rem 0.75rem;
  font-size: 0.95rem;
  cursor: pointer;
  border-bottom: 1px solid #f1f3f4;
  color: #1f2937;
}

.rental-cart__address-prediction:last-child {
  border-bottom: none;
}

.rental-cart__address-prediction:hover,
.rental-cart__address-prediction.rental-cart__address-prediction--focused {
  background: var(--color-surface-subtle);
}

.rental-cart__address-prediction:focus {
  outline: 2px solid var(--primary-color, #294467);
  outline-offset: -2px;
}

.rental-field--zip {
  flex: 1;
  min-width: 150px;
}

.rental-field--promo {
  flex: 1;
}

.rental-field__error {
  display: none;
  color: var(--error-color);
  font-size: 0.85rem;
  margin-top: 0.25rem;
}

.rental-field__error.rental-field__error--visible {
  display: block;
}

.rental-field__input:invalid ~ .rental-field__error {
  display: block;
}

/* Contact/step errors: shown when JS adds --visible (not :invalid) */
#step-order-info .rental-field__input:invalid ~ .rental-field__error,
.rental-cart__form--contact .rental-field__input:invalid ~ .rental-field__error,
#lock-in-quote-modal .rental-field__input:invalid ~ .rental-field__error {
  display: none;
}

#step-order-info .rental-field__error.rental-field__error--visible,
.rental-cart__form--contact .rental-field__error.rental-field__error--visible,
#lock-in-quote-modal .rental-field__error.rental-field__error--visible {
  display: block;
}

#step-order-info .rental-field__input.is-invalid,
.rental-cart__form--contact .rental-field__input.is-invalid {
  border-color: var(--td-accent-orange, #c65252);
}

#step-order-info .rental-field__input.is-invalid:focus,
.rental-cart__form--contact .rental-field__input.is-invalid:focus {
  border-color: var(--td-accent-orange, #c65252);
  box-shadow: 0 0 0 2px rgba(var(--td-accent-orange-rgb, 198, 82, 82), 0.18);
}

.rental-field__hint {
  font-size: 0.85rem;
  color: var(--text-muted);
  margin-top: 0.25rem;
  display: block;
}

.rental-field__optional {
  font-weight: normal;
  color: var(--text-muted);
  font-size: 0.9em;
}

.required {
  color: var(--error-color);
  font-weight: 600;
}

.rental-cart__form-row--checkbox {
  margin-top: 0.5rem;
}

.rental-field--checkbox {
  display: block;
}

.rental-field__checkbox-label {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  cursor: pointer;
  font-size: 0.95rem;
  color: #1f2937;
}

.rental-field__checkbox {
  width: 1.25rem;
  height: 1.25rem;
  flex-shrink: 0;
  accent-color: var(--primary-color, #294467);
}

.rental-field__checkbox-text {
  line-height: 1.4;
}

/* Contact step: extra space above rows/sections so labels aren't cramped */
.rental-cart__form--contact .rental-cart__form-row--spaced-above {
  margin-top: 1.25rem;
}

.rental-cart__form-section--spaced-above {
  padding-top: 1.25rem;
}

.rental-cart__form-section--checkbox-block {
  padding-top: 1rem;
}

.rental-cart__section-title--small {
  font-size: 1.25rem;
  margin-bottom: 0.75rem;
}

.rental-cart__checkbox-block {
  background: var(--color-surface-subtle);
  border: var(--rental-field-border-width, 1px) solid var(--card-border);
  border-radius: var(--rental-field-radius, 4px);
  padding: 1.25rem 1.5rem;
}

.rental-cart__radio-block--gate {
  background: var(--color-surface-subtle);
  border: var(--rental-field-border-width, 1px) solid var(--card-border);
  border-radius: var(--rental-field-radius, 4px);
  padding: 1.25rem 1.5rem;
  box-sizing: border-box;
}

.rental-cart__checkbox-block .rental-field__checkbox-label {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
}

/* Contact step onsite block: add breathing room below checkbox card */
.rental-cart__form--contact #onsite-contact-fields {
  margin-top: 1rem;
}

/* Contact step onsite block: clearer vertical spacing between fields */
.rental-cart__form--contact #onsite-contact-fields .rental-cart__form-row + .rental-cart__form-row {
  margin-top: 0.85rem;
}

.rental-cart__checkbox-hint {
  font-size: 0.85rem;
  color: var(--text-muted);
  margin: 0.75rem 0 0 2rem;
  line-height: 1.4;
}

.rental-cart__form-section--gate .rental-cart__gate-code-wrap,
.rental-cart__radio-block--gate .rental-cart__gate-code-wrap {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--card-border);
}

.rental-cart__form-section--gate .rental-cart__gate-code-wrap .rental-field__label,
.rental-cart__radio-block--gate .rental-cart__gate-code-wrap .rental-field__label {
  display: block;
  margin-bottom: 0.5rem;
}

/* Placement was nested under “Your Details”; as its own section it uses standard form-section spacing only. */
.rental-cart__form-section--placement {
  padding-top: 0;
}

.rental-cart__form-section--placement .rental-cart__checkbox-block--gate,
.rental-cart__form-section--placement .rental-cart__radio-block--gate {
  margin-top: 1.5rem;
}

.rental-cart__radio-block--gate .rental-field__label {
  display: block;
  margin-bottom: 0.75rem;
}

.rental-cart__radio-group--gate {
  display: flex;
  gap: 1.5rem;
  flex-wrap: wrap;
}

.rental-cart__radio-option {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
  font-size: 0.95rem;
  color: var(--color-text-secondary, #374151);
}

.rental-field__radio {
  width: 1.25rem;
  height: 1.25rem;
  accent-color: var(--primary-color, #294467);
}

#gate-selection-error.rental-field__error--visible {
  display: block;
  margin-top: 0.5rem;
}

/* Step 1: concrete roof prompt (FL/CA/AZ/NV/NM + roofing) */
.rental-cart__form-section--concrete-roof .rental-cart__radio-block--concrete-roof .rental-field__label {
  display: block;
  margin-bottom: 0.75rem;
}

.rental-cart__radio-group--concrete-roof {
  display: flex;
  gap: 1.5rem;
  flex-wrap: wrap;
}

.rental-cart__form-section--concrete-roof .rental-field__radio-label {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
  font-size: 0.95rem;
  color: var(--color-text-secondary, #374151);
}

.rental-cart__concrete-roof-note {
  margin-top: 1rem;
  font-size: 0.9rem;
  color: var(--color-text-secondary, #374151);
  max-width: 42rem;
  line-height: 1.45;
}

/* Home cleanout: radio blocks (baseline; same idea as concrete-roof). */
.rental-cart__form-section--home-cleanout-routing .rental-cart__radio-block--home-cleanout-routing + .rental-cart__radio-block--home-cleanout-routing {
  margin-top: 1.25rem;
}

.rental-cart__form-section--home-cleanout-routing .rental-cart__radio-label-prompt {
  display: block;
  margin: 0 0 0.75rem;
  font-weight: 600;
  font-size: 0.95rem;
  color: var(--color-text, #111827);
}

.rental-cart__radio-group--home-cleanout-routing {
  display: flex;
  gap: 1.5rem;
  flex-wrap: wrap;
}

.rental-cart__form-section--home-cleanout-routing .rental-field__radio-label {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
  font-size: 0.95rem;
  color: var(--color-text-secondary, #374151);
}

/* Step 1 on navy slab cart: contrast for radio prompts (baseline above is tuned for white cards). */
.rental-cart:not(.rental-cart--checkout) .rental-cart__form-section--concrete-roof .rental-field__radio-label,
.rental-cart:not(.rental-cart--checkout) .rental-cart__form-section--home-cleanout-routing .rental-field__radio-label {
  color: rgba(255, 255, 255, 0.94);
}

.rental-cart:not(.rental-cart--checkout) .rental-cart__form-section--home-cleanout-routing .rental-cart__radio-label-prompt {
  color: rgba(255, 255, 255, 0.92);
}

/* Home cleanout follow-up: selected radio dot = brand coral (not primary navy). */
.rental-cart__form-section--home-cleanout-routing .rental-field__radio {
  accent-color: var(--rental-flow-cta, var(--td-secondary, #c65252));
}

.rental-cart:not(.rental-cart--checkout) .rental-cart__concrete-roof-note {
  color: rgba(255, 255, 255, 0.78);
}

@media (min-width: 576px) {
  .rental-cart__checkbox-hint {
    margin-left: 2rem;
  }
}

.rental-cart__btn-group {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}

.rental-cart__btn-group--compact {
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
}

/* Step 1 project type — tinted cards on navy, coral accent when selected (radio cards) */
.rental-cart__btn-group.rental-cart__project-type-options {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}

.rental-cart__project-type-option {
  position: relative;
  box-sizing: border-box;
  min-height: 112px;
  margin: 0;
  padding: 18px 14px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.22);
  color: #fff;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  text-align: center;
  cursor: pointer;
  touch-action: manipulation;
  transition:
    background-color 160ms ease,
    border-color 160ms ease,
    box-shadow 160ms ease,
    transform 160ms ease;
}

.rental-cart__project-type-option:hover {
  background: rgba(255, 255, 255, 0.11);
  border-color: rgba(255, 255, 255, 0.45);
  transform: translateY(-1px);
}

.rental-cart__project-type-option:focus-within {
  outline: 3px solid rgba(255, 255, 255, 0.55);
  outline-offset: 3px;
}

.rental-cart__project-type-option--active {
  background: rgba(255, 255, 255, 0.1);
  border-color: var(--rental-flow-cta, var(--td-secondary, #c65252));
  box-shadow: 0 0 0 3px rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.28);
}

.rental-cart__project-type-option--active:hover {
  border-color: var(--rental-flow-cta, var(--td-secondary, #c65252));
  background: rgba(255, 255, 255, 0.12);
}

.rental-cart__project-type-option--active:focus-within {
  outline: 3px solid rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.65);
  outline-offset: 3px;
}

.rental-cart__project-type-option--active::after {
  content: "\2713";
  position: absolute;
  top: 10px;
  right: 10px;
  width: 24px;
  height: 24px;
  border-radius: 999px;
  background: var(--rental-flow-cta, var(--td-secondary, #c65252));
  color: #fff;
  display: grid;
  place-items: center;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  pointer-events: none;
}

.rental-cart__project-type-input {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
  opacity: 0;
}

.rental-cart__project-type-icon {
  width: 52px;
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  line-height: 0;
  color: #fff;
}

.rental-cart__project-type-icon svg {
  width: 100%;
  height: 100%;
  max-width: 52px;
  max-height: 52px;
  display: block;
  fill: currentColor;
  filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.35));
}

.rental-cart__project-type-option[data-icon="home"] .rental-cart__project-type-icon svg {
  transform: scale(1.3);
  transform-origin: center;
}

.rental-cart__project-type-option[data-icon="remodel"] .rental-cart__project-type-icon svg {
  transform: scale(1.2);
  transform-origin: center;
}

.rental-cart__project-type-option[data-icon="yard"] .rental-cart__project-type-icon svg {
  transform: scale(1.4);
  transform-origin: center;
  translate: 0 2px;
}

.rental-cart__project-type-option[data-icon="roofing"] .rental-cart__project-type-icon svg {
  transform: scale(1.4);
  transform-origin: center;
  translate: 0 2px;
}

.rental-cart__project-type-option[data-icon="other"] .rental-cart__project-type-icon svg {
  transform: scale(1);
  transform-origin: center;
}

.rental-cart__project-type-option--active .rental-cart__project-type-icon {
  color: #fff;
}

.rental-cart__project-type-label {
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.25;
}

@media (max-width: 767.98px) {
  .rental-cart__project-type-option {
    min-height: 0;
    flex-direction: row;
    justify-content: flex-start;
    align-items: center;
    text-align: left;
    padding: 14px 16px 14px 18px;
    gap: 14px;
  }

  .rental-cart__project-type-option--active {
    padding-right: 42px;
  }

  .rental-cart__project-type-option--active::after {
    top: 50%;
    transform: translateY(-50%);
  }

  .rental-cart__project-type-icon {
    width: 36px;
    height: 36px;
    flex-shrink: 0;
    overflow: visible;
  }

  .rental-cart__project-type-icon svg {
    width: 100%;
    height: 100%;
    max-width: 36px;
    max-height: 36px;
    transform: none;
    translate: none;
  }

  .rental-cart__project-type-label {
    text-align: left;
    flex: 1;
    min-width: 0;
  }
}

.rental-cart__btn-group--customer-type {
  --customer-type-icon-box: 1.625rem;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.65rem;
}

.rental-cart__btn-group--customer-type .rental-cart__btn-icon--svg {
  width: var(--customer-type-icon-box);
  height: var(--customer-type-icon-box);
  flex-shrink: 0;
  box-sizing: border-box;
  line-height: 0;
  align-items: center;
  justify-content: center;
}

/* Homeowner / contractor: tinted cards on navy + coral ring + checkmark (match project type / debris) */
.rental-cart__btn-group--customer-type .rental-cart__btn-option {
  position: relative;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  min-height: 96px;
  min-width: 0;
  margin: 0;
  padding: 14px 12px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.22);
  color: #fff;
  font-weight: 700;
  font-size: 0.95rem;
  /* Base .rental-cart__btn-option uses overflow:hidden, which cuts off labels on narrow phones */
  overflow: visible;
  transform: none;
  box-shadow: none;
}

.rental-cart__btn-group--customer-type .rental-cart__btn-option:hover:not(:disabled) {
  background: rgba(255, 255, 255, 0.11);
  border-color: rgba(255, 255, 255, 0.45);
  transform: translateY(-1px);
  box-shadow: none;
}

.rental-cart__btn-group--customer-type .rental-cart__btn-option:focus,
.rental-cart__btn-group--customer-type .rental-cart__btn-option:focus-visible {
  outline: none;
  border-color: rgba(255, 255, 255, 0.5);
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.35);
}

.rental-cart__btn-group--customer-type .rental-cart__btn-option--active {
  background: rgba(255, 255, 255, 0.1);
  border-color: var(--rental-flow-cta, var(--td-secondary, #c65252));
  color: #fff;
  box-shadow: 0 0 0 3px rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.28);
}

.rental-cart__btn-group--customer-type .rental-cart__btn-option--active:focus,
.rental-cart__btn-group--customer-type .rental-cart__btn-option--active:focus-visible {
  outline: none;
  box-shadow:
    0 0 0 3px rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.28),
    0 0 0 6px rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.2);
}

.rental-cart__btn-group--customer-type .rental-cart__btn-option--active:hover:not(:disabled) {
  background: rgba(255, 255, 255, 0.12) !important;
  border-color: var(--rental-flow-cta, var(--td-secondary, #c65252)) !important;
  color: #fff !important;
  transform: translateY(-1px);
  box-shadow: 0 0 0 3px rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.28) !important;
}

.rental-cart__btn-group--customer-type .rental-cart__btn-option--active::after {
  content: "\2713";
  position: absolute;
  top: 8px;
  right: 8px;
  width: 24px;
  height: 24px;
  border-radius: 999px;
  background: var(--rental-flow-cta, var(--td-secondary, #c65252));
  color: #fff;
  display: grid;
  place-items: center;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  pointer-events: none;
}

.rental-cart__btn-group--customer-type .rental-cart__btn-text {
  font-size: 0.875rem;
  line-height: 1.2;
  text-align: center;
  white-space: nowrap;
  color: #fff;
  font-weight: 700;
}

.rental-cart__btn-group--customer-type .rental-cart__btn-icon--svg svg {
  width: 100%;
  height: 100%;
  display: block;
  flex-shrink: 0;
  filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.35));
}

@media (max-width: 767.98px) {
  .rental-cart__btn-group--customer-type .rental-cart__btn-option--active {
    padding-right: 38px;
  }
}

@media (max-width: 480px) {
  .rental-cart__btn-group--customer-type {
    --customer-type-icon-box: 1.35rem;
    gap: 0.4rem;
  }

  .rental-cart__btn-group--customer-type .rental-cart__btn-option {
    padding: 12px 10px;
    min-height: 86px;
    gap: 0.3rem;
  }

  .rental-cart__btn-group--customer-type .rental-cart__btn-text {
    font-size: 0.75rem;
    letter-spacing: -0.01em;
  }
}

.rental-cart__form-section--customer-type {
  padding-top: 0;
  margin-bottom: 1.5rem;
}

/*
 * Step 2 (Delivery & contact): group "Your details" + placement blocks in frosted panels,
 * same visual language as project-type / debris cards — avoids lone white field stacks on navy.
 */
#step-contact-info #customer-form-main > .rental-cart__form-section {
  margin-bottom: 1.125rem;
  padding: 1.25rem 1.25rem 1.5rem;
  border-bottom: none;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 12px;
  box-sizing: border-box;
}

#step-contact-info #customer-form-main > .rental-cart__form-section#step-contact-placement {
  margin-bottom: 1.5rem;
}

#step-contact-info #customer-form-main > .rental-cart__form-section .rental-cart__section-title {
  margin-top: 0;
}

/* Inline error toast under address field (Step 1) */
.rental-cart__toast-home {
  margin-top: 0.5rem;
}

.rental-cart__toast {
  margin-bottom: 1rem;
  padding: 1rem 1.25rem 1rem 1rem;
  background: var(--color-surface, #fff);
  border: 1px solid var(--td-accent-orange, #c65252);
  border-left: 4px solid var(--td-accent-orange, #c65252);
  border-radius: 8px;
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

.rental-cart__toast-text {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--color-text-secondary, #374151);
  flex: 1;
}

.rental-cart__toast-text .rental-cart__toast-link {
  color: var(--primary-color, #294467);
  font-weight: 600;
  text-decoration: underline;
}

.rental-cart__toast-text .rental-cart__toast-link:hover {
  color: var(--primary-color, #294467);
  opacity: 0.85;
}

.rental-cart__toast-dismiss {
  flex-shrink: 0;
  background: none;
  border: none;
  color: var(--color-text-muted, #6b7280);
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  padding: 0 0.25rem;
  opacity: 0.8;
}

.rental-cart__toast-dismiss:hover {
  color: var(--color-text-secondary, #374151);
  opacity: 1;
}

.rental-cart__toast-dismiss:focus {
  outline: none;
}

.rental-cart__toast-dismiss:focus-visible {
  outline: 2px solid var(--primary-color, #294467);
  outline-offset: 2px;
}

.rental-cart__contractor-message {
  margin-top: 1rem;
  padding: 1rem 1.25rem;
  background: var(--color-surface-subtle);
  border: 1px solid var(--card-border);
  border-radius: 8px;
}

.rental-cart__contractor-message-text {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--text-color, var(--color-text-secondary));
}

.rental-cart__contractor-message-text a {
  text-decoration: underline;
}

.rental-cart__btn-option {
  background: var(--color-surface);
  border: var(--rental-field-border-width, 1px) solid var(--card-border);
  border-radius: var(--rental-field-radius, 4px);
  padding: 1rem;
  cursor: pointer;
  transition: all 200ms ease;
  font-size: 0.95rem;
  font-weight: 600;
  color: #1f2937;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  overflow: hidden;
}

.rental-cart__btn-option:hover:not(:disabled) {
  border-color: var(--primary-color);
  background: #f9fbff;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(var(--primary-color-rgb, 41, 68, 103), 0.15);
}

.rental-cart__btn-option:focus,
.rental-cart__btn-option:focus-visible {
  outline: none;
  border-color: var(--primary-color, #294467);
  box-shadow: 0 0 0 2px rgba(var(--primary-color-rgb, 41, 68, 103), 0.22);
}

.rental-cart__btn-option--active {
  border-color: var(--rental-flow-cta, #c65252);
  background: var(--rental-flow-cta, #c65252);
  color: var(--color-on-primary, #fff);
  box-shadow: 0 4px 12px rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.28);
}

.rental-cart__btn-option--active:focus,
.rental-cart__btn-option--active:focus-visible {
  outline: none;
  box-shadow: 0 4px 12px rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.28),
    0 0 0 2px rgba(255, 255, 255, 0.55);
}

.rental-cart__btn-option--active:hover {
  background: var(--rental-flow-cta, #c65252) !important;
  border-color: var(--rental-flow-cta, #c65252) !important;
  color: var(--color-on-primary, #fff);
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.4);
}

/* Debris + heavy materials on navy: same tinted card / coral accent as project type (buttons stay multi/single-select in JS) */
.rental-cart__btn-group.rental-cart__flow-card-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}

.rental-cart__btn-group.rental-cart__flow-card-grid--debris {
  gap: 10px;
}

.rental-cart__flow-card-grid .rental-cart__btn-option {
  position: relative;
  box-sizing: border-box;
  min-height: 96px;
  margin: 0;
  padding: 14px 12px;
  gap: 0.375rem;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.22);
  color: #fff;
  font-weight: 700;
  overflow: visible;
  transform: none;
  box-shadow: none;
  justify-content: center;
}

.rental-cart__flow-card-grid .rental-cart__btn-option:hover:not(:disabled) {
  background: rgba(255, 255, 255, 0.11);
  border-color: rgba(255, 255, 255, 0.45);
  transform: translateY(-1px);
  box-shadow: none;
}

.rental-cart__flow-card-grid .rental-cart__btn-option:focus,
.rental-cart__flow-card-grid .rental-cart__btn-option:focus-visible {
  outline: none;
  border-color: rgba(255, 255, 255, 0.5);
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.35);
}

.rental-cart__flow-card-grid .rental-cart__btn-option--active {
  background: rgba(255, 255, 255, 0.1);
  border-color: var(--rental-flow-cta, var(--td-secondary, #c65252));
  color: #fff;
  box-shadow: 0 0 0 3px rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.28);
}

.rental-cart__flow-card-grid .rental-cart__btn-option--active:focus,
.rental-cart__flow-card-grid .rental-cart__btn-option--active:focus-visible {
  outline: none;
  box-shadow:
    0 0 0 3px rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.28),
    0 0 0 6px rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.2);
}

.rental-cart__flow-card-grid .rental-cart__btn-option--active:hover:not(:disabled) {
  background: rgba(255, 255, 255, 0.12) !important;
  border-color: var(--rental-flow-cta, var(--td-secondary, #c65252)) !important;
  color: #fff !important;
  transform: translateY(-1px);
  box-shadow: 0 0 0 3px rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.28) !important;
}

.rental-cart__flow-card-grid .rental-cart__btn-option--active::after {
  content: "\2713";
  position: absolute;
  top: 8px;
  right: 8px;
  width: 24px;
  height: 24px;
  border-radius: 999px;
  background: var(--rental-flow-cta, var(--td-secondary, #c65252));
  color: #fff;
  display: grid;
  place-items: center;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  pointer-events: none;
}

.rental-cart__flow-card-grid .rental-cart__btn-text {
  color: #fff;
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.2;
}

.rental-cart__flow-card-grid .rental-cart__btn-text small {
  color: rgba(255, 255, 255, 0.78);
  font-weight: 600;
}

.rental-cart__flow-card-grid--debris .rental-cart__btn-option[data-value="heavy-materials"] .rental-cart__btn-text {
  text-align: center;
  line-height: 1.18;
}

.rental-cart__flow-card-grid--debris .rental-cart__btn-option[data-value="heavy-materials"] .rental-cart__btn-text small {
  display: block;
  line-height: 1.12;
  margin-top: 0.06em;
}

.rental-cart__flow-card-grid--debris .rental-cart__btn-icon--svg--large {
  width: 52px;
  height: 52px;
  color: #fff;
}

.rental-cart__flow-card-grid--debris .rental-cart__btn-icon--svg--large svg {
  max-width: 52px;
  max-height: 52px;
  width: auto;
  height: auto;
  display: block;
  filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.35));
}

.rental-cart__flow-card-grid--debris .rental-cart__btn-option[data-value="mixed-trash"] .rental-cart__btn-icon--svg--large svg {
  transform: scale(1);
  transform-origin: center;
}

.rental-cart__flow-card-grid--debris .rental-cart__btn-option[data-value="construction"] .rental-cart__btn-icon--svg--large svg {
  transform: scale(1.6);
  transform-origin: center;
  translate: 0 4px;
}

.rental-cart__flow-card-grid--debris .rental-cart__btn-option[data-value="yard-waste"] .rental-cart__btn-icon--svg--large svg {
  transform: scale(1.4);
  transform-origin: center;
  translate: 0 3px;
}

.rental-cart__flow-card-grid--debris .rental-cart__btn-option[data-value="heavy-materials"] .rental-cart__btn-icon--svg--large svg {
  transform: scale(1.6);
  transform-origin: center;
  translate: 0 2px;
}

.rental-cart__flow-card-grid--heavy .rental-cart__btn-option {
  min-height: 72px;
  padding: 12px 12px;
  font-size: 0.95rem;
}

@media (max-width: 767.98px) {
  .rental-cart__flow-card-grid .rental-cart__btn-option {
    min-height: 0;
    flex-direction: row;
    justify-content: flex-start;
    align-items: center;
    text-align: left;
    gap: 12px;
    padding: 12px 14px 12px 18px;
  }

  .rental-cart__flow-card-grid .rental-cart__btn-option--active {
    padding-right: 42px;
  }

  .rental-cart__flow-card-grid .rental-cart__btn-option--active::after {
    top: 50%;
    transform: translateY(-50%);
  }

  .rental-cart__flow-card-grid--debris .rental-cart__btn-icon--svg--large {
    width: 36px;
    height: 36px;
    flex-shrink: 0;
    overflow: visible;
  }

  .rental-cart__flow-card-grid--debris .rental-cart__btn-icon--svg--large svg {
    width: 100%;
    height: 100%;
    max-width: 36px;
    max-height: 36px;
    transform: none;
    translate: none;
  }

  .rental-cart__flow-card-grid .rental-cart__btn-text {
    text-align: left;
    flex: 1;
    min-width: 0;
  }

  .rental-cart__flow-card-grid--debris .rental-cart__btn-option[data-value="heavy-materials"] .rental-cart__btn-text {
    text-align: left;
  }

  .rental-cart__flow-card-grid--heavy .rental-cart__btn-option {
    min-height: 0;
    justify-content: flex-start;
    padding: 12px 14px;
  }

  .rental-cart__flow-card-grid--heavy .rental-cart__btn-option--active {
    padding-right: 42px;
  }
}

.rental-cart__btn-option--disabled,
.rental-cart__btn-option:disabled {
  opacity: 0.4;
  cursor: not-allowed;
  pointer-events: none;
}

.rental-cart__btn-option--small {
  padding: 0.75rem 0.5rem;
  font-size: 0.9rem;
}

.rental-cart__btn-icon {
  font-size: 2rem;
  line-height: 1;
}

.rental-cart__btn-icon--svg {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.rental-cart__btn-icon--svg svg {
  width: 1.5rem;
  height: 1.5rem;
  flex-shrink: 0;
}

.rental-cart__btn-icon--svg--large svg {
  width: 5.5rem;
  height: 5.5rem;
  overflow: visible;
  transform-origin: center;
}

/* Sprite glyphs use currentColor inside <symbol>; nesting + presentation attrs can swallow inherited color — pin white on wrappers */
.rental-cart__btn-option--active .rental-cart__btn-icon--svg {
  color: #fff !important;
}

.rental-cart__btn-option--active .rental-cart__btn-icon--svg svg {
  color: #fff !important;
}

.rental-cart__btn-option--active .rental-cart__btn-icon--svg svg use {
  color: inherit;
  fill: currentColor !important;
  stroke: currentColor !important;
}

.rental-cart__btn-text {
  line-height: 1.3;
  font-size: 1.1rem;
}

.rental-cart__btn-text small {
  display: block;
  font-size: 0.8em;
  font-weight: 400;
  opacity: 0.85;
  margin-top: 0.25rem;
}

.rental-cart__form-actions {
  text-align: center;
  margin-top: 2rem;
}

.rental-cart__form-actions > .btn.btn-primary.btn-lg {
  padding: 0.75rem clamp(1.25rem, 4vw, 1.875rem);
  min-height: 2.5rem;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Primary cart CTAs: coral + Get a Quote /.btnCall 1px border, square corners, drop shadow */
.rental-cart .btn-primary,
.rental-cart__form-actions .btn-primary {
  font-weight: 600;
  background: var(--rental-flow-cta, #c65252);
  border: var(--rental-cta-border-width, 1px) solid var(--rental-flow-cta, #c65252);
  color: var(--color-on-primary, #fff);
  text-decoration: none;
  box-shadow: var(--rental-cta-shadow, 0 4px 4px 0 rgba(0, 0, 0, 0.25));
  transition:
    background-color 0.15s ease,
    border-color 0.15s ease,
    color 0.15s ease,
    box-shadow 0.15s ease,
    text-decoration-color 0.15s ease;
}

.rental-cart .btn-primary:hover:not(:disabled),
.rental-cart__form-actions .btn-primary:hover:not(:disabled) {
  background: #fff !important;
  border-color: #fff !important;
  color: var(--rental-flow-cta, #c65252) !important;
  opacity: 1;
  text-decoration: underline;
  text-underline-offset: 2px;
  transform: none;
  box-shadow: 0 2px 10px rgba(17, 28, 45, 0.18);
}

.rental-cart .btn-primary:disabled,
.rental-cart__form-actions .btn-primary:disabled {
  cursor: not-allowed;
  opacity: 0.65;
}

/* Override theme .btn:hover and .btn-primary:hover so disabled buttons don’t lift or light up */
.rental-cart .btn:disabled:hover,
.rental-cart__form-actions .btn:disabled:hover {
  transform: none;
  box-shadow: 0 4px 12px rgba(var(--primary-color-rgb, 41, 68, 103), 0.22);
}
.rental-cart .btn-primary:disabled:hover,
.rental-cart__form-actions .btn-primary:disabled:hover {
  opacity: 0.65;
  box-shadow: 0 2px 8px rgba(17, 28, 45, 0.12);
}

.rental-cart .btn-primary:active:not(:disabled),
.rental-cart__form-actions .btn-primary:active:not(:disabled) {
  transform: scale(0.98);
  transition-duration: 50ms;
}

/* Pill CTAs on rental flow (same token as pre–border pass; Get a Quote page uses its own .btnCall rules). */
.rental-cart .btn,
.rental-cart a.btn,
.rental-cart button.button.alt,
.rental-cart input.button.alt,
.rental-cart #place_order {
  border-radius: var(--rental-cart-btn-radius);
}

.rental-cart__form-row--promo .input-group .rental-field__input,
.rental-cart__checkout-coupon-wrap .rental-field__input {
  border-radius: var(--rental-field-radius, 4px);
}

.rental-cart__form-hint {
  font-size: 0.85rem;
  line-height: 1.45;
  color: var(--text-muted);
  margin-top: 0.75rem;
}

.rental-cart .btn-arrow {
  margin-left: 0.5rem;
  transition: transform 200ms;
}

.rental-cart .btn:hover:not(:disabled) .btn-arrow {
  transform: translateX(4px);
}

.rental-cart__form-actions--hidden {
  display: none;
}

.rental-cart__step-header--review {
  text-align: center;
  margin-bottom: 0.75rem;
}

.rental-cart__step-header--review .rental-cart__step-subtitle {
  max-width: 42em;
  margin-top: 0.35rem;
  margin-left: auto;
  margin-right: auto;
}

.rental-cart__review {
  margin-top: 1.5rem;
}

.rental-cart__review-trust {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  font-size: 0.8rem;
  color: var(--text-muted);
  margin: 0;
}

.rental-cart__review-trust svg {
  flex-shrink: 0;
}

.rental-cart__size-selector {
  position: relative;
  z-index: 2;  /* above summary bar so hovered cards don’t clip behind it */
  margin-bottom: 2rem;
}

.rental-cart__size-cards {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 1rem;
  overflow-x: visible;
  overflow-y: visible;
  padding-top: 0.5rem;   /* room for hover lift so it doesn’t clip behind bar above */
  padding-bottom: 1rem;
}

.rental-cart__size-card {
  position: relative;
  z-index: 0;
  flex: 0 0 auto;
  width: 140px;
  background: var(--color-surface, #ffffff);
  border: var(--rental-field-border-width, 1px) solid var(--card-border, #cbd5e1);
  border-radius: var(--rental-field-radius, 4px);
  padding: 0;
  cursor: pointer;
  transition:
    border-color 0.2s cubic-bezier(0.25, 1, 0.5, 1),
    box-shadow 0.2s cubic-bezier(0.25, 1, 0.5, 1),
    transform 0.2s cubic-bezier(0.25, 1, 0.5, 1);
  scroll-snap-align: start;
}

/* Loading placeholder is a div, not a button — layout lives on the outer card */
.rental-cart__size-card:not(button) {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 1.25rem 1rem;
  box-sizing: border-box;
}

/* Flex on <button> is unreliable in WebKit/Chromium; inner span carries the flex layout */
.rental-cart__size-card-inner {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  padding: 1.25rem 1rem;
}

button.rental-cart__size-card {
  margin: 0;
  font: inherit;
  color: inherit;
  appearance: none;
  -webkit-appearance: none;
  box-sizing: border-box;
  /* One flex child (.rental-cart__size-card-inner) avoids multi-child <button> flex bugs */
  display: flex;
  flex-direction: column;
  align-items: stretch;
}

.rental-cart__size-card:hover {
  z-index: 10;
  border-color: var(--primary-color);
  transform: translateY(-4px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.1);
}

/* Selected: white tile; coral border + coral idle shadow; hover uses neutral shadow only */
.rental-cart__size-card--selected:hover {
  border-color: var(--rental-flow-cta, #c65252);
  background: var(--color-surface, #ffffff);
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.12);
}

.rental-cart:not(.rental-cart--checkout) .rental-cart__size-card {
  box-shadow: 0 1px 5px rgba(17, 28, 45, 0.12);
}

.rental-cart:not(.rental-cart--checkout) .rental-cart__size-card:hover:not(.rental-cart__size-card--selected) {
  box-shadow: 0 8px 22px rgba(17, 28, 45, 0.16);
}

.rental-cart:not(.rental-cart--checkout) .rental-cart__size-card--selected:hover {
  box-shadow: 0 10px 26px rgba(0, 0, 0, 0.14);
}

.rental-cart:not(.rental-cart--checkout) .rental-cart__size-card:focus-visible {
  box-shadow:
    0 6px 16px rgba(17, 28, 45, 0.12),
    0 0 0 3px rgba(var(--primary-color-rgb, 41, 68, 103), 0.25);
}

.rental-cart:not(.rental-cart--checkout) .rental-cart__size-card--selected:focus-visible {
  box-shadow:
    0 6px 20px rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.2),
    0 0 0 3px rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.28);
}

.rental-cart__size-card:focus {
  outline: none;
}

.rental-cart__size-card:focus-visible {
  outline: none;
  border-color: var(--primary-color, #294467);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.1), 0 0 0 3px rgba(var(--primary-color-rgb, 41, 68, 103), 0.25);
}

.rental-cart__size-card--selected:focus-visible {
  outline: none;
  border-color: var(--rental-flow-cta, #c65252);
  box-shadow:
    0 6px 20px rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.22),
    0 0 0 3px rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.26);
}

.rental-cart__size-card--selected {
  border-color: var(--rental-flow-cta, #c65252);
  border-width: 2px;
  background: var(--color-surface, #ffffff);
  color: inherit;
  box-shadow: 0 6px 20px rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.22);
}

.rental-cart__size-card--recommended {
  position: relative;
}

.rental-cart__size-card--recommended::before {
  content: '★ BEST';
  position: absolute;
  top: -8px;
  right: -8px;
  background: var(--accent-warning);
  color: var(--color-on-primary);
  font-size: 0.65rem;
  font-weight: 700;
  padding: 0.25rem 0.5rem;
  border-radius: 4px;
}

.rental-cart__size-card-name {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--color-text, #1f2937);
  margin-bottom: 0.5rem;
  line-height: 1.25;
  max-width: 100%;
  min-width: 0;
}

/* Base price row (e.g. strikethrough “was” only); hero amounts use --quote */
.rental-cart__size-card-price {
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--primary-color, #294467);
  margin-bottom: 0.5rem;
}

.rental-cart__size-card-price-stack {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.15rem;
  margin-bottom: 0.5rem;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.rental-cart__size-card-price-stack > .rental-cart__size-card-price {
  margin-bottom: 0;
}

.rental-cart__size-card-price--was {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--text-muted);
  text-decoration: line-through;
  font-variant-numeric: tabular-nums;
  line-height: 1.3;
}

/* Framed quoted price: promo discounted, standard list price, and 40-yard (no promo UI) */
.rental-cart__size-card-price--quote {
  display: block;
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  margin-top: 0.1rem;
  padding: 0.32rem 0.62rem;
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--primary-color, #294467);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
  line-height: 1.2;
  text-align: center;
  border-radius: 4px;
  border: 1px solid rgba(var(--primary-color-rgb, 41, 68, 103), 0.32);
  background: rgba(var(--primary-color-rgb, 41, 68, 103), 0.07);
  box-shadow:
    inset 0 1px 0 rgba(var(--primary-color-rgb, 41, 68, 103), 0.14),
    inset 0 -1px 0 rgba(var(--primary-color-rgb, 41, 68, 103), 0.05),
    0 1px 2px rgba(var(--primary-color-rgb, 41, 68, 103), 0.06);
}


.rental-cart__size-card--selected .rental-cart__size-card-price:not(.rental-cart__size-card-price--quote):not(.rental-cart__size-card-price--was) {
  color: var(--rental-flow-cta, #c65252);
}


/* Same framed “chip” shading as blue; flow coral fill + typography */
.rental-cart__size-card--selected .rental-cart__size-card-price--quote {
  color: var(--rental-flow-cta, #c65252);
  border: 1px solid rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.34);
  background: rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.1);
  box-shadow:
    inset 0 1px 0 rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.18),
    inset 0 -1px 0 rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.05),
    0 1px 3px rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.09);
}

.rental-cart__size-card-capacity {
  font-size: 0.85rem;
  color: var(--text-muted);
}

/* Small screens: compact cards, no capacity */
@media (max-width: 991px) {
  .rental-cart__size-cards {
    display: grid;
    /* 4 columns from tablet/sm desktop down; phones override below */
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.5rem;
  }

  .rental-cart__size-card {
    flex: none;
    width: 100%;
    min-width: 0;
    max-width: none;
  }

  .rental-cart__size-card:not(button) {
    padding: 0.6rem 0.35rem;
  }

  .rental-cart__size-card-inner {
    padding: 0.65rem 0.35rem;
    min-height: 56px;
  }

  .rental-cart__size-card-name {
    font-size: 0.8125rem;
    font-weight: 700;
    line-height: 1.2;
    margin-bottom: 0.2rem;
  }

  .rental-cart__size-card-price {
    font-size: 0.9375rem;
    margin-bottom: 0;
    line-height: 1.2;
  }

  .rental-cart__size-card-price-stack {
    margin-bottom: 0;
    gap: 0.1rem;
  }

  .rental-cart__size-card-price--was {
    font-size: 0.75rem;
    max-width: 100%;
    overflow-wrap: anywhere;
  }

  .rental-cart__size-card-price--quote {
    font-size: 1rem;
    padding: 0.26rem 0.35rem;
    margin-top: 0.08rem;
  }

  .rental-cart__size-card-capacity {
    display: none;
  }

  .rental-cart__size-card--recommended::before {
    font-size: 0.5rem;
    padding: 0.15rem 0.35rem;
    top: -4px;
    right: -4px;
    border-radius: 3px;
  }
}

/* Phones: four columns (~75px on 375px wide) clips currency; two columns fit prices cleanly */
@media (max-width: 767px) {
  .rental-cart__size-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.625rem;
  }

  .rental-cart__size-card-inner {
    padding: 0.7rem 0.5rem;
  }

  .rental-cart__size-card:not(button) {
    padding: 0.7rem 0.5rem;
  }

  .rental-cart__size-card-price--quote {
    font-size: clamp(0.875rem, 4.2vw, 1.0625rem);
    padding: 0.3rem 0.45rem;
    white-space: nowrap;
  }

  /* scroll-margin for native in-view scrolls; JS scrollTo uses MOBILE_RENTAL_SCROLL_TOP_PAD_PX (~767px). */
  #step-order-info .rental-cart__form-section,
  #step-order-info .rental-cart__form-actions {
    scroll-margin-top: 0.75rem;
  }

  #step-product-selection #step-product-selection-sizes,
  #step-product-selection #product-detail-panel,
  #step-product-selection #product-detail-40-yard-call,
  #step-product-selection #step-product-selection-delivery,
  #step-product-selection #rental-extras-section,
  #step-product-selection .rental-cart__product-actions {
    scroll-margin-top: 0.75rem;
  }

  #step-contact-info #step-contact-customer-type,
  #step-contact-info #customer-form-main,
  #step-contact-info #step-contact-your-details,
  #step-contact-info #onsite-contact-fields,
  #step-contact-info #step-contact-placement,
  #step-contact-info #gate-code-wrap,
  #step-contact-info .rental-cart__form-actions {
    scroll-margin-top: 0.75rem;
  }

  /* Checkout panels */
  #step-checkout-review #checkout-notices-slot,
  #step-checkout-review #checkout-prefill-block,
  #step-checkout-review #customer_details,
  #step-checkout-review .rental-cart__checkout-billing,
  #step-checkout-review #order_review,
  #step-checkout-review #checkout-promo-block,
  #step-checkout-review .rental-cart__checkout-payment-row {
    scroll-margin-top: 0.75rem;
  }
}

/* Weight calculator "Recommended" badge */
.rental-cart__size-card--calc-recommended {
  position: relative;
}

.rental-cart__size-card-badge {
  position: absolute;
  top: -8px;
  right: -8px;
  background: var(--accent-warning, #e7711b);
  color: var(--color-on-primary, #fff);
  font-size: 0.65rem;
  font-weight: 700;
  padding: 0.25rem 0.5rem;
  border-radius: 4px;
}

@media (max-width: 991px) {
  .rental-cart__size-card-badge {
    font-size: 0.5rem;
    padding: 0.15rem 0.35rem;
    top: -4px;
    right: -4px;
    border-radius: 3px;
  }
}

.rental-cart__size-card-loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  padding: 2rem;
}

.rental-cart__size-card-loading .spinner {
  width: 40px;
  height: 40px;
  border-width: 3px;
  margin-right: 0;
}

.spinner {
  display: inline-block;
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  vertical-align: middle;
  margin-right: 0.5rem;
  border: var(--rental-field-border-width, 1px) solid var(--card-border);
  border-top-color: var(--primary-color);
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
  box-sizing: border-box;
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
  .rental-cart__size-card {
    transition-duration: 0.01ms;
  }

  .rental-cart__size-card:hover {
    transform: none;
  }

  .spinner {
    animation: none;
    opacity: 0.75;
  }

  .rental-cart__price-breakdown .rental-cart__extras-chip--in-price,
  .rental-cart__price-breakdown .rental-cart__extras-chip-remove {
    transition-duration: 0.01ms;
  }
}

.rental-cart__product-detail {
  display: grid;
  gap: 2rem;
  grid-template-columns: 1fr;
  margin-bottom: 2rem;
  padding: 1.25rem clamp(1rem, 3vw, 1.5rem);
  border: 1px solid var(--color-border, #cbd5e1);
  border-radius: var(--form-card-radius, 8px);
  background: var(--color-surface, #ffffff);
  box-sizing: border-box;
}

@media (min-width: 992px) {
  .rental-cart__product-detail {
    padding: 1.5rem clamp(1.25rem, 2.5vw, 2rem);
  }
}

.rental-cart__product-left {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.rental-cart__product-image-wrap {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.rental-cart__product-image {
  width: 100%;
  aspect-ratio: 4/3;
  background: var(--color-surface, #ffffff);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--card-border, #cbd5e1);
  padding: 0.75rem;
  box-sizing: border-box;
}

.rental-cart__product-image-img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 6px;
  display: block;
}

.rental-cart__product-image-fallback {
  font-size: 4rem;
  opacity: 0.3;
}

.rental-cart__product-image-disclaimer {
  font-size: 0.90rem;
  color: var(--color-text-muted, #6b7280);
  margin: 0;
}

/* What's Included — same navy callout recipe as .rental-cart__repricing-note + .rental-field__label rhythm */
.rental-cart__included-details {
  padding: 0.75rem 1rem;
  border: 1px solid rgba(var(--primary-color-rgb, 41, 68, 103), 0.18);
  border-radius: 10px;
  background: rgba(var(--primary-color-rgb, 41, 68, 103), 0.06);
}

.rental-cart__included-details-title {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  margin: 0 0 1rem;
  padding: 0;
  font-size: 1.0625rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 1.25;
  color: var(--primary-color, #294467);
}

/* Single secondary accent — matches brand emphasis token */
.rental-cart__included-details-title::before {
  content: "";
  flex-shrink: 0;
  width: 4px;
  height: 1.15em;
  border-radius: 2px;
  background: var(--td-accent-orange, #c65252);
}

.rental-cart__included-specs {
  margin: 0;
  padding: 0;
}

.rental-cart__included-spec {
  display: grid;
  gap: 0.5rem 1rem;
  padding: 1rem 0;
  border-top: 1px solid var(--color-border, #e9ecef);
}

.rental-cart__included-spec:first-of-type {
  border-top: none;
  padding-top: 0;
}

/* Align with .rental-field__label (cart form uppercase labels); muted via cart token */
.rental-cart__included-spec-label {
  margin: 0;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  line-height: 1.3;
  color: var(--text-muted);
}

.rental-cart__included-spec-body {
  margin: 0;
  min-width: 0;
}

.rental-cart__included-spec-value {
  margin: 0;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: -0.015em;
  color: var(--primary-color, #294467);
  font-variant-numeric: tabular-nums;
}

.rental-cart__included-spec-note {
  margin: 0.25rem 0 0;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.45;
  color: var(--text-muted);
}

.rental-cart__included-spec-note:empty {
  display: none;
}

@media (min-width: 400px) {
  .rental-cart__included-spec {
    grid-template-columns: minmax(6.25rem, 8.5rem) minmax(0, 1fr);
    align-items: start;
  }

  .rental-cart__included-spec-label {
    padding-top: 0.125rem;
  }
}

.rental-cart__product-right {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

/* Mobile: reorder to image → title+price → included-details → date → actions → extras */
@media (max-width: 991px) {
  .rental-cart__product-detail {
    display: flex;
    flex-direction: column;
    /* Tighter stack than grid’s 2rem — still airy between major blocks */
    gap: 1.25rem;
  }

  .rental-cart__product-left,
  .rental-cart__product-right {
    display: contents;
  }

  .rental-cart__product-detail .rental-cart__product-image { order: 1; }
  .rental-cart__product-detail .rental-cart__product-name { order: 2; }
  .rental-cart__product-detail .rental-cart__product-pricing-block { order: 3; }
  .rental-cart__product-detail .rental-cart__included-details { order: 4; }
  .rental-cart__product-detail .rental-cart__date-section { order: 5; }
  .rental-cart__product-detail .rental-cart__rental-extras-section { order: 6; }
  .rental-cart__product-detail .rental-cart__product-actions { order: 7; }
  .rental-cart__product-detail .rental-cart__materials-section { order: 8; }

  /* Pull pricing block closer to “… Roll Off” title on small screens */
  .rental-cart__product-detail > .rental-cart__product-name {
    margin-bottom: 0;
    font-size: 1.35rem;
    line-height: 1.35;
  }

  .rental-cart__product-detail > .rental-cart__product-name .rental-cart__product-name-online {
    font-size: 0.9375rem;
    font-weight: 600;
    white-space: normal;
  }

  /* Pulls pricing intro up through the flex gap so lock-in sits closer under the Roll Off heading */
  .rental-cart__product-detail > .rental-cart__product-pricing-block {
    margin-top: -0.85rem;
  }
}

.rental-cart__product-name {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0 0.375rem;
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--color-text, #1f2937);
  line-height: 1.25;
  margin: 0;
}

.rental-cart__product-name-online {
  font-size: 1.0625rem;
  font-weight: 600;
  /* Same green as site --tertiary-color; cart exposes it as --accent-success on .rental-cart */
  color: var(--accent-success, #1a8943);
  letter-spacing: 0.01em;
  white-space: nowrap;
}

/* Title → lock-in → TOTAL → amounts: tight within each step, one clear step to the figures. */
.rental-cart__product-pricing-block {
  --price-stack-tight: 0.25rem;
  --price-stack-step: 0.375rem;
  display: flex;
  flex-direction: column;
  gap: var(--price-stack-step);
  width: 100%;
}

@media (min-width: 992px) {
  .rental-cart__product-right > .rental-cart__product-name + .rental-cart__product-pricing-block {
    margin-top: -0.45rem;
  }
}

/* Lock-in + Total share one intro column; amounts sit in the next flex child. */
.rental-cart__product-pricing-intro {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--price-stack-tight);
  width: 100%;
}

.rental-cart__product-pricing-intro .rental-cart__price-label {
  display: block;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-muted, var(--color-text-muted));
  margin: 0 0 0.125rem;
}

.rental-cart__product-pricing {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

/* Title → TOTAL → (strikethrough) → final price, single column */
.rental-cart__price-display {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
}

.rental-cart__price-breakdown {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.2rem;
  width: 100%;
}

.rental-cart__price-original {
  display: none;
  font-size: 1.125rem;
  font-weight: 500;
  color: var(--text-muted);
  text-decoration: line-through;
  font-variant-numeric: tabular-nums;
  line-height: 1.35;
}

.rental-cart__price-breakdown .rental-cart__price-main--online {
  color: var(--primary-color, #294467);
  font-size: 2.0625rem;
  letter-spacing: -0.02em;
}

@media (max-width: 991px) {
  .rental-cart__product-detail .rental-cart__price-breakdown .rental-cart__price-main {
    font-size: 1.75rem;
  }

  .rental-cart__product-detail .rental-cart__price-breakdown .rental-cart__price-main--online {
    font-size: 1.8125rem;
  }

  .rental-cart__product-detail .rental-cart__price-display--has-promo .rental-cart__price-original {
    font-size: 1rem;
  }
}

.rental-cart__price-current {
  font-size: 2rem;
  font-weight: 700;
  color: var(--primary-color);
}

.rental-cart__price-breakdown .rental-cart__price-extras {
  --rental-price-chip-row: 2.5rem;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  align-content: flex-start;
  gap: 0.4rem;
  margin-top: 0.35rem;
  width: 100%;
  box-sizing: border-box;
  /* One chip row reserved when empty (matches real chip height). Second chip may wrap → small, rare growth. */
  min-height: var(--rental-price-chip-row);
}

@media (max-width: 991px) {
  .rental-cart__price-breakdown .rental-cart__price-extras {
    /* Mobile-first: same single-row reserve (no double band). Slightly tighter to match smaller tap UI. */
    --rental-price-chip-row: 2.35rem;
  }
}

.rental-cart__price-breakdown .rental-cart__price-label {
  display: block;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-muted, var(--color-text-muted));
  margin: 0 0 0.15rem;
}

.rental-cart__price-breakdown .rental-cart__price-main {
  display: block;
  font-size: 2rem;
  font-weight: 700;
  color: var(--primary-color);
  font-variant-numeric: tabular-nums;
}

/* Step 1 product panel: "Total" amount — coral (rental CTA accent) */
.rental-cart__product-detail .rental-cart__price-breakdown .rental-cart__price-main,
.rental-cart__product-detail .rental-cart__price-breakdown .rental-cart__price-main--online {
  color: var(--rental-flow-cta, #c65252);
}

.rental-cart__price-breakdown .rental-cart__price-base-caption {
  display: block;
  margin-top: 0.1rem;
  font-size: 0.88rem;
  font-weight: 400;
  color: var(--text-muted, var(--color-text-muted));
  font-variant-numeric: tabular-nums;
}

/* Same vertical slot as visible “Base:” line when extras are off (avoids jump next to delivery). */
.rental-cart__price-breakdown .rental-cart__price-base-caption--inactive {
  visibility: hidden;
  min-height: 1.35em;
}

.rental-cart__price-breakdown .rental-cart__extras-chip-label {
  font-variant-numeric: tabular-nums;
}

.rental-cart__price-breakdown .rental-cart__extras-chip--in-price {
  position: relative;
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.6rem;
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--text-muted, var(--color-text-muted));
  background: rgba(0, 0, 0, 0.06);
  border: 1px solid rgba(0, 0, 0, 0.1);
  border-radius: 9999px;
  white-space: nowrap;
  transition: padding-right 0.2s ease;
}

.rental-cart__price-breakdown .rental-cart__extras-chip--in-price:hover {
  padding-right: 1.5rem;
}

.rental-cart__price-breakdown .rental-cart__extras-chip-remove {
  position: absolute;
  right: 0.35rem;
  top: 50%;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1rem;
  height: 1rem;
  padding: 0;
  font-size: 0.875rem;
  line-height: 1;
  color: inherit;
  background: transparent;
  border: none;
  border-radius: 50%;
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease, background 0.15s ease;
}

.rental-cart__price-breakdown .rental-cart__extras-chip--in-price:hover .rental-cart__extras-chip-remove,
.rental-cart__price-breakdown .rental-cart__extras-chip-remove:focus {
  opacity: 0.9;
  pointer-events: auto;
}

.rental-cart__price-breakdown .rental-cart__extras-chip-remove:hover,
.rental-cart__price-breakdown .rental-cart__extras-chip-remove:focus {
  opacity: 1;
  background: rgba(0, 0, 0, 0.1);
}

.rental-cart__price-breakdown .rental-cart__extras-chip--in-price:focus-within {
  padding-right: 1.5rem;
}

@media (max-width: 768px) {
  .rental-cart__price-breakdown .rental-cart__extras-chip--in-price {
    padding-right: 1.5rem;
  }
  .rental-cart__price-breakdown .rental-cart__extras-chip-remove {
    opacity: 0.9;
    pointer-events: auto;
  }
}

@media (hover: none) {
  .rental-cart__price-breakdown .rental-cart__extras-chip--in-price {
    padding-right: 1.5rem;
  }
  .rental-cart__price-breakdown .rental-cart__extras-chip-remove {
    opacity: 0.9;
    pointer-events: auto;
  }
}

.rental-cart__date-section {
  padding: 1.5rem;
  background: var(--color-surface, #ffffff);
  border: 1px solid var(--card-border, #e2e8f0);
  border-radius: 8px;
}

/* White cards inside navy slab step: slab label rules stay light; restore dark labels here */
.rental-cart__step-content .rental-cart__product-detail .rental-field__label,
.rental-cart__step-content .rental-cart__date-section .rental-field__label {
  color: var(--color-text, #1f2937);
}

.rental-cart__step-content .rental-cart__product-detail .rental-field__hint,
.rental-cart__step-content .rental-cart__date-section .rental-field__hint {
  color: var(--text-muted, #6b7280);
}

.rental-cart__step-content .rental-cart__product-detail .rental-field__optional,
.rental-cart__step-content .rental-cart__date-section .rental-field__optional {
  color: var(--text-muted, #6b7280);
}

.rental-cart__step-content .rental-cart__date-section .input-group-text {
  color: var(--color-text-secondary, #374151);
}

.rental-cart__date-title {
  font-size: 1rem;
  font-weight: 700;
  color: #1f2937;
  margin-bottom: 1rem;
}

.rental-cart__date-picker {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.rental-cart__date-tile {
  background: var(--color-surface);
  border: var(--rental-field-border-width, 1px) solid var(--card-border);
  border-radius: var(--rental-field-radius, 4px);
  padding: 0.75rem 0.5rem;
  text-align: center;
  cursor: pointer;
  transition: all 200ms;
}

.rental-cart__date-tile:hover {
  border-color: var(--rental-flow-cta, #c65252);
  background: rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.06);
}

.rental-cart__date-tile--selected {
  border-color: var(--rental-flow-cta, #c65252);
  background: var(--rental-flow-cta, #c65252);
  color: var(--color-on-primary, #ffffff);
}

/* Selected tile hover — keep coral, lift with neutral shadow */
.rental-cart__date-tile--selected:hover {
  background: var(--rental-flow-cta, #c65252);
  border-color: var(--rental-flow-cta, #c65252);
  color: var(--color-on-primary, #ffffff);
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12);
}

.rental-cart__date-tile-day {
  font-weight: 600;
  font-size: 0.9rem;
  display: block;
}

.rental-cart__date-tile-date {
  font-size: 0.85rem;
  opacity: 0.85;
  display: block;
  margin-top: 0.25rem;
}

.rental-cart__date-calendar {
  margin-top: 1rem;
}

.rental-cart__date-calendar #delivery-date-picker-trigger {
  cursor: pointer;
}

/* Inline field + calendar trigger: unify border + coral ring when either is focused */
.rental-cart__date-calendar .input-group:focus-within {
  border-radius: var(--rental-field-radius, 4px);
  box-shadow: 0 0 0 0.2rem rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.22);
}

.rental-cart__date-calendar .input-group:focus-within .rental-field__input,
.rental-cart__date-calendar .input-group:focus-within .form-control {
  border-color: var(--rental-flow-cta, #c65252);
}

.rental-cart__date-calendar .input-group:focus-within #delivery-date-picker-trigger,
.rental-cart__date-calendar .input-group:focus-within .input-group-text {
  border-color: var(--rental-flow-cta, #c65252);
  color: var(--rental-flow-cta, #c65252);
}

/* Bootstrap-datepicker dropdown: coral month header (white title + arrows); coral accents on day selection */
.rental-cart-datepicker.datepicker-dropdown {
  padding: 0.75rem;
  border: var(--rental-field-border-width, 1px) solid var(--input-border, #e5e7eb);
  border-radius: var(--rental-field-radius, 4px);
  box-shadow: var(--form-card-shadow, 0 1px 3px rgba(0, 0, 0, 0.06)), 0 10px 40px rgba(0, 0, 0, 0.12);
  background: var(--color-surface);
  font-size: 0.9rem;
  overflow: hidden;
}

.rental-cart-datepicker.datepicker-dropdown.datepicker-orient-bottom:after {
  border-bottom-color: var(--rental-flow-cta, #c65252);
}

.rental-cart-datepicker.datepicker-dropdown.datepicker-orient-top:after {
  border-top-color: var(--rental-flow-cta, #c65252);
}

/* Pull table up and full width so header can extend to top and sides */
.rental-cart-datepicker .datepicker-days table {
  margin: -0.75rem -0.75rem 0 -0.75rem;
  width: calc(100% + 1.5rem);
  max-width: none;
  border-collapse: separate;
  border-spacing: 0;
}

/* Header row — coral toolbar (white month label + arrows) */
.rental-cart-datepicker .datepicker-days table thead tr:first-child th,
.rental-cart-datepicker.datepicker-dropdown .datepicker-days table thead th.prev,
.rental-cart-datepicker.datepicker-dropdown .datepicker-days table thead th.next,
.rental-cart-datepicker.datepicker-dropdown .datepicker-days table thead th.datepicker-switch {
  background: var(--rental-flow-cta, #c65252) !important;
  color: #fff !important;
  font-weight: 700;
  border: none;
  border-bottom: 1px solid rgba(255, 255, 255, 0.28);
  padding: 0.6rem 0.5rem;
  border-radius: 0;
}

/* Only the outer header cells get top corner radius – single bar look */
.rental-cart-datepicker .datepicker-days table thead tr:first-child th:first-child,
.rental-cart-datepicker.datepicker-dropdown .datepicker-days table thead th.prev {
  border-radius: 8px 0 0 0;
}
.rental-cart-datepicker .datepicker-days table thead tr:first-child th:last-child,
.rental-cart-datepicker.datepicker-dropdown .datepicker-days table thead th.next {
  border-radius: 0 8px 0 0;
}

/* First corner cell — match coral header */
.rental-cart-datepicker .datepicker-days table thead tr:first-child th:first-child,
.rental-cart-datepicker.datepicker-dropdown .datepicker-days table thead tr:first-child th:first-child {
  background: var(--rental-flow-cta, #c65252) !important;
  min-width: 2.5rem;
}

/* When prev is disabled: keep layout, hide arrow */
.rental-cart-datepicker .datepicker-days table thead tr:first-child th.prev.disabled,
.rental-cart-datepicker.datepicker-dropdown .datepicker-days table thead th.prev.disabled {
  visibility: visible !important;
  display: table-cell !important;
  width: 2.5rem !important;
  min-width: 2.5rem !important;
  background: var(--rental-flow-cta, #c65252) !important;
  pointer-events: none !important;
  cursor: default !important;
}
.rental-cart-datepicker .datepicker-days table thead th.prev.disabled span,
.rental-cart-datepicker.datepicker-dropdown .datepicker-days table thead th.prev.disabled span {
  visibility: hidden !important;
}

/* Extend coral header left when prev cell is clipped */
.rental-cart-datepicker .datepicker-days table thead tr:first-child th:first-child {
  position: relative;
}
.rental-cart-datepicker .datepicker-days table thead tr:first-child th:first-child::before {
  content: '';
  position: absolute;
  right: 100%;
  top: 0;
  bottom: 0;
  width: 2.5rem;
  background: var(--rental-flow-cta, #c65252);
  border-radius: 8px 0 0 0;
  pointer-events: none;
}

.rental-cart-datepicker .datepicker-days table thead tr:first-child th.prev,
.rental-cart-datepicker .datepicker-days table thead tr:first-child th.next,
.rental-cart-datepicker.datepicker-dropdown .datepicker-days table thead th.prev,
.rental-cart-datepicker.datepicker-dropdown .datepicker-days table thead th.next {
  cursor: pointer;
  color: #fff !important;
  font-size: 1.35rem;
  line-height: 1;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}

/*
 * Bootstrap ships `.datepicker .datepicker-switch:hover { background: #eee }` (same group as .prev/.next).
 * Beat it with `.datepicker` in the chain + !important so month/year hover never washes to gray/white.
 * Subtle darken on coral for the whole nav row — keeps white text readable.
 */
.rental-cart-datepicker.datepicker .datepicker-days table thead tr:first-child th:hover:not(.disabled) {
  background:
    linear-gradient(rgba(0, 0, 0, 0.14), rgba(0, 0, 0, 0.14)),
    var(--rental-flow-cta, #c65252) !important;
  color: #fff !important;
}

.rental-cart-datepicker .datepicker-days table thead tr:first-child th.datepicker-switch,
.rental-cart-datepicker.datepicker-dropdown .datepicker-days table thead th.datepicker-switch {
  font-weight: 700;
  color: #fff !important;
}

.rental-cart-datepicker .datepicker-days table thead th.dow {
  background: var(--color-surface) !important;
  color: var(--text-muted, var(--color-text-muted));
  font-weight: 600;
  font-size: 0.75rem;
  padding: 0.5rem 0.25rem;
  border: none;
  border-bottom: 1px solid var(--input-border, var(--color-border));
}

/* Restore horizontal inset for calendar body (header stays edge-to-edge) */
.rental-cart-datepicker .datepicker-days table thead tr:last-child th:first-child {
  padding-left: 0.75rem;
}
.rental-cart-datepicker .datepicker-days table thead tr:last-child th:last-child {
  padding-right: 0.75rem;
}
.rental-cart-datepicker .datepicker-days table tbody td:first-child {
  padding-left: 0.75rem;
}
.rental-cart-datepicker .datepicker-days table tbody td:last-child {
  padding-right: 0.75rem;
}

.rental-cart-datepicker .datepicker-days table tbody td {
  padding: 0.35rem;
  border-radius: 6px;
}

/* Default “pickable” day look only — blackouts use .disabled / .holiday-disabled / .weekend-disabled below */
.rental-cart-datepicker .datepicker-days table tbody td.day:not(.disabled):not(.weekend-disabled):not(.holiday-disabled) {
  color: #1f2937;
}

.rental-cart-datepicker .datepicker-days table tbody td.day:not(.disabled):not(.weekend-disabled):not(.holiday-disabled):hover {
  background: rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.1);
  color: var(--rental-flow-cta, #c65252);
}

/* No bubble/radius on disabled or other-month cells – flat so they don’t look like buttons */
.rental-cart-datepicker .datepicker-days table tbody td.old,
.rental-cart-datepicker .datepicker-days table tbody td.new,
.rental-cart-datepicker .datepicker-days table tbody td.disabled,
.rental-cart-datepicker .datepicker-days table tbody td.weekend-disabled,
.rental-cart-datepicker .datepicker-days table tbody td.holiday-disabled {
  border-radius: 0;
}

.rental-cart-datepicker .datepicker-days table tbody td.old,
.rental-cart-datepicker .datepicker-days table tbody td.new {
  color: var(--text-muted, var(--color-text-muted));
  opacity: 0.6;
  background: transparent;
}

.rental-cart-datepicker .datepicker-days table tbody td.disabled,
.rental-cart-datepicker .datepicker-days table tbody td.weekend-disabled,
.rental-cart-datepicker .datepicker-days table tbody td.holiday-disabled {
  color: #ced4da !important;
  cursor: not-allowed;
  pointer-events: none;
  background: transparent !important;
}

.rental-cart-datepicker .datepicker-days table tbody td.disabled:hover,
.rental-cart-datepicker .datepicker-days table tbody td.weekend-disabled:hover,
.rental-cart-datepicker .datepicker-days table tbody td.holiday-disabled:hover {
  background: transparent !important;
  color: #ced4da !important;
}

/* Stock bootstrap-datepicker: `table tr td.day:hover { background:#eee }` — force weekday holidays off that treatment */
.rental-cart-datepicker.datepicker-dropdown .datepicker table tr td.day.disabled,
.rental-cart-datepicker.datepicker-dropdown .datepicker table tr td.day.disabled:hover {
  background: transparent !important;
  cursor: not-allowed !important;
}

/* Weekend columns (Su = 1st, Sa = 7th) always greyed out and not selectable */
.rental-cart-datepicker .datepicker-days table tbody td:nth-child(1),
.rental-cart-datepicker .datepicker-days table tbody td:nth-child(7) {
  color: #ced4da !important;
  cursor: not-allowed;
  pointer-events: none;
  background: transparent !important;
  border-radius: 0;
}
.rental-cart-datepicker .datepicker-days table tbody td:nth-child(1):hover,
.rental-cart-datepicker .datepicker-days table tbody td:nth-child(7):hover {
  background: transparent !important;
  color: #ced4da !important;
}
/* Keep selected state visible if somehow a weekend is highlighted */
.rental-cart-datepicker .datepicker-days table tbody td:nth-child(1).active,
.rental-cart-datepicker .datepicker-days table tbody td:nth-child(7).active {
  color: var(--color-on-primary, #ffffff) !important;
  background: var(--rental-flow-cta, #c65252) !important;
  border-color: var(--rental-flow-cta, #c65252);
  box-shadow: 0 2px 8px rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.32);
}

.rental-cart-datepicker .datepicker-days table tbody td.active,
.rental-cart-datepicker .datepicker-days table tbody td.active:hover {
  background: var(--rental-flow-cta, #c65252) !important;
  border-color: var(--rental-flow-cta, #c65252);
  color: var(--color-on-primary, #ffffff) !important;
  box-shadow: 0 2px 8px rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.35);
}

.rental-cart-datepicker .datepicker-days table tbody td.today:not(.disabled):not(.weekend-disabled):not(.holiday-disabled) {
  background: rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.1);
  border: 1px solid rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.32);
  color: var(--rental-flow-cta, #c65252);
  font-weight: 600;
}

.rental-cart-datepicker .datepicker-days table tbody td.today:not(.disabled):not(.weekend-disabled):not(.holiday-disabled):hover {
  background: rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.16);
}

/* Today on a blackout (e.g. July 4 weekday): no “today” highlight — match disabled cells */
.rental-cart-datepicker .datepicker-days table tbody td.today.disabled,
.rental-cart-datepicker .datepicker-days table tbody td.today.weekend-disabled,
.rental-cart-datepicker .datepicker-days table tbody td.today.holiday-disabled {
  background: transparent !important;
  border: none !important;
  color: #ced4da !important;
  font-weight: 400;
  box-shadow: none;
}

.rental-cart-datepicker .datepicker-days table tbody td.today.disabled:hover,
.rental-cart-datepicker .datepicker-days table tbody td.today.weekend-disabled:hover,
.rental-cart-datepicker .datepicker-days table tbody td.today.holiday-disabled:hover {
  background: transparent !important;
  color: #ced4da !important;
}

.rental-cart-datepicker .datepicker-days table tbody td.today.active {
  background: var(--rental-flow-cta, #c65252) !important;
  color: var(--color-on-primary, #ffffff) !important;
  border-color: var(--rental-flow-cta, #c65252);
}

/* 40 yard: call-to-order block (aligned with date / extras step cards) */
.rental-cart__product-detail-call-only {
  margin: 1rem 0 0;
  padding: 1.5rem;
  background: var(--color-surface, #ffffff);
  border: 1px solid var(--card-border, #cbd5e1);
  border-radius: var(--form-card-radius, 8px);
  box-shadow: var(--form-card-shadow);
}

.rental-cart__product-detail--40-yard-call-only .rental-cart__product-detail-call-only {
  margin-top: 0.75rem;
}

.rental-cart__product-detail-call-only-title {
  margin: 0 0 0.5rem;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.3;
  color: var(--color-text, #1f2937);
}

.rental-cart__product-detail-call-only-text {
  margin: 0 0 1.25rem;
  font-size: 0.9375rem;
  line-height: 1.55;
  color: var(--text-muted, var(--color-text-muted));
}

.rental-cart__product-detail-call-only-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
}

.rental-cart__product-detail-call-only-btn {
  margin: 0;
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: var(--rental-cta-border-width, 1px) solid var(--rental-flow-cta, #c65252) !important;
}

@media (max-width: 991px) {
  .rental-cart__product-detail-call-only {
    padding: 1.25rem 1rem;
  }

  .rental-cart__product-detail-call-only-btn {
    width: 100%;
  }
}

.rental-cart__materials-section {
  margin-top: 1.5rem;
}

/* One visible list at a time; content grows with the page (no nested scroll regions) */
.rental-cart__materials {
  border: 1px solid var(--card-border);
  border-radius: 8px;
  background: var(--color-surface, #fff);
  box-shadow: var(--form-card-shadow);
  overflow: hidden;
}

.rental-cart__materials-tablist {
  display: flex;
  width: 100%;
  margin: 0;
  padding: 0;
  border-bottom: 1px solid var(--card-border);
  background: var(--color-surface-muted, #f8fafc);
}

.rental-cart__materials-tab {
  flex: 1 1 0;
  min-width: 0;
  margin: 0;
  padding: 0.75rem 0.5rem;
  border: none;
  border-bottom: 3px solid transparent;
  background: transparent;
  font-family: inherit;
  font-size: clamp(0.8rem, 2.6vw, 0.95rem);
  font-weight: 700;
  line-height: 1.25;
  color: var(--text-muted);
  cursor: pointer;
  transition:
    color 200ms ease-out,
    background 200ms ease-out,
    border-color 200ms ease-out;
}

.rental-cart__materials-tab:hover {
  color: var(--color-text, #1f2937);
  background: color-mix(in srgb, var(--primary-color, #294467) 5%, transparent);
}

.rental-cart__materials-tab:active {
  background: color-mix(in srgb, var(--primary-color, #294467) 10%, var(--color-surface));
}

.rental-cart__materials-tab[aria-selected="true"] {
  color: var(--primary-color, #294467);
  background: var(--color-surface, #fff);
  border-bottom-color: var(--primary-color, #294467);
}

.rental-cart__materials-tab[aria-selected="true"]:active {
  background: var(--color-surface, #fff);
}

.rental-cart__materials-tab:focus {
  outline: none;
}

.rental-cart__materials-tab:focus-visible {
  outline: 2px solid var(--primary-color, #294467);
  outline-offset: -2px;
  z-index: 1;
}

@media (prefers-reduced-motion: reduce) {
  .rental-cart__materials-tab {
    transition: none;
  }
}

@media (min-width: 768px) {
  .rental-cart__materials-tab {
    padding: 0.9rem 1rem;
    font-size: 1rem;
  }
}

.rental-cart__materials-panel {
  background: var(--color-surface, #fff);
}

.rental-cart__materials-panel[hidden] {
  display: none !important;
}

.rental-cart__materials-content {
  padding: 1rem 1.1rem 1.25rem;
  background: var(--color-surface, #fff);
}

@media (min-width: 768px) {
  .rental-cart__materials-content {
    padding: 1.25rem 1.5rem 1.5rem;
  }
}

.rental-cart__materials-lead {
  margin: 0 0 1rem;
  max-width: 65ch;
  font-size: 0.95rem;
  line-height: 1.45;
  color: var(--color-text, #1f2937);
}

.rental-cart__materials-disclaimer {
  padding: 0.875rem 1rem;
  background: var(--color-surface-subtle);
  border: 1px solid var(--card-border);
  border-left: 3px solid var(--primary-color, #294467);
  border-radius: 6px;
  margin-bottom: 1.25rem;
  font-size: 0.9rem;
  line-height: 1.45;
  color: var(--color-text, #1f2937);
}

.rental-cart__materials-disclaimer strong {
  display: block;
  margin-bottom: 0.35rem;
  font-size: 0.95rem;
  letter-spacing: 0.02em;
}

.rental-cart__materials-empty {
  margin: 0 0 1rem;
  padding: 0.9rem 1rem;
  font-size: 0.9rem;
  line-height: 1.45;
  color: var(--text-muted);
  text-align: center;
  border: 1px dashed var(--card-border);
  border-radius: 6px;
  background: var(--color-surface-subtle);
}

.rental-cart__material-category {
  margin-bottom: 1.5rem;
}

.rental-cart__material-category:last-child {
  margin-bottom: 0;
}

.rental-cart__material-category h4 {
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-text, #1f2937);
  margin: 0 0 0.75rem;
  letter-spacing: 0.01em;
}

.rental-cart__material-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 0.5rem;
}

/* Larger screens: cap column width so list text stays together, doesn’t stretch */
@media (min-width: 768px) {
  .rental-cart__material-list {
    grid-template-columns: repeat(auto-fill, minmax(260px, 320px));
    justify-content: start;
  }
}

.rental-cart__material-list li {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  font-size: 0.95rem;
  color: var(--color-text, #1f2937);
  padding: 0.5rem 0;
  min-width: 0;
  text-wrap: pretty;
}

.icon-check {
  color: var(--accent-success);
  font-weight: bold;
  font-size: 1.2rem;
  flex-shrink: 0;
}

.icon-warning {
  color: var(--accent-warning);
  font-weight: bold;
  font-size: 0.9rem;
  flex-shrink: 0;
  box-sizing: border-box;
  background: color-mix(in srgb, var(--accent-warning) 14%, var(--color-surface, #fff));
  border-radius: 3px;
  width: 20px;
  height: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: var(--rental-field-border-width, 1px) solid color-mix(in srgb, var(--accent-warning) 55%, var(--card-border));
}

.icon-x {
  color: var(--td-accent-orange, #c65252);
  font-weight: bold;
  font-size: 1.2rem;
  flex-shrink: 0;
}

.rental-cart__material-restrictions {
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--accent-warning);
  margin: 1rem 0 0.5rem;
  letter-spacing: 0.02em;
}

.rental-cart__material-list--warning li {
  opacity: 0.9;
}

.rental-cart__material-note {
  font-size: 0.9rem;
  color: var(--text-muted);
  font-style: italic;
  margin: 0 0 0.75rem;
}

@media (min-width: 576px) {
  .rental-cart__form-row {
    grid-template-columns: 2fr 1fr;
  }

  .rental-cart__form-row--address-single {
    grid-template-columns: 1fr;
  }

  .rental-cart__form-row--half {
    grid-template-columns: 1fr 1fr;
  }

  /* Single child was only spanning first column (2fr of 2fr+1fr ≈ ⅔ width). */
  .rental-cart__form-row--full {
    grid-template-columns: 1fr;
  }
}

@media (min-width: 768px) {
  .rental-cart__btn-group {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  }

  /* Step 1 project type uses its own breakpoints (see .rental-cart__project-type-options). */
  .rental-cart__btn-group.rental-cart__project-type-options {
    grid-template-columns: repeat(2, 1fr);
  }

  .rental-cart__btn-group.rental-cart__flow-card-grid--debris,
  .rental-cart__btn-group.rental-cart__flow-card-grid--heavy {
    grid-template-columns: repeat(2, 1fr);
  }

  .rental-cart__date-picker {
    grid-template-columns: repeat(4, 1fr);
  }
}

@media (min-width: 992px) {
  .rental-cart__btn-group.rental-cart__project-type-options {
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  }

  .rental-cart__btn-group.rental-cart__flow-card-grid--debris {
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  }

  .rental-cart__btn-group.rental-cart__flow-card-grid--heavy {
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  }

  .rental-cart__size-cards {
    flex-wrap: nowrap;
    justify-content: center; /* center when row fits; --scrollable overrides so first card reachable */
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    gap: 1rem;
  }

  /* When row overflows, left-align so user can scroll to first card (scrollLeft 0) */
  .rental-cart__size-cards.rental-cart__size-cards--scrollable {
    justify-content: flex-start;
  }

  .rental-cart__size-card {
    flex: 0 0 auto;
    min-width: auto;
    max-width: none;
    width: 140px;
  }

  .rental-cart__size-card-inner {
    padding: 1.25rem 1rem;
    min-height: 0;
  }

  .rental-cart__size-card-name {
    font-size: 1.1rem;
    margin-bottom: 0.5rem;
  }

  .rental-cart__size-card-price {
    font-size: 1.15rem;
    margin-bottom: 0.5rem;
  }

  .rental-cart__size-card-price-stack {
    margin-bottom: 0.5rem;
    gap: 0.15rem;
  }

  .rental-cart__size-card-price--was {
    font-size: 0.875rem;
  }

  .rental-cart__size-card-price--quote {
    font-size: 1.25rem;
  }

  .rental-cart__size-card-capacity {
    display: block;
  }

  .rental-cart__product-detail {
    grid-template-columns: 1fr 1.5fr;
    align-items: stretch;
  }

  /* Left column: align at top with right column */
  .rental-cart__product-left {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
  }

  /* Right column: message box grows to fill space above materials */
  .rental-cart__product-right {
    display: flex;
    flex-direction: column;
    min-height: 0;
  }

  .rental-cart__product-right .rental-cart__rental-extras-section {
    flex-grow: 1;
    min-height: 0;
  }

  /* Materials block grows with content; page scrolls (no nested scroll in this column). */
  .rental-cart__product-right .rental-cart__materials-section {
    width: 100%;
    flex-shrink: 0;
    overflow: visible;
  }

  .rental-cart__summary-bar {
    padding: 1.25rem 2rem;
  }
  
  .rental-cart__step-content {
    padding: 2.5rem;
  }
}

/* Call Us Modal */
@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

.rental-cart__call-modal-inner {
  background: var(--color-surface);
  border-radius: 12px;
  padding: 2.5rem;
  max-width: 500px;
  width: 100%;
  text-align: center;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
  animation: slideUp 0.3s ease;
}

@keyframes slideUp {
  from {
    transform: translateY(20px);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}

.rental-cart__call-modal-icon {
  width: 80px;
  height: 80px;
  margin: 0 auto 1.5rem;
  border-radius: 50%;
  background: var(--primary-light, #e6eaef);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--primary-color, #294467);
}

.rental-cart__call-modal-title {
  font-size: 1.75rem;
  font-weight: 700;
  margin: 0 0 1rem;
  color: var(--text-dark);
}

.rental-cart__call-modal-text {
  font-size: 1rem;
  line-height: 1.6;
  color: var(--text-muted);
  margin: 0 0 2rem;
}

.rental-cart__call-modal-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 1rem;
}

.rental-cart__call-modal-btn svg {
  flex-shrink: 0;
}

.rental-cart__call-modal-close {
  background: transparent;
  border: none;
  color: var(--text-muted);
  font-size: 1rem;
  font-weight: 500;
  cursor: pointer;
  padding: 0.5rem 1rem;
  text-decoration: underline;
  transition: color 0.2s ease;
}

.rental-cart__call-modal-close:hover {
  color: var(--text-dark);
}

/* Rental Extras: tinted surface + primary navy left spine (matches “What’s included” / headings) */
.rental-cart__rental-extras-section {
  margin: 1rem 0;
  padding: 1.25rem 1.25rem;
  background: #f8fafc;
  border: 1px solid rgba(var(--primary-color-rgb, 41, 68, 103), 0.14);
  border-left-width: 3px;
  border-left-color: var(--primary-color, #294467);
  border-radius: 10px;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.85),
    0 1px 4px rgba(17, 28, 45, 0.06);
  transition:
    transform 0.18s ease,
    opacity 0.18s ease,
    border-color 0.18s ease,
    box-shadow 0.18s ease;
}

.rental-cart__rental-extras-section[aria-hidden="true"] {
  display: none;
}

.rental-cart__rental-extras-title {
  margin: 0 0 0.5rem;
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--primary-color, #294467);
  letter-spacing: -0.02em;
}

.rental-cart__rental-extras-section--active {
  background: rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.07);
  border-top-color: rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.35);
  border-right-color: rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.35);
  border-bottom-color: rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.35);
  border-left-width: 3px;
  border-left-color: var(--primary-color, #294467);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.65),
    0 2px 10px rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.1);
}

@media (prefers-reduced-motion: reduce) {
  .rental-cart__rental-extras-section {
    transition: none;
  }
}

.rental-cart__rental-extras-message-text {
  margin: 0 0 0.65rem;
  color: var(--color-text-secondary, #4b5563);
  line-height: 1.5;
}

.rental-cart__rental-extras-section-content {
  margin-top: 0.75rem;
}

/* Inline rental extras (sliders + price breakdown in #rental-extras-section — not a dialog). */
.rental-cart__extras-inline-section {
  margin-bottom: 1.25rem;
}

.rental-cart__extras-inline-label {
  display: block;
  font-weight: 600;
  font-size: 0.9375rem;
  margin-bottom: 0.25rem;
  color: var(--primary-color, #294467);
}

/* Pre-paid rate appended inline on the slider label, e.g. “(+ $90.00/ton)” */
.rental-cart__extras-inline-label-rate {
  font-weight: 600;
  color: var(--rental-flow-cta, #c65252);
  white-space: nowrap;
}

.rental-cart__extras-inline-label-rate[hidden] {
  display: none !important;
}

.rental-cart__extras-inline-weekday-note {
  font-size: 0.75rem;
  color: var(--color-text-secondary, #5c6570);
  margin: 0.25rem 0 0;
  font-style: italic;
}

.rental-cart__extras-inline-price-wrap {
  margin: 1rem 0 0.75rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(var(--primary-color-rgb, 41, 68, 103), 0.14);
}

.rental-cart__extras-inline-price-line {
  font-size: 0.875rem;
  font-weight: 400;
  color: var(--color-text-secondary, #5c6570);
  margin: 0 0 0.25rem;
  font-variant-numeric: tabular-nums;
}

/* Keeps breakdown row height when a line has no extras (avoids layout jump next to sliders). */
.rental-cart__extras-inline-price-line--inactive {
  visibility: hidden;
  min-height: 1.35em;
}

.rental-cart__extras-inline-price-line:last-of-type {
  margin-bottom: 0.5rem;
}

.rental-cart__extras-inline-price {
  font-size: 1rem;
  font-weight: 600;
  margin: 0;
}

.rental-cart__extras-inline-price--total {
  margin-top: 0.25rem;
}

.rental-cart__extras-inline-price-label {
  color: var(--color-text, #1f2937);
}

.rental-cart__extras-inline-price-value {
  color: var(--rental-flow-cta, #c65252);
  font-variant-numeric: tabular-nums;
}

.rental-cart__extras-inline-hint {
  font-size: 0.8125rem;
  color: var(--color-text-secondary, #5c6570);
  margin: 0 0 0.5rem;
}

.rental-cart__extras-slider-wrap {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-top: 0.5rem;
}

.rental-cart__extras-slider {
  flex: 1;
  min-width: 0;
  height: 10px;
  -webkit-appearance: none;
  appearance: none;
  background: #dfe5ec;
  border-radius: 6px;
  outline: none;
  border: 1px solid rgba(17, 28, 45, 0.1);
  box-shadow: inset 0 1px 2px rgba(17, 28, 45, 0.08);
  accent-color: var(--rental-flow-cta, #c65252);
}

.rental-cart__extras-slider:focus-visible {
  outline: none;
  box-shadow:
    inset 0 1px 2px rgba(17, 28, 45, 0.08),
    0 0 0 3px rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.28);
}

.rental-cart__extras-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--rental-flow-cta, #c65252);
  cursor: pointer;
  box-shadow:
    0 1px 3px rgba(0, 0, 0, 0.2),
    0 0 0 2px rgba(255, 255, 255, 0.9);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.rental-cart__extras-slider::-webkit-slider-thumb:hover {
  transform: scale(1.1);
  box-shadow:
    0 2px 10px rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.45),
    0 0 0 2px rgba(255, 255, 255, 0.95);
}

.rental-cart__extras-slider::-moz-range-track {
  height: 10px;
  background: transparent;
}

.rental-cart__extras-slider::-moz-range-thumb {
  width: 24px;
  height: 24px;
  border: none;
  border-radius: 50%;
  background: var(--rental-flow-cta, #c65252);
  cursor: pointer;
  box-shadow:
    0 1px 3px rgba(0, 0, 0, 0.2),
    0 0 0 2px rgba(255, 255, 255, 0.9);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.rental-cart__extras-slider::-moz-range-thumb:hover {
  transform: scale(1.1);
  box-shadow:
    0 2px 10px rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.45),
    0 0 0 2px rgba(255, 255, 255, 0.95);
}

.rental-cart__extras-slider-value {
  flex-shrink: 0;
  min-width: 4.5rem;
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--primary-color, #294467);
  text-align: right;
}


/* Lock-in quote modal */
.rental-cart__quote-modal-inner {
  background: var(--color-surface);
  border-radius: 12px;
  padding: 2rem;
  max-width: 440px;
  width: 100%;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
  animation: slideUp 0.3s ease;
}

.rental-cart__quote-modal-title {
  font-size: 1.5rem;
  font-weight: 700;
  margin: 0 0 0.5rem;
  color: var(--text-dark, #1a1a1a);
}

.rental-cart__quote-modal-text {
  font-size: 0.9375rem;
  line-height: 1.5;
  color: var(--text-muted, #666);
  margin: 0 0 1.5rem;
}

.rental-cart__quote-modal-fields {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.rental-cart__quote-modal-fields .rental-field--full {
  margin-bottom: 0;
}

.rental-cart__quote-modal-actions {
  display: flex;
  gap: 0.75rem;
  margin-top: 1.5rem;
  padding-top: 1rem;
  /* Actions sit on the same navy `.rental-cart__form` panel as the fields; divider must read on primary. */
  border-top: 1px solid rgba(255, 255, 255, 0.2);
}

.rental-cart__quote-modal-submit {
  flex: 1;
}

.rental-cart__quote-modal-close {
  background: transparent;
  border: none;
  color: rgba(255, 255, 255, 0.92);
  font-size: 1rem;
  font-weight: 500;
  cursor: pointer;
  padding: 0.5rem 1rem;
  text-decoration: underline;
  text-decoration-color: rgba(255, 255, 255, 0.55);
  text-underline-offset: 2px;
  transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

.rental-cart__quote-modal-close:hover {
  color: #fff;
  text-decoration-color: rgba(255, 255, 255, 0.95);
}

.rental-cart__quote-modal-close:focus-visible {
  outline: 2px solid rgba(255, 255, 255, 0.85);
  outline-offset: 2px;
}

/* Lock-in quote modal: API error (shown inside modal when message is set) */
.rental-cart__quote-modal-error--hidden {
  display: none !important;
}

.rental-cart__quote-modal-error {
  display: block;
  padding: 0.75rem 1rem;
  margin-bottom: 1rem;
  font-size: 0.9375rem;
  line-height: 1.4;
  color: var(--td-accent-orange, #c65252);
  background-color: rgba(var(--td-accent-orange-rgb, 198, 82, 82), 0.1);
  border: 1px solid rgba(var(--td-accent-orange-rgb, 198, 82, 82), 0.3);
  border-radius: 4px;
}

/* Lock-in quote modal: success state (replaces form after submit) */
.rental-cart__quote-modal-success--hidden {
  display: none;
}

.rental-cart__quote-modal-success {
  text-align: center;
  padding: 0.5rem 0 0;
}

.rental-cart__quote-modal-success-icon {
  color: #0a7c42;
  margin: 0 auto 1.25rem;
  line-height: 0;
}

.rental-cart__quote-modal-success-icon svg {
  display: block;
  margin: 0 auto;
}

.rental-cart__quote-modal-success-title {
  font-size: 1.5rem;
  font-weight: 700;
  margin: 0 0 0.5rem;
  color: var(--text-dark, #1a1a1a);
}

.rental-cart__quote-modal-success-text {
  font-size: 1rem;
  line-height: 1.5;
  color: var(--text-dark, #1a1a1a);
  margin: 0 0 0.5rem;
}

.rental-cart__quote-modal-success-note {
  font-size: 0.875rem;
  color: var(--text-muted, #666);
  margin: 0;
}

/* Lock-in quote link (above Total label — tertiary) */
.rental-cart__lock-in-wrap {
  margin: 0;
  font-size: 0.875rem;
  text-align: left;
  width: 100%;
  line-height: 1.35;
}

.rental-cart__lock-in-link {
  appearance: none;
  -webkit-appearance: none;
  display: block;
  width: 100%;
  margin: 0;
  background: none;
  border: none;
  padding: 0.25rem 0;
  text-align: left;
  color: var(--primary, #294467);
  text-decoration: underline;
  text-decoration-color: var(--primary, #294467);
  text-underline-offset: 2px;
  cursor: pointer;
  font-size: inherit;
  font-family: inherit;
  font-weight: 500;
  transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

.rental-cart__lock-in-link:hover {
  color: var(--primary-dark, #1f364f);
  text-decoration-color: var(--primary-dark, #1f364f);
}

.rental-cart__lock-in-link:active {
  color: var(--primary-dark, #1f364f);
}

.rental-cart__lock-in-link:focus-visible {
  outline: 2px solid var(--primary, #294467);
  outline-offset: 2px;
  border-radius: 2px;
}

/* Product actions row */
.rental-cart__product-actions {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.5rem;
  margin: 1rem 0;
}

.rental-cart__product-actions-buttons {
  display: block;
  width: 100%;
}

.rental-cart__product-actions-buttons .rental-cart__add-to-cart-btn {
  width: 100%;
}

.rental-cart__product-actions .rental-cart__add-to-cart-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  width: 100%;
  min-height: 3rem;
  padding: 1rem 1.5rem;
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  border-radius: var(--rental-cart-btn-radius, 9999px);
  border: var(--rental-cta-border-width, 1px) solid var(--rental-flow-cta, #c65252);
  box-shadow: var(--rental-cta-shadow, 0 4px 4px 0 rgba(0, 0, 0, 0.25));
  transition:
    background-color 0.15s ease,
    border-color 0.15s ease,
    color 0.15s ease,
    box-shadow 0.15s ease,
    transform 0.1s ease,
    filter 0.15s ease;
}

.rental-cart__product-actions .rental-cart__add-to-cart-btn:hover:not(:disabled) {
  background: #fff !important;
  border-color: #fff !important;
  color: var(--rental-flow-cta, #c65252) !important;
  filter: none;
  text-decoration: underline;
  text-underline-offset: 2px;
  transform: none;
  box-shadow: 0 2px 10px rgba(17, 28, 45, 0.18);
}

.rental-cart__product-actions .rental-cart__add-to-cart-btn:hover:not(:disabled) .rental-cart__add-to-cart-price {
  color: var(--rental-flow-cta, #c65252);
}

.rental-cart__product-actions .rental-cart__add-to-cart-btn:active:not(:disabled) {
  transform: scale(0.99);
}

.rental-cart__product-actions .rental-cart__add-to-cart-btn:disabled {
  cursor: not-allowed;
}

.rental-cart__add-to-cart-icon {
  display: inline-flex;
  flex-shrink: 0;
}

.rental-cart__add-to-cart-icon svg {
  display: block;
}

.rental-cart__product-actions .rental-cart__add-to-cart-btn .spinner {
  margin-right: 0.35rem;
}

.rental-cart__add-to-cart-price-wrap {
  display: inline-flex;
  align-items: baseline;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 0.35rem;
  max-width: 100%;
}

.rental-cart__add-to-cart-price-was {
  color: var(--color-on-primary);
  font-size: 0.85em;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  text-decoration: line-through;
  text-decoration-thickness: 1px;
  opacity: 0.88;
}

.rental-cart__product-actions .rental-cart__add-to-cart-btn:hover:not(:disabled) .rental-cart__add-to-cart-price-was {
  color: var(--rental-flow-cta, #c65252);
}

.rental-cart__add-to-cart-price {
  color: var(--color-on-primary);
  font-size: 1em;
  font-weight: inherit;
  font-variant-numeric: tabular-nums;
  min-width: 6.5ch;
  display: inline-block;
  text-align: right;
}

/* Date timeline and rental extras messaging */
.rental-cart__date-timeline {
  margin-top: 0.8rem;
  padding: 0.75rem 0.9rem;
  border: 1px dashed rgba(0, 0, 0, 0.15);
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.02);
}

.rental-cart__date-timeline-row {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.4;
  color: var(--text-muted, #374151);
}

.rental-cart__date-timeline-row + .rental-cart__date-timeline-row {
  margin-top: 0.2rem;
}

.rental-cart__date-timeline-label {
  font-weight: 600;
}

.rental-cart__date-timeline-value {
  color: var(--text-dark, #111827);
}

/* Long “Rental ends:” strings can wrap on narrow viewports; reserve two lines to limit jump when the slider changes end date. */
@media (max-width: 991px) {
  .rental-cart__date-timeline-row {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.15rem 0.35rem;
  }

  .rental-cart__date-timeline-value {
    flex: 1 1 12rem;
    min-width: 0;
    min-height: 2.8em;
  }
}

/* Roofing alternate copy (same typography as intro; spaced when stacked) */
.rental-cart__rental-extras-message-roofing {
  margin: 0.65rem 0 0;
  font-size: 0.9375rem;
  line-height: 1.5;
  color: var(--color-text-secondary, #4b5563);
}

/* Checkout page (two-column layout) */

/* Override WooCommerce purple with theme blue on checkout (WC uses --wc-primary: #720eec) */
.woocommerce-checkout,
.rental-cart--checkout {
  --woocommerce: var(--primary-color, #294467);
  --wc-primary: var(--primary-color, #294467);
  --wc-primary-text: var(--color-on-primary);
}

/*
 * Checkout hero: h2 + step indicator share one row (vertically centered) so the status
 * bar aligns with the title; subtitle sits below, tight to the form.
 */
.rental-cart__checkout-hero {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  margin-bottom: 0.35rem;
}

.rental-cart__checkout-hero-row {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.65rem;
  width: 100%;
}

.rental-cart__checkout-hero-title {
  width: 100%;
  text-align: center;
}

.rental-cart__checkout-hero-title .rental-cart__step-title {
  margin-bottom: 0;
}

.rental-cart__checkout-hero .rental-cart__steps-indicator {
  margin-bottom: 0;
}

.rental-cart__checkout-hero-row .rental-cart__step-indicator-placement {
  display: flex;
  justify-content: center;
  width: 100%;
}

.rental-cart__checkout-hero .rental-cart__step-subtitle--checkout-hero {
  margin: 0;
  max-width: 42em;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
  font-size: 1rem;
  line-height: 1.45;
  color: var(--text-muted);
}

.rental-cart--checkout #step-checkout-review {
  margin-top: 0;
  padding-top: 0;
}

/* Checkout slabs: headings, labels, borders, and tables match cart navy panel (WC billing is outside `.rental-cart__form`). */
.rental-cart--checkout .rental-cart__checkout-fields .woocommerce-billing-fields > h3,
.rental-cart--checkout .rental-cart__checkout-fields .woocommerce-shipping-fields > h3,
.rental-cart--checkout .rental-cart__checkout-fields .woocommerce-additional-fields > h3 {
  color: rgba(255, 255, 255, 0.96);
}

.rental-cart--checkout .rental-cart__checkout-fields .woocommerce-billing-fields .form-row label,
.rental-cart--checkout .rental-cart__checkout-fields .woocommerce-shipping-fields .form-row label,
.rental-cart--checkout .rental-cart__checkout-fields .woocommerce-additional-fields .form-row label {
  color: rgba(255, 255, 255, 0.88);
}

.rental-cart--checkout .rental-cart__checkout-fields .rental-field__label,
.rental-cart--checkout .rental-cart__checkout-fields .rental-cart__checkbox-hint,
.rental-cart--checkout .rental-cart__checkout-fields .rental-field__checkbox-label {
  color: rgba(255, 255, 255, 0.92);
}

.rental-cart--checkout .rental-cart__checkout-fields .rental-cart__checkbox-block {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.18);
}

.rental-cart--checkout .rental-cart__checkout-fields .rental-cart__form-section {
  border-bottom-color: rgba(255, 255, 255, 0.14);
}

.rental-cart--checkout .rental-cart__checkout-fields .rental-cart__section-title {
  color: rgba(255, 255, 255, 0.98);
}

.rental-cart--checkout .rental-cart__checkout-payment-header {
  border-bottom-color: rgba(255, 255, 255, 0.22);
}

.rental-cart--checkout .rental-cart__checkout-payment-title,
.rental-cart--checkout .rental-cart__checkout-payment-copy {
  color: rgba(255, 255, 255, 0.94);
}

.rental-cart--checkout .rental-cart__checkout-payment-copy {
  color: rgba(255, 255, 255, 0.78);
}

.rental-cart--checkout .rental-cart__review-order .woocommerce-remove-coupon,
.rental-cart--checkout .rental-cart__review-order a:not(.button):not(.woocommerce-button) {
  color: rgba(255, 255, 255, 0.9);
}

.rental-cart--checkout .rental-cart__review-order .woocommerce-remove-coupon:hover,
.rental-cart--checkout .rental-cart__review-order a:not(.button):not(.woocommerce-button):hover {
  color: #fff;
}

.rental-cart--checkout .rental-cart__checkout-promo {
  border-top-color: rgba(255, 255, 255, 0.22);
}

.rental-cart--checkout .rental-cart__checkout-promo .rental-cart__section-title {
  color: rgba(255, 255, 255, 0.98);
}

.rental-cart--checkout .rental-cart__checkout-promo .rental-field__hint {
  color: rgba(255, 255, 255, 0.7);
}

.rental-cart--checkout .rental-cart__review-order h3:not(.woocommerce-tabs),
.rental-cart--checkout .rental-cart__review-order .rental-cart__section-title {
  color: rgba(255, 255, 255, 0.98);
}

.rental-cart--checkout .rental-cart__review-order .rental-cart__order-summary-title,
.rental-cart--checkout .rental-cart__review-order .rental-cart__order-summary-section-heading {
  color: rgba(255, 255, 255, 0.95);
}

.rental-cart--checkout .rental-cart__review-order .rental-cart__order-summary-icon {
  color: rgba(255, 255, 255, 0.88);
  opacity: 1;
}

.rental-cart--checkout .rental-cart__review-order .rental-cart__order-summary-header {
  border-bottom-color: rgba(255, 255, 255, 0.22);
}

.rental-cart--checkout .rental-cart__review-order .rental-cart__order-summary-section {
  border-top-color: rgba(255, 255, 255, 0.14);
}

.rental-cart--checkout .rental-cart__review-order .rental-cart__order-summary-delivery-address {
  color: rgba(255, 255, 255, 0.9);
}

.rental-cart--checkout .rental-cart__review-order .rental-cart__order-summary-row {
  color: rgba(255, 255, 255, 0.88);
}

.rental-cart--checkout .rental-cart__review-order .rental-cart__order-summary-row-value {
  color: rgba(255, 255, 255, 0.98);
}

.rental-cart--checkout .rental-cart__review-order .rental-cart__order-summary-container-tag {
  color: rgba(255, 255, 255, 0.94);
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.24);
}

.rental-cart--checkout .rental-cart__review-order .rental-cart__order-summary-container-price {
  color: rgba(255, 255, 255, 0.96);
}

.rental-cart--checkout .rental-cart__review-order .rental-cart__order-summary-container-price.rental-cart__price-amount--base {
  color: rgba(255, 255, 255, 0.72);
}

.rental-cart--checkout .rental-cart__review-order .rental-cart__order-summary-edit a {
  color: rgba(255, 255, 255, 0.9);
}

.rental-cart--checkout .rental-cart__review-order .rental-cart__order-summary-edit a:hover {
  color: #fff;
}

/* Custom review-order template: total row uses .rental-cart__order-summary-total-* (not .shop_table tfoot). */
.rental-cart--checkout .rental-cart__review-order .rental-cart__order-summary-total {
  border-top-color: rgba(255, 255, 255, 0.45);
}

.rental-cart--checkout .rental-cart__review-order .rental-cart__order-summary-total-row,
.rental-cart--checkout .rental-cart__review-order .rental-cart__order-summary-total-label,
.rental-cart--checkout .rental-cart__review-order .rental-cart__order-summary-total-value {
  color: rgba(255, 255, 255, 0.98) !important;
}

.rental-cart--checkout .rental-cart__review-order .rental-cart__order-summary-total-value .woocommerce-Price-amount,
.rental-cart--checkout .rental-cart__review-order .rental-cart__order-summary-total-value .amount {
  color: inherit !important;
}

.rental-cart--checkout .rental-cart__order-summary-service .shipping-destination {
  color: rgba(255, 255, 255, 0.65);
}

.rental-cart--checkout .rental-cart__review-trust--payment {
  border-top-color: rgba(255, 255, 255, 0.2);
  color: rgba(255, 255, 255, 0.72);
}

@media (min-width: 768px) {
  .rental-cart__checkout-hero {
    gap: 0.4rem;
    margin-bottom: 0.4rem;
  }

  .rental-cart__checkout-hero-row {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem 1rem;
  }

  .rental-cart__checkout-hero-title {
    flex: 1 1 12rem;
    min-width: 0;
    text-align: left;
  }

  .rental-cart__checkout-hero-title .rental-cart__step-title {
    text-align: left;
  }

  .rental-cart__checkout-hero-row .rental-cart__step-indicator-placement {
    flex: 1 1 17rem;
    min-width: min(100%, 15rem);
    width: auto;
    justify-content: flex-end;
    align-self: center;
  }

  .rental-cart__checkout-hero .rental-cart__step-subtitle--checkout-hero {
    margin-left: 0;
    margin-right: 0;
    text-align: left;
  }
}

/* Mid widths: same step strip behavior on cart + checkout (labels scale for narrow columns) */
@media (min-width: 768px) and (max-width: 1679.98px) {
  .rental-cart__step-indicator-placement .rental-cart__steps-indicator-item {
    flex: 1 1 0;
    min-width: 0;
  }

  .rental-cart__step-indicator-placement .rental-cart__steps-indicator-label {
    font-size: clamp(0.75rem, 1.1vw, 0.875rem);
    line-height: 1.25;
    text-align: center;
    text-wrap: balance;
  }
}

/* Wide screens: mini horizontal indicator — natural width, aligned with title row */
@media (min-width: 1680px) {
  .rental-cart__checkout-hero-row .rental-cart__step-indicator-placement {
    flex: 0 0 auto;
    min-width: 0;
  }
}

/* Checkout grid: billing + summary up top, payment full width below */
.rental-cart__checkout-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}

/* Slot for checkout notices (errors/messages). Collapses when empty so it doesn't reserve space. */
.rental-cart__checkout-notices-slot {
  grid-column: 1 / -1;
  margin-bottom: 0;
}

.rental-cart__checkout-notices-slot:empty {
  display: none;
}

/* Checkout notices: phone links use .rental-cart-checkout-tel-link (allowed via theme kses/filter). */
.woocommerce-checkout .woocommerce-error a.rental-cart-checkout-tel-link,
.woocommerce-checkout .woocommerce-message a.rental-cart-checkout-tel-link,
.woocommerce-checkout .woocommerce-info a.rental-cart-checkout-tel-link,
.rental-cart--checkout .woocommerce-error a.rental-cart-checkout-tel-link,
.rental-cart--checkout .woocommerce-message a.rental-cart-checkout-tel-link,
.rental-cart--checkout .woocommerce-info a.rental-cart-checkout-tel-link {
  color: var(--primary-color, #294467);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 0.12em;
}

.woocommerce-checkout .woocommerce-error a.rental-cart-checkout-tel-link:hover,
.woocommerce-checkout .woocommerce-message a.rental-cart-checkout-tel-link:hover,
.woocommerce-checkout .woocommerce-info a.rental-cart-checkout-tel-link:hover,
.rental-cart--checkout .woocommerce-error a.rental-cart-checkout-tel-link:hover,
.rental-cart--checkout .woocommerce-message a.rental-cart-checkout-tel-link:hover,
.rental-cart--checkout .woocommerce-info a.rental-cart-checkout-tel-link:hover {
  text-decoration-thickness: 2px;
}

@media (min-width: 900px) {
  .rental-cart__checkout-layout {
    grid-template-columns: minmax(0, 1.15fr) minmax(20rem, 0.92fr);
    gap: clamp(1.5rem, 3vw, 2.5rem);
    /* Stretch row so billing card + order summary (review-order) share one height */
    align-items: stretch;
  }
}

@media (min-width: 1100px) {
  .rental-cart__checkout-layout {
    grid-template-columns: minmax(0, 1.18fr) minmax(23rem, 0.88fr);
  }
}

.rental-cart__checkout-col--billing {
  min-width: 0;
}

@media (min-width: 900px) {
  .rental-cart__checkout-col--billing,
  .rental-cart__checkout-col--summary {
    display: flex;
    flex-direction: column;
    min-height: 0;
  }

  .rental-cart__checkout-col--billing .rental-cart__checkout-fields,
  .rental-cart__checkout-col--summary .rental-cart__review-order {
    flex: 1 1 auto;
    min-height: 0;
  }
}

/* Left column: same card treatment as right (order summary). Uses --form-card-* for reuse on other steps. */
.rental-cart__checkout-fields {
  padding: var(--form-card-padding);
  background: var(--form-card-bg);
  border: var(--form-card-border);
  border-radius: var(--form-card-radius);
  box-shadow: var(--form-card-shadow);
}

/* Tighter spacing for sections and rows inside the details form */
.rental-cart__checkout-fields .rental-cart__form-section {
  margin-bottom: 1.25rem;
  padding-bottom: 1.25rem;
}

.rental-cart__checkout-fields .rental-cart__form-section:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
}

.rental-cart__checkout-fields .rental-cart__form-row + .rental-cart__form-row {
  margin-top: 0.75rem;
}

/* Onsite contact: gap between bordered checkbox row and personnel fields */
.rental-cart__checkout-fields .rental-cart__checkout-onsite .rental-cart__onsite-fields {
  margin-top: 1.5rem;
}

/* Same label ↔ input rhythm as .woocommerce-billing-fields .form-row (0.25rem), not default .rental-field (0.35rem) */
.rental-cart__checkout-fields .rental-cart__checkout-onsite .rental-cart__onsite-fields .rental-field {
  gap: 0.25rem;
}

/* Match billing field typography (inputs above use 0.9375rem / 0.55rem padding; default .rental-field__input is 0.95rem / 0.6rem) */
.rental-cart__checkout-fields .rental-cart__checkout-onsite .rental-cart__onsite-fields .rental-field__label {
  display: block;
  margin-bottom: 0;
}

.rental-cart__checkout-fields .rental-cart__checkout-onsite .rental-cart__onsite-fields .rental-field__input {
  padding: 0.55rem 0.75rem;
  font-size: 0.9375rem;
  font-family: inherit;
  box-sizing: border-box;
}

.rental-cart__checkout-col--summary {
  min-width: 0;
}

/* Sticky summary removed at desktop: it conflicts with equal-height columns (billing + review-order). */

.rental-cart__checkout-payment-row {
  min-width: 0;
  margin-top: 0.25rem;
}

@media (min-width: 900px) {
  .rental-cart__checkout-payment-row {
    grid-column: 1 / -1;
  }
}

.rental-cart__checkout-payment-card {
  padding: var(--form-card-padding);
  background: var(--form-card-bg);
  border: var(--form-card-border);
  border-radius: var(--form-card-radius);
  box-shadow: var(--form-card-shadow);
}

.rental-cart__checkout-payment-header {
  margin: 0 0 1.5rem;
  padding-bottom: 1rem;
  border-bottom: 2px solid var(--color-border, #e9ecef);
}

.woocommerce-checkout .rental-cart__checkout-payment-title {
  margin: 0;
}

.rental-cart__checkout-payment-copy {
  margin: 0.45rem 0 0;
  font-size: 0.9375rem;
  color: var(--text-muted, #6b7280);
  line-height: 1.5;
  max-width: 34rem;
}

.rental-cart__checkout-payment-card .woocommerce-checkout-payment {
  margin: 0;
  padding: 0;
  background: transparent !important;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

@media (min-width: 900px) {
  .rental-cart__checkout-payment-card {
    padding: clamp(1.75rem, 2.5vw, 2.25rem);
  }
}

/* Right column: form-card look (matches left; uses --form-card-* for consistency). */
.rental-cart__review-order {
  padding: var(--form-card-padding);
  background: var(--form-card-bg);
  border: var(--form-card-border);
  border-radius: var(--form-card-radius);
  box-shadow: var(--form-card-shadow);
}

/* Checkout: force full width so promo/payment can expand (override any shrink-to-content) */
.woocommerce-checkout .rental-cart__review-order {
  width: 100%;
  max-width: none;
}
.woocommerce-checkout .woocommerce-checkout-review-order,
.woocommerce-checkout #order_review {
  width: 100%;
  min-width: 0;
}

.woocommerce-checkout .rental-cart__review-order h3,
.rental-cart__review-order .rental-cart__section-title {
  margin: 0 0 1rem;
  font-size: 1.5rem;
  font-weight: 500;
  color: var(--primary-color, #294467);
  letter-spacing: 0.02em;
}

.rental-cart__order-summary-card {
  margin: 0;
}

.rental-cart__order-summary-header {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0 0 1rem;
  padding-bottom: 0.75rem;
  border-bottom: 2px solid #e5e7eb;
}

/* Override global .rental-cart__review-order h3 rule: one line under whole header, not under title */
.woocommerce-checkout .rental-cart__review-order .rental-cart__order-summary-header .rental-cart__order-summary-title {
  margin: 0;
  padding-bottom: 0;
  border-bottom: none;
}

.rental-cart__order-summary-title {
  margin: 0;
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1.2;
  color: var(--primary-color, #294467);
  letter-spacing: 0.02em;
}

.rental-cart__order-summary-icon {
  flex-shrink: 0;
  display: block;
  width: 1.25rem;
  height: 1.25rem;
  margin-top: 0.15em;
  color: var(--primary-color, #294467);
  opacity: 0.85;
}

.rental-cart__order-summary-section {
  margin: 1rem 0 0;
  padding-top: 1rem;
  border-top: 1px solid #f3f4f6;
}

.rental-cart__order-summary-section:first-of-type {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}

.rental-cart__order-summary-section-heading {
  margin: 0 0 0.5rem;
  font-size: 0.8125rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--primary-color, #294467);
}

/* Delivery: same type treatment as Container / Service; flex row for pin icon + label */
.rental-cart__order-summary-delivery-heading {
  display: flex;
  align-items: center;
  gap: 0.35rem;
}

.rental-cart__order-summary-delivery-heading svg {
  flex-shrink: 0;
  opacity: 0.85;
}

.rental-cart__order-summary-delivery-address {
  margin: 0;
  font-size: 0.9375rem;
  font-style: normal;
  color: var(--text-color, #1f2937);
  line-height: 1.45;
}

.rental-cart__order-summary-delivery-address br + .rental-cart__order-summary-delivery-address-line {
  margin-top: 0.2em;
}

.rental-cart__order-summary-edit {
  margin: 0.5rem 0 0;
  font-size: 0.8125rem;
}

.rental-cart__order-summary-edit a {
  color: var(--primary-color, #294467);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.rental-cart__order-summary-edit a:hover {
  opacity: 0.85;
}

/* Container: squared card + price on same line */
.rental-cart__order-summary-container-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin: 0;
}

/* Squared tag for container name only (wrapper keeps .rental-cart__order-summary-card with no bg) */
.rental-cart__order-summary-container-tag {
  display: inline-block;
  margin: 0;
  padding: 0.5rem 0.875rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--primary-color, #294467);
  background: rgba(var(--primary-color-rgb, 41, 68, 103), 0.1);
  border: 1px solid rgba(var(--primary-color-rgb, 41, 68, 103), 0.2);
  border-radius: 6px;
  min-width: 0;
}

.rental-cart__order-summary-container-price {
  flex-shrink: 0;
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--primary-color, #294467);
}

.rental-cart__order-summary-container-price.rental-cart__price-amount--base {
  font-weight: 500;
  font-size: 0.9rem;
  color: var(--text-muted, #4b5563);
}

/* Rental Extras: same card style as Container (tag-style rows) */
.rental-cart__order-summary-extras .rental-cart__order-summary-container-row + .rental-cart__order-summary-container-row {
  margin-top: 0.5rem;
}

.rental-cart__order-summary-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 0.75rem;
  margin: 0;
  padding: 0.35rem 0;
  font-size: 0.9375rem;
  color: var(--text-color, #1f2937);
}

.rental-cart__order-summary-row-label {
  flex: 0 0 auto;
  min-width: max-content;
}

.rental-cart__order-summary-row-value {
  flex: 1 1 auto;
  min-width: 0;
  font-weight: 500;
  color: var(--primary-color, #294467);
  overflow-wrap: break-word;
  word-break: break-word;
  text-align: right;
}

.rental-cart__order-summary-row--price .rental-cart__order-summary-row-value {
  font-weight: 600;
}

.rental-cart__order-summary-row--discount .rental-cart__order-summary-row-value {
  color: #b91c1c;
}

/* Total */
.rental-cart__order-summary-total {
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 2px solid var(--primary-color, #294467);
}

.rental-cart__order-summary-total-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 0.75rem;
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--primary-color, #294467);
}

.rental-cart__order-summary-total-value {
  flex-shrink: 0;
}

/* Shipping row: same line, label left / value right (override table layout) */
.rental-cart__order-summary-service .woocommerce-shipping-totals,
.rental-cart__order-summary-service tr.shipping {
  display: flex !important;
  justify-content: space-between;
  align-items: center;
  gap: 0.75rem;
  margin: 0;
  padding: 0.35rem 0;
  font-size: 0.9375rem;
  color: var(--text-color, #1f2937);
  border: none;
}

.rental-cart__order-summary-service .woocommerce-shipping-totals th,
.rental-cart__order-summary-service tr.shipping th {
  flex: 1;
  min-width: 0;
  padding: 0;
  border: none;
  font-weight: inherit;
  color: inherit;
  text-align: left;
  display: block;
}

.rental-cart__order-summary-service .woocommerce-shipping-totals td,
.rental-cart__order-summary-service tr.shipping td {
  flex-shrink: 0;
  padding: 0;
  border: none;
  font-weight: 500;
  color: var(--primary-color, #294467);
  text-align: right;
  display: block;
}

.rental-cart__order-summary-service .woocommerce-shipping-totals td .woocommerce-shipping-methods,
.rental-cart__order-summary-service tr.shipping td .woocommerce-shipping-methods {
  list-style: none;
  margin: 0;
  padding: 0;
  display: inline;
}

.rental-cart__order-summary-service .woocommerce-shipping-methods li {
  margin: 0;
  padding: 0;
  display: inline;
}

.rental-cart__order-summary-service .woocommerce-shipping-methods label {
  display: inline;
}

/* Theme shipping row (div): keep method label on one line, right-aligned */
.rental-cart__order-summary-shipping-row .woocommerce-shipping-methods {
  list-style: none;
  margin: 0;
  padding: 0;
  display: inline;
}

.rental-cart__order-summary-shipping-row .woocommerce-shipping-methods li {
  margin: 0;
  padding: 0;
  display: inline;
}

.rental-cart__order-summary-shipping-row .woocommerce-shipping-methods input[type="hidden"] {
  display: none;
}

.rental-cart__order-summary-service .shipping-destination {
  color: #6b7280;
  font-size: 0.8125rem;
  margin-top: 0.25rem;
}

/* WooCommerce review-order table (legacy / fallback) */
.woocommerce-checkout .woocommerce-checkout-review-order .shop_table {
  width: 100%;
  margin: 0 0 0;
  border: none;
  border-collapse: collapse;
  table-layout: fixed;
}

/* Align header and body cells so "Product" and product name share the same column start */
.woocommerce-checkout .woocommerce-checkout-review-order .shop_table thead th {
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--primary-color, #294467);
  padding: 0.5rem 0 0.5rem 0;
  border-bottom: 2px solid #e5e7eb;
  text-align: left;
}

.woocommerce-checkout .woocommerce-checkout-review-order .shop_table thead th.product-name {
  padding-left: 0 !important;
  width: 60%;
}

.woocommerce-checkout .woocommerce-checkout-review-order .shop_table thead th.product-total {
  text-align: right;
  padding-right: 0 !important;
  width: 40%;
}

.woocommerce-checkout .woocommerce-checkout-review-order .shop_table tbody td {
  padding: 0.875rem 0;
  border-bottom: 1px solid #f3f4f6;
  vertical-align: top;
}

.woocommerce-checkout .woocommerce-checkout-review-order .shop_table tbody td.product-name {
  padding-left: 0 !important;
}

.woocommerce-checkout .woocommerce-checkout-review-order .shop_table tbody td.product-total {
  padding-right: 0 !important;
}

/* Keep header and body first column aligned (override any WC/theme padding) */
.woocommerce-checkout .woocommerce-checkout-review-order .shop_table thead th.product-name,
.woocommerce-checkout .woocommerce-checkout-review-order .shop_table tbody td.product-name {
  padding-left: 0 !important;
}

.woocommerce-checkout .woocommerce-checkout-review-order .shop_table tbody .product-name {
  font-size: 0.9375rem;
  color: var(--text-color, #1f2937);
  line-height: 1.4;
}

.woocommerce-checkout .woocommerce-checkout-review-order .shop_table tbody .product-name .product-name__line {
  white-space: nowrap;
  display: block;
}

.woocommerce-checkout .woocommerce-checkout-review-order .shop_table tbody .product-total {
  text-align: right;
  font-weight: 600;
  color: var(--primary-color, #294467);
  white-space: nowrap;
}

/* Cart item meta (Container Size, Delivery Date, etc.): label and value on same line */
.woocommerce-checkout .woocommerce-checkout-review-order .shop_table .cart_item dl {
  margin: 0;
  padding: 0;
  font-size: 0.8125rem;
  color: #6b7280;
  line-height: 1.5;
}

.woocommerce-checkout .woocommerce-checkout-review-order .shop_table .cart_item dl.variation {
  margin-top: 0.375rem;
}

.woocommerce-checkout .woocommerce-checkout-review-order .shop_table .cart_item dl dt {
  font-weight: 600;
  color: #4b5563;
  margin: 0;
  display: inline;
}

.woocommerce-checkout .woocommerce-checkout-review-order .shop_table .cart_item dl dd {
  margin: 0 0 0 0.35em;
  display: inline;
}

/* Line break after each label+value pair (next pair starts on new line) */
.woocommerce-checkout .woocommerce-checkout-review-order .shop_table .cart_item dl dd::after {
  content: '\A';
  white-space: pre;
  display: block;
}

/* wpautop() adds <p> inside dd – keep label and value on one line by inlining paragraphs */
.woocommerce-checkout .woocommerce-checkout-review-order .shop_table .cart_item dl dd p {
  display: inline;
  margin: 0;
  padding: 0;
}

.woocommerce-checkout .woocommerce-checkout-review-order .shop_table tfoot tr {
  border: none;
}

.woocommerce-checkout .woocommerce-checkout-review-order .shop_table tfoot th,
.woocommerce-checkout .woocommerce-checkout-review-order .shop_table tfoot td {
  padding: 0.5rem 0;
  border: none;
  border-top: 1px solid #f3f4f6;
  font-size: 0.9375rem;
}

.woocommerce-checkout .woocommerce-checkout-review-order .shop_table tfoot td {
  text-align: right;
}

.woocommerce-checkout .woocommerce-checkout-review-order .shop_table tfoot .order-total th,
.woocommerce-checkout .woocommerce-checkout-review-order .shop_table tfoot .order-total td {
  padding-top: 0.75rem;
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--primary-color, #294467);
  border-top: 2px solid var(--primary-color, #294467);
}

/* Checkout review-order table on navy slab: match cart typography */
.rental-cart--checkout .woocommerce-checkout-review-order .shop_table thead th {
  color: rgba(255, 255, 255, 0.92);
  border-bottom-color: rgba(255, 255, 255, 0.26);
}

.rental-cart--checkout .woocommerce-checkout-review-order .shop_table tbody td {
  border-bottom-color: rgba(255, 255, 255, 0.14);
}

.rental-cart--checkout .woocommerce-checkout-review-order .shop_table tbody .product-name {
  color: rgba(255, 255, 255, 0.94);
}

.rental-cart--checkout .woocommerce-checkout-review-order .shop_table tbody .product-total {
  color: rgba(255, 255, 255, 0.96);
}

.rental-cart--checkout .woocommerce-checkout-review-order .shop_table .cart_item dl {
  color: rgba(255, 255, 255, 0.7);
}

.rental-cart--checkout .woocommerce-checkout-review-order .shop_table .cart_item dl dt {
  color: rgba(255, 255, 255, 0.85);
}

.rental-cart--checkout .woocommerce-checkout-review-order .shop_table tfoot th,
.rental-cart--checkout .woocommerce-checkout-review-order .shop_table tfoot td {
  border-top-color: rgba(255, 255, 255, 0.16);
}

.rental-cart--checkout .woocommerce-checkout-review-order .shop_table tfoot .order-total th,
.rental-cart--checkout .woocommerce-checkout-review-order .shop_table tfoot .order-total td {
  color: rgba(255, 255, 255, 0.98);
  border-top-color: rgba(255, 255, 255, 0.45);
}

/* Checkout payment section: outer card now owns the main container treatment. */
.rental-cart--checkout .woocommerce-checkout-payment {
  margin: 1.25rem 0 0;
  padding: 0;
  background: transparent !important;
  border: 0;
  border-radius: 0;
}

body.woocommerce-cart .wc-block-components-button,
body.woocommerce-checkout .wc-block-components-button,
body:has(.rental-cart) .wc-block-components-button {
  background: var(--rental-flow-cta, #c65252) !important;
  border-color: var(--rental-flow-cta, #c65252) !important;
}

.rental-cart--checkout .woocommerce-checkout-payment ul.wc_payment_methods {
  list-style: none;
  margin: 0;
  padding: 0;
}

.rental-cart--checkout .woocommerce-checkout-payment ul.wc_payment_methods li {
  margin: 0;
  padding: 1rem 1rem 1rem 1.125rem;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 8px;
  box-shadow: none;
  transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.rental-cart--checkout .woocommerce-checkout-payment ul.wc_payment_methods li + li {
  margin-top: 0.75rem;
}

.rental-cart--checkout .woocommerce-checkout-payment ul.wc_payment_methods li:hover,
.rental-cart--checkout .woocommerce-checkout-payment ul.wc_payment_methods li:focus-within {
  border-color: rgba(255, 255, 255, 0.42);
  background: rgba(255, 255, 255, 0.1);
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.18);
}

.rental-cart--checkout .woocommerce-checkout-payment ul.wc_payment_methods li.wc_payment_method--selected,
.rental-cart--checkout .woocommerce-checkout-payment ul.wc_payment_methods li:has(input[type="radio"]:checked) {
  border-color: var(--rental-flow-cta, #c65252);
  background: rgba(255, 255, 255, 0.12);
  box-shadow: 0 0 0 2px rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.35);
}

/* Radio: theme blue instead of Woo purple */
.rental-cart--checkout .woocommerce-checkout-payment ul.wc_payment_methods li.wc_payment_method input[type="radio"] {
  margin-top: 0.2rem;
  margin-right: 0;
  accent-color: var(--primary-color, #294467);
}

.rental-cart--checkout .woocommerce-checkout-payment ul.wc_payment_methods li > label {
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
  width: 100%;
  font-weight: 600;
  cursor: pointer;
  font-size: 0.9375rem;
  line-height: 1.4;
  color: rgba(255, 255, 255, 0.96) !important;
}

/* Card brand / gateway icons: keep full-color artwork readable on navy. */
.rental-cart--checkout .woocommerce-checkout-payment ul.wc_payment_methods li > label img {
  opacity: 1;
  filter: none;
}

/* Payment method description ("Pay with cash upon delivery" etc.): theme blue instead of Woo purple */
.rental-cart--checkout .woocommerce-checkout-payment ul.wc_payment_methods li .payment_box,
.rental-cart--checkout .woocommerce-checkout-payment div.payment_box {
  margin: 0.75rem 0 0 !important;
  padding: 0.875rem 1rem !important;
  background: var(--color-surface-subtle-alt, #f1f5f9) !important;
  border: 1px solid rgba(var(--primary-color-rgb, 41, 68, 103), 0.12) !important;
  border-left: 3px solid rgba(var(--primary-color-rgb, 41, 68, 103), 0.55) !important;
  border-radius: 0 6px 6px 0 !important;
  font-size: 0.8125rem;
  color: var(--color-text-secondary, #333) !important;
  line-height: 1.5;
}

/* Hide the triangle pointer above payment_box */
.rental-cart--checkout .woocommerce-checkout-payment ul.wc_payment_methods li .payment_box::before,
.rental-cart--checkout .woocommerce-checkout-payment div.payment_box::before {
  display: none !important;
}

/* NMI / payment gateway inline fields: match cart/checkout field styling */
/* Override WooCommerce default margin on payment box form-rows (was 1em) */
#add_payment_method #payment div.payment_box .form-row,
.woocommerce-cart #payment div.payment_box .form-row,
.woocommerce-checkout #payment div.payment_box .form-row {
  margin: 0;
}

/* Form-rows in #payment: tight padding (WC often uses 0.5em) */
#add_payment_method #payment div.form-row,
.woocommerce-cart #payment div.form-row,
.woocommerce-checkout #payment div.form-row {
  padding: 0.5em;
}

/* Payment section form-rows: minimal margin */
.rental-cart--checkout .woocommerce-checkout-payment .form-row {
  padding: 3px;
  margin: 0;
}

/* Force each field onto its own line (no side-by-side exp/CVV) */
.rental-cart--checkout .woocommerce-checkout-payment .payment_box .form-row,
.rental-cart--checkout .woocommerce-checkout-payment .payment_box .form-row.form-row-first,
.rental-cart--checkout .woocommerce-checkout-payment .payment_box .form-row.form-row-last {
  width: 100%;
  max-width: 100%;
  float: none;
  clear: both;
  margin-left: 0;
  margin-right: 0;
}

.rental-cart--checkout .woocommerce-checkout-payment .payment_box .form-row {
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.rental-cart--checkout .woocommerce-checkout-payment .payment_box .form-row:last-child {
  margin-bottom: 0;
}

/* Card field labels live in the light .payment_box; do not use the white li > label color here. */
.rental-cart--checkout .woocommerce-checkout-payment .payment_box label {
  color: var(--color-text-muted, #6c757d) !important;
}

.rental-cart--checkout .woocommerce-checkout-payment .payment_box .form-row label {
  display: block;
  font-size: 0.7rem;
  font-weight: 700;
  color: var(--color-text-muted, #6c757d);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 0;
  line-height: 1.2;
}

.rental-cart--checkout .woocommerce-checkout-payment .payment_box .form-row input[type="text"],
.rental-cart--checkout .woocommerce-checkout-payment .payment_box .form-row input[type="tel"],
.rental-cart--checkout .woocommerce-checkout-payment .payment_box .form-row input.input-text,
.rental-cart--checkout .woocommerce-checkout-payment .payment_box input[type="text"],
.rental-cart--checkout .woocommerce-checkout-payment .payment_box input[type="tel"] {
  width: 100%;
  max-width: 100%;
  padding: 0.55rem 0.75rem;
  font-size: 0.9375rem;
  border: var(--rental-field-border-width, 1px) solid var(--input-border, #cbd5e1);
  border-radius: var(--rental-field-radius, 4px);
  background: var(--color-surface);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  box-sizing: border-box;
}

.rental-cart--checkout .woocommerce-checkout-payment .payment_box .form-row input:hover:not(:focus),
.rental-cart--checkout .woocommerce-checkout-payment .payment_box input:hover:not(:focus) {
  border-color: #cbd5e1;
}

.rental-cart--checkout .woocommerce-checkout-payment .payment_box .form-row input:focus,
.rental-cart--checkout .woocommerce-checkout-payment .payment_box input:focus {
  outline: none;
  border-color: var(--primary-color, #294467);
  box-shadow: 0 0 0 2px rgba(var(--primary-color-rgb, 41, 68, 103), 0.2);
}

.rental-cart--checkout .woocommerce-checkout.checkout-form-attempted .woocommerce-checkout-payment .payment_box .form-row.woocommerce-invalid input,
.rental-cart--checkout .woocommerce-checkout.checkout-form-attempted .woocommerce-checkout-payment .payment_box .woocommerce-invalid input {
  border-color: var(--td-accent-orange, #c65252);
}

.rental-cart--checkout .woocommerce-checkout.checkout-form-attempted .woocommerce-checkout-payment .payment_box .form-row.woocommerce-invalid input:focus,
.rental-cart--checkout .woocommerce-checkout.checkout-form-attempted .woocommerce-checkout-payment .payment_box .woocommerce-invalid input:focus {
  box-shadow: 0 0 0 2px rgba(var(--td-accent-orange-rgb, 198, 82, 82), 0.22);
}

.rental-cart--checkout .woocommerce-checkout-payment .payment_box #ccnumber,
.rental-cart--checkout .woocommerce-checkout-payment .payment_box #ccexp,
.rental-cart--checkout .woocommerce-checkout-payment .payment_box #cvv {
  min-height: 2.75rem;
  padding: 0.55rem 0.75rem;
  border: var(--rental-field-border-width, 1px) solid var(--input-border, #cbd5e1);
  border-radius: var(--rental-field-radius, 4px);
  background: var(--color-surface);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  box-sizing: border-box;
}
.rental-cart--checkout .woocommerce-checkout-payment .payment_box #ccnumber:focus-within,
.rental-cart--checkout .woocommerce-checkout-payment .payment_box #ccexp:focus-within,
.rental-cart--checkout .woocommerce-checkout-payment .payment_box #cvv:focus-within {
  border-color: var(--primary-color, #294467);
  box-shadow: 0 0 0 2px rgba(var(--primary-color-rgb, 41, 68, 103), 0.2);
}
#order_review .woocommerce-checkout-payment .payment_box #ccnumber,
#order_review .woocommerce-checkout-payment .payment_box #ccexp,
#order_review .woocommerce-checkout-payment .payment_box #cvv {
  min-height: 2.75rem !important;
  padding: 0.55rem 0.75rem !important;
  border: var(--rental-field-border-width, 1px) solid var(--input-border, #cbd5e1) !important;
  border-radius: var(--rental-field-radius, 4px) !important;
  background: var(--color-surface) !important;
  box-sizing: border-box !important;
}
#order_review .woocommerce-checkout-payment .payment_box #ccnumber:focus-within,
#order_review .woocommerce-checkout-payment .payment_box #ccexp:focus-within,
#order_review .woocommerce-checkout-payment .payment_box #cvv:focus-within {
  border-color: var(--primary-color, #294467) !important;
  box-shadow: 0 0 0 2px rgba(var(--primary-color-rgb, 41, 68, 103), 0.2) !important;
}

.rental-cart--checkout .woocommerce-checkout-payment .place-order {
  margin: 1.25rem 0 0;
}

/* NMI / gateway: keep inline validation copy tight to the fields (not a full-width banner feel). */
.rental-cart--checkout #payment .payment_box ul.woocommerce-error,
.rental-cart--checkout #payment .payment_box .woocommerce-error {
  margin: 0.35rem 0 0;
  padding: 0.45rem 0.6rem;
  font-size: 0.8125rem;
  line-height: 1.35;
  border-radius: 6px;
  list-style: none;
  max-width: 100%;
  box-sizing: border-box;
}

.rental-cart--checkout #payment .payment_box ul.woocommerce-error li {
  margin: 0;
  padding: 0;
}

/* Privacy policy + terms: slab contrast (navy panel under payment methods). */
.rental-cart--checkout .woocommerce-checkout-payment .woocommerce-privacy-policy-text,
.rental-cart--checkout .woocommerce-checkout-payment .woocommerce-privacy-policy-text p,
.rental-cart--checkout .woocommerce-checkout-payment .woocommerce-terms-and-conditions-wrapper {
  color: rgba(255, 255, 255, 0.78);
}

/* “I have read the terms…” checkbox row (place-order) — override WC deep-red invalid/link colors. */
.rental-cart--checkout .woocommerce-checkout-payment .place-order .woocommerce-form__label-for-checkbox,
.rental-cart--checkout .woocommerce-checkout-payment .place-order .woocommerce-terms-and-conditions-checkbox-text {
  color: rgba(255, 255, 255, 0.88);
  font-size: 0.9375rem;
  line-height: 1.45;
}

.rental-cart--checkout.checkout-form-attempted .woocommerce-checkout-payment .place-order .form-row.woocommerce-invalid label,
.rental-cart--checkout.checkout-form-attempted .woocommerce-checkout-payment .place-order .form-row.woocommerce-invalid .woocommerce-terms-and-conditions-checkbox-text {
  color: rgba(255, 255, 255, 0.88);
}

.rental-cart--checkout.checkout-form-attempted .woocommerce-checkout-payment .place-order .form-row.woocommerce-invalid a.woocommerce-terms-and-conditions-link,
.rental-cart--checkout.checkout-form-attempted .woocommerce-checkout-payment .place-order .form-row.woocommerce-invalid a:not(.button):not(.woocommerce-button) {
  color: var(--td-secondary, #c65252) !important;
}

.rental-cart--checkout .woocommerce-checkout-payment .woocommerce-privacy-policy-text a,
.rental-cart--checkout .woocommerce-checkout-payment .woocommerce-terms-and-conditions-wrapper a,
.rental-cart--checkout .woocommerce-checkout-payment a.woocommerce-terms-and-conditions-link,
.rental-cart--checkout .woocommerce-checkout-payment .place-order a:not(.button):not(.woocommerce-button) {
  color: var(--td-secondary, #c65252) !important;
  font-weight: 600;
  text-decoration: underline !important;
  text-underline-offset: 0.15em;
  text-decoration-thickness: 1.5px;
}

.rental-cart--checkout .woocommerce-checkout-payment .place-order .required {
  color: var(--td-secondary, #c65252);
}

.rental-cart--checkout .woocommerce-checkout-payment .woocommerce-privacy-policy-text a:hover,
.rental-cart--checkout .woocommerce-checkout-payment .woocommerce-terms-and-conditions-wrapper a:hover,
.rental-cart--checkout .woocommerce-checkout-payment a.woocommerce-terms-and-conditions-link:hover,
.rental-cart--checkout .woocommerce-checkout-payment .place-order a:not(.button):not(.woocommerce-button):hover {
  color: #fff !important;
  text-decoration-thickness: 2px;
}

.rental-cart--checkout .woocommerce-checkout-payment .woocommerce-privacy-policy-text a:focus-visible,
.rental-cart--checkout .woocommerce-checkout-payment .woocommerce-terms-and-conditions-wrapper a:focus-visible,
.rental-cart--checkout .woocommerce-checkout-payment a.woocommerce-terms-and-conditions-link:focus-visible,
.rental-cart--checkout .woocommerce-checkout-payment .place-order a:not(.button):not(.woocommerce-button):focus-visible {
  outline: none;
  border-radius: 2px;
  box-shadow:
    0 0 0 2px rgba(41, 68, 103, 0.95),
    0 0 0 5px rgba(255, 255, 255, 0.45);
}

/* Place order: brand accent CTA (same family as cart primary buttons). */
.rental-cart--checkout .woocommerce-checkout-payment .place-order button,
.rental-cart--checkout .woocommerce-checkout-payment .place-order .button {
  width: 100%;
  padding: 1rem 1.5rem;
  font-size: 1rem;
  font-weight: 600;
  color: #fff !important;
  background: var(--rental-flow-cta, #c65252) !important;
  border: var(--rental-cta-border-width, 1px) solid var(--rental-flow-cta, #c65252) !important;
  border-radius: var(--rental-cart-btn-radius, 9999px);
  cursor: pointer;
  min-height: 3.25rem;
  transition:
    transform 0.15s ease,
    box-shadow 0.15s ease,
    filter 0.15s ease,
    background 0.15s ease,
    border-color 0.15s ease,
    color 0.15s ease,
    text-decoration-color 0.15s ease;
  box-shadow: var(--rental-cta-shadow, 0 4px 4px 0 rgba(0, 0, 0, 0.25));
  text-decoration: none;
}

.rental-cart--checkout .woocommerce-checkout-payment .place-order button:hover:not(:disabled),
.rental-cart--checkout .woocommerce-checkout-payment .place-order .button:hover:not(:disabled) {
  transform: none;
  filter: none;
  background: #fff !important;
  border-color: #fff !important;
  color: var(--rental-flow-cta, #c65252) !important;
  text-decoration: underline;
  text-underline-offset: 2px;
  box-shadow: 0 2px 10px rgba(17, 28, 45, 0.18);
}

.rental-cart--checkout .woocommerce-checkout-payment .place-order button:focus-visible,
.rental-cart--checkout .woocommerce-checkout-payment .place-order .button:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.22), var(--rental-cta-shadow, 0 4px 4px 0 rgba(0, 0, 0, 0.25));
}

/* Disabled: same as .rental-cart .btn-primary:disabled + :disabled:hover (step-order-info / product-selection). */
.rental-cart--checkout .woocommerce-checkout-payment .place-order button:disabled,
.rental-cart--checkout .woocommerce-checkout-payment .place-order .button:disabled {
  cursor: not-allowed;
  opacity: 0.65;
  transform: none;
  filter: none;
  box-shadow: var(--rental-cta-shadow, 0 4px 4px 0 rgba(0, 0, 0, 0.22));
  color: #fff !important;
}

.rental-cart--checkout .woocommerce-checkout-payment .place-order button:disabled:hover,
.rental-cart--checkout .woocommerce-checkout-payment .place-order .button:disabled:hover {
  transform: none;
  filter: none;
  opacity: 0.65;
  background: var(--rental-flow-cta, #c65252) !important;
  color: #fff !important;
  box-shadow: var(--rental-cta-shadow, 0 4px 4px 0 rgba(0, 0, 0, 0.22));
}

.rental-cart--checkout .woocommerce-checkout-payment .place-order button .spinner,
.rental-cart--checkout .woocommerce-checkout-payment .place-order .button .spinner {
  margin-right: 0.35rem;
}

.rental-cart__review-trust {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.375rem;
  margin: 1rem 0 0;
  font-size: 0.75rem;
  color: #9ca3af;
  text-align: center;
}

.rental-cart__review-trust--payment {
  justify-content: flex-start;
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid var(--color-border, #e9ecef);
  color: var(--text-muted, #6c757d);
  text-align: left;
}

/* Billing details: match rental flow field styling */
:where(.rental-cart, .woocommerce-checkout) .woocommerce-billing-fields {
  margin: 0;
  padding: 0;
}

/* Match right column: same size/weight as “My Order” / `.rental-cart__section-title` (500 / 1.5rem). */
:where(.rental-cart, .woocommerce-checkout) .woocommerce-billing-fields > h3,
:where(.rental-cart, .woocommerce-checkout) .woocommerce-shipping-fields > h3,
:where(.rental-cart, .woocommerce-checkout) .woocommerce-additional-fields > h3 {
  margin: 0 0 0.75rem;
  font-size: 1.5rem;
  font-weight: 500;
  color: var(--primary-color, #294467);
  letter-spacing: 0.02em;
  line-height: 1.2;
}

:where(.rental-cart, .woocommerce-checkout) .woocommerce-billing-fields__field-wrapper {
  display: grid;
  gap: 0.75rem;
}

/* Checkout promo section (under Total, above payment) */
.rental-cart__checkout-promo {
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--card-border, #e5e7eb);
}

/* Override global .rental-cart__form-row: keep single column so input+button can stretch (no 2fr 1fr grid) */
.rental-cart__checkout-promo .rental-cart__form-row--promo {
  grid-template-columns: 1fr;
  max-width: none;
  width: 100%;
}

.rental-cart__checkout-promo .rental-cart__section-title {
  margin-bottom: 0.75rem;
}
.rental-cart__checkout-promo .rental-field--promo {
  width: 100%;
  max-width: none;
}

.rental-cart__checkout-coupon-wrap.input-group {
  display: flex;
  flex-wrap: nowrap;
  gap: 0.75rem;
  align-items: stretch;
  width: 100%;
}

.rental-cart__checkout-coupon-wrap .rental-field__input {
  flex: 1 1 auto;
  min-width: 180px;
  max-width: none;
  box-sizing: border-box;
}

.rental-cart__checkout-coupon-wrap .btn {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
  min-height: 2.75rem;
  padding: 0 1rem;
  border: var(--rental-cta-border-width, 1px) solid var(--rental-flow-cta, #c65252);
  border-radius: var(--rental-cart-btn-radius, 9999px);
  background: var(--rental-flow-cta, #c65252);
  color: var(--color-on-primary, #fff) !important;
  font-size: 0.9375rem;
  font-weight: 600;
  text-decoration: none;
  box-shadow: var(--rental-cta-shadow, 0 4px 4px 0 rgba(0, 0, 0, 0.25));
  transition:
    background-color 0.15s ease,
    border-color 0.15s ease,
    color 0.15s ease,
    box-shadow 0.15s ease,
    transform 0.15s ease;
}

.rental-cart__checkout-coupon-wrap .btn:hover:not(:disabled) {
  transform: none;
  background: #fff !important;
  color: var(--rental-flow-cta, #c65252) !important;
  border-color: #fff !important;
  text-decoration: underline;
  text-underline-offset: 2px;
  box-shadow: 0 2px 10px rgba(17, 28, 45, 0.18);
}

.rental-cart__checkout-coupon-wrap .btn:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.22), var(--rental-cta-shadow);
}

@media (max-width: 575.98px) {
  .rental-cart__checkout-coupon-wrap.input-group {
    flex-wrap: wrap;
  }

  .rental-cart__checkout-coupon-wrap .btn {
    width: 100%;
    justify-content: center;
  }
}

@media (prefers-reduced-motion: reduce) {
  .rental-cart--checkout .woocommerce-checkout-payment ul.wc_payment_methods li,
  .rental-cart--checkout .woocommerce-checkout-payment .place-order button,
  .rental-cart--checkout .woocommerce-checkout-payment .place-order .button,
  .rental-cart__checkout-coupon-wrap .btn {
    transition: none;
    transform: none;
  }
}

.rental-cart__checkout-promo .rental-field__hint {
  display: block;
  width: 100%;
  min-width: 0;
  margin-top: 0.5rem;
  box-sizing: border-box;
}

.rental-cart__checkout-promo-message {
  margin-top: 0.5rem;
  padding: 0.5rem 0.75rem;
  border-radius: 6px;
  font-size: 0.875rem;
  box-sizing: border-box;
}
.rental-cart__checkout-promo-message--error {
  background: rgba(198, 82, 82, 0.08);
  color: var(--error-color, #c65252);
  border: 1px solid rgba(198, 82, 82, 0.25);
}
.rental-cart__checkout-promo-message--success {
  background: rgba(26, 137, 67, 0.08);
  color: var(--accent-success, #1a8943);
  border: 1px solid rgba(26, 137, 67, 0.25);
}

/* Full-width first/last name rows on all viewports (override WC 48% width / float) */
:where(.rental-cart, .woocommerce-checkout) .woocommerce-billing-fields .form-row.form-row-first,
:where(.rental-cart, .woocommerce-checkout) .woocommerce-billing-fields .form-row.form-row-last {
  width: 100%;
  min-width: 0;
  float: none;
}

@media (min-width: 540px) {
  :where(.rental-cart, .woocommerce-checkout) .woocommerce-billing-fields__field-wrapper {
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem 0.85rem;
  }
  :where(.rental-cart, .woocommerce-checkout) .woocommerce-billing-fields__field-wrapper .form-row:not(.form-row-first):not(.form-row-last) {
    grid-column: 1 / -1;
  }
}

:where(.rental-cart, .woocommerce-checkout) .woocommerce-billing-fields .form-row {
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

:where(.rental-cart, .woocommerce-checkout) .woocommerce-billing-fields .form-row label {
  display: block;
  font-size: 0.7rem;
  font-weight: 700;
  color: #4b5563;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 0;
}

:where(.rental-cart, .woocommerce-checkout) .woocommerce-billing-fields .form-row .required {
  color: var(--td-accent-orange, #c65252);
}

:where(.rental-cart, .woocommerce-checkout) .woocommerce-billing-fields .form-row input[type="text"],
:where(.rental-cart, .woocommerce-checkout) .woocommerce-billing-fields .form-row input[type="email"],
:where(.rental-cart, .woocommerce-checkout) .woocommerce-billing-fields .form-row input[type="tel"],
:where(.rental-cart, .woocommerce-checkout) .woocommerce-billing-fields .form-row input.input-text,
:where(.rental-cart, .woocommerce-checkout) .woocommerce-billing-fields .form-row textarea,
:where(.rental-cart, .woocommerce-checkout) .woocommerce-billing-fields .form-row select {
  width: 100%;
  max-width: 100%;
  padding: 0.55rem 0.75rem;
  font-size: 0.9375rem;
  border: var(--rental-field-border-width, 1px) solid var(--input-border, #cbd5e1);
  border-radius: var(--rental-field-radius, 4px);
  background: var(--color-surface);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  box-sizing: border-box;
}

:where(.rental-cart, .woocommerce-checkout) .woocommerce-billing-fields .form-row input:hover:not(:focus),
:where(.rental-cart, .woocommerce-checkout) .woocommerce-billing-fields .form-row textarea:hover:not(:focus),
:where(.rental-cart, .woocommerce-checkout) .woocommerce-billing-fields .form-row select:hover:not(:focus) {
  border-color: #cbd5e1;
}

:where(.rental-cart, .woocommerce-checkout) .woocommerce-billing-fields .form-row input:focus,
:where(.rental-cart, .woocommerce-checkout) .woocommerce-billing-fields .form-row textarea:focus,
:where(.rental-cart, .woocommerce-checkout) .woocommerce-billing-fields .form-row select:focus {
  outline: none;
  border-color: var(--primary-color, #294467);
  box-shadow: 0 0 0 2px rgba(var(--primary-color-rgb, 41, 68, 103), 0.2);
}

:where(.rental-cart, .woocommerce-checkout) .woocommerce-billing-fields .form-row .woocommerce-input-wrapper {
  display: block;
}

:where(.rental-cart, .woocommerce-checkout) .woocommerce-billing-fields .form-row select {
  appearance: auto;
  cursor: pointer;
}
:where(.rental-cart, .woocommerce-checkout):not(.checkout-form-attempted) .woocommerce-billing-fields .form-row input,
:where(.rental-cart, .woocommerce-checkout):not(.checkout-form-attempted) .woocommerce-billing-fields .form-row select {
  border-color: var(--input-border, #cbd5e1) !important;
}
:where(.rental-cart, .woocommerce-checkout):not(.checkout-form-attempted) .woocommerce-billing-fields .form-row input:focus,
:where(.rental-cart, .woocommerce-checkout):not(.checkout-form-attempted) .woocommerce-billing-fields .form-row select:focus {
  border-color: var(--primary-color, #294467) !important;
  box-shadow: 0 0 0 2px rgba(var(--primary-color-rgb, 41, 68, 103), 0.22) !important;
}

:where(.rental-cart, .woocommerce-checkout).checkout-form-attempted .woocommerce-billing-fields .form-row.woocommerce-invalid input,
:where(.rental-cart, .woocommerce-checkout).checkout-form-attempted .woocommerce-billing-fields .form-row.woocommerce-invalid select {
  border-color: var(--td-accent-orange, #c65252);
}

:where(.rental-cart, .woocommerce-checkout).checkout-form-attempted .woocommerce-billing-fields .form-row.woocommerce-invalid input:focus {
  box-shadow: 0 0 0 2px rgba(var(--td-accent-orange-rgb, 198, 82, 82), 0.22);
}

.rental-cart--confirmation {
  padding-top: 0;
  padding-bottom: 3rem;
  /* Thank-you: light coral accents (only where used below — keep soft) */
  --confirmation-coral-rule-soft: rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.32);
}

.rental-cart--confirmation .rental-cart__confirmation-wrap {
  max-width: 720px;
  margin: 0 auto;
}

.rental-cart__confirmation-banner {
  background: var(--primary-color, #294467);
  color: var(--color-on-primary);
  padding: 2rem 0;
  margin-bottom: 0;
  border-bottom: 4px solid var(--rental-flow-cta, var(--td-secondary, #c65252));
  box-shadow: 0 6px 24px rgba(var(--primary-color-rgb, 41, 68, 103), 0.12);
}

.rental-cart__confirmation-banner-inner {
  text-align: center;
}

.rental-cart__confirmation-banner-icon {
  display: flex;
  justify-content: center;
  margin-bottom: 0.75rem;
  color: var(--color-on-primary, #fff);
}

.rental-cart__confirmation-banner-icon svg {
  width: 56px;
  height: 56px;
  animation: rental-cart-confirm-pop 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.15s both;
}

@media (prefers-reduced-motion: reduce) {
  .rental-cart__confirmation-banner-icon svg {
    animation: none;
  }
}

@keyframes rental-cart-confirm-pop {
  0% {
    transform: scale(0.88);
    opacity: 0;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}

.rental-cart__confirmation-banner-title {
  margin: 0 0 0.35rem;
  font-size: clamp(1.35rem, 2.5vw, 1.75rem);
  font-weight: 700;
  color: var(--color-on-primary);
  letter-spacing: 0.02em;
}

.rental-cart__confirmation-banner-message {
  margin: 0;
  font-size: 1rem;
  line-height: 1.55;
  color: color-mix(in srgb, var(--color-on-primary) 88%, transparent);
}

.rental-cart__confirmation-card {
  background: var(--color-surface);
  border: var(--form-card-border, 1px solid var(--color-border, #cbd5e1));
  border-radius: var(--form-card-radius, 8px);
  overflow: hidden;
  box-shadow: var(--card-shadow, 0 2px 10px rgba(0, 0, 0, 0.08));
  margin-top: 1.75rem;
}

.rental-cart__confirmation-card-header {
  padding: 1.25rem var(--gutter-large, 1.5rem);
  border-bottom: 1px solid var(--color-border);
}

.rental-cart__confirmation-card-title {
  margin: 0;
  font-size: 1.5rem;
  font-weight: 500;
  color: var(--primary-color, #294467);
}

/* Thank you: section layout */
.rental-cart__confirmation-section {
  padding: 1.35rem var(--gutter-large, 1.5rem) 1.5rem;
}

.rental-cart__confirmation-section-title {
  margin: 0 0 1rem;
  padding-bottom: 0.5rem;
  font-size: 1.3125rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  color: var(--primary-color, #294467);
  border-bottom: 1px solid var(--color-border, #e5e7eb);
}

.rental-cart__confirmation-divider {
  height: 0;
  margin: 0 var(--gutter-large, 1.5rem);
  border: none;
  padding: 0;
  border-top: 1px solid var(--confirmation-coral-rule-soft, rgba(var(--rental-flow-cta-rgb, 198, 82, 82), 0.32));
}

@media (max-width: 599px) {
  .rental-cart__confirmation-divider {
    margin-left: var(--gutter-mobile, 12px);
    margin-right: var(--gutter-mobile, 12px);
  }
}

.rental-cart__confirmation-grid {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.rental-cart__confirmation-grid--two-col .rental-cart__confirmation-grid-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem 1.5rem;
  align-items: start;
}

@media (max-width: 600px) {
  .rental-cart__confirmation-grid--two-col .rental-cart__confirmation-grid-row {
    grid-template-columns: 1fr;
  }
}

.rental-cart__confirmation-field {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: baseline;
  min-width: 0;
  font-size: 0.9375rem;
}

.rental-cart__confirmation-field--full {
  grid-column: 1 / -1;
}

.rental-cart__confirmation-field--address-block {
  flex-direction: column;
  align-items: flex-start;
}

.rental-cart__confirmation-field--address-block .rental-cart__confirmation-value {
  margin-top: 0.25rem;
}

.rental-cart__confirmation-field--same-line {
  flex-wrap: nowrap;
}

.rental-cart__confirmation-label {
  color: var(--color-text-muted);
  font-weight: 600;
  white-space: nowrap;
}

.rental-cart__confirmation-value {
  color: var(--primary-color, #294467);
  font-weight: 400;
  overflow-wrap: break-word;
  word-break: break-word;
}

.rental-cart__confirmation-value--empty {
  color: var(--color-text-muted);
  font-weight: 500;
}

.rental-cart__confirmation-value .rental-cart__confirmation-extra {
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--color-text-muted);
}

.rental-cart__confirmation-onsite-wrap {
  background: var(--color-surface-subtle, #eef2f8);
  border: 1px solid var(--color-border, #e5e7eb);
  border-radius: var(--rental-field-radius, 4px);
  padding: 1.1rem var(--gutter-large, 1rem) 1.1rem 1rem;
  margin-top: 1rem;
}

.rental-cart__confirmation-onsite {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

/* Cost Details table: PRODUCT | QTY | PRICE */
.rental-cart__confirmation-cost-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9375rem;
}

.rental-cart__confirmation-cost-table thead th {
  padding: 0.5rem 0.75rem 0.65rem 0;
  text-align: left;
  border-bottom: 2px solid var(--color-border, #e5e7eb);
  color: var(--primary-color, #294467);
  font-weight: 700;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.rental-cart__confirmation-cost-table thead th.rental-cart__confirmation-cost-table-qty,
.rental-cart__confirmation-cost-table thead th.rental-cart__confirmation-cost-table-price {
  text-align: right;
}

.rental-cart__confirmation-cost-table tbody td {
  padding: 0.6rem 0.75rem 0.6rem 0;
  border-bottom: 1px solid var(--color-border, #e8eaed);
  vertical-align: top;
  color: var(--color-text, #1f2937);
}

.rental-cart__confirmation-cost-table tbody td.rental-cart__confirmation-cost-table-product {
  text-align: left;
}

.rental-cart__confirmation-cost-table tbody td.rental-cart__confirmation-cost-table-qty,
.rental-cart__confirmation-cost-table tbody td.rental-cart__confirmation-cost-table-price {
  text-align: right;
  white-space: nowrap;
}

.rental-cart__confirmation-cost-table tbody td.rental-cart__confirmation-cost-table-price {
  font-weight: 600;
}

.rental-cart__confirmation-cost-table tbody td.rental-cart__confirmation-cost-table-price.rental-cart__price-amount--base {
  font-weight: 500;
  font-size: 0.95em;
  color: var(--text-muted, #4b5563);
}

.rental-cart__confirmation-cost-table-total-row th,
.rental-cart__confirmation-cost-table-total-row td {
  padding-top: 0.85rem;
  padding-bottom: 0.55rem;
  border-top: 2px solid var(--color-border, #dbe0ea);
  font-weight: 700;
  font-size: 1.0625rem;
  color: var(--primary-color, #294467);
}

.rental-cart__confirmation-cost-table-total-row th {
  text-align: left;
}

.rental-cart__confirmation-cost-table-total-row td.rental-cart__confirmation-cost-table-price {
  text-align: right;
}

.rental-cart__confirmation-payment-block {
  display: flex;
  flex-direction: column;
  gap: 0;
  border: 1px solid var(--color-border, #e5e7eb);
  border-radius: var(--rental-field-radius, 4px);
  overflow: hidden;
  margin-top: 0.25rem;
}

.rental-cart__confirmation-payment-block .rental-cart__confirmation-payment-review {
  background: var(--color-surface, #fff);
  border-top: 1px solid var(--color-border, #e8eaed);
  margin: 0;
  padding: 0.75rem 1rem;
}

.rental-cart__confirmation-payment-block .rental-cart__confirmation-payment-review:first-child {
  border-top: none;
}

/* Footer: muted / legal style */
.rental-cart__confirmation-footer {
  margin-top: 0;
  padding: 1.35rem var(--gutter-large, 1.5rem) 1.5rem;
  background: var(--color-surface-subtle-alt);
  border-top: 1px solid var(--color-border, #e5e7eb);
  font-size: 0.8125rem;
  color: var(--color-text-muted);
  line-height: 1.6;
}

.rental-cart__confirmation-footer-p {
  margin: 0 0 0.75rem;
}

.rental-cart__confirmation-footer-p:last-child,
.rental-cart__confirmation-footer-restrictions:last-child,
.rental-cart__confirmation-footer-terms:last-child {
  margin-bottom: 0;
}

.rental-cart__confirmation-footer-restrictions {
  margin: 0 0 0.75rem;
  font-family: inherit;
}

.rental-cart__confirmation-footer-restrictions * {
  font-family: inherit;
}

.rental-cart__confirmation-footer-terms a {
  color: var(--primary-color, #294467);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.rental-cart__confirmation-footer-terms a:hover {
  color: var(--rental-flow-cta, var(--td-secondary, #c65252));
}

.rental-cart__confirmation-footer-terms a:focus-visible {
  outline: 2px solid var(--rental-flow-cta, var(--td-secondary, #c65252));
  outline-offset: 3px;
  border-radius: 2px;
}

.rental-cart__confirmation-overview {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem 1.5rem;
  padding: 1rem var(--gutter-large, 1.5rem);
  border-bottom: 1px solid var(--color-border);
}

@media (max-width: 480px) {
  .rental-cart__confirmation-overview {
    grid-template-columns: 1fr;
  }
}

.rental-cart__confirmation-overview-item {
  display: flex;
  gap: 0.35rem;
  align-items: baseline;
  min-width: 0;
  font-size: 0.9375rem;
}

.rental-cart__confirmation-overview-label {
  color: var(--color-text-muted);
  font-weight: 600;
  white-space: nowrap;
}

.rental-cart__confirmation-overview-value {
  color: var(--primary-color, #294467);
  font-weight: 700;
  overflow-wrap: break-word;
  word-break: break-word;
}

.rental-cart__confirmation-products {
  padding: 0 var(--gutter-large, 1.5rem);
}

.rental-cart__confirmation-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9375rem;
}

.rental-cart__confirmation-table thead th {
  padding: 0.75rem 0;
  text-align: left;
  border-bottom: 1px solid var(--color-border);
  color: var(--color-text-muted);
  font-weight: 600;
  font-size: 0.8125rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.rental-cart__confirmation-table thead th.rental-cart__confirmation-table-total {
  text-align: right;
}

.rental-cart__confirmation-table tbody td {
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--color-border-subtle);
  vertical-align: top;
  color: var(--color-text);
}

.rental-cart__confirmation-table tbody td.rental-cart__confirmation-table-product {
  text-align: left;
}

.rental-cart__confirmation-table tbody td.rental-cart__confirmation-table-total {
  text-align: right;
  white-space: nowrap;
  font-weight: 600;
}

/* Product name + debris subtitle */
.rental-cart__confirmation-product-name {
  display: block;
  font-weight: 600;
  color: var(--color-text-secondary);
}

.rental-cart__confirmation-product-qty {
  color: var(--color-text-muted);
  margin-left: 0.25rem;
}

.rental-cart__confirmation-product-sub {
  display: block;
  font-size: 0.8125rem;
  color: var(--color-text-muted);
  margin-top: 0.15rem;
}

/* Extra rows (e.g. +2 tons, +1 day) on confirmation table */
.rental-cart__confirmation-table-row--extra td.rental-cart__confirmation-table-product {
  padding-left: 1.25rem;
}

/* Tfoot: subtotal, shipping, total, payment method */
.rental-cart__confirmation-table tfoot th,
.rental-cart__confirmation-table tfoot td {
  padding: 0.4rem 0;
  font-size: 0.9375rem;
  border-top: none;
}

.rental-cart__confirmation-table tfoot th {
  text-align: left;
  font-weight: 400;
  color: var(--color-text-muted);
}

.rental-cart__confirmation-table tfoot td {
  text-align: right;
  color: var(--color-text);
}

.rental-cart__confirmation-table-foot-row--total th,
.rental-cart__confirmation-table-foot-row--total td {
  padding-top: 0.75rem !important;
  border-top: 2px solid var(--color-border) !important;
  font-weight: 700 !important;
  font-size: 1.0625rem !important;
  color: var(--primary-color, #294467) !important;
}

.rental-cart__confirmation-payment-review {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem;
  padding: 0.75rem var(--gutter-large, 1.5rem);
  font-size: 0.9375rem;
  background: var(--color-surface-subtle);
  border-top: 1px solid var(--color-border);
}

.rental-cart__confirmation-payment-label {
  font-weight: 600;
  color: var(--color-text-muted);
}

.rental-cart__confirmation-payment-value {
  font-weight: 400;
  color: var(--primary-color, #294467);
}

.rental-cart__confirmation-payment-mask {
  font-weight: 500;
  color: var(--color-text, #374151);
  white-space: normal;
}

.rental-cart__confirmation-gateway-note {
  margin: 0;
  padding: 0.75rem var(--gutter-large, 1.5rem);
  font-size: 0.875rem;
  color: var(--color-text-muted);
  background: var(--color-surface);
  border-top: 1px solid var(--color-border, #e5e7eb);
}

.rental-cart__confirmation-gateway-note p {
  margin: 0;
}

.rental-cart__confirmation-payment-block .rental-cart__confirmation-gateway-note {
  padding-left: 1rem;
  padding-right: 1rem;
}

.rental-cart__confirmation-addresses {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
  padding: 1.35rem var(--gutter-large, 1.5rem) 1.5rem;
  background: var(--color-surface-subtle, #eef2f8);
  border-top: 1px solid var(--color-border, #e5e7eb);
}

@media (max-width: 600px) {
  .rental-cart__confirmation-addresses {
    grid-template-columns: 1fr;
  }
}

.rental-cart__confirmation-address {
  padding-bottom: 0;
  border-bottom: none;
}

@media (max-width: 600px) {
  .rental-cart__confirmation-address + .rental-cart__confirmation-address {
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--color-border, #e5e7eb);
  }
}

@media (min-width: 601px) {
  .rental-cart__confirmation-address + .rental-cart__confirmation-address {
    border-left: 1px solid var(--color-border, #d1d5db);
    padding-left: 1.5rem;
  }
}

.rental-cart__confirmation-address-title {
  margin: 0 0 0.5rem;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--primary-color, #294467);
}

.rental-cart__confirmation-addresses address {
  font-style: normal;
  line-height: 1.5;
  color: var(--color-text);
  font-size: 0.9375rem;
}


.rental-cart__confirmation-card .woocommerce-order-details__title {
  margin: 0 0 1rem;
  font-size: 1.375rem;
  font-weight: 500;
  color: var(--primary-color, #294467);
}

.rental-cart__confirmation-card .woocommerce-table--order-details {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9375rem;
}

.rental-cart__confirmation-card .woocommerce-table--order-details thead th {
  padding: 0.5rem 0;
  text-align: left;
  border-bottom: 1px solid var(--color-border);
  color: var(--color-text-muted);
  font-weight: 600;
  font-size: 0.8125rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.rental-cart__confirmation-card .woocommerce-table--order-details tbody td {
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--color-border);
  vertical-align: top;
  color: var(--color-text);
}

.rental-cart__confirmation-card .woocommerce-table--order-details tbody tr:last-child td {
  border-bottom: none;
}

.rental-cart__confirmation-card .woocommerce-table--order-details tfoot th,
.rental-cart__confirmation-card .woocommerce-table--order-details tfoot td {
  padding: 0.4rem 0;
  border-top: none;
  font-size: 0.9375rem;
}

.rental-cart__confirmation-card .woocommerce-table--order-details tfoot .order-total th,
.rental-cart__confirmation-card .woocommerce-table--order-details tfoot .order-total td {
  padding-top: 0.75rem;
  padding-bottom: 1rem;
  border-top: 2px solid var(--color-border);
  font-weight: 700;
  font-size: 1.0625rem;
  color: var(--primary-color, #294467);
}

/* Order again / actions inside card */
.rental-cart__confirmation-card .order-actions-button,
.rental-cart__confirmation-card .woocommerce-button {
  display: inline-block;
  padding: 0.5rem 1rem;
  font-size: 0.9375rem;
  font-weight: 600;
  border-radius: var(--rental-cart-btn-radius, 9999px);
  text-decoration: none;
  transition: background 0.2s ease, color 0.2s ease;
  margin-top: 0.5rem;
}

.rental-cart__confirmation-card .order-actions-button,
.rental-cart__confirmation-card a.woocommerce-button.button {
  background: var(--primary-color, #294467);
  color: var(--color-on-primary);
  border: var(--rental-cta-border-width, 1px) solid var(--primary-color, #294467);
}

.rental-cart__confirmation-card .order-actions-button:hover,
.rental-cart__confirmation-card a.woocommerce-button.button:hover {
  background: transparent;
  color: var(--primary-color, #294467);
}

.rental-cart__confirmation-card .order-actions-button:focus-visible,
.rental-cart__confirmation-card a.woocommerce-button.button:focus-visible {
  outline: 2px solid var(--primary-color, #294467);
  outline-offset: 3px;
}

/* Customer details (billing/shipping) – two columns inside same card */
.rental-cart__confirmation-card .woocommerce-customer-details {
  margin: 0;
  padding: 1.25rem var(--gutter-large, 1.5rem) 1.5rem;
  background: var(--color-surface-subtle);
  border-top: 1px solid var(--color-border);
  border-radius: 0;
}

.rental-cart__confirmation-card .woocommerce-customer-details .woocommerce-columns--addresses {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
  margin-top: 0.5rem;
}

@media (max-width: 600px) {
  .rental-cart__confirmation-card .woocommerce-customer-details .woocommerce-columns--addresses {
    grid-template-columns: 1fr;
  }
}

.rental-cart__confirmation-card .woocommerce-customer-details .woocommerce-column__title {
  margin: 0 0 0.35rem;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--color-text-muted);
}

.rental-cart__confirmation-card .woocommerce-customer-details address {
  font-style: normal;
  line-height: 1.5;
  color: var(--color-text);
  font-size: 0.9375rem;
}

.rental-cart__confirmation-card .woocommerce-customer-details--phone,
.rental-cart__confirmation-card .woocommerce-customer-details--email {
  margin: 0.25rem 0 0;
  font-size: 0.9375rem;
}

.rental-cart__confirmation-block--error {
  padding: 1.5rem;
  background: rgba(var(--td-accent-orange-rgb, 198, 82, 82), 0.08);
  border: var(--rental-cta-border-width, 1px) solid rgba(var(--td-accent-orange-rgb, 198, 82, 82), 0.35);
  border-radius: var(--rental-field-radius, 4px);
  margin-bottom: 1.5rem;
}

.rental-cart__confirmation-block--error .woocommerce-notice--error {
  margin: 0 0 1rem;
}

.rental-cart__confirmation-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin: 0;
}

/* Mobile / touch: larger tap targets */
@media (max-width: 991px) {
  .rental-cart__extras-slider-wrap {
    padding: 0.5rem 0 0.75rem;
    gap: 1.25rem;
    touch-action: pan-x;
  }

  /* Wider than "None" so labels like "6 tons" do not squeeze the track. */
  .rental-cart__extras-slider-value {
    min-width: 6.5rem;
  }

  .rental-cart__extras-slider {
    height: 12px;
  }

  .rental-cart__extras-slider::-webkit-slider-thumb {
    width: 32px;
    height: 32px;
    margin-top: -10px;
  }

  .rental-cart__extras-slider::-moz-range-thumb {
    width: 32px;
    height: 32px;
  }

  .rental-cart__date-tile {
    min-height: 52px;
    padding: 1rem 0.65rem;
    box-sizing: border-box;
  }

  .rental-cart__date-calendar .input-group {
    align-items: stretch;
  }

  .rental-cart__date-calendar .rental-field__input,
  .rental-cart__date-calendar .form-control {
    min-height: 48px;
    padding-top: 0.65rem;
    padding-bottom: 0.65rem;
  }

  .rental-cart__date-calendar #delivery-date-picker-trigger,
  .rental-cart__date-calendar .input-group-append .input-group-text {
    min-width: 48px;
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding-left: 0.75rem;
    padding-right: 0.75rem;
    box-sizing: border-box;
  }

  .rental-cart__date-calendar #delivery-date-picker-trigger svg {
    width: 20px;
    height: 20px;
  }

  .rental-cart__summary-segment {
    min-height: 44px;
    padding: 0.4rem 0.5rem;
    box-sizing: border-box;
  }

  .rental-cart__summary-edit {
    min-height: 44px;
    padding: 0.5rem 1rem;
    box-sizing: border-box;
  }

  /* Keep 44px target but anchor label to the top so it doesn’t look floating below the heading */
  .rental-cart__lock-in-link {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    min-height: 44px;
    padding: 0.125rem 0 0.625rem;
    box-sizing: border-box;
  }

  .rental-cart__materials-tab {
    min-height: 48px;
    padding-top: 0.85rem;
    padding-bottom: 0.85rem;
    box-sizing: border-box;
  }

  .rental-cart__btn-option--small {
    min-height: 44px;
    padding: 0.85rem 0.65rem;
    box-sizing: border-box;
  }

  .rental-cart__price-breakdown .rental-cart__extras-chip-remove {
    width: 32px;
    height: 32px;
    min-width: 32px;
    min-height: 32px;
    font-size: 1rem;
  }
}

/* Phones: slightly wider date tiles without overriding tablet 4-up layout */
@media (max-width: 767px) {
  .rental-cart__date-picker {
    grid-template-columns: repeat(auto-fit, minmax(112px, 1fr));
    gap: 0.65rem;
  }
}
