/*
 Theme Name:   Astra Child
 Template:     astra
 Version:      1.0.0
 Author:       Nowords SL
 Description:  Custom child theme for Astra
*/

/* ==========================================================================
   Base Styles
   ========================================================================== */

/* Smooth scrolling with offset for anchor links */
html {
    scroll-behavior: smooth;
    scroll-padding-top: 120px;
}

/* Focus Styles
   ========================================================================== */
a:focus,
button:focus,
input:focus,
textarea:focus,
select:focus {
    outline: none;
}

/* ==========================================================================
   Variables
   ========================================================================== */
   :root {
    /* Colors */
    --white-text-color: #ffffff;
    
    /* Spacing */
    --form-input-padding: 30px;
    
    /* Header Heights */
    --header-height: 80px;
    --header-height-shrink: 60px;
    
    /* Transitions */
    --transition-standard: all 0.4s ease-in-out;

}

/* ==========================================================================
   Vector Animations
   ========================================================================== */
    .icons-container{
        overflow-x: clip!important;
    }

/* Vector Base Styles
   ========================================================================== */
#vector-left path,
#vector-right path{
    stroke-linecap: butt;
    stroke-width: 60px;
}

#vector-form path {
    stroke-linecap: butt;
    stroke-width: 140px;
}

 /* ==========================================================================
      Header Styles
      ========================================================================== */

   /* Sticky Header
      ========================================================================== */
      .main-header-bar {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        z-index: 999;
        background: #fff;
        transition: var(--transition-standard);
        height: var(--header-height);
    }
 
    .main-header-bar .site-branding {
        height: 100%;
        padding: 0;
        transition: var(--transition-standard);
        position: relative;
    }
 
    .main-header-bar .site-branding img {
        height: 50px;
        width: auto;
        object-fit: contain;
        max-width: 160px;
        max-height: 50px;
        transition: var(--transition-standard);
    }
 
    .main-header-bar .site-branding img.logo-sticky {
        position: absolute;
        top: 0;
        left: 0;
        visibility: hidden;
    }
 
    .main-header-bar.shrink .site-branding img.logo-normal {
        opacity: 0;
        visibility: hidden;
    }
 
    .main-header-bar.shrink .site-branding img.logo-sticky {
        opacity: 1;
        visibility: visible;
    }
 
    .main-header-bar.shrink .site-branding img {
        height: 35px;
        width: auto;
        object-fit: contain;
        max-width: 112px;
        max-height: 35px;
    }
 
    .main-header-bar .site-primary-header-wrap {
        transition: var(--transition-standard);
    }
 
    .main-header-bar.shrink {
        height: var(--header-height-shrink);
        box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    }
    .main-header-bar.shrink .site-primary-header-wrap{
         height: var(--header-height-shrink);
         min-height: var(--header-height-shrink);
    }
 
    /* Ajuste para el contenido debajo del header */
    body {
        padding-top: var(--header-height);
    }
 
    /* Ajuste para móviles */
    @media (max-width: 1168px) {
        .ast-mobile-header-content {
            position: fixed;
            top: var(--header-height);
            left: 0;
            right: 0;
            z-index: 998;
            background: #fff;
            transition: var(--transition-standard);
            margin-top: -2px;
        }
 
        .ast-mobile-header-content.shrink {
            top: var(--header-height-shrink);
        }
 
        .ast-mobile-header .main-header-bar .site-branding {
            position: relative;
        }
 
        .ast-mobile-header .main-header-bar .site-branding img {
            height: 50px;
            width: auto;
            object-fit: contain;
            max-width: 160px;
            max-height: 50px;
            transition: var(--transition-standard);
        }
 
        .ast-mobile-header .main-header-bar .site-branding img.logo-sticky {
            position: absolute;
            top: 0;
            left: 0;
            opacity: 0;
            visibility: hidden;
        }
 
        .ast-mobile-header .main-header-bar.shrink .site-branding img.logo-normal {
            opacity: 0;
            visibility: hidden;
        }
 
        .ast-mobile-header .main-header-bar.shrink .site-branding img.logo-sticky {
            opacity: 1;
            visibility: visible;
        }
 
        .ast-mobile-header .main-header-bar.shrink .site-branding img {
            height: 35px;
            width: auto;
            object-fit: contain;
            max-width: 112px;
            max-height: 35px;
        }
 
        /* Centrar textos del menú móvil */
        .ast-mobile-header-content .main-header-menu {
            text-align: center;
        }
 
        .ast-mobile-header-content .menu-item {
            display: block;
            text-align: center;
        }
 
        .ast-mobile-header-content .menu-link {
            justify-content: center;
        }
    }
 
