.site-footer{margin-top:56px;background:linear-gradient(180deg,rgba(255,255,255,0.96),var(--color-surface-muted))}
.footer-inner{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,2fr);gap:32px;padding-block:40px}
.footer-brand-main{font-family:var(--font-serif);font-size:1.5rem;font-weight:600;margin-bottom:8px}
.footer-brand-text{font-size:0.9rem;color:var(--color-text-soft);max-width:30rem;margin-bottom:10px}
.footer-disclaimer{font-size:0.75rem;color:var(--color-text-soft);max-width:32rem}
.footer-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.footer-column{min-width:0}
.footer-heading{font-size:0.95rem;font-weight:600;margin-bottom:8px;color:var(--color-text)}
.footer-links li+li{margin-top:4px}
.footer-links a{font-size:0.9rem;color:var(--color-text-soft);border-radius:999px;padding:3px 0;display:inline-flex;align-items:center;transition:color var(--transition-base),background-color var(--transition-base),box-shadow var(--transition-base),padding-inline var(--transition-base)}
.footer-links a:hover{color:var(--color-text);background-color:rgba(255,255,255,0.9);padding-inline:8px;border-radius:999px;box-shadow:var(--shadow-soft)}
.footer-links a:focus-visible{outline:none;box-shadow:var(--shadow-outline);padding-inline:8px;border-radius:999px}
.footer-bottom{border-top:1px solid rgba(0,0,0,0.04);padding-block:14px;background:rgba(255,255,255,0.9)}
.footer-bottom-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;font-size:0.8rem;color:var(--color-text-soft)}
.footer-region{font-size:0.8rem;color:var(--color-text-soft)}
.footer-copy span{white-space:nowrap}
@media (max-width:991px){.footer-inner{grid-template-columns:1fr;gap:24px}
.footer-columns{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:599px){.footer-columns{grid-template-columns:1fr}
.footer-inner{padding-block:28px}
.footer-bottom-inner{flex-direction:column;align-items:flex-start}}
.cookie-banner{position:fixed;inset-inline:0;bottom:0;z-index:60;display:flex;justify-content:center;pointer-events:none}
.cookie-banner-inner{pointer-events:auto;margin:12px;max-width:720px;width:100%;border-radius:18px;background:linear-gradient(135deg,var(--color-surface),var(--color-surface-muted));box-shadow:var(--shadow-soft-lg);padding:14px 16px;display:flex;flex-wrap:wrap;align-items:center;gap:12px;border:1px solid rgba(255,255,255,0.6)}
.cookie-banner-text{flex:1 1 220px;min-width:0}
.cookie-banner-title{font-size:0.9rem;margin-bottom:4px}
.cookie-banner-description{font-size:0.8rem;margin-bottom:0;color:var(--color-text-soft)}
.cookie-banner-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.btn-cookie{font-size:0.78rem;padding:0.5rem 1.1rem}
.btn-cookie-secondary{--btn-bg:var(--color-surface);--btn-bg-hover:var(--color-surface-muted);--btn-text:var(--color-text);border-color:rgba(0,0,0,0.05);box-shadow:none}
.cookie-banner.is-hidden{opacity:0;transform:translateY(8px);transition:opacity var(--transition-base),transform var(--transition-base)}
.cookie-banner[hidden]{display:none}
.age-modal{position:fixed;inset:0;z-index:70;display:flex;align-items:center;justify-content:center}
.age-modal[hidden]{display:none}
.age-modal-backdrop{position:absolute;inset:0;background:rgba(17,12,8,0.45);backdrop-filter:blur(6px)}
.age-modal-content{position:relative;max-width:420px;width:100%;margin:20px;border-radius:24px;background:radial-gradient(circle at top left,rgba(186,213,255,0.45),transparent 55%),radial-gradient(circle at bottom right,rgba(202,237,227,0.5),transparent 55%),var(--color-surface);box-shadow:var(--shadow-soft-lg);padding:22px 22px 18px;display:flex;flex-direction:column;gap:14px;border:1px solid rgba(255,255,255,0.8)}
.age-modal-title{font-size:1.3rem;margin-bottom:6px}
.age-modal-description{font-size:0.9rem;color:var(--color-text-soft);margin-bottom:0}
.age-modal-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;margin-top:4px}
.btn-age-yes{--btn-bg:var(--accent-mint);--btn-bg-hover:var(--color-primary-strong)}
.btn-age-no{font-size:0.8rem}
@media (max-width:480px){.cookie-banner-inner{margin-inline:10px;padding-inline:12px}
.age-modal-content{margin-inline:16px;padding-inline:18px}}
@media (prefers-reduced-motion:reduce){.cookie-banner.is-hidden,.cookie-banner-inner,.age-modal-content{transition:none}}