/* =========================================================
   FOOTER
   ========================================================= */
.ff-footer{
  background:var(--ff-card);
  border-top:1px solid var(--ff-border);
  padding:64px 0 40px;
  position:relative;
}
.ff-footer-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1fr;
  gap:40px;
  margin-bottom:44px;
}
.ff-footer-about .ff-logo{ margin-bottom:16px; }
.ff-footer-about p{ font-size:14.5px; max-width:320px; margin-bottom:22px; }
.ff-social{ display:flex; gap:12px; }
.ff-social a{
  width:36px; height:36px;
  border-radius:50%;
  background:var(--ff-lime);
  color:var(--ff-black);
  display:flex; align-items:center; justify-content:center;
  transition:background .15s ease, transform .15s ease;
}
.ff-social a:hover{ background:var(--ff-lime-dark); transform:translateY(-2px); }
.ff-social svg{ width:16px; height:16px; }

.ff-footer h4{
  font-size:19px;
  color:var(--ff-white);
  margin-bottom:20px;
}
.ff-footer-col ul li{ margin-bottom:13px; }
.ff-footer-contact li{
  display:flex;
  align-items:flex-start;
  gap:12px;
  font-size:14.5px;
  color:var(--ff-muted);
}
.ff-footer-contact svg{ width:16px; height:16px; flex-shrink:0; margin-top:3px; color:var(--ff-lime); }
.ff-footer-links a{
  display:flex; align-items:center; gap:10px;
  font-size:14.5px; color:var(--ff-muted);
  transition:color .15s ease;
}
.ff-footer-links a::before{
  content:"";
  width:5px; height:5px;
  border-radius:50%;
  background:var(--ff-lime);
  flex-shrink:0;
}
.ff-footer-links a:hover{ color:var(--ff-lime); }
.ff-footer-links .current-menu-item a{ color:var(--ff-lime); }

.ff-footer-bottom{
  border-top:1px solid var(--ff-border);
  padding-top:26px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:12px;
  font-size:13.5px;
  color:var(--ff-muted-dark);
}
.ff-back-to-top{
  position:fixed;
  right:28px; bottom:28px;
  width:46px; height:46px;
  border-radius:50%;
  border:2px solid var(--ff-lime);
  color:var(--ff-lime);
  background:var(--ff-black);
  display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden; transform:translateY(10px);
  transition:opacity .2s ease, transform .2s ease, visibility .2s ease;
  z-index:500;
}
.ff-back-to-top.is-visible{ opacity:1; visibility:visible; transform:translateY(0); }
.ff-back-to-top svg{ width:18px; height:18px; }

@media (max-width:900px){
  .ff-footer-grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:560px){
  .ff-footer-grid{ grid-template-columns:1fr; }
  .ff-footer-bottom{ flex-direction:column; text-align:center; }
}