/* ==========================================================================
   Navigation Menu
   ========================================================================== */

/* Menu Link Hover Animation
   ========================================================================== */
@media (min-width: 1168px) {
    .menu-link {
        position: relative;
        text-decoration: none;
    }

    .menu-link::after {
        content: '';
        position: absolute;
        width: 0;
        height: 1px;
        bottom: -2px;
        left: 50%;
        background-color: currentColor;
        transition: var(--transition-menu);
        max-width: 60%;
    }
    
    .menu-link:hover::after {
        width: 60%;
        left: 20%;
    }
}


/* ==========================================================================
   Button States
   ========================================================================== */

/* Hover states */
.wpcf7 .wpcf7-submit:not(:disabled):hover,
.elementor-button:hover {
    background-color: #00abc8ba !important; /* #F29633BA with 73% opacity */
}

/* Active states */
.wpcf7 .wpcf7-submit:not(:disabled):active {
    background-color: #00ABC8 !important;
}

.cta-alternate .elementor-button:active {
    background-color: #00ABC8 !important;
}

.elementor-button:active {
    background-color: #223E69 !important;
}

/* ==========================================================================
   Hover Effects
   ========================================================================== */
@media (min-width: 1168px) {
    .hover-grow-container {
        position: relative;
    }
    .hover-grow-container .elementor-widget:not(.elementor-widget-button):not(.hover-grow) {
        pointer-events: none;
    }

    .hover-grow,
    .hover-grow * {
        pointer-events: auto;
    }
    .hover-grow img {
        transition: transform 0.8s ease-in-out;
    }
    .hover-grow img:hover {
        transform: scale(1.1);
    }

}

/* ==========================================================================
   Agenda / Accordion Styles
   ========================================================================== */
details#techtrack > summary .e-n-accordion-item-title-icon svg {
    color: var(--e-global-color-primary);
    fill: currentColor;
}
details#techtrack li::marker {
    color: var(--e-global-color-primary);
}
details[open]#techtrack > .elementor-element{
    border-color: var(--e-global-color-primary);
}
details#economtrack > summary .e-n-accordion-item-title-icon svg {
    color: var(--e-global-color-text);
    fill: currentColor;
}
details#economtrack li::marker {
    color: var(--e-global-color-text);
}
details[open]#economtrack > .elementor-element{
    border-color: var(--e-global-color-text);
}
details#investtrack > summary .e-n-accordion-item-title-icon svg {
    color: var(--e-global-color-secondary);
    fill: currentColor;
}
details#investtrack li::marker {
    color: var(--e-global-color-secondary);
}
details[open]#investtrack > .elementor-element{
    border-color: var(--e-global-color-secondary);
}
details#energtrack > summary .e-n-accordion-item-title-icon svg {
    color: #f2d333!important;
    fill: currentColor;
}
details#energtrack li::marker {
    color:#f2d333;
}
details[open]#energtrack > .elementor-element{
    border-color: #f2d333;
}
details#investtrack > summary .e-n-accordion-item-title-icon,
details#techtrack > summary .e-n-accordion-item-title-icon,
details#economtrack > summary .e-n-accordion-item-title-icon,
details#energtrack > summary .e-n-accordion-item-title-icon {
    padding: 10px;
}

/* No aplicar en el editor de Elementor */
body:not(.elementor-edit-mode):not(.elementor-editor-active) .agenda {
    display: none;
}

