/*
Theme Name: Hello Elementor Child
Theme URI: https://www.solucionweb.com/
Description: Tema hijo personalizado para Hello Elementor con login privado, reglas de acceso, botones flotantes configurables, WhatsApp y shortcodes básicos administrables.
Author: Solución Web
Author URI: https://www.solucionweb.com/
Template: hello-elementor
Version: 2.4.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: custom-login, translation-ready, elementor, child-theme
*/

/* 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;
https://dev-antigua-international-school.pantheonsite.io/wp-admin/post-new.php?post_type=experiencia}





/* Testimonial card */

/* 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: #187EA0;
  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: #FFFFFF;
  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: 250px;
    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: 100% !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 carousel - custom arrows */
.testi-card {
  position: relative;
}

/* Contenedor/flechas del carousel */
.testi-card .elementor-swiper-button,
.testi-card .swiper-button-prev,
.testi-card .swiper-button-next {
  width: 30px !important;
  height: 40px !important;
  top: auto !important;
  bottom: -48px !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 */
.testi-card .elementor-swiper-button-prev,
.testi-card .swiper-button-prev {
  left: auto !important;
  right: 90px !important;
}

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

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

/* Nuevo ícono SVG: toma el color principal desde Elementor */
.testi-card .elementor-swiper-button::before,
.testi-card .swiper-button-prev::before,
.testi-card .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 */
.testi-card .elementor-swiper-button-prev::before,
.testi-card .swiper-button-prev::before {
  transform: rotate(180deg);
}

/* Hover verde para flechas */
.testi-card .elementor-swiper-button:hover::before,
.testi-card .swiper-button-prev:hover::before,
.testi-card .swiper-button-next:hover::before {
  background: #62981D !important;
}





/* =========================================================
   TESTIMONIOS: 4 LÍNEAS + BOTÓN LEER MÁS
   ========================================================= */

/* Limitar el texto visible a 4 líneas */
.testi-card .elementor-testimonial__text {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
  overflow: hidden;

  /* Propiedad estándar para navegadores compatibles */
  line-clamp: 4;

  margin-bottom: 12px;
}

/* Botón Leer más / Read more */
.testi-card .testi-more {
  align-self: flex-start;
  appearance: none;
  -webkit-appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  margin: 0 0 18px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #FFFFFF;
  font-family: inherit;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: underline;
  text-underline-offset: 4px;
  cursor: pointer;
  transition:
    color 0.25s ease,
    opacity 0.25s ease;
}

.testi-card .testi-more:hover,
.testi-card .testi-more:focus-visible {
  color: #B8D889;
}

.testi-card .testi-more:focus-visible {
  outline: 2px solid #FFFFFF;
  outline-offset: 5px;
}

/* Evita que el botón herede flechas o iconos globales */
.testi-card .testi-more::before,
.testi-card .testi-more::after {
  content: none !important;
  display: none !important;
}


/* =========================================================
   POPUP DEL TESTIMONIO
   ========================================================= */

.testi-modal {
  position: fixed;
  inset: 0;
  z-index: 999999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transition:
    opacity 0.25s ease,
    visibility 0.25s ease;
}

.testi-modal.is-open {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}

/* Fondo oscuro */
.testi-modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.68);
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
}

/* Caja principal */
.testi-modal__dialog {
  position: relative;
  z-index: 1;
  width: min(680px, 100%);
  max-height: min(80vh, 720px);
  overflow-y: auto;
  overscroll-behavior: contain;
  background: #187EA0;
  color: #FFFFFF;
  border-radius: 24px;
  padding: 48px 45px 40px;
  box-sizing: border-box;
  box-shadow: 0 18px 55px rgba(0, 0, 0, 0.28);
  transform: translateY(18px) scale(0.98);
  transition: transform 0.25s ease;
}

.testi-modal.is-open .testi-modal__dialog {
  transform: translateY(0) scale(1);
}

/* Botón cerrar */
.testi-modal__close {
  appearance: none;
  -webkit-appearance: none;
  position: absolute;
  top: 14px;
  right: 17px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: #FFFFFF;
  font-family: Arial, sans-serif;
  font-size: 31px;
  font-weight: 300;
  line-height: 1;
  cursor: pointer;
  transition:
    background-color 0.25s ease,
    transform 0.25s ease;
}

.testi-modal__close:hover,
.testi-modal__close:focus-visible {
  background: rgba(255, 255, 255, 0.15);
  transform: rotate(90deg);
}

.testi-modal__close:focus-visible {
  outline: 2px solid #FFFFFF;
  outline-offset: 3px;
}

/* Comilla */
.testi-modal__quote {
  display: block;
  margin-bottom: 18px;
  color: #FFFFFF;
  font-size: 58px;
  font-weight: 700;
  line-height: 0.55;
}

/* Testimonio completo */
.testi-modal__text {
  margin: 0 0 26px;
  color: #FFFFFF;
  font-size: 18px;
  line-height: 1.65;
  white-space: pre-line;
}

/* Nombre */
.testi-modal__name {
  display: block;
  margin-bottom: 6px;
  color: #FFFFFF;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.2;
}

/* Puesto */
.testi-modal__title {
  display: block;
  color: #FFFFFF;
  font-size: 15px;
  line-height: 1.4;
}

