/* ======================================================
   ICONOS
====================================================== */

/* Instagram usa fa-instagram (Font Awesome 4.4 de la plantilla). TikTok, el icono de
   Font Awesome 6 Brands: se carga solo brands.min.css, sin el CSS base, así que la
   fuente y el glifo se definen aquí (features/social.php, 2026-10-02). */
.social-icons .fa-brands {
  display: inline-block;
  font-family: "Font Awesome 6 Brands";
  font-style: normal;
  font-weight: 400;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
}
.social-icons .fa-tiktok::before {
  content: "\e07b";
}

/* ======================================================
   TOP BAR – CONTACTO / IDIOMAS / REDES - CONTROL RESPONSIVE REAL
   (Helix no lo maneja desde layout)
====================================================== */

/* Estilo base del top bar */
#sp-top-bar {
  background-color: rgba(65, 82, 112, 0.85);
}

/* ===============================
   TABLET Y MÓVIL (≤1199px), 2026-10-02
   Una sola línea: contacto a la izquierda; idioma (ES | EN) y redes a la derecha.
   Antes, las redes se ocultaban por debajo de 1200 px y el idioma en el móvil,
   así que desde el teléfono no se podía cambiar de idioma.
================================ */
@media (max-width: 1199px) {
  #sp-top-bar .row {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
  }
  #sp-top2 {
    flex: 1 1 auto;
    width: auto;
    min-width: 0;
  }
  #sp-top1,
  #sp-top3 {
    display: block !important;
    flex: 0 0 auto;
    width: auto;
    text-align: right;
  }
  #sp-top1 {
    margin-left: auto;
    padding-left: 10px;
  }
  #sp-top3 .social-icons {
    margin: 0 0 0 12px;
    white-space: nowrap;
  }
}

@media (max-width: 767px) {
  /* Solo el teléfono: el correo no cabe */
  #sp-top2 .sp-contact-email {
    display: none !important;
  }
  #sp-top2 {
    text-align: left;
  }
  #sp-top2 .sp-contact-info,
  #sp-top2 .sp-contact-info li,
  #sp-top2 .sp-contact-info a {
    white-space: nowrap;
  }
  #sp-top2 .sp-contact-info li {
    margin-right: 0;
  }
  #sp-top1 .lang-codes li + li::before {
    margin: 0 4px 0 0;
  }
  #sp-top3 .social-icons {
    margin-left: 8px;
  }
  #sp-top3 .social-icons > li {
    margin-left: 6px;
  }
}

/* ======================================================
   TOP BAR – CENTRADO VERTICAL IDIOMAS
====================================================== */

/* Altura y línea base del top bar */
#sp-top-bar {
  height: 36px;
  line-height: 36px;
}

/* Aplicar la misma línea a la columna de idiomas */
#sp-top1,
#sp-top1 .sp-column,
#sp-top1 .sp-module,
#sp-top1 .sp-module-content {
  line-height: 36px;
}

/* Evitar que la lista rompa la alineación */
#sp-top1 .lang-inline,
#sp-top1 .lang-inline li,
#sp-top1 .lang-inline a {
  line-height: 36px;
  vertical-align: middle;
}

/* ===============================
   HEADER - LOGO / MENU / RESERVAR
================================ */
#sp-header {
  background-color: rgba(65, 82, 112, 0.85);
}

/* ======================================================
   SLIDER HOME – OVERLAY Y TEXTO
====================================================== */

/* Overlay azul corporativo del slider */
.sppb-slideshow-fullwidth-item-bg::before,
.sppb-slideshow-fullwidth-item-bg::after {
  background-color: rgba(65, 82, 112, 0.42) !important;
}

/* Sombra sutil para el H1 del slider */
.sppb-cta-title {
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
}

/* ======================================================
   PAGE TITLE – PÁGINAS INTERNAS
====================================================== */

/* Overlay del header interno */
.sp-page-title::before {
  background-color: rgba(65, 82, 112, 0.48);
}

/* Título principal */
.sp-page-title h2 {
  color: #ffffff;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.35);
}

/* ===============================
   SELECTOR DE IDIOMA: ES | EN (2026-10-01)
================================ */
#sp-top1 .lang-codes li + li::before {
  content: "|";
  margin: 0 6px 0 1px;
  opacity: 0.6;
}
#sp-top1 .lang-codes li,
#sp-top1 .lang-codes li > a,
#sp-top1 .lang-codes li > span {
  display: inline-block;
  line-height: 36px;
  vertical-align: middle;
}
#sp-top1 .lang-codes .lang-active span {
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}


