/* =========================================================
   VARIABLES / BASE
========================================================= */

.ge-footer,
.ge-footer *{
    box-sizing:border-box;
}

.ge-footer{
    --ge-green:#31c91d;
    --ge-green-light:#42d52f;
    --ge-green-dark:#08752d;
    --ge-green-deep:#04521f;

    --ge-yellow:#ffd523;
    --ge-white:#ffffff;

    --ge-soft:#f3faef;
    --ge-soft-2:#e7f5e2;

    --ge-text:#354039;
    --ge-muted:rgba(255,255,255,.72);

    --ge-border:rgba(255,255,255,.13);

    --ge-max:1380px;

    width:100%;
    margin:0;
    padding:0;

    font-family:
        "Poppins",
        Arial,
        Helvetica,
        sans-serif;

    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
}

.ge-footer a{
    text-decoration:none !important;
}

.ge-footer ul,
.ge-footer li{
    margin:0;
    padding:0;
    list-style:none;
}

.ge-footer p{
    margin:0;
}


/* =========================================================
   CTA SUPERIOR
========================================================= */

.ge-footer-cta{
    width:100%;
    position:relative;
    overflow:hidden;

    background:
        linear-gradient(
            135deg,
            var(--ge-green) 0%,
            #26b918 100%
        );
}

.ge-footer-cta::before{
    content:"";

    position:absolute;

    width:330px;
    height:330px;

    top:-210px;
    right:5%;

    border-radius:50%;

    background:rgba(255,255,255,.08);

    pointer-events:none;
}

.ge-footer-cta::after{
    content:"";

    position:absolute;

    width:220px;
    height:220px;

    left:8%;
    bottom:-165px;

    border-radius:50%;

    background:rgba(255,255,255,.07);

    pointer-events:none;
}

.ge-footer-cta__inner{
    width:100%;
    max-width:var(--ge-max);

    min-height:190px;

    margin:0 auto;
    padding:40px 30px;

    position:relative;
    z-index:2;

    display:flex;
    align-items:center;
    justify-content:space-between;

    gap:50px;
}


/* =========================================================
   TEXTO CTA
========================================================= */

.ge-footer-cta__content{
    max-width:720px;
}

.ge-footer-cta__eyebrow{
    margin:0 0 8px !important;

    color:var(--ge-green-deep);

    font-size:13px;
    line-height:1.3;
    font-weight:700;

    text-transform:uppercase;
    letter-spacing:.07em;
}

.ge-footer-cta__title{
    margin:0 0 10px !important;

    color:var(--ge-white);

    font-size:clamp(26px,2.3vw,36px);
    line-height:1.18;
    font-weight:700;

    letter-spacing:-.025em;
}

.ge-footer-cta__text{
    max-width:650px;

    color:rgba(255,255,255,.92);

    font-size:15px;
    line-height:1.65;
    font-weight:400;
}


/* =========================================================
   BOTONES CTA
========================================================= */

.ge-footer-cta__buttons{
    flex:0 0 auto;

    display:flex;
    align-items:center;

    gap:11px;
}

.ge-footer-btn{
    min-height:50px;

    padding:0 20px;

    display:inline-flex;
    align-items:center;
    justify-content:center;

    gap:9px;

    border-radius:999px;

    font-size:14px;
    line-height:1;
    font-weight:600;

    white-space:nowrap;

    transition:
        transform .18s ease,
        background .18s ease,
        color .18s ease,
        box-shadow .18s ease;
}

.ge-footer-btn svg{
    width:18px;
    height:18px;

    flex:0 0 18px;
}


/* PEDIR CITA */

.ge-footer-btn--primary{
    background:var(--ge-green-deep);

    color:var(--ge-white) !important;

    box-shadow:
        0 10px 25px
        rgba(0,0,0,.13);
}

.ge-footer-btn--primary svg{
    fill:none;
    stroke:currentColor;
    stroke-width:2;
}