/* Bloquear scroll de la página */
body.testi-modal-open {
  overflow: hidden;
}


/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 767px) {
  .testi-modal {
    align-items: flex-end;
    padding: 14px;
  }

  .testi-modal__dialog {
    width: 100%;
    max-height: 85vh;
    padding: 45px 25px 30px;
    border-radius: 24px;
  }

  .testi-modal__text {
    font-size: 16px;
    line-height: 1.6;
  }

  .testi-modal__quote {
    font-size: 48px;
  }

  .testi-card .testi-more {
    font-size: 14px;
    margin-bottom: 17px;
  }
}









/* =========================================================
   WIDGET PROGRAMAS HOME GLOBAL:
   aplica en desktop, tablet y mobile
   Solo colores del contenedor de texto + botón
========================================================= */

/* Colores por card */
.niveles .elementor-post:nth-child(3n + 1) .elementor-post__text {
  background: #5a9e17 !important;
}

.niveles .elementor-post:nth-child(3n + 2) .elementor-post__text {
  background: #2e5388 !important;
}

.niveles .elementor-post:nth-child(3n + 3) .elementor-post__text {
  background: #1689a3 !important;
}

/* Botón */
.niveles .elementor-post__read-more {
  width: fit-content !important;
  min-width: 220px !important;
  margin-top: 0 !important;
  padding: 10px 20px 10px 20px !important;
  border-radius: 20px !important;
  background: #f8bd12 !important;
  text-decoration: none !important;
  position: relative !important;
  transition: background-color 0.25s ease !important;
}

/* Hover botón */
.niveles .elementor-post__read-more:hover,
.niveles .elementor-post__read-more:focus {
  background: #00527A !important;
}

/* Icono/flechita del botón con SVG */
.niveles .elementor-post__read-more::after {
  content: "";
  position: absolute !important;
  right: 20px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;

  width: 22px !important;
  height: 22px !important;
  background-color: #fff !important;
  transition: background-color 0.25s ease !important;

  -webkit-mask-image: url("data:image/svg+xml,%3Csvg aria-hidden='true' class='e-font-icon-svg e-fas-arrow-circle-right' 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/path%3E%3C/svg%3E") !important;
  mask-image: url("data:image/svg+xml,%3Csvg aria-hidden='true' class='e-font-icon-svg e-fas-arrow-circle-right' 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/path%3E%3C/svg%3E") !important;

  -webkit-mask-repeat: no-repeat !important;
  mask-repeat: no-repeat !important;
  -webkit-mask-position: center !important;
  mask-position: center !important;
  -webkit-mask-size: contain !important;
  mask-size: contain !important;
}


/* =========================================================
   DESKTOP ONLY: layout custom con imagen de fondo
   Tablet y mobile quedan con el layout original de Elementor
========================================================= */

@media (min-width: 1025px) {

  /* Widget Posts estilo niveles */
  .niveles .elementor-posts-container {
    display: grid !important;
    gap: 0 !important;
  }

  /* Card principal */
  .niveles .elementor-post {
    position: relative !important;
    overflow: hidden !important;
    min-height: 570px !important;
    display: flex !important;
    align-items: flex-end !important;
    justify-content: flex-end !important;
    padding: 0 28px 20px !important;
  }

  /* Elimina estilos internos de card si Elementor los aplica */
  .niveles .elementor-post__card {
    position: static !important;
    overflow: visible !important;
    background: transparent !important;
    box-shadow: none !important;
    border-radius: 0 !important;

    height: auto !important;
    min-height: 0 !important;
    display: block !important;
  }

  /* Imagen como fondo */
  .niveles .elementor-post__thumbnail__link {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    z-index: 1 !important;
  }

  .niveles .elementor-post__thumbnail {
    height: 100% !important;
    padding-bottom: 0 !important;
  }

  .niveles .elementor-post__thumbnail img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
    transform: none !important;
  }

  /* Caja de texto encapsulada */
  .niveles .elementor-post__text {
    position: relative !important;
    z-index: 2 !important;
    width: 100% !important;
    max-width: 450px !important;

    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    flex: 0 0 auto !important;
    flex-grow: 0 !important;

    padding: 20px 40px 5px !important;
    border-radius: 34px !important;

    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
  }
	
	
  /* Desktop: títulos con alto uniforme */
  .niveles .elementor-post__title {
    min-height: 2.4em !important;
    display: flex !important;
    align-items: flex-start !important;
  }
	

  /* Extracto: solo quitamos margen extra si Elementor lo mete */
  .niveles .elementor-post__excerpt,
  .niveles .elementor-post__excerpt p {
    margin-bottom: 0 !important;
  }

  /* Wrapper del botón: controla el espacio entre excerpt y botón en desktop */
  .niveles .elementor-post__read-more-wrapper {
    margin-top: 22px !important;
  }
	
	
	
	
  /* Desktop: todos los títulos reservan alto de 2 líneas */
  .niveles .elementor-post__title {
    min-height: 2.2em !important;
  }

  .niveles .elementor-post__title a {
    display: block !important;
  }

  /* Card 1: Early Childhood Program queda en 2 líneas */
  .niveles .elementor-post:nth-child(3n + 1) .elementor-post__title a {
    max-width: 430px !important;
  }

  /* Card 2: Primary School queda en 2 líneas */
  .niveles .elementor-post:nth-child(3n + 2) .elementor-post__title a {
    max-width: 270px !important;
  }

  /* Card 3: Secondary School queda en 2 líneas */
  .niveles .elementor-post:nth-child(3n + 3) .elementor-post__title a {
    max-width: 330px !important;
  }
	
}


