/* =========================================================
   COLORVELLA FOOTER
   ========================================================= */

.cv-site-footer {
    position: relative;

    margin-top: 90px;
    padding: 70px 0 30px;

    border-top:
        1px solid rgba(255,255,255,.07);

    background:
        linear-gradient(
            180deg,
            rgba(7,9,18,.15) 0%,
            rgba(8,8,18,.82) 35%,
            rgba(5,6,14,.98) 100%
        );

    overflow: hidden;
}


.cv-site-footer::before {
    content: "";

    position: absolute;

    width: 520px;
    height: 300px;

    left: -180px;
    top: -160px;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(221,50,205,.13),
            transparent 68%
        );

    pointer-events: none;
}


.cv-site-footer::after {
    content: "";

    position: absolute;

    width: 560px;
    height: 330px;

    right: -190px;
    top: -190px;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(38,139,255,.11),
            transparent 68%
        );

    pointer-events: none;
}


.cv-footer-main {
    position: relative;
    z-index: 1;

    display: grid;

    grid-template-columns:
        minmax(280px, 1.8fr)
        repeat(3, minmax(130px, 1fr));

    gap: 60px;
}


.cv-footer-logo {
    display: inline-block;

    margin-bottom: 20px;

    color: #fff;

    text-decoration: none;

    font-size: 30px;
    font-weight: 900;
    letter-spacing: -.05em;
}


.cv-footer-logo span {
    background:
        linear-gradient(
            90deg,
            #ff5ac8,
            #b566ff,
            #68b9ff
        );

    -webkit-background-clip: text;
    background-clip: text;

    color: transparent;
}


.cv-footer-brand p {
    max-width: 390px;

    margin: 0;

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

    font-size: 14px;
    line-height: 1.75;
}


.cv-footer-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;

    margin-top: 22px;
}


.cv-footer-badges span {
    padding: 7px 10px;

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

    border-radius: 999px;

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

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

    font-size: 11px;
    font-weight: 700;
}


.cv-footer-column {
    display: flex;
    flex-direction: column;
    align-items: flex-start;

    gap: 13px;
}


.cv-footer-column h3 {
    margin: 5px 0 8px;

    color: #fff;

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

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


.cv-footer-column a {
    position: relative;

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

    text-decoration: none;

    font-size: 14px;

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


.cv-footer-column a:hover {
    color: #fff;
    transform: translateX(3px);
}


.cv-footer-divider {
    position: relative;
    z-index: 1;

    height: 1px;

    margin: 55px 0 25px;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(255,255,255,.11),
            transparent
        );
}


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

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

    gap: 24px;
}


.cv-footer-copy {
    color:
        rgba(255,255,255,.36);

    font-size: 12px;
}


.cv-footer-legal {
    display: flex;
    align-items: center;
    gap: 22px;
}


.cv-footer-legal a {
    color:
        rgba(255,255,255,.40);

    text-decoration: none;

    font-size: 12px;

    transition: color .2s ease;
}


.cv-footer-legal a:hover {
    color: #fff;
}


@media (max-width: 900px) {

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

        gap: 45px;
    }

}


@media (max-width: 600px) {

    .cv-site-footer {
        margin-top: 60px;
        padding-top: 50px;
    }


    .cv-footer-main {
        grid-template-columns: 1fr;
        gap: 35px;
    }


    .cv-footer-bottom {
        align-items: flex-start;
        flex-direction: column;
    }


    .cv-footer-legal {
        flex-wrap: wrap;
        gap: 16px;
    }

}


/* =========================================================
   COLORVELLA FOOTER LAYOUT FIX
========================================================= */

.cv-site-footer,
.site-footer {

    width:
        100% !important;

    max-width:
        100% !important;

    overflow:
        hidden !important;

    margin-left:
        0 !important;

    margin-right:
        0 !important;
}


.cv-site-footer .footer-inner,
.cv-site-footer .cv-footer-inner,
.site-footer .footer-inner,
.site-footer .cv-footer-inner {

    width:
        min(
            1180px,
            calc(100% - 48px)
        ) !important;

    max-width:
        1180px !important;

    margin:
        0 auto !important;

    padding-left:
        0 !important;

    padding-right:
        0 !important;

    box-sizing:
        border-box !important;
}


/* main footer grid */

.cv-site-footer .footer-grid,
.cv-site-footer .cv-footer-grid,
.site-footer .footer-grid,
.site-footer .cv-footer-grid {

    display:
        grid !important;

    grid-template-columns:
        minmax(260px, 1.5fr)
        repeat(
            3,
            minmax(130px, .7fr)
        ) !important;

    gap:
        48px !important;

    align-items:
        start !important;

    width:
        100% !important;

    max-width:
        100% !important;

    margin:
        0 !important;
}


