.site-footer { position: relative; overflow: hidden; border-top: 1px solid var(--color-border); background: var(--color-plum-night); color: var(--color-moon-ivory); padding: 5rem 0 1.5rem; }
.site-footer::before { position: absolute; inset: 0; pointer-events: none; content: ""; background: radial-gradient(circle at 16% 28%, rgb(22 59 50 / 72%), transparent 31%), radial-gradient(circle at 86% 90%, rgb(13 41 36 / 82%), transparent 35%); }
.site-footer__ornament { position: absolute; right: 0; bottom: 0; left: 0; height: 8rem; pointer-events: none; opacity: .55; }
.site-footer__ornament::before { position: absolute; right: 5%; bottom: 0; left: 5%; height: 4rem; border: 1px solid rgb(201 164 92 / 38%); border-bottom: 0; border-radius: 4rem 4rem 0 0; content: ""; }
.site-footer__ornament span { position: absolute; bottom: 0; width: 1px; background: rgb(201 164 92 / 46%); }
.site-footer__ornament span:nth-child(1) { left: 20%; height: 6rem; } .site-footer__ornament span:nth-child(2) { left: 50%; height: 8rem; } .site-footer__ornament span:nth-child(3) { left: 80%; height: 5.2rem; }
.site-footer__inner { position: relative; }
.site-footer__top { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(11rem, .9fr) minmax(12rem, .9fr); gap: 2.5rem; padding-bottom: 3rem; }
.site-footer h2 { margin: 0 0 1rem; color: var(--color-antique-gold); font-family: var(--font-body); font-size: .75rem; font-weight: 700; letter-spacing: .1em; line-height: 1.3; text-transform: uppercase; }
.site-footer__brand { display: grid; align-content: start; gap: 1rem; }
.site-footer__brand-link { display: inline-flex; align-items: center; gap: .8rem; color: var(--color-moon-ivory); font-family: var(--font-heading); font-size: 1.85rem; font-weight: 650; line-height: .85; text-decoration: none; }
.site-footer__brand-link img { width: 3.7rem; height: 3.7rem; object-fit: contain; }
.site-footer__brand-link small { color: var(--color-antique-gold); font-family: var(--font-body); font-size: .58rem; font-weight: 700; letter-spacing: .15em; line-height: 1.2; text-transform: uppercase; }
.site-footer__brand p { max-width: 30rem; margin: 0; color: var(--color-text-muted); font-size: .9rem; }
.site-footer__nav ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem 1rem; margin: 0; padding: 0; list-style: none; }
.site-footer__nav li, .site-footer__nav li + li { margin: 0; padding: 0; }
.site-footer__nav a, .site-footer__contact a { color: var(--color-moon-ivory); font-size: .84rem; }
.site-footer__contact address { display: grid; gap: .65rem; margin: 0; color: var(--color-text-muted); font-size: .84rem; font-style: normal; line-height: 1.55; }
.site-footer__contact address span { display: block; }
.site-footer__lower { display: grid; grid-template-columns: minmax(0, 1.6fr) auto; gap: 1rem 2rem; border-top: 1px solid var(--color-border); padding-top: 1.5rem; }
.site-footer__disclaimer { max-width: 46rem; margin: 0; color: var(--color-text-muted); font-size: .78rem; line-height: 1.55; }
.site-footer__legal { display: flex; flex-wrap: wrap; align-items: start; justify-content: flex-end; gap: .5rem 1rem; }
.site-footer__legal a, .site-footer__copyright { color: var(--color-text-muted); font-size: .75rem; }
.site-footer__copyright { grid-column: 1 / -1; margin: 0; }
.consent-banner { position: fixed; z-index: 200; right: max(1rem, env(safe-area-inset-right)); bottom: max(1rem, env(safe-area-inset-bottom)); left: max(1rem, env(safe-area-inset-left)); width: min(100% - 2rem, 72rem); margin-inline: auto; border: 1px solid var(--color-border-strong); border-radius: var(--radius-lg); background: var(--color-plum-velvet); box-shadow: var(--shadow-raised); color: var(--color-moon-ivory); padding: 1rem; }
.consent-banner:not([hidden]) { display: block; }
.consent-banner.is-hiding { opacity: 0; transform: translateY(1rem); transition: opacity var(--transition-base), transform var(--transition-base); }
.consent-banner__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem 1.5rem; }
.consent-banner__copy { min-width: 0; }
.consent-banner__copy h2 { margin: 0 0 .3rem; font-size: 1.35rem; }
.consent-banner__copy p { max-width: 42rem; margin: 0; color: var(--color-text-muted); font-size: .83rem; line-height: 1.5; }
.consent-banner__actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; justify-content: flex-end; gap: .5rem; }
.consent-banner__button, .consent-banner__settings { display: inline-flex; min-height: 2.75rem; width: auto; align-items: center; justify-content: center; border: 1px solid var(--color-antique-gold); border-radius: var(--radius-md); padding: .65rem .75rem; font-size: .65rem; font-weight: 700; letter-spacing: .06em; line-height: 1.2; text-align: center; text-decoration: none; text-transform: uppercase; }
.consent-banner__button--reject, .consent-banner__settings { background: transparent; color: var(--color-moon-ivory); }
.consent-banner__settings:hover, .consent-banner__button--reject:hover { background: rgb(201 164 92 / 12%); color: var(--color-antique-gold); }
@media (max-width: 767px) { .site-footer { padding-top: 3.5rem; } .site-footer__top { grid-template-columns: 1fr; gap: 2rem; } .site-footer__nav ul { grid-template-columns: 1fr 1fr; } .site-footer__lower { grid-template-columns: 1fr; } .site-footer__legal { justify-content: flex-start; } .consent-banner { padding: 1rem; } .consent-banner__inner { display: grid; } .consent-banner__actions { display: grid; justify-content: stretch; } .consent-banner__button, .consent-banner__settings { width: 100%; } }