/* Tablet y mobile: quitar espacio blanco entre imagen y bloque de texto */
@media (max-width: 1024px) {
  .niveles .elementor-post__thumbnail__link {
    margin-bottom: 0 !important;
  }

  .niveles .elementor-post__thumbnail {
    margin-bottom: 0 !important;
  }

  .niveles .elementor-post__text {
    margin-top: 0 !important;
    padding-top: 22px !important;
  }

  .niveles .elementor-post__card {
    overflow: hidden !important;
  }
}

/* Hover naranja del bloque de color: desktop, tablet y mobile */
.niveles .elementor-post__text {
  transition: background-color 0.25s ease !important;
}

.niveles .elementor-post:hover .elementor-post__text,
.niveles .elementor-post:focus-within .elementor-post__text {
  background: #FF7100 !important;
}

/* Hover sutil de imagen: SOLO desktop con mouse */
@media (min-width: 1025px) and (hover: hover) and (pointer: fine) {
  .niveles .elementor-post__thumbnail img {
    transition: transform 0.35s ease, filter 0.35s ease !important;
  }

  .niveles .elementor-post:hover .elementor-post__thumbnail img,
  .niveles .elementor-post:focus-within .elementor-post__thumbnail img {
    transform: scale(1.04) !important;
    filter: brightness(0.92) !important;
  }
}





/* Programas split cards */
/* 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: 20px !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: 20px !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: 200px;
  margin: 0 !important;
  border-radius: 20px !important;
  overflow: hidden !important;
}

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

.prog-split .elementor-post__thumbnail img{
  width: 100% !important;
  height: 100% !important;
  min-height: 200px;
  object-fit: cover !important;
	object-position: center center;
  border-radius: 20px !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;
  }

}





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


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


/* Colores individuales para cada card completa */
.prog-cards .elementor-post:nth-of-type(1) .elementor-post__card {
  background-color: #62981D !important;
}

.prog-cards .elementor-post:nth-of-type(2) .elementor-post__card {
  background-color: #2e5388 !important;
}

.prog-cards .elementor-post:nth-of-type(3) .elementor-post__card {
  background-color: #1689a3 !important;
}

/* Hover naranja para todas las cards */
.prog-cards .elementor-post:hover .elementor-post__card,
.prog-cards .elementor-post:nth-of-type(1):hover .elementor-post__card,
.prog-cards .elementor-post:nth-of-type(2):hover .elementor-post__card,
.prog-cards .elementor-post:nth-of-type(3):hover .elementor-post__card {
  background-color: #FF7100 !important;
}

/* 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: #E6B011;
  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 aria-hidden='true' class='e-font-icon-svg e-fas-arrow-circle-right' 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/path%3E%3C/svg%3E") !important;
  mask-image: url("data:image/svg+xml,%3Csvg aria-hidden='true' class='e-font-icon-svg e-fas-arrow-circle-right' 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/path%3E%3C/svg%3E") !important;
  
  -webkit-mask-repeat: no-repeat !important;
  mask-repeat: no-repeat !important;
  -webkit-mask-position: center !important;
  mask-position: center !important;
  -webkit-mask-size: contain !important;
  mask-size: contain !important;

}

.prog-cards .elementor-post__read-more:hover {
  background-color: #187EA0;
  color: #ffffff !important;
}

  /* Excerpt uniforme a 3 líneas - Program cards */
  .prog-cards .elementor-post__excerpt {
    min-height: 4.8em !important;
    max-height: 4.8em !important;
    overflow: hidden !important;
  }

  .prog-cards .elementor-post__excerpt p {
    display: -webkit-box !important;
    -webkit-line-clamp: 3 !important;
    line-clamp: 3 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    margin-bottom: 0 !important;
    line-height: 1.6em !important;
  }





/* 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;
}


/* 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: 25px;
    height: 25px; 
    background-color: currentColor;
    -webkit-mask-image: url('/wp-content/uploads/2026/06/whatsapp.svg');
    mask-image: url('/wp-content/uploads/2026/06/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;
}




/* HOVER POST WIDGET BLOG*/
.hover-cards .elementor-post__title a,
.hover-cards .elementor-post__excerpt p {
  transition: color 0.3s ease;
}

.hover-cards .elementor-post__card:hover {
  background-color: #62981D !important;
}

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


/* Botón leer más - cards reutilizables */
.hover-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: #E6B011;
  color: #ffffff !important;
  text-decoration: none;
  line-height: 1;
  transition: background-color 0.3s ease, color 0.3s ease;
}

.hover-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 aria-hidden='true' class='e-font-icon-svg e-fas-arrow-circle-right' 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/path%3E%3C/svg%3E") !important;
  mask-image: url("data:image/svg+xml,%3Csvg aria-hidden='true' class='e-font-icon-svg e-fas-arrow-circle-right' 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/path%3E%3C/svg%3E") !important;
  
  -webkit-mask-repeat: no-repeat !important;
  mask-repeat: no-repeat !important;
  -webkit-mask-position: center !important;
  mask-position: center !important;
  -webkit-mask-size: contain !important;
  mask-size: contain !important;

}

