.footer-legal { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0 .625rem; color: var(--lavender); font-size: .875rem; line-height: 1.5; }
.footer-legal a, .cookie-preferences { display: inline-flex; align-items: center; min-height: 44px; color: inherit; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--line-dark); }
.cookie-preferences { padding: .5rem .125rem; border: 0; background: transparent; font: inherit; cursor: pointer; }
.footer-legal a:hover, .cookie-preferences:hover { color: var(--cream-text); text-decoration-color: var(--brass); }
.footer-legal a:focus-visible, .cookie-preferences:focus-visible { outline: var(--ring-dark); outline-offset: 3px; }
.copyright { margin-top: .5rem; }
.consent-rail { position: fixed; z-index: 70; inset: auto 1rem 1rem; max-width: 72rem; margin-inline: auto; min-height: 64px; padding: .625rem .75rem .625rem 1rem; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 1rem; background: var(--plum-deep); color: var(--cream-text); border: 1px solid var(--line-dark); font: 400 1rem/1.4 var(--font-sans); }
.consent-rail[hidden] { display: none; }
.consent-rail p { margin: 0; text-wrap: pretty; }
.consent-rail a { color: inherit; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--line-dark); }
.consent-rail-actions { display: grid; grid-template-columns: repeat(2, minmax(0, auto)); gap: .5rem; }
.consent-rail button { min-height: 44px; padding: .5rem 1rem; border: 1px solid var(--brass); border-radius: var(--r-ctl); background: transparent; color: var(--cream-text); font: 600 1rem/1.2 var(--font-sans); white-space: nowrap; cursor: pointer; }
.consent-rail button:last-child { border-color: var(--os-purple); background: var(--os-purple); }
.consent-rail a:hover { text-decoration-color: var(--brass); }
.consent-rail button:hover { border-color: var(--cream-text); }
.consent-rail a:focus-visible, .consent-rail button:focus-visible { outline: var(--ring-dark); outline-offset: 3px; }
@media (max-width: 700px) {
  .footer-legal { gap: 0 .5rem; }
  .consent-rail { inset: auto .75rem calc(56px + env(safe-area-inset-bottom, 0px) + .75rem); min-height: 0; padding: .75rem; grid-template-columns: 1fr; gap: .625rem; }
  .consent-rail-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .consent-rail button { padding-inline: .5rem; }
}
