/* 
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: 1.0.9
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 */

/* Los estilos personalizados se cargan desde /assets/css/. */




/* Deshabilitar la opción de expandir (resize) para todos los campos de textarea */
textarea {
    resize: none !important;
}



/* ============================
   Dropdowns mismo ancho
   ============================ */
.same-dd .elementor-nav-menu--main .sub-menu{
  width: 265px !important;
  min-width: 250px !important;
}

/* Cada item ocupa todo el ancho */
.same-dd .elementor-nav-menu--main .sub-menu > li,
.same-dd .elementor-nav-menu--main .sub-menu > li > a{
  width: 100% !important;
  box-sizing: border-box;
}



/* HOVER VIDEOS PÁGINA IDEAS CREATIVAS Y MÁS*/
/* =========================================
   Video hover overlay (debajo del icono play)
   Clase: video-hover
   ========================================= */

.video-hover{
  position: relative;
  overflow: hidden;
}

/* Asegura stacking correcto */
.video-hover .elementor-wrapper{
  position: relative;
}

/* La imagen overlay de Elementor */
.video-hover .elementor-custom-embed-image-overlay{
  position: relative;
}

/* Overlay oscuro (debajo del play) */
.video-hover .elementor-custom-embed-image-overlay::after{
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.45);
  opacity: 0;
  transition: opacity 0.35s ease;
  z-index: 1;              /* 👈 debajo del play */
  pointer-events: none;
}

/* El botón play por encima */
.video-hover .elementor-custom-embed-play{
  position: absolute;      /* Elementor ya lo usa, pero lo reforzamos */
  z-index: 2;              /* 👈 arriba del overlay */
}

/* Hover */
.video-hover:hover .elementor-custom-embed-image-overlay::after{
  opacity: 1;
}

/* =========================================
   Icono de play con efecto grow
   ========================================= */

/* Animamos SOLO el icono (svg), no el contenedor */
.video-hover .elementor-custom-embed-play svg{
  transition: transform 0.35s ease;
  transform-origin: center;
}

/* Hover: zoom del icono */
.video-hover:hover .elementor-custom-embed-play svg{
  transform: scale(1.12); /* ajusta 1.08 – 1.18 */
}



  /* HOVER ICONO VIDEOS (sin saltito) */
.elementor-custom-embed-image-overlay .eicon-play{
  display: inline-block;
  transform: translateZ(0) scale(1);
  transform-origin: 50% 50%;
  transition: transform .18s ease;
  will-change: transform;
  backface-visibility: hidden;
  vertical-align: middle;
  
  transition: transform 0.7s ease; /* 0.35 */
  transform-origin: center;
}

.elementor-custom-embed-image-overlay:hover .eicon-play{
  transform: scale(1.08); /* 1.12 */
}







/* FORMULARIO SUSCRIBIRSE ANIMACIÓN DE LABELS*/
/* =========================================
   Floating Label (Elementor Form)
   Clase widget: float
   Estructura: label + input dentro de .elementor-field-group
   ========================================= */

.float .elementor-field-group{
  position: relative;
}

/* Deja espacio arriba para el label cuando "sube" */
.float .elementor-field-textual{
  padding-top: 18px !important;
}

/* LABEL como placeholder (sobre el input) */
.float .elementor-field-group > .elementor-field-label{
  position: absolute;
  left: 20px;                 /* ajusta si tu input tiene padding diferente */
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  margin: 0 !important;
  opacity: .75;
  line-height: 1;
  transition: top .18s ease, transform .18s ease, opacity .18s ease, font-size .18s ease;
  z-index: 2;
}

/* Placeholder visible por defecto */
.float .elementor-field-textual::placeholder{
  opacity: 1;
  transition: opacity .15s ease;
}

/* Al enfocar o cuando hay texto: label sube */
.float .elementor-field-group.is-focus > .elementor-field-label,
.float .elementor-field-group.is-filled > .elementor-field-label{
  top: 3px;
  transform: translateY(0);
  opacity: 1;
  font-size: 12px !important;
}

/* Al enfocar o con texto: ocultar placeholder para que no choque */
.float .elementor-field-group.is-focus .elementor-field-textual::placeholder,
.float .elementor-field-group.is-filled .elementor-field-textual::placeholder{
  opacity: 0;
}



/* SUBIR LABEL DE MENSAJE */
/* =========================================
   FIX: Campo MENSAJE (textarea) - evitar que el texto se monte en el label
   Solo afecta .elementor-field-group-mensaje
========================================= */

/* Label en reposo arriba (ya lo tenías) */
.float .elementor-field-group-mensaje > .elementor-field-label{
  top: 14px !important;                 
  transform: translateY(0) !important;  
}

/* Dar MÁS espacio arriba dentro del textarea */
.float .elementor-field-group-mensaje textarea.elementor-field-textual{
  padding-top: 27px !important;   /* ajusta 32–44 */
  padding-bottom: 12px !important;
}

/* Responsive */
@media (max-width: 767px){
  .float .elementor-field-group-mensaje > .elementor-field-label{
    top: 14px !important;
    transform: translateY(0) !important;
  }

  .float .elementor-field-group-mensaje textarea.elementor-field-textual{
    padding-top: 27px !important; /* ajusta 36–48 */
    padding-bottom: 12px !important;
  }
}



