.legal-hero { padding: 160px 0 55px; background: linear-gradient(130deg, #f2fff3, #f3fafb); }
.legal-hero h1 { max-width: 950px; overflow-wrap: anywhere; }
.legal-menu { padding: 24px; background: #f5faf6; border: 1px solid #dce9df; border-radius: 16px; }
.legal-menu a { display: block; padding: 11px 0; color: #283b5c; border-bottom: 1px solid #dce9df; }
.legal-menu a[aria-current] { font-weight: 700; color: #166d2b; }
.legal-content { line-height: 1.85; color: #333; overflow-wrap: anywhere; }
.legal-content section { scroll-margin-top: 110px; }
.legal-index { padding: 24px; border: 1px solid #dce9df; border-radius: 16px; }
.legal-content a { color: #166d2b; text-decoration: underline; }
.legal-contact { background: #f2fff3; }
.cookie-preferences { border: 0; background: none; padding: 0; text-align: left; color: inherit; font: inherit; margin-top: 8px; text-decoration: underline; }
.cookie-panel { position: fixed; inset: auto 16px 16px; z-index: 100000; background: white; border: 1px solid #dce9df; border-radius: 16px; box-shadow: 0 8px 35px #0003; padding: 24px; max-width: 850px; margin: auto; color: #283b5c; }
.cookie-panel[hidden] { display: none; }
.cookie-panel p { margin-bottom: 14px; }
.cookie-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.cookie-actions button { background: #283b5c; color: white; border: 2px solid #283b5c; border-radius: 24px; padding: 10px 20px; font: inherit; }
.cookie-panel a { color: #166d2b; text-decoration: underline; }
.legal-skip { position: absolute; top: -100px; z-index: 100001; background: white; padding: 12px; }
.legal-skip:focus { top: 0; }
:is(.legal-menu a, .cookie-preferences, .cookie-actions button):focus-visible { outline: 3px solid #166d2b; outline-offset: 4px; }
@media (max-width: 767px) { .legal-hero { padding: 120px 0 35px; } .cookie-panel { padding: 18px; max-height: 85vh; overflow-y: auto; } .cookie-actions button { flex: 1 1 200px; } }
@media print { header nav, footer, .copyright, aside, .legal-index, .cookie-panel { display: none !important; } .legal-hero { padding: 20px 0; } .legal-content { width: 100%; } }
