.site-footer { border-top: 1px solid var(--color-line); background: var(--color-surface); }
.site-footer__inner { display: grid; grid-template-columns: minmax(14rem, 0.9fr) minmax(0, 2fr); gap: var(--space-8); padding-block: var(--space-9) var(--space-6); }
.site-footer__intro { min-width: 0; }
.site-footer__brand { display: inline-block; margin-bottom: var(--space-4); color: var(--color-ink); font-family: var(--font-heading); font-size: 1.75rem; font-weight: 600; line-height: 1; text-decoration: none; }
.site-footer__intro p { margin-bottom: var(--space-4); color: var(--color-muted); font-size: var(--text-small); line-height: var(--leading-small); }
.site-footer__intro address { margin-bottom: var(--space-4); color: var(--color-muted); font-size: var(--text-small); line-height: var(--leading-small); }
.site-footer__intro a:not(.site-footer__brand) { font-size: var(--text-small); line-height: 1.8; }
.site-footer__nav { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--space-5); }
.site-footer__group h2 { margin: 0 0 var(--space-3); font-family: var(--font-body); font-size: var(--text-label); font-weight: 650; letter-spacing: var(--tracking-label); line-height: var(--leading-label); text-transform: uppercase; }
.site-footer__group ul,
.site-footer__legal ul { display: flex; flex-direction: column; gap: var(--space-2); margin: 0; padding: 0; list-style: none; }
.site-footer__group li,
.site-footer__legal li,
.site-footer__group li + li,
.site-footer__legal li + li { margin: 0; }
.site-footer__group a { color: var(--color-muted); font-size: var(--text-small); line-height: var(--leading-small); }
.site-footer__legal { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); padding-top: var(--space-5); border-top: 1px solid var(--color-line); }
.site-footer__legal p { margin: 0; color: var(--color-muted); font-size: var(--text-small); }
.site-footer__legal ul { flex-direction: row; flex-wrap: wrap; gap: var(--space-4); }
.site-footer__legal a { font-size: var(--text-small); }

.site-consent { position: fixed; z-index: 900; right: var(--space-4); bottom: var(--space-4); left: var(--space-4); }
.site-consent[hidden] { display: none !important; }
.site-consent__inner { display: flex; width: min(100%, 54rem); align-items: center; justify-content: space-between; gap: var(--space-5); margin-inline: auto; padding: var(--space-4) var(--space-5); border: 1px solid var(--color-line); border-radius: var(--radius-lg); background: var(--color-surface); box-shadow: var(--shadow-raised); }
.site-consent__copy { display: flex; flex-direction: column; gap: var(--space-1); margin: 0; color: var(--color-muted); font-size: var(--text-small); line-height: var(--leading-small); }
.site-consent__copy strong { color: var(--color-ink); }
.site-consent__actions { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.site-consent__button { min-height: 2.75rem; padding: 0.625rem 0.875rem; border: 1px solid var(--color-ink); border-radius: var(--radius-sm); background: var(--color-ink); color: var(--color-canvas); font-size: var(--text-small); font-weight: 650; letter-spacing: 0.04em; }
.site-consent__button:hover { border-color: var(--color-amethyst-deep); background: var(--color-amethyst-deep); }
.site-consent__button--secondary { background: transparent; color: var(--color-ink); }

.site-age-modal { position: fixed; z-index: 1100; inset: 0; display: grid; place-items: center; padding: var(--space-4); overflow-y: auto; background: rgba(41, 40, 39, 0.52); }
.site-age-modal[hidden] { display: none !important; }
.site-age-modal__panel { width: min(100%, 34rem); padding: clamp(var(--space-5), 6vw, var(--space-7)); border: 1px solid var(--color-line); border-radius: var(--radius-md); background: var(--color-canvas); box-shadow: var(--shadow-raised); }
.site-age-modal__eyebrow { margin: 0 0 var(--space-3); color: var(--color-amethyst-deep); font-size: var(--text-label); font-weight: 650; letter-spacing: var(--tracking-label); line-height: var(--leading-label); text-transform: uppercase; }
.site-age-modal__panel h2 { margin-bottom: var(--space-4); }
.site-age-modal__panel p:not(.site-age-modal__eyebrow) { margin-bottom: var(--space-5); color: var(--color-muted); }
.site-age-modal__actions { display: flex; flex-wrap: wrap; gap: var(--space-3); }
.site-age-modal__confirm,
.site-age-modal__decline { min-height: 2.75rem; padding: 0.75rem 1rem; border: 1px solid var(--color-ink); border-radius: var(--radius-sm); font-size: var(--text-small); font-weight: 650; letter-spacing: 0.05em; }
.site-age-modal__confirm { background: var(--color-ink); color: var(--color-canvas); }
.site-age-modal__confirm:hover { border-color: var(--color-sage-deep); background: var(--color-sage-deep); }
.site-age-modal__decline { background: transparent; color: var(--color-ink); }
.site-age-modal__decline:hover { border-color: var(--color-amethyst-deep); background: var(--color-amethyst-deep); color: var(--color-canvas); }

@media (max-width: 899px) { .site-footer__inner { grid-template-columns: 1fr; } .site-footer__nav { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 599px) { .site-footer__inner { gap: var(--space-7); padding-block: var(--space-8) var(--space-5); } .site-footer__nav { grid-template-columns: repeat(2, minmax(0, 1fr)); } .site-footer__legal { align-items: flex-start; flex-direction: column; } .site-consent { right: var(--space-3); bottom: var(--space-3); left: var(--space-3); } .site-consent__inner { align-items: stretch; flex-direction: column; padding: var(--space-4); } .site-consent__actions { width: 100%; } .site-consent__button { flex: 1 1 10rem; } .site-age-modal__actions > * { flex: 1 1 100%; } }