/* RESPONSIVE DE LOS LABELS FLOTANTES EN FORMULARIO DE FOOTER SUSCRIBETE */
/* =========================================
   Floating Label (RESPONSIVE fine-tune)
   Solo móvil/tablet
   ========================================= */
@media (max-width: 767px){

  /* 1) Más espacio arriba para que el cursor/texto no quede pegado al label */
  .float .elementor-field-textual{
    padding-top: 24px !important;  /* 👈 sube/baja: 22–28 */
    padding-bottom: 10px !important; /* opcional: más “aire” */
  }

  /* 2) Transición más suave (menos brusca) */
  .float .elementor-field-group > .elementor-field-label{
    transition:
      top .28s cubic-bezier(.2,.8,.2,1),
      transform .28s cubic-bezier(.2,.8,.2,1),
      opacity .22s ease,
      font-size .28s cubic-bezier(.2,.8,.2,1);
  }

  /* 3) Cuando sube: que suba un poco más (más separación visual) */
  .float .elementor-field-group.is-focus > .elementor-field-label,
  .float .elementor-field-group.is-filled > .elementor-field-label{
    top: 3px;          /* 👈 más arriba (antes 7px). Prueba 2–5 */
    font-size: 12px !important;   /* 👈 el tamaño que ya te gustó (ajustable) */
  }

  /* 4) (Opcional) En reposo, bajar un poquito el label para que se sienta centrado */
  .float .elementor-field-group > .elementor-field-label{
    top: 54%;          /* 👈 50% era perfecto en desktop; en móvil a veces se ve mejor 52–56 */
  }
}





/* REDUCIR ESPACIO ENTRE BOTONES DE SHARE PLANTILLA BLOGS SINGLE POST */
/* Share Buttons: íconos más juntos (solo donde pongas .share-compact) */
.share-compact .elementor-grid{
  --grid-column-gap: 0px; /* <-- ajusta este valor */
  --grid-row-gap: 3px;
   /* o flex-start si los quieres pegados a la izquierda */
}

/* Por si Elementor mete márgenes extra en items/botones */
.share-compact .elementor-grid-item,
.share-compact .elementor-share-btn{
  margin: -4px !important;
}







/* FORM SUSCRIPCIÓN tipo píldora
   Clase en el widget Form: mail-pill
------------------------------------- */

/* Quita separación vertical rara entre campo y botón */
.mail-pill .elementor-form-fields-wrapper{
  display: flex;
  align-items: center;
  gap: 0;
  flex-wrap: nowrap;
}

/* Contenedor del botón */
.mail-pill .e-form__buttons{
  width: auto;
  flex: 0 0 auto;
  margin: 0 0 0 -50px; /* mete el botón sobre el extremo derecho del input */
  padding: 0;
  position: relative;

}

/* Botón */
.mail-pill .e-form__buttons .elementor-button{
  min-height: 49px;
  padding: 0 40px;
  display: flex;
  align-items: center;
  justify-content: center;
}



/* RESPONSIVE */

@media (max-width: 767px){
  .mail-pill .elementor-form-fields-wrapper{
    display: block;
  }

  .mail-pill .elementor-field-group-correo{
    width: 100%;
  }

  .mail-pill .elementor-field-group-correo .elementor-field{
    padding: 0 18px;
  }

  .mail-pill .e-form__buttons{
    margin: 12px 0 0;
    width: 100%;
  }

  .mail-pill .e-form__buttons .elementor-button{
    width: 100%;
  }
}


/* alineación field con label */
.al-field .elementor-field-textual {
    padding-left: 20px!important;
    
}




/* HOVER POST WIDGET PROGRAMAS Y HOME */
.prog-cards .elementor-post__title a,
.prog-cards .elementor-post__excerpt p {
  transition: color 0.3s ease;
}

.prog-cards .elementor-post__card:hover {
  background-color: #0A2C39 !important;
}

.prog-cards .elementor-post__card:hover .elementor-post__title a,
.prog-cards .elementor-post__card:hover .elementor-post__excerpt p {
  color: #ffffff;
}


/* Botón leer más - cards reutilizables */
.prog-cards .elementor-post__read-more {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  margin-top: 18px;
  padding: 9px 22px 13px;
  border-radius: 24px;
  background-color: #FF6D41;
  color: #ffffff !important;
  text-decoration: none;
  line-height: 1;
  transition: background-color 0.3s ease, color 0.3s ease;
}

.prog-cards .elementor-post__read-more::after {
  content: "";
  display: inline-block;
  width: 14px;
  height: 14px;
  margin-left: 15px;
  transform: translateY(3px);
  background-color: currentColor;

  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='m506.134 241.843-.018-.019-104.504-104c-7.829-7.791-20.492-7.762-28.285.068-7.792 7.829-7.762 20.492.067 28.284L443.558 236H20c-11.046 0-20 8.954-20 20s8.954 20 20 20h423.557l-70.162 69.824c-7.829 7.792-7.859 20.455-.067 28.284 7.793 7.831 20.457 7.858 28.285.068l104.504-104 .018-.019c7.833-7.818 7.808-20.522-.001-28.314z'/%3E%3C/svg%3E");
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: contain;

  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='m506.134 241.843-.018-.019-104.504-104c-7.829-7.791-20.492-7.762-28.285.068-7.792 7.829-7.762 20.492.067 28.284L443.558 236H20c-11.046 0-20 8.954-20 20s8.954 20 20 20h423.557l-70.162 69.824c-7.829 7.792-7.859 20.455-.067 28.284 7.793 7.831 20.457 7.858 28.285.068l104.504-104 .018-.019c7.833-7.818 7.808-20.522-.001-28.314z'/%3E%3C/svg%3E");
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
}

