/** Framework section - paddings **/

/* variables (edit here)*/

:root {
    /* Global Padding Variables - Editable */
    /* Left and Right Padding All /Sections/Containers*/
    --fluid-side-padding-min: 1.25rem; /* 20px */
    --fluid-side-padding-max: 7.5rem;   /* 120px */

    /* Top and Bottom Padding All Containers*/
    --section-xxl-padding-min: 9.375rem; /* 150px */
    --section-xxl-padding-max: 10rem; /* 160px */ 
  
    --section-xl-padding-min: 6.875rem; /* 110px */
    --section-xl-padding-max: 7.5rem; /* 120px */
  
    --section-l-padding-min: 5.625rem; /* 90px */
    --section-l-padding-max: 6.25rem; /* 100px */
  
    --section-m-padding-min: 2.5rem; /* 80px */
    --section-m-padding-max: 5rem; /* 80px */
  
    --section-s-padding-min: 3.75rem; /* 60px */
    --section-s-padding-max: 3.75rem; /* 60px */
  
    --section-xs-padding-min: 2.5rem; /* 40px */
    --section-xs-padding-max: 2.5rem; /* 40px */
  
    --section-xxs-padding-min: 1.5rem; /* 24px */
    --section-xxs-padding-max: 1.5rem; /* 24px */
    
    --section-header-padding-min: 0.65rem; /* 10px */
    --section-header-padding-max: 0.65rem; /* 10px */

  
    /* Hero Sections Height Variable */
    --section-hero-height: 80vh; /* 100% the screen height */
  
    /* Offset Padding for Overlay Headers */
    --section-offset-header: 80px; /* Adjust to the overlay header's negative margin */

    /* Width For Narrow Sections*/
    --section-narrow: 62.5rem; /* 1000px */
    --section-narrow-xs: 45rem; /* 720px */
  }


/* CSS Template (do not edit below) */
  
  
  /* Section/Container Padding - Fluid Variants */
  .section-xxl {
    padding-top: clamp(var(--section-xxl-padding-min), 1.087vw + 9.13rem, var(--section-xxl-padding-max));
    padding-bottom: clamp(var(--section-xxl-padding-min), 1.087vw + 9.13rem, var(--section-xxl-padding-max));
    padding-left: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max))!important;
    padding-right: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max))!important;
  }
  
  .section-xl {
    padding-top: clamp(var(--section-xl-padding-min), 1.087vw + 6.63rem, var(--section-xl-padding-max));
    padding-bottom: clamp(var(--section-xl-padding-min), 1.087vw + 6.63rem, var(--section-xl-padding-max));
    padding-left: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max))!important;
    padding-right: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max))!important;
  }
  
  .section-l {
    padding-top: clamp(var(--section-l-padding-min), 1.087vw + 5.38rem, var(--section-l-padding-max));
    padding-bottom: clamp(var(--section-l-padding-min), 1.087vw + 5.38rem, var(--section-l-padding-max));
    padding-left: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max))!important;
    padding-right: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max))!important;
  }
  
  .section-m {
  padding-top: clamp(var(--section-m-padding-min), 4.348vw + 0.87rem, var(--section-m-padding-max));
  padding-bottom: clamp(var(--section-m-padding-min), 4.348vw + 0.87rem, var(--section-m-padding-max));
  padding-left: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max))!important;
  padding-right: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max))!important;
}
  
  .section-s {
    padding-top: clamp(var(--section-s-padding-min), 0vw + 3.75rem, var(--section-s-padding-max));
    padding-bottom: clamp(var(--section-s-padding-min), 0vw + 3.75rem, var(--section-s-padding-max));
    padding-left: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max))!important;
    padding-right: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max))!important;
  }
  
  .section-xs {
    padding-top: clamp(var(--section-xs-padding-min), 0vw + 2.5rem, var(--section-xs-padding-max));
    padding-bottom: clamp(var(--section-xs-padding-min), 0vw + 2.5rem, var(--section-xs-padding-max));
    padding-left: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max))!important;
    padding-right: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max))!important;
  }
  
  .section-xxs {
    padding-top: clamp(var(--section-xxs-padding-min), 0vw + 1.5rem, var(--section-xxs-padding-max));
    padding-bottom: clamp(var(--section-xxs-padding-min), 0vw + 1.5rem, var(--section-xxs-padding-max));
    padding-left: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max))!important;
    padding-right: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max))!important;
  }
  
  .section-header {
    padding-top: clamp(var(--section-header-padding-min), 0vw + 1.25rem, var(--section-header-padding-max));
    padding-bottom: clamp(var(--section-header-padding-min), 0vw + 1.25rem, var(--section-header-padding-max));
    padding-left: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max))!important;
    padding-right: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max))!important;
  }

  .section-ha-hero {
    padding-top: 0;
    padding-bottom: 0;
    padding-left: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max))!important;
    padding-right: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max))!important;
  }
  
  /* Hero Container/Sections Height */
  .section-hero {
    min-height: var(--section-hero-height)!important;
  }

  .section-hero .e-con-inner {
    justify-content: center!important;
}
  
  /* Full Width Sections - No Side Padding */

  .section-full div {
    max-width: 100%!important;
  }
  

  /* Narrow Sections */
  .section-narrow .e-con-inner {
    max-width: var(--section-narrow)!important;
  }

  .section-narrow-xs .e-con-inner {
    max-width: var(--section-narrow-xs)!important;
  }


  /* Offset Padding for Overlay Headers */
  .section-offset {
    padding-top: calc(var(--section-offset-header) + var(--section-xxl-padding-min));
  }