.ge-footer-btn--primary:hover{
    background:#033f18;

    transform:translateY(-2px);

    box-shadow:
        0 13px 28px
        rgba(0,0,0,.18);
}


/* WHATSAPP */

.ge-footer-btn--whatsapp{
    background:var(--ge-white);

    color:var(--ge-green-dark) !important;

    box-shadow:
        0 10px 25px
        rgba(0,0,0,.10);
}

.ge-footer-btn--whatsapp svg{
    fill:currentColor;
}

.ge-footer-btn--whatsapp:hover{
    background:var(--ge-soft);

    transform:translateY(-2px);
}


/* =========================================================
   FOOTER PRINCIPAL
========================================================= */

.ge-footer-main{
    width:100%;

    background:var(--ge-green-dark);

    color:var(--ge-white);
}

.ge-footer-main__inner{
    width:100%;
    max-width:var(--ge-max);

    margin:0 auto;

    padding:55px 30px 45px;

    display:grid;

    grid-template-columns:
        1.3fr
        .85fr
        .95fr
        1.15fr;

    gap:55px;
}


/* =========================================================
   COLUMNA MARCA
========================================================= */

.ge-footer-brand{
    max-width:340px;
}

.ge-footer-logo{
    display:inline-flex;
    align-items:center;

    margin-bottom:20px;
}

.ge-footer-logo img{
    display:block;

    width:auto;
    height:74px;

    max-width:215px;

    object-fit:contain;
}

.ge-footer-brand__text{
    margin:0 0 21px !important;

    color:rgba(255,255,255,.82);

    font-size:13.5px;
    line-height:1.7;
    font-weight:400;
}


/* =========================================================
   LOCALIZACIÓN
========================================================= */

.ge-footer-local{
    display:flex;
    align-items:flex-start;

    gap:10px;

    color:var(--ge-white);
}

.ge-footer-local__icon{
    width:34px;
    height:34px;

    flex:0 0 34px;

    display:flex;
    align-items:center;
    justify-content:center;

    border-radius:10px;

    background:rgba(255,255,255,.10);

    color:var(--ge-yellow);
}

.ge-footer-local__icon svg{
    width:17px;
    height:17px;

    fill:currentColor;
}

.ge-footer-local__content{
    min-width:0;
}

.ge-footer-local__title{
    display:block;

    margin-bottom:3px;

    color:var(--ge-white);

    font-size:13px;
    line-height:1.4;
    font-weight:600;
}

.ge-footer-local__address{
    display:block;

    color:rgba(255,255,255,.72);

    font-size:12.5px;
    line-height:1.55;
    font-weight:400;
}


/* =========================================================
   TÍTULOS COLUMNAS
========================================================= */

.ge-footer-title{
    margin:5px 0 20px !important;

    position:relative;

    color:var(--ge-white);

    font-size:15px;
    line-height:1.35;
    font-weight:700;
}

.ge-footer-title::after{
    content:"";

    display:block;

    width:30px;
    height:3px;

    margin-top:9px;

    border-radius:5px;

    background:var(--ge-yellow);
}


/* =========================================================
   ENLACES
========================================================= */

.ge-footer-links{
    display:flex;
    flex-direction:column;

    gap:11px;
}

.ge-footer-links a{
    display:inline-flex;
    align-items:center;

    gap:8px;

    width:fit-content;

    color:rgba(255,255,255,.78) !important;

    font-size:13px;
    line-height:1.45;
    font-weight:400;

    transition:
        color .18s ease,
        transform .18s ease;
}

.ge-footer-links a::before{
    content:"";

    width:5px;
    height:5px;

    flex:0 0 5px;

    border-radius:50%;

    background:var(--ge-green-light);

    transition:background .18s ease;
}

.ge-footer-links a:hover{
    color:var(--ge-white) !important;

    transform:translateX(3px);
}

.ge-footer-links a:hover::before{
    background:var(--ge-yellow);
}