.prog-cards .elementor-post__read-more:hover {
  background-color: #FCBF47;
  color: #0A2C39 !important;
}



/* BANNER HOME SLIDES HOVER Y FLECHA BOTÓN */
/* Slides home - hover flechas e icono botón */
.home-slides .elementor-swiper-button svg,
.home-slides .elementor-swiper-button svg path {
  transition: fill 0.3s ease, color 0.3s ease;
}

/* Solo cambia el hover, el color base queda editable desde Elementor */
/*.home-slides .elementor-swiper-button:hover svg,
.home-slides .elementor-swiper-button:hover svg path {
  fill: #125169;
  color: #125169;
}*/

/* Botón del slide con icono a la derecha */
.home-slides .elementor-slide-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  line-height: 1.2;
}

.home-slides .elementor-slide-button::after {
  content: "";
  display: inline-block;
  flex: 0 0 auto;
  width: 14px;
  height: 14px;
  margin-left: 15px;
  background-color: currentColor;
  transform: translateY(2px);

  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='m506.134 241.843-.018-.019-104.504-104c-7.829-7.791-20.492-7.762-28.285.068-7.792 7.829-7.762 20.492.067 28.284L443.558 236H20c-11.046 0-20 8.954-20 20s8.954 20 20 20h423.557l-70.162 69.824c-7.829 7.792-7.859 20.455-.067 28.284 7.793 7.831 20.457 7.858 28.285.068l104.504-104 .018-.019c7.833-7.818 7.808-20.522-.001-28.314z'/%3E%3C/svg%3E");
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: contain;

  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='m506.134 241.843-.018-.019-104.504-104c-7.829-7.791-20.492-7.762-28.285.068-7.792 7.829-7.762 20.492.067 28.284L443.558 236H20c-11.046 0-20 8.954-20 20s8.954 20 20 20h423.557l-70.162 69.824c-7.829 7.792-7.859 20.455-.067 28.284 7.793 7.831 20.457 7.858 28.285.068l104.504-104 .018-.019c7.833-7.818 7.808-20.522-.001-28.314z'/%3E%3C/svg%3E");
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
}






/* =========================================
   Home sliders: circular arrows
   Clase en Elementor: slider-circle-arrows
   ========================================= */
.slider-circle-arrows .elementor-swiper-button{
  position: relative;
}

.slider-circle-arrows .elementor-swiper-button svg{
  visibility: hidden;
}

.slider-circle-arrows .elementor-swiper-button::before{
  content: "";
  position: absolute;
  inset: 0;
  background-color: currentColor;
  pointer-events: none;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
  transition: background-color .2s ease;
}

.slider-circle-arrows .elementor-swiper-button-prev::before{
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%23000' d='M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm28.9-143.6L209.4 288H392c13.3 0 24-10.7 24-24v-16c0-13.3-10.7-24-24-24H209.4l75.5-72.4c9.7-9.3 9.9-24.8.4-34.3l-11-10.9c-9.4-9.4-24.6-9.4-33.9 0L107.7 239c-9.4 9.4-9.4 24.6 0 33.9l132.7 132.7c9.4 9.4 24.6 9.4 33.9 0l11-10.9c9.5-9.5 9.3-25-.4-34.3z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%23000' d='M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm28.9-143.6L209.4 288H392c13.3 0 24-10.7 24-24v-16c0-13.3-10.7-24-24-24H209.4l75.5-72.4c9.7-9.3 9.9-24.8.4-34.3l-11-10.9c-9.4-9.4-24.6-9.4-33.9 0L107.7 239c-9.4 9.4-9.4 24.6 0 33.9l132.7 132.7c9.4 9.4 24.6 9.4 33.9 0l11-10.9c9.5-9.5 9.3-25-.4-34.3z'/%3E%3C/svg%3E");
}

.slider-circle-arrows .elementor-swiper-button-next::before{
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%23000' d='M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm-28.9 143.6l75.5 72.4H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h182.6l-75.5 72.4c-9.7 9.3-9.9 24.8-.4 34.3l11 10.9c9.4 9.4 24.6 9.4 33.9 0L404.3 273c9.4-9.4 9.4-24.6 0-33.9L271.6 106.3c-9.4-9.4-24.6-9.4-33.9 0l-11 10.9c-9.5 9.6-9.3 25.1.4 34.4z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%23000' d='M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm-28.9 143.6l75.5 72.4H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h182.6l-75.5 72.4c-9.7 9.3-9.9 24.8-.4 34.3l11 10.9c9.4 9.4 24.6 9.4 33.9 0L404.3 273c9.4-9.4 9.4-24.6 0-33.9L271.6 106.3c-9.4-9.4-24.6-9.4-33.9 0l-11 10.9c-9.5 9.6-9.3 25.1.4 34.4z'/%3E%3C/svg%3E");
}