.hover-cards .elementor-post__read-more:hover {
  background-color: #187EA0;
  color: #ffffff !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;
}




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

/* Títulos principales */
.calendario .orange-agenda__month, .calendario .orange-agenda__times-title{
	font-size: 26px;
	color: #ffffff;
}


/* Anterior / Siguiente */
.calendario .orange-agenda__nav {
 /* font-size: 19px;*/
  color: #ffffff !important;
}

/* Días de la semana: LUN, MAR, MIÉ... */
.calendario .orange-agenda__weekday {
  /*font-size: 19px;*/
  color: #ffffff !important;
}

/* Números del calendario */
.calendario .orange-agenda__day {
  /*font-size: 21px;*/
  color: #ffffff !important;
}

/* Horarios */
.calendario .orange-agenda__time {
  /*font-size: 19px;*/
  color: #ffffff !important;
}

/* Mantener domingos en rojo */
.calendario .orange-agenda__weekday--sunday,
.calendario .orange-agenda__day--sunday {
  color: #ff3b3b !important;
}

/* Domingos deshabilitados rojos suaves */
.calendario .orange-agenda__day--disabled.orange-agenda__day--sunday {
  color: rgba(255, 59, 59, 0.75) !important;
}

.orange-agenda-summary{
  font-family: 'Poppins' !important;
}




/* Ocultar título nativo del theme en internas de Custom Post Types */
body.single:not(.single-post) main.site-main > .page-header,
body.single:not(.single-post) main.site-main > article > .entry-header,
body.single:not(.single-post) main.site-main > article > header.entry-header,
body.single:not(.single-post) h1.entry-title {
  display: none !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.03);
}




/* 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;   /* 👈 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 */
  }
}


/* =========================================
   EXCLUIR SELECTS DEL FLOATING LABEL
   Aplica a cualquier select dentro de formularios .float
========================================= */

/* El grupo del select no debe comportarse como floating label */
.float .elementor-field-type-select {
  position: relative;
}

/* El label del select vuelve a comportarse normal */
.float .elementor-field-type-select > .elementor-field-label {
  position: static !important;
  top: auto !important;
  left: auto !important;
  transform: none !important;
  pointer-events: auto !important;
  opacity: 1 !important;
  font-size: inherit !important;
  line-height: normal !important;
  margin-bottom: 6px !important;
  z-index: auto !important;
  color: #ffffff !important;
}

/* Reset completo del select para que NO herede el padding del floating label */
.float .elementor-field-type-select select,
.float .elementor-field-type-select select.elementor-field,
.float .elementor-field-type-select select.elementor-field-textual {
  height: 52px !important;
  min-height: 52px !important;

  padding-top: 0 !important;
  padding-bottom: 0 !important;
  padding-left: 18px !important;
  padding-right: 42px !important;

  line-height: 52px !important;
  box-sizing: border-box !important;

  display: block !important;
  vertical-align: middle !important;
}

/* Evita que el estado focus/filled del JS afecte el label del select */
.float .elementor-field-type-select.is-focus > .elementor-field-label,
.float .elementor-field-type-select.is-filled > .elementor-field-label {
  position: static !important;
  top: auto !important;
  left: auto !important;
  transform: none !important;
  opacity: 1 !important;
  font-size: inherit !important;
  line-height: normal !important;
}

/* Evita que el padding responsive de los floating labels afecte selects en móvil */
@media (max-width: 767px) {
  .float .elementor-field-type-select select,
  .float .elementor-field-type-select select.elementor-field,
  .float .elementor-field-type-select select.elementor-field-textual {
    height: 52px !important;
    min-height: 52px !important;

    padding-top: 0 !important;
    padding-bottom: 0 !important;
    padding-left: 18px !important;
    padding-right: 42px !important;

    line-height: 52px !important;
  }
}

/* Firefox suele manejar distinto el line-height en selects */
@-moz-document url-prefix() {
  .float .elementor-field-type-select select,
  .float .elementor-field-type-select select.elementor-field,
  .float .elementor-field-type-select select.elementor-field-textual {
    line-height: normal !important;
  }
}



/* QUITAR BORDER EL FOCUS EN FORMULARIOS clase CSS: no-focus-line*/
/* SOLO formularios con la clase no-focus-line */
.no-focus-line .elementor-form input:focus,
.no-focus-line .elementor-form textarea:focus,
.no-focus-line .elementor-form select:focus,
.no-focus-line .elementor-field-group input:focus,
.no-focus-line .elementor-field-group textarea:focus,
.no-focus-line .elementor-field-group select:focus {
  outline: none !important;
  box-shadow: none !important;
}





/* Icono dinámico de empleos */
.ais-empleo-icono {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 50px;
  font-size: 45px;
  line-height: 1;
  color: #2E5388;
}

/* Transición para icono, título y excerpt */
.ais-empleo-card .ais-empleo-icono,
.ais-empleo-card .elementor-heading-title,
.ais-empleo-card .elementor-heading-title a,
.ais-empleo-card .elementor-widget-theme-post-excerpt {
  transition: color 0.3s ease;
}

