.site-footer {
  position: relative;
  overflow: hidden;
  margin-top: var(--space-8);
  padding: var(--space-8) 0 var(--space-5);
  background: var(--color-primary-deep);
  color: var(--color-surface);
}

.site-footer__panorama { position: absolute; inset: 0; overflow: hidden; pointer-events: none; opacity: 0.3; }
.site-footer__mountains { position: absolute; right: -8%; bottom: 5.5rem; left: -8%; height: 13rem; background: linear-gradient(135deg, transparent 39%, #6c8299 40%, transparent 41%) 0 4rem/15rem 10rem repeat-x, linear-gradient(45deg, transparent 39%, #6c8299 40%, transparent 41%) 7rem 4rem/15rem 10rem repeat-x; opacity: 0.55; }
.site-footer__city { position: absolute; right: 0; bottom: 0; left: 0; height: 9rem; background: linear-gradient(90deg, transparent 0 4%, #f6f0e3 4% 5%, transparent 5% 8%, #f6f0e3 8% 9%, transparent 9% 17%, #f6f0e3 17% 21%, transparent 21% 27%, #f6f0e3 27% 28%, transparent 28% 42%, #f6f0e3 42% 47%, transparent 47% 57%, #f6f0e3 57% 58%, transparent 58% 67%, #f6f0e3 67% 72%, transparent 72% 82%, #f6f0e3 82% 83%, transparent 83%) bottom/100% 5rem no-repeat; opacity: 0.42; }

.site-footer__inner { position: relative; display: grid; grid-template-columns: 1.15fr 1fr 0.9fr; gap: var(--space-6); }
.site-footer__intro, .site-footer__nav, .site-footer__contact { padding: var(--space-5); border: 1px solid rgba(180,132,50,0.82); border-radius: var(--radius-card); background: rgba(255,253,247,0.96); color: var(--color-text); }
.site-footer h2 { margin: 0; color: var(--color-primary); font-size: 1.55rem; }
.site-footer__eyebrow { margin: 0 0 var(--space-2); color: #72521b; font-size: var(--text-xs); font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.site-footer__intro, .site-footer__contact { display: flex; flex-direction: column; gap: var(--space-3); }
.site-footer__intro p, .site-footer__contact p, .site-footer__contact address { margin: 0; }
.site-footer__nav { display: flex; flex-direction: column; gap: var(--space-3); }
.site-footer__nav ul { display: grid; margin: 0; padding: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.45rem 1rem; list-style: none; }
.site-footer__nav li, .site-footer__nav li + li { margin: 0; padding: 0; }
.site-footer a { color: var(--color-primary); }
.site-footer a:hover { color: var(--color-terracotta); }
.site-footer__contact address { line-height: 1.75; }
.site-footer__contact-note { color: var(--color-text-muted); font-size: var(--text-sm); line-height: 1.5; }
.site-footer__bottom { display: grid; grid-column: 1 / -1; gap: var(--space-3); padding: var(--space-5) 0 0; border-top: 1px solid rgba(216,200,168,0.55); color: var(--color-surface); font-size: var(--text-sm); }
.site-footer__bottom p { margin: 0; max-width: 72rem; }

.consent-banner { position: fixed; z-index: 200; right: var(--gutter); bottom: var(--gutter); left: var(--gutter); border: var(--border-gold); border-radius: var(--radius-card); background: var(--color-surface); box-shadow: var(--shadow-floating); color: var(--color-text); }
.consent-banner:not([hidden]) { display: block; animation: consent-enter var(--transition-base) both; }
.consent-banner__inner { display: flex; max-width: var(--container); margin-inline: auto; padding: var(--space-4); align-items: center; justify-content: space-between; gap: var(--space-4); }
.consent-banner__copy { display: grid; gap: var(--space-2); }
.consent-banner h2, .consent-banner p { margin: 0; }
.consent-banner h2 { font-size: 1.4rem; }
.consent-banner p { font-size: var(--text-sm); line-height: 1.5; }
.consent-banner__actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; gap: var(--space-2); }
.consent-banner__actions .button, .consent-banner__actions button { min-width: 6.5rem; }
.consent-banner.is-hiding { opacity: 0; transform: translateY(0.75rem); transition: opacity var(--transition-base), transform var(--transition-base); }
@keyframes consent-enter { from { opacity: 0; transform: translateY(0.75rem); } to { opacity: 1; transform: translateY(0); } }

@media (max-width: 56rem) { .site-footer__inner { grid-template-columns: repeat(2, minmax(0, 1fr)); } .site-footer__intro { grid-column: 1 / -1; } }
@media (max-width: 40rem) { .site-footer { margin-top: var(--space-7); padding-top: var(--space-7); } .site-footer__inner { grid-template-columns: 1fr; gap: var(--space-4); } .site-footer__intro { grid-column: auto; } .site-footer__bottom { grid-column: auto; } .site-footer__nav ul { grid-template-columns: 1fr; } .consent-banner { right: var(--space-3); bottom: var(--space-3); left: var(--space-3); } .consent-banner__inner { display: grid; } .consent-banner__actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); } .consent-banner__actions a { grid-column: 1 / -1; order: 3; } .consent-banner__actions .button, .consent-banner__actions button { width: 100%; min-width: 0; } }
@media (prefers-reduced-motion: reduce) { .consent-banner:not([hidden]) { animation: none; } }