/*.slider-circle-arrows .elementor-swiper-button:is(:hover, :focus, :focus-visible)::before{
  background-color: #394c6a;
}*/
.slider-circle-arrows .elementor-swiper-button:hover::before{
  background-color:  #FFFFFF;
}

.slider-circle-arrows .elementor-swiper-button:focus:not(:hover)::before,
.slider-circle-arrows .elementor-swiper-button:focus-visible:not(:hover)::before,
.slider-circle-arrows .elementor-swiper-button:active:not(:hover)::before{
  background-color: currentColor;
}






/* Testimonial card - Orange */

/* Forzar que el widget use todo el ancho disponible + 5px */
.testi-card,
.testi-card.elementor-widget,
.testi-card.elementor-widget__width-initial{
  width: calc(100% + 5px) !important;
  max-width: calc(100% + 5px) !important;
}

/* Forzar ancho completo en el carrusel */
.testi-card .elementor-main-swiper,
.testi-card .swiper,
.testi-card .swiper-wrapper,
.testi-card .swiper-slide{
  width: 100% !important;
  max-width: 100% !important;
}

/* Slide sin margen/padding lateral extra */
.testi-card .swiper-slide{
  box-sizing: border-box;
}

/* Contenedor principal del testimonio */
.testi-card .elementor-testimonial{
  display: grid;
  grid-template-columns: calc(40% - 5px) calc(60% - 5px);
  gap: 10px;
  align-items: stretch;
  width: 100%;
  max-width: none;
  height: 430px;
  min-height: 230px;
  margin: 0;
}

/* Contenedor de imagen */
.testi-card .elementor-testimonial__footer{
  order: 1;
  width: 100%;
  height: 450px;
  min-height: 400px;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 24px;
  overflow: hidden;
}

/* Imagen */
.testi-card .elementor-testimonial__image{
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
}

.testi-card .elementor-testimonial__image img{
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  object-position: center top;
  display: block;
  border-radius: 24px;
}


/* Contenedor de texto */
.testi-card .elementor-testimonial__content{
  order: 2;
  width: 100%;
  height: 450px;
  min-height: 400px;
  background: #f1f4f6;
  border-radius: 24px;
  padding: 28px 40px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  box-sizing: border-box;
}

/* Comilla decorativa */
.testi-card .elementor-testimonial__content::before{
  content: "“";
  display: block;
  font-size: 38px;
  line-height: .6;
  font-weight: 700;
  color: #0b2a38;
  margin-bottom: 12px;
}

/* Texto del testimonio */
.testi-card .elementor-testimonial__text{
  margin: 0 0 16px;
}

/* Nombre */
.testi-card .elementor-testimonial__name{
  display: block;
  line-height: 1.05;
}

/* Puesto */
.testi-card .elementor-testimonial__title{
  display: block;
  line-height: 1.3;
  margin-top: 6px;
}

/* Responsive celular - Testimonial card */
@media (max-width: 767px){
  .testi-card,
  .testi-card.elementor-widget,
  .testi-card.elementor-widget__width-initial{
    width: 100% !important;
    max-width: 100% !important;
  }

  .testi-card .elementor-main-swiper,
  .testi-card .swiper,
  .testi-card .swiper-wrapper,
  .testi-card .swiper-slide{
    width: 100% !important;
    max-width: 100% !important;
  }

  .testi-card .elementor-testimonial{
    display: flex;
    flex-direction: column;
    width: 100%;
    height: auto;
    min-height: auto;
    gap: 10px;
  }
	

  /* Texto arriba */
  .testi-card .elementor-testimonial__content{
    order: 1;
    width: 100%;
    height: auto;
    min-height: auto;
    padding: 28px 24px;
    border-radius: 24px;
  }
	

  /* Imagen debajo */
  .testi-card .elementor-testimonial__footer{
    order: 2;
    width: 100%;
    height: auto;
    min-height: 200px;
    border-radius: 24px;
  }	

  .testi-card .elementor-testimonial__image{
    width: 100% !important;
    height: 100% !important;
  }

  .testi-card .elementor-testimonial__image img{
    width: 100% !important;
    height: 300px !important;
    object-fit: cover;
    border-radius: 24px;
  }

  /* Comilla decorativa */
  .testi-card .elementor-testimonial__content::before{
    font-size: 36px;
    margin-bottom: 12px;
  }

  .testi-card .elementor-testimonial__text{
    margin-bottom: 16px;
  }
}




/* Testimonial arrows - Orange */

/* Ocultar bullets originales */
.testi-card .swiper-pagination{
  display: none !important;
}

/* Contenedor de flechas */
.testi-card .testi-arrows{
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
  gap: 14px;
  margin-top: -20px;
  padding-right: 30px;
}

/* Botones */
.testi-card .testi-arrow{
  width: 30px;
  height: 30px;
  padding: 0;
  border: 0;
  background: transparent !important;
  color: inherit;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  line-height: 1;
  box-shadow: none !important;
}

/* Que el botón NO pinte nada al hover */
.testi-card .testi-arrow:hover,
.testi-card .testi-arrow:focus,
.testi-card .testi-arrow:active{
  background: transparent !important;
  color: inherit;
  outline: none;
  box-shadow: none !important;
}

