.elementor-kit-6{--e-global-color-primary:#BD2133;--e-global-color-secondary:#2B2224;--e-global-color-text:#5C5153;--e-global-color-accent:#C7A54E;--e-global-color-f5d4eb1:#FFFFFF;--e-global-typography-primary-font-family:"Jost";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Jost";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Jost";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Jost";--e-global-typography-accent-font-weight:500;font-family:"Jost", Sans-serif;}.elementor-kit-6 e-page-transition{background-color:#FFBC7D;}.elementor-kit-6 h1{font-family:"Jost", Sans-serif;}.elementor-kit-6 h2{font-family:"Jost", Sans-serif;}.elementor-kit-6 h3{font-family:"Jost", Sans-serif;}.elementor-kit-6 h4{font-family:"Jost", Sans-serif;}.elementor-kit-6 h5{font-family:"Jost", Sans-serif;}.elementor-kit-6 h6{font-family:"Jost", Sans-serif;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* ------------------------------------------------------------------
   LK · estilos compartidos de las páginas de programa
   Viven una sola vez en Ajustes del sitio → CSS personalizado, en vez de
   repetirse en el custom_css de cada widget. Los widgets solo llevan la
   clase correspondiente.
   ------------------------------------------------------------------ */

:root {
  --lk-ease: cubic-bezier(.2, .7, .2, 1);
  --lk-sombra: 0 12px 34px rgba(30, 21, 23, .08);
  --lk-sombra-alta: 0 28px 64px rgba(30, 21, 23, .15);
}

/* Imágenes de contenido -------------------------------------------- */
.lk-img img {
  border-radius: 26px;
  box-shadow: 0 18px 44px rgba(30, 21, 23, .13);
  transition: transform .7s var(--lk-ease), box-shadow .5s var(--lk-ease);
}
.lk-img:hover img {
  transform: scale(1.045);
  box-shadow: 0 30px 70px rgba(30, 21, 23, .22);
}

/* Tarjetas blancas ---------------------------------------------------
   Elementor no saca las clases CSS de los contenedores al HTML (sí las de
   los widgets), así que el contenedor se alcanza por el widget que lleva
   dentro con :has().                                                    */
.e-con:has(> .lk-cap),
.e-con:has(> .lk-tile),
.e-con:has(> .e-con > .lk-foto-t) {
  box-shadow: var(--lk-sombra);
  transition: transform .45s var(--lk-ease), box-shadow .45s var(--lk-ease);
}
.e-con:has(> .lk-cap):hover,
.e-con:has(> .lk-tile):hover,
.e-con:has(> .e-con > .lk-foto-t):hover {
  transform: translateY(-7px);
  box-shadow: var(--lk-sombra-alta);
}
.e-con:has(> .lk-tile) { border: 1px solid rgba(30, 21, 23, .05); }

/* Cajas de tarjeta ---------------------------------------------------
   Fondo, relleno, radio y ancho van aquí una sola vez, en vez de
   repetirse en los ajustes de cada uno de los ~25 contenedores.       */
.e-con:has(> .lk-cap),
.e-con:has(> .lk-tile),
.e-con:has(> .lk-accion) {
  background-color: #fff;
  border-radius: 22px;
}
.e-con:has(> .lk-cap) { padding: 22px 24px; border-radius: 18px; width: 48.5%; }
.e-con:has(> .lk-tile) { padding: 30px 28px; width: 31.5%; }
.e-con:has(> .lk-accion) { padding: 34px 30px; width: 280px; }
@media (max-width: 1024px) {
  .e-con:has(> .lk-tile) { width: 47%; }
}

/* Variantes de la ficha: cuatro por fila, y la fila de contacto a lo ancho.
   Van después de la regla base para poder pisarle el ancho.               */
/* Cuatro por fila contando el hueco: con un 23.5% seco la cuarta no entra
   por 4px y cae sola a la fila de abajo.                                  */
.e-con:has(> .lk-tile--4) { width: calc((100% - 72px) / 4); padding: 26px 24px; }
.e-con:has(> .lk-contatto) {
  width: 100%;
  padding: 18px 24px;
  border-radius: 16px;
  background-color: #fff;
  border: 1px solid rgba(30, 21, 23, .05);
}
@media (max-width: 1024px) {
  .e-con:has(> .lk-tile--4) { width: calc((100% - 24px) / 2); }
}
@media (max-width: 767px) {
  .e-con:has(> .lk-tile--4) { width: 100%; }
}
@media (max-width: 767px) {
  .e-con:has(> .lk-cap),
  .e-con:has(> .lk-tile),
  .e-con:has(> .lk-accion) { width: 100%; }
}

/* Tipografía de las tarjetas ---------------------------------------- */
.lk-tile .elementor-icon-box-title,
.lk-cap .elementor-icon-box-title,
.lk-accion .elementor-icon-box-title {
  font-family: "Jost", sans-serif;
  font-weight: 600;
}
.lk-tile .elementor-icon-box-title { font-size: 19px; }
.lk-cap .elementor-icon-box-title { font-size: 17px; }
.lk-accion .elementor-icon-box-title { font-size: 18px; }
.lk-tile .elementor-icon-box-description {
  font-family: "Jost", sans-serif;
  font-size: 15px;
  line-height: 1.65em;
}

/* Cápsulas de icono ------------------------------------------------- */
.lk-cap .elementor-icon,
.lk-tile .elementor-icon {
  display: flex !important;
  align-items: center;
  justify-content: center;
  line-height: 1;
}
.lk-cap .elementor-icon i, .lk-cap .elementor-icon svg,
.lk-tile .elementor-icon i, .lk-tile .elementor-icon svg {
  display: block;
  margin: 0;
  width: 1em;
  height: 1em;
  line-height: 1;
  font-size: inherit;
}
.lk-cap .elementor-icon {
  width: 52px; height: 52px; border-radius: 16px;
  background: rgba(189, 33, 51, .10);
  transition: background .4s var(--lk-ease), transform .4s var(--lk-ease);
}
.lk-cap:hover .elementor-icon { background: #BD2133; transform: rotate(-6deg); }
.lk-cap:hover .elementor-icon i, .lk-cap:hover .elementor-icon svg {
  color: #fff !important; fill: #fff !important;
}
.lk-cap .elementor-icon-box-title { margin: 0; }

.lk-tile .elementor-icon {
  width: 56px; height: 56px; border-radius: 18px;
  background: rgba(189, 33, 51, .10);
  transition: transform .45s var(--lk-ease);
}
.lk-tile:hover .elementor-icon { transform: translateY(-4px) rotate(-5deg); }

/* Listas con icono -------------------------------------------------- */
.lk-list .elementor-icon-list-icon {
  display: flex !important;
  align-items: center;
  justify-content: center;
  flex: 0 0 38px;
  width: 38px; height: 38px;
  padding: 0 !important;
  border-radius: 999px;
  background: rgba(189, 33, 51, .10);
  transition: background .35s var(--lk-ease);
}
.lk-list .elementor-icon-list-icon i,
.lk-list .elementor-icon-list-icon svg {
  width: 1em !important; height: 1em !important;
  line-height: 1; display: block; margin: 0 !important;
}
.lk-list .elementor-icon-list-item { align-items: center; }
.lk-list .elementor-icon-list-item:hover .elementor-icon-list-icon {
  background: rgba(189, 33, 51, .22);
}

/* Botones ----------------------------------------------------------- */
.lk-btn .elementor-button {
  transition: transform .35s var(--lk-ease), background-color .35s var(--lk-ease),
              color .35s var(--lk-ease), border-color .35s var(--lk-ease);
}
.lk-btn .elementor-button:hover { transform: translateY(-3px); }
.lk-btn .elementor-button i { transition: transform .35s var(--lk-ease); }
.lk-btn .elementor-button:hover i { transform: translateX(5px); }

.lk-btn--rojo .elementor-button:hover { background-color: #8E1826 !important; }
.lk-btn--oro  .elementor-button:hover { background-color: #B08F3E !important; color: #fff !important; }
.lk-btn--oro  .elementor-button:hover i { color: #fff !important; }

.lk-btn--fantasma .elementor-button:hover {
  background-color: #fff !important; color: #1E1517 !important; border-color: #fff !important;
}
.lk-btn--fantasma .elementor-button:hover i,
.lk-btn--fantasma .elementor-button:hover svg {
  color: #1E1517 !important; fill: #1E1517 !important;
}
.lk-btn--contorno .elementor-button:hover {
  background-color: #1E1517 !important; color: #fff !important; border-color: #1E1517 !important;
}
.lk-btn--contorno .elementor-button:hover i { color: #fff !important; }
.lk-btn--vidrio .elementor-button { backdrop-filter: blur(6px); }
.lk-btn--vidrio .elementor-button:hover {
  background-color: #fff !important; color: #1E1517 !important; border-color: #fff !important;
}
.lk-btn--vidrio .elementor-button:hover i { color: #1E1517 !important; }

/* Paneles con foto de fondo ----------------------------------------- */
.e-con:has(> .lk-foto-t),
.e-con:has(> .e-con > .lk-foto-t) { overflow: hidden; }

/* Tarjetas de destino ------------------------------------------------
   Elementor declara background-size:cover con más especificidad, así que
   aquí hace falta !important o el zoom del hover no llega a aplicarse.  */
.e-con:has(> .lk-dest-t) {
  overflow: hidden;
  /* cover SIEMPRE: el zoom por background-size (auto 106%) repetía en
     mosaico cualquier foto vertical. El hover queda en elevación+sombra. */
  background-size: cover !important;
  background-repeat: no-repeat !important;
  background-position: center center !important;
  box-shadow: 0 16px 40px rgba(30, 21, 23, .12);
  transition: transform .5s var(--lk-ease), box-shadow .5s var(--lk-ease),
              background-size .9s var(--lk-ease);
}
.e-con:has(> .lk-dest-t):hover {
  transform: translateY(-8px);
  box-shadow: 0 34px 76px rgba(30, 21, 23, .20);
}

/* Móvil: todo centrado ---------------------------------------------
   Las listas con icono se centran como bloque pero el texto de cada
   línea sigue alineado a la izquierda: centrarlo se lee peor.        */
@media (max-width: 767px) {
  .lk-list .elementor-icon-list-items { display: inline-block; text-align: left; }
  /* El título del mapa lo pinta el propio componente, fuera de Elementor. */
  #lk-country-title { text-align: center; }
  .lk-list { text-align: center; }
  .lk-btn { width: 100%; }
  .lk-btn .elementor-button { width: 100%; justify-content: center; }
}

/* Fichas de acción del bloque de inscripción ------------------------ */
.e-con:has(> .lk-accion) {
  box-shadow: 0 14px 34px rgba(30, 21, 23, .16);
  transition: transform .4s var(--lk-ease), box-shadow .4s var(--lk-ease);
}
.e-con:has(> .lk-accion):hover {
  transform: translateY(-6px);
  box-shadow: 0 28px 62px rgba(30, 21, 23, .26);
}
/* El envoltorio del icono no centra solo; sin esto la cápsula se va al margen. */
.lk-accion .elementor-icon-box-icon {
  display: flex !important; justify-content: center; width: 100%;
}
.lk-accion .elementor-icon {
  margin: 0 auto;
  display: flex !important; align-items: center; justify-content: center;
  width: 62px; height: 62px; border-radius: 999px;
  background: rgba(189, 33, 51, .10);
  transition: transform .4s var(--lk-ease), background .4s var(--lk-ease);
}
.lk-accion .elementor-icon i, .lk-accion .elementor-icon svg {
  display: block; margin: 0; width: 1em; height: 1em; line-height: 1;
}
.e-con:has(> .lk-accion):hover .lk-accion .elementor-icon {
  transform: translateY(-3px) scale(1.06);
  background: rgba(189, 33, 51, .18);
}
.lk-accion .elementor-icon-box-title { margin: 0; }
.lk-accion .elementor-icon-box-description { margin: 0; }

/* Galerías de destino ------------------------------------------------
   Elementor solo reparte columnas por encima de 480px; por debajo fuerza
   una sola. Con rejilla propia se controla en todos los anchos, y la
   proporción fija evita que una foto vertical rompa la fila.          */
.lk-galeria .gallery {
  display: grid !important;
  gap: 16px;
  /* minmax(0,…) es imprescindible: con 1fr a secas la columna toma como
     mínimo el ancho intrínseco de la imagen y se sale del contenedor. */
  grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr));
}
.lk-galeria .gallery-item {
  min-width: 0;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  display: block !important;
}
.lk-galeria .gallery-icon { margin: 0 !important; }
.lk-galeria .gallery-item img {
  max-width: 100%;
  border-radius: 18px !important;
  border: none !important;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
  box-shadow: 0 10px 26px rgba(30, 21, 23, .10);
  transition: transform .6s var(--lk-ease), box-shadow .45s var(--lk-ease);
}
.lk-galeria .gallery-item:hover img {
  transform: scale(1.04);
  box-shadow: 0 24px 54px rgba(30, 21, 23, .20);
}
/* Galería de una sola foto: ni rejilla de 2 ni ancho completo. */
.lk-galeria .gallery.gallery-columns-1 {
  grid-template-columns: minmax(0, 1fr);
  max-width: 620px;
  margin-inline: auto;
}

/* Sin pie de foto: los que traía WordPress eran metadatos de stock. */
.lk-galeria .gallery-caption { display: none !important; }

@media (max-width: 767px) {
  .lk-galeria .gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .lk-galeria .gallery.gallery-columns-1 { grid-template-columns: minmax(0, 1fr); }
}

/* Mapa de destinos ---------------------------------------------------
   El componente venía de un sitio con tema Astra. En hello-elementor el
   reset.css aplica padding 8px 16px y borde a todos los <button>, y los
   pines (que son botones) pasaban de 16x16 a 36x20: elipses en vez de
   círculos. Aquí se les devuelve su caja.

   OJO: no poner el ancestro #lk-geo-.elementor-kit-6. Elementor sustituye la
   palabra ".elementor-kit-6" por el ámbito del kit y destroza el .elementor-kit-6
   (quedaba "#lk-geo-.elementor-kit-6 .lk-pin"). La clase basta.        */
.lk-pin {
  box-sizing: border-box !important;
  width: 16px !important;
  height: 16px !important;
  min-width: 0 !important;
  min-height: 0 !important;
  padding: 0 !important;
  border-radius: 50% !important;
  background: #2563eb !important;
  border: 2px solid #fff !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  box-shadow: 0 1px 6px rgba(0, 0, 0, .2) !important;
}

/* El nombre del país lo escribe el propio componente encima del mapa;
   sobra, porque el titular de la sección ya lo dice. */
#lk-country-title { display: none !important; }

/* Tablas comparativas -------------------------------------------------
   La tabla original venía de un widget de plugin que no está en este
   sitio; los datos se recuperaron y se pintan como tabla nativa.
   En móvil se desplaza dentro de su caja, sin romper la página.       */
.lk-tabla { overflow-x: auto; -webkit-overflow-scrolling: touch; border-radius: 16px; }
.lk-tabla table {
  width: 100%; min-width: 720px; border-collapse: collapse;
  font-family: "Jost", sans-serif; font-size: 14px; background: #fff;
}
.lk-tabla thead th {
  background: #BD2133; color: #fff; font-weight: 600;
  padding: 14px 12px; text-align: left; white-space: nowrap;
}
.lk-tabla thead th:first-child { border-top-left-radius: 16px; }
.lk-tabla thead th:last-child { border-top-right-radius: 16px; }
.lk-tabla tbody td {
  padding: 12px; border-bottom: 1px solid rgba(30, 21, 23, .08); vertical-align: top;
}
.lk-tabla tbody tr:nth-child(even) td { background: #FAF8F1; }
.lk-tabla tbody tr:hover td { background: rgba(189, 33, 51, .06); }
.lk-tabla tbody td:first-child { font-weight: 600; white-space: nowrap; }

/* Acento rojo dentro de un titular ---------------------------------- */
.lk-rojo { color: #BD2133; }

/* Cita destacada ------------------------------------------------------
   Para la frase señera de una sección: cursiva, cuerpo mayor y filete
   dorado. Se mantiene alineada a la izquierda también en móvil.        */
.lk-cita p {
  font-size: 20px;
  line-height: 1.65;
  font-style: italic;
  border-left: 4px solid #C7A54E;
  padding-left: 22px;
  margin: 0;
}
@media (max-width: 767px) {
  .lk-cita p { text-align: left; }
}

/* Pasos numerados ----------------------------------------------------- */
.lk-num .elementor-heading-title {
  display: flex; align-items: center; justify-content: center;
  width: 46px; height: 46px; min-width: 46px;
  border-radius: 14px;
  background: rgba(189, 33, 51, .10);
  color: #BD2133;
  font-size: 18px; font-weight: 700; font-family: "Jost", sans-serif;
}
.e-con:has(> .lk-num) {
  box-shadow: 0 10px 30px rgba(30, 21, 23, .07);
  border: 1px solid rgba(30, 21, 23, .05);
  flex-wrap: nowrap;
}
/* En un contenedor flex los widgets nacen con width:100% y la cápsula se
   montaba sobre el texto: la cápsula a su ancho, el texto al resto. */
.elementor-widget.lk-num { width: auto; max-width: none; flex: 0 0 auto; }
.e-con:has(> .lk-num) > .elementor-widget-text-editor { flex: 1 1 0; min-width: 0; }

/* Catálogo protagonista ----------------------------------------------
   La portada del catálogo, inclinada y con el bloque rojo desplazado
   detrás: el mismo motivo de la home (foto + rectángulo rojo).

   Cuelga del enlace que envuelve la portada —el que lleva al formulario
   de arriba—, porque es lo único que mide exactamente lo que mide la
   imagen; anclarlo al widget dejaba el bloque rojo escondido.          */
.lk-catalogo > a,
.lk-catalogo > .elementor-widget-container > a {
  position: relative; display: inline-block; line-height: 0;
}
.lk-catalogo > a::before,
.lk-catalogo > .elementor-widget-container > a::before {
  content: '' !important;
  display: block !important;
  position: absolute;
  inset: -16px -30px 26px 34px;
  background: #BD2133 !important;
  border-radius: 22px;
  transform: rotate(6deg);
  box-shadow: 0 20px 44px rgba(189, 33, 51, .22) !important;
}
.lk-catalogo > a img,
.lk-catalogo > .elementor-widget-container > a img {
  position: relative; z-index: 1;
  transform: rotate(-4deg);
  border-radius: 14px !important;
  box-shadow: 0 28px 56px rgba(30, 21, 23, .28) !important;
  transition: transform .5s var(--lk-ease), box-shadow .5s var(--lk-ease);
}
.lk-catalogo > a:hover img,
.lk-catalogo > .elementor-widget-container > a:hover img {
  transform: rotate(0deg) scale(1.04);
}
/* Prosa rica: secciones de texto largo con h3/listas/imágenes -------- */
.lk-prosa h3, .lk-prosa h4 {
  font-family: "Jost", sans-serif; font-weight: 600; color: #2B2224;
  margin: 1.4em 0 .5em; line-height: 1.25;
}
.lk-prosa h3 { font-size: 24px; }
.lk-prosa h4 { font-size: 19px; }
.lk-prosa ul { list-style: none; padding-left: 0; margin: .8em 0; }
.lk-prosa ul li {
  position: relative; padding-left: 30px; margin-bottom: .55em;
}
.lk-prosa ul li::before {
  content: ''; position: absolute; left: 0; top: .5em;
  width: 9px; height: 9px; border-radius: 999px;
  background: #BD2133;
}
.lk-prosa ol { padding-left: 22px; margin: .8em 0; }
.lk-prosa ol li { margin-bottom: .55em; }
.lk-prosa strong { color: #2B2224; }
.lk-prosa img { border-radius: 18px; max-width: 100%; height: auto; }
.lk-prosa a { color: #BD2133; }
@media (max-width: 767px) {
  .lk-prosa ul li { text-align: left; }
}

/* Portada de catálogo enlazada (imagen normal, mismo motivo lk-catalogo) */
.elementor-widget.lk-portada a { position: relative; display: inline-block; }
.elementor-widget.lk-portada a::before {
  content: ''; position: absolute; inset: -16px -30px 26px 34px;
  background: #BD2133; border-radius: 22px; transform: rotate(6deg);
  box-shadow: 0 20px 44px rgba(189, 33, 51, .22);
}
.elementor-widget.lk-portada img {
  position: relative; z-index: 1; max-width: 320px;
  transform: rotate(-4deg); border-radius: 14px !important;
  box-shadow: 0 28px 56px rgba(30, 21, 23, .28) !important;
  transition: transform .5s var(--lk-ease);
}
.elementor-widget.lk-portada a:hover img { transform: rotate(0deg) scale(1.04); }

/* Extracto recortado en tarjetas ------------------------------------ */
.lk-recorte p {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin: 0;
}

/* Antetítulo -------------------------------------------------------- */
.lk-kicker .elementor-heading-title {
  letter-spacing: .22em;
  text-transform: uppercase;
}

@media (prefers-reduced-motion: reduce) {
  .lk-img img, .e-con:has(> .lk-cap), .e-con:has(> .lk-dest-t), .lk-cap .elementor-icon,
  .lk-tile .elementor-icon, .lk-btn .elementor-button { transition: none; }
  .lk-img:hover img, .e-con:has(> .lk-cap):hover, .e-con:has(> .lk-dest-t):hover { transform: none; }
}

/* Lenguaje de las landings de año escolar -----------------------------
   Píldora roja en mayúsculas que encabeza las tarjetas de programa, y la
   ficha de beneficio con su icono dentro del círculo rojo.             */
.elementor-widget-heading.lk-badge .elementor-heading-title,
.lk-badge .elementor-heading-title {
  display: inline-block;
  padding: 7px 15px;
  border-radius: 99px;
  background: var(--lkid-rojo, #BD2133);
  color: #fff;
}
.lk-beneficio .elementor-icon {
  align-self: flex-start;
}
@media (max-width: 767px) {
  .lk-beneficio .elementor-icon-box-wrapper { flex-direction: column; align-items: center; }
  .lk-beneficio .elementor-icon { align-self: center; }
}/* End custom CSS */