/* ai-ui.css — 2026 ui overlay for the hire funnel + form controls.
   loads after the mirrored prod css and re-skins the dated jquery-ui /
   selectize / breakdance form look. brand: green #01833D, yellow #FFC629,
   nunito sans. engine (steps.js + jquery-ui datepicker) untouched. */

:root {
  --ai-green: #01833d;
  --ai-green-dark: #026b33;
  --ai-yellow: #ffc629;
  --ai-yellow-hover: #efb92e;
  --ai-ink: #101828;
  --ai-muted: #667085;
  --ai-border: #d0d5dd;
  --ai-ring: rgba(1, 131, 61, 0.18);
  --ai-radius: 12px;
  --ai-shadow: 0 12px 32px -8px rgba(16, 24, 40, 0.18), 0 2px 6px rgba(16, 24, 40, 0.06);
}

/* ---------- form controls (step 1 + breakdance forms everywhere) ---------- */
.breakdance-form-field__input,
.breakdance-form-field select,
.breakdance-form-field textarea {
  border: 1.5px solid var(--ai-border) !important;
  border-radius: var(--ai-radius) !important;
  background: #fff !important;
  padding: 13px 16px !important;
  font-size: 16px !important;
  color: var(--ai-ink) !important;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04);
}
.breakdance-form-field__input:hover { border-color: #98a2b3 !important; }
.breakdance-form-field__input:focus,
.breakdance-form-field select:focus,
.breakdance-form-field textarea:focus {
  outline: none !important;
  border-color: var(--ai-green) !important;
  box-shadow: 0 0 0 4px var(--ai-ring) !important;
}
.breakdance-form-field__label {
  font-weight: 700 !important;
  color: var(--ai-ink) !important;
}
select.breakdance-form-field__input {
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' fill='none'%3E%3Cpath d='M1 1l6 6 6-6' stroke='%23667085' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 16px center !important;
  padding-right: 42px !important;
}

/* readonly date fields read as pickers, not dead inputs */
input#date_delivery,
input#date_pickup {
  cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%23667085' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='3.5' width='14' height='13' rx='2.5'/%3E%3Cpath d='M2 7.5h14M6 1.5v3M12 1.5v3'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 16px center !important;
}

/* ---------- jquery-ui datepicker re-skin ---------- */
#ui-datepicker-div.ui-datepicker {
  width: 21em;
  padding: 14px;
  border: none !important;
  border-radius: 16px !important;
  background: #fff !important;
  box-shadow: var(--ai-shadow) !important;
  font-family: inherit !important;
  margin-top: 6px;
}
#ui-datepicker-div .ui-datepicker-header {
  background: none !important;
  border: none !important;
  padding: 2px 0 10px;
}
#ui-datepicker-div .ui-datepicker-title {
  font-weight: 800;
  font-size: 15px;
  color: var(--ai-ink);
  line-height: 32px;
}
#ui-datepicker-div .ui-datepicker-prev,
#ui-datepicker-div .ui-datepicker-next {
  top: 4px !important;
  width: 32px;
  height: 32px;
  border: none !important;
  border-radius: 10px !important;
  background: #f2f4f7 !important;
  cursor: pointer;
}
#ui-datepicker-div .ui-datepicker-prev { left: 4px !important; }
#ui-datepicker-div .ui-datepicker-next { right: 4px !important; }
#ui-datepicker-div .ui-datepicker-prev:hover,
#ui-datepicker-div .ui-datepicker-next:hover { background: #e4e7ec !important; }
#ui-datepicker-div .ui-datepicker-prev span,
#ui-datepicker-div .ui-datepicker-next span {
  /* swap the sprite arrows for crisp svg chevrons */
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23344054' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 3L5 8l5 5'/%3E%3C/svg%3E") center no-repeat !important;
  margin: 0;
  top: 8px !important;
  left: 8px !important;
}
#ui-datepicker-div .ui-datepicker-next span { transform: rotate(180deg); }
#ui-datepicker-div table.ui-datepicker-calendar {
  margin: 0;
  font-size: 14px;
}
#ui-datepicker-div .ui-datepicker-calendar th {
  font-weight: 700;
  color: var(--ai-muted);
  font-size: 12px;
  text-transform: uppercase;
  padding: 6px 0;
}
#ui-datepicker-div .ui-datepicker-calendar td {
  padding: 2px;
}
#ui-datepicker-div .ui-datepicker-calendar td a,
#ui-datepicker-div .ui-datepicker-calendar td span {
  width: 38px;
  height: 38px;
  line-height: 38px;
  display: inline-block;
  text-align: center !important;
  padding: 0 !important;
  border: none !important;
  border-radius: 50% !important;
  background: none !important;
  color: var(--ai-ink);
  font-weight: 600;
  transition: background 0.12s ease;
}
#ui-datepicker-div .ui-datepicker-calendar td a:hover {
  background: var(--ai-ring) !important;
  color: var(--ai-green-dark) !important;
}
#ui-datepicker-div .ui-datepicker-calendar .ui-state-highlight {
  box-shadow: inset 0 0 0 2px var(--ai-yellow) !important;
  color: var(--ai-ink) !important;
}
#ui-datepicker-div .ui-datepicker-calendar .ui-state-active {
  background: var(--ai-green) !important;
  color: #fff !important;
}
#ui-datepicker-div .ui-datepicker-calendar .ui-state-disabled span {
  color: #d0d5dd !important;
  font-weight: 400;
}

