.elementor-7048 .elementor-element.elementor-element-8aa7d1f{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-7048 .elementor-element.elementor-element-aaa52c5{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-7048 .elementor-element.elementor-element-9c5e122{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-7048 .elementor-element.elementor-element-ddbee4b{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-7048 .elementor-element.elementor-element-1c78d25{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-7048 .elementor-element.elementor-element-ff7f3f2{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-7048 .elementor-element.elementor-element-8ba7674{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-7048 .elementor-element.elementor-element-2fbbd20{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}:root{--page-title-display:none;}/* Start custom CSS for container, class: .elementor-element-8aa7d1f *//* Sube el contenido visible del slider para que el círculo toque la franja azul */
.elementor-location-header + #utm-slider .viewport{
  margin-top: -10px; /* prueba -8 a -14 si quieres ajustar fino */
}

/* Capas correctas */
.elementor-location-header { position: relative; z-index: 200; }
#utm-slider               { position: relative; z-index: 150; }

/* Quita sombras/bordes que a veces re-aparecen en sticky */
.elementor-location-header,
.elementor-sticky--effects.elementor-sticky--active{
  box-shadow: none !important;
  border-bottom: 0 !important;
}
/* 1) Elementor crea un spacer blanco cuando el header es sticky */
.elementor-location-header + .elementor-sticky__spacer{
  height:0 !important;
  margin:0 !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
}

/* 2) “Pegamos” el header al siguiente bloque solapando 10–12px */
.elementor-location-header{
  margin-bottom:-12px !important; /* si hiciera falta, prueba -14px */
  border-bottom:0 !important;
  box-shadow:none !important;
  position:relative; z-index:200;
}

/* 3) Por si el tema mete padding/margen arriba del contenido */
#content, .site-content, #primary, main, #page{
  margin-top:0 !important;
  padding-top:0 !important;
}

/* 4) El slider no añade nada arriba y queda debajo del header */
#utm-slider{ margin-top:0 !important; padding-top:0 !important; position:relative; z-index:150; }

/* 5) Previene el “hairline” de subpíxel en algunos navegadores */
.elementor-location-header,
#utm-slider .viewport{ transform: translateZ(0); }
/* ==== FIX “seam”/corte al centro en móvil (Safari/preview) ==== */

/* 1) Cada slide ocupa EXACTAMENTE el 100% del viewport del slider */
#utm-slider .track{
  display:flex;
  will-change: transform;
  transform: translateZ(0);           /* activa GPU */
  backface-visibility: hidden;
}
#utm-slider .slide{
  flex: 0 0 100% !important;          /* elimina redondeos */
  min-width: 100% !important;         /* fuerza el 100% real */
  box-sizing: border-box;
  backface-visibility: hidden;
  transform: translateZ(0);
  /* máscara anti-hairline (si el navegador pinta 1px) */
  box-shadow: inset 1px 0 0 #fff, inset -1px 0 0 #fff;
}
#utm-slider .slide > img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  backface-visibility: hidden;
  transform: translateZ(0);
}

/* 2) En móvil mantenemos sólo a la persona, sin overlays que puedan crear un corte */
@media (max-width: 768px){
  #utm-slider .slide        { aspect-ratio: 2 / 3; min-height: clamp(540px,84vh,940px); }
  #utm-slider .slide::before{ background:none; }  /* desactiva decorado que divide */

  /* foco a la derecha para “cortar” el texto del arte */
  #utm-slider .slide--ing  img,
  #utm-slider .slide--eco  img,
  #utm-slider .slide--ger  img,
  #utm-slider .slide--mer  img{ object-position: 88% 24%; }
  #utm-slider .slide--dip  img{ object-position: 86% 22%; }

  /* Controles */
  #utm-slider .nav{ padding:6px 10px; }
  #utm-slider .btn{ min-width:40px; min-height:40px; font-size:18px; }
  #utm-slider .next{ margin-right:max(8px, env(safe-area-inset-right)); transform:translateX(-4px); }
  #utm-slider .dots{ padding-bottom:14px; }
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-aaa52c5 *//* ===== Ajuste móvil: bajar el bloque de texto para que el título respire ===== */
@media (max-width: 980px){
  /* dejamos de centrar verticalmente y anclamos arriba */
  #utm-duo-text .overlay{
    align-items: flex-start;
  }
  /* empujamos el panel hacia abajo */
  #utm-duo-text .panel{
    margin-top: clamp(36px, 12vh, 120px); /* ajusta 12vh a tu gusto (10–16vh) */
  }
}

/* Afinado para pantallas muy pequeñas */
@media (max-width: 420px){
  #utm-duo-text .panel{
    margin-top: clamp(48px, 16vh, 160px);
  }
  #utm-duo-text h2.title{
    font-size: clamp(1.8rem, 7vw, 2.4rem); /* un pelín más contenido */
    line-height: 1.06;
  }
  #utm-duo-text .desc{
    font-size: .96rem; /* opcional: hace el párrafo más legible */
  }
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-ddbee4b *//* ===== UTM Programas · FIX PACK: más alto y centrado ===== */

/* Más altura al fondo amarillo (padding vertical grande) */
#utm-programas{
  padding-block: clamp(36px, 5vw, 72px) clamp(48px, 7vw, 100px) !important;
}

/* Centrar el contenido del bloque amarillo */
#utm-programas .wrap{
  display: flex;
  flex-direction: column;
  align-items: center;          /* centra título y grilla */
  gap: clamp(16px, 2.5vw, 28px);
}

