/* Footer base */
.site-footer{ position:relative; background:#0b1324; color:#e9e9ef; }
.site-footer::before{ content:""; position:absolute; inset:0; background:#0b1324; }
.site-footer .container{ position:relative; padding-bottom:2rem; }
.footer-bg-shape{ position:absolute; inset:auto 0 0 0; height:280px; background:#0b1324; }

.footer-card{
  position:relative; background:#fff; color:#0c1220;
  border-radius:16px; padding:1.5rem; margin-top:2rem;
  box-shadow:0 20px 60px rgba(11,19,36,.25);
}
@media(min-width:768px){ .footer-card{ border-radius:18px; padding:2rem; margin-top:3rem; } }

.footer-topgrid{ display:grid; gap:1rem; grid-template-columns:1fr; margin-bottom:1.25rem; }
@media(min-width:768px){ .footer-topgrid{ grid-template-columns: 1.1fr 1fr 1fr; gap:1.25rem; } }
.ft-col{ background:#f9f6f8; border:1px solid hsl(var(--border)); border-radius:14px; padding:1rem; }
.ft-city{ font-weight:800; margin-bottom:.5rem; }
.ft-phone{ font-weight:800; color:hsl(var(--primary)); text-decoration:none; }
.ft-address,.ft-hours,.ft-note{ color:#606a76; font-size:.95rem; }
.ft-email{ font-weight:700; color:#111; text-decoration:none; }
.ft-social a{ color:hsl(var(--primary)); text-decoration:none; }
.ft-social .dot{ color:#b0b7c3; margin:0 .5rem; }

.footer-midgrid{
  display:grid; gap:1.25rem; grid-template-columns:1fr; align-items:start;
  margin-top:1.25rem; padding-top:1.25rem; border-top:1px solid hsl(var(--border));
}
@media(min-width:900px){
  .footer-midgrid{ grid-template-columns: minmax(240px, 1fr) 1fr 1fr; }
}

.fm-brand{ display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.fm-logo img{ width:120px; height:auto; display:block; }
.fm-social-icons{ display:flex; align-items:center; gap:.5rem; }
.btn-icon{ display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:12px;
  border:1px solid hsl(var(--border)); color:#111; background:#fff; transition:transform .15s ease, box-shadow .15s ease;
}
.btn-icon:hover{ transform:translateY(-1px); box-shadow:0 4px 14px rgba(0,0,0,.12); }
.btn-icon:active{ transform:translateY(0); }

.fm-col .fm-title{ font-weight:800; margin-bottom:.5rem; }
.fm-col ul{ list-style:none; padding:0; margin:0; }
.fm-col li{ margin:.35rem 0; }
.fm-col a{ color:#4a5664; text-decoration:none; }
.fm-col a:hover{ color:hsl(var(--primary)); }

/* Map thumbnail */
.fm-col.fm-map{ display:flex; flex-direction:column; align-items:flex-start; gap:.4rem; }
.fm-col.fm-map .map-thumb{ display:block; }
.fm-col.fm-map img{
  width:100%; max-width: 120px; height:auto; display:block;
  border:1px solid hsl(var(--border)); border-radius:12px; box-shadow:0 4px 14px rgba(0,0,0,.1);
  transition: transform .15s ease;
}
.fm-col.fm-map img:hover{ transform:translateY(-2px); }
@media(max-width:899px){ .fm-col.fm-map img{ max-width:100%; } }

.footer-bottom{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:.75rem; margin-top:1.25rem; padding-top:1rem; border-top:1px solid hsl(var(--border)); }
.to-top{ text-decoration:none; color:hsl(var(--primary)); font-weight:700; }
.to-top:hover{ text-decoration:underline; }

/* Touch polish */
.site-footer a{ -webkit-tap-highlight-color: rgba(0,0,0,.05); }

/* Tiny screens */
@media (max-width:380px){
  .fm-logo img{ width:96px; }
  .btn-icon{ width:36px; height:36px; border-radius:10px; }
}

/* Re-ordered middle row: map | brand(center) | art */
@media(min-width:900px){
  .footer-midgrid{ grid-template-columns: 1fr 1fr 1fr; }
}
.fm-brand--center{ display:flex; flex-direction:column; align-items:center; gap:.75rem; }
.fm-brand--center .fm-social-icons{ gap:.6rem; }
.fm-brand--center .fm-logo img{ width:96px; }
@media(min-width:1100px){ .fm-brand--center .fm-logo img{ width:120px; } }

/* Calibration: center "Мы на карте" block */
.fm-col.fm-map{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.fm-col.fm-map .fm-title{
  width:100%;
  text-align:center;
}
.fm-col.fm-map img{
  margin-left:auto;
  margin-right:auto;
}


/* --- Staff portal button placed in "Арт-вечеринки" column --- */
.ft-admin-link{ margin-top:.6rem; }
.to-admin{
  display:inline-block;
  padding:.55rem .9rem;
  border:1px solid hsl(var(--border));
  border-radius:10px;
  background:#fff;
  color:#111;
  text-decoration:none;
  font-weight:700;
  transition:transform .15s ease, box-shadow .15s ease;
}
.to-admin:hover{ transform:translateY(-1px); box-shadow:0 4px 14px rgba(0,0,0,.12); }

