/* BookingCars Search widget
 * Los breakpoints dependen del ancho del buscador, no de la pantalla: el JS lo mide
 * con ResizeObserver y agrega .is-md (<= 900px), .is-sm (<= 560px) e .is-xs (<= 340px).
 * No se usan container queries porque colapsan el ancho dentro de contenedores flex (Elementor).
 */

.bcs {
  --bcs-accent: #f3bc41;
  --bcs-accent-soft: #fbf1d6;
  --bcs-text: #333;
  --bcs-muted: #8c8c8c;
  --bcs-line: #dcdcdc;
  --bcs-error: #d64545;
  --bcs-bg: #fff;
  --bcs-font: inherit;
  --bcs-title-font: inherit;
  display: block;
  width: 100%;
  position: relative;
  z-index: 5;
  font-family: var(--bcs-font);
  color: var(--bcs-text);
  line-height: 1.35;
}

.bcs *,
.bcs *::before,
.bcs *::after { box-sizing: border-box; }

.bcs [hidden] { display: none !important; }

/* Reset de estilos que suelen meter los themes */
.bcs button,
.bcs input,
.bcs select {
  font: inherit;
  margin: 0;
  box-shadow: none;
  text-transform: none;
  letter-spacing: normal;
  min-height: 0;
  border-radius: 0;
  line-height: 1.3;
}

.bcs-form {
  margin: 0;
  padding: 18px 24px 18px;
  background: var(--bcs-bg);
  box-shadow: 0 6px 24px rgba(0, 0, 0, .12);
  border-radius: 2px;
}

/* Los themes suelen pintar button:hover / [type=button]:hover con un fondo de color.
 * Estos selectores tienen más especificidad para que los botones del buscador no cambien. */
.bcs button[type="button"]:hover,
.bcs button[type="button"]:focus,
.bcs button[type="button"]:active {
  background-color: transparent;
  color: inherit;
  text-decoration: none;
  border-color: transparent;
}
.bcs button[type="submit"]:hover,
.bcs button[type="submit"]:focus,
.bcs button[type="submit"]:active {
  background-color: var(--bcs-accent);
  color: #fff;
  text-decoration: none;
}
.bcs button[type="submit"]:disabled,
.bcs button[type="submit"]:disabled:hover {
  background-color: #dde1ea;
  color: #fff;
}

/* ---------- Fila superior ---------- */

.bcs-top {
  display: flex;
  align-items: flex-end;
  gap: 28px;
}

.bcs-where { flex: 1 1 0; min-width: 0; }

.bcs-title {
  margin: 0 0 10px;
  font-family: var(--bcs-title-font);
  font-size: 19px;
  font-weight: 700;
  line-height: 1.3;
}

.bcs-locs { display: flex; gap: 24px; }

.bcs-field { position: relative; min-width: 0; }

.bcs-loc {
  flex: 1 1 0;
  display: flex;
  align-items: center;
  gap: 8px;
  height: 46px;
  border-bottom: 1px solid var(--bcs-line);
}
.bcs-loc:focus-within { border-bottom-color: var(--bcs-accent); }

.bcs-loc-ico { display: inline-flex; flex: none; }
.bcs-loc-ico svg { width: 22px; height: 22px; }

.bcs .bcs-loc-input {
  flex: 1;
  min-width: 0;
  height: auto;
  padding: 6px 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--bcs-text);
  font-size: 16px;
  text-overflow: ellipsis;
}
.bcs .bcs-loc-input::placeholder { color: var(--bcs-muted); opacity: 1; }

.bcs .bcs-loc-clear {
  flex: none;
  display: inline-flex;
  padding: 4px;
  border: 0;
  background: transparent;
  color: var(--bcs-text);
  cursor: pointer;
}
.bcs .bcs-loc-clear svg { width: 18px; height: 18px; }

/* ---------- Sugerencias ---------- */

.bcs-suggest {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 30;
  max-height: 300px;
  margin: 2px 0 0;
  padding: 4px 0;
  overflow: auto;
  list-style: none;
  background: #fff;
  box-shadow: 0 4px 16px rgba(0, 0, 0, .15);
}

.bcs-suggest li {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  padding: 9px 14px;
  font-size: 15px;
  cursor: pointer;
}
.bcs-suggest li[data-i]:hover,
.bcs-suggest li.is-active { background: #f5f5f5; }

.bcs-suggest-ico { display: inline-flex; flex: none; width: 24px; justify-content: center; }
.bcs-suggest-ico svg { width: 22px; height: 22px; }

.bcs-suggest .bcs-suggest-msg { color: var(--bcs-muted); cursor: default; font-size: 14px; }

/* ---------- Fechas ---------- */

.bcs-dates {
  position: relative;
  flex: 0 1 46%;
  min-width: 0;
  display: flex;
  align-items: flex-end;
  gap: 16px;
}

.bcs-date {
  flex: 1 1 0;
  display: flex;
  align-items: center;
  gap: 10px;
  height: 46px;
  border-bottom: 1px solid var(--bcs-line);
}
.bcs-date.is-active { border-bottom-color: var(--bcs-accent); }

.bcs .bcs-date-btn {
  position: relative;
  flex: 1;
  min-width: 0;
  /* El texto de la fecha no define el ancho mínimo del buscador (evita que se salga
     de la pantalla dentro de contenedores flex); el botón toma el espacio disponible */
  contain: inline-size;
  height: 100%;
  display: flex;
  align-items: center;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--bcs-text);
  text-align: left;
  cursor: pointer;
}

