/**
 * Vir Footer
 *
 * @package Vir
 */

/* ==========================================================
   FOOTER BASE
   ========================================================== */

.vir-footer {
    width: 100%;
    box-sizing: border-box;

    background: var(--vir-footer-bg, #222222);
    color: var(--vir-footer-text, #ffffff);

    font-family: var(--vir-footer-font, inherit);

    margin: 0;
    padding: 60px 0;
}


/* ==========================================================
   FOOTER CONTAINER
   ========================================================== */

.vir-footer-container {
    width: min(1200px, 92%);
    margin: 0 auto;

    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    box-sizing: border-box;
}


/* ==========================================================
   FOOTER COLUMNS
   ========================================================== */

.vir-footer-column {
    width: var(--vir-footer-column-width, 25%);
    box-sizing: border-box;

    padding: 0 20px;
}


/* ==========================================================
   FOOTER WIDGET
   ========================================================== */

.vir-footer .widget {
    margin: 0 0 30px;
}

.vir-footer .widget:last-child {
    margin-bottom: 0;
}


/* ==========================================================
   WIDGET TITLE
   ========================================================== */

.vir-footer .widget-title {
    margin: 0 0 20px;

    color: var(
        --vir-footer-heading,
        #ffffff
    );

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

    font-family: var(
        --vir-footer-heading-font,
        inherit
    );
}


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

.vir-footer,
.vir-footer p {
    color: var(
        --vir-footer-text,
        #ffffff
    );

    line-height: 1.7;
}


/* ==========================================================
   LINKS
   ========================================================== */

.vir-footer a {
    color: var(
        --vir-footer-text,
        #ffffff
    );

    text-decoration: none;

    transition:
        color .25s ease,
        opacity .25s ease;
}

.vir-footer a:hover {
    color: var(
        --vir-footer-heading,
        #ffffff
    );

    opacity: .75;
}


/* ==========================================================
   LISTS
   ========================================================== */

.vir-footer ul {
    margin: 0;
    padding: 0;

    list-style: none;
}

.vir-footer li {
    margin: 0 0 10px;
}

.vir-footer li:last-child {
    margin-bottom: 0;
}


/* ==========================================================
   IMAGES
   ========================================================== */

.vir-footer img {
    max-width: 100%;
    height: auto;
}


/* ==========================================================
   WIDGET 1 / 2 / 3 / 4
   ========================================================== */

.vir-footer-column-1,
.vir-footer-column-2,
.vir-footer-column-3,
.vir-footer-column-4 {
    flex: 0 0 var(
        --vir-footer-column-width,
        25%
    );
}


/* ==========================================================
   LAYOUT — 4 COLUMNS
   ========================================================== */

.vir-footer-layout-4
.vir-footer-column {
    flex-basis: 25%;
}


/* ==========================================================
   LAYOUT — 3 + 1
   ========================================================== */

.vir-footer-layout-3-1
.vir-footer-column-1,
.vir-footer-layout-3-1
.vir-footer-column-2,
.vir-footer-layout-3-1
.vir-footer-column-3 {
    flex-basis: 25%;
}

.vir-footer-layout-3-1
.vir-footer-column-4 {
    flex-basis: 25%;
}


/* ==========================================================
   LAYOUT — 1 + 3
   ========================================================== */

.vir-footer-layout-1-3
.vir-footer-column-1 {
    flex-basis: 25%;
}

.vir-footer-layout-1-3
.vir-footer-column-2,
.vir-footer-layout-1-3
.vir-footer-column-3,
.vir-footer-layout-1-3
.vir-footer-column-4 {
    flex-basis: 25%;
}


/* ==========================================================
   LAYOUT — 2 + 2
   ========================================================== */

.vir-footer-layout-2-2
.vir-footer-column-1,
.vir-footer-layout-2-2
.vir-footer-column-2,
.vir-footer-layout-2-2
.vir-footer-column-3,
.vir-footer-layout-2-2
.vir-footer-column-4 {
    flex-basis: 50%;
}


/* ==========================================================
   FORM ELEMENTS
   ========================================================== */

.vir-footer input,
.vir-footer textarea,
.vir-footer select {
    max-width: 100%;
    box-sizing: border-box;
}


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

@media (max-width: 991px) {

    .vir-footer {
        padding: 50px 0;
    }

    .vir-footer-container {
        width: 94%;
    }

    .vir-footer-column {
        padding: 0 15px;
    }

    .vir-footer-layout-4
    .vir-footer-column,
    .vir-footer-layout-3-1
    .vir-footer-column,
    .vir-footer-layout-1-3
    .vir-footer-column {
        flex-basis: 50%;
    }

}


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

@media (max-width: 576px) {

    .vir-footer {
        padding: 40px 0;
    }

    .vir-footer-container {
        width: 92%;
        display: block;
    }

    .vir-footer-column,
    .vir-footer-column-1,
    .vir-footer-column-2,
    .vir-footer-column-3,
    .vir-footer-column-4,
    .vir-footer-layout-4 .vir-footer-column,
    .vir-footer-layout-3-1 .vir-footer-column,
    .vir-footer-layout-1-3 .vir-footer-column,
    .vir-footer-layout-2-2 .vir-footer-column {
        width: 100%;
        flex-basis: 100%;
        padding: 0;
        margin-bottom: 35px;
    }

    .vir-footer-column:last-child {
        margin-bottom: 0;
    }

}
/* ==========================================================
   FOOTER WIDGET HEADING DIVIDER
   ========================================================== */

.vir-footer .widget-title {
    position: relative;
    padding-bottom: 12px;
    margin-bottom: 22px;
}

.vir-footer .widget-title::after {
    content: "";
    display: block;

    width: 45px;
    height: 2px;

    margin-top: 12px;

    background: var(
        --vir-footer-heading,
        #ffffff
    );

    opacity: .75;
}


/* ==========================================================
   FOOTER MENU
   ========================================================== */

.vir-footer .menu,
.vir-footer .widget_nav_menu ul {
    margin: 0;
    padding: 0;

    list-style: none;
}


/* ==========================================================
   FOOTER MENU ITEMS
   ========================================================== */

.vir-footer .menu-item {
    position: relative;

    margin: 0;
    padding: 0;
}


/* ==========================================================
   FOOTER MENU LINKS
   ========================================================== */

.vir-footer .menu-item > a {
    position: relative;

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

    padding: 6px 0 6px 18px;
}


/* ==========================================================
   FOOTER MENU ARROW
   ========================================================== */

.vir-footer .menu-item > a::before {
    content: "\f054";

    position: absolute;
    left: 0;
    top: 50%;

    transform: translateY(-50%);

    font-family: "Font Awesome 6 Free";
    font-weight: 900;

    font-size: 9px;

    color: var(
        --vir-footer-heading,
        #ffffff
    );

    opacity: .75;

    transition:
        transform .25s ease,
        opacity .25s ease,
        color .25s ease;
}


/* ==========================================================
   FOOTER MENU HOVER
   ========================================================== */

.vir-footer .menu-item > a:hover::before {
    transform:
        translateY(-50%)
        translateX(3px);

    opacity: 1;

    color: var(
        --vir-footer-heading,
        #ffffff
    );
}


/* ==========================================================
   SUBMENU
   ========================================================== */

.vir-footer .sub-menu {
    margin: 4px 0 8px 15px;
    padding: 0;
}


/* ==========================================================
   SUBMENU ITEMS
   ========================================================== */

.vir-footer .sub-menu .menu-item > a {
    padding-left: 16px;
    font-size: .95em;
}


/* ==========================================================
   SUBMENU ARROW
   ========================================================== */

.vir-footer .sub-menu .menu-item > a::before {
    content: "\f105";
    font-size: 8px;
}


/* ==========================================================
   FOOTER MENU — NO EMPTY ARROW
   ========================================================== */

.vir-footer .menu-item-has-children > a::before {
    content: "\f054";
}


/* ==========================================================
   WIDGET SPACING
   ========================================================== */

.vir-footer .widget_nav_menu {
    margin-bottom: 30px;
}

.vir-footer .widget_nav_menu:last-child {
    margin-bottom: 0;
}


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

@media (max-width: 576px) {

    .vir-footer .widget-title {
        margin-bottom: 20px;
    }

    .vir-footer .widget-title::after {
        width: 40px;
    }

}
/* ==========================================================
   FOOTER BOTTOM / COPYRIGHT
   ========================================================== */

.vir-footer-bottom {
    width: 100%;
    margin-top: 50px;
    padding-top: 20px;

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

    box-sizing: border-box;
}

.vir-footer-bottom-container {
    width: min(1200px, 92%);
    margin: 0 auto;

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

    box-sizing: border-box;
}

.vir-footer-copyright {
    color: var(
        --vir-footer-text,
        #ffffff
    );

    font-size: 14px;
    line-height: 1.6;

    text-align: center;

    opacity: .75;
}

@media (max-width: 576px) {

    .vir-footer-bottom {
        margin-top: 35px;
        padding-top: 18px;
    }

    .vir-footer-bottom-container {
        width: 92%;
    }

    .vir-footer-copyright {
        font-size: 13px;
    }

}
/* ==========================================================
   FOOTER WIDGET TYPOGRAPHY
   ========================================================== */

.vir-footer .widget-title {
    font-family: var(--vir-footer-widget-heading-font);
    color: var(--vir-footer-heading);
}

.vir-footer .widget {
    font-family: var(--vir-footer-widget-text-font);
    color: var(--vir-footer-text);
}

.vir-footer .widget p,
.vir-footer .widget li {
    font-family: var(--vir-footer-widget-text-font);
}

.vir-footer .widget a {
    font-family: var(--vir-footer-widget-link-font);
}