/* ======================================================
   BUSCADOR DE RESERVAS (Solidres, módulo de la portada), 2026-10-02
   Mismas alturas, bordes y alineación; botón en el azul corporativo.
====================================================== */
.solidres-module-checkavailability label {
  display: block;
  margin: 0 0 6px;
  color: #415270;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 18px;
  white-space: nowrap;
}
.solidres-module-checkavailability .datefield,
.solidres-module-checkavailability select {
  box-sizing: border-box;
  height: 42px;
  margin: 0;
  padding: 0 12px;
  border: 1px solid #c9cfd8;
  border-radius: 4px;
  background-color: #fff;
  box-shadow: none;
  color: #333;
  font-size: 14px;
}
.solidres-module-checkavailability .datefield {
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  white-space: nowrap;
}
.solidres-module-checkavailability .datefield .fa {
  margin-left: 8px;
  color: #415270;
}
.solidres-module-checkavailability .datefield:hover,
.solidres-module-checkavailability select:hover,
.solidres-module-checkavailability select:focus {
  border-color: #415270;
}
/* Rejilla (2026-10-03): la de Bootstrap 2 de Solidres dejaba huecos distintos entre
   campos (de 6 a 40 px) y no se apila en móvil. Flex con el mismo hueco en todo el
   buscador; todas las etiquetas a la misma altura, y los campos debajo. */
.solidres-module-checkavailability .row-fluid {
  display: flex;
  gap: 12px;
  align-items: flex-start;
}
/* El clearfix de Bootstrap 2 (::before/::after) contaría como elemento flex */
.solidres-module-checkavailability .row-fluid::before,
.solidres-module-checkavailability .row-fluid::after {
  display: none;
}
.solidres-module-checkavailability .row-fluid > [class*="span"] {
  flex: 1 1 0;
  float: none;
  width: auto;
  min-width: 0;
  margin: 0;
}
/* Fechas (span9 sin selector de habitaciones, span5 con él) y habitaciones */
.solidres-module-checkavailability .row-fluid > .span9:first-child {
  flex-grow: 3;
}
.solidres-module-checkavailability .row-fluid > .span5 {
  flex-grow: 2;
}
/* Habitaciones (span3) y, a su lado, adultos y niños de cada habitación (span9) */
.solidres-module-checkavailability .room_quantity {
  width: 100%;
}
.solidres-module-checkavailability .span5 .row-fluid > .span9 {
  flex-grow: 2.4;
}
/* Botón (span3 sin selector de habitaciones, span2 con él) */
.solidres-module-checkavailability .row-fluid > .span3:last-child,
.solidres-module-checkavailability .row-fluid > .span2 {
  flex: 0 0 150px;
}
/* «Habitación N»: solo el ancho del texto, alineado con los campos de su fila */
.solidres-module-checkavailability .room_num_row .row-fluid > .span4:first-child {
  flex: 0 0 auto;
  color: #415270;
  font-size: 13px;
  font-weight: 700;
  line-height: 42px;
  white-space: nowrap;
}
/* Habitaciones 2, 3…: una fila debajo de otra */
.solidres-module-checkavailability .span5 .span9 > .row-fluid + .row-fluid .room_num_row {
  margin-top: 8px;
}
.solidres-module-checkavailability .datefield .fa {
  float: none;
  margin-top: 0; /* Solidres lo bajaba 3 px */
}
.solidres-module-checkavailability button[type="submit"] {
  height: 42px;
  margin: 0;
  border: 0;
  border-radius: 4px;
  background: #415270;
  box-shadow: none;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-shadow: none;
}
.solidres-module-checkavailability button[type="submit"]:hover,
.solidres-module-checkavailability button[type="submit"]:focus {
  background: #2f3d55;
  color: #fff;
}
/* Móvil y tableta: fechas en dos columnas; habitaciones, adultos y niños en una fila,
   con las etiquetas a la misma altura; botón a lo ancho. */
