/*
 Theme Name:   hello-elementor Child 
 Description:  hello-elementor Child Theme
 Author:       Elementor

 Template:     hello-elementor 
 Version:      1.0.0
 License:      GNU General Public License v2 or later
 License URI:  http://www.gnu.org/licenses/gpl-2.0.html
 Tags:         light, dark, two-columns, right-sidebar, responsive-layout, accessibility-ready
 Text Domain:  hello-elementor-child
*/

/*=================================================================
	GUÍA DE ESTILOS Y ARQUITECTURA CSS
=================================================================*/
/*
 1. ARQUITECTURA DE ARCHIVOS
 =================================================================
 El sistema de estilos se carga en el siguiente orden a través de `functions.php`:
 - `fonts.css`: Contiene únicamente las declaraciones @font-face para las tipografías del proyecto.
 - `root.css`:  Define todas las variables CSS globales (Custom Properties) para colores, tipografías, espaciados, etc.
 - `style.css`: (Este archivo) Contiene todos los estilos de componentes, layout y utilidades que consumen las variables de `root.css`.

 2. FILOSOFÍA DE TRABAJO (CSS + ELEMENTOR)
 =================================================================
 Este proyecto utiliza un enfoque híbrido para combinar la potencia de un sistema de diseño en CSS con la flexibilidad de Elementor.
 - El CSS (este archivo y `root.css`) actúa como el "Sistema de Diseño". Su objetivo es garantizar la CONSISTENCIA VISUAL. Se debe usar para:
   - Definir colores, tipografías y espaciados globales (variables).
   - Estilizar componentes reutilizables (`.btn`, `.card`, etc.).
   - Aplicar temas visuales a secciones (`.section--light`, `.section--dark`).

 - ELEMENTOR se utiliza para:
   - Construir la estructura y el layout principal de las páginas (crear secciones, contenedores y columnas).
   - Realizar ajustes de layout específicos (alineación, orden) que no necesitan ser reutilizables.
   - Aplicar estilos puntuales o únicos a un elemento que no forma parte del sistema de diseño global.

   En resumen: Usa las CLASES de este CSS para mantener la consistencia. Usa los CONTROLES de Elementor para la estructura y los ajustes específicos.

 3. METODOLOGÍA Y PRINCIPIOS
 =================================================================
 Este proyecto combina varias metodologías para crear un sistema robusto y escalable:

 - SMACSS (Arquitectura): Se utiliza para la organización general del CSS.
   Ejemplo: La clase `.section--light` actúa como un "Tema".
   Documentación: http://smacss.com/

 - BEM (Nomenclatura): Se aplica para nombrar los componentes y sus partes.
   Ejemplo: `.card` (Bloque), `.card__title` (Elemento) y `.btn--xl` (Modificador).
   Documentación: https://getbem.com/

 - OOCSS (Filosofía): Principio de separar la estructura de la apariencia ("skin").
   Ejemplo: La clase base `.btn` define la estructura, mientras que
   `.btn__solid--primary` define el "skin" (colores, fondo).
   Documentación: https://github.com/stubbornella/oocss/wiki

 - FLUID DESIGN (con clamp()): Se utiliza `clamp()` para la tipografía y los
   espaciados, permitiendo que los elementos se adapten fluidamente al
   tamaño de la pantalla y reduciendo la necesidad de múltiples media queries.
   Documentación: https://developer.mozilla.org/es/docs/Web/CSS/clamp

 4. USO DE COLORES Y OPACIDAD
 =================================================================
 Los colores se definen en `root.css` en dos formatos para mayor flexibilidad:

 - Formato Hexadecimal: Para uso directo.
   Ejemplo: `var(--color-primary)`

 - Formato RGB: Para añadir un canal alfa (opacidad). La variable solo
   contiene los números (`50, 86, 126`).
   Ejemplo: `var(--color-primary-rgb)`

   Para usarlo con opacidad, envuélvelo en la función `rgba()`:
   `background-color: rgba(var(--color-primary-rgb), var(--opacity-75));` // Aplica 75% de opacidad.
*/

/*=================================================================
	BLOQUE: RESETS
=================================================================*/
#radius--none *, .radius--none * {
    border-radius: var(--none) !important;
}
#full--radius *, .full--radius * {
    border-radius: var(--radius-full) !important;
}
#padding--none *, .padding--none * {
    padding: var(--none) !important;
}
#margin--none *, .margin--none * {
    margin: var(--none) !important;
}
#gap--none *, .gap--none * {
    gap: var(--none) !important;
}
#spaces--none *, .spaces--none * {
    border-radius: var(--none) !important;
    padding: var(--none) !important;
    margin: var(--none) !important;
    gap: var(--none) !important;
}
#display-none *, .display-none * {
    display: none !important;
}
.link--no-line a {
	text-decoration: none !important;
}

/*=================================================================
	BLOQUE: ESTILOS GENÉRICOS
=================================================================*/
html {
    scroll-padding-top: var(--scroll-padding-top);
}
/** Cuerpo **/
body {
    margin: 0;
    font-family: var(--font-secondary);
    font-size: var(--text-l);
    line-height: var(--line-l);
}
p {
    margin-top: var(--none);
    margin-bottom: var(--space-l);
}
/** Enlaces **/
a {
    font-weight: var(--font-semibold);
    /* Animación */
    display: inline-block;
    will-change: transform, color;
    transition: transform 0.2s linear, color 0.2s linear;
    /* Transición suave para movimiento y color */
}
a:hover {
    /* Animación */
    transform: translateY(-2px);
    /*Mueve el enlace hacia arriba */
}
.link--no-animation a:hover {
    /* Usar para desactivar animaciones en enlaces */
    transform: none;
}
/** Títulos **/
h1, h1.elementor-headline.elementor-headline-animation-type-typing.elementor-headline-letters {
    font-family: var(--font-primary) !important;
    font-size: var(--title-h1);
    font-weight: var(--font-regular);
    line-height: var(--line-s) !important;
}
/* H1 de widget título animado */
h1.elementor-headline.elementor-headline-animation-type-typing.elementor-headline-letters {
    padding: 0 !important;
    margin: 0 !important;
}
h2 {
    font-family: var(--font-primary);
    font-size: var(--title-h2);
    font-weight: var(--font-regular);
    line-height: var(--line-s) !important;
    margin-bottom: 24px !important;
}
h3, h4, h5 {
    font-family: var(--font-secondary);
    font-weight: var(--font-bold);
    line-height: var(--line-m) !important;
}
h3 {
    font-size: var(--title-h3);
}

h4 {
    font-size: var(--title-h4);
}

h5 {
    font-size: var(--title-h5);
}
/** Imágenes **/
.elementor img {
    border-radius: var(--radius-m);
    width: 100%;
    max-width: 100%;
}

/*=================================================================
	BLOQUE: CONTENEDORES DE TEMPLATES (.template)
=================================================================*/
div.template, .template {
    /*Aplicar en todas las secciones principales que se quieran construir manualmente, a excepción de los widgets de template, ya que tendrá esta clase añadida*/
    padding: var(--none);
    margin: var(--none);
    gap: var(--none);
}

/*=================================================================
	BLOQUE: SECCIONES (.section)
=================================================================*/
.section {
    /*Aplicar en todas las secciones principales que se quieran construir manualmente, a excepción de los widgets de template, ya que tendrá esta clase añadida*/
    padding: var(--section-padding-y) var(--section-padding-x);
    margin-bottom: var(--space-4xl);
    gap: var(--space-xl);
}
.section > div {
    gap: var(--space-xl);
}
/*** ELEMENTO: Container ***/
.section__container {
    padding: var(--none);
    gap: var(--space-l);
}
/** MODIFICADOR: Container interno **/
.section__container--inner {
    padding: var(--none) !important;
    gap: var(--space-l) !important;
}
.section__container--inner .e-con-inner {
    padding: var(--none) !important;
}
.section__container--inner .e-con-inner {
    padding: var(--none) !important;
}
/** MODIFICADOR: Container interno con elementos flotantes **/
/* Contenedor */
.section__container--float {
	padding: var(--space-xl) !important;
    gap: var(--space-l) !important;
}
/* Texto */
.section__container--text {
	font-family: var(--font-primary);
	font-size: var(--text-3xl);
	font-weight: var(--font-medium);
	color: var(--color-full-white);
}
/** MODIFICADOR: Container doble columna **/
.section__container--2-col.e-flex.e-con.e-child {
	padding: var(--none) !important;
    gap: 0 !important;
}
/** MODIFICADOR: Tamaño de Imágenes **/
.section__container--img .elementor-widget-image {
    width: 100%;
}
.section__container--img img {
    object-fit: cover;
}
.section__container--img.lg img {
    height: var(--image-height-l);
}
.section__container--img.md img {
    height: var(--image-height-m);
}
/* MODIFICADOR: OVERLAY CON GRADIENTE SOBRE IMAGEN */
.section__container--img.gradient, .section__container--img.gradient-white {
    position: relative;
    display: inline-block;
    border-radius: var(--radius-m); /* Border radius al contenedor */
    overflow: hidden; 
}
.section__container--img.gradient::after, .section__container--img.gradient-white::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    pointer-events: none; /* Permite interactuar con elementos debajo */
    z-index: 1;
}
.section__container--img.gradient::after {
    background-image: var(--gradient-black-bottom-medium);
}
.section__container--img.gradient-white::after {
    background-image: var(--gradient-white-bottom-hard);
}
.section__container--img.gradient img, .section__container--img.gradient-white img {
    display: block;
    width: 100%; 
}
/* MODIFICADOR: Sección con Video */
.section__container--video .elementor-widget-video .elementor-open-inline .elementor-custom-embed-image-overlay,
.section__container--video video.elementor-video {
    border-radius: var(--radius-m) !important;
    overflow: hidden !important;
}
/** VARIANTE: Sección con Logos **/
.section__container--logo--sm img {
    width: auto;
    border-radius: var(--none);
    height: var(--logo-height-s);
}
.section__container--logo--sm, .section__container--logo--sm div {
	gap: var(--space-2xl) !important;
}
.section__container--logo--md img {
    width: auto;
    border-radius: var(--none);
    height: var(--logo-height-m);
}
.section__container--logo--md, .section__container--logo--md div {
	gap: var(--space-4xl) !important;
}
.section__container--logo--lg img {
    width: auto;
    border-radius: var(--none);
    height: var(--logo-height-l);
}
.section__container--logo--lg, .section__container--logo--lg div {
	gap: var(--space-7xl) !important;
}
/** VARIANTE: Sección con Carousel **/
/* Paginación de círculos */
.section__container--carousel--sm .swiper-pagination.swiper-pagination-clickable.swiper-pagination-bullets.swiper-pagination-horizontal,
.section__container--carousel--md .swiper-pagination.swiper-pagination-clickable.swiper-pagination-bullets.swiper-pagination-horizontal,
.section__container--carousel--lg .swiper-pagination.swiper-pagination-clickable.swiper-pagination-bullets.swiper-pagination-horizontal {
    margin-bottom: -35px;
}
/* Tamaños de contenedor, altura de caja y altura de logos */
.section__container--carousel--sm .elementor-carousel-image, .section__container--carousel--sm .elementor-main-swiper, .section__container--carousel--sm .swiper-slide {
    border-radius: var(--none);
    height: var(--logo-height-s) !important;
}
.section__container--carousel--md .elementor-carousel-image, .section__container--carousel--md .elementor-main-swiper, .section__container--carousel--md .swiper-slide {
    border-radius: var(--none);
    height: var(--logo-height-m) !important;
}
.section__container--carousel--lg .elementor-carousel-image, .section__container--carousel--lg .elementor-main-swiper, .section__container--carousel--lg .swiper-slide {
    border-radius: var(--none);
    height: var(--logo-height-l) !important;
}
/** VARIANTE: Sección de CTA **/
.section__container--cta {
    padding: var(--space-4xl);
    border: solid var(--border-s) var(--color-black);
    border-radius: var(--space-4xl);
}
/** VARIANTE: Sección de bucle **/
.section__container--loop .elementor-loop-container.elementor-grid {    
    grid-gap: var(--space-l) !important;
	gap: var(--space-l) !important;
}
.section__container--loop .e-loop__load-more.elementor-button-wrapper {
    margin-top: var(--space-l) !important;
}
/** VARIANTE: Sección de Claim - Main Container **/
.section__container--claim {
    padding: var(--space-5xl);
    border-radius: var(--radius-m);
}
/* Texto */
.section__container--claim--text p {
    font-family: var(--font-primary);
    font-size: var(--text-claim);
    font-weight: var(--font-regular);
    line-height: var(--line-m);
    margin: var(--none);
}
/** VARIANTE: Sección de Módulos de Curso **/
.seccion__container--modulos ol {
    list-style: none;
}
.seccion__container--modulos ol>li strong {
    display: block;
    background: var(--color-white);
    border-radius: var(--radius-m) !important;
    padding: var(--space-l);
    margin-bottom: var(--space-xl);
}
.seccion__container--modulos ol>li>ul {
    margin: var(--space-xl) var(--none);
}
.seccion__container--modulos ol>li ul li {
    display: list-item;
    list-style-type: disc;
}
/** VARIANTE: Sección Salidas Profesionales de Curso **/
/* ELEMENTO: Listas no ordenadas */
.seccion__container--salidas .custom-list--no-order ul {
    list-style: none;
    margin-bottom: var(--none);
    padding-left: var(--none);
}
.seccion__container--salidas .custom-list--no-order li {
    list-style-type: none;
    padding: var(--space-s) var(--space-2xl);
    position: relative;
    margin-bottom: var(--space-m);
    display: block;
}
.seccion__container--salidas .custom-list--no-order li::before {
    content: " ";
    display: block;
    border-style: solid;
    border-width: var(--border-l);
    border-radius: 50%;
    height: var(--none);
    width: var(--none);
    position: absolute;
    left: var(--none);
    top: var(--space-s);
    opacity: .1;
    color: var(--color-primary);
}
.seccion__container--salidas .custom-list--no-order li::after {
    content: "";
    display: block;
    width: var(--space-s);
    height: var(--space-m);
    border-style: solid;
    border-width: var(--none) var(--border-m) var(--border-m) var(--none);
    position: absolute;
    left: var(--space-m);
    top: var(--space-m);
    transform: rotate(45deg);
}

