.footer{
position:relative;
padding:88px 0 32px;
background:var(--forest-dark);
color:var(--warm-white);
overflow:hidden;
}

.footer::before{
content:"";
position:absolute;
top:0;
left:0;
width:100%;
height:1px;
background:rgba(255,255,255,.14);
}

.footer-top{
display:grid;
grid-template-columns:minmax(300px,1.7fr) minmax(150px,.7fr) minmax(240px,1fr);
gap:80px;
padding-bottom:64px;
}

.footer-brand{
max-width:420px;
}

.footer-logo{
display:inline-flex;
align-items:center;
gap:14px;
margin-bottom:24px;
}

.footer-logo img{
width:auto;
height:58px;
filter:brightness(0) invert(1);
}

.footer-logo-text{
display:flex;
flex-direction:column;
gap:1px;
}

.footer-logo-title{
font-size:22px;
font-weight:600;
line-height:1.25;
color:var(--warm-white);
}

.footer-logo-subtitle{
font-size:15px;
line-height:1.3;
color:rgba(255,255,255,.7);
}

.footer-description{
max-width:390px;
font-size:15px;
line-height:1.75;
color:rgba(255,255,255,.62);
}

.footer-location{
display:flex;
align-items:center;
gap:12px;
margin-top:28px;
font-size:13px;
font-weight:500;
letter-spacing:.5px;
color:var(--sand);
}

.footer-location::before{
content:"";
width:28px;
height:1px;
flex-shrink:0;
background:var(--wood);
}

.footer-title{
margin-bottom:24px;
font-family:var(--font-main);
font-size:12px;
font-weight:600;
line-height:1.3;
letter-spacing:1.5px;
text-transform:uppercase;
color:var(--sand);
}

.footer-nav{
display:flex;
flex-direction:column;
align-items:flex-start;
gap:13px;
}

.footer-nav a{
position:relative;
font-size:15px;
font-weight:400;
color:rgba(255,255,255,.72);
transition:color var(--transition-fast);
}

.footer-nav a::after{
content:"";
position:absolute;
left:0;
bottom:-3px;
width:0;
height:1px;
background:var(--sand);
transition:width var(--transition-main);
}

.footer-nav a:hover{
color:var(--warm-white);
}

.footer-nav a:hover::after{
width:100%;
}

.footer-contacts{
display:flex;
flex-direction:column;
align-items:flex-start;
gap:14px;
}

.footer-phone{
font-family:var(--font-display);
font-size:24px;
line-height:1.3;
color:var(--warm-white);
transition:color var(--transition-fast);
}

.footer-phone:hover{
color:var(--sand);
}

.footer-email{
padding-bottom:3px;
border-bottom:1px solid rgba(255,255,255,.3);
font-size:14px;
color:rgba(255,255,255,.7);
transition:color var(--transition-fast),border-color var(--transition-fast);
}

.footer-email:hover{
color:var(--warm-white);
border-color:var(--sand);
}

.footer-address{
max-width:260px;
font-size:14px;
line-height:1.6;
color:rgba(255,255,255,.55);
}

.footer-cta{
display:inline-flex;
align-items:center;
gap:10px;
margin-top:12px;
padding-bottom:5px;
border-bottom:1px solid var(--sand);
font-size:13px;
font-weight:600;
letter-spacing:.4px;
color:var(--sand);
transition:color var(--transition-fast),border-color var(--transition-fast);
}

.footer-cta::after{
content:"→";
font-size:17px;
transition:transform var(--transition-fast);
}

.footer-cta:hover{
color:var(--warm-white);
border-color:var(--warm-white);
}

.footer-cta:hover::after{
transform:translateX(4px);
}

.footer-bottom{
display:flex;
align-items:center;
justify-content:space-between;
gap:32px;
padding-top:28px;
border-top:1px solid rgba(255,255,255,.12);
}

.footer-copyright{
font-size:12px;
line-height:1.5;
color:rgba(255,255,255,.42);
}

.footer-bottom-links{
display:flex;
align-items:center;
gap:28px;
}

.footer-bottom-links a{
font-size:12px;
color:rgba(255,255,255,.48);
transition:color var(--transition-fast);
}

.footer-bottom-links a:hover{
color:var(--warm-white);
}