@media (max-width: 991px) {
  .solidres-module-checkavailability .row-fluid {
    flex-wrap: wrap;
    gap: 10px;
  }
  .solidres-module-checkavailability .row-fluid > .span9:first-child,
  .solidres-module-checkavailability .row-fluid > .span5,
  .solidres-module-checkavailability .row-fluid > .span3:last-child,
  .solidres-module-checkavailability .row-fluid > .span2 {
    flex: 1 1 100%;
  }
  .solidres-module-checkavailability .span5 .row-fluid > .span9 {
    flex: 2 1 0;
  }
  /* «Habitación 1» empujaba adultos y niños por debajo de «Habitaciones»: se oculta
     la de la primera; las siguientes van como título encima de su fila. */
  .solidres-module-checkavailability #room_num_row_1 .row-fluid > .span4:first-child {
    display: none;
  }
  .solidres-module-checkavailability .room_num_row .row-fluid > .span4:first-child {
    flex: 1 1 100%;
    line-height: 18px;
  }
  .solidres-module-checkavailability .room_num_row .span4:first-child label,
  .solidres-module-checkavailability .action label {
    display: none;
  }
  .solidres-module-checkavailability .datefield {
    padding: 0 8px;
    font-size: 13px;
  }
  .solidres-module-checkavailability select {
    width: 100%;
  }
  .solidres-module-checkavailability button[type="submit"] {
    width: 100%;
  }
}


/* ======================================================
   CABECERA EN TABLETA Y MÓVIL (≤1199px), 2026-10-02
   Las columnas usan col-2/col-8 (Bootstrap 4), que esta plantilla (Bootstrap 3)
   no define: por debajo de 1200 px cada una ocupaba todo el ancho, el icono del
   menú caía debajo de la cabecera y «Reservación» se montaba sobre el menú.
====================================================== */
@media (max-width: 1199px) {
  #sp-header > .container > .row {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    height: 100%;
  }
  #sp-header > .container > .row::before,
  #sp-header > .container > .row::after {
    display: none;
  }
  #sp-header > .container > .row > [id^="sp-"] {
    float: none;
    width: auto;
    min-width: 0;
  }
  #sp-logo {
    flex: 0 0 auto;
  }
  #sp-menu {
    flex: 1 1 auto;
  }
  #sp-reservation {
    flex: 0 0 auto;
    position: static;
  }
  #sp-reservation ul.menu {
    float: none;
    margin: 0;
  }
  #sp-reservation ul.menu li a,
  .menu-fixed#sp-header #sp-reservation ul.menu li a {
    margin-top: 0;
  }
  #sp-reservation .top-right-menu {
    position: static;
  }
}
/* Sin menú desplegado (≤991px): logo, botón de reservación y el icono del menú al final */
@media (max-width: 991px) {
  #sp-menu {
    order: 3;
    flex: 0 0 auto;
    margin-left: 12px;
  }
  #sp-reservation {
    margin-left: auto;
  }
  #offcanvas-toggler {
    float: none;
    display: block;
    height: auto;
    padding: 6px 0;
    line-height: 1;
  }
  #offcanvas-toggler > .fa {
    color: #fff;
    font-size: 22px;
  }
  /* Centrado vertical del icono ≡ con el logo y el botón (2026-10-03) */
  #sp-menu,
  #sp-menu > .sp-column,
  #sp-menu .sp-megamenu-wrapper {
    display: flex;
    align-items: center;
    height: 100%;
  }
  #offcanvas-toggler.visible-xs {
    display: flex !important;
    align-items: center;
    height: auto !important;
    padding: 6px 0 !important;
    line-height: 1 !important;
  }
  #offcanvas-toggler > .fa {
    margin: 0; /* la plantilla le daba 5 px arriba y 27 px abajo */
    line-height: 1;
  }
  /* El megamenú no cabe en tableta: se usa el menú lateral, como en el móvil */
  #sp-menu .sp-megamenu-parent {
    display: none !important;
  }
  #offcanvas-toggler.visible-xs {
    display: flex !important;
  }
}


