.site-footer{background:var(--color-charcoal);color:rgb(255 255 255 / .7);padding:var(--space-3xl) 0 0;position:relative;overflow:hidden}
.footer-decor{height:1px;background:linear-gradient(to right,transparent 0,rgb(255 255 255 / .06) 20%,var(--color-sand) 50%,rgb(255 255 255 / .06) 80%,transparent 100%);margin-bottom:var(--space-3xl)}
.site-footer::before{content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);width:800px;height:400px;background:radial-gradient(ellipse at center,rgb(122 139 94 / .06) 0,transparent 70%);pointer-events:none}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.1fr 1.5fr;gap:var(--space-xl);max-width:var(--max-width);margin:0 auto;padding:0 var(--space-lg);position:relative;z-index:1}
.footer-col h4{color:var(--color-white);font-family:var(--font-body);font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.14em;margin-bottom:var(--space-lg);position:relative;display:inline-block}
.footer-col h4::after{content:'';position:absolute;bottom:-6px;left:0;width:20px;height:1px;background:var(--color-sand);transition:width var(--duration-base) var(--ease-out-expo)}
.footer-col:hover h4::after{width:100%}
.footer-col ul{list-style:none}
.footer-col ul li{margin-bottom:.4rem}
.footer-col ul li a{font-size:var(--fs-small);color:rgb(255 255 255 / .55);line-height:1.8;transition:all var(--duration-fast) var(--ease-out-expo);display:inline-block}
.footer-col ul li a:hover{color:var(--color-sand);transform:translateX(3px)}
.footer-brand .logo{color:var(--color-white);display:inline-block;margin-bottom:var(--space-md);font-size:1.5rem}
.footer-brand p{max-width:300px;margin-bottom:0;font-size:var(--fs-small);color:rgb(255 255 255 / .5);line-height:1.8}
.footer-subscribe{margin-bottom:var(--space-lg)}
.footer-subscribe-row{display:flex;gap:0;border-radius:var(--radius-md);overflow:hidden;border:1px solid rgb(255 255 255 / .12);background:rgb(255 255 255 / .04);transition:border-color var(--duration-base)}
.footer-subscribe-row:focus-within{border-color:var(--color-olive);box-shadow:0 0 0 3px rgb(122 139 94 / .15)}
.footer-subscribe-input{flex:1;min-width:0;padding:.65rem var(--space-md);background:0 0;border:none;outline:0;color:var(--color-white);font-family:var(--font-body);font-size:var(--fs-small);line-height:1.5}
.footer-subscribe-input::placeholder{color:rgb(255 255 255 / .35);opacity:1}
.footer-subscribe-input:-webkit-autofill{-webkit-box-shadow:0 0 0 30px var(--color-charcoal) inset;-webkit-text-fill-color:var(--color-white)}
.footer-subscribe-btn{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:44px;background:var(--color-olive);border:none;cursor:pointer;color:var(--color-white);transition:background var(--duration-fast)}
.footer-subscribe-btn:hover{background:#6b7d4f}
.footer-subscribe-btn:active{background:#5e6f45}
.footer-subscribe-btn:focus-visible{outline:2px solid var(--color-sand);outline-offset:-2px}
.footer-subscribe-btn svg{width:16px;height:16px}
.footer-subscribe-btn:disabled{opacity:.5;cursor:not-allowed}
.footer-subscribe-msg{margin-top:var(--space-sm);font-size:var(--fs-xs);line-height:1.5;min-height:1.25em;transition:all var(--duration-fast)}
.footer-subscribe-msg.success{color:#7ac07a}
.footer-subscribe-msg.error{color:#f28b82}
.footer-subscribe-btn.is-loading svg{display:none}
.footer-subscribe-btn.is-loading::after{content:'';display:block;width:16px;height:16px;border:2px solid rgb(255 255 255 / .3);border-top-color:var(--color-white);border-radius:50%;animation:btn-spin .6s linear infinite}
@keyframes btn-spin{to{transform:rotate(360deg)}
}
.footer-contact-item{display:flex;align-items:flex-start;gap:var(--space-sm);margin-bottom:var(--space-sm);font-size:var(--fs-small);color:rgb(255 255 255 / .55);line-height:1.6;text-decoration:none;transition:color var(--duration-fast)}
a.footer-contact-item:hover{color:var(--color-sand)}
.footer-contact-item svg{flex-shrink:0;width:16px;height:16px;margin-top:.15em;color:rgb(255 255 255 / .25);transition:color var(--duration-fast)}
a.footer-contact-item:hover svg{color:var(--color-sand)}
.footer-hours{opacity:.6;font-size:var(--fs-xs)}
.footer-bottom{border-top:1px solid rgb(255 255 255 / .16);margin-top:var(--space-xl);padding:var(--space-lg) 0}
.footer-bottom-inner{display:flex;justify-content:space-between;align-items:center;max-width:var(--max-width);margin:0 auto;padding:0 var(--space-lg);font-size:var(--fs-xs);color:rgb(255 255 255 / .35)}
.footer-tagline{letter-spacing:.08em;text-transform:uppercase;color:rgb(255 255 255 / .25)}