.bcs-date-label {
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  font-size: 15px;
  color: var(--bcs-muted);
  white-space: nowrap;
  text-overflow: ellipsis;
}
.bcs-date.has-value .bcs-date-label {
  position: absolute;
  left: 0;
  bottom: 100%;
  max-width: 100%;
  margin-bottom: 8px;
}

.bcs-date-value {
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  font-size: 16px;
  font-weight: 700;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.bcs .bcs-time {
  flex: none;
  width: auto;
  height: auto;
  padding: 4px 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--bcs-text);
  font-size: 15px;
  text-align: right;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
}

.bcs-dash {
  flex: none;
  align-self: center;
  width: 18px;
  height: 3px;
  background: var(--bcs-accent);
}

/* ---------- Errores ---------- */

.bcs .bcs-field.has-error { border-bottom-color: var(--bcs-error); }
.bcs-field.has-error .bcs-date-label,
.bcs-field.has-error .bcs-loc-ico { color: var(--bcs-error); }
.bcs .bcs-field.has-error .bcs-loc-input::placeholder { color: var(--bcs-error); }

/* ---------- Fila inferior ---------- */

.bcs-bottom {
  display: flex;
  align-items: flex-end;
  gap: 14px 20px;
  margin-top: 20px;
}

.bcs-country { flex: none; width: 180px; }
.bcs .bcs-country.bcs-currency { width: 110px; }

.bcs-country-label {
  display: block;
  margin-bottom: 2px;
  font-size: 13px;
  color: var(--bcs-muted);
}

.bcs-select { position: relative; border-bottom: 1px solid var(--bcs-line); }
.bcs-select:focus-within { border-bottom-color: var(--bcs-accent); }

.bcs .bcs-select select {
  width: 100%;
  height: auto;
  padding: 8px 40px 8px 10px;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--bcs-text);
  font-size: 15px;
  text-overflow: ellipsis;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
}

.bcs-select-ico {
  position: absolute;
  top: 50%;
  right: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 22px;
  transform: translateY(-50%);
  border-left: 1px solid var(--bcs-line);
  color: var(--bcs-muted);
  pointer-events: none;
}
.bcs-select-ico svg { width: 16px; height: 16px; }

.bcs-checks {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 18px;
  padding-bottom: 8px;
}

.bcs-check {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  font-size: 14px;
  line-height: 1.25;
  cursor: pointer;
  user-select: none;
}