/*=================================================================
	BLOQUE: BENTO (.bento)
=================================================================*/
.bento {
    /*Aplicar en todas las secciones "Bento" que se quieran construir manualmente, a excepción de los widgets de template, ya que tendrá esta clase añadida*/
    padding: var(--section-padding-y) var(--section-padding-x);
    margin-bottom: var(--space-4xl);
    gap: var(--space-xl);
}
.bento > div {
    gap: var(--space-xl);
}
/*** ELEMENTO: Container ***/
.bento__container {
    padding: var(--none);
    gap: var(--space-l);
}
/** MODIFICADOR: Container interno **/
.bento__container--inner>div {
    padding: var(--none) !important;
    gap: var(--space-m) !important;
}
/** MODIFICADOR: Radio de contenedor de imágenes **/
.bento__container--radius {
    border-radius: var(--radius-m) !important;
}
.bento__container--img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
}

/*=================================================================
	BLOQUE: FONDOS (.bg)
=================================================================*/
/* Además del fondo, modifica automáticamente el colores de los títulos, textos y enlaces (con su interacción) */
/** Fondo blanco puro (Principal e interno) **/
.bg--lighter, div.bg--lighter.elementor-element, .bg--inner--lighter, div.bg--inner--lighter.elementor-element {
    background-color: var(--color-full-white);
    color: var(--color-black);
}
/** Fondo blanco roto (Principal e interno) **/
.bg--light, div.bg--light.elementor-element, .bg--inner--light, div.bg--inner--light.elementor-element {
    background-color: var(--color-white);
    color: var(--color-black);
}
/** Fondo blanco alternativo (Principal e interno) **/
.bg--light-alt, div.bg--light-alt.elementor-element, .bg--inner--light-alt, div.bg--inner--light-alt.elementor-element {
    background-color: var(--color-white-alt);
    color: var(--color-black);
}
/** Enlaces en fondos claros **/
.bg--light a, .bg--lighter a, .bg--light-alt a {
    color: var(--color-accent-on-light);
    text-decoration: underline;
}
.bg--light a:hover, .bg--lighter a:hover, .bg--light-alt a:hover {
    color: rgba(var(--color-accent-on-light-rgb), var(--opacity-75));
}
.bg--inner--light a, .bg--inner--lighter a, .bg--inner--light-alt a {
    color: var(--color-accent-on-light) !important;
    text-decoration: underline;
}
.bg--inner--light a:hover, .bg--inner--lighter a:hover, .bg--inner--light-alt a:hover {
    color: rgba(var(--color-accent-on-light-rgb), var(--opacity-75)) !important;
}
/** Fondo negro puro (Principal e interno) **/
.bg--darker, div.bg--darker.elementor-element, .bg--inner--darker, div.bg--inner--darker.elementor-element {
    background-color: var(--color-full-black);
    color: var(--color-full-white);
}
/** Fondo negro lavado (Principal e interno) **/
.bg--dark, div.bg--dark.elementor-element, .bg--inner--dark, div.bg--inner--dark.elementor-element {
    background-color: var(--color-black);
    color: var(--color-full-white);
}
/** Enlaces en fondos oscuros **/
.bg--dark a, .bg--darker a {
    color: var(--color-accent-on-dark);
    text-decoration: underline;
}
.bg--dark a:hover, .bg--darker a:hover {
    color: rgba(var(--color-accent-on-dark-rgb), var(--opacity-75));
}
.bg--inner--dark a, .bg--inner--darker a {
    color: var(--color-accent-on-dark) !important;
    text-decoration: underline;
}
.bg--inner--dark a:hover, .bg--inner--darker a:hover {
    color: rgba(var(--color-accent-on-dark-rgb), var(--opacity-75)) !important;
}
/** Fondo primario (Principal e interno) **/
.bg--primary, div.bg--primary.elementor-element, .bg--inner--primary, div.bg--inner--primary.elementor-element {
    background-color: var(--color-primary);
    color: var(--color-full-white);
}
/** Fondo secundario (Principal e interno)**/
.bg--secondary, div.bg--secondary.elementor-element, .bg--inner--secondary, div.bg--inner--secondary.elementor-element {
    background-color: var(--color-secondary);
    color: var(--color-black);
}
/** Enlaces en fondos de marca **/
.bg--primary a {
    color: var(--color-accent-on-dark);
    text-decoration: underline;
}
.bg--primary a:hover {
    color: rgba(var(--color-accent-on-dark-rgb), var(--opacity-75));
}
.bg--inner--primary a {
    color: var(--color-accent-on-dark) !important;
    text-decoration: underline;
}
.bg--inner--primary a:hover {
    color: rgba(var(--color-accent-on-dark-rgb), var(--opacity-75)) !important;
}
.bg--secondary a {
    color: var(--color-accent-on-light);
    text-decoration: underline;
}
.bg--secondary a:hover {
    color: rgba(var(--color-accent-on-light-rgb), var(--opacity-75));
}
.bg--inner--secondary a {
    color: var(--color-accent-on-light) !important;
    text-decoration: underline;
}
.bg--inner--secondary a:hover {
    color: rgba(var(--color-accent-on-light-rgb), var(--opacity-75)) !important;
}

/*=================================================================
	BLOQUE: MENU (.menu)
=================================================================*/
.menu {
    padding: var(--section-padding-y) var(--section-padding-x);
}
/*** ELEMENTO: Contenedor ***/
.menu__container {
    padding: var(--space-xl) var(--space-4xl);
	box-shadow: var(--shadow-section);
	border-radius: var(--radius-xl);
	border: solid var(--border-s) var(--color-black);	
}
/*** MODIFICADOR: Enlaces ***/
.menu__container--links a {
    text-decoration: none;
	font-family: var(--font-primary);
	cursor: pointer;
}
.menu__container--links a span {
	font-size: var(--text-l) !important;
	font-weight: var(--font-regular) !important;
}
.menu__container--links a:hover, .menu__container--links a:active, .menu__container--links a:visited, .menu__container--links a:focus {
    text-decoration: none !important;
}
.menu__container--links span.e-n-menu-title-text {
	color: var(--color-primary) !important;
}
.menu__container--links .e-n-menu-title.e-current a {
	position: relative;
	font-weight: var(--font-regular) !important;
	color: var(--color-primary);
}
.menu__container--links .e-n-menu-title.e-current a::after {
	content: "";
	position: absolute;
	left: var(--none);
	bottom: -4px;
	width: 100%;
	height: var(--border-s);
	background-color: var(--color-primary);
	transition: all 0.3s ease;
}
/* Iconos de enlaces */
.menu__container--links i.iconphosphor-arrow- { /* Icono dropdown */
	margin-top: 7px;
	font-size: var(--icon-m) !important;
}
.menu__container--links i.iconphosphor-edu- { /* Icono campus virtual menú hamburguesa */
	font-size: var(--icon-l) !important;
}
/*** ELEMENTO: Logo ***/
.menu__logo {
	text-align: left !important;
}

/*=================================================================
	BLOQUE: MEGA MENU (.mega-menu)
=================================================================*/
.mega-menu .e-n-menu-content.e-active {
	display: flex;
	align-items: center;	
}
.mega-menu {
	padding: var(--section-padding-y) var(--section-padding-x) !important;
}
.mega-menu.e-child {
	background: var(--color-full-white);
	background-color: var(--color-full-white);
}
.mega-menu .mega-menu__container {
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	border-radius: var(--radius-xl) !important;
	border: var(--border-s) solid var(--color-black);
	padding: var(--space-l);
	gap: var(--space-l);
	box-shadow: var(--shadow-section);
}   
.mega-menu .mega-menu__card {
	min-height: 125px;
	padding: var(--space-2xl);
}
.mega-menu .mega-menu__title {
	color: var(--color-full-white);
	font-family: var(--font-primary);
	font-size: var(--text-3xl);
	font-weight: var(--font-regular) !important;
	line-height: var(--line-s);
}
.mega-menu .mega-menu__title p {
	margin-bottom: var(--none) !important;
}
.mega-menu .mega-menu__card:hover .mega-menu__title {
	transform: translateY(-3px);
}
.e-n-menu-title-1428 i.iconphosphor-edu- {
    color: white !important;
}

/*=================================================================
	BLOQUE: MENU STICKY (.menu--sticky)
=================================================================*/

