/* ============ FOOTER ============ */
.site-footer{
  background:var(--ink);
  color:#C6D2EA;
  padding:72px 0 0;
  position:relative;
  overflow:hidden;
}
.site-footer::before{
  content:'';
  position:absolute; top:0; left:0; right:0; height:2px;
  background:linear-gradient(90deg, var(--blue), var(--green), var(--blue));
  background-size:200% 100%;
  animation:foot-line 6s linear infinite;
}
@keyframes foot-line{ 0%{ background-position:0% 0;} 100%{ background-position:200% 0;} }

.footer-top{
  display:grid;
  grid-template-columns: 1.4fr 2fr;
  gap:60px;
  padding-bottom:56px;
  border-bottom:1px solid rgba(255,255,255,0.12);
}

.footer-brand .brand{ color:#fff; margin-bottom:16px; }
.footer-brand .brand .mark{ border-color:#fff; }
.footer-brand p{
  font-size:0.95rem; line-height:1.7; color:#9FB0D1; max-width:340px; margin-bottom:24px;
}
.footer-social{ display:flex; gap:10px; }
.footer-social a{
  width:40px; height:40px;
  border:1.5px solid rgba(255,255,255,0.18);
  border-radius:var(--radius);
  display:flex; align-items:center; justify-content:center;
  transition:all .2s ease;
}
.footer-social a:hover{ border-color:var(--blue); background:rgba(21,80,255,0.15); transform:translateY(-3px); }
.footer-social svg{ width:17px; height:17px; color:#C6D2EA; }

.footer-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:24px;
}
.footer-col h4{
  font-family:var(--font-head);
  font-size:0.85rem;
  color:#fff;
  margin-bottom:18px;
  letter-spacing:0.5px;
}
.footer-col ul li{ margin-bottom:12px; }
.footer-col a{
  font-size:0.88rem; color:#9FB0D1; transition:color .2s ease, padding-left .2s ease;
}
.footer-col a:hover{ color:var(--blue-soft); padding-left:4px; }

/* ============ Office Address strip (balanced, sits between grid and bottom bar) ============ */
.footer-office{
  display:flex;
  align-items:center;
  gap:20px;
  flex-wrap:wrap;
  justify-content:space-between;
  border:1.5px solid rgba(255,255,255,0.14);
  border-radius:var(--radius);
  padding:20px 24px;
  margin-top:44px;
  background:rgba(255,255,255,0.02);
}
.footer-office .office-info{
  display:flex;
  align-items:flex-start;
  gap:14px;
}
.footer-office .office-info .ico{
  width:38px; height:38px;
  border:1.5px solid rgba(255,255,255,0.16);
  border-radius:var(--radius-sm);
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
  background:rgba(21,80,255,0.12);
}
.footer-office .office-info .ico svg{ width:17px; height:17px; color:var(--blue-soft); }
.footer-office .office-info strong{
  display:block; color:#fff; font-family:var(--font-head);
  font-size:0.72rem; letter-spacing:0.6px; text-transform:uppercase; margin-bottom:5px;
}
.footer-office .office-info span{ font-size:0.85rem; color:#9FB0D1; line-height:1.6; max-width:480px; display:block; }

.footer-office .office-contacts{
  display:flex; gap:22px; flex-wrap:wrap;
}
.footer-office .office-contacts a{
  display:flex; align-items:center; gap:8px;
  font-size:0.84rem; font-weight:600; color:#C6D2EA;
  white-space:nowrap;
}
.footer-office .office-contacts a svg{ width:15px; height:15px; color:var(--blue-soft); flex-shrink:0; }
.footer-office .office-contacts a:hover{ color:#fff; }

.footer-bottom{
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  padding:26px 0;
  flex-wrap:wrap;
}
.footer-bottom p{ font-size:0.82rem; color:#7C8DB0; }
.footer-legal{ display:flex; gap:22px; flex-wrap:wrap; }
.footer-legal a{ font-size:0.82rem; color:#7C8DB0; }
.footer-legal a:hover{ color:var(--blue-soft); }

@media (max-width: 900px){
  .footer-top{ grid-template-columns:1fr; gap:40px; }
  .footer-grid{ grid-template-columns:repeat(2,1fr); gap:32px 20px; }
  .footer-office{ flex-direction:column; align-items:flex-start; gap:18px; }
}
@media (max-width: 560px){
  .site-footer{ padding-top:52px; }
  .footer-bottom{ flex-direction:column; align-items:flex-start; gap:12px; }
  .footer-office{ padding:18px; }
  .footer-office .office-contacts{ flex-direction:column; gap:12px; }
}
