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

.vf-footer{
    --vf-footer-gold:#d2aa63;
    --vf-footer-gold-soft:#e1c58c;
    --vf-footer-text:#f5f2e9;
    --vf-footer-line:rgba(210,170,99,.24);
    position:relative;
    overflow:hidden;
    color:var(--vf-footer-text);
    background:
        radial-gradient(circle at 75% 25%,rgba(255,255,255,.035),transparent 28%),
        linear-gradient(115deg,#173829 0%,#123224 50%,#19372a 100%);
    font-family:inherit;
}

.vf-footer::before{
    content:"";
    position:absolute;
    left:-35px;
    bottom:42px;
    width:190px;
    height:175px;
    opacity:.08;
    pointer-events:none;
    background:
        radial-gradient(ellipse at 50% 100%,transparent 52%,#b6c99c 53% 55%,transparent 56%) 0 0/85px 85px,
        linear-gradient(65deg,transparent 48%,#b6c99c 49% 51%,transparent 52%);
    transform:rotate(-8deg);
}

.vf-footer__main{
    position:relative;
    z-index:1;
    display:grid;
    grid-template-columns:minmax(0,2.15fr) minmax(350px,.95fr);
    width:min(1460px,100%);
    margin:0 auto;
    padding:38px 4.3% 40px;
}

.vf-footer__values{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    align-items:start;
    gap:30px;
    padding:6px 5.5% 0 0;
}

.vf-footer-card{
    min-width:0;
    text-align:center;
}

.vf-footer-icon{
    display:flex;
    align-items:center;
    justify-content:center;
    height:48px;
    color:var(--vf-footer-gold);
}

.vf-footer-icon svg{
    width:42px;
    height:42px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.45;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.vf-footer-card h3{
    margin:12px 0 12px;
    color:var(--vf-footer-gold);
    font-size:14px;
    font-weight:600;
    letter-spacing:.25em;
    line-height:1.3;
    text-transform:uppercase;
}

.vf-footer-card p{
    max-width:240px;
    margin:0 auto;
    color:rgba(255,255,255,.88);
    font-size:14px;
    line-height:1.55;
}

.vf-footer-card__line{
    display:block;
    width:31px;
    height:1px;
    margin:16px auto 0;
    background:var(--vf-footer-gold);
}

.vf-footer-contact{
    padding:0 0 0 45px;
    border-left:1px solid var(--vf-footer-line);
}

.vf-footer-contact__title-row{
    display:grid;
    grid-template-columns:72px max-content 1fr;
    align-items:center;
    gap:18px;
    margin:0 0 6px;
}

.vf-footer-contact__title-row span{
    height:1px;
    background:var(--vf-footer-gold);
    opacity:.55;
}

.vf-footer-contact__title-row h2{
    margin:0;
    color:var(--vf-footer-gold);
    font-size:13px;
    font-weight:700;
    letter-spacing:.27em;
    line-height:1.2;
    text-transform:uppercase;
    white-space:nowrap;
}

.vf-footer-contact__list{
    display:flex;
    flex-direction:column;
}

.vf-footer-contact__item{
    display:grid;
    grid-template-columns:40px minmax(0,1fr) 18px;
    align-items:center;
    min-height:49px;
    gap:12px;
    color:inherit;
    text-decoration:none;
    border-bottom:1px solid rgba(255,255,255,.045);
    transition:background-color .2s ease,color .2s ease;
}

.vf-footer-contact__item:hover,
.vf-footer-contact__item:focus-visible{
    color:#fff;
    background:rgba(255,255,255,.025);
    outline:none;
}

.vf-footer-contact__icon{
    display:flex;
    align-items:center;
    justify-content:center;
    width:36px;
    height:36px;
    color:var(--vf-footer-gold-soft);
    border-radius:50%;
    background:rgba(210,170,99,.14);
}

.vf-footer-contact__icon svg,
.vf-footer-contact__maps svg{
    width:21px;
    height:21px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.65;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.vf-footer-contact__text{
    display:flex;
    min-width:0;
    flex-direction:column;
    line-height:1.28;
}

.vf-footer-contact__text small{
    color:rgba(255,255,255,.83);
    font-size:13px;
    font-weight:400;
}

.vf-footer-contact__text strong{
    overflow-wrap:anywhere;
    color:rgba(255,255,255,.95);
    font-size:14px;
    font-weight:400;
}

.vf-footer-contact__item:nth-child(2) .vf-footer-contact__text strong{
    color:var(--vf-footer-gold);
    font-weight:600;
}

.vf-footer-contact__item--address{
    align-items:start;
    padding:8px 0;
}

.vf-footer-contact__item--address .vf-footer-contact__icon{
    margin-top:2px;
}

.vf-footer-contact__arrow{
    justify-self:end;
    color:var(--vf-footer-gold);
    font-size:27px;
    font-weight:300;
    line-height:1;
}

.vf-footer-contact__maps{
    display:grid;
    grid-template-columns:22px 1fr 16px;
    align-items:center;
    gap:10px;
    width:100%;
    min-height:43px;
    margin-top:12px;
    padding:8px 20px;
    color:var(--vf-footer-gold);
    font-size:13px;
    font-weight:600;
    letter-spacing:.02em;
    text-decoration:none;
    border:1px solid rgba(210,170,99,.75);
    border-radius:999px;
    transition:background-color .2s ease,color .2s ease,transform .2s ease;
}

.vf-footer-contact__maps:hover,
.vf-footer-contact__maps:focus-visible{
    color:#173829;
    background:var(--vf-footer-gold);
    outline:none;
    transform:translateY(-1px);
}

.vf-footer-contact__maps > span:last-child{
    justify-self:end;
    font-size:25px;
    font-weight:300;
    line-height:1;
}

.vf-footer__bottom{
    position:relative;
    z-index:1;
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:39px;
    padding:8px 20px;
    border-top:1px solid rgba(210,170,99,.28);
    background:rgba(4,22,15,.18);
}

.vf-footer__bottom p{
    margin:0;
    color:rgba(255,255,255,.8);
    font-size:13px;
    line-height:1.4;
}

@media(max-width:1100px){
    .vf-footer__main{
        grid-template-columns:minmax(0,1.6fr) minmax(330px,1fr);
        padding-inline:3%;
    }

    .vf-footer__values{
        gap:14px;
        padding-right:3%;
    }

    .vf-footer-card h3{
        letter-spacing:.16em;
    }

    .vf-footer-contact{
        padding-left:28px;
    }
}

@media(max-width:760px){
    .vf-footer::before{
        display:none;
    }

    .vf-footer__main{
        display:flex;
        flex-direction:column;
        width:100%;
        padding:14px 15px 12px;
    }

    .vf-footer-contact{
        order:1;
        padding:0 35px 13px;
        border-left:0;
        border-bottom:1px solid rgba(210,170,99,.38);
    }

    .vf-footer-contact__title-row{
        grid-template-columns:1fr max-content 1fr;
        gap:12px;
        margin-bottom:6px;
    }

    .vf-footer-contact__title-row h2{
        font-size:11px;
        letter-spacing:.2em;
    }

    .vf-footer-contact__item{
        grid-template-columns:31px minmax(0,1fr) 14px;
        min-height:39px;
        gap:8px;
    }

    .vf-footer-contact__icon{
        width:27px;
        height:27px;
        background:transparent;
        border:1px solid var(--vf-footer-gold);
    }

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

    .vf-footer-contact__text small{
        font-size:9px;
    }

    .vf-footer-contact__text strong{
        font-size:10px;
        line-height:1.25;
    }

    .vf-footer-contact__arrow{
        font-size:20px;
    }

    .vf-footer-contact__item--address{
        padding:5px 0;
    }

    .vf-footer-contact__maps{
        grid-template-columns:26px 1fr 14px;
        min-height:38px;
        margin-top:5px;
        padding:5px 0;
        font-size:10px;
        border:0;
        border-radius:0;
    }

    .vf-footer-contact__maps:hover,
    .vf-footer-contact__maps:focus-visible{
        color:var(--vf-footer-gold);
        background:transparent;
        transform:none;
    }

    .vf-footer-contact__maps svg{
        width:23px;
        height:23px;
        padding:4px;
        border:1px solid currentColor;
        border-radius:50%;
    }

    .vf-footer-contact__maps > span:last-child{
        font-size:20px;
    }

    .vf-footer__values{
        order:2;
        grid-template-columns:repeat(3,minmax(0,1fr));
        gap:7px;
        padding:10px 0 0;
    }

    .vf-footer-icon{
        height:25px;
    }

    .vf-footer-icon svg{
        width:25px;
        height:25px;
    }

    .vf-footer-card h3{
        margin:4px 0 3px;
        font-size:8px;
        letter-spacing:.14em;
    }

    .vf-footer-card p{
        max-width:105px;
        font-size:7.5px;
        line-height:1.25;
    }

    .vf-footer-card__line{
        display:none;
    }

    .vf-footer__bottom{
        min-height:31px;
        padding:6px 15px;
    }

    .vf-footer__bottom p{
        font-size:9px;
    }
}

@media(max-width:430px){
    .vf-footer-contact{
        padding-inline:35px;
    }
}

@media(max-width:370px){
    .vf-footer-contact{
        padding-inline:14px;
    }
}