/* Preparación del contenedor del menú para sticky */
.menu {
    position: relative;
    z-index: 999;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    will-change: transform, padding, background-color, box-shadow;
}
/* Estado inicial - menú normal */
.menu__container {
    padding: var(--space-xl) var(--space-4xl);
    box-shadow: var(--shadow-section);
    border-radius: var(--radius-xl);
    border: solid var(--border-s) var(--color-black);
    background-color: var(--color-full-white);
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    will-change: padding, border-radius, box-shadow, border;
}
/* ESTADO: Menu sticky activado */
.menu--sticky {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    padding: 0 var(--section-padding-x) !important;
    margin: 0 !important;
    transform: translateY(0) !important;
    background-color: var(--color-full-white);
    box-shadow: 0 2px 20px rgba(var(--color-black-rgb), 0.1);
}
.menu--sticky .menu__container {
    padding: var(--space-l) var(--space-2xl) !important;
    border-radius: 0 !important;
    border: none !important;
    border-bottom: solid var(--border-s) rgba(var(--color-black-rgb), 0.1) !important;
    box-shadow: none !important;
    max-width: none !important;
    width: 100% !important;
}
/* Ajustes del logo en sticky - Para evitar blur */
.menu--sticky .menu__logo img {
    height: var(--logo-height-s) !important;
    transition: height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    /* Propiedades anti-blur */
    image-rendering: -webkit-optimize-contrast;
    image-rendering: crisp-edges;
    transform: translateZ(0); /* Fuerza aceleración de hardware */
    backface-visibility: hidden; /* Evita flickering */
    will-change: height;
}
/* MEGA MENU STICKY - Nuevo estilo plano cuando el menú está sticky */
.menu--sticky + * .mega-menu,
.menu--sticky ~ * .mega-menu {
    padding: var(--none) var(--section-padding-x) !important;
}
.menu--sticky + * .mega-menu.e-child,
.menu--sticky ~ * .mega-menu.e-child {
    background: var(--color-full-white);
    background-color: var(--color-full-white);
}
.menu--sticky + * .mega-menu .mega-menu__container,
.menu--sticky ~ * .mega-menu .mega-menu__container {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border-radius: 0 !important;
    border: none !important;
    border-bottom: var(--border-s) solid rgba(var(--color-black-rgb), 0.1) !important;
    padding: var(--space-l);
    gap: var(--space-l);
    box-shadow: 0 2px 10px rgba(var(--color-black-rgb), 0.05);
}
/* Placeholder para evitar saltos cuando el menú se vuelve sticky */
.menu-sticky-placeholder {
    display: none;
    height: 0;
    transition: height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
.menu-sticky-placeholder.active {
    display: block;
    /* La altura se calculará dinámicamente con JS */
}
.menu--sticky .menu__container .elementor-widget-n-menu .e-n-menu:not([data-layout=dropdown]):not(.content-above) .e-active.e-n-menu-content {
    top: 50%;
}
/* NUEVO ARREGLO 07/09/2025: Mantener el mega menú alineado cuando el menú está sticky */
.menu--sticky ~ * .mega-menu .e-n-menu-content.e-active,
.menu--sticky + * .mega-menu .e-n-menu-content.e-active {
    position: fixed !important;
    top: 60px !important; /* Ajustar según la altura del menú sticky en mobile */
    left: 0 !important;
    right: 0 !important;
    width: 100vw !important;
    margin: 0 !important;
}
/* Asegurar que el contenedor interno mantenga su padding */
.menu--sticky ~ * .mega-menu .mega-menu__container,
.menu--sticky + * .mega-menu .mega-menu__container {
    width: calc(100% - (2 * var(--section-padding-x)));
    margin-left: auto;
    margin-right: auto;
}
/*=================================================================
	BLOQUE: HEADER - HERO BANNER (.header)
=================================================================*/
.header, .header-slider {
    padding-top: var(--none);
}
/*** ELEMENTO: Hero banner ***/
.header__hero {
    width: 100%;
    min-height: var(--image-height-hero);
    background-size: cover;
    background-repeat: no-repeat;
    border-radius: var(--radius-xl) !important;
}
/** MODIFICADOR: hero-slider **/
.header-slider .header__hero-slider {
	padding: var(--space-3xl) var(--space-5xl); 
	box-sizing: border-box;
	border-radius: var(--radius-xl) !important;
    border: var(--border-s) solid var(--color-black) !important;
}
.header__hero-slider {
	min-height: var(--container-height-hero) !important;
}
/* Ocultar flechas de navegación en mobile */
.header-slider .elementor-swiper-button {
    display: none !important;
}
/** MODIFICADOR: slider **/
.header-slider .slider {
    padding: var(--none);
    gap: var(--space-2xl);
	height: auto;
}
/** MODIFICADOR: Container interno **/
.header__hero--inner {
    padding: var(--none) !important;
    gap: var(--space-m) !important;
}
/** MODIFICADOR: RESPONSIVE HERO BANNER (.hero__responsive) **/
/* Componente hero responsivo que muestra diferentes imágenes según el breakpoint, siguiendo metodología Mobile First */
.hero__responsive {
    position: relative;	
    width: 100%;
    display: block;
}
.hero__responsive img {
    width: 100%;
    height: var(--image-height-hero);
    object-fit: cover;
}
/** MOBILE FIRST: Por defecto mostramos la imagen móvil **/
.hero__responsive--mobile {
    display: block;
	min-height: 80vh;
}
.hero__responsive--desktop {
    display: none;
}
/* TEMPORAL - MOBILE FIRST: Gradiente por defecto en móvil */
.hero__responsive {
    position: relative !important;
}
.hero__responsive::after {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background: linear-gradient(
        to bottom,
        transparent 0%,
        transparent 20%,   
        rgba(255, 255, 255, 0.3) 35%,  /* Nuevo punto intermedio */
        rgba(255, 255, 255, 0.6) 50%,  /* Más opaco más arriba (era 60%) */
        rgba(255, 255, 255, 0.85) 70%, /* Más opaco (era 80%) */
        rgba(255, 255, 255, 0.95) 85%, /* Casi opaco antes */
        rgba(255, 255, 255, 1) 100%    /* Totalmente blanco al final */
    ) !important;
    pointer-events: none !important;
    z-index: 1 !important;
    border-radius: var(--radius-xl) !important;
}
/*** ELEMENTO: Imagen ***/
.header__image {
    padding: var(--none);
    border-radius: var(--radius-xl) !important;
    overflow: hidden;
}
.header__image::before {
    border-radius: inherit !important;
}
.header__hero.header__image::before {
  background-image: var(--hero-gradient) !important;
}
/** MODIFICADOR: slider **/
.header-slider .header__image {
	height: var(--image-height-slider) !important;
	min-height: var(--image-height-slider) !important;
}
/*** ELEMENTO: Contenido ***/
.header__info {
    padding: var(--space-6xl);
    gap: var(--space-xl);
}
/*** MODIFICADOR: Slide***/
.header-slider .header__info {
    padding: var(--none) !important;
}
/*** MODIFICADOR: Textos ***/
.header__info a {
    text-decoration: underline;
}
/* Texto general */
.header__info--light,
.header__info--light a {
    color: var(--color-full-white) !important;
}
.header__info--dark,
.header__info--dark a {
    color: var(--color-black) !important;
}
/* Subtítulo regular */
.header__info--subtitulo {
    font-weight: var(--font-semibold);
    text-transform: uppercase;
}
/*** ELEMENTO: Código de Curso ***/
.header__code {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    justify-content: center;
    width: auto;
    border-width: var(--border-s);
    border-style: solid;
    border-radius: var(--radius-full);
    box-sizing: border-box;
    padding: var(--btn-padding-y-xs) var(--btn-padding-x-s);
}
.header__code .elementor-icon-box-wrapper {
    margin-bottom: -8px;
	display: flex !important;
    align-items: center !important; /* Centra verticalmente */
    gap: var(--space-s) !important;
    margin-bottom: 0 !important; /* Elimina margen inferior si existe */
}
/* Asegurar que el icono esté centrado */
.header__code .elementor-icon-box-icon {
    display: flex !important;
    align-items: center !important;
    margin: 0 !important;
    margin-right: var(--space-s) !important; /* Mantiene espacio entre icono y texto */
}
/* Asegurar que el contenido esté centrado */
.header__code .elementor-icon-box-content {
    display: flex !important;
    align-items: center !important;
    margin: 0 !important;
}
/* El párrafo dentro debe estar sin márgenes */
.header__code .elementor-icon-box-description {
    margin: 0 !important;
    line-height: 1 !important; /* Línea ajustada para mejor alineación */
}
/* Icono */
.header__code i {
    font-size: var(--icon-l);
}
.header__code .elementor-icon-box-icon {
    margin-right: var(--space-s) !important;
}
/** MODIFICADOR: Color del icono **/
.header__code--dark i::before {
    color: var(--color-black) !important;
    fill: var(--color-black) !important;
}
.header__code--light i::before {
    color: var(--color-full-white) !important;
    fill: var(--color-full-white) !important;
}
/* Texto */
.header__code p {
    text-align: center;
    font-weight: var(--font-regular);
    font-size: var(--text-m);
    margin-bottom: 0 !important;
    text-decoration: none;
    text-transform: uppercase;
}
/** MODIFICADOR: Color del texto y la etiqueta **/
.header__code--dark {
    background-color: var(--color-transparent);
    color: var(--color-black) !important;
    fill: var(--color-black) !important;
    border-color: var(--color-black);
}
.header__code--light {
    background-color: var(--color-transparent);
    color: var(--color-full-white) !important;
    fill: var(--color-full-white) !important;
    border-color: var(--color-white);
}

/*=================================================================
	BLOQUE: INFO BOX (.info-box)
=================================================================*/
.info-box {
    gap: var(--space-l) !important;
    padding: var(--space-2xl) var(--space-xl) !important;
    background: var(--color-lighter);
    border-radius: var(--radius-xl) !important;
    box-shadow: var(--shadow-section);
}
.info-box__item {
    text-align: center !important;
    gap: var(--none) !important;
}
.info-box__title {
    font-size: var(--text-xl);
    font-weight: var(--font-bold);
    text-align: center !important;
    margin-bottom: var(--space-m) !important;
    color: var(--color-primary);
}
.info-box__value {
    font-size: var(--text-l);
    text-align: center;
    justify-content: center;
}

/*=================================================================
	BLOQUE: CARDS (.card)
=================================================================*/
.card {
    border-radius: var(--radius-m);
    box-shadow: var(--shadow-card) !important;
    transform: translateY(0); 
    transition: box-shadow 2800ms ease, transform 2800ms ease; 
}
.card .elementor-widget-image {
    width: 100%;
}
.card img {
    border-radius: var(--radius-m);
    object-fit: cover;
}
/*** VARIANTE: Curso, Post de Blog y Bento de Blog de Bucle ***/
.card--course, .card--post-blog {
	padding: var(--space-l) var(--none) var(--none) var(--space-l);	
	gap: var(--space-l);
}
.card--course, .card--post-blog {    
    border: solid var(--border-s) var(--color-black);
	height: 100% !important;
	max-width: 315px !important;	
}
.card--bento-blog {    
    border: solid var(--border-s) var(--color-black);
	height: 100% !important;
	padding: var(--space-l) !important;
}
.card--bento-blog::before, .card--bento-blog:before {
	border-radius: var(--radius-m) !important;
}
.card--bento-blog.landscape  {
	border: solid var(--border-s) var(--color-white-alt);
	padding: var(--space-l);
	background: var(--color-white-alt);
}
.card--bento-blog, .card--bento-blog.landscape {
	gap: var(--space-l);
    height: 100%;
	display: flex;
    min-height: 225px; /* Altura mínima si es necesario */
}
.card--bento-blog .card__content, .card--bento-blog.landscape .card__content,
.card--bento-blog .card__image, .card--bento-blog.landscape .card__image {
	height: 100% !important;
    min-height: inherit !important; /* Hereda el min-height del padre */
    display: flex !important;
}
.card--course .e-con-inner, .card--post-blog .e-con-inner, .card--bento-blog .e-con-inner {
    padding: var(--none) !important;
}
/** ELEMENTO: Caja de contenido **/
.card--course .card__content, .card--post-blog .card__content {
    padding: var(--none) !important;
    gap: var(--space-l) !important;
    min-height: 250px !important;
}
.card--bento-blog .card__content {
	padding: var(--space-l) !important;
    gap: var(--space-l) !important;
}
.card--bento-blog.landscape .card__content {
    padding: var(--none) !important;
}
/** ELEMENTO: Imagen **/
.card--course .card__image, .card--post-blog .card__image {
	padding-right: var(--space-l);
}
.card--bento-blog.landscape .card__image {
	border-radius: var(--radius-m);
}
.card--course .card__image img, .card--post-blog .card__image img {
    height: var(--image-height-s);
}
/** ELEMENTO: Título h3 **/
.card--course .card__title h3, .card--post-blog .card__title h3 {
	color: var(--color-primary);
	margin-right: var(--space-l);
}
.card--bento-blog .card__title h3 {
	color: var(--color-white);
}
.card--bento-blog.landscape .card__title h3 {
	color: var(--color-black);
}
.card--course .card__title h3, .card--post-blog .card__title h3, .card--bento-blog .card__title h3 {	
    font-family: var(--font-secondary);
    font-size: var(--title-card-course);
    font-weight: var(--font-semibold);
    line-height: var(--line-m) !important;
    border-radius: var(--none);
}
/** ELEMENTO: Data Title **/
.card--course .card__data--title, .card--post-blog .card__data--title {
    margin: var(--none);
	margin-right: var(--space-l);
    font-size: var(--text-card-course);
    font-weight: var(--font-bold);
    line-height: var(--line-s) !important;
    text-transform: uppercase;
    border-radius: var(--none);
}
/** ELEMENTO: Data **/
.card--course .card__data, .card--post-blog .card__data {
    margin: var(--none);
	margin-right: var(--space-l);
	color: var(--color-black) !important;
    font-size: var(--text-card-course) !important;
    font-weight: var(--font-regular) !important;
    line-height: var(--line-m) !important;
    border-radius: var(--none);
}
/** ELEMENTO: Botón de bento y post de blog **/
.card--bento-blog .card__content .btn--s a {
	padding: var(--none) var(--none) !important;
}
/* BOTÓN GHOST PARA ICON-BOX EN TARJETAS BENTO-BLOG */
/* Estado normal - estilo ghost dark (por defecto) */
.card--bento-blog .card__button .elementor-icon-box-wrapper,
.card--bento-blog-landscape .card__button .elementor-icon-box-wrapper {
    /* Estructura base btn--s */
    padding: var(--none);
    font-size: var(--text-s);
    text-transform: uppercase;    
    /* Estilo ghost */
    background-color: var(--color-transparent);
    color: var(--color-black) !important;
    position: relative;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: var(--space-s);
    transition: color 0.3s ease;
}
/* Línea inferior del ghost */
.card--bento-blog .card__button .elementor-icon-box-wrapper::after,
.card--bento-blog-landscape .card__button .elementor-icon-box-wrapper::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: -4px !important;
    width: 100%;
    height: 1px;
    background-color: var(--color-primary);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.3s ease;
}
/* Texto del botón */
.card--bento-blog .card__button .elementor-icon-box-description,
.card--bento-blog-landscape .card__button .elementor-icon-box-description {
    margin: 0 !important;
    color: inherit !important;
    font-size: var(--text-s) !important;
    font-weight: var(--font-medium);
    text-transform: uppercase;
}
/* Icono */
.card--bento-blog .card__button .elementor-icon-box-icon,
.card--bento-blog-landscape .card__button .elementor-icon-box-icon {
    margin: 0 !important;
}
.card--bento-blog .card__button i,
.card--bento-blog-landscape .card__button i {
    font-size: var(--icon-m) !important;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    color: var(--color-full-black) !important;
}
/* HOVER EN LA TARJETA activa el botón */
.card--bento-blog:hover .card__button .elementor-icon-box-wrapper,
.card--bento-blog-landscape:hover .card__button .elementor-icon-box-wrapper {
    color: var(--color-primary) !important;
}
/* HOVER - el icono cambia a primary */
.card--bento-blog:hover .card__button i,
.card--bento-blog-landscape:hover .card__button i {
    transform: translate(6px, -2px);
    color: var(--color-primary) !important;  /* AÑADE ESTA LÍNEA */
}
.card--bento-blog:hover .card__button .elementor-icon-box-wrapper::after,
.card--bento-blog-landscape:hover .card__button .elementor-icon-box-wrapper::after {
    transform: scaleX(1);
}
.card--bento-blog:hover .card__button i,
.card--bento-blog-landscape:hover .card__button i {
    transform: translate(6px, -2px);
}
/* MODIFICADOR: Versión Light (se aplica con clase) */
.card--bento-blog.button--light .card__button .elementor-icon-box-wrapper,
.card--bento-blog-landscape.button--light .card__button .elementor-icon-box-wrapper {
    color: var(--color-full-white) !important;
}
.card--bento-blog.button--light .card__button i,
.card--bento-blog-landscape.button--light .card__button i {
    color: var(--color-full-white) !important;
}
.card--bento-blog.button--light .card__button .elementor-icon-box-wrapper::after,
.card--bento-blog-landscape.button--light .card__button .elementor-icon-box-wrapper::after {
    background-color: var(--color-full-white);
}
.card--bento-blog.button--light:hover .card__button .elementor-icon-box-wrapper,
.card--bento-blog-landscape.button--light:hover .card__button .elementor-icon-box-wrapper {
    color: var(--color-full-white) !important;
}
.card--bento-blog.button--light:hover .card__button i,
.card--bento-blog-landscape.button--light:hover .card__button i {
    transform: translate(6px, -2px);
    color: var(--color-white) !important; /* O puedes usar var(--color-secondary) si prefieres */
}
/** ELEMENTO: Widget icon-box como botón **/
.card--course .card__button .elementor-widget-icon-box, .card--post-blog .card__button .elementor-widget-icon-box  {
	align-self: flex-start;
	margin-left: auto;
}
.card--course .card__button .elementor-icon-box-wrapper, .card--post-blog .card__button .elementor-icon-box-wrapper {	
	padding: var(--btn-padding-y-xs) var(--btn-padding-x-xs);
	margin-bottom: var(--space-l);
	margin-right: var(--space-l);
	border-radius: var(--radius-s);
	background-color: var(--color-primary);
	color: var(--color-full-white);
	border: var(--border-s) solid var(--color-primary);
	cursor: pointer;
	transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), color 0.3s ease, background-color 0.3s ease, border-color 0.3s ease;
	will-change: transform, background-color;
	gap: var(--space-m);
}
/** Icono del botón simulado **/
.card--course .card__button .elementor-icon-box-icon, .card--post-blog .card__button .elementor-icon-box-icon {
	margin: var(--none) !important;	
	transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
.card--course .card__button .elementor-icon-box-icon i, .card--post-blog .card__button .elementor-icon-box-icon i {
	font-size: var(--icon-m) !important;
	color: var(--color-full-white) !important;
}
/** Texto del botón simulado **/
.card--course .card__button .elementor-icon-box-content, .card--post-blog .card__button .elementor-icon-box-content {
	display: inline-block;
	transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
.card--course .card__button .elementor-icon-box-description, .card--post-blog .card__button .elementor-icon-box-description {
	font-size: var(--text-s) !important;
	text-transform: uppercase;
	font-weight: var(--font-regular);
	margin: var(--none) !important;
	line-height: var(--line-s) !important;
}
/** ESTADO: Hover de la tarjeta anima el botón **/
.card--course:hover .card__button .elementor-icon-box-wrapper, .card--post-blog:hover .card__button .elementor-icon-box-wrapper {
	background-color: var(--color-full-white);
	color: var(--color-black);
	border: var(--border-s) solid var(--color-black) !important;
}
.card--course:hover .card__button .elementor-icon-box-wrapper .elementor-icon-box-icon, .card--post-blog:hover .card__button .elementor-icon-box-wrapper .elementor-icon-box-icon {
	transform: translate(6px, -2px);
}
.card--course:hover .card__button .elementor-icon-box-wrapper .elementor-icon-box-icon i, .card--post-blog:hover .card__button .elementor-icon-box-wrapper .elementor-icon-box-icon i {
	color: var(--color-black) !important;
}
/*** VARIANTE: Post de Blog (Estilos específicos) ***/
/** Información de la entrada **/
.card--post-blog .elementor-post-info {
	gap: var(--space-xs) !important;
}
/* Todos los iconos del widget */
.card--post-blog .elementor-icon-list-item, .blog .elementor-icon-list-item a {
	gap: var(--space-xs) !important;
	text-decoration: none;
	font-size: var(--text-m);
	color: var(--color-black);
}
.card--post-blog .elementor-widget .elementor-icon-list-icon i {
    height: 1rem !important;
}
.card--post-blog .elementor-icon-list-icon i {
    font-size: var(--icon-m) !important;
	color: var(--color-primary);
	line-height: var(--line-s) !important;
}
.card--post-blog .btn {
	margin-bottom: var(--space-l) !important;
	margin-right: var(--space-l);
}
/* Texto Autor y fecha */
.card--post-blog .elementor-post-info__item--type-author, .card--post-blog time {
  font-weight: var(--font-regular) !important;
}
.card--post-blog .elementor-post-info__item-prefix, .card--post-blog  .elementor-post-info__item--type-author .elementor-post-info__item-prefix {
  font-weight: var(--font-semibold) !important; /* mantiene los prefijos en bold */
}
/** Categorías **/
.card--post-blog .blog__category .elementor-post-info__terms-list,
.card--bento-blog .blog__category .elementor-post-info__terms-list {
   font-size: 0 !important; /* Oculta todo el texto suelto (las comas) */
}
.card--post-blog .blog__category .elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text span,
.card--bento-blog .blog__category .elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text span{
    display: flex;
    gap: var(--space-xxs) !important;
    flex-direction: row;
	flex-wrap: wrap;
}
.card--post-blog .blog__category .elementor-post-info__terms-list span, .card--post-blog .blog__category .elementor-post-info__terms-list a,
.card--bento-blog .blog__category .elementor-post-info__terms-list span, .card--bento-blog .blog__category .elementor-post-info__terms-list a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	cursor: pointer;
	text-decoration: none !important;
	text-transform: uppercase;
	/* Tamaño XXS */
	padding: var(--btn-padding-y-xxs) var(--btn-padding-x-xxs);
	font-size: var(--text-xxs) !important;
	border-radius: var(--radius-s);
}
/* Post Outline */
.card--post-blog .blog__category .elementor-post-info__terms-list span, .card--post-blog .blog__category .elementor-post-info__terms-list a {
	
	border: var(--border-s) solid var(--color-primary);
	background-color: var(--color-full-white);
	color: var(--color-primary) !important;
}
.card--post-blog .blog__category .elementor-post-info__terms-list a:hover {
	background-color: var(--color-primary) !important;
	color: var(--color-full-white) !important;
	border-color: var(--color-full-white) !important;
	box-shadow: var(--button-shadow-hover);
}
.card--post-blog .blog__category .elementor-post-info__terms-list a:active {
	box-shadow: var(--button-shadow-pressed);
}
.card--post-blog .blog__category .elementor-post-info__terms-list a:focus-visible {
	outline: 2px solid rgba(var(--color-primary-rgb),.5);
	outline-offset: 2px;
}
.card--post-blog .blog__category .elementor-post-info__terms-list a i:before {
	font-size: var(--icon-s);
}
/* Bento Solid */
.card--bento-blog .blog__category .elementor-post-info__terms-list span, .card--bento-blog .blog__category .elementor-post-info__terms-list a {	
	border: var(--border-s) solid var(--color-full-black);
	background-color: var(--color-full-white);
	color: var(--color-full-black) !important;
}
.card--bento-blog .blog__category .elementor-post-info__terms-list a:hover {
	background-color: var(--color-primary) !important;
	color: var(--color-full-white) !important;
	border-color: var(--color-full-white) !important;
	box-shadow: var(--button-shadow-hover);
}
.card--bento-blog .blog__category .elementor-post-info__terms-list a:active {
	box-shadow: var(--button-shadow-pressed);
}
.card--bento-blog .blog__category .elementor-post-info__terms-list a:focus-visible {
	outline: 2px solid rgba(var(--color-primary-rgb),.5);
	outline-offset: 2px;
}
.card--bento-blog .blog__category .elementor-post-info__terms-list a i:before {
	font-size: var(--icon-s);
}
/*** VARIANTE: Campus (Página de Acceso) ***/
.card--campus {
	padding: var(--space-xl);
    gap: var(--space-xl);
}
/** ELEMENTO: Caja de contenido **/
.card--campus .card__content {
    padding: 0;
    gap: var(--space-xl);
    min-height: 100px;
}
/** ELEMENTO: Imagen **/
.card--campus .card__image img {
    height: var(--image-height-m);
}
/** ELEMENTO: Texto **/
.card--campus .card__text p {
    margin: 0;
    font-size: var(--text-l);
    font-weight: var(--font-regular);
    line-height: var(--line-m) !important;
}
/** ELEMENTO: Texto importante **/
.card--campus .card__claim p {
    margin: 0;
    font-size: var(--text-card-campus);
    font-weight: var(--font-bold);
    line-height: var(--line-m) !important;
}
/*** VARIANTE: Bento ***/
.card--bento {
    padding: var(--space-xl);
    gap: var(--space-m);
    border-radius: var(--radius-m);
}
/** ELEMENTO: Texto **/
.card--bento.card__text--s h3 {
    color: var(--color-black);
    font-family: var(--font-primary);
    font-size: var(--title-card-bento-s);
    font-weight: var(--font-regular);
    line-height: var(--line-s) !important;
    margin: 0;
}
.card--bento.card__text--m h3 {
    color: var(--color-black);
    font-family: var(--font-primary);
    font-size: var(--title-card-bento-m);
    font-weight: var(--font-regular);
    line-height: var(--line-s) !important;
    margin: 0;
}
/** ELEMENTO: Icono **/
.card--bento.card__icon span.elementor-icon {
    font-size: var(--icon-3xl);
    color: var(--color-black);
}
.card--bento.card__icon .elementor-icon-box-icon {
    margin-right: var(--space-m) !important;
    margin-bottom: var(--none) !important;
    display: flex;
    align-items: center;
}
.card--bento.card__icon .elementor-icon-box-content {
    display: flex;
    align-items: center;
}

/*=================================================================
	BLOQUE: ANIMACIÓN DE TARJETAS (.card--bounce)
=================================================================*/
/* Preparación específica para tarjetas con bounce */
.card--bounce,
.card--bounce-subtle,
.card--bounce-intense {
	transform: translateY(0);
	transition: transform 1.8s ease, box-shadow 1.8s ease;
	animation-play-state: paused;
}
/* Keyframes para diferentes tipos de rebote */
@keyframes card-bounce-y {
  0% {
    transform: translateY(-3px);
  }
  50% {
    transform: translateY(-1px);
  }
  100% {
    transform: translateY(-3px);
  }
}
/* Rebote Suave */
@keyframes card-bounce-subtle {
  0% {
    transform: translateY(-2px);
  }
  50% {
    transform: translateY(-1px);
  }
  100% {
    transform: translateY(-2px);
  }
}
/* Rebote Intenso */
@keyframes card-bounce-intense {
  0% {
    transform: translateY(-3px);
  }
  25% {
    transform: translateY(-8px);
  }
  60% {
    transform: translateY(0px);
  }
  100% {
    transform: translateY(-3px);
  }
}
/* CLASE PRINCIPAL: Rebote estándar */
.card--bounce:hover {
	transform: translateY(-3px);
	box-shadow: var(--shadow-card-hover) !important;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
	animation: card-bounce-y 1.5s ease-in-out infinite;
	animation-delay: 0.2s;
	animation-play-state: running;
}
/* VARIANTE: Rebote sutil */
.card--bounce-subtle:hover {
    box-shadow: var(--shadow-card-hover) !important;
    animation: card-bounce-subtle 1.0s ease-in-out infinite;
    animation-delay: 0.15s;
}
/* VARIANTE: Rebote intenso */
.card--bounce-intense:hover {
    box-shadow: var(--shadow-card-hover) !important;
    animation: card-bounce-intense 1.8s ease-in-out infinite;
    animation-delay: 0.25s;
}
.card--bounce:hover,
.card--bounce-subtle:hover,
.card--bounce-intense:hover {
    animation-play-state: running;
    transition: box-shadow 200ms ease-in; /* Mantener transición suave para sombra */
}

/*=================================================================
	BLOQUE: BOTONES (.btn)
=================================================================*/
/** Base Visual y Estructura **/
/* Estructura Base */
.btn a {
    display: inline-flex;
	align-items: center;
	justify-content: center;
    text-align: center;
    text-decoration: none;
    font-weight: var(--font-regular);
    border-width: var(--border-s);
    border-style: solid;
    box-sizing: border-box;
    cursor: pointer;
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
        color 0.3s ease,
        fill 0.3s ease,
        background-color 0.3s ease,
        border-color 0.3s ease;
}
/* Contenido Interno (texto + icono) */
.btn a > span {
    display: flex;
	align-items: center;
	justify-content: center;
    gap: 6px;
}
.btn a > span > span {
	display: flex;
	align-items: center;
}
/** Icono **/
/* Corrección vertical del pseudo-elemento */
.btn i:before {
    vertical-align: middle;
    line-height: 2px !important;
}
/** Animación **/
/* Preparación de texto e icono para animación */
.btn a > span > span:first-child, .btn a > span > span:last-child {
    display: inline-block;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
/** Estados Interactivos **/
/* Hover General */
.btn a:hover, #btn a:hover {
    box-shadow: var(--button-shadow-hover);
    transform: none;
    /* Deja el enlace en su sitio */
}
/* Hover del Icono */
.btn a:hover > span > span:first-child {
    transform: translate(6px, -2px);
}
/* Hover del Text */
/*.btn a:hover > span > span:last-child {
	transform: translate(0px, 0px);
}*/
/* Presionado */
.btn a:active, #btn a:active {
    box-shadow: var(--button-shadow-pressed);
}
/* Cancelar animación donde se necesite */
.btn--no-animation a > span > span {
    transform: none !important;
    transition: none !important;
}
/*** MODIFICADOR: Tamaños de botones ***/
/** Botón XL **/
/* Usar únicamente en headers */
.btn--xl a {
    width: 100%;
    max-width: 430px;
	min-height: 56px;
    padding: var(--btn-padding-y-xl) var(--btn-padding-x-xl);
    font-size: var(--text-btn-l);
    border-radius: var(--radius-m);
    text-transform: uppercase;
}
/* Icono XL */
.btn--xl i:before {
    font-size: var(--icon-l);
}
/** Botón L **/
/* Usar para todos los CTAs, secciones y formularios */
.btn--l a {
	min-width: 250px;
    max-width: 430px;
	min-height: 56px;
    padding: var(--btn-padding-y-l) var(--btn-padding-x-l);
    font-size: var(--text-btn-l);
    border-radius: var(--radius-m);
    text-transform: uppercase;
}
/* Icono L */
.btn--l i:before {
    font-size: var(--icon-l);
}
/** Botón M **/
/* Usar para las tarjetas de curso y footer */
.btn--m a {
    padding: var(--btn-padding-y-m) var(--btn-padding-x-m);
    font-size: var(--text-btn-l);
    border-radius: var(--radius-m);
    text-transform: uppercase;
}
/* Icono M */
.btn--m i:before {
    font-size: var(--icon-l);
}
/** Botón S **/
/* Usar para las categorías de post de blog y tarjetas Bento Grid */
.btn--s a {
    padding: var(--btn-padding-y-s) var(--btn-padding-x-s);
    font-size: var(--text-s);
    border-radius: var(--radius-s);
    text-transform: uppercase;
    text-align: left;
}
/* Icono S */
.btn--s i:before {
    font-size: var(--icon-m);
}
/** Botón XS **/
/* Usar para los filtros y categorías */
.btn--xs a {
    padding: var(--btn-padding-y-s) var(--btn-padding-x-xs) var(--btn-padding-y-xs) var(--btn-padding-x-xs);
    font-size: var(--text-xs);
    border-radius: var(--radius-s);
    text-transform: uppercase;
}
/* Icono XS */
.btn--xs i:before {
    font-size: var(--icon-s);
}
/*** MODIFICADOR: Estilos de botones ***/
/** VARIANTE: Sólido **/
/* Primario: para fondos claros y oscuros */
.btn__solid--primary a {
    background-color: var(--color-primary);
    color: var(--color-full-white) !important;
    fill: var(--color-full-white) !important;
    border-color: var(--color-primary);
}
.btn__solid--primary a:hover {
    background-color: var(--color-full-white);
    color: var(--color-black) !important;
    fill: var(--color-black) !important;
}
/* Secundario: para fondos claros y oscuros */
.btn__solid--secondary a {
    background-color: var(--color-secondary);
    color: var(--color-black) !important;
    fill: var(--color-black) !important;
    border-color: var(--color-black);
}
.btn__solid--secondary a:hover {
    background-color: var(--color-full-white) !important;
    color: var(--color-black) !important;
    fill: var(--color-black) !important;
}
/* Negro: para fondos claros */
.btn__solid--dark a {
    background-color: var(--color-black);
    color: var(--color-full-white) !important;
    fill: var(--color-full-white) !important;
    border-color: var(--color-black);
}
.btn__solid--dark a:hover {
    background-color: rgba(var(--color-black-rgb), var(--opacity-85));
    color: var(--color-full-white) !important;
    fill: var(--color-full-white) !important;
}
/* Blanco: para fondos oscuros */
.btn__solid--light a {
    background-color: var(--color-full-white);
    color: var(--color-black) !important;
    fill: var(--color-black) !important;
    border-color: var(--color-black);
}
.btn__solid--light a:hover {
    background-color: var(--color-secondary) !important;
    color: var(--color-black) !important;
    fill: var(--color-black) !important;
}
/** Borde - light **/
.btn__solid--primary.border-light a,
.btn__solid--secondary.border-light a {
    border-color: var(--color-full-white) !important;
}
/** VARIANTE: Outline **/
/* Negro: para fondos claros */
.btn__outline--dark a {
    background-color: var(--color-transparent);
    color: var(--color-black) !important;
    fill: var(--color-black) !important;
    border-color: var(--color-black);
}
.btn__outline--dark a:hover {
    background-color: rgba(var(--color-primary-rgb), var(--opacity-85));
    color: var(--color-full-white) !important;
    fill: var(--color-full-white) !important;
}
/* Blanco: para fondos oscuros */
.btn__outline--light a {
    background-color: var(--color-transparent);
    color: var(--color-full-white) !important;
    fill: var(--color-full-white) !important;
    border-color: var(--color-white);
}
.btn__outline--light a:hover {
    background-color: var(--color-white);
    color: var(--color-black) !important;
    fill: var(--color-black) !important;
}
.btn a:active > span > span:first-child {
    transform: translate(6px, 0px);
}
.btn__solid--primary a:active>span>span:first-child,
.btn__solid--secondary a:active>span>span:first-child,
.btn__solid--dark a:active>span>span:first-child,
.btn__solid--light a:active>span>span:first-child,
.btn__outline--dark a:active>span>span:first-child,
.btn__outline--light a:active>span>span:first-child {
    transform: translate(6px, 0px);
    transition: transform 0.1s ease;
}
/** VARIANTE: Ghost **/
/* Negro: para fondos claros */
.btn__ghost--dark a {
    background-color: var(--color-transparent);
    color: var(--color-black) !important;
    fill: var(--color-black) !important;
    border: none;
    padding-left: 0px;
    padding-right: 0px;
    padding-bottom: var(--space-xxs);
    position: relative;
    transition: color 0.3s ease;
}
.btn__ghost--dark a::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: -2px;
    width: 100%;
    height: 1px;
    background-color: var(--color-primary);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.3s ease;
}
.btn__ghost--dark a:hover {
    color: var(--color-primary) !important;
    fill: var(--color-primary) !important;
    box-shadow: none;
}
.btn__ghost--dark a:hover::after {
    transform: scaleX(1);
}
/* Blanco: para fondos oscuros */
.btn__ghost--light a {
    background-color: var(--color-transparent);
    color: var(--color-full-white) !important;
    fill: var(--color-full-white) !important;
    border: none;
    padding-left: 0px;
    padding-right: 0px;
    padding-bottom: var(--space-xxs);
    position: relative;
    transition: color 0.3s ease;
}
.btn__ghost--light a::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: -2px;
    width: 100%;
    height: 1px;
    background-color: var(--color-white);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.3s ease;
}
.btn__ghost--light a:hover {
    color: var(--color-white) !important;
    fill: var(--color-white) !important;
    box-shadow: none;
}
.btn__ghost--light a:hover::after {
    transform: scaleX(1);
}
/* --Ghost: Estado Active-- */
/* Movimiento del texto al presionar */
/* ICONO - Cancelar movimiento al presionar */
.btn__ghost--dark a:active>span>span:first-child,
.btn__ghost--light a:active>span>span:first-child {
    transform: translate(6px, -2px);
    /* Igual que en hover */
}
.btn__ghost--dark a>span>span:first-child:active,
.btn__ghost--light a>span>span:first-child:active,
.btn__ghost--dark a>span>span:last-child:active,
.btn__ghost--light a>span>span:last-child:active {
    transform: translateY(-2px);
    transition: transform 0.1s ease;
}
/** VARIANTE: Redes Sociales **/
div.btn--social a span.elementor-button-content-wrapper::after {
    font-family: "phosphor-brands" !important;
    font-size: var(--icon-xl);
    display: inline-block;
    vertical-align: middle;
    text-transform: lowercase;
}
/* Versión doble icono */
div.btn--social--li a span.elementor-button-content-wrapper::after {
    content: "m";
}
div.btn--social--fb a span.elementor-button-content-wrapper::after {
    content: "c";
}
div.btn--social--ig a span.elementor-button-content-wrapper::after {
    content: "h";
}
/* Versión un solo icono */
.btn--social--icon i:before {
    font-size: var(--icon-xl);
}
/** VARIANTE: Botón Loop y Form – ID #btn--load, #btn--form **/
/* Estilos en común */
a#btn--load, #btn--form {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	text-decoration: none;
	font-weight: var(--font-regular);	
	box-sizing: border-box;
	cursor: pointer;
	transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
		color 0.3s ease,
		fill 0.3s ease,
		background-color 0.3s ease,
		border-color 0.3s ease;
	min-height: 56px;
	padding: var(--btn-padding-y-l) var(--btn-padding-x-l);
	font-size: var(--text-l);
	border-radius: var(--radius-m);
	text-transform: uppercase;
}
a#btn--load > span, #btn--form > span {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
}
a#btn--load > span > span, #btn--form > span > span {
	display: flex;
	align-items: center;
}
a#btn--load i:before, #btn--form i:before {
	vertical-align: middle;
	line-height: 2px !important;
	font-size: var(--icon-l);
}
a#btn--load > span > span:first-child, a#btn--load > span > span:last-child,
#btn--form  > span > span:first-child, #btn--form > span > span:last-child {
	display: inline-block;
	transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