/* brand area must never escape the viewport */

.cv-site-footer .footer-brand,
.cv-site-footer .cv-footer-brand,
.site-footer .footer-brand,
.site-footer .cv-footer-brand {

    min-width:
        0 !important;

    max-width:
        380px !important;

    margin:
        0 !important;

    padding:
        0 !important;
}


.cv-site-footer .footer-brand *,
.cv-site-footer .cv-footer-brand *,
.site-footer .footer-brand *,
.site-footer .cv-footer-brand * {

    max-width:
        100% !important;
}


.cv-site-footer .footer-column,
.cv-site-footer .cv-footer-column,
.site-footer .footer-column,
.site-footer .cv-footer-column {

    min-width:
        0 !important;

    margin:
        0 !important;
}


/* bottom line */

.cv-site-footer .footer-bottom,
.cv-site-footer .cv-footer-bottom,
.site-footer .footer-bottom,
.site-footer .cv-footer-bottom {

    width:
        min(
            1180px,
            calc(100% - 48px)
        ) !important;

    max-width:
        1180px !important;

    margin:
        36px auto 0 !important;

    padding-left:
        0 !important;

    padding-right:
        0 !important;

    box-sizing:
        border-box !important;
}


/* links */

.cv-site-footer a,
.site-footer a {

    white-space:
        normal !important;
}


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

@media (
    max-width: 900px
) {

    .cv-site-footer .footer-grid,
    .cv-site-footer .cv-footer-grid,
    .site-footer .footer-grid,
    .site-footer .cv-footer-grid {

        grid-template-columns:
            repeat(
                2,
                minmax(
                    0,
                    1fr
                )
            ) !important;

        gap:
            34px 28px !important;
    }


    .cv-site-footer .footer-brand,
    .cv-site-footer .cv-footer-brand,
    .site-footer .footer-brand,
    .site-footer .cv-footer-brand {

        max-width:
            none !important;
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (
    max-width: 620px
) {

    .cv-site-footer .footer-inner,
    .cv-site-footer .cv-footer-inner,
    .site-footer .footer-inner,
    .site-footer .cv-footer-inner,

    .cv-site-footer .footer-bottom,
    .cv-site-footer .cv-footer-bottom,
    .site-footer .footer-bottom,
    .site-footer .cv-footer-bottom {

        width:
            calc(100% - 30px) !important;
    }


    .cv-site-footer .footer-grid,
    .cv-site-footer .cv-footer-grid,
    .site-footer .footer-grid,
    .site-footer .cv-footer-grid {

        grid-template-columns:
            1fr !important;

        gap:
            28px !important;
    }

}


/* =========================================================
   FOOTER OWN CONTAINER
   Never use global .container here.
========================================================= */

.cv-site-footer {

    width:
        100% !important;

    max-width:
        none !important;

    margin-left:
        0 !important;

    margin-right:
        0 !important;

    box-sizing:
        border-box !important;
}


.cv-site-footer .cv-footer-container {

    position:
        relative;

    z-index:
        1;

    width:
        min(
            1180px,
            calc(100% - 48px)
        ) !important;

    max-width:
        1180px !important;

    margin:
        0 auto !important;

    padding:
        0 !important;

    box-sizing:
        border-box !important;

    transform:
        none !important;

    left:
        auto !important;

    right:
        auto !important;
}


/* Footer columns */

.cv-site-footer
.cv-footer-main {

    width:
        100% !important;

    margin:
        0 !important;

    display:
        grid !important;

    grid-template-columns:
        minmax(280px, 1.8fr)
        repeat(
            3,
            minmax(130px, 1fr)
        ) !important;

    gap:
        60px !important;
}


.cv-site-footer
.cv-footer-brand {

    min-width:
        0 !important;

    margin:
        0 !important;

    padding:
        0 !important;
}


.cv-site-footer
.cv-footer-column {

    min-width:
        0 !important;
}


/* Bottom */

.cv-site-footer
.cv-footer-divider {

    width:
        100% !important;
}


.cv-site-footer
.cv-footer-bottom {

    width:
        100% !important;

    margin-left:
        0 !important;

    margin-right:
        0 !important;

    transform:
        none !important;
}


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

@media (
    max-width: 900px
) {

    .cv-site-footer
    .cv-footer-main {

        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            ) !important;

        gap:
            42px !important;
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (
    max-width: 600px
) {

    .cv-site-footer
    .cv-footer-container {

        width:
            calc(100% - 30px) !important;
    }


    .cv-site-footer
    .cv-footer-main {

        grid-template-columns:
            1fr !important;

        gap:
            34px !important;
    }


    .cv-site-footer
    .cv-footer-bottom {

        align-items:
            flex-start !important;

        flex-direction:
            column !important;
    }

}