/* SVG */
.testi-card .testi-arrow svg{
  width: 42px;
  height: 42px;
  fill: #0b2a38;
  display: block;
  transition: fill .25s ease;
}

/* Hover solo sobre el SVG */
.testi-card .testi-arrow:hover svg{
  fill: #ff6842;
}

/* Active solo sobre el SVG */
.testi-card .testi-arrow:active svg{
  fill: #0b2a38;
}

/* RESPONSIVE REDUCIR ESPACIO SUPERIOR FLECHAS */
@media (max-width: 767px){
  .testi-card .testi-arrows{
    margin-top: -45px;
  }
}







/* Program split cards - Orange */
/* Solo desktop y tablet */
@media (min-width: 768px){

  .prog-split{
    width: 100% !important;
    max-width: 100% !important;
  }

  .prog-split .elementor-widget-container,
  .prog-split .elementor-posts-container{
    width: 100% !important;
    max-width: 100% !important;
  }

  /* Lista de posts */
  .prog-split .elementor-posts-container{
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  /* Card completa: NO se mata el fondo ni el hover de Elementor */
  /*.prog-split .elementor-post__card{
    display: grid !important;
    grid-template-columns: calc(50% - 5px) calc(50% - 5px);
    gap: 10px;
    width: 100%;
    min-height: 210px;
    border-radius: 24px !important;
    overflow: hidden !important;
  }*/

  /* Imagen */
 /* .prog-split .elementor-post__thumbnail__link{
    display: block !important;
    width: 100%;
    height: 210px;
    margin: 0 !important;
    border-radius: 24px !important;
    overflow: hidden !important;
  }

  .prog-split .elementor-post__thumbnail{
    height: 100% !important;
    padding-bottom: 0 !important;
    border-radius: 24px !important;
    overflow: hidden !important;
  }

  .prog-split .elementor-post__thumbnail img{
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }*/
	
	
	/* Card completa */
.prog-split .elementor-post__card{
  display: grid !important;
  grid-template-columns: calc(50% - 5px) calc(50% - 5px);
  gap: 10px;
  width: 100%;
  min-height: 210px;
  border-radius: 24px !important;
  overflow: hidden !important;
  align-items: stretch !important;
}

/* Imagen */
.prog-split .elementor-post__thumbnail__link{
  display: block !important;
  width: 100%;
  height: 100% !important;
  min-height: 350px;
  margin: 0 !important;
  border-radius: 24px !important;
  overflow: hidden !important;
}

.prog-split .elementor-post__thumbnail{
  width: 100% !important;
  height: 100% !important;
  min-height: 350px;
  padding-bottom: 0 !important;
  border-radius: 24px !important;
  overflow: hidden !important;
}

.prog-split .elementor-post__thumbnail img{
  width: 100% !important;
  height: 100% !important;
  min-height: 350px;
  object-fit: cover !important;
	object-position: center center;
  border-radius: 24px !important;
}
	

  /* Contenido */
/*  .prog-split .elementor-post__text{
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 25px;
    width: 100%;
    height: 210px;
    margin: 0 !important;
    padding: 40px !important;
  }*/

  /* Titulo */
 /* .prog-split .elementor-post__title{
    flex: 0 0 auto !important;
    width: auto !important;
    max-width: 55%;
    min-width: 0;
    margin: 0 !important;
    white-space: nowrap;
  }*/

  /* Excerpt */
 /* .prog-split .elementor-post__excerpt{
    flex: 1 1 auto !important;
    width: auto !important;
    max-width: none;
    min-width: 0;
    margin: 0 !important;
  }

  .prog-split .elementor-post__excerpt p{
    margin: 0 !important;
  }*/

	
  /* Contenido apilado */
  .prog-split .elementor-post__text{
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: center !important;
    gap: 16px;
    width: 100%;
    min-height: 210px;
    height: auto;
    margin: 0 !important;
    padding: 34px 44px !important;
  }

  /* Título */
  .prog-split .elementor-post__title{
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0;
    margin: 0 !important;
    white-space: normal !important;
    overflow-wrap: normal;
    word-break: normal;
    line-height: 1.05;
  }

  .prog-split .elementor-post__title a{
    display: inline-block;
    max-width: 100%;
  }

  /* Excerpt */
  .prog-split .elementor-post__excerpt{
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0;
    margin: 0 !important;
  }

  .prog-split .elementor-post__excerpt p{
    margin: 0 !important;
  }

  /* Botón */
  .prog-split .elementor-post__read-more{
    width: 190px;
    min-width: 190px;
    max-width: 190px;
    margin: 4px 0 0 0 !important;
    text-align: center;
    white-space: nowrap;
  }
	
	
	
  /* Limpiar márgenes base */
  .prog-split .elementor-post__title,
  .prog-split .elementor-post__excerpt,
  .prog-split .elementor-post__excerpt p{
    margin: 0 !important;
  }

}




/* GROW SUAVE SOLO EN EL ITEM PRINCIPAL SIN DROPDOWN */
.menu-grow-soft .elementor-nav-menu--main > .elementor-nav-menu > li > .elementor-item{
  display: inline-flex;
  align-items: center;
  transition: transform .35s cubic-bezier(.22,.61,.36,1);
  transform-origin: center center;
  will-change: transform;
}

.menu-grow-soft .elementor-nav-menu--main > .elementor-nav-menu > li > .elementor-item:hover{
  transform: scale(1.05);
}





/* Icono relleno de WhatsApp */
.elementor-share-btn_whatsapp .elementor-share-btn__icon svg,
.elementor-share-btn_whatsapp .elementor-share-btn__icon i {
    display: none !important;
}

.elementor-share-btn_whatsapp .elementor-share-btn__icon::before {
    content: "";
    display: block;
    width: 1.8em;
    height: 1.8em; 
    background-color: currentColor;
    -webkit-mask-image: url('/wp-content/uploads/2026/05/whatsapp.svg');
    mask-image: url('/wp-content/uploads/2026/05/whatsapp.svg');
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
}


/* ---------- Footer ---------- */
/* Powered */
.powered span{
	color: #fff;
}

.powered span, .powered a{
	font-size: 1rem;
}

/* Menú */
@media (max-width: 767px){
	footer .elementor-widget-nav-menu > nav > ul{
		flex-direction: column;
    	align-items: center;
	}
}


/* Back to top */
@media (min-width: 1025px){
	.hello-child-back-to-top > .hello-child-back-to-top__icon{
		transform: translatey(-4px);
	}

}

/* ---------- Generales ---------- */
/* Botones */
.elementor-widget-button > a, .elementor-post__read-more, .elementor-slide-button{
	font-size: 16px !important;
	font-weight: 500 !important;
	transition: all .3s ease !important;
	&:hover{
		transform: scale(1.05);
	}
}

.sw-back-button{
	font-weight: 500 !important;
}

/* Posts */
.posts-grid .elementor-post__title {
  display: -webkit-box;       
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
  text-overflow: ellipsis;
}

.posts-grid .elementor-post__excerpt{
  --lines: 3;
  white-space: normal;
  overflow: hidden;
  overflow-wrap: anywhere;
  word-break: break-word;
  display: -webkit-box !important;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: var(--lines);
  line-clamp: var(--lines);
}


@supports not (-webkit-line-clamp: 1) {
  .posts-grid .elementor-post__excerpt{
    display: block;
    line-height: 1.45;
    max-height: calc(1.45em * var(--lines));
  }
}

.posts-grid .elementor-post__read-more{
	margin-top: auto !important;
}

.posts-grid .elementor-post__text{
	display: flex;
	flex-direction: column;
}

/* Responsive: justificar únicamente el excerpt */
/*@media (max-width: 767px){
  .posts-grid .elementor-post__excerpt,
  .posts-grid .elementor-post__excerpt p{
    text-align: justify !important;
  }
}*/
/* Responsive: centrar contenido y justificar únicamente el excerpt */
@media (max-width: 767px){

  /* Centra el bloque de texto completo */
  .posts-grid .elementor-post__text{
    align-items: center !important;
    text-align: center !important;
  }

  /* Centra el título */
  .posts-grid .elementor-post__title,
  .posts-grid .elementor-post__title a{
    text-align: center !important;
  }

  /* El excerpt queda justificado */
  .posts-grid .elementor-post__excerpt,
  .posts-grid .elementor-post__excerpt p{
    text-align: justify !important;
  }

  /* Centra el botón / leer más */
  .posts-grid .elementor-post__read-more{
    align-self: center !important;
    text-align: center !important;
  }
}



/* Calendario */
.calendario p, .calendario div, .calendario span, .calendario button{
	font-family: 'Poppins';
}

.calendario .orange-agenda__month, .calendario .orange-agenda__times-title{
	font-size: 26px;
}


/* Párrafos */
.p-no-bottom p:last-child{
	margin-bottom: 0;
}

.p-no-bottom-all p{
	margin-bottom: 0;
}


/* Footer */
#texto-footer a{
	&:hover{
		text-decoration: underline;
	}
}