/* Botón Load */
a#btn--load {
	border: var(--border-s) solid var(--color-black);
	background-color: var(--color-full-white) !important;
    color: var(--color-black) !important;
    fill: var(--color-black) !important;
}
a:hover#btn--load {
	background-color: var(--color-secondary) !important;
    color: var(--color-black) !important;
    fill: var(--color-black) !important;
	box-shadow: var(--button-shadow-hover);
	transform: none;
}
a:active#btn--load {
	box-shadow: var(--button-shadow-pressed);
}
@keyframes spin-smooth {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}
a#btn--load .elementor-button-icon i {
    display: inline-block;
    transform-origin: center;
	height: 16px;
}
a:hover#btn--load .elementor-button-icon i {
    animation: spin-smooth 1.5s linear infinite;
}
a:active#btn--load .elementor-button-icon i {
    animation: spin-smooth 0.8s linear infinite;
}
/* Botón Form */
#btn--form {
	border: var(--border-s) solid var(--color-primary);
	background-color: var(--color-primary) !important;
    color: var(--color-full-white) !important;
    fill: var(--color-full-white) !important;
}
#btn--form:hover {
	border: var(--border-s) solid var(--color-black);
	background-color: var(--color-full-white) !important;
    color: var(--color-black) !important;
    fill: var(--color-black) !important;
	box-shadow: var(--button-shadow-hover);
	transform: none;
}
#btn--form:active {
	box-shadow: var(--button-shadow-pressed);
}
#btn--form:hover > span > span:first-child {
	transform: translate(6px, -2px);
}
#btn--form:active > span > span:first-child {
	transform: translate(6px, 0px);
	transition: transform 0.1s ease;
}