/* Icono blanco cuando la card hace hover */
.ais-empleo-card:hover .ais-empleo-icono,
.ais-empleo-card:hover .dashicons.ais-empleo-icono {
  color: #ffffff !important;
}

/* Título blanco cuando la card hace hover */
.ais-empleo-card:hover .elementor-heading-title,
.ais-empleo-card:hover .elementor-heading-title a {
  color: #ffffff !important;
}

/* Extracto blanco cuando la card hace hover */
.ais-empleo-card:hover .elementor-widget-theme-post-excerpt {
  color: #ffffff !important;
}





/* Icono dinámico de manuales y políticas */
.icono-manual {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 50px;
  font-size: 45px;
  line-height: 1;
  color: #FFFFFF;
}

/* Transición para icono, título y excerpt */
.manual-card .icono-manual,
.manual-card .elementor-heading-title,
.manual-card .elementor-heading-title a,
.manual-card .elementor-widget-theme-post-excerpt {
  transition: color 0.3s ease;
}

/* Icono blanco cuando la card hace hover */
.manual-card:hover .icono-manual,
.manual-card:hover .dashicons.icono-manual {
  color: #ffffff !important;
}

/* Título blanco cuando la card hace hover */
.manual-card:hover .elementor-heading-title,
.manual-card:hover .elementor-heading-title a {
  color: #ffffff !important;
}

/* Extracto blanco cuando la card hace hover */
.manual-card:hover .elementor-widget-theme-post-excerpt {
  color: #ffffff !important;
}

/* Títulos de manuales: máximo 2 líneas con puntos suspensivos */
.manual-card .elementor-heading-title {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;

  min-height: 2.2em;
  line-height: 1.1em;
}

/* Manuales: resumen máximo 3 líneas */
.manual-card .elementor-widget-theme-post-excerpt {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;

  min-height: 4.5em;
  line-height: 1.5em;
}

/* Títulos de newsletter: máximo 2 líneas con puntos suspensivos */
.news-card .elementor-heading-title {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;

  min-height: 2.2em;
  line-height: 1.1em;
}



/* AIS - LocateAndFilter custom map */
.ais-location-wrapper {
  display: grid;
  grid-template-columns: 40% 59%;
  gap: 10px;
  width: 100%;
  align-items: stretch;
}

/* Columna izquierda */
.ais-location-list-col {
  background: #62981d;
  border-radius: 28px;
  padding: 44px;
  min-height: 520px;
  display: flex;
  align-items: center;
  color: #fff !important;
}

.ais-location-list-col,
.ais-location-list-col * {
  color: #fff !important;
}

.ais-location-list-col .map-nav-wrapper {
  width: 100%;
  height: auto !important;
  overflow: visible !important;
}

.ais-location-list-col .map-nav-results-found {
  margin: 0 0 14px !important;
  font-size: 16px !important;
  line-height: 1.2 !important;
  font-weight: 700 !important;
  color: #fff !important;
}

.ais-location-list-col .map-nav-item {
  width: 100% !important;
  float: none !important;
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
  cursor: pointer;
  color: #fff !important;
}

.ais-location-list-col .map-nav-item:hover,
.ais-location-list-col .map-nav-item.focus {
  background: transparent !important;
  color: #fff !important;
}

.ais-location-list-col .map-nav-item + .map-nav-item {
  margin-top: 18px !important;
}

/* Card ubicación */
.ais-location-card {
  width: 100%;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 22px;
  padding: 28px 30px;
  background: rgba(255,255,255,.08);
  color: #fff !important;
}

.ais-location-card,
.ais-location-card * {
  color: #fff !important;
}

.ais-location-card-title {
  margin: 0 0 14px !important;
  padding: 0 !important;
  color: #fff !important;
  font-size: 25px !important;
  line-height: 1.2 !important;
  font-weight: 800 !important;
}

.ais-location-card-content p {
  margin: 0 0 8px !important;
  padding: 0 !important;
  color: #fff !important;
  font-size: 15px !important;
  line-height: 1.35 !important;
}

.ais-location-card-content strong {
  color: #fff !important;
  font-weight: 800 !important;
}

.ais-location-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 28px;
}

.ais-location-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-width: 125px;
  padding: 13px 24px;
  border-radius: 999px;
  background: rgba(255,255,255,.24);
  color: #fff !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  text-decoration: none !important;
  transition: all .25s ease;
}

.ais-location-btn img {
  width: 24px;
  height: 24px;
  display: block;
  flex: 0 0 auto;
}

.ais-location-btn:hover {
  background: #fff;
  color: #62981d !important;
}

.ais-location-btn:hover span {
  color: #62981d !important;
}

/* Mapa */
.ais-location-map-col {
  min-height: 520px;
  border-radius: 28px;
  overflow: hidden;
}

.ais-location-map-col .leaflet-container {
  width: 100% !important;
  height: 520px !important;
  min-height: 520px !important;
  border-radius: 28px;
}

/* Popup base Leaflet */
.ais-location-map-col .leaflet-popup {
  opacity: 1 !important;
}

.ais-location-map-col .leaflet-popup-content-wrapper {
  background: #fff !important;
  opacity: 1 !important;
  border-radius: 14px !important;
  box-shadow: 0 8px 22px rgba(0,0,0,.16) !important;
}

.ais-location-map-col .leaflet-popup-content {
  width: 260px !important;
  margin: 12px 14px !important;
}