/* Menú */
/* Menú auto */
.nav-auto ul.elementor-nav-menu > li > a {
    flex: 0 0 auto !important;
    width: max-content !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    display: inline-flex !important;
}


/* Línea del tiempo */
.fondo-degree-linea{
	background: #125169;
	background: linear-gradient(90deg, rgba(18, 81, 105, 1) 15%, rgba(255, 109, 65, 1) 15%, rgba(255, 109, 65, 1) 85%, rgba(11, 42, 58, 1) 85%);
}

/* Títulos */
.ano-linea-tiempo::after{
	position: absolute;
	content: "";
	top: 50%;
	transform: translate(100%, -50%);
	right: 0;
	margin-right: -25px;
	height: 10px;
	width: 125px;
	border-radius: 2px;
	background: #125169;
}

@media (min-width: 768px){
	.ano-left,
	.ano-right {
		position: relative;
		overflow: visible !important;
		--timeline-color: var(--e-global-color-primary);
		--circle-size: 14px;
		--line-width: 48%;
		--line-thickness: 2px;
		--offset-circle: -24px;
		--offset-line: calc(var(--offset-circle) - var(--line-width));
	}

	.ano-left::before,
	.ano-right::before {
		content: "";
		position: absolute;
		top: 50%;
		transform: translateY(-50%);
		width: var(--circle-size);
		height: var(--circle-size);
		background-color: var(--timeline-color);
		border-radius: 50%;
		z-index: 2;
	}

	.ano-left::after,
	.ano-right::after {
		content: "";
		position: absolute;
		top: 50%;
		transform: translateY(-50%);
		width: var(--line-width);
		height: var(--line-thickness);
		background-color: var(--timeline-color);
		z-index: 1;
	}

	.ano-left::before {
		left: var(--offset-circle);
	}

	.ano-left::after {
		left: var(--offset-line);
	}

	.ano-right::before {
		right: var(--offset-circle);
	}

	.ano-right::after {
		right: var(--offset-line);
	}
}