/* ---------- selectize (postcode search) ---------- */
.selectize-control.single .selectize-input {
  border: 1.5px solid var(--ai-border) !important;
  border-radius: var(--ai-radius) !important;
  background: #fff !important;
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04) !important;
  padding: 13px 16px !important;
  font-size: 16px;
  color: var(--ai-ink);
}
.selectize-control.single .selectize-input.focus,
.selectize-control.single .selectize-input.input-active {
  border-color: var(--ai-green) !important;
  box-shadow: 0 0 0 4px var(--ai-ring) !important;
}
.selectize-control.single .selectize-input:after {
  border-color: var(--ai-muted) transparent transparent transparent !important;
}
.selectize-dropdown {
  border: none !important;
  border-radius: 14px !important;
  box-shadow: var(--ai-shadow) !important;
  margin-top: 6px !important;
  padding: 6px;
  font-size: 15px;
}
.selectize-dropdown .option {
  border-radius: 8px;
  padding: 10px 12px !important;
  color: var(--ai-ink);
}
.selectize-dropdown .option.active {
  background: var(--ai-ring) !important;
  color: var(--ai-green-dark) !important;
}
.selectize-dropdown .optgroup-header {
  font-weight: 800;
  color: var(--ai-muted);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  background: none !important;
}

/* ---------- step 2: product tiles ---------- */
.hs-product-loop .product-tile,
.hs-additional-loop .additional-tile {
  border: 1.5px solid #e4e7ec !important;
  border-radius: 16px !important;
  box-shadow: 0 1px 3px rgba(16, 24, 40, 0.05);
  transition: box-shadow 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}
.hs-product-loop .product-tile:hover,
.hs-additional-loop .additional-tile:hover {
  border-color: #cdd5df !important;
  box-shadow: 0 8px 24px -6px rgba(16, 24, 40, 0.12);
  transform: translateY(-2px);
}
.hs-product-loop .product-tile.selected,
.hs-product-loop .product-tile.has-qty {
  border-color: var(--ai-green) !important;
  box-shadow: 0 0 0 3px var(--ai-ring);
}

/* qty steppers: readable circular buttons instead of bare +/- text */
.qty-wrap {
  display: inline-flex !important;
  align-items: center;
  gap: 2px;
  border: 1.5px solid var(--ai-border);
  border-radius: 999px;
  padding: 3px;
  background: #fff;
}
.qty-wrap .minus,
.qty-wrap .plus {
  width: 30px;
  height: 30px;
  line-height: 28px;
  text-align: center;
  border-radius: 50%;
  background: #f2f4f7;
  color: var(--ai-ink);
  font-weight: 800;
  font-size: 16px;
  cursor: pointer;
  user-select: none;
  transition: background 0.12s ease;
}
.qty-wrap .minus:hover,
.qty-wrap .plus:hover { background: var(--ai-yellow); }
.qty-wrap input.qty {
  border: none !important;
  width: 34px !important;
  text-align: center;
  font-weight: 800;
  font-size: 15px;
  background: none !important;
  color: var(--ai-ink);
  pointer-events: none;
}

/* buttons: book-now / next / previous */
.add-to-my-booking.button-atom,
.hs-place-loop .hs-place-wrap button {
  border-radius: 10px !important;
  font-weight: 800 !important;
  letter-spacing: 0.01em;
  transition: background 0.12s ease, transform 0.12s ease, box-shadow 0.12s ease;
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.1);
}
.add-to-my-booking.button-atom:hover,
.hs-place-loop .hs-place-wrap button:hover {
  background: var(--ai-yellow-hover) !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 10px -2px rgba(16, 24, 40, 0.2);
}

/* step 4: placement tiles */
.hs-place-loop .hs-place-wrap {
  border-radius: 16px !important;
  border: 1.5px solid #e4e7ec !important;
  transition: box-shadow 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}
.hs-place-loop .hs-place-wrap:hover {
  border-color: #cdd5df !important;
  box-shadow: 0 8px 24px -6px rgba(16, 24, 40, 0.12);
  transform: translateY(-2px);
}
.hs-place-loop .hs-place-wrap.selected {
  border-color: var(--ai-green) !important;
  background: #f2fbf6 !important;
  box-shadow: 0 0 0 3px var(--ai-ring);
}

/* am/pm radio pills (checkout + funnel date slots) */
input[name='date_delivery-date'],
input[name='date_pickup-date'] {
  accent-color: var(--ai-green);
}