/* Transición de difuminado para TODAS las imgdayN */
body:not(.elementor-edit-mode):not(.elementor-editor-active) [class*="imgday"] {
    transition: filter 200ms ease;
}
body:not(.elementor-edit-mode):not(.elementor-editor-active) .is-blurred {
    filter: blur(3px);
}

/* ==========================================================================
   Countdown Styles
   ========================================================================== */

#days, #hours, #minutes {
    opacity: 0;
    transition: opacity 0.3s ease;
}

#days.animated, #hours.animated, #minutes.animated {
    opacity: 1;
}

/* ==========================================================================
   Areas Image Styles
   ========================================================================== */
   @media (max-width: 768px) {
    #areas-img{
        opacity:0.27;
    }
}


/* ==========================================================================
   Form Styles
   ========================================================================== */
/* ==========================================================================
   Formulario de Aplicación (#appbuilderform)
   ========================================================================== */

/* Contenedor principal del formulario: usa flexbox para disposición responsiva */
#appbuilderform {
    padding: 0;
    width: 100%;
    display: flex;
    flex-wrap: wrap;
}

/* Colorea los textos de etiquetas y encabezados del formulario en blanco */
#appbuilderform .APPBF-text label,
#appbuilderform .APPBF-header h3,
#appbuilderform .APPBF-header h4,
#appbuilderform .APPBF-header h5,
#appbuilderform .APPBF-checkbox-group label,
#appbuilderform .APPBF-paragraph .paragraph,
#appbuilderform .APPBF-checkbox label,
#appbuilderform .APPBF-select label,
#appbuilderform .APPBF-radio-group .radio label {
    color: white;
}

/* Enlaces dentro de checkboxes: blancos, negrita y subrayados */
#appbuilderform .APPBF-checkbox a{
    color: white;
    font-weight: bold;
    text-decoration: underline;
}

/* Inputs y selects ocupan todo el ancho y tienen margen inferior */
#appbuilderform > .APPBF-text,
#appbuilderform > .APPBF-select {
    flex: 0 0 100%;
    margin-right: 0;
    box-sizing: border-box;
    margin-bottom: 20px;
}

/* Altura de los inputs y selects */
#appbuilderform > .APPBF-text input,
#appbuilderform > .APPBF-select select{
    height:45px
}

/* Elimina margen derecho en elementos pares */
#appbuilderform > .APPBF-text:nth-of-type(2n),
#appbuilderform > .APPBF-select:nth-of-type(2n) {
    margin-right: 0;
}

/* Ajuste específico para el listado de países */
#appbuilderform > div:nth-child(15) {
    flex: 0 0 100%;
    margin-right: 0;
    margin-bottom:0px;
}

/* Ajuste para el div del botón de enviar: ocupa todo el ancho */
#appbuilderform > div:nth-last-child(3) {
    flex: 0 0 100%;
    margin-right: 0;
}

/* Estilo de input en el div del botón de enviar: botón de enviar */
#appbuilderform > div:nth-last-child(3) input {
    border-width: 0;
    height: 58px;
    width: 230px;
    line-height: 24px;
}

/* Ajustes similares para catalán (por compatibilidad) */
#appbuilderform b > div:nth-last-child(3) {
    flex: 0 0 100%;
    margin-right: 0;
}
#appbuilderform b > div:nth-last-child(3) input {
    border-width: 0;
    height: 58px;
    width: 230px;
    line-height: 24px;
}

/* Encabezados del formulario ocupa todo el ancho */
#appbuilderform .APPBF-header{
    width: 100%;
}

/* Estilos de los encabezados del formulario */
#appbuilderform .APPBF-header h1 {
    margin-top: 15px;
    margin-bottom: 0;
    font-size: 30px;
    font-weight: 600;
    line-height: 42px;
}
#appbuilderform .APPBF-header h3 {
    margin-top: 15px;
    margin-bottom: 0;
}
#appbuilderform .APPBF-header h4 {
    margin-bottom: 0;
    font-size: 20px;
    font-weight: 500;
}
#appbuilderform .APPBF-header h5 {
    margin-top: 15px;
    margin-bottom: 0;
}