/*=================================================================
	BLOQUE: CHATBOT (.sf-chat-tool)
=================================================================*/
/** Icono Flotante **/
.sf-new-bubble.sf-anim.sf-chat-bubble-position-right.sf-bubble-type-undefined {
    background-color: var(--color-primary) !important;
}
/** Avatar **/
img.sf-popup-image {
    background: white !important;
    border: var(--border-s) solid var(--color-full-black) !important;
}
/** Icono de cierre **/
.sf-push-icon { 
	background: var(--color-white-alt) !important;
}
/*** CONTENEDOR DE CHAT CERRADO ***/
.sf-push-input {
    border: var(--border-s) solid var(--color-full-black) !important;
	gap: var(--space-l);
}
/** Contenedor de texto **/
.sf-push-text-wrapper {
	padding: var(--space-l) !important;
}
/** Título **/
.sf-chat-tool .sf-push-title, .sf-chat-v3 .sf-push-title {
	font-family: var(--font-secondary) !important;
	font-size: var(--text-m) !important;
	line-height: 1.25;
}
.sf-push-title.sf-push-title-no-subtitle {
    padding: var(--space-m) 10px var(--none) !important; 
}
/** Contenedor de botones **/
.sf-push-wrapper-buttons {
	padding: var(--none) var(--space-l) var(--space-l) !important;
}
/** Botones **/
.sf-push-wrapper-buttons {
    display: flex;
    flex-direction: column; 
    align-items: center;
    gap: var(--space-m);
    width: 100%;
}
/* Botones de chat externo e interno - Estructura base (equivalente a btn--m) */
.sf-push-wrapper-buttons .sf-popup-option,
.sf-push-wrapper-buttons .sf-anim,
.sf-chat-option {
    /* Reset de estilos por defecto */
    all: unset;    
    /* Estructura Base equivalente a btn--m */
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    text-align: center;
    text-decoration: none;
    font-family: var(--font-secondary);
    font-weight: var(--font-regular);
    box-sizing: border-box !important;
    cursor: pointer;    
    /* Tamaño M con ancho consistente */
    min-width: 200px; 
	width: 100%;
    padding: var(--btn-padding-y-s) var(--btn-padding-x-s);
    font-size: var(--text-s);
    border-radius: var(--radius-m) !important;
    text-transform: uppercase;    
    /* Estilo Solid Primary */
    background-color: var(--color-primary) !important;
    color: var(--color-full-white) !important;
    fill: var(--color-full-white) !important;
    border: var(--border-s) solid var(--color-primary) !important;    
    /* Transiciones */
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
        color 0.3s ease,
        fill 0.3s ease,
        background-color 0.3s ease,
        border-color 0.3s ease,
        box-shadow 0.3s ease;
}
/* Estilo botones chat interno - Width auto */
.sf-chat-option {
	width: auto;
}
/* Contenido interno (div) - hacer que se comporte como el span */
.sf-push-wrapper-buttons .sf-popup-option > div,
.sf-push-wrapper-buttons .sf-anim > div,
.sf-chat-option > div {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    color: inherit !important;
    font-size: inherit !important;
    text-transform: inherit !important;
    pointer-events: none; /* Evita interferencias con el click del botón */
}
/* Estado Hover - Solid Primary */
.sf-push-wrapper-buttons .sf-popup-option:hover,
.sf-push-wrapper-buttons .sf-anim:hover,
.sf-chat-option:hover {
    background-color: var(--color-full-white) !important;
    color: var(--color-black) !important;
    fill: var(--color-black) !important;
    border-color: var(--color-black) !important;
    box-shadow: var(--button-shadow-hover);
    transform: none; /* Cancelar la animación de subir */
}
/* Hover del contenido interno */
.sf-push-wrapper-buttons .sf-popup-option:hover > div,
.sf-push-wrapper-buttons .sf-anim:hover > div,
.sf-chat-option:hover > div {
    color: var(--color-black) !important;
}
/* Estado Active/Pressed */
.sf-push-wrapper-buttons .sf-popup-option:active,
.sf-push-wrapper-buttons .sf-anim:active,
.sf-chat-option:active {
    box-shadow: var(--button-shadow-pressed);
}
/* Estado Focus */
.sf-push-wrapper-buttons .sf-popup-option:focus-visible,
.sf-push-wrapper-buttons .sf-anim:focus-visible,
.sf-chat-option:focus-visible {
    outline: 2px solid rgba(var(--color-primary-rgb), 0.5);
    outline-offset: 2px;
}
/* Si los botones tienen iconos dentro del div */
.sf-push-wrapper-buttons .sf-popup-option > div > i,
.sf-push-wrapper-buttons .sf-anim > div > i,
.sf-chat-option > div > i {
    font-size: var(--icon-m);
    color: inherit;
    line-height: 1;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
/* Animación del icono en hover (si existe) */
.sf-push-wrapper-buttons .sf-popup-option:hover > div > i:first-child,
.sf-push-wrapper-buttons .sf-anim:hover > div > i:first-child {
    transform: translate(6px, -2px);
}

/*** CONTENEDOR DE CHAT ABIERTO ***/
/** Header del chat **/
.sf-chat-header {
    background-color: var(--color-primary) !important;
    border-radius: var(--none) !important;
	padding: var(--space-l) !important;
}
/** Globos de chat **/
.sf-chat-message-individual {
	padding: var(--space-l) !important;
	margin-left: var(--space-m) !important;
    border-radius: var(--none) var(--radius-m) var(--radius-m) !important;
    background-color: var(--color-white-alt) !important;
    color: var(--color-full-black) !important;
    font-family: var(--font-secondary) !important;
    font-weight: var(--regular) !important;
    font-size: var(--text-m) !important;
}
/** Contenedor del chat interno **/
.sf-chat-wrapper.sf-chat-position-right.sf-chat-open {
    border: var(--border-s) solid var(--color-full-black) !important;
}
/*=================================================================
	BLOQUE: FILTROS Y BUSCADORES DE FACETWP (.search y .filter)
=================================================================*/
/* GENERAL */
.facetwp-facet {
    margin: 0 !important;
}
/* BUSCADOR - Search */
.search .facetwp-input-wrap {
    width: 100%;
}
.search .facetwp-search {
    width: 100%;
	height: var(--input-height) !important;
	max-height: var(--input-height) !important;
    padding: var(--btn-padding-y-xs) var(--space-xl);
    font-size: var(--text-m);
    font-family: var(--font-secondary);
    color: var(--color-black);
    background-color: var(--color-full-white);
    border: var(--border-s) solid rgba(var(--color-black-rgb), var(--opacity-50)) !important;
    border-radius: var(--radius-s) !important;
    box-sizing: border-box;
    line-height: var(--line-m);
    transition: none;
}
.search .facetwp-search::placeholder {
    color: rgba(var(--color-black-rgb), var(--opacity-50)) !important;
}
.search .facetwp-icon::before {
	margin-right: var(--space-l);
}
.search .facetwp-search:focus-visible, .facetwp-search:focus {
	border: var(--border-m) solid var(--color-primary) !important;
    box-shadow: var(--shadow-input);
}
/* FILTROS */
/** ELEMENTO: Contenedor **/
.filter__container .e-con-inner {
	padding: var(--none) !important;
	gap: var(--space-l) !important;
}
.filter__container.e-child {
	padding: var(--none) !important;
	gap: var(--space-l) !important;
}
/** MODIFICADORES EN COMÚN: Select y botón de limpiar **/
.filter__container.filter--btn .facetwp-reset, .filter__container.filter--select .facetwp-dropdown {	
	text-decoration: none;
	padding: var(--btn-padding-y-xs) var(--space-xl);
	font-size: var(--text-m);
	height: var(--input-height) !important;
	max-height: var(--input-height) !important;
	font-family: var(--font-secondary);
	font-weight: var(--font-regular);
	border-radius: var(--radius-s);
	cursor: pointer;
	box-shadow: none;
	transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
		color 0.3s ease,
		background-color 0.3s ease,
		border-color 0.3s ease;	    
}
/** MODIFICADOR: Select **/
.filter__container.filter--select .facetwp-dropdown {
	/* Propiedades del contenedor select */
	height: var(--input-height) !important;
	max-height: var(--input-height) !important;
	padding: var(--btn-padding-y-xs) var(--space-xl);
	font-size: var(--text-m);
	width: 100%;
	min-width: 200px;
	max-width: 480px;
	border: var(--border-s) solid rgba(var(--color-black-rgb), var(--opacity-50)) !important;
	background-color: var(--color-full-white);
	color: rgba(var(--color-black-rgb), var(--opacity-75));
	text-transform: capitalize !important;
	/* Desaparecer el icono por defecto nativo y asignar el icono personalizado */
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='40' height='40' fill='%23383838' viewBox='0 0 40 40'><path d='m33.38 15.88-12.5 12.5a1.25 1.25 0 0 1-1.76 0l-12.5-12.5a1.25 1.25 0 0 1 1.76-1.76L20 25.73l11.62-11.61a1.25 1.25 0 0 1 1.76 1.76Z'/></svg>");
	background-repeat: no-repeat;
	background-position: right var(--icon-m) center;
	background-size: var(--icon-m);
	white-space: normal; /* Evita que las categorías más largas salgan del padding de la caja*/
	line-height: 1.4;  
}
/** MODIFICADOR: Botón de limpiar **/
.filter__container.filter--btn .facetwp-reset { 
	min-width: 150px;
	text-transform: uppercase;
	border: var(--border-s) solid var(--color-primary);
	background-color: var(--color-primary);
	color: var(--color-full-white);
}
/* Estado hover */
.filter__container.filter--btn .facetwp-reset:hover {
	color: rgba(var(--color-accent-on-dark-rgb), var(--opacity-75));
}
/* Estado active */
.filter__container.filter--btn .facetwp-reset:active {
	box-shadow: var(--button-shadow-pressed);
}
/*=================================================================
	BLOQUE: INPUTS DE FORMULARIOS (.form)
=================================================================*/
/* Label */
.form .elementor-labels-above .elementor-field-group > label {
    padding-bottom: var(--space-m);
}
.form label.elementor-field-label {
    font-size: var(--text-l);
    color: var(--color-black);
    font-weight: var(--font-regular);
}
/* Input */
.form .elementor-field-group .elementor-field-textual {
    font-size: var(--text-l);
    font-family: var(--font-secondary);
    font-weight: var(--font-regular);
    padding: var(--space-l) var(--space-xl);
    background-color: transparent;
    border: var(--border-s) solid var(--color-black);
    border-radius: var(--radius-m);
    color: rgba(var(--color-black-rgb), var(--opacity-60)); 
}
.form .elementor-field-group {
    padding-right: calc(var(--space-l) / 2);
    padding-left: calc(var(--space-l) / 2);
    margin-bottom: var(--space-l);
}

/*=================================================================
	BLOQUE: TABLAS (Política de cookies)
=================================================================*/
.table__container {
  overflow-x: auto;
  padding: var(--none);
}
.table__content {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--font-secondary);
  font-size: var(--text-m);
  color: var(--color-black);
  line-height: var(--line-m);
}
.table__content th, .table__content td {
  padding: var(--space-s);
  border: var(--border-s) solid rgba(var(--color-black-rgb), var(--opacity-25));
  text-align: left;
  vertical-align: top;
}
.table__content th {
  font-weight: var(--font-bold);
  text-transform: uppercase;
  background-color: var(--color-full-white);
}
.table__content td {
  font-weight: var(--font-regular);
}


