/* Footer (scoped) */
.site-footer { background: var(--gray-50); border-top: 1px solid var(--gray-200); margin-top: var(--space-16); }
.footer__top { display: grid; gap: var(--space-12); padding-block: var(--space-12); grid-template-columns: 1.2fr 1fr 1fr; }
.footer__brand p { color: var(--gray-700); max-width: 40ch; }
.footer__social { margin-top: var(--space-4); display: flex; gap: var(--space-4); }
.footer__social a { width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--gray-300); border-radius: var(--radius-pill); color: var(--gray-800); }
.footer__social a:hover { color: var(--color-primary-700); border-color: var(--color-primary-400); box-shadow: var(--shadow-sm); }

.footer__links .links__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: var(--space-3); }
.footer__links a { color: var(--gray-800); }
.footer__links a:hover { color: var(--color-primary-700); }

.footer__contact .contact__list { display: grid; gap: var(--space-2); }

.footer__bottom { border-top: 1px solid var(--gray-200); background: var(--color-surface); }
.footer__bottom-inner { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); padding-block: var(--space-6); }
.footer__bottom a { color: var(--gray-800); }
.footer__bottom a:hover { color: var(--color-primary-700); }

@media (max-width: 992px) { .footer__top { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) {
  .footer__top { grid-template-columns: 1fr; }
  .footer__bottom-inner { flex-direction: column; align-items: flex-start; gap: var(--space-2); }
}

/* Cookie consent banner */
.cc-banner {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 1200;
  background: var(--color-surface);
  border-top: 1px solid var(--gray-200);
  box-shadow: var(--shadow-md);
  transform: translateY(100%);
  opacity: 0;
  transition: transform var(--duration-slow) var(--ease-standard), opacity var(--duration-slow) var(--ease-standard);
}
.cc-banner__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--space-6); padding-block: var(--space-4); }
.cc-banner__text p { margin: 0; color: var(--gray-800); }
.cc-banner__actions { display: flex; gap: var(--space-3); flex-wrap: wrap; }

.cc-banner.cc-banner--visible { transform: translateY(0); opacity: 1; }

@media (max-width: 768px) {
  .cc-banner__inner { flex-direction: column; align-items: stretch; text-align: left; }
  .cc-banner__actions { justify-content: flex-start; }
}