.bcs-check input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.bcs-check-box {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border: 2px solid #d5d5d5;
  border-radius: 50%;
  color: transparent;
  transition: background .15s, border-color .15s;
}
.bcs-check-box svg { width: 12px; height: 12px; }
.bcs-check input:checked + .bcs-check-box { background: #000; border-color: #000; color: #fff; }
.bcs-check input:focus-visible + .bcs-check-box { outline: 2px solid var(--bcs-accent); outline-offset: 2px; }

.bcs .bcs-submit {
  flex: none;
  height: 46px;
  margin-left: auto;
  padding: 0 34px;
  border: 0;
  background: var(--bcs-accent);
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  cursor: pointer;
}
.bcs .bcs-submit:hover { filter: brightness(.96); }
.bcs .bcs-submit:focus-visible { outline: 2px solid #000; outline-offset: 2px; }
.bcs .bcs-submit:disabled {
  background: #dde1ea;
  cursor: not-allowed;
  filter: none;
}

.bcs-warning {
  display: flex;
  align-items: center;
  gap: 10px;
  max-width: 760px;
  margin-top: 12px;
  padding: 9px 14px;
  border: 1px solid #f5e3a4;
  border-radius: 6px;
  background: #fdf3d0;
  color: #9a7412;
  font-size: 13px;
  letter-spacing: .01em;
}
.bcs-warning svg { flex: none; width: 18px; height: 18px; }
.bcs-warning + .bcs-warning { margin-top: 8px; }

/* ---------- Calendario ---------- */

.bcs-cal {
  position: absolute;
  top: calc(100% + 12px);
  right: -16px;
  z-index: 40;
  width: 560px;
  max-width: calc(100vw - 24px);
  padding: 18px 20px 14px;
  border: 1px solid var(--bcs-accent);
  border-radius: 4px;
  background: #fff;
  box-shadow: 0 8px 28px rgba(0, 0, 0, .14);
}

.bcs-cal::before {
  content: '';
  position: absolute;
  top: -8px;
  right: 60px;
  width: 14px;
  height: 14px;
  border-top: 1px solid var(--bcs-accent);
  border-left: 1px solid var(--bcs-accent);
  background: #fff;
  transform: rotate(45deg);
}
.bcs-cal[data-mode="start"]::before { right: auto; left: 70px; }

.bcs-cal-months {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(0, 1fr);
  gap: 24px;
}

.bcs-cal-title {
  margin: 6px 0 12px;
  font-size: 13px;
  font-weight: 700;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: .03em;
}

.bcs-cal-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  row-gap: 2px;
}

.bcs-cal-wd {
  padding-bottom: 8px;
  font-size: 11px;
  color: var(--bcs-muted);
  text-align: center;
  text-transform: uppercase;
}

.bcs .bcs-cal-grid button {
  height: 34px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--bcs-text);
  font-size: 13px;
  cursor: pointer;
}
.bcs .bcs-cal-grid button:disabled { color: #c8c8c8; cursor: default; }
.bcs .bcs-cal-grid button:not(:disabled):hover,
.bcs .bcs-cal-grid button.in-range { background: var(--bcs-accent-soft); }
.bcs .bcs-cal-grid button.is-start,
.bcs .bcs-cal-grid button.is-end { background: var(--bcs-accent); color: #fff; font-weight: 700; }
.bcs .bcs-cal-grid button:focus-visible { outline: 2px solid var(--bcs-text); outline-offset: -2px; }

.bcs .bcs-cal-nav {
  position: absolute;
  top: 14px;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 30px;
  padding: 0;
  border: 1px solid var(--bcs-line);
  border-radius: 3px;
  background: #fff;
  color: var(--bcs-muted);
  cursor: pointer;
}
.bcs .bcs-cal-nav svg { width: 18px; height: 18px; }
.bcs .bcs-cal-nav:disabled { opacity: .3; cursor: default; }
.bcs button.bcs-cal-nav[type="button"]:hover,
.bcs button.bcs-cal-nav[type="button"]:focus { background-color: #fff; border-color: var(--bcs-line); color: var(--bcs-text); }
.bcs-cal-prev { left: 14px; }
.bcs-cal-next { right: 14px; }

.bcs-admin-note {
  padding: 8px 12px;
  border-left: 4px solid #d64545;
  background: #fff4f4;
  font-size: 14px;
}

/* ---------- Ancho medio: ubicación y fechas en filas separadas ---------- */

.bcs.is-md .bcs-top { flex-direction: column; align-items: stretch; gap: 14px; }
.bcs.is-md .bcs-dates { flex-basis: auto; }
/* Etiqueta de fecha dentro del campo, arriba del valor (sin flotar) */
.bcs.is-md .bcs-date { height: 50px; align-items: flex-end; padding-bottom: 6px; }
.bcs.is-md .bcs-date-btn { height: auto; flex-direction: column; align-items: flex-start; justify-content: flex-end; }
.bcs.is-md .bcs-time { padding: 0; }
.bcs.is-md .bcs-date.has-value .bcs-date-label {
    position: static;
    margin: 0 0 1px;
    font-size: 12px;
  }
.bcs.is-md .bcs-bottom { flex-wrap: wrap; }
.bcs.is-md .bcs-checks { flex-basis: 100%; order: 3; padding-bottom: 0; }
.bcs.is-md .bcs-submit { order: 4; width: 100%; margin-left: 0; }
.bcs.is-md .bcs-cal { left: 0; right: 0; width: auto; }
.bcs.is-md .bcs-cal::before { display: none; }

/* ---------- Angosto (mobile) ---------- */

.bcs.is-sm .bcs-form { padding: 20px 18px 20px; }
.bcs.is-sm .bcs-title { font-size: 17px; margin-bottom: 8px; }
.bcs.is-sm .bcs-locs { flex-direction: column; gap: 10px; }
.bcs.is-sm .bcs-loc { height: 48px; }
.bcs.is-sm .bcs-loc-input { font-size: 15px; }
.bcs.is-sm .bcs-dates { gap: 16px; }
.bcs.is-sm .bcs-dash { display: none; }
.bcs.is-sm .bcs-date-label { font-size: 14px; }
.bcs.is-sm .bcs-date-value { font-size: 15px; }
.bcs.is-sm .bcs-time { font-size: 14px; }
/* País y moneda lado a lado */
.bcs.is-sm .bcs-bottom {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 18px 16px;
    margin-top: 20px;
  }
.bcs.is-sm .bcs-country,
.bcs.is-sm .bcs-country.bcs-currency { width: auto; }
.bcs.is-sm .bcs-bottom:has(.bcs-currency[hidden]) .bcs-country { grid-column: 1 / -1; }
.bcs.is-sm .bcs-checks { grid-column: 1 / -1; gap: 12px 16px; }
.bcs.is-sm .bcs-check { font-size: 14px; }
.bcs.is-sm .bcs-check-box { width: 20px; height: 20px; }
.bcs.is-sm .bcs-submit { grid-column: 1 / -1; height: 48px; margin-top: 4px; }
.bcs.is-sm .bcs-warning { margin-top: 16px; font-size: 12px; }

/* ---------- Muy angosto: fechas una debajo de la otra ---------- */

.bcs.is-xs .bcs-dates { flex-direction: column; align-items: stretch; gap: 12px; }
.bcs.is-xs .bcs-select select { padding: 8px 30px 8px 4px; }
.bcs.is-xs .bcs-select-ico { width: 26px; }