/*=================================================================
	BLOQUE: TABS (.tab)
=================================================================*/
/** ELEMENTO: Contenedor padre **/
.tab__container {
	padding: var(--none) !important;
}
/* Espacio entre todas las tabs y el contenido */
.tab__container .e-n-tabs, .tab__container .elementor.elementor .elementor-widget-n-tabs.e-n-tabs-mobile .e-n-tabs {
	gap: var(--none) !important;
}
.tab__container button.e-n-tab-title { /* Mobile - dirección vertical */
    margin-bottom: var(--none) !important;
}
/* Espacio entre todas las tabs*/
.tab__container .e-n-tabs-heading {
	gap: var(--none) !important;
}
/** ELEMENTO: Contenedor de los tabs **/
.tab__container .tab__item {
	padding: var(--space-3xl) var(--space-xl) var(--space-xl);    
	background-color: var(--color-full-white) !important;
	border: var(--border-s) solid var(--color-black);
	border-width: var(--none) var(--border-s) var(--border-s) var(--border-s);
	border-radius: var(--none) var(--none) var(--radius-m) var(--radius-m) !important;	
}
/** ELEMENTO: Tabs **/
.tab__container .e-n-tab-title {
	padding: var(--space-l); 
	background-color: var(--color-full-white) !important;
	border-radius: var(--radius-m) var(--radius-m) var(--none) var(--none) !important;	
	border-width: var(--border-s);
	border-style: solid !important;
	border-top-color: rgba(var(--color-black-rgb), var(--opacity-0));
	border-right-color: rgba(var(--color-black-rgb), var(--opacity-0));
	border-bottom-color: rgba(var(--color-black-rgb), var(--opacity-100));
	border-left-color: rgba(var(--color-black-rgb), var(--opacity-0));
	cursor: pointer;
	/* Transición súper suave solo para colores */
	transition: background-color 0.5s cubic-bezier(0.23, 1, 0.32, 1), 
	            border-color 0.5s cubic-bezier(0.23, 1, 0.32, 1);
}
.tab__container .e-n-tab-title:hover {
	background-color: var(--color-primary) !important;
	border-color: var(--color-primary) !important;
}
/** ELEMENTO: Text de las Tabs **/
.tab__container .e-n-tab-title-text {
	color: var(--color-black);	
	font-size: var(--text-l);
	font-weight: var(--font-semibold);
	/* Transición súper suave solo para color */
	transition: color 0.5s cubic-bezier(0.23, 1, 0.32, 1);
}
.tab__container .e-n-tab-title:hover .e-n-tab-title-text {
	color: var(--color-full-white);
}
/** ESTADO: Tabs activas **/
.tab__container .e-n-tab-title[aria-selected="true"] {
	background-color: var(--color-full-white) !important;
	border: var(--border-s) solid var(--color-black) !important;
	border-bottom-color: transparent !important;
}
.tab__container .e-n-tab-title[aria-selected="true"] .e-n-tab-title-text {
	color: var(--color-primary);
	font-weight: var(--font-semibold);
}

/*=================================================================
	BLOQUE: ACORDEÓN (.toggle)
=================================================================*/
/** ELEMENTO: Contenedor padre **/
.toggle__container summary.e-n-accordion-item-title {
	padding: var(--space-xl) var(--space-l);
    border-color: var(--color-primary) !important;
    border-style: solid;
    border-width: var(--none) var(--none) var(--border-s) var(--none) !important;	
}
/* Eliminar la línea del último toggle */
.elementor-widget-n-accordion .e-n-accordion-item:last-child:not(:only-child) .e-n-accordion-item-title {
	border-color: var(--color-full-white) !important;
}
/* Restaurar la línea cuando el último toggle está abierto */
.elementor-widget-n-accordion .e-n-accordion-item:last-child[open]:not(:only-child) .e-n-accordion-item-title {
	border-color: var(--color-primary) !important;
}
/** ELEMENTO: Contenedor de los toggle **/
.toggle__container .toggle__item {
	padding: var(--space-l) var(--space-2xl);
    border: none !important;
}
/* Preparación para añadir icono como pseudo-elemento */
.toggle__container .e-n-accordion-item-title-header {
    display: flex;
    align-items: center;
    flex: 1; /* Toma el espacio disponible */
}
/* Título h3 */
.toggle__container h3.e-n-accordion-item-title-text {
	color: rgba(var(--color-primary-rgb), var(--opacity-100));
	font-size: var(--text-xl);
	font-weight: var(--font-regular);
	font-family: var(--font-primary);
	line-height: var(--line-m);
	margin: var(--none);
}
/* Icono principal */
.toggle__container i {
    font-size: var(--icon-l) !important; 
	color: var(--color-primary) !important;
}
/* Añadir icono extra a través de fuente - lado izquierdo */
.toggle__container.icon--star summary.e-n-accordion-item-title::before {
    content: "M"; 
    font-family: 'phosphor-communication';
    font-size: var(--icon-l); 
    color: var(--color-primary);
    margin: var(--none) !important;
	margin-bottom: -3px !important;
    vertical-align: middle;
}
/* Cambio de icono luego de abrir el item */
.toggle__container.icon--star details[open] summary.e-n-accordion-item-title::before {
    content: "K";
    color: var(--color-primary);
}
/* Cambio de color el texto al abrir el item */
.toggle__container .elementor-widget-n-accordion .e-n-accordion-item[open]>.e-n-accordion-item-title * {
    color: rgba(var(--color-primary-rgb), var(--opacity-60));
}
/* Forzar que TODO se mantenga en línea */
/* Texto */
.footer .elementor-icon-list-text {
    padding-inline-start: 0px !important;
}
/*** Widget icon list para la caja de contacto ***/
/* Teléfonos */
.toggle__contact .elementor-icon-list-text {
	display: flex;
	flex-wrap: nowrap; /* en móvil permite salto ordenado */
	gap: 4px;        /* espacio entre teléfonos */
	overflow-x: auto;
}
.toggle__contact .elementor-icon-list-text a {
	white-space: nowrap; /* evita que se corte un número en dos */
	display: inline;     /* para que se mantengan uno al lado del otro */
}
.toggle__contact .elementor-widget.elementor-list-item-link-full_width a, .footer__contact a {
    margin-right: 0px !important;
    margin-left: 0px !important;
}
/* Correo */
.toggle__contact .elementor-icon-list-item a[href^="mailto:"] {
  display: inline-flex;       /* icono + texto en línea */
  align-items: center;
  white-space: normal;        /* permite salto si no cabe */
  word-break: break-word;     /* si salta, lo hace en un punto lógico */
  overflow-wrap: anywhere;    /* evita que sobresalga */
}
/*=================================================================
	BLOQUE: Plantilla de curso
=================================================================*/
.container--accordion {
    background: var(--color-white);
    border-radius: var(--radius-l) !important;
    padding: 16px 24px !important;
}
.container--accordion div.elementor-icon-box-icon {
    margin-top: 7px;
}
.container--accordion span.elementor-icon i {
    color: var(--color-black);
}
/*** EMBED PDF ***/
.embed__pdf iframe {
    border-radius: 1rem;
}
/**** SECCIÓN REQUISITOS ****/
.especialidad_acf,
.certificado_acf {
    display: none !important;
}
.tipo-curso-certificado-profesional .certificado_acf,
.tipo-curso-certificado-remunerado .certificado_acf {
    display: block !important;
}
.tipo-curso-especialidad .especialidad_acf {
    display: block !important;
}
/*** Details & Summary ***/
.certificado_acf details {
    border-bottom: 1px solid var(--color-black);
    background-color: var(--color-full-white);
    border-radius: var(--none);
    position: relative;
    overflow: hidden;
}
.certificado_acf summary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: var(--color-primary);
    padding: 15px 20px;
    font-size: 1.1em;
    font-weight: bold;
    cursor: pointer;
    outline: none;
    transition: background-color 0.3s ease;
    list-style: none;
    -webkit-tap-highlight-color: transparent;
    /* Para evitar el resaltado al tocar en móvil */
}
.certificado_acf summary:hover {
    background-color: var(--color-white);
    /* Color de fondo al pasar el ratón */
}
.certificado_acf details[open] {
    border-bottom: none;
    border-radius: var(--radius-l);
}
/* Star Icon */
.certificado_acf summary::before {
    content: "M";
    /* Código Unicode para una estrella vacía */
    font-family: 'phosphor-communication';
    font-size: 1.2em;
    /* Tamaño de la estrella */
    margin-right: 10px;
    /* Espacio entre la estrella y el texto */
    color: var(--color-black);
    line-height: 1;
    /* Alineación vertical */
    display: inline-block;
    /* Para que funcione margin-right */
}
/* Star Icon cuando está [open]*/
.certificado_acf details[open] summary::before {
    content: 'K';
    /* Unicode para la 'estrella fill' */
    font-family: 'phosphor-communication';
    color: var(--color-primary);
    transform: rotate(0deg);
}
/* Cross Icon Icon cuando está [open]*/
.certificado_acf summary::after {
    content: 'H';
    /* Unicode para la 'estrella fill' */
    font-family: 'phosphor-math-finance';
    font-size: 1.5em;
    /* Tamaño del icono */
    color: var(--color-black);
    transition: transform 0.3s ease;
    /* Transición para la rotación */
    margin-left: auto;
}
/* Cross Icon cuando está [open] */
.certificado_acf details[open] summary::after {
    content: 'n';
    /* Unicode para la 'estrella fill' */
    font-family: 'phosphor-math-finance';
    color: var(--color-primary);
    transform: rotate(0deg);
    /* No rotar, solo cambiar el contenido */
}
/* Cambio color summary cuando está [open] */
.certificado_acf details[open] summary {
    background-color: var(--color-gray-200);
    /* Un azul claro para la cabecera abierta */
    border-bottom: 1px solid var(--color-white);
    /* Borde inferior cuando está abierto */
}
.certificado_acf details ul {
    padding: 20px 25px 20px 45px;
    margin: 0;
    list-style: disc;
    color: var(--color-black);
    line-height: 1.8;
    background-color: var(--color-white);
    border: 1px solid var(--color-gray-200);
    border-top: none;
	text-align: left;
}
.certificado_acf details ul li {
    margin-bottom: 10px;
    /* Espacio entre cada elemento de la lista */
    padding-left: 0;
    /* Quita el padding por defecto de los li si lo hubiera */
}
.certificado_acf details ul li:last-child {
    margin-bottom: 0;
}