/* =========================================================
   CONTACTO
========================================================= */

.ge-footer-contact{
    display:flex;
    flex-direction:column;

    gap:11px;
}

.ge-footer-contact__item{
    display:flex;
    align-items:center;

    gap:11px;

    color:rgba(255,255,255,.82) !important;

    font-size:13px;
    line-height:1.45;
    font-weight:400;

    transition:color .18s ease;
}

.ge-footer-contact__item:hover{
    color:var(--ge-white) !important;
}

.ge-footer-contact__icon{
    width:35px;
    height:35px;

    flex:0 0 35px;

    display:flex;
    align-items:center;
    justify-content:center;

    border-radius:10px;

    background:rgba(255,255,255,.09);

    color:var(--ge-white);

    transition:
        background .18s ease,
        color .18s ease;
}

.ge-footer-contact__item:hover
.ge-footer-contact__icon{
    background:var(--ge-green-light);

    color:var(--ge-green-deep);
}

.ge-footer-contact__icon svg{
    width:16px;
    height:16px;

    fill:currentColor;
}


/* =========================================================
   WHATSAPP DESTACADO
========================================================= */

.ge-footer-whatsapp{
    margin-top:5px;

    min-height:46px;

    padding:0 15px;

    width:fit-content;

    display:inline-flex;
    align-items:center;
    justify-content:center;

    gap:9px;

    border-radius:999px;

    background:rgba(255,255,255,.11);

    border:
        1px solid
        rgba(255,255,255,.14);

    color:var(--ge-white) !important;

    font-size:13px;
    font-weight:600;

    transition:
        background .18s ease,
        transform .18s ease;
}

.ge-footer-whatsapp svg{
    width:18px;
    height:18px;

    fill:currentColor;
}

.ge-footer-whatsapp:hover{
    background:var(--ge-green-light);

    color:var(--ge-green-deep) !important;

    transform:translateY(-1px);
}


/* =========================================================
   DIVISOR
========================================================= */

.ge-footer-divider{
    width:100%;
    max-width:var(--ge-max);

    height:1px;

    margin:0 auto;

    background:var(--ge-border);
}


/* =========================================================
   NAVEGACIÓN SECUNDARIA
========================================================= */

.ge-footer-seo{
    width:100%;

    background:var(--ge-green-dark);
}

.ge-footer-seo__inner{
    width:100%;
    max-width:var(--ge-max);

    margin:0 auto;

    padding:24px 30px;

    display:flex;
    align-items:center;
    justify-content:space-between;

    gap:30px;
}

.ge-footer-seo__text{
    max-width:800px;

    color:rgba(255,255,255,.68);

    font-size:12px;
    line-height:1.65;
    font-weight:400;
}

.ge-footer-seo__links{
    display:flex;
    align-items:center;
    flex-wrap:wrap;

    gap:7px;
}

.ge-footer-seo__link{
    min-height:34px;

    padding:0 12px;

    display:inline-flex;
    align-items:center;
    justify-content:center;

    border:
        1px solid
        rgba(255,255,255,.14);

    border-radius:999px;

    color:rgba(255,255,255,.84) !important;

    font-size:11.5px;
    line-height:1;
    font-weight:500;

    transition:
        background .18s ease,
        border-color .18s ease,
        color .18s ease;
}

.ge-footer-seo__link:hover{
    background:rgba(255,255,255,.10);

    border-color:rgba(255,255,255,.25);

    color:var(--ge-white) !important;
}


/* =========================================================
   FOOTER INFERIOR
========================================================= */

.ge-footer-bottom{
    width:100%;

    background:var(--ge-green-deep);
}

.ge-footer-bottom__inner{
    width:100%;
    max-width:var(--ge-max);

    min-height:65px;

    margin:0 auto;

    padding:14px 30px;

    display:flex;
    align-items:center;
    justify-content:space-between;

    gap:25px;
}

.ge-footer-copy{
    color:rgba(255,255,255,.70);

    font-size:11.5px;
    line-height:1.5;
    font-weight:400;
}

.ge-footer-legal{
    display:flex;
    align-items:center;
    justify-content:flex-end;

    flex-wrap:wrap;

    gap:8px 15px;
}

.ge-footer-legal a{
    position:relative;

    color:rgba(255,255,255,.72) !important;

    font-size:11.5px;
    line-height:1.4;
    font-weight:400;

    transition:color .18s ease;
}

.ge-footer-legal a:hover{
    color:var(--ge-white) !important;
}


/* =========================================================
   TABLET
========================================================= */

@media(max-width:1050px){

    .ge-footer-cta__inner{
        align-items:flex-start;
        flex-direction:column;

        gap:25px;
    }

    .ge-footer-main__inner{
        grid-template-columns:
            repeat(2,minmax(0,1fr));

        gap:45px 55px;
    }

    .ge-footer-brand{
        max-width:100%;
    }

    .ge-footer-seo__inner{
        align-items:flex-start;
        flex-direction:column;

        gap:18px;
    }

}


/* =========================================================
   MÓVIL
========================================================= */

@media(max-width:700px){

    .ge-footer-cta__inner{
        min-height:auto;

        padding:34px 18px;

        gap:24px;
    }

    .ge-footer-cta__eyebrow{
        font-size:11.5px;
    }

    .ge-footer-cta__title{
        margin-bottom:9px !important;

        font-size:clamp(25px,8vw,31px);

        line-height:1.2;
    }

    .ge-footer-cta__text{
        font-size:14px;
        line-height:1.6;
    }

    .ge-footer-cta__buttons{
        width:100%;

        flex-direction:column;

        align-items:stretch;
    }

    .ge-footer-btn{
        width:100%;

        min-height:49px;

        font-size:13.5px;
    }


    /* FOOTER PRINCIPAL */

    .ge-footer-main__inner{
        padding:42px 18px 35px;

        grid-template-columns:1fr;

        gap:36px;
    }

    .ge-footer-brand{
        max-width:100%;
    }

    .ge-footer-logo img{
        height:65px;

        max-width:195px;
    }

    .ge-footer-brand__text{
        max-width:500px;

        font-size:13px;
    }

    .ge-footer-title{
        margin-bottom:17px !important;

        font-size:15px;
    }

    .ge-footer-links{
        gap:10px;
    }

    .ge-footer-links a{
        font-size:13px;
    }

    .ge-footer-contact__item{
        font-size:13px;
    }


    /* NAVEGACIÓN SECUNDARIA */

    .ge-footer-seo__inner{
        padding:22px 18px;
    }

    .ge-footer-seo__text{
        font-size:11.5px;
    }

    .ge-footer-seo__links{
        width:100%;
    }

    .ge-footer-seo__link{
        min-height:34px;

        font-size:11px;
    }


    /* FOOTER INFERIOR */

    .ge-footer-bottom__inner{
        padding:20px 18px;

        flex-direction:column;

        align-items:flex-start;

        gap:13px;
    }

    .ge-footer-copy{
        font-size:11px;
    }

    .ge-footer-legal{
        justify-content:flex-start;
    }

    .ge-footer-legal a{
        font-size:11px;
    }

}


/* =========================================================
   MÓVIL PEQUEÑO
========================================================= */

@media(max-width:420px){

    .ge-footer-cta__inner{
        padding:30px 15px;
    }

    .ge-footer-main__inner{
        padding:38px 15px 32px;
    }

    .ge-footer-seo__inner{
        padding:20px 15px;
    }

    .ge-footer-bottom__inner{
        padding:18px 15px;
    }

}


/* =========================================================
   ACCESIBILIDAD
========================================================= */

.ge-footer a:focus-visible{
    outline:
        3px solid
        var(--ge-yellow);

    outline-offset:3px;
}