.ais-location-map-col .leaflet-popup-tip {
  background: #fff !important;
}

.ais-location-map-col .leaflet-popup-close-button {
  top: 8px !important;
  right: 8px !important;
  width: 22px !important;
  height: 22px !important;
  font-size: 18px !important;
  line-height: 20px !important;
}

/* Tooltip / popup interno */
.ais-location-tooltip {
  max-width: 260px;
  color: #000 !important;
}

.ais-location-tooltip,
.ais-location-tooltip * {
  opacity: 1 !important;
}

.ais-location-tooltip-title {
  margin: 0 0 7px !important;
  padding: 0 !important;
  text-align: left !important;
  font-size: 20px !important;
  line-height: 1.5 !important;
  font-weight: 800 !important;
  color: #000 !important;
}

.ais-location-tooltip p {
  margin: 0 0 5px !important;
  padding: 0 !important;
  font-size: 15px !important;
  line-height: 1.5 !important;
  color: #000 !important;
}

.ais-location-tooltip strong {
  font-weight: 800 !important;
  color: #000 !important;
}

.ais-location-tooltip-actions {
  display: flex;
  gap: 8px;
  margin-top: 15px !important;
}

.ais-location-tooltip-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 7px 13px !important;
  border-radius: 999px;
  background: #eee;
  color: #000 !important;
  font-size: 15px !important;
  line-height: 1 !important;
  font-weight: 700 !important;
  text-decoration: none !important;
}

.ais-location-tooltip-btn img {
  width: 18px !important;
  height: 18px !important;
  display: block;
  flex: 0 0 auto;
}

.ais-location-tooltip-btn:hover {
  background: #62981d;
  color: #fff !important;
}

.ais-location-tooltip-btn:hover span {
  color: #fff !important;
}

/* Responsive */
@media (max-width: 1024px) {
  .ais-location-wrapper {
    grid-template-columns: 1fr;
  }

  .ais-location-list-col {
    min-height: auto;
  }

  .ais-location-map-col,
  .ais-location-map-col .leaflet-container {
    min-height: 460px !important;
    height: 460px !important;
  }
}

@media (max-width: 767px) {
  .ais-location-wrapper {
    gap: 18px;
  }

  .ais-location-list-col {
    padding: 32px 22px;
    border-radius: 22px;
  }

  .ais-location-card {
    padding: 24px 22px;
    border-radius: 18px;
  }

  .ais-location-card-title {
    font-size: 24px !important;
  }

  .ais-location-card-content p {
    font-size: 18px !important;
  }

  .ais-location-actions {
    gap: 10px;
  }

  .ais-location-btn {
    min-width: auto;
    flex: 1;
    font-size: 16px !important;
    padding: 12px 18px;
  }

  .ais-location-btn img {
    width: 22px;
    height: 22px;
  }

  .ais-location-map-col,
  .ais-location-map-col .leaflet-container {
    min-height: 380px !important;
    height: 380px !important;
    border-radius: 22px;
  }

  .ais-location-map-col .leaflet-popup-content {
    width: 250px !important;
    margin: 12px 14px !important;
  }
}

.ais-location-url-value {
  display: none !important;
}

/* OCULTAR CAMPOS VACIOS MAPA */
.ais-location-url-value,
.ais-location-field-empty,
.ais-location-link-empty,
.ais-location-actions-empty {
  display: none !important;
}



/* AIS - Ocultar contador de resultados del mapa */
.ais-location-list-col .map-nav-results-found,
#results-found-2791 {
  display: none !important;
}


/* AIS - Marker personalizado LocateAndFilter / Leaflet */
.ais-location-map-col .leaflet-marker-pane .awesome-marker.leaflet-interactive,
.ais-location-map-col .leaflet-marker-pane .leaflet-marker-icon.leaflet-interactive {
  width: 48px !important;
  height: 58px !important;
  margin-left: -24px !important;
  margin-top: -58px !important;
	background: url("/wp-content/uploads/2026/06/ubicacion-1.svg") center center / contain no-repeat !important;
  border: 0 !important;
  box-shadow: none !important;
  cursor: pointer;
}

/* Ocultar icono default del plugin */
.ais-location-map-col .leaflet-marker-pane .awesome-marker.leaflet-interactive i {
  display: none !important;
}

/* Icono/logo sobre el pin */
.ais-location-map-col .leaflet-marker-pane .awesome-marker.leaflet-interactive::after,
.ais-location-map-col .leaflet-marker-pane .leaflet-marker-icon.leaflet-interactive::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 38%;
  width: 22px;
  height: 22px;
  transform: translate(-50%, -50%);
  background: url("/wp-content/uploads/2026/06/cropped-Capa-2-1.png") center center / contain no-repeat;
  pointer-events: none;
}

/* Quitar sombra vieja */
.ais-location-map-col .leaflet-shadow-pane .awesome-marker-shadow,
.ais-location-map-col .leaflet-shadow-pane .leaflet-marker-shadow {
  display: none !important;
}

/* Subir un poco el popup para que no se monte sobre el pin */
.ais-location-map-col .leaflet-popup {
  margin-bottom: 35px !important;
}