/* Margen para el captcha de Google */
#appbuilderform .g-recaptcha {
    margin-top: 15px;
}

/* Margen inferior para párrafos dentro del formulario */
#appbuilderform .APPBF-paragraph .paragraph {
    margin-bottom: 15px;
}

/* Párrafos con clase appbuilder_show_more: subrayados y con cursor pointer */
#appbuilderform .APPBF-paragraph.appbuilder_show_more{
    text-decoration: underline;
    cursor: pointer;
    width: 100%;
}
#appbuilderform .APPBF-paragraph .appbuilder_show_more{
    text-decoration: underline;
    cursor: pointer;
}

/* Estilos para textos legales (LOPD) */
#appbuilderform .appbuilder_lopd,
#appbuilderform .appbuilder_lopd li,
#appbuilderform .appbuilder_lopd .paragraph{
    font-size:14px;
    color: white;
}
#appbuilderform .appbuilder_lopd{
    font-weight: 400;
}
#appbuilderform .appbuilder_lopd a{
    color: white;
    font-weight: bold;
    text-decoration: underline;
}
#appbuilderform .appbuilder_lopd ul{
    margin-top:-14px;
}

/* Botón de enviar del formulario */
#appbuilderform input[type="submit"] {
    margin-right: 0%;
    margin-top: 20px;
}

/* Checkbox del formulario: margen superior y ancho completo */
#appbuilderform .APPBF-checkbox{
    margin-top: 20px;
    width: 100%;
}

/* Mensaje de error en rojo */
#appbuilderform .alert-danger {
    color: red;
}

/* ==========================================================================
   Speaker Styles
   ========================================================================== */

/* Oculta la descripción del speaker en las tarjetas */
.speaker .elementor-icon-box-description {
    display: none !important;
}

/* ==========================================================================
   Popup Scroll Control
   ========================================================================== */

/* Bloquea el scroll de la página cuando hay un popup abierto */
body.popup-open {
    overflow: hidden !important;
}

/* Asegura que el popup tenga scroll propio */
.elementor-popup-modal .dialog-widget {
    overflow-y: auto !important;
    max-height: 90vh !important;
}

/* Fuerza el scroll en el contenido del popup */
.elementor-popup-modal .dialog-widget-content {
    overflow-y: auto !important;
    max-height: 90vh !important;
}

.elementor-popup-modal .dialog-message {
    overflow-y: auto !important;
    max-height: 90vh !important;
}

/* Asegura que el popup tenga el foco */
.elementor-popup-modal {
    outline: none;
}

.elementor-popup-modal .dialog-widget-content {
    outline: none;
}



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

/* Ajustes para pantallas menores a 1168px */
@media (max-width: 1168px) {
    #appbuilderform .APPBF-header h1 {
        font-size: 24px;
        font-weight: 600;
        line-height: 36px;
    }
    #appbuilderform .APPBF-header h4 {
        font-size: 20px;
        font-weight: 500;
    }
}

/* Ajustes para pantallas menores a 768px */
@media (max-width: 768px) {
    #appbuilderform .APPBF-header h1 {
        font-size: 20px;
        font-weight: 600;
        line-height: 24px;
    }
    #appbuilderform .APPBF-header h4 {
        font-size: 18px;
        font-weight: 500;
    }
    #appbuilderform .APPBF-header h5 {
        font-size: 16px;
        font-weight: 500;
    }
    /* Centra el botón de enviar en móviles */
    #appbuilderform > div:nth-last-child(3) {
        display: flex;
        justify-content: center;
        /*margin-bottom:40px;*/
    }
    #appbuilderform > div:nth-last-child(3) input {
        margin-right: 0px;
    }
    #appbuilderform b > div:nth-last-child(3) {
        display: flex;
        justify-content: center;
        /*margin-bottom:40px;*/
    }
    #appbuilderform b > div:nth-last-child(3) input {
        margin-right: 0px;
    }
    /* Encabezado en bloque y con margen inferior reducido */
    #appbuilderform .APPBF-header {
        display: block!important;
        margin-bottom:5px!important;
    }
}
  
  