@media (min-width: 768px){
	.equipo-carrusel > div > div > div > div > div > .elementor-widget-image-box > div > figure{
		width: 100% !important;
	}

	.equipo-carrusel > div > div > div > div > div > .elementor-widget-image-box > div > figure > img{
		width: 85%;
		margin: auto;
	}
}






/* Timeline con Testimonial Carousel */
.timeline-carousel {
  --timeline-circle-bg: #125169; /* Color del círculo/año */
  --timeline-line: #e5e5e5;
}

/* Igualar altura de slides */
.timeline-carousel .swiper-wrapper {
  align-items: stretch !important;
}

.timeline-carousel .swiper-slide {
  height: auto !important;
}

/* Card */
.timeline-carousel .elementor-testimonial {
  height: 100%;
  display: flex !important;
  flex-direction: column !important;
  align-items: center;
  position: relative;
  padding: 0 18px;
}

/* IMPORTANTE:
   Este contenedor tiene dentro:
   - text
   - cite
   - name
   - title
*/
.timeline-carousel .elementor-testimonial__content {
  width: 100%;
  display: flex !important;
  flex-direction: column !important;
  align-items: center;
}

/* El cite contiene name y title */
.timeline-carousel .elementor-testimonial__cite {
  display: flex !important;
  flex-direction: column !important;
  align-items: center;
  width: 100%;
  margin: 0 0 22px !important;
  padding: 0 !important;
  position: relative;
  order: 1 !important;
}

/* Ocultar footer/imagen placeholder */
.timeline-carousel .elementor-testimonial__footer,
.timeline-carousel .elementor-testimonial__image {
  display: none !important;
}

/* Líneas solo desktop y tablet */
@media (min-width: 768px) {
  .timeline-carousel {
    --timeline-circle-size: 170px;
    --timeline-circle-border: 10px;
    --timeline-line-top: calc(
      (var(--timeline-circle-size) + (var(--timeline-circle-border) * 2)) / 2
    );
  }

  .timeline-carousel .elementor-testimonial__cite::before,
  .timeline-carousel .elementor-testimonial__cite::after {
    content: "";
    position: absolute;
    top: var(--timeline-line-top);
    /*width: 100%;*/
	  width: calc(100% + 50px);
    height: 3px;
    background: var(--timeline-line);
    z-index: 0;
  }

  /* Línea izquierda */
  .timeline-carousel .elementor-testimonial__cite::before {
    right: 50%;
  }

  /* Línea derecha */
  .timeline-carousel .elementor-testimonial__cite::after {
    left: 50%;
  }
}

/* TITLE = año dentro del círculo */
.timeline-carousel .elementor-testimonial__title {
  order: 1 !important;
  width: var(--timeline-circle-size, 170px);
  height: var(--timeline-circle-size, 170px);
  border-radius: 50%;
  background: var(--timeline-circle-bg);
  border: var(--timeline-circle-border, 10px) solid var(--timeline-line);
  line-height: 1 !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 2;
  margin: 0 auto 18px !important;
  text-align: center;
}

/* NAME = texto debajo del círculo */
.timeline-carousel .elementor-testimonial__name {
  order: 2 !important;
  margin: 0 auto !important;
  text-align: center;
}

/* CONTENT = descripción debajo de title/name */
/* No tocamos color, font-size, font-style, line-height ni alineación */
.timeline-carousel .elementor-testimonial__text {
  order: 2 !important;
  width: 100%;
}

/* Flechas: solo posición, no color */
.timeline-carousel .elementor-swiper-button,
.timeline-carousel .swiper-button-prev,
.timeline-carousel .swiper-button-next {
  top: 50% !important;
  transform: translateY(-50%) !important;
}

/* Tablet */
@media (min-width: 768px) and (max-width: 1024px) {
  .timeline-carousel {
    --timeline-circle-size: 145px;
    --timeline-circle-border: 12px;
  }

 /* .timeline-carousel .elementor-testimonial__title {
    font-size: 28px !important;
  }*/
}

