* { box-sizing: border-box; }
:root { color: #1f2328; background: #f7f6f3; font-family: Inter, system-ui, -apple-system, "Segoe UI", sans-serif; }
body { margin: 0; min-height: 100vh; background: #f7f6f3; color: #1f2328; }
a { color: #274f57; }
a:focus-visible, button:focus-visible { outline: 2px solid #274f57; outline-offset: 3px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.sr-only:focus, .sr-only:focus-visible { position: fixed; z-index: 60; width: auto; height: auto; margin: 0; overflow: visible; clip: auto; white-space: normal; }
.skip-link { position: absolute; left: 1rem; top: -4rem; z-index: 60; padding: .65rem 1rem; border-radius: .5rem; background: #1f2328; color: white; }
.skip-link:focus { top: 1rem; }
.site-header, .site-footer { border-color: rgba(31,35,40,.1); }
.site-header { border-bottom: 1px solid rgba(31,35,40,.1); }
.site-footer { border-top: 1px solid rgba(31,35,40,.1); margin-top: 3rem; }
.shell { width: min(100% - 2.5rem, 72rem); margin: 0 auto; }
.header-inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 0; }
.brand { color: #1f2328; text-decoration: none; }
.brand strong, .brand small { display: block; text-transform: uppercase; letter-spacing: .16em; }
.brand strong { font-size: .875rem; }
.brand small { margin-top: .125rem; color: #6b7480; font-size: .625rem; font-weight: 600; }
.site-nav { display: flex; align-items: center; gap: 1.5rem; font-size: .875rem; }
.site-nav a { color: #4b5460; text-decoration: none; }
.site-nav a:hover, .site-footer a:hover { color: #1f2328; }
.support-link { padding: .4rem .85rem; border: 1px solid rgba(31,35,40,.15); border-radius: 999px; }
.mobile-menu-button { display: none; border: 0; background: transparent; color: #3a414a; font-size: 1.35rem; }
.mobile-nav { display: none; padding: .5rem 0 1rem; border-top: 1px solid rgba(31,35,40,.1); }
.mobile-nav a { display: block; padding: .65rem 0; color: #3a414a; text-decoration: none; }
.content { width: min(100% - 2.5rem, 46rem); margin: 0 auto; padding: 2.5rem 0 5rem; }
.content h1 { margin: 0; font-size: clamp(1.8rem, 5vw, 2.35rem); line-height: 1.15; }
.content h2 { margin: 2rem 0 0; font-size: 1.15rem; line-height: 1.35; }
.content h3 { margin: 1.4rem 0 0; font-size: 1rem; }
.content p, .content li { color: #3a414a; font-size: 1rem; line-height: 1.7; }
.content .intro { margin-top: 1rem; font-size: 1.15rem; }
.content ul, .content ol { padding-left: 1.4rem; }
.content details { margin-top: .75rem; border: 1px solid rgba(31,35,40,.1); border-radius: .75rem; background: white; padding: 1rem 1.25rem; }
.content summary { cursor: pointer; color: #1f2328; font-weight: 600; }
.content details p { margin-bottom: 0; }
.notice { margin-top: 1.5rem; border: 1px solid rgba(31,35,40,.1); border-radius: .75rem; background: rgba(31,35,40,.02); padding: 1rem 1.25rem; }
.notice p { margin: 0; }
.accessibility-settings { display: grid; gap: 1rem; }
.setting-control { display: grid; gap: .35rem; max-width: 28rem; }
.setting-control label { color: #2a2f36; font-size: .9rem; font-weight: 600; }
.setting-control select { width: 100%; min-height: 2.75rem; border: 1px solid #4b5460; border-radius: .45rem; background: #fff; color: #1f2328; padding: .55rem .7rem; font: inherit; }
.accessibility-settings .support-link { justify-self: start; margin-top: .1rem; cursor: pointer; background: #fff; color: #2a2f36; font: inherit; }
.link-list { display: grid; gap: .5rem; margin-top: .75rem; }
.site-footer .footer-inner { padding: 2rem 0; }
.footer-grid { display: flex; align-items: flex-start; justify-content: space-between; gap: 1.5rem; }
.footer-nav { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; font-size: .875rem; }
.footer-nav a { color: #4b5460; text-decoration: none; }
.footer-meta { margin: 1.5rem 0 0; color: #6b7480; font-size: .75rem; }
.consent-banner { position: fixed; right: 1rem; bottom: 1rem; left: 1rem; z-index: 50; display: flex; justify-content: center; }
.consent-card { width: min(100%, 40rem); border: 1px solid rgba(31,35,40,.1); border-radius: 1rem; background: white; box-shadow: 0 12px 40px rgba(31,35,40,.18); padding: 1.25rem; }
.consent-card h2 { margin: 0; font-size: .95rem; }
.consent-card p { margin: .5rem 0 0; color: #3a414a; font-size: .875rem; line-height: 1.55; }
.consent-actions { display: flex; gap: .75rem; margin-top: 1rem; }
.consent-actions button { flex: 1; cursor: pointer; border-radius: 999px; padding: .65rem 1rem; font-weight: 600; }
.necessary-button { border: 1px solid rgba(31,35,40,.15); background: white; color: #2a2f36; }
.analytics-button { border: 1px solid #274f57; background: #274f57; color: white; }
.consent-more { margin-top: .75rem; padding: 0; border: 0; background: transparent; color: #6b7480; cursor: pointer; text-decoration: underline; }
.accessibility-link { color: #4b5460 !important; text-decoration: none; }
.accessibility-link:hover { color: #1f2328 !important; }
body[data-font-size="large"] { font-size: 118%; }
body[data-contrast="high"] { background: #fff; color: #000; }
body[data-contrast="high"] a, body[data-contrast="high"] .site-nav a, body[data-contrast="high"] .footer-nav a { color: #003b45; text-decoration: underline; }
body[data-contrast="high"] .site-header, body[data-contrast="high"] .site-footer, body[data-contrast="high"] .content details, body[data-contrast="high"] .notice { border-color: #000; }
body[data-contrast="high"] .content p, body[data-contrast="high"] .content li, body[data-contrast="high"] .footer-meta { color: #111; }
body[data-contrast="high"] .consent-card { border-color: #000; }
body[data-motion="reduced"] *, body[data-motion="reduced"] *::before, body[data-motion="reduced"] *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; } }
@media (max-width: 640px) { .shell { width: min(100% - 2rem, 72rem); } .site-nav { display: none; } .mobile-menu-button { display: block; } .mobile-nav.is-open { display: block; } .footer-grid { flex-direction: column; } .consent-actions { flex-direction: column; } }