/* AIS - Forzar Inter en todo el shortcode */
.ais-location-wrapper,
.ais-location-wrapper *,
.ais-location-map-col,
.ais-location-map-col *,
.ais-location-map-col .leaflet-container,
.ais-location-map-col .leaflet-popup,
.ais-location-map-col .leaflet-popup *,
.ais-location-map-col .leaflet-control,
.ais-location-map-col .leaflet-control * {
  font-family: "Inter", Arial, sans-serif !important;
}

/* AIS - Título fijo para llenar mejor la card izquierda */
.ais-location-list-col .map-nav-wrapper::before {
  content: "NUESTRO CAMPUS";
  display: block;
  margin: 0 0 22px;
  color: #fff !important;
  font-family: "Inter", Arial, sans-serif !important;
  font-size: 30px;
  line-height: 1.05;
  font-weight: 800;
  letter-spacing: .02em;
  text-transform: uppercase;
  text-align: center !important;
}
/* Título fijo - Inglés */
html[lang^="en"] .ais-location-list-col .map-nav-wrapper::before,
body.lang-en .ais-location-list-col .map-nav-wrapper::before,
body:has(a[href*="/es/"]) .ais-location-list-col .map-nav-wrapper::before {
  content: "OUR CAMPUS";
}

/* Ajuste del texto de resultados */
.ais-location-list-col .map-nav-results-found {
  margin: 0 0 18px !important;
  font-family: "Inter", Arial, sans-serif !important;
}

/* Responsive */
@media (max-width: 767px) {
  .ais-location-list-col .map-nav-wrapper::before {
    font-size: 26px;
    margin-bottom: 16px;
  }

  .ais-location-list-col .map-nav-results-found {
    font-size: 15px !important;
  }
}




/* =========================================
   Video hover overlay (debajo del icono play)
   Clase: video-hover
   ========================================= */

.video-hover{
  position: relative;
  overflow: hidden;
  border-radius: 16px; /* ajusta */
}

/* 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 */
}



/* LANGUAGE SWITCHER - AIS */
/* Language switcher - AIS */
.elementor-element-0736a26 .cpel-switcher__lang > a {
  display: flex !important;
  align-items: center !important;
  border-radius: 20px !important;
}

/* Alinear bandera */
.elementor-element-0736a26 .cpel-switcher__flag {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
  margin-right: 3px !important;
}

.elementor-element-0736a26 .cpel-switcher__flag img {
  display: block !important;
  line-height: 1 !important;
}

/* Alinear texto y quitar separación extra con la bandera */
.elementor-element-0736a26 .cpel-switcher__code {
  display: flex !important;
  align-items: center !important;
  line-height: 0 !important;
  margin-left: 0 !important;
  padding-left: 5px !important;
  padding-top: 3px;
}

/* Contenedor de la flecha: separada del texto */
.elementor-element-0736a26 .cpel-switcher__icon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: inherit !important;
  font-size: 0 !important;
  line-height: 1 !important;
  padding-left: 0 !important;
  margin-left: 10px !important;
}

/* Chevron sin relleno */
.elementor-element-0736a26 .cpel-switcher__icon::before {
  content: "" !important;
  display: block !important;
  width: 8px;
  height: 8px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  margin-top: -5px;
}



/* QUITAR BORDER RADIUS EN ACORDEÓN AL MOMENTO DE ESTAR ABIERTO */
/* =========================================
   ACCORDION: unión header/contenido sin radius
   Clase en el widget: acc-join-flat
========================================= */

/* Cuando el item está abierto (details[open]) quitamos SOLO el radius inferior del header */
.acc-join-flat .e-n-accordion-item[open] summary {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}






/* Footer menu en 2 columnas por filas */
.ais-footer-menu .elementor-nav-menu--main .elementor-nav-menu {
	display: grid !important;
	grid-template-columns: repeat(2, max-content);
	column-gap: 70px;
	row-gap: 14px;
	align-items: start;
}

.ais-footer-menu .elementor-nav-menu--main .elementor-nav-menu > li {
	margin: 0 !important;
	width: auto !important;
}

.ais-footer-menu .elementor-nav-menu--main .elementor-nav-menu > li > a {
	display: inline-flex !important;
	padding: 0 !important;
	line-height: 1.2;
	white-space: nowrap;
}

@media (max-width: 767px) {
	.ais-footer-menu .elementor-nav-menu--main .elementor-nav-menu {
		grid-template-columns: 1fr;
		column-gap: 0;
		row-gap: 12px;
	}

	.ais-footer-menu .elementor-nav-menu--main .elementor-nav-menu > li > a {
		white-space: normal;
	}
}





/* Footer - ajustar iconos sociales */
.footer-social-icons .elementor-social-icon {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
}

/* Correo - tamaño y corrección visual de alineación */
.footer-social-icons .elementor-social-icon-envelope svg {
	width: 28px !important;
	height: 28px !important;
	display: block !important;
	transform: translateY(1.7px) !important;
}



/* Flip Box - justificar textos frente y reverso */
.flip-justify .elementor-flip-box__layer__description {
	text-align: justify !important;
	text-justify: inter-word;
}

/* Quitar espacio inferior solo en el carrusel car-ac */
.car-ac .swiper-slide-inner {
    margin: 0 !important;
    padding: 0 !important;
    line-height: 0 !important;
}

.car-ac .swiper-slide-image {
    display: block !important;
    width: 100%;
}






