/**
 * Alma Calatrava — estilo cálido del formulario HBook
 * Archivo propio (mu-plugin). No modifica el plugin HBook.
 */
:root {
  --alma-hb-sand: #faf6f1;
  --alma-hb-sand-2: #f0e8dc;
  --alma-hb-ink: #2c2420;
  --alma-hb-muted: #6b5e55;
  --alma-hb-clay: #9a4e2c;
  --alma-hb-clay-dark: #7a3c22;
  --alma-hb-avail: #e7efe3;
  --alma-hb-avail-text: #3d4f35;
  --alma-hb-busy: #f0ddd8;
  --alma-hb-busy-text: #7a3d35;
  --alma-hb-select: #f3e0c4;
  --alma-hb-line: #e2d6c8;
  --alma-hb-radius: 12px;
}
.hbook-wrapper {
  background: var(--alma-hb-sand);
  border: 1px solid var(--alma-hb-line);
  border-radius: 16px;
  padding: 1.25rem 1.35rem 1.5rem;
  box-shadow: 0 8px 28px rgba(44, 36, 32, 0.06);
  color: var(--alma-hb-ink);
  max-width: 860px;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}
.hbook-wrapper input[type="submit"],
.hbook-wrapper .hb-button,
.hbook-wrapper button,
.hbook-wrapper .button {
  font-family: "Montserrat", "Segoe UI", sans-serif;
  letter-spacing: 0.03em;
}
.hbook-wrapper .hb-search-form {
  background: #fff;
  border: 1px solid var(--alma-hb-line);
  border-radius: var(--alma-hb-radius);
  padding: 1rem 1rem 0.35rem;
  margin-bottom: 1rem;
}
.hbook-wrapper p.hb-check-dates-wrapper,
.hbook-wrapper p.hb-people-wrapper,
.hbook-wrapper p.hb-search-button-wrapper,
.hbook-wrapper p.hb-accom-number-wrapper {
  margin-bottom: 0.85rem;
}
.hbook-wrapper .hb-check-dates-wrapper label,
.hbook-wrapper .hb-people-wrapper label,
.hbook-wrapper .hb-accom-number-wrapper label {
  display: block;
  font-family: "Montserrat", "Segoe UI", sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--alma-hb-muted);
  margin-bottom: 0.35rem;
}
.hbook-wrapper .hb-check-dates-wrapper input,
.hbook-wrapper .hb-people-wrapper select,
.hbook-wrapper .hb-accom-number-wrapper select,
.hbook-wrapper .hb-detail-field,
.hbook-wrapper input[type="text"],
.hbook-wrapper input[type="email"],
.hbook-wrapper input[type="tel"],
.hbook-wrapper select,
.hbook-wrapper textarea {
  border: 1px solid var(--alma-hb-line) !important;
  border-radius: 10px !important;
  background: #fff !important;
  color: var(--alma-hb-ink) !important;
  padding: 0.65rem 0.8rem !important;
  min-height: 44px;
  box-shadow: none !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.hbook-wrapper .hb-check-dates-wrapper input:focus,
.hbook-wrapper .hb-people-wrapper select:focus,
.hbook-wrapper .hb-detail-field:focus,
.hbook-wrapper input:focus,
.hbook-wrapper select:focus,
.hbook-wrapper textarea:focus {
  border-color: var(--alma-hb-clay) !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(154, 78, 44, 0.15) !important;
}
.hbook-wrapper .hb-search-button-wrapper input,
.hbook-wrapper input[type="submit"],
.hbook-wrapper .hb-button,
.hbook-wrapper .button-primary {
  background: var(--alma-hb-clay) !important;
  border: none !important;
  border-radius: 999px !important;
  color: #fff !important;
  font-weight: 700 !important;
  padding: 0.7rem 1.25rem !important;
  min-height: 44px;
  cursor: pointer;
  box-shadow: 0 6px 16px rgba(154, 78, 44, 0.25);
  transition: background 0.2s ease, transform 0.15s ease;
}
.hbook-wrapper .hb-search-button-wrapper input:hover,
.hbook-wrapper input[type="submit"]:hover,
.hbook-wrapper .hb-button:hover {
  background: var(--alma-hb-clay-dark) !important;
  transform: translateY(-1px);
}
.hb-datepick-popup-wrapper,
.hb-datepick-wrapper,
.hb-people-popup-wrapper {
  background: #fff !important;
  border: 1px solid var(--alma-hb-line) !important;
  border-radius: 14px !important;
  box-shadow: 0 16px 40px rgba(44, 36, 32, 0.16) !important;
  overflow: hidden;
  font-family: "Montserrat", "Segoe UI", sans-serif;
}
.hb-dp-cmd-wrapper a,
.hb-dp-cmd-close,
.hb-people-popup-wrapper-close,
a.hb-dp-cmd-close {
  background: var(--alma-hb-ink) !important;
  color: #fff !important;
  border-radius: 8px !important;
}
.hb-dp-cmd-wrapper a:hover,
.hb-dp-cmd-close:hover,
.hb-people-popup-wrapper-close:hover {
  background: var(--alma-hb-clay) !important;
}
.hb-day-available,
.hb-avail-caption-available {
  background: var(--alma-hb-avail) !important;
  color: var(--alma-hb-avail-text) !important;
}
.hb-day-taken-start:before,
.hb-day-taken-end:before,
.hb-day-fully-taken,
.hb-avail-caption-occupied {
  background: var(--alma-hb-busy) !important;
  color: var(--alma-hb-busy-text) !important;
}
.hb-dp-day-check-in,
.hb-dp-day-check-out {
  background: var(--alma-hb-select) !important;
  color: var(--alma-hb-ink) !important;
  font-weight: 700;
}
.hb-dp-day-past,
.hb-dp-day-closed,
.hb-dp-day-not-selectable {
  background: #f3f0ec !important;
  color: #a39890 !important;
}
.hb-datepick-legend {
  border-color: var(--alma-hb-line) !important;
  padding: 0.5rem 0.75rem;
  font-size: 0.8rem;
  color: var(--alma-hb-muted);
}
.hbook-wrapper .hb-accom,
.hbook-wrapper .hb-accom-list {
  background: #fff;
  border: 1px solid var(--alma-hb-line) !important;
  border-radius: var(--alma-hb-radius) !important;
  padding: 1rem 1.1rem !important;
}
.hbook-wrapper .hb-accom-selected {
  background: var(--alma-hb-sand) !important;
  border-color: var(--alma-hb-clay) !important;
}
.hbook-wrapper .hb-accom-price {
  color: var(--alma-hb-clay);
  font-family: "Montserrat", "Segoe UI", sans-serif;
}
.hbook-wrapper .hb-resa-summary-content {
  background: #fff !important;
  border: 1px solid var(--alma-hb-line) !important;
  border-radius: var(--alma-hb-radius) !important;
  padding: 1rem 1.15rem !important;
}
.hbook-wrapper .hb-booking-details-form,
.hbook-wrapper .hb-coupon-wrapper {
  background: #fff;
  border: 1px solid var(--alma-hb-line);
  border-radius: var(--alma-hb-radius);
  padding: 1rem 1.1rem;
  margin-top: 0.75rem;
}
.page-id-108 .entry-content > .wp-block-paragraph:first-of-type,
.post-108 .entry-content > .wp-block-paragraph:first-of-type {
  font-size: 1.05rem;
  color: var(--alma-hb-muted);
  max-width: 40rem;
}
@media (max-width: 768px) {
  .hbook-wrapper {
    padding: 1rem;
    border-radius: 12px;
  }
  .hbook-wrapper p.hb-check-dates-wrapper,
  .hbook-wrapper p.hb-people-wrapper,
  .hbook-wrapper p.hb-search-button-wrapper {
    float: none !important;
    width: 100% !important;
    margin-right: 0 !important;
  }
}

/* === alma-hb-refine-v2 === */
/* Texto del formulario un punto más grande */
.hbook-wrapper {
  font-size: 1.0625rem; /* ~17px si base 16 */
}
.hbook-wrapper .hb-search-form,
.hbook-wrapper .hb-check-dates-wrapper input,
.hbook-wrapper .hb-people-wrapper select,
.hbook-wrapper .hb-accom-number-wrapper select,
.hbook-wrapper .hb-search-button-wrapper input {
  font-size: 1.0625rem !important;
}
.hbook-wrapper .hb-check-dates-wrapper label,
.hbook-wrapper .hb-people-wrapper label,
.hbook-wrapper .hb-accom-number-wrapper label {
  font-size: 0.8rem !important;
}
.hbook-wrapper .hb-booking-search-form > p:first-child,
.hbook-wrapper .hb-search-form-title,
.hbook-wrapper h3,
.hbook-wrapper .hb-title {
  font-size: 0.95rem !important;
  letter-spacing: 0.04em;
}

/* Fechas más anchas horizontalmente */
.hbook-wrapper .hb-check-dates-wrapper {
  width: 26% !important;
  min-width: 9.5rem;
}
.hbook-wrapper .hb-people-wrapper {
  width: 12% !important;
}
.hbook-wrapper .hb-search-button-wrapper {
  width: 18% !important;
}
.hbook-wrapper .hb-search-form-no-children .hb-check-dates-wrapper,
.hbook-wrapper .hb-search-form-no-children .hb-people-wrapper,
.hbook-wrapper .hb-search-form-no-children .hb-search-button-wrapper {
  /* mantener proporciones amplias en fechas */
}
.hbook-wrapper .hb-search-form-no-children .hb-check-dates-wrapper {
  width: 27% !important;
}

/* Centrar texto en cajas blancas (horizontal + vertical) */
.hbook-wrapper .hb-check-dates-wrapper input,
.hbook-wrapper .hb-people-wrapper select,
.hbook-wrapper .hb-accom-number-wrapper select {
  text-align: center !important;
  text-align-last: center !important;
  line-height: 1.25 !important;
  display: flex !important; /* no aplica a input nativo; usamos line-height + height */
  height: 48px !important;
  min-height: 48px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  box-sizing: border-box !important;
}
/* select: centrar opción visible */
.hbook-wrapper .hb-people-wrapper select,
.hbook-wrapper .hb-accom-number-wrapper select {
  text-align: center !important;
  text-align-last: center !important;
  padding-left: 0.5rem !important;
  padding-right: 1.5rem !important;
}
.hbook-wrapper .hb-check-dates-wrapper input {
  padding-left: 0.5rem !important;
  padding-right: 0.5rem !important;
}

/* Calendario (v2 base): contraste; el layout real está en v4 */

/* Mayor contraste ocupado vs libre */
.hb-day-available,
.hb-avail-caption-available {
  background: #d8edd4 !important; /* verde más vivo */
  color: #1f3d1a !important;
  font-weight: 700 !important;
}
.hb-day-taken-start:before,
.hb-day-taken-end:before,
.hb-day-fully-taken,
.hb-avail-caption-occupied {
  background: #c45c4a !important; /* rojo terracota más marcado */
  color: #fff !important;
  font-weight: 700 !important;
}
.hb-day-taken-start,
.hb-day-taken-end,
.hb-dp-day.hb-day-fully-taken,
.hb-dp-day.hb-day-taken-start,
.hb-dp-day.hb-day-taken-end {
  color: #fff !important;
}
.hb-dp-day-check-in,
.hb-dp-day-check-out {
  background: #e8b86d !important;
  color: #2c2420 !important;
  font-weight: 800 !important;
  box-shadow: inset 0 0 0 2px #9a4e2c;
}
.hb-avail-caption-available,
.hb-avail-caption-occupied {
  padding: 0.2rem 0.45rem !important;
  border-radius: 4px;
  text-align: center !important;
}

/* Leyenda más clara */
.hb-datepick-legend {
  font-size: 0.88rem !important;
  text-align: center !important;
}

@media (max-width: 768px) {
  .hbook-wrapper .hb-check-dates-wrapper,
  .hbook-wrapper .hb-search-form-no-children .hb-check-dates-wrapper {
    width: 100% !important;
    min-width: 0;
  }
  body .hb-datepick-popup-wrapper,
  body .hb-datepick-wrapper,
  body .hb-availability-calendar {
    max-width: 100% !important;
  }
  body .hb-dp-month-row {
    flex-direction: column !important;
    gap: 0.5rem !important;
  }
  body .hb-dp-month {
    width: 100% !important;
    flex: none !important;
  }
  body .hb-dp-multi .hb-dp-month:not(.first) {
    border-left: none !important;
    border-top: 1px solid var(--alma-hb-line, #e2d6c8) !important;
    padding-left: 0.35rem !important;
    padding-top: 0.5rem !important;
  }
  body .hb-dp-week-header div {
    height: 2rem !important;
    line-height: 2rem !important;
    aspect-ratio: auto !important;
  }
  body .hb-dp-day {
    height: auto !important;
    aspect-ratio: 1 / 1 !important;
    font-size: 1rem !important;
  }
}

/* === alma-hb-refine-v3 === */
/* Título / textos del buscador un punto más grandes */
body .hbook-wrapper,
body .hbook-wrapper p,
body .hbook-wrapper label {
  font-size: 1.0625rem;
}
body .hbook-wrapper .hb-booking-search-form > p:first-child,
body .hbook-wrapper > p:first-child,
body .hbook-wrapper .hb-search-form p:first-child {
  font-size: 0.98rem !important;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #2c2420;
  margin: 0 0 0.85rem;
}
body .hbook-wrapper .hb-check-dates-wrapper label,
body .hbook-wrapper .hb-people-wrapper label {
  font-size: 0.82rem !important;
}
body .hbook-wrapper .hb-check-dates-wrapper input,
body .hbook-wrapper .hb-people-wrapper select,
body .hbook-wrapper .hb-search-button-wrapper input {
  font-size: 1.0625rem !important;
}

/* Cajas fecha más anchas + texto centrado H/V */
body .hbook-wrapper .hb-check-dates-wrapper {
  width: 27% !important;
  min-width: 10rem;
}
body .hbook-wrapper .hb-check-dates-wrapper input,
body .hbook-wrapper .hb-people-wrapper select {
  text-align: center !important;
  text-align-last: center !important;
  height: 50px !important;
  min-height: 50px !important;
  line-height: 50px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  padding-left: 0.4rem !important;
  padding-right: 0.4rem !important;
}

/* === alma-hb-refine-v4 ===
   Meses en horizontal (uno al lado del otro).
   NO tocar display del popup-wrapper (HBook usa .show/.hide). */
body .hb-datepick-popup-wrapper {
  width: max-content !important;
  max-width: min(100%, calc(100vw - 1.25rem)) !important;
  padding: 0.65rem 1.15rem 1.1rem !important;
  box-sizing: border-box !important;
}
/* Calendario de disponibilidad: mismo ancho que el contenido / imagen de reservas */
body .hb-datepick-wrapper,
body .hb-availability-calendar,
body .hbook-wrapper .hb-datepick-wrapper,
body .hbook-wrapper .hb-availability-calendar,
.page-id-108 .hb-availability-calendar,
.post-108 .hb-availability-calendar,
.page-id-108 .hb-datepick-wrapper,
.post-108 .hb-datepick-wrapper {
  padding: 0.75rem 1rem 1.15rem !important;
  box-sizing: border-box !important;
  max-width: 100% !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
body .hb-datepick-popup-wrapper .hb-datepick-popup {
  width: 100% !important;
  margin: 0 auto !important;
}
/* HBook JS pone un width fijo pequeño en .hb-availability-calendar-centered: forzar ancho completo */
body .hb-availability-calendar-wrapper,
body .hb-availability-calendar-centered,
.page-id-108 .hb-availability-calendar-wrapper,
.page-id-108 .hb-availability-calendar-centered,
.post-108 .hb-availability-calendar-wrapper,
.post-108 .hb-availability-calendar-centered {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box !important;
}
body .hb-datepick-legend {
  text-align: center !important;
  width: 100% !important;
  box-sizing: border-box !important;
}
/* Fila: octubre | noviembre — ocupan todo el ancho del cuadrado blanco */
body .hb-dp-month-row {
  float: none !important;
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: flex-start !important;
  justify-content: stretch !important;
  gap: 1rem !important;
  width: 100% !important;
  margin: 0 auto !important;
  border-top: none !important;
}
body .hb-dp-month {
  float: none !important;
  display: block !important;
  flex: 1 1 50% !important;
  width: 50% !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 0.5rem 0.5rem !important;
  box-sizing: border-box !important;
  border-left: none !important;
}
body .hb-datepick-wrapper {
  width: 100% !important;
}
body .hb-dp-multi .hb-dp-month:not(.first) {
  border-left: 1px solid var(--alma-hb-line, #e2d6c8) !important;
  padding-left: 0.65rem !important;
}
body .hb-dp-month-header {
  text-align: center !important;
  line-height: 2.85rem !important;
  font-size: 1.25rem !important;
}
body .hb-dp-week-header {
  font-size: 0.88rem !important;
}
body .hb-dp-week-header div,
body .hb-dp-day {
  float: left !important;
  width: 14.28% !important;
  min-width: 0 !important;
  max-width: none !important;
  height: auto !important;
  aspect-ratio: 1 / 1 !important; /* cuadrados al ensanchar el calendario */
  line-height: normal !important;
  padding: 2px !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  text-align: center !important;
  font-size: 1.15rem !important;
  font-weight: 700 !important;
}
body .hb-dp-week-header div {
  aspect-ratio: auto !important;
  height: 2.25rem !important;
  line-height: 2.25rem !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
body .hb-dp-day > a,
body .hb-dp-day > span {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 100% !important;
  width: 100% !important;
}
/* Ajuste overlays ocupado parcial al nuevo tamaño de celda */
body .hb-day-taken-start:before,
body .hb-day-taken-end:before {
  height: 120% !important;
  width: 140% !important;
}
body .hb-dp-cmd-wrapper a.hb-dp-cmd-prev {
  left: 0.65rem !important;
  top: 0.85rem !important;
}
body .hb-dp-cmd-wrapper a.hb-dp-cmd-next {
  right: 0.65rem !important;
  top: 0.85rem !important;
}

/* Contraste fuerte libre vs ocupado (gana a estilos inline de HBook) */
body .hb-day-available,
body .hb-avail-caption-available,
body .hb-dp-day.hb-day-available {
  background: #b7dfb0 !important;
  background-color: #b7dfb0 !important;
  color: #143318 !important;
}
body .hb-day-fully-taken,
body .hb-dp-day.hb-day-fully-taken,
body .hb-avail-caption-occupied {
  background: #b33a2b !important;
  background-color: #b33a2b !important;
  color: #ffffff !important;
}
body .hb-day-taken-start:before,
body .hb-day-taken-end:before,
body .hb-dp-day-past.hb-day-taken-start:before,
body .hb-dp-day-past.hb-day-taken-end:before,
body .hb-dp-day-past.hb-day-fully-taken,
body .hb-dp-day-closed.hb-day-taken-start:before,
body .hb-dp-day-closed.hb-day-taken-end:before,
body .hb-dp-day-closed.hb-day-fully-taken {
  background: #b33a2b !important;
  background-color: #b33a2b !important;
}
body .hb-day-taken-start,
body .hb-day-taken-end,
body .hb-dp-day.hb-day-taken-start,
body .hb-dp-day.hb-day-taken-end {
  color: #ffffff !important;
}
body .hb-dp-day-check-in,
body .hb-dp-day-check-out {
  background: #e5a84a !important;
  color: #1a1410 !important;
  box-shadow: inset 0 0 0 2px #7a3c22;
}

/* === alma-hb-refine-v5 === Tipografía del buscador más grande */
body .hbook-wrapper,
body .hbook-wrapper .hb-search-form,
body .hbook-wrapper .hb-booking-search-form {
  font-size: 1.125rem !important; /* 18px */
}
body .hbook-wrapper .hb-booking-search-form > p:first-child,
body .hbook-wrapper > p:first-child,
body .hbook-wrapper .hb-search-form > p:first-child,
body .hbook-wrapper .hb-search-form-title {
  font-size: 1.125rem !important;
  line-height: 1.35 !important;
  letter-spacing: 0.03em;
}
body .hbook-wrapper .hb-check-dates-wrapper label,
body .hbook-wrapper .hb-people-wrapper label,
body .hbook-wrapper .hb-accom-number-wrapper label,
body .hbook-wrapper label {
  font-size: 1rem !important; /* 16px — etiquetas legibles */
  letter-spacing: 0.04em;
  margin-bottom: 0.4rem !important;
}
body .hbook-wrapper .hb-check-dates-wrapper input,
body .hbook-wrapper .hb-people-wrapper select,
body .hbook-wrapper .hb-accom-number-wrapper select,
body .hbook-wrapper input.hb-check-in-date,
body .hbook-wrapper input.hb-check-out-date,
body .hbook-wrapper select.hb-adults,
body .hbook-wrapper select.hb-children {
  font-size: 1.2rem !important; /* ~19px fechas y números */
  font-weight: 600 !important;
  height: 54px !important;
  min-height: 54px !important;
  line-height: 54px !important;
}
body .hbook-wrapper .hb-search-button-wrapper input,
body .hbook-wrapper input[type="submit"].hb-search-button,
body .hbook-wrapper .hb-button {
  font-size: 1.15rem !important;
  font-weight: 700 !important;
  padding: 0.85rem 1.5rem !important;
  min-height: 52px !important;
}

/* === alma-hb-refine-v6 === Mensajes de error / sin resultado más grandes */
body .hbook-wrapper .hb-search-error,
body .hbook-wrapper p.hb-search-error,
body .hb-search-error,
body .hbook-wrapper .form-error,
body .hbook-wrapper .hb-confirm-error,
body .hbook-wrapper .hb-policies-error,
body .hbook-wrapper .hb-stripe-error,
body .hbook-wrapper .hb-coupon-error,
body .hbook-wrapper .hb-search-no-result,
body .hbook-wrapper p.hb-search-no-result {
  font-size: 1.2rem !important;
  line-height: 1.45 !important;
  font-weight: 700 !important;
  color: #b33a2b !important;
  margin: 0.85rem 0 0.35rem !important;
  padding: 0.65rem 0.85rem !important;
  background: #f8e8e4 !important;
  border: 1px solid #e2b4aa !important;
  border-radius: 10px !important;
  box-sizing: border-box !important;
}
body .hbook-wrapper .hb-search-no-result,
body .hbook-wrapper p.hb-search-no-result {
  color: #7a3c22 !important;
  background: #faf6f1 !important;
  border-color: #e2d6c8 !important;
}