/*
 Theme Name:   Astra Child
 Author:       Refineria Web
 Template:     astra
 Version:      1.0.0
 License:      GNU General Public License v2 or later
 License URI:  https://www.gnu.org/licenses/gpl-2.0.html
 Tags:         child-theme
 Text Domain:  astra-child
*/

/* =========================================================
   ESTILOS PERSONALIZADOS
   ========================================================= */


/* =========================================================
   1. FORMULARIO HOME
   Estilos base del formulario de la página de inicio
   ========================================================= */

/*
 * Ajuste global de padding en campos de formulario
 * para mejorar la legibilidad y la experiencia de uso
 * en escritorio.
 */
.elementor-form input.elementor-field,
.elementor-form textarea.elementor-field,
.elementor-form select.elementor-field {
    padding: 40px !important;
}

/*
 * Enlace de aceptación de política de privacidad
 * dentro del formulario de la home.
 */
.texto-turquesa-formulario {
	color: #007A87 !important;
	text-decoration: none !important;
}

/*
 * Ocultamos el mensaje de error nativo de Elementor
 * para mostrar únicamente los mensajes personalizados,
 * adaptados al estilo definido para el proyecto.
 */
.elementor-widget-form .elementor-message {
	display: none !important;
}

/*
 * Estilo visual para los mensajes de error personalizados.
 */
.error-message {
    color: red;
    font-family: 'Open Sans', sans-serif;
    font-size: 16px;
    font-weight: 400;
    margin-top: 5px;
}

/*
 *
 * Tamaño de fuente específico para el check de aceptación de políticas
 *
 */

.elementor-form .elementor-field-type-acceptance label {
    font-size: 14px !important;
}


/* =========================================================
   2. CABECERA MÓVIL Y MENÚ OFF-CANVAS
   Iconos de apertura/cierre y estructura móvil
   ========================================================= */

/*
 * Estructura general de la cabecera móvil.
 */
.mobile-header {
    padding: 1rem;
    background: #fafafa;
    text-align: right;
}

/*
 * Contenedor del botón de apertura del menú móvil.
 */
.menu-opener {
    width: 48px;
    height: 36px;
    display: inline-block;
}

/*
 * SVG del icono hamburguesa.
 */
.hamburger-svg {
    display: block;
    width: 100%;
    height: 100%;
    overflow: visible;
}

/*
 * Líneas del icono hamburguesa.
 * Se utiliza stroke-dasharray para permitir
 * efectos de animación visual sobre el trazo.
 */
.svg-line {
    stroke: #200960;
    stroke-width: 1;
    stroke-linecap: round;
    stroke-dasharray: 32;
    stroke-dashoffset: 0;
    transition: stroke 0.3s ease;
}

/*
 * Cambio de color en hover para el icono hamburguesa.
 */
.menu-opener:hover .svg-line {
    stroke: #00AEC0;
}

/*
 * Secuencia de retraso entre líneas para aportar
 * un efecto de interacción más elegante.
 */
.menu-opener:hover .svg-line-1 {
    transition-delay: 0s;
}

.menu-opener:hover .svg-line-2 {
    transition-delay: 0.15s;
}

.menu-opener:hover .svg-line-3 {
    transition-delay: 0.3s;
}

/*
 * Contenedor del botón de cierre del menú móvil.
 */