/* Menú vertical dentro del off-canvas */
.menu-lateral .elementor-nav-menu,
.menu-lateral .elementor-nav-menu > li {
	width: 100%;
}

/* Los elementos con submenú pueden crecer verticalmente */
.menu-lateral .menu-item-has-children {
	display: flex;
	flex-wrap: wrap;
	position: relative;
}

/* Enlace principal */
.menu-lateral .menu-item-has-children > a {
	width: 100%;
}

/* Submenú debajo del elemento padre */
.menu-lateral .sub-menu {
	position: static !important;
	inset: auto !important;
	top: auto !important;
	right: auto !important;
	bottom: auto !important;
	left: auto !important;

	width: 100% !important;
	min-width: 100% !important;
	max-width: 100% !important;

	margin: 0 !important;
	padding: 8px 0 8px 20px !important;

	transform: none !important;
	box-shadow: none !important;
}

/* Enlaces de los subitems */
.menu-lateral .sub-menu li,
.menu-lateral .sub-menu a {
	width: 100% !important;
}

/* Evitar que Elementor coloque subniveles hacia la derecha */
.menu-lateral .sub-menu .sub-menu {
	position: static !important;
	margin: 0 !important;
	padding-left: 20px !important;
}

/* EFECTO DE HOVER PARA MENU LATERAL */
.menu-lateral .menu-item a {
    padding: 15px 0;
    border-bottom: solid 1px #d7d4cd;
}

.menu-lateral .menu-item a:hover {
    border-color: #FF7100;
}













/* Feed administrable de Instagram */
.ais-instagram-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 90px;
	width: 100%;
	align-items: stretch;
}

/* Ambas publicaciones con la misma altura */
.ais-instagram-item {
	position: relative;
	width: 100%;
	min-width: 0;
	height: 690px;
	overflow: hidden;
	background: #fff;
	border: 1px solid #dbdbdb;
	border-radius: 20px;
	box-sizing: border-box;
}

/* Reducir visualmente todo el embed */
.ais-instagram-item .instagram-media {
	width: 112% !important;
	min-width: 0 !important;
	max-width: none !important;
	margin: 0 0 0 -6% !important;
	box-sizing: border-box !important;
	border: 0 !important;

	transform: scale(0.89);
	transform-origin: top center;
}

/* Degradado para suavizar el corte */
.ais-instagram-more {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 5;
	display: flex;
	align-items: flex-end;
	justify-content: flex-start;
	height: 92px;
	padding: 0 16px 14px;
	background: linear-gradient(
		to bottom,
		rgba(255, 255, 255, 0) 0%,
		rgba(255, 255, 255, 0.94) 48%,
		#fff 72%
	);
	box-sizing: border-box;
	pointer-events: none;
}

/* Leer más / Read more */
/*.ais-instagram-more a {
	position: relative;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	font-size: 14px;
	font-weight: 600;
	text-transform: uppercase;
	line-height: 1.2;
	color: #405de6;
	text-decoration: none;
	pointer-events: auto;
}

.ais-instagram-more a::after {
	content: " →";
	margin-left: 5px;
}

.ais-instagram-more a:hover {
	text-decoration: underline;
}*/



/* Botón LEER MÁS / READ MORE */
.ais-instagram-more a {
	position: relative;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 30px;
	padding: 10px 20px;
	border-radius: 30px;
	background-color: #4CAF24;
	color: #fff !important;
	font-size: 14px;
	font-weight: 600;
	line-height: 1;
	text-decoration: none !important;
	text-transform: uppercase;
	transition:
		background-color 0.25s ease,
		transform 0.25s ease;
	pointer-events: auto;
	margin-left: -8px;
}

/* Flecha */
/*.ais-instagram-more a::after {
	content: "→";
	margin-left: 8px;
}*/


.ais-instagram-arrow {
	width: 17px;
	height: 17px;
	margin-left: 8px;
	flex-shrink: 0;
	fill: currentColor;
}


/* Hover naranja */
.ais-instagram-more a:hover,
.ais-instagram-more a:focus {
	background-color: #ff6b00;
	color: #fff !important;
	text-decoration: none !important;
	transform: translateY(-2px);
}




/* Tablet y móvil */
@media (max-width: 767px) {
	.ais-instagram-grid {
		grid-template-columns: 1fr;
		gap: 20px;
	}

	.ais-instagram-item {
		height: 690px;
	}

	.ais-instagram-item .instagram-media {
		width: 110% !important;
		margin-left: -5% !important;
		transform: scale(0.91);
	}
}





/* Banderas inactivas en gris */
.lang-switcher .cpel-switcher__lang:not(.cpel-switcher__lang--active)
.cpel-switcher__flag img {
	filter: grayscale(100%);
	opacity: 0.65;
	transition: filter 0.25s ease, opacity 0.25s ease;
}

/* Al hacer hover, la bandera inactiva recupera su color */
.lang-switcher .cpel-switcher__lang:not(.cpel-switcher__lang--active):hover
.cpel-switcher__flag img {
	filter: grayscale(0%);
	opacity: 1;
}

/* La bandera del idioma activo siempre queda a color */
.lang-switcher .cpel-switcher__lang--active
.cpel-switcher__flag img {
	filter: grayscale(0%);
	opacity: 1;
}