/* ======================================================
   PIE DE PÁGINA (features/footer.php), 2026-10-02
   Fondo azul corporativo, logo en blanco, contacto y copyright del año actual.
   El módulo antiguo «Bottom-logo» (sp-bottom) se oculta; db/005 lo despublica.
====================================================== */
#sp-bottom {
  display: none;
}
/* "html body" gana al estilo en línea que genera Helix3 (fondo blanco del maquetador) */
html body #sp-footer {
  padding: 36px 0 24px;
  background: #2f3d55;
  color: #e6eaf0;
  text-align: left;
}
#sp-footer1 {
  float: none;
  width: 100%;
}
.hl-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 20px 40px;
}
.hl-footer-logo img {
  display: block;
  width: auto;
  height: 60px;
}
.hl-footer-contact {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 28px;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 14px;
}
.hl-footer-contact li {
  white-space: nowrap;
}
.hl-footer-contact .fa {
  width: 16px;
  margin-right: 6px;
  color: #c9a27c;
  text-align: center;
}
#sp-footer .hl-footer a {
  color: #fff;
}
#sp-footer .hl-footer a:hover,
#sp-footer .hl-footer a:focus {
  color: #c9a27c;
  text-decoration: none;
}
#sp-footer .sp-copyright {
  flex-basis: 100%;
  margin: 8px 0 0;
  padding-top: 16px;
  border-top: 1px solid rgba(255, 255, 255, 0.15);
  color: #b8c0cc;
  font-size: 12px;
  letter-spacing: 0.03em;
  text-align: center;
  text-transform: none;
}
@media (max-width: 767px) {
  .hl-footer {
    flex-direction: column;
    text-align: center;
  }
  .hl-footer-contact {
    flex-direction: column;
    align-items: center;
  }
  .hl-footer-contact li {
    white-space: normal;
  }
}


/* ======================================================
   CABECERA: LOGO, MENÚ ACTIVO Y ALINEACIÓN (2026-10-03)
====================================================== */
/* Logo en blanco (features/logo.php): 44 px de alto; 36 px con la cabecera fija */
#sp-header .logo h1 {
  line-height: 0;
}
#sp-header .logo img.hl-logo-blanco {
  display: block;
  width: auto;
  height: 44px;
}
.menu-fixed#sp-header .logo img.hl-logo-blanco {
  width: auto;
  height: 36px;
}
@media (max-width: 767px) {
  #sp-header .logo img.hl-logo-blanco {
    height: 38px;
  }
}

/* Menú activo y al pasar el ratón: dorado con línea inferior. El preset los ponía en
   el mismo azul de la cabecera (#415270) y no se distinguían. */
html body #sp-header .sp-megamenu-parent > li.active > a,
html body #sp-header .sp-megamenu-parent > li:hover > a,
html body #sp-header .sp-megamenu-parent > li > a:focus {
  /* !important: el preset usa .has-slideshow#sp-header, con más clases */
  color: #e2c39f !important;
}
html body #sp-header .sp-megamenu-parent > li > a {
  position: relative;
}
html body #sp-header .sp-megamenu-parent > li.active > a::after {
  content: "";
  position: absolute;
  right: 15px;
  bottom: 18px;
  left: 15px;
  height: 2px;
  background: #e2c39f;
}
html body .menu-fixed#sp-header .sp-megamenu-parent > li.active > a::after {
  bottom: 14px;
}
/* Menú lateral (móvil y tableta): elemento activo también en dorado */
.offcanvas-menu .offcanvas-inner ul.menu > li.active > a,
.offcanvas-menu .offcanvas-inner ul.menu > li.current > a {
  color: #c9a27c;
}

/* Iconos sociales alineados con el borde derecho del botón «Reservación» */
#sp-top3 .social-icons {
  margin-right: 0;
}
#sp-top3 .social-icons > li:last-child {
  margin-right: 0;
}


/* ======================================================
   BARRA SUPERIOR: 40 px con el contenido centrado (2026-10-03)
   Tenía 36 px de alto más 5 px de relleno arriba: el contenido (37 px) se salía
   por abajo y el texto quedaba a 4 px del menú, porque la cabecera empieza a 35 px.
====================================================== */
html body #sp-top-bar {
  height: 40px;
  padding: 0;
  line-height: 40px;
}
#sp-top-bar > .container,
#sp-top-bar > .container > .row {
  height: 100%;
}
#sp-top-bar > .container > .row {
  display: flex;
  align-items: center;
}
#sp-top-bar > .container > .row::before,
#sp-top-bar > .container > .row::after {
  display: none;
}
#sp-top-bar .sp-column,
#sp-top-bar .sp-module,
#sp-top-bar .sp-module-content,
#sp-top1 .lang-inline,
#sp-top1 .lang-inline li,
#sp-top1 .lang-inline a,
#sp-top1 .lang-codes li > span,
#sp-top2 .sp-contact-info,
#sp-top3 .social-icons {
  margin-top: 0;
  margin-bottom: 0;
  line-height: 40px;
}
#sp-top-bar .sp-module {
  margin-top: 0;
}
html body .has-slideshow#sp-header {
  top: 40px;
}