/* Mobile */
@media (max-width: 767px) {
  .timeline-carousel {
    width: 100% !important;
    max-width: 100% !important;
  }

  .timeline-carousel .elementor-main-swiper,
  .timeline-carousel .swiper,
  .timeline-carousel .swiper-wrapper,
  .timeline-carousel .swiper-slide {
    width: 100% !important;
    max-width: 100% !important;
  }

  .timeline-carousel .elementor-testimonial {
    padding: 0 12px !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  .timeline-carousel .elementor-testimonial__content {
    width: 100% !important;
    max-width: 100% !important;
  }

  /* En celular no hay líneas */
  .timeline-carousel .elementor-testimonial__cite::before,
  .timeline-carousel .elementor-testimonial__cite::after {
    display: none !important;
    content: none !important;
  }

/* Círculo del año más grande en celular */
.timeline-carousel .elementor-testimonial__title {
  width: 220px !important;
  height: 220px !important;
  border-width: 12px !important;
  margin-bottom: 32px !important;
}

  /* Texto más ancho */
  .timeline-carousel .elementor-testimonial__text {
    width: 100% !important;
    max-width: 330px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
}



/* Primera card real: sin línea izquierda */
.timeline-carousel .timeline-is-first .elementor-testimonial__cite::before {
  display: none !important;
}

/* Última card real: sin línea derecha */
.timeline-carousel .timeline-is-last .elementor-testimonial__cite::after {
  display: none !important;
}

/* Testimonial carousel - custom arrows */
.timeline-carousel {
  position: relative;
}

/* Contenedor/flechas del carousel */
.timeline-carousel .elementor-swiper-button,
.timeline-carousel .swiper-button-prev,
.timeline-carousel .swiper-button-next {
  width: 30px !important;
  height: 40px !important;
  top: auto !important;
  bottom: -35px !important;
  margin: 0 !important;
  transform: none !important;
  background: transparent !important;
  border: none !important;
  z-index: 5 !important;
}

/* Posición: ambas juntas en esquina inferior derecha */
.timeline-carousel .elementor-swiper-button-prev,
.timeline-carousel .swiper-button-prev {
  left: auto !important;
  right: 90px !important;
}

.timeline-carousel .elementor-swiper-button-next,
.timeline-carousel .swiper-button-next {
  left: auto !important;
  right: 50px !important;
}

/* Oculta el ícono original de Elementor */
.timeline-carousel .elementor-swiper-button i,
.timeline-carousel .elementor-swiper-button svg,
.testi-card .swiper-button-prev::after,
.timeline-carousel .swiper-button-next::after {
  display: none !important;
}

/* Nuevo ícono SVG: toma el color principal desde Elementor */
.timeline-carousel .elementor-swiper-button::before,
.timeline-carousel .swiper-button-prev::before,
.timeline-carousel .swiper-button-next::before {
  content: "";
  display: block;
  width: 34px;
  height: 34px;

  /* Este es el punto importante:
     NO ponemos color fijo aquí.
     El ícono toma el color que Elementor le dé a la flecha. */
  background: currentColor;

  -webkit-mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm-28.9 143.6l75.5 72.4H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h182.6l-75.5 72.4c-9.7 9.3-9.9 24.8-.4 34.3l11 10.9c9.4 9.4 24.6 9.4 33.9 0L404.3 273c9.4-9.4 9.4-24.6 0-33.9L271.6 106.3c-9.4-9.4-24.6-9.4-33.9 0l-11 10.9c-9.5 9.6-9.3 25.1.4 34.4z'/%3E%3C/svg%3E") center / contain no-repeat;

  mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm-28.9 143.6l75.5 72.4H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h182.6l-75.5 72.4c-9.7 9.3-9.9 24.8-.4 34.3l11 10.9c9.4 9.4 24.6 9.4 33.9 0L404.3 273c9.4-9.4 9.4-24.6 0-33.9L271.6 106.3c-9.4-9.4-24.6-9.4-33.9 0l-11 10.9c-9.5 9.6-9.3 25.1.4 34.4z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* La flecha izquierda usa el mismo SVG, solo rotado */
.timeline-carousel .elementor-swiper-button-prev::before,
.timeline-carousel .swiper-button-prev::before {
  transform: rotate(180deg);
}

/* Hover azul para flechas */
.timeline-carousel .elementor-swiper-button:hover::before,
.timeline-carousel .swiper-button-prev:hover::before,
.timeline-carousel .swiper-button-next:hover::before {
  background: #0A2C39 !important;
}





/*.sw-pdf-tabs-buttons {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
}*/


/* Botones de PDFs múltiples en recursos */
.sw-recursos-pdf-list {
  width: 100%;
  display: flex;
  justify-content: center;
  text-align: center;
}

.sw-recursos-pdf-buttons {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 18px;
  max-width: 920px;
  margin: 0 auto;
}

.sw-recursos-pdf-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 380px;
  padding: 15px 28px;
  border-radius: 30px;
  background: #125169;
  color: #ffffff !important;
  font-weight: 600;
  font-size: 16px;
  line-height: 1.2;
	font-family: 'poppins' !important; 
  text-align: center;
  text-decoration: none !important;
  transition: background-color 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

.sw-recursos-pdf-button:hover,
.sw-recursos-pdf-button:focus {
  background: #FCBF47;
  color: #125169 !important;
  transform: translateY(-1px);
}

@media (max-width: 767px) {
  .sw-recursos-pdf-buttons {
    width: 100%;
    flex-direction: column;
    align-items: center;
  }

  .sw-recursos-pdf-button {
    width: 100%;
    min-width: 0;
    max-width: 420px;
  }
}




/* Slides Home: priorizar la parte superior de las imágenes */
.home-slides .swiper-slide-bg{
  background-position: center top !important;
}