.site-footer { position: relative; background: var(--color-graphite); color: var(--color-paper); overflow: hidden; }
.site-footer__line { height: 2px; background: var(--color-safety-orange); }
.site-footer__inner { position: relative; display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(10rem, 0.8fr) minmax(11rem, 0.8fr); gap: var(--space-7); padding-block: var(--space-7); }
.site-footer__identity, .site-footer__navigation, .site-footer__legal { position: relative; z-index: 1; min-width: 0; }
.site-footer__mark-row { display: flex; align-items: center; gap: var(--space-3); margin-bottom: var(--space-4); }
.site-footer__logo { width: 3rem; height: 3rem; object-fit: contain; }
.site-footer h2 { margin: 0; color: var(--color-white); font-size: 1.5rem; }
.site-footer p { color: var(--color-paper-warm); }
.site-footer__notice { border-left: 2px solid var(--color-safety-orange); padding-left: var(--space-3); color: var(--color-brushed-silver) !important; font-size: var(--text-meta); }
.site-footer .technical-label { margin-bottom: var(--space-2); }
.site-footer ul { display: grid; gap: var(--space-2); margin: 0; padding: 0; list-style: none; }
.site-footer li, .site-footer .site-footer a { color: var(--color-paper); font-size: var(--text-meta); }
.site-footer a:hover { color: var(--color-safety-orange); }
.site-footer__play-link { display: inline-block; margin-top: var(--space-5); color: var(--color-safety-orange) !important; font-weight: 600; }
.site-footer__illustration { position: absolute; right: 1rem; bottom: -2.5rem; display: flex; gap: 1rem; align-items: end; opacity: 0.26; transform: rotate(-18deg); }
.site-footer__illustration span { display: block; width: 1.2rem; height: 9rem; border: 2px solid var(--color-brushed-silver); background: repeating-linear-gradient(0deg, transparent 0 0.55rem, var(--color-brushed-silver) 0.55rem 0.68rem); }
.site-footer__illustration span:nth-child(2) { height: 12rem; }
.site-footer__illustration span:nth-child(3) { height: 6.5rem; }
.site-footer__bottom { position: relative; z-index: 1; border-top: 1px solid var(--color-line-dark); padding-block: var(--space-4); }
.site-footer__bottom small { color: var(--color-brushed-silver); }

.consent-banner { position: fixed; z-index: 200; right: var(--space-4); bottom: var(--space-4); left: var(--space-4); max-width: 48rem; margin-inline: auto; border: 1px solid var(--color-line-dark); border-top: 2px solid var(--color-safety-orange); background: var(--color-graphite); box-shadow: var(--shadow-overlay); color: var(--color-paper); }
.consent-banner[hidden] { display: none; }
.consent-banner.is-hiding { opacity: 0; transform: translateY(0.75rem); transition: opacity var(--transition-standard), transform var(--transition-standard); }
.consent-banner__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--space-5); padding: var(--space-4); }
.consent-banner__copy { min-width: 0; }
.consent-banner__copy p { margin-bottom: 0; color: var(--color-paper-warm); font-size: var(--text-meta); }
.consent-banner__copy .technical-label { margin-bottom: var(--space-2); }
.consent-banner__copy a { color: var(--color-white); }
.consent-banner__actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; gap: var(--space-2); }
.consent-banner .button { min-height: 2.75rem; }
.consent-banner .button--secondary { border-color: var(--color-brushed-silver); color: var(--color-white); }

@media (max-width: 51.25rem) {
  .site-footer__inner { grid-template-columns: 1fr 1fr; gap: var(--space-6); }
  .site-footer__identity { grid-column: 1 / -1; max-width: 42rem; }
  .consent-banner__inner { align-items: stretch; flex-direction: column; }
  .consent-banner__actions { width: 100%; }
  .consent-banner__actions .button { flex: 1 1 10rem; }
}

@media (max-width: 30rem) {
  .site-footer__inner { grid-template-columns: 1fr; padding-block: var(--space-6); }
  .site-footer__identity { grid-column: auto; }
  .site-footer__illustration { right: -1.5rem; }
  .consent-banner { right: var(--space-2); bottom: var(--space-2); left: var(--space-2); }
  .consent-banner__actions .button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) { .consent-banner.is-hiding { transition: none; } }