/* ======================================================
   TÍTULOS QUE NO CABÍAN EN SU COLUMNA (2026-10-03)
   Palabras largas («Localización», «Recomendaciones», «Surroundings») más anchas
   que la columna en tableta o móvil: se montaban sobre el mapa o se salían.
====================================================== */
.sppb-addon-title,
.sppb-title-heading,
.sppb-feature-box-title,
.sppb-carousel-pro-text h2 {
  overflow-wrap: break-word;
}
@media (min-width: 768px) and (max-width: 991px) {
  html body .sppb-col-sm-3 .sppb-addon-title,
  html body .sppb-col-sm-4 .sppb-addon-title {
    font-size: 20px;
  }
  html body .sppb-col-sm-3 .sppb-feature-box-title {
    font-size: 19px;
  }
}
@media (max-width: 767px) {
  html body .sppb-section-title .sppb-title-heading {
    font-size: 28px;
  }
  html body .sppb-carousel-pro-text h2 {
    font-size: 30px;
  }
}


/* ======================================================
   MISMA CABECERA EN TODAS LAS PÁGINAS (2026-10-03)
   La plantilla tenía dos estilos: con slideshow (portada) barras transparentes
   o negras sobre la foto y menú blanco; sin slideshow, fondo azul pero texto del
   menú negro (casi ilegible). Ahora, en todas: barra superior azul oscuro,
   barra de menú azul corporativo, texto blanco y activo en dorado; también con
   la cabecera fija. En la portada siguen superpuestas a la foto.
====================================================== */
html body #sp-top-bar,
html body .has-slideshow#sp-top-bar {
  background-color: rgba(47, 61, 85, 0.92);
  color: #fff;
}
/* Barra de menú en negro con transparencia, como pidió el cliente (no quiere azul en el
   menú). 75 %: sobre la foto de la portada y sobre el fondo blanco de las páginas
   interiores se ve igual de oscura y el texto blanco se lee. */
html body #sp-header,
html body .has-slideshow#sp-header {
  background-color: rgba(0, 0, 0, 0.75);
}
html body .menu-fixed#sp-header,
html body .has-slideshow.menu-fixed#sp-header {
  background-color: rgba(0, 0, 0, 0.9) !important; /* casi opaca: el contenido no se lee por detrás */
}
html body #sp-header .sp-megamenu-parent > li > a,
html body .has-slideshow#sp-header .sp-megamenu-parent > li > a {
  color: #fff;
}


/* Espacio antes del pie (2026-10-03). El módulo del logo antiguo (sp-bottom, ahora
   oculto) hacía de separador; sin él, formularios, botones y mapas tocaban el pie. */
html body #sp-footer {
  margin-top: 48px;
}
@media (max-width: 767px) {
  html body #sp-footer {
    margin-top: 32px;
  }
}


/* Botón «Reservación»: dorado, para que destaque sobre la barra azul (antes era
   del mismo azul que la barra y no se distinguía como botón). */
html body #sp-reservation ul.menu li a,
html body .menu-fixed#sp-header #sp-reservation ul.menu li a {
  background-color: #c9a27c;
  color: #1f2a3c;
  font-weight: 700;
}
html body #sp-reservation ul.menu li a:hover,
html body #sp-reservation ul.menu li a:focus,
html body #sp-reservation ul.menu li.active > a {
  background-color: #e2c39f;
  color: #1f2a3c;
}


/* ======================================================
   TÍTULOS SOBRE FOTOS OSCURAS E ICONOS DE CONTACTO (2026-10-03)
   Los títulos iban en azul oscuro (#415270) sobre fotos oscuras y no se leían.
   Blanco con sombra suave: cabeceras de las páginas interiores (sp-page-title),
   título del slideshow de la portada y secciones con foto «_black» de SP Page
   Builder (Recomendaciones, Memberships…). «Club Aqua» se deja igual: su foto
   es clara y velada.
====================================================== */
html body #sp-page-title .sp-page-title h2,
html body #sp-page-title .sp-page-title h3,
html body .resort-slider .sppb-cta-title,
html body .sppb-section[style*="_black"] .sppb-title-heading,
html body #sp-page-builder .sppb-section[style*="_black"] .sppb-section-title .sppb-title-heading,
html body .sppb-section[style*="_black"] .sppb-title-subheading,
html body .sppb-section[style*="_black"] .sppb-feature-box-title,
html body .sppb-section[style*="_black"] .sppb-addon-title,
html body .sppb-section[style*="_black"] .sppb-feature-box-title a {
  color: #fff;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.65), 0 1px 2px rgba(0, 0, 0, 0.5);
}

