/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.0.0
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* Add your custom styles here */


/*** -------------------
 ALTO 100% VIEWPORT
------------------- ***/

@media (min-width: 1025px) {
  html { 
    scroll-snap-type: y proximity; /* fallback si el JS no carga */
    scroll-behavior: smooth; 
  }
  html.js-paged-scroll { 
    scroll-snap-type: none;  /* el JS manda, que no pelee el navegador */
    scroll-behavior: auto; 
  }
  html:has(body.elementor-editor-active) { scroll-snap-type: none; }

  body:not(.elementor-editor-active) .e-parent { 
    height: 100dvh; 
    overflow-y: auto;
   overflow-x: hidden;
	scroll-snap-align: start; 
    scroll-snap-stop: normal; 
  }
  header.elementor-location-header .e-parent { 
    height: auto !important; 
    min-height: unset !important; 
    overflow: visible !important; 
    scroll-snap-align: none !important; 
    scroll-snap-stop: normal !important; 
  }
}

@media (min-width: 1025px) {
  .e-parent:has(details.e-n-accordion-item[open]) {
    height: auto !important;
    min-height: 100dvh !important;
    overflow: visible !important;
  }
}

/** Que no fucione en páginas legales **/

@media (min-width: 1025px) {
  body.page-id-402 .e-parent,
  body.page-id-404 .e-parent,
  body.page-id-406 .e-parent {
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
    scroll-snap-align: none !important;
  }

  body.page-id-402,
  body.page-id-404,
  body.page-id-406 {
    scroll-snap-type: none !important;
  }
}

/*** ---------- AJUSTE MOVILES ---------- ***/

/* --- Anula el alto forzado en tablet y móvil para las 3 secciones --- */
@media (max-width: 1024px) {
  body .elementor-27 .elementor-element.elementor-element-83a9f97,
  body .elementor-27 .elementor-element.elementor-element-13aeb0d,
  body .elementor-27 .elementor-element.elementor-element-2f5058c {
    height: unset !important;
    min-height: unset !important;
    max-height: unset !important;
    overflow: visible !important;
  }
}

/* --- El sol se muestra desde el principio, sin animación, en tablet/móvil --- */
@media (max-width: 1024px) {
  .seccion-sol::before {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* --- Las columnas dejan de depender de la animación de scroll en tablet/móvil --- */
@media (max-width: 1024px) {
  .elementor-invisible {
    opacity: 1 !important;
  }
}

/*** --------------------
AJUSTE ALINEACION TITULOS NUMEROS MOVIMIENTO
------------------------------- ***/
.numeros .elementor-counter-title {
  text-align: center;
  width: 90%;
}

@media (max-width: 1024px) {
  .numeros .elementor-counter-title {
    width: 100%;
  }
}


/*** ---------------------
COLUMNAS ANIMADAS
-------------------------- ***/

@media (hover: hover) and (pointer: fine) {
  .columna-animada {
    --grow-height: 88px;
  }

  .columna-animada::before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    top: 0;

    background-color: inherit;
    pointer-events: none;

    transition: top 0.45s cubic-bezier(0.22, 1, 0.36, 1);
  }

  .columna-animada:hover::before {
    top: calc(-1 * var(--grow-height));
  }

  @media (prefers-reduced-motion: reduce) {
    .columna-animada::before {
      transition: none;
    }
  }
}

/*** ------------
VIDEO EN MOVILES
---------------- ***/

.elementor-background-video-hosted {
  width: 100% !important;
  height: 100% !important;
  top: 0 !important;
  left: 0 !important;
  transform: none !important;
  object-fit: cover !important;
}

/** --------------------
 ZOOM HOVER IMAGENES 
------------------------ **/

/* Contenedor real de Elementor: aquí va el overflow:hidden, solo si tiene la clase imagen-zoom */
.elementor-widget-image.imagen-zoom,
.elementor-image-box-img.imagen-zoom,
.elementor-widget-image-carousel.imagen-zoom {
  overflow: hidden !important;
}

/* La imagen mantiene el transform, pero ahora queda recortada por el padre */
.elementor-widget-image.imagen-zoom img,
.elementor-image-box-img.imagen-zoom img,
.elementor-widget-image-carousel.imagen-zoom img {
  transition: transform 0.4s ease !important;
  transform: scale(1);
  display: block;
}

.elementor-widget-image.imagen-zoom:hover img,
.elementor-image-box-img.imagen-zoom:hover img,
.elementor-widget-image-carousel.imagen-zoom:hover img {
  transform: scale(1.08) !important;
}

/*** --------------------
 KEN BURNS
--------------------- **/

.efecto-ken-burns {
  position: relative;
  overflow: hidden !important;
}

/* Caso 1: fondo clásico puesto directamente en el contenedor */
.efecto-ken-burns:not(.elementor-motion-effects-element-type-background) {
  background-position: center center !important;
  background-size: cover !important;
  animation: none !important;
}

.efecto-ken-burns:not(.elementor-motion-effects-element-type-background)::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background-image: inherit;
  background-position: center center !important;
  background-size: cover !important;
  animation: kenburns 10s ease-in-out 0s infinite alternate !important;
}

.efecto-ken-burns:not(.elementor-motion-effects-element-type-background) > .e-con-inner {
  position: relative;
  z-index: 1;
}

/* Caso 2: contenedores con "Motion Effects > Fondo" (la foto vive en una capa aparte) */
.efecto-ken-burns.elementor-motion-effects-element-type-background > .elementor-motion-effects-container > .elementor-motion-effects-layer {
  background-position: center center !important;
  background-size: cover !important;
  animation: kenburns 10s ease-in-out 0s infinite alternate !important;
}

@keyframes kenburns {
  0%   { transform: scale(1); }
  100% { transform: scale(1.3); }
}

.efecto-ken-burns {
  position: relative;
  z-index: 0;              /* ← añadir esta línea */
  overflow: hidden !important;
}


/** STICKY HEADER **/

/* Oculto por defecto, incluso si Elementor ya lo marca como "activo" */
.elementor-element-2762950 {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}

/* Solo visible cuando el body tiene la clase que añade el scroll */
body.is-scrolled .elementor-element-2762950 {
  opacity: 1;
  pointer-events: auto;
}

.elementor-sticky__spacer {
  display: none !important;
}

.elementor-element-2762950 {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}

body.is-scrolled .elementor-element-2762950 {
  opacity: 1;
  pointer-events: auto;
}

.elementor-sticky__spacer {
  display: none !important;
}