/*=================================================================
	BLOQUE: BLOG (.blog)
=================================================================*/
/*** Single Post ***/
/** Títulos **/
.blog h2 {
	font-size: var(--title-h2-blog);
	margin: 0;
}
.blog.section__blog {
    padding: var(--blog-padding-y) var(--blog-padding-x) !important;
}
/** Categorías y Filtros **/
.blog .blog__category .elementor-post-info__terms-list {
    font-size: 0 !important; /* Oculta todo el texto suelto (las comas) */
}
.blog .blog__category .elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text span {
    display: flex;
    gap: var(--space-xs) var(--space-xs)!important;
    flex-direction: row;
	flex-wrap: wrap;
}
.blog .blog__category .elementor-post-info__terms-list a,
.blog__category.blog__filter button.e-filter-item{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  cursor: pointer;
  text-decoration: none !important;
  /* Tamaño XS (basado en .btn--xs) */
  padding: var(--btn-padding-y-xs) var(--btn-padding-x-xs);
  font-size: var(--text-xs) !important;
  border-radius: var(--radius-s);
  text-transform: uppercase;
  transition: transform .3s cubic-bezier(0.4,0,0.2,1), color .3s ease, background-color .3s ease, border-color .3s ease, box-shadow .3s ease;
}
/* Categorías (solid primario) para Header de Blog */
.blog .blog__category .elementor-post-info__terms-list a{
  border: var(--border-s) solid var(--color-full-white);
  background-color: var(--color-primary);
  color: var(--color-full-white);
}
.blog .blog__category .elementor-post-info__terms-list a:hover{
  background-color: var(--color-full-white) !important;
  color: var(--color-black) !important;
  border-color: var(--color-black) !important;
  box-shadow: var(--button-shadow-hover);
}
.blog .blog__category .elementor-post-info__terms-list a:active{
  box-shadow: var(--button-shadow-pressed);
}
.blog .blog__category .elementor-post-info__terms-list a:focus-visible{
  outline: 2px solid rgba(var(--color-primary-rgb),.5);
  outline-offset: 2px;
}
.blog .blog__category .elementor-post-info__terms-list a i:before{
  font-size: var(--icon-s);
}
/* Filtros (outline por defecto, solid en activo) para los filtros del Blog */
.blog__category.blog__filter button.e-filter-item{
  border: var(--border-s) solid var(--color-primary);
  background-color: var(--color-full-white);
  color: var(--color-primary);
}
.blog__category.blog__filter button.e-filter-item:hover{
  background-color: var(--color-primary);
  color: var(--color-full-white);
  box-shadow: var(--button-shadow-hover);
}
.blog__category.blog__filter button.e-filter-item.e-filter-active{
  background-color: var(--color-primary) !important;
  color: var(--color-full-white) !important;
  border-color: var(--color-primary) !important;
  box-shadow: var(--button-shadow-hover);
}
.blog__category.blog__filter button.e-filter-item:active{
  box-shadow: var(--button-shadow-pressed);
}
.blog__category.blog__filter button.e-filter-item:focus-visible{
  outline: 2px solid rgba(var(--color-primary-rgb),.5);
  outline-offset: 2px;
}
.blog__category.blog__filter button.e-filter-item i:before{
  font-size: var(--icon-s);
}
.blog__category.blog__filter button.e-filter-item.e-filter-active,
.blog__category.blog__filter button.e-filter-item[aria-pressed="true"]{
  background-color: var(--color-primary) !important;
  color: var(--color-full-white) !important;
  border-color: var(--color-primary) !important;
  box-shadow: var(--button-shadow-hover);
}


/** Categorías Cards del Shortcode **/
/* Ocultar categorías hijas */
.blog__category--cards ul.children {
    display: none;
}
/* Todas */
.blog__category--cards .categorias-botones {
	list-style: none;
	padding: var(--none);
	margin: var(--none);
	display: flex;
	flex-direction: column; /* Mobile: una por fila */
	gap: var(--space-m);
}
.blog__category--cards .categorias-botones li.cat-item {
	list-style: none;
	margin: var(--none);
	padding: var(--none);
	width: 100%; /* Mobile: ancho completo */
	display: block;
}
.blog__category--cards .categorias-botones li.cat-item a {
	/* Estructura base del botón M */
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%; /* Mobile: ancho completo */
	text-align: center;
	text-decoration: none !important;
	font-weight: var(--font-regular);
	font-family: var(--font-secondary);
	box-sizing: border-box;
	cursor: pointer;
	/* Tamaño M */
	padding: var(--btn-padding-y-m) var(--btn-padding-x-m);
	font-size: var(--text-btn-l);
	border-radius: var(--radius-m);
	text-transform: uppercase;
	/* Estilo Outline Dark (por defecto) */
	background-color: var(--color-full-white);
	color: var(--color-black) !important;
	border: var(--border-s) solid var(--color-black);
	/* Transiciones */
	transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
		color 0.3s ease,
		background-color 0.3s ease,
		border-color 0.3s ease,
		box-shadow 0.3s ease;
}
/* Hover */
.blog__category--cards .categorias-botones li.cat-item a:hover {
	background-color: var(--color-primary);
	color: var(--color-full-white) !important;
	border-color: var(--color-primary);
	box-shadow: var(--button-shadow-hover);
	transform: none; /* Cancelar animación de enlaces */
}
/* Active/Pressed */
.blog__category--cards .categorias-botones li.cat-item a:active {
	box-shadow: var(--button-shadow-pressed);
}
/* Categoría actual/activa */
.blog__category--cards .categorias-botones li.cat-item.current-cat a,
.blog__category--cards .categorias-botones li.cat-item.current-cat a[aria-current="page"] {
	/* Estilo Solid Primary para la categoría activa */
	background-color: var(--color-primary);
	color: var(--color-full-white) !important;
	border-color: var(--color-primary);
}
.blog__category--cards .categorias-botones li.cat-item.current-cat a:hover {
	background-color: var(--color-full-white);
	color: var(--color-black) !important;
	border-color: var(--color-black);
}
/* Caja de Filtros */
.blog__filter search.e-filter {
	gap: var(--space-s);
}
/** Buscador **/
.blog__search .e-search-form {
	display: flex !important;
	align-items: center !important;
	gap: var(--space-s) !important;
}
.blog__search .e-search-submit i {
	margin: var(--none) !important; 
}
button.e-search-submit {
	margin: var(--none) !important; 
}
.blog__search .e-search-input {
	flex: 1 !important;
	min-height: 56px !important; /* btn--m */
	padding: var(--btn-padding-y-m) var(--btn-padding-x-m) !important;
	font-size: var(--text-m) !important;
	border-radius: var(--radius-m) !important;
	border: var(--border-s) solid var(--color-primary) !important;
	background-color: var(--color-full-white) !important;
	color: var(--color-black) !important;
	transition: border-color .3s ease, box-shadow .3s ease !important;
}
.blog__search .e-search-input:focus {
	outline: none !important;
	border-color: var(--color-primary) !important;
	box-shadow: 0 0 0 2px rgba(var(--color-primary-rgb), .25) !important;
}
.blog__search .e-search-submit {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-height: 56px !important; /* btn--m */
	padding: var(--btn-padding-y-m) var(--btn-padding-x-m) !important;
	font-size: var(--text-m) !important;
	border-radius: var(--radius-m) !important;
	border: var(--border-s) solid var(--color-primary) !important;
	background-color: var(--color-primary) !important;
	color: var(--color-full-white) !important;
	cursor: pointer !important;
	transition: background-color .3s ease, color .3s ease, box-shadow .3s ease !important;
}
.blog__search .e-search-submit:hover {
	background-color: var(--color-full-white) !important;
	color: var(--color-black) !important;
	border-color: var(--color-black) !important;
	box-shadow: var(--button-shadow-hover) !important;
}
.blog__search button.e-search-submit:hover i {
	color: var(--color-black) !important;
}
.blog__search .e-search-submit:active {
	box-shadow: var(--button-shadow-pressed) !important;
}
.blog__search .e-search-submit:focus-visible {
	outline: 2px solid rgba(var(--color-primary-rgb), .5) !important;
	outline-offset: 2px !important;
}
.blog__search .e-search-submit i {
	font-size: var(--icon-l) !important;
	height: 1.15rem;
	line-height: 1 !important;
}
/** Etiquetas **/
.blog .elementor-post-info__terms-list a {
	text-decoration: underline !important;
}
/** Formulario de Comentarios **/
/* Contenedores */
.blog .comment-form-comment,.blog .comment-form-author,.blog .comment-form-email,.blog .comment-form-url,
.blog p.comment-form-comment,.blog p.comment-form-author,.blog p.comment-form-email,.blog p.comment-form-url{
    display: flex;
    flex-direction: column;
	gap: var(--space-s);
}
/* Labels */
.blog label {
	font-size: var(--text-m);
}
/* Inputs */
.blog textarea, .blog input#comment, .blog input#url, .blog input#author, .blog input#email {
	border: var(--border-s) solid var(--color-full-black);
	border-radius: var(--radius-m);
	padding: var(--space-m) var(--space-l);
	min-height: 44px;
}
/* Botón */
.blog input#submit{
	-webkit-appearance:none;
	appearance:none;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	cursor:pointer;
	box-sizing:border-box;
	/* Talla L */
	min-width:250px;
	max-width:430px;
	min-height:56px;
	padding:var(--btn-padding-y-l) var(--btn-padding-x-l);
	font-size:var(--text-l);
	text-transform:uppercase;
	border-radius:var(--radius-m);
	/* Sólido primario */
	border:var(--border-s) solid var(--color-primary);
	background-color:var(--color-primary);
	color:var(--color-full-white);
	/* Transiciones */
	transition:
		transform .3s cubic-bezier(0.4,0,0.2,1),
		color .3s ease,
		background-color .3s ease,
		border-color .3s ease,
		box-shadow .3s ease;
}
.blog input#submit:hover{
	background-color:var(--color-full-white);
	color:var(--color-black);
	border-color:var(--color-black);
	box-shadow:var(--button-shadow-hover);
}
.blog input#submit:active{
	box-shadow:var(--button-shadow-pressed);
}
.blog input#submit:focus-visible{
	outline:2px solid rgba(var(--color-primary-rgb), .5);
	outline-offset:2px;
}
/** Tabla de Contenidos **/
.blog .elementor-element.elementor-toc--content-ellipsis.elementor-toc--minimized-on-tablet.elementor-widget.elementor-widget-table-of-contents {
	border: var(--border-s) solid var(--color-full-black);
    border-radius:var(--radius-m);
}
/** Compartir en Redes Sociales **/
/* Iconos */
.blog .elementor-share-btn__icon svg {
    height: var(--icon-l);
    width: var(--icon-l);
}
/** Información de la entrada **/
/* Caja de iconos */
.blog .elementor-icon-list-item, .blog .elementor-icon-list-item a {
	gap: var(--space-xs) !important;
	text-decoration: none;
	font-size: var(--text-l);
}
/* Iconos */
.blog .elementor-widget .elementor-icon-list-icon i {
    height: 1.05rem !important;
}
.blog .elementor-icon-list-icon i {
    font-size: var(--icon-m) !important;
	line-height: var(--line-s) !important;
}
/* Span (cuando tiene enlace) */
.blog .elementor-icon-list-item a span.elementor-icon-list-text {
	text-decoration: underline;
	color: var(--color-primary) !important;
}