/* Iconos de teléfono y correo de la barra superior: dorados (eran azules sobre la
   barra azul oscuro y no se veían), como los del pie. */
#sp-top-bar .sp-contact-info .fa {
  color: #c9a27c;
}

/* ======================================================
   CABECERA SOBRE LA FOTO EN TODAS LAS PÁGINAS (2026-10-03)
   En la portada la cabecera va encima del slideshow; en las interiores iba antes de
   la foto del título, sobre fondo blanco, y el negro al 75 % se veía gris. Ahora las
   dos barras van superpuestas en todas las páginas (40 + 70 = 110 px) y la foto del
   título baja su texto esos 110 px. Las páginas sin foto de título ni slideshow
   (Localización y Contáctanos) dejan el hueco arriba para que nada quede tapado.
   La barra superior pasa también a negro transparente, igual que el menú.
====================================================== */
html body #sp-top-bar,
html body .has-slideshow#sp-top-bar {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  background-color: rgba(0, 0, 0, 0.75);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
html body #sp-header {
  position: absolute;
  top: 40px;
  left: 0;
}
html body #sp-title .sp-page-title {
  padding-top: 260px; /* 150 px de la plantilla + 110 px de la cabecera */
}
@media (max-width: 480px) {
  html body #sp-title .sp-page-title {
    padding-top: 190px; /* 80 + 110 */
  }
}
html body:not(:has(.sp-page-title)):not(:has(.sppb-slider-wrapper)) .body-innerwrapper {
  padding-top: 110px;
}
/* Sin foto detrás, el negro al 75 % sobre blanco se ve gris: casi opaco en esas páginas. */
html body:not(:has(.sp-page-title)):not(:has(.sppb-slider-wrapper)) #sp-top-bar,
html body:not(:has(.sp-page-title)):not(:has(.sppb-slider-wrapper)) #sp-header {
  background-color: rgba(0, 0, 0, 0.9);
}

/* ======================================================
   MENOS RELLENO EN PÁGINAS DE COMPONENTES EN MÓVIL Y TABLETA (2026-10-03)
   La plantilla pone 100 px arriba y abajo del contenido de Solidres (Habitaciones),
   Easybook (Testimonios) y artículos; en el móvil dejaba un hueco en blanco de casi
   media pantalla entre la foto del título y el contenido.
====================================================== */
@media (max-width: 991px) {
  html body #sp-main-body {
    padding: 60px 0;
  }
  html body.com-sppagebuilder #sp-main-body {
    padding: 0;
  }
}
@media (max-width: 767px) {
  html body #sp-main-body {
    padding: 36px 0 12px;
  }
  html body.com-sppagebuilder #sp-main-body {
    padding: 0;
  }
}

/* Habitaciones (Solidres): dos filas vacías entre los datos del hotel y el cuadro de
   reserva ocupaban 30 px cada una (alto mínimo de .row-fluid y .span12), más 50 px de margen. */
#solidres .reservation_asset_item > .row-fluid:not(:has(.span12 *)),
#solidres .reservation_asset_item > .row-fluid:not(:has(.span12 *)) > .span12 {
  min-height: 0;
}
@media (max-width: 767px) {
  #solidres .wizard {
    margin-top: 24px;
  }
}

/* Contáctanos y Localización: formulario sobre la foto actual del lobby (petición del cliente, 2026).
   La foto se oscurece para que el título y los campos se lean. */
html body #sp-page-builder .sppb-section.hl-contacto {
  position: relative;
}
html body #sp-page-builder .sppb-section.hl-contacto::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: rgba(0, 0, 0, 0.55);
  pointer-events: none;
}
html body #sp-page-builder .sppb-section.hl-contacto > .sppb-container-inner,
html body #sp-page-builder .sppb-section.hl-contacto > .sppb-row-container {
  position: relative;
}
html body #sp-page-builder .sppb-section.hl-contacto .sppb-title-heading,
html body #sp-page-builder .sppb-section.hl-contacto .sppb-section-title .sppb-title-heading {
  color: #fff;
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.6);
}