/* Título con más respiro */
#utm-programas .titulo{
  margin-bottom: clamp(18px, 3vw, 32px) !important;
}

/* Tarjetas un poquito más altas y consistentes */
#utm-programas .card{
  min-height: 200px;            /* antes 160px */
}

/* En móviles: más espacio abajo para no chocar con el chat flotante */
@media (max-width: 640px){
  #utm-programas{ padding-bottom: clamp(90px, 12vw, 120px) !important; }
}
/* UTM Programas · título principal en blanco */
#utm-programas .titulo{
  color:#fff !important;
  text-shadow:0 2px 10px rgba(0,0,0,.15); /* mejora lectura sobre amarillo */
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-ff7f3f2 *//* ===== Botones UTM (mismo look azul del formulario) ===== */
#utm-location .btn{
  appearance:none; border:0; border-radius:14px; cursor:pointer;
  padding:.9rem 1.15rem; font-weight:800; text-decoration:none;
  display:inline-flex; align-items:center; gap:.55rem;
  box-shadow:0 10px 22px rgba(10,77,147,.22);
  transition:transform .15s ease, box-shadow .15s ease, filter .15s ease;
  white-space:nowrap;
  line-height:1;
}
#utm-location .btn svg{ width:18px; height:18px; }

/* Primario: azul degradado, texto blanco */
#utm-location .btn.primary{
  background:linear-gradient(180deg, #0b5fb1 0%, #0a4d93 100%);
  color:#fff;
  border:0;
}
#utm-location .btn.primary svg{ color:#ffffff; }

/* Secundario (ghost): fondo blanco, borde azul */
#utm-location .btn.ghost{
  background:#ffffff;
  color:#0a4d93;
  border:2px solid #d9e7ff;
  box-shadow:0 8px 18px rgba(10,77,147,.12);
}
#utm-location .btn.ghost svg{ color:#0a4d93; }

/* Hover / Focus (ambos) */
#utm-location .btn:hover,
#utm-location .btn:focus{
  transform:translateY(-1px);
  box-shadow:0 14px 28px rgba(10,77,147,.28);
  outline:none;
}

/* Full width en móvil (opcional) */
@media (max-width:560px){
  #utm-location .actions .btn{ width:100%; justify-content:center; }
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-8ba7674 *//* ===== UTM · Botón Forminator (look limpio azul) ===== */
#utm-admisiones-form .forminator-ui .forminator-button,
#utm-admisiones-form .forminator-ui .forminator-button-submit{
  background: linear-gradient(180deg, #0b5fb1 0%, #0a4d93 100%) !important; /* azul UTM */
  color: #ffffff !important;             /* texto blanco */
  font-weight: 800 !important;
  letter-spacing: .2px !important;
  border: 0 !important;
  border-radius: 14px !important;
  padding: 12px 22px !important;
  min-width: 200px !important;
  box-shadow: 0 10px 22px rgba(10,77,147,.22) !important;
  transition: transform .15s ease, box-shadow .15s ease, filter .15s ease !important;
  text-transform: none !important;
}

/* Hover / Focus */
#utm-admisiones-form .forminator-ui .forminator-button:hover,
#utm-admisiones-form .forminator-ui .forminator-button:focus{
  transform: translateY(-1px);
  box-shadow: 0 14px 28px rgba(10,77,147,.28) !important;
  outline: none !important;
}

/* Estado deshabilitado / enviando */
#utm-admisiones-form .forminator-ui .forminator-button[disabled]{
  filter: grayscale(.25) brightness(.95);
  cursor: not-allowed !important;
}

/* Alineación del botón (cámbialo a center si lo prefieres centrado) */
#utm-admisiones-form .forminator-ui .forminator-row-last{ text-align: left; }

/* Full width en móvil (opcional) */
@media (max-width:560px){
  #utm-admisiones-form .forminator-ui .forminator-button{ width:100% !important; }
}

/* (Opcional) Avisos de error más limpios */
#utm-admisiones-form .forminator-ui .forminator-error-message{
  background: #fff7f7 !important;
  color: #a12c2c !important;
  border: 1px solid #f3caca !important;
  border-radius: 10px !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-2fbbd20 *//* ===== Override amarillo UTM en el footer ===== */
#utm-footer{
  /* Amarillo institucional UTM */
  --yellow:#F2A907;
}

/* 1) Barra superior del footer */
#utm-footer .bar{ background: var(--yellow) !important; }

/* 2) Tarjetas/links del Sistema UTM (hover/activo) */
#utm-footer .sys-link:hover{
  background: var(--yellow) !important;
  color:#0b1324 !important;
  border-color: rgba(242,169,7,.9) !important;
  box-shadow: 0 12px 26px rgba(242,169,7,.35) !important;
}

/* Si usas una tarjeta marcada como activa, añade la clase .is-active */
#utm-footer .sys-link.is-active{
  background: var(--yellow) !important;
  color:#0b1324 !important;
  border-color: rgba(242,169,7,.9) !important;
}

/* 3) Marca: “Thomas More” en amarillo UTM */
#utm-footer .brand-title .word-thomasmore{
  color: var(--yellow) !important;
}

/* (Opcional) Iconos de contacto ya usan var(--yellow); lo reforzamos */
#utm-footer .ico{ color: var(--yellow) !important; }/* End custom CSS */