/** ARREGLOS BUGS 
ELEMENTOR ****/
/* Remove las p margin botoom */
.elementor-widget-text-editor p:last-child {
    margin-bottom: 0px !important;
}

/* Elimina el line-height global en los wrappers de iconos */
.elementor-icon-wrapper {
    line-height: 0 !important;
}

/* Asegura que el icono esté alineado al centro verticalmente */
.elementor-icon {
    vertical-align: middle !important;
}

/* Opcional: Si usas Listas de Iconos, esto ajusta su alineación */
.elementor-icon-list-icon {
    line-height: 1 !important;
    display: flex;
    align-items: center;
}

/* Fill svgs */
.elementor-button[type="submit"] svg * {
    fill: none !important;
}

/* CSS optimizado para sticky sin parpadeos */

.elementor-sticky {
    transition: margin-top 0.3s cubic-bezier(0.4, 0, 0.2, 1); /* Transición más suave */
    will-change: margin-top; /* Optimización de rendering */
}

.elementor-section, 
.elementor-container {
    overflow: visible !important;
}

/* Opcional: reducir motion si el usuario lo prefiere */
@media (prefers-reduced-motion: reduce) {
    .elementor-sticky {
        transition: none;
    }
}

/* Linkedin buttons en equipo */
/* Desplazar solo la flecha al hover del contenedor */
.linkedin-button:hover .elementor-icon:last-child {
  transform: translateX(0.325rem);
}

.linkedin-button .elementor-icon {
  transition: transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1); /* bounce suave */
}

/* Buttons */ 
/* Centrado vertical del texto con el icono */
.elementor-button-text {
  display: inline-block;
  align-self: center;
}

/* Desplazar la flecha al hover */
.elementor-button:hover .elementor-button-icon {
  transform: translateX(0.325rem);
}

