/*
 * Correcciones de CSS al original (docs/correcciones.md). Hoja escrita a mano: las demás de app/styles/ las genera
 * scripts/base/build-css.py y se sobrescriben. La importan los dos layouts raíz después de shared.css.
 */

/*
 * Corrección 38: producción tiene scroll horizontal. Lo provocan los encabezados `header_main_text-27/28/29` de `/` y
 * `/en` (ancho 100 % + `margin-right: 20px`), `spacer_medium-8` del newsletter (945 px fijos) y la flecha derecha del
 * carrusel de reviews de `/habitaciones`. `clip` recorta sin crear un contenedor de scroll (no rompe `position:
 * sticky`), y a scroll 0 se ve igual que producción.
 */
html,
body {
  overflow-x: clip;
}

/*
 * Barra de reserva fija (widget de webflow.abt.axovia.mx en #booking-engine): la píldora (54 px) queda a 10 px del borde
 * inferior de la ventana (antes 28: `bottom-4` + 12 px de padding). El espaciador bajo el pie (`div-block-62`, que solo
 * envuelve al motor, y el propio `#booking-engine`, que también medía 100 px) mide la píldora + 20 px, para que al
 * final de la página la barra quede centrada en ese espacio.
 */
#booking-engine .booking-container {
  bottom: 10px;
  padding-bottom: 0;
}

.div-block-62,
.div-block-62 > #booking-engine {
  height: 74px;
}

/*
 * Slider principal de `/`, `/en`, `/offers` y `/offers-out-en`: ocupa la ventana debajo del encabezado fijo (antes
 * 780 px fijos, 570 en móvil, y el encabezado tapaba la parte de arriba). El contenedor es relativo y recorta; cada
 * nivel del slider de Webflow hereda su alto (quitando los `max-height`) y la imagen va absoluta, centrada y en `cover`.
 * `--nav-h` es el alto del encabezado: aquí el valor del primer pintado, MainSliderNavGuard pone el medido. La misma
 * isla agrega `nav-lock` para que IX2 no oculte el encabezado mientras el hueco de arriba del slider siga a la vista.
 */
:root {
  --nav-h: 133px;
}

@media screen and (max-width: 991px) {
  :root {
    --nav-h: 100px;
  }
}

.header-wrapper.nav-lock {
  transform: none !important;
}

.cms-main-slider {
  position: relative;
  width: 100%;
  height: calc(100vh - var(--nav-h));
  margin-top: var(--nav-h);
  overflow: hidden;
}

.cms-main-slider .ms-container,
.cms-main-slider .w-slider,
.cms-main-slider .w-slider-mask,
.cms-main-slider .w-slide,
.cms-main-slider .w-dyn-item,
.cms-main-slider .ms-content {
  height: 100%;
  max-height: none;
}

.cms-main-slider .ms-content {
  position: relative;
  overflow: hidden;
}

.cms-main-slider .main-slider-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/*
 * Encabezado con imagen de las páginas internas (`section.hero_slider`: hotel, habitaciones, rooms, destino,
 * restaurante, contacto y los detalles de habitación, oferta y blog): mismo trato que el slider principal (antes 780 px
 * fijos, 570 en móvil, tapado por el encabezado). `.show` es la copia oculta de `/en` y `/offers`: no se toca.
 * El título (`div-block-55`) ya es absoluto dentro del wrapper y conserva su posición.
 */
.hero_slider:not(.show) {
  height: calc(100vh - var(--nav-h));
  margin-top: var(--nav-h);
  overflow: hidden;
}

.hero_slider:not(.show) .main-slider-wrapper {
  height: 100%;
  overflow: hidden;
}

.hero_slider:not(.show) .main-slider-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  object-fit: cover;
  object-position: center;
}

/*
 * Oferta destacada de /offers y /offers-out-en: con `short_description` el texto queda corto y la imagen (9:16) estiraba
 * la tarjeta a ~800 px. El contenedor mantiene la proporción con tope de 600 px y recorta arriba y abajo; la imagen va
 * absoluta, centrada y en `cover`. Los textos y botones quedan centrados verticalmente respecto de la imagen.
 */
#offer-highlight-list .div-block-48 {
  align-items: center;
}

.foto-que-hacer.offer-highlight-media {
  position: relative;
  overflow: hidden;
  flex-shrink: 0;
  height: auto;
  aspect-ratio: 9 / 16;
  max-height: 600px;
}

.offer-highlight-media-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

@font-face {
font-family: 'Montserrat';
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
src: url(/_next/static/media/904be59b21bd51cb.woff2) format('woff2');
font-display: auto;
font-weight: 100 900;
font-style: normal;
}

@font-face {
font-family: 'Montserrat';
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
src: url(/_next/static/media/2fb5d94d8dca0cc5.woff2) format('woff2');
font-display: auto;
font-weight: 100 900;
font-style: italic;
}.__className_e9ecf4 {font-family: 'Montserrat'
}

@font-face {
font-family: 'Montserrat Alternates';
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
src: url(/_next/static/media/a56537cf24ce9903.woff2) format('woff2');
font-display: auto;
font-weight: 300;
font-style: normal;
}

@font-face {
font-family: 'Montserrat Alternates';
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
src: url(/_next/static/media/9f0a0c474f8375fe.woff2) format('woff2');
font-display: auto;
font-weight: 400;
font-style: normal;
}

@font-face {
font-family: 'Montserrat Alternates';
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
src: url(/_next/static/media/dcc593aea1eca373.woff2) format('woff2');
font-display: auto;
font-weight: 500;
font-style: normal;
}

@font-face {
font-family: 'Montserrat Alternates';
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
src: url(/_next/static/media/3b2357b09643eafd.woff2) format('woff2');
font-display: auto;
font-weight: 600;
font-style: normal;
}

@font-face {
font-family: 'Montserrat Alternates';
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
src: url(/_next/static/media/56e748dc30abd173.woff2) format('woff2');
font-display: auto;
font-weight: 700;
font-style: normal;
}.__className_730f3d {font-family: 'Montserrat Alternates'
}