/*=================================================================
	BLOQUE: FOOTER
=================================================================*/
.footer {
    padding: var(--section-padding-y) var(--section-padding-x) var(--section-padding-x);
    gap: var(--space-4xl) var(--space-l);
}
/*** ESTILO: Texto y Títulos ***/
.footer p {
    margin: 0;
}
/*** ELEMENTO: Texto ***/
.footer .footer__text p,
.footer .footer__text.elementor-widget-text-editor {
    font-size: var(--text-m);
}
/*** ELEMENTOR: Títulos ***/
.footer .footer__title p {
    font-size: var(--text-l);
    font-weight: var(--font-semibold);
}
/*** ESTILO: Enlaces ***/
.footer a {
    text-decoration: none;
    font-weight: var(--font-regular);
    font-size: var(--text-m);
}
/*** ESTILO: Lista con icono ***/
.footer ul {
    font-size: var(--text-m);
    font-weight: var(--font-regular);
}
/* Elemento de lista */
.footer ul li {
    margin-bottom: var(--space-m) !important;
}
/* Icono */
.footer .elementor-widget .elementor-icon-list-icon {
    font-size: var(--icon-l) !important;
}
.footer .elementor-widget .elementor-icon-list-icon i::before {
    vertical-align: middle;
}
/* Texto */
.footer .elementor-icon-list-text {
    padding-inline-start: 0px !important;
}
/*** Widget icon list para la caja de contacto ***/
/* Teléfonos */
.footer__contact .elementor-icon-list-text {
	display: flex;
	flex-wrap: wrap; /* en móvil permite salto ordenado */
	gap: 4px;        /* espacio entre teléfonos */
}
.footer__contact .elementor-icon-list-text a {
	white-space: nowrap; /* evita que se corte un número en dos */
	display: inline;     /* para que se mantengan uno al lado del otro */
}
.footer__contact .elementor-widget.elementor-list-item-link-full_width a, .footer__contact a {
    margin-right: 0px !important;
    margin-left: 0px !important;
}
/* Correo */
.footer__contact .elementor-icon-list-item a[href^="mailto:"] {
  display: inline-flex;       /* icono + texto en línea */
  align-items: center;
  white-space: normal;        /* permite salto si no cabe */
  word-break: break-word;     /* si salta, lo hace en un punto lógico */
  overflow-wrap: anywhere;    /* evita que sobresalga */
}
/*** ELEMENTO: Container ***/
.footer__container {
    padding: var(--space-2xl) var(--space-xl);
    gap: var(--space-l);
    border-radius: var(--radius-m);
}
/** MODIFICADOR: Interno **/
.footer__container--inner {
    padding: var(--none);
    gap: var(--space-l);
}
/** MODIFICADOR: Borde - Dark **/
.footer__container--border--dark {
    border: solid var(--border-s) var(--color-black);
}
/** MODIFICADOR: Tab **/
.footer__container--tab {
    padding: var(--space-xl);
    border-radius: var(--radius-m) !important;
}
/* Contenedor del Título Tab */
.footer__container--tab summary.e-n-accordion-item-title {
    padding: 0 !important;
    gap: var(--space-m) !important;
}
/* Título e icono Tab */
.footer__container--tab .e-n-accordion-item-title-text {
    font-size: var(--text-m) !important;
    color: white;
}
.footer__container--tab i::before {
    font-size: var(--icon-m) !important;
    color: white;
}
/* Enlace del tab (open) */
.footer__container--tab .elementor-widget-n-accordion .e-n-accordion-item[open]>.e-n-accordion-item-title * {
    color: var(--color-full-white) !important;
}
/* Iconos de menú */
.footer__container--tab .elementor-icon-list-icon i {
    width: 1em;
}
/*** COMPENSACIÓN MANUAL ***/
/* Iconos de caja de contacto */
i.iconphosphor-map-.icon-phosphor-map-house-regular {
    margin-top: -4px;
}
i.iconphosphor-comm-.icon-phosphor-comm-phone-regular {
    margin-top: -3px;
}
i.iconphosphor-comm-.icon-phosphor-comm-envelopesimple-regular {
    margin-top: -0px;
}
i.iconphosphor-time-.icon-phosphor-time-clock-regular {
    margin-top: -3px;
}
/* Iconos de brand de botones de Redes Sociales */
.footer__icons--margin span::after {
    margin-bottom: -3px !important;
}
/**** ELEMENTO: Caja de Contacto - Teléfonos ****/

.footer span.elementor-icon-list-text {
    display: flex;
    width: 100%;
    align-items: flex-start;
    justify-content: left;
    text-align: left;
}
.footer .elementor-widget.elementor-list-item-link-full_width a {
    width: auto;
    margin-right: 5px;
    margin-left: 5px;
}
.footer .elementor-widget.elementor-list-item-link-full_width a:first-child {
    margin-left: 0px;
}
/**** ELEMENTO: Botón Ir arriba (Go to top) ****/
.footer .footer__btn--to-top .elementor-icon i, .elementor-icon svg {
    width: 0.6em !important;
	height: 0.6em !important;
}
.footer .footer__btn--to-top .elementor-icon-box-icon {
    margin-bottom: -1.5rem !important;
}
.footer .footer__btn--to-top i.iconphosphor-arrow-::before {
    font-size: var(--icon-3xl) !important;
    color: var(--color-primary);
    display: inline-block;
    position: absolute;
    left: 50%;
    transform: translate(-50%, 0);
    transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    animation: bounce-y 1.2s ease-in-out infinite;
    animation-play-state: paused;
}
.footer .footer__btn--to-top:hover {
    cursor: pointer;
}
.footer .footer__btn--to-top:hover i.iconphosphor-arrow-::before {
    animation-play-state: running;
}
/**** ANIMACIÓN: Rebote vertical del icono ****/
@keyframes bounce-y {
    0% {
        transform: translate(-50%, -6px);
    }
    50% {
        transform: translate(-50%, -2px);
    }
    100% {
        transform: translate(-50%, -6px);
    }
}

/*=================================================================
	BLOQUE: MEDIA QUERY
=================================================================*/
@media screen and (min-width:480px) {
    /* GENERAL: Botones */
    .btn--xl a, .btn--l a {
        width: auto;
		min-height: 0px;  
    }
	.btn--l a {
        min-width: auto;
    }
	/* HEADER: Padding */
	.header, .header-slider {
		padding: var(--section-padding-y) var(--section-padding-x);
		padding-top: var(--none);
	}
    /* HEADER: Tag del código */
    .header__code .elementor-icon-box-wrapper {
        margin-bottom: 0px;
    }
	/* SLIDER: Mostrar flechas de navegación */
	.header-slider .elementor-swiper-button {
		display: inline-flex !important;
	}
    /* BENTO: Icon Text Widget */
    .card--bento.card__icon .elementor-icon-box-content,
    .card--bento.card__icon .elementor-icon-box-icon {
        display: block;
    }
	/* BLOG: Categorías Cards - Tablet */
	.blog__category--cards .categorias-botones {
		flex-direction: row; /* Cambiar a fila */
		flex-wrap: wrap; /* Permitir wrap */
		gap: var(--space-m);
	}
	.blog__category--cards .categorias-botones li.cat-item {
		width: auto; /* Ancho automático */
		flex: 0 0 auto; /* No crecer ni encoger */
	}
	.blog__category--cards .categorias-botones li.cat-item a {
		width: auto; /* Ancho automático del contenido */
		min-width: 150px; /* Ancho mínimo para mantener proporción */
	}
	/* FILTRO: Altura de categoría */
	.filter__container select.facetwp-dropdown {
		height: auto !important;
	}
	/* FILTRO: Para controlar el corte del texto de la categoría más larga */
	.filter__container.filter--select .facetwp-dropdown {
		max-width: 350px;
	}
    /* FOOTER: Iconos de caja de contacto */
    i.iconphosphor-map-.icon-phosphor-map-house-regular {
        margin-top: -3px;
    }
    i.iconphosphor-comm-.icon-phosphor-comm-phone-regular {
        margin-top: 0px;
    }
    i.iconphosphor-comm-.icon-phosphor-comm-envelopesimple-regular {
        margin-top: -2px;
    }
    i.iconphosphor-time-.icon-phosphor-time-clock-regular {
        margin-top: -1px;
    }
    /* FOOTER: Iconos de brand de botones de Redes Sociales */
    .footer__icons--margin span::after {
        margin-bottom: -1px !important;
    }
	.footer .footer__btn--to-top .elementor-icon i, .elementor-icon svg {
		width: 0.8em !important;
		height: 0.8em !important;
	}
	/* TEMPORAL - Solución temporal para el gradiente blanco del header de curso con ilustraciones, para que se pueda leer el texto sobre la imagen, cuando se vuelvan a subir las imágenes optimizadas, se tiene que eliminar este css y su versión por fuera de esta media query */
	.hero__responsive::after {
        display: none !important;
    }
	/** CHATBOT: Caja abierta - header del chat **/
	.sf-chat-header {
		border-radius: var(--radius-m) var(--radius-m) var(--none) var(--none) !important;
	}
}
@media screen and (min-width: 480px) and (max-width: 1023px) {	
	/* MEGA-MENU: Ajuste del menú desplegable en tablet vertical */
	.elementor-widget-n-menu .e-n-menu-title {
		padding: var(--space-l) var(--section-padding-x) !important;
	}	
}
@media screen and (min-width:768px) {
	/* MEGA-MENU */
	.mega-menu {
		padding: var(--none) var(--section-padding-x) !important;
	}	
	/* MEGA-MENU: Tarjeta */
    .mega-menu .mega-menu__card {
        min-height: 280px;
    }
    .mega-menu .mega-menu__card:hover  {
        transform: translatey(-10px);
    }
	/* MEGA-MENU: Botón */
    div.btn--menu,
    div#e-n-menu-title-1428 {
        display: none !important;
    }
	/* MEGA-STICKY: Css para mantener el mega menu a la par de la transformación del menú */
	.menu--sticky ~ * .mega-menu .e-n-menu-content.e-active,
    .menu--sticky + * .mega-menu .e-n-menu-content.e-active {
        top: 70px !important; /* Ajustar según altura del menú en tablet */
    }
	/* RESPONSIVE HERO BANNER: Para que pueda aparecer el correcto en desktop y mobile */
	.hero__responsive--mobile {
        display: none;
    }
	.hero__responsive--desktop {
        display: block;
    }
    /* INFO-BOX: Items */
    .info-box {
        gap: var(--none) !important;
    }
    .info-box__item:not(:last-child) {
        border-right: var(--border-s) solid var(--color-gray-200);
    }
}
@media screen and (min-width: 1024px) {    
	/* MEGA-MENU: Container */
	.mega-menu {
		padding: var(--none) var(--section-padding-x) !important;
	}	
	.mega-menu.e-child {
		background: transparent;
		background-color: transparent;
	}
	#btn-campus-virtual {
		display: none !important;
	}
	/* MEGA-STICKY: Css para mantener el mega menu a la par de la transformación del menú */
	 /* En desktop, el mega menú se mantiene centrado y con padding correcto */
    .menu--sticky ~ * .mega-menu .e-n-menu-content.e-active,
    .menu--sticky + * .mega-menu .e-n-menu-content.e-active {
        position: fixed !important; /* Mantener fixed para mejor control */
        top: 65px !important; /* Altura del menú sticky en desktop */
        width: 100% !important;
        max-width: calc(100vw - (2 * var(--section-padding-x))) !important;
        left: 50% !important;
        right: auto !important;
        transform: translateX(-50%) !important; /* Centrado perfecto */
        margin: 0 !important;
    }    
    /* Mantener el z-index correcto */
    .menu--sticky ~ * .mega-menu,
    .menu--sticky + * .mega-menu {
        position: relative;
        z-index: 998; /* Un nivel menos que el menú sticky (999) */
    }    
    /* Asegurar que el contenedor interno respete los paddings */
    .menu--sticky ~ * .mega-menu .mega-menu__container {
        max-width: 100%;
        padding-left: var(--section-padding-x);
        padding-right: var(--section-padding-x);
    }
	/* DESPLEGABLE: 2 columnas */
	.section__container--2-col.e-flex.e-con.e-child {
		gap: var(--space-2xl) !important;
	}
	/* FILTRO: Para controlar el corte del texto de la categoría más larga */
	.filter__container.filter--select .facetwp-dropdown {
		max-width: 300px;
	}
}
@media screen and (min-width: 1280px) {
    /* CONTACTO: Cajas de mapas, corregir alturas */
    .contact.toggle__container .toggle__item {
        min-height: 480px !important;
		justify-content: space-between;
    }
}
@media screen and (min-width: 1334px) {
    /* FOOTER: Botón Ir arriba (Go to top) */
	.footer .footer__btn--to-top .elementor-icon-box-icon {
		margin-bottom: -1rem !important;
	}	
}
@media screen and (min-width: 1441px) {
    /* CONTACTO: Cajas de mapas, corregir alturas */
    .contact.toggle__container .toggle__item {
        min-height: 480px !important;
		justify-content: flex-start;
    }
}
/* Actualización 21/09/2025 21:49 */