.menu-closer {
    display: inline-block;
    margin-left: 1.5rem;
    width: 48px;
    height: 36px;
    cursor: pointer;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

/*
 * SVG del icono de cierre.
 */
.close-svg {
    display: block;
    width: 100%;
    height: 100%;
    overflow: visible;
}

/*
 * Líneas del icono de cierre (X).
 * El dasharray se ajusta a la longitud diagonal
 * para mantener coherencia con el dibujo SVG.
 */
.svg-close-line {
    stroke: #200960;
    stroke-width: 1;
    stroke-linecap: round;
    stroke-dasharray: 40;
    stroke-dashoffset: 0;
    transition: stroke 0.3s ease;
}

/*
 * Cambio de color en hover para el icono de cierre.
 */
.menu-closer:hover .svg-close-line {
    stroke: #00AEC0;
}

/*
 * Retrasos escalonados en la animación del icono de cierre.
 */
.menu-closer:hover .svg-close-line-1 {
    transition-delay: 0s;
}

.menu-closer:hover .svg-close-line-2 {
    transition-delay: 0.3s;
}


/* =========================================================
   3. ENLACES ANIMADOS
   Estilos para enlaces decorativos con subrayado animado
   ========================================================= */

/*
 * Enlace animado principal.
 * Se utiliza como base para enlaces con efecto visual
 * al pasar el cursor.
 */
.enlace-animado {
    position: relative;
    display: inline-block;
    text-decoration: none;
}

/*
 * Línea decorativa animada bajo el enlace.
 */
.enlace-animado::after {
    content: '';
    position: absolute;
    width: 100%;
    height: 2px;
    background: #00AEC0;
    bottom: -3px;
    left: 0;
    transform: scaleX(0);
    transform-origin: right;
    transition: transform 0.4s ease-out;
}

/*
 * Animación de entrada del subrayado.
 */
.enlace-animado:hover::after {
    transform: scaleX(1);
}

/*
 * Ajuste adicional del enlace animado para casos
 * en los que se alinea junto a iconos o elementos inline.
 */
.enlace-animado {
    text-decoration: none;
    color: inherit;
    display: inline-flex;
    align-items: center;
}

/*
 * Variante en color blanco para enlaces situados
 * sobre fondos oscuros, como el pre-header.
 */
.enlace-animado-blanco {
    position: relative;
    display: inline-block;
    text-decoration: none;
}

/*
 * Línea decorativa animada en blanco.
 */
.enlace-animado-blanco::after {
    content: '';
    position: absolute;
    width: 100%;
    height: 2px;
    background: #FFFFFF;
    bottom: -3px;
    left: 0;
    transform: scaleX(0);
    transform-origin: right;
    transition: transform 0.4s ease-out;
}

/*
 * Animación de entrada del subrayado blanco.
 */
.enlace-animado-blanco:hover::after {
    transform: scaleX(1);
}


/* =========================================================
   4. PRE-HEADER
   Iconografía y ajustes visuales
   ========================================================= */

/*
 * Tamaño y separación de iconos en el pre-header.
 */
.iconos-pre-header i {
    font-size: 18px;
    margin-right: 10px;
}


/* =========================================================
   5. SUBMENÚS Y NAVEGACIÓN MÓVIL
   Ajustes visuales sobre estructuras Elementor
   ========================================================= */

/*
 * Margen superior general para submenús móviles.
 * Se mantiene este selector abierto para que afecte
 * a cualquier submenú con esta clase.
 */
.mobile-menu-submenu {
	margin-top: 10px !important;
}


/* =========================================================
   6. MEDIA QUERIES
   Adaptaciones responsive para tablet y móvil
   ========================================================= */

/*
 * TABLET
 * Ajuste del tamaño de iconos en resoluciones
 * iguales o inferiores a 1024px.
 */
@media (max-width: 1024px) {
    .menu-opener {
        width: 40px;
        height: 30px;
    }

    .menu-closer {
        width: 40px;
        height: 30px;
    }
}

/*
 * MÓVIL / TABLET PEQUEÑA
 * Ajustes de navegación, formulario y off-canvas
 * en anchos iguales o inferiores a 839px.
 */
@media (max-width: 839px) {

	/*
	 * Reducción adicional del tamaño de iconos
	 * para mejorar la proporción visual en móvil.
	 */
    .menu-opener {
        width: 36px;
        height: 28px;
    }

    .menu-closer {
        width: 36px;
        height: 28px;
    }

	/*
	 * Ajuste específico del margen del submenú
	 * en una instancia concreta de Elementor.
	 */
	.elementor-28 .elementor-element.elementor-element-3df0436 .mobile-menu-submenu {
		margin-top: 20px !important;
	}

	/*
	 * Forzamos scroll interno en el off-canvas
	 * para evitar cortes de contenido en pantallas pequeñas.
	 */
	.elementor-widget-off-canvas .e-off-canvas {
		overflow: scroll !important;
	}

	/*
	 * Centrado de grupos de campos en formularios
	 * específicos dentro de determinadas plantillas.
	 */
	.elementor-46 .elementor-element.elementor-element-0857541 .elementor-field-group,
	.elementor-13 .elementor-element.elementor-element-f952933 .elementor-field-group {
		text-align: center !important;
    }

	/*
	 * Refuerzo del margen superior del submenú
	 * en entorno móvil.
	 */
	.mobile-menu-submenu {
		margin-top: 10px !important;
	}
}

/*
 * MÓVIL PEQUEÑO
 * Ajustes finales para pantallas de hasta 480px.
 */
@media (max-width: 480px) {

    .menu-opener {
        width: 32px;
        height: 24px;
    }

    .menu-closer {
        width: 32px;
        height: 24px;
    }

	/*
	 * Ocultamos iconos que no se adaptan correctamente
	 * a resoluciones muy reducidas.
	 */
	.hide-icon-mobile .elementor-icon-list-icon {
    	display: none !important;
	}
}