/*==================================================
GREEN ASIST | 03-footer.css 
LIGHT PREMIUM CONTACT FOOTER | ALIGNMENT FINAL
==================================================*/

.footer{
    position:relative;
    overflow:hidden;

    background:#e7e9e6;
    color:#191c1e;

    border-top:1px solid rgba(20,25,28,.12);

    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.82),
        0 -18px 50px rgba(0,0,0,.03);
}

.footer::before{
    content:"";
    position:absolute;
    left:0;
    right:0;
    top:0;
    height:1px;

    pointer-events:none;

    background:linear-gradient(
        90deg,
        rgba(20,25,28,0),
        rgba(20,25,28,.18),
        rgba(20,25,28,0)
    );
}

/*==================================================
MAIN LAYOUT
==================================================*/

.footer-inner{
    position:relative;
    z-index:1;

    width:100%;
    max-width:none;
    margin:0;

    padding:
        28px
        clamp(42px,4vw,74px)
        22px;

    display:grid;
    grid-template-columns:
        minmax(190px,.82fr)
        minmax(340px,1.34fr)
        minmax(120px,.48fr)
        minmax(175px,.66fr)
        minmax(122px,.42fr);

    gap:clamp(20px,2vw,34px);
    align-items:flex-start;
}

/*==================================================
TEXT CONTROLS
==================================================*/

.footer-logo-text{
    display:block;

    margin:0 0 8px;

    color:#111314;

    font-size:21px;
    font-weight:700;
    line-height:1;
    letter-spacing:.01em;
    text-transform:uppercase;
}

.footer-brand p{
    max-width:285px;

    margin:0;
    padding-top:8px;

    color:rgba(25,28,30,.68);

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

.footer-title{
    display:block;

    margin:0 0 8px;
    padding:0 0 6px;

    color:#191c1e;

    font-size:11.5px;
    font-weight:700;
    line-height:1;
    letter-spacing:.08em;
    text-transform:uppercase;

    border-bottom:1px solid rgba(20,25,28,.34);
}

.footer-contact .footer-title{
    margin-bottom:11px;
    padding-bottom:7px;
}

.footer-contact h2{
    max-width:430px;

    margin:0 0 4px;

    color:#111314;

    font-size:13px;
    font-weight:720;
    line-height:1.08;
    letter-spacing:-.02em;
}

.footer-contact p{
    max-width:430px;

    margin:0;

    color:rgba(25,28,30,.62);

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

.footer-links a{
    color:rgba(25,28,30,.62);
    text-decoration:none;

    font-size:12.5px;
    font-weight:400;
    line-height:1.22;

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

.footer-bottom span{
    display:block;

    color:rgba(25,28,30,.68);

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

/*==================================================
STRUCTURE
==================================================*/

.footer-brand,
.footer-contact,
.footer-column{
    min-width:0;

    display:flex;
    flex-direction:column;
    align-items:flex-start;
}

.footer-brand{
    max-width:330px;
}

.footer-contact{
    max-width:480px;
}

.footer-actions{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:10px;

    margin-top:16px;
}

.footer-action{
    min-height:34px;

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

    padding:0 14px;

    border-radius:6px;

    text-decoration:none;

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

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

.footer-action-primary{
    color:#ffffff;
    background:#1a1e20;
    border:1px solid #1a1e20;
}

.footer-action-secondary{
    color:#1a1e20;
    background:transparent;
    border:1px solid rgba(20,25,28,.28);
}

.footer-action:hover{
    transform:translateY(-1px);
}

.footer-action-primary:hover{
    background:#000000;
    border-color:#000000;
}

.footer-action-secondary:hover{
    background:rgba(255,255,255,.58);
    border-color:rgba(20,25,28,.42);
}

.footer-links{
    display:flex;
    flex-direction:column;
    gap:5px;
}

.footer-links a:hover{
    color:#111314;
    transform:translateX(2px);
}

/*==================================================
SOCIAL
==================================================*/

.footer-social-column{
    width:122px;
    min-width:122px;
    max-width:122px;
    overflow:visible;
}

.footer-social{
    display:grid;
    grid-template-columns:repeat(3,32px);
    column-gap:6px;

    width:108px;
    min-width:108px;
    max-width:108px;
}

.footer-social-icon{
    width:32px;
    height:32px;

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

    border-radius:50%;
    border:1px solid rgba(20,25,28,.22);
    background:transparent;

    color:rgba(25,28,30,.62);
    text-decoration:none;

    overflow:hidden;

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

.footer-social-icon img{
    width:16px;
    height:16px;

    display:block;
    object-fit:contain;

    opacity:.86;

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

.footer-social-icon:hover{
    color:#191c1e;
    border-color:rgba(20,25,28,.42);
    background:rgba(255,255,255,.30);
    transform:translateY(-1px);
}

.footer-social-icon:hover img{
    opacity:1;
    transform:scale(1.04);
}

/*==================================================
BOTTOM
==================================================*/

.footer-bottom{
    position:relative;
    z-index:1;

    width:100%;
    max-width:none;
    margin:0;

    padding:
        12px
        clamp(42px,4vw,74px)
        16px;

    border-top:1px solid rgba(20,25,28,.18);

    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:16px;
    flex-wrap:wrap;
}

.footer-status-note{
    display:inline-flex;
    align-items:center;

    color:rgba(25,28,30,.52);

    font-size:12px;
    font-weight:400;
    line-height:1.35;

    white-space:normal;
}

.footer-status-note::before{
    content:"";

    width:4px;
    height:4px;
    margin-right:8px;

    border-radius:50%;
    background:rgba(0,133,66,.55);
}

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

@media(max-width:1440px){

    .footer-inner{
        padding-left:clamp(34px,3.4vw,58px);
        padding-right:clamp(34px,3.4vw,58px);

        grid-template-columns:
            minmax(180px,.78fr)
            minmax(320px,1.32fr)
            minmax(110px,.48fr)
            minmax(165px,.66fr)
            minmax(122px,.42fr);

        gap:22px;
    }

    .footer-bottom{
        padding-left:clamp(34px,3.4vw,58px);
        padding-right:clamp(34px,3.4vw,58px);
    }

}

@media(max-width:1180px){

    .footer-inner{
        width:min(100% - 48px,1180px);
        margin-left:auto;
        margin-right:auto;
        padding:38px 0 30px;

        grid-template-columns:
            minmax(220px,1fr)
            minmax(320px,1.25fr)
            minmax(160px,.7fr);

        gap:34px 38px;
    }

    .footer-bottom{
        width:min(100% - 48px,1180px);
        margin-left:auto;
        margin-right:auto;
        padding:14px 0 18px;
    }

    .footer-social-column{
        width:122px;
        max-width:122px;
    }

}

@media(max-width:900px){

    .footer-inner{
        width:min(100% - 40px,1180px);

        grid-template-columns:1fr 1fr;
        gap:30px 34px;
        padding:44px 0 32px;
    }

    .footer-contact{
        max-width:none;
    }

    .footer-bottom{
        width:min(100% - 40px,1180px);
    }

}

@media(max-width:640px){

    .footer-inner{
        width:min(100% - 32px,1180px);

        grid-template-columns:1fr;
        gap:28px;
        padding:40px 0 30px;
    }

    .footer-brand,
    .footer-contact{
        max-width:none;
    }

    .footer-brand p,
    .footer-contact h2,
    .footer-contact p{
        max-width:none;
    }

    .footer-bottom{
        width:min(100% - 32px,1180px);
        padding:16px 0 20px;

        flex-direction:column;
        align-items:flex-start;
        gap:7px;
    }

    .footer-status-note{
        font-size:11.8px;
    }

}

@media(max-width:460px){

    .footer-inner{
        width:min(100% - 28px,1180px);
        padding:36px 0 28px;
    }

    .footer-bottom{
        width:min(100% - 28px,1180px);
    }

    .footer-actions{
        width:100%;
        flex-direction:column;
        align-items:stretch;
    }

    .footer-action{
        width:100%;
    }

    .footer-logo-text{
        font-size:21px;
    }

}
