/* Dark footer with 3 link columns (Contact / Links / Legal) + brand blurb,
   faithful to the original structure, plus back-to-top button. */
.site-footer {
  background: var(--c-dark);
  color: var(--c-on-dark-2);
  padding-block: var(--sp-8) var(--sp-4);
  margin-top: auto;
}
.site-footer a { color: var(--c-on-dark-2); }
.site-footer a:hover { color: var(--c-primary); }

.site-footer__grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr 1.2fr;
  gap: var(--sp-5);
  padding-bottom: var(--sp-6);
  border-bottom: 1px solid rgba(255, 255, 255, 0.10);
}
.site-footer__col ul.footer-cities { grid-template-columns: 1fr 1fr; gap: 8px 16px; }
.site-footer__brand .brand__name { color: #fff; }
.site-footer__brand p { color: var(--c-on-dark-2); margin-top: var(--sp-3); max-width: 36ch; }

.site-footer__col h5 {
  color: #fff; font-size: var(--fz-h5); margin-bottom: var(--sp-3);
}
.site-footer__col p { color: var(--c-on-dark-2); margin-bottom: var(--sp-3); }
.site-footer__col ul { display: grid; gap: 10px; }
.site-footer__col ul li { color: var(--c-on-dark-2); }

.site-footer__bottom {
  display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3);
  padding-top: var(--sp-4); font-size: var(--fz-sm); flex-wrap: wrap;
}
.site-footer__bottom .legal-links { display: inline-flex; gap: var(--sp-3); }

@media (max-width: 1024px) {
  .site-footer__grid { grid-template-columns: 1fr 1fr 1fr; }
}
@media (max-width: 760px) {
  .site-footer__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
  .site-footer__grid { grid-template-columns: 1fr; }
}

/* ---- Back to top ---- */
.back-to-top {
  position: fixed; right: 22px; bottom: 22px; z-index: var(--z-banner);
  width: 46px; height: 46px; border-radius: 50%;
  background: var(--c-primary); color: #fff;
  display: grid; place-items: center;
  box-shadow: var(--shadow-cta);
  opacity: 0; transform: translateY(12px); pointer-events: none;
  transition: opacity var(--t-base) var(--ease), transform var(--t-base) var(--ease),
              background var(--t-fast) var(--ease);
}
.back-to-top[data-visible="true"] { opacity: 1; transform: none; pointer-events: auto; }
.back-to-top:hover { background: var(--c-hover); color: #fff; }
.back-to-top svg { width: 20px; height: 20px; }

/* ---- Floating WhatsApp button (bottom-left, opposite back-to-top) ---- */
.wa-float {
  position: fixed; left: 22px; bottom: 22px; z-index: var(--z-banner);
  display: inline-flex; align-items: center; gap: 0;
  height: 56px; padding: 0; border-radius: var(--r-pill);
  background: #25D366; color: #fff;
  box-shadow: 0 8px 22px rgba(37, 211, 102, 0.42);
  overflow: hidden; max-width: 56px;
  transition: max-width var(--t-base) var(--ease), background var(--t-fast) var(--ease),
              transform var(--t-fast) var(--ease);
}
.wa-float svg { width: 30px; height: 30px; flex: none; margin: 0 13px; }
.wa-float__label {
  font-family: var(--font-heading); font-weight: 600; white-space: nowrap;
  padding-right: 20px; opacity: 0;
  transition: opacity var(--t-base) var(--ease);
}
.wa-float:hover, .wa-float:focus-visible {
  max-width: 230px; color: #fff; background: #1ebe5a; transform: translateY(-2px);
}
.wa-float:hover .wa-float__label, .wa-float:focus-visible .wa-float__label { opacity: 1; }
@media (max-width: 560px) {
  .wa-float { left: 16px; bottom: 16px; height: 52px; max-width: 52px; }
  .wa-float svg { margin: 0 11px; }
}
@media (prefers-reduced-motion: reduce) {
  .wa-float { transition: background var(--t-fast) var(--ease); }
}

/* ---- Cookie banner ---- */
.cookie-banner {
  position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: var(--z-banner);
  max-width: 720px; margin-inline: auto;
  background: #fff; color: var(--c-text);
  border: 1px solid var(--c-line); border-radius: var(--r-md);
  box-shadow: var(--shadow-2); padding: var(--sp-3) var(--sp-4);
}
.cookie-banner__inner {
  display: flex; align-items: center; gap: var(--sp-4); flex-wrap: wrap;
}
.cookie-banner__text { flex: 1 1 320px; font-size: var(--fz-sm); }
.cookie-banner__actions { display: inline-flex; gap: var(--sp-2); }