.elementor-button .elementor-button-icon {
  transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Tamaño de la flecha proporcional al texto */
.elementor-button .elementor-button-icon svg {
  width: 1.5em;
  height: auto;
}

/* Botón descarga — flecha hacia abajo */
.elementor-element.btn-descarga .elementor-button:hover .elementor-button-icon {
    transform: translateY(0.2rem); /* ← AJUSTABLE */
}

/* Blog */
.contenido h1, .contenido h2, .contenido h3, .contenido h4, .contenido h5, .contenido h6  {
  margin:1.2em 0 0.6em 0;
  /*color: var( --e-global-color-text ) !important;*/
}

/* Carrusel soluciones */
.carrusel-card .elementor-widget-icon-box{
  flex: 1;
  display: flex;
  flex-direction: column;  
}

/* =============================================
   TARJETAS HOTEL — FLIP AL CLIC
   ============================================= */

.tarjeta-hotel {
    position: relative;
    overflow: hidden;
    cursor: pointer;
}

.tarjeta-hotel .cara-trasera {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.4s ease-in-out;
    z-index: 10;
}

.tarjeta-hotel.activa .cara-trasera {
    opacity: 1;
    pointer-events: auto;
}

/* La SECCIÓN que contiene el carrusel */
.seccion-portfolio {
    overflow: clip !important;
}

/* Timeline el grupo*/
.carrusel-timeline,
.carrusel-timeline .elementor-widget-container,
.carrusel-timeline .swiper,
.carrusel-timeline .swiper-wrapper {
    overflow: visible !important;
}

/* El widget del carrusel puede desbordar */
.carrusel-hoteles,
.carrusel-hoteles .elementor-widget-container,
.carrusel-hoteles .swiper,
.carrusel-hoteles .swiper-wrapper {
    overflow: visible !important;
}

/* FIX: 4 slides en widescreen (>1920px) no necesario si usamos el js de chatgpt */
/*@media (min-width: 1920px) {
    .carrusel-hoteles .swiper-slide {
        width: calc(25% - var(--gap, 20px)) !important;
    }
     .carrusel-timeline .swiper-slide {
        width: calc(25% - var(--gap, 20px)) !important;
    }
    
}*/



/* Filtros portfolio */
/* Icono > delante de cada filtro */
.e-filter-item::before {
    content: "";
    display: inline-block;
    width: 16px;
    height: 16px;
    margin-right: 6px;
    background-image: url("https://ha-hoteles.com/wp-content/uploads/flecha-corta-derecha-.svg");
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
    transition: transform 0.3s ease;
    vertical-align: middle;
}

/* Cuando está activo, rota 90° hacia abajo */
.e-filter-item[aria-pressed="true"]::before {
    transform: rotate(90deg);
}

/* Hover también rota */
.e-filter-item:hover::before {
    transform: rotate(90deg);
}

/*************
IMÁGENES *****/

/* Portfolio archive */
.img-ratio-3-2 img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  object-position: center center;
}

/* Soluciones */
.img-ratio-5-4 img{
  aspect-ratio: 5 / 4;
  width: 100%;
  object-fit: cover;
  object-position: center center;
}

/* Equipo*/
.img-ratio-1-1 img,
.instagalery img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  object-position: center center;
}



/* ─── LOGO MARQUEE INFINITO ─────────────────────────────────── */
/* VIEWPORT */
[data-id="3974a28"] {
  overflow: hidden !important;
}

[data-id="3974a28"] > .e-con-inner {
  overflow: hidden !important;
  -webkit-mask-image: linear-gradient(to right, transparent 0%, black 10%, black 90%, transparent 100%) !important;
  mask-image: linear-gradient(to right, transparent 0%, black 10%, black 90%, transparent 100%) !important;
}

/* CONTENEDOR ELEMENTOR — solo actúa de viewport */
.logo-marquee-clean.e-con {
  overflow: hidden !important;
  max-width: 100% !important;
  width: 100% !important;
  display: block !important;
}

/* TRACK (creado por JS) */
.marquee-track {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 6.25rem;
  width: max-content;
  will-change: transform;
}

.marquee-track > .elementor-widget-image {
  flex-shrink: 0;
}

.marquee-track img {
  height: 40px;
  width: auto;
  max-width: none;
  object-fit: contain;
  display: block;
}

/* <=1200 */
@media (max-width: 1200px){
  .marquee-track img {
  height:35px;
}
}

/* <=1024 */
@media (max-width: 1024px){
    .marquee-track img {
  height:30px;
}
}

/* <=880 */
@media (max-width: 880px){
    .marquee-track img {
  height:25px;
}
}

/* <=767 (móvil) */
@media (max-width: 767px){
    .marquee-track img {
  height:20px;
}
.marquee-track {
  gap: 2.5rem;
}
}
 
 /* Cookie yes */
 button.cky-btn {
    font-size: 90%;
    color: #00749F !important;
    border: 1px solid #00749F !important;
}

a.cky-policy {
    color: #00749F !important;
}

button.cky-btn.cky-btn-accept {
    color: white !important;
    background: #00749F !important;
}