html { scroll-behavior: smooth; }
body { margin: 0; }
.zz-root { --zz-font: 'Avenir Next', 'Segoe UI', sans-serif; }
.zz-hero-bg { background: linear-gradient(100deg, transparent 0%, transparent 38%, rgba(0,38,65,.38) 58%, rgba(0,38,65,.84) 100%), url('assets/hero.jpg') left center / cover no-repeat; }
.zz-form-error[hidden] { display: none; }
.zz-consent { display: flex; gap: .6rem; align-items: flex-start; margin: .7rem 0; font-size: .78rem; line-height: 1.4; }
.zz-consent input { flex: 0 0 auto; margin-top: .15rem; }
.zz-consent a { color: inherit; }
.zz-faq summary { display: flex; cursor: pointer; padding: 1.1rem 1.2rem; font-weight: 700; list-style: none; }
.zz-faq summary::-webkit-details-marker { display: none; }
.zz-faq summary::after { content: '+'; margin-left: auto; }
.zz-faq[open] summary::after { content: '−'; }
.zz-faq p { padding: 0 1.2rem 1.2rem; margin: 0; }
.zz-footer-links a { display: block; }
.zz-disclaimer { max-width: 70ch; margin: 1.4rem 0 0; font-size: .85rem; }
a:focus-visible, button:focus-visible, input:focus-visible, summary:focus-visible { outline: 3px solid #0caaff; outline-offset: 3px; }
@media (max-width: 800px) { .zz-hero-bg { background: linear-gradient(180deg, rgba(0,38,65,.72), rgba(0,38,65,.82)), url('assets/hero.jpg') center center / cover no-repeat; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; } }
