.consent-banner[hidden],.consent-options[hidden],.consent-banner [hidden],[data-map-placeholder][hidden],[data-consent][hidden]{display:none!important}
.consent-banner{--consent-purple:var(--accent-ink);--consent-purple-light:var(--accent);position:fixed;inset:auto 24px 24px auto;width:340px;max-width:calc(100vw - 48px);z-index:100;background:#fff;color:#292b2d;border:1px solid var(--border);border-radius:6px;box-shadow:0 8px 35px #292b2d1c;max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--accent) var(--ice)}
.consent-inner{padding:24px}.consent-heading{margin-bottom:18px;text-align:center}.consent-copy h2{font-family:Arial,sans-serif;font-size:1.15rem;line-height:1.4;letter-spacing:-.02em;font-weight:700;margin:0}.consent-copy p{color:var(--muted);font-size:.875rem;line-height:1.65;margin:0 0 8px}.consent-copy>.consent-text-link{font-size:.8125rem;min-height:36px;padding:4px 0}
.consent-options{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;margin:12px 0 20px}.consent-options label{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:center;gap:12px;padding:0;border:0;background:none}.consent-options label>span:not(.consent-switch){grid-column:1;grid-row:1;min-width:0}.consent-options strong{display:block;font-size:.875rem;font-weight:600;line-height:1.5}.consent-status{display:block;font-size:.75rem;line-height:1.4;color:var(--muted);font-style:normal;margin-top:2px}.consent-options small{display:none;font-size:.875rem;line-height:1.7;color:var(--muted);margin-top:12px}.consent-options small a{color:var(--consent-purple);text-decoration:underline;text-underline-offset:3px}.consent-detailed .consent-options{gap:20px}.consent-detailed .consent-options label{align-items:start}.consent-detailed .consent-options small{display:block}
.consent-switch{position:relative;grid-column:2;grid-row:1;display:flex;align-items:center;width:44px;height:44px;align-self:start}.consent-switch input{position:absolute;inset:0;opacity:0;width:44px;height:44px;margin:0;cursor:pointer;z-index:1}.consent-switch-track{display:block;width:44px;height:24px;background:var(--ink);border-radius:16px;position:relative;transition:background .2s}.consent-switch-track:before{content:'×';position:absolute;right:7px;top:2px;color:#fff;font-size:.8125rem;line-height:20px}.consent-switch-track:after{content:'';display:block;width:18px;height:18px;margin:3px;background:white;border-radius:50%;box-shadow:0 1px 3px #0002;transition:transform .2s}.consent-switch input:checked+.consent-switch-track{background:var(--consent-purple-light)}.consent-switch input:checked+.consent-switch-track:after{transform:translateX(20px)}.consent-switch input:checked+.consent-switch-track:before{content:'✓';right:auto;left:7px}.consent-switch input:disabled{cursor:default}.consent-switch input:focus-visible+.consent-switch-track{outline:3px solid var(--consent-purple);outline-offset:4px}
.consent-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.consent-button{min-height:44px;border:1px solid var(--border);border-radius:6px;background:var(--ice);color:var(--ink);font-size:.8125rem;line-height:1.4;font-weight:600;padding:10px 8px;transition:background .2s}.consent-button:hover{background:#e8e0bf}.consent-button[data-consent-action="reject"]{grid-column:1;grid-row:1}.consent-button[data-consent-action="accept"]{grid-column:2;grid-row:1}.consent-button[data-consent-action="save"]{grid-column:1/-1;grid-row:2;border:0;background:var(--accent);color:var(--ink);border-radius:5px 24px 24px 5px;padding:12px 20px;min-height:44px;font-weight:500;margin:4px 18px 0}.consent-button[data-consent-action="save"]:after{content:'✓';margin-left:10px}.consent-button[data-consent-action="save"]:hover{background:var(--accent-hover)}.consent-button.consent-settings{grid-column:1/-1;grid-row:3;background:transparent;border:0;color:var(--consent-purple);font-size:.8125rem;font-weight:500;padding:6px;min-height:44px}.consent-text-link{color:var(--consent-purple);border:0;background:none;text-decoration:underline;text-underline-offset:3px;font-size:.875rem;min-height:44px;padding:8px 0}.consent-actions .consent-text-link{grid-column:1/-1}.consent-banner :focus-visible{outline:3px solid var(--consent-purple);outline-offset:3px}
.map-consent-block{min-height:320px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:30px;background:var(--ice);gap:16px}.map-consent-block p{font-size:1rem;color:var(--muted);margin:0}.map-consent-block>a{font-size:.875rem;text-decoration:underline;min-height:44px;display:flex;align-items:center}.privacy-dialog{max-height:90vh;max-height:90dvh;overflow-y:auto;z-index:110}.privacy-dialog h3{font-size:1.2rem;line-height:1.4;margin-top:28px;letter-spacing:-.02em}.privacy-dialog h2{padding-right:25px;font-size:1.8rem}.privacy-dialog p{font-size:1rem;overflow-wrap:anywhere}.privacy-dialog .close{min-width:44px;min-height:44px}.footer{flex-wrap:wrap;padding-top:24px;padding-bottom:24px}.footer [data-cookie-settings],.footer [data-privacy-open]{min-height:44px}.footer .legal-trigger:not(:first-of-type){white-space:normal}
@media(max-width:760px){.consent-banner{inset:auto max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));width:auto;max-width:360px;margin-inline:auto;max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px)}.consent-inner{padding:22px}.map-consent-block{min-height:280px;padding:24px}.privacy-dialog{padding:32px 22px}.footer>span{flex-basis:100%;margin-right:0}}
@media(max-width:360px){.consent-inner{padding:18px}.consent-button{font-size:.75rem}}
@media(prefers-reduced-motion:reduce){.consent-button,.consent-switch-track,.consent-switch-track:after{transition:none}}
.privacy-dialog{max-width:820px;scroll-behavior:auto;overscroll-behavior:contain}.privacy-dialog .privacy-intro{color:var(--muted);margin-bottom:24px}.privacy-overview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 30px}.privacy-overview button{min-height:48px;padding:12px 16px;text-align:left;font-size:.875rem;font-weight:600;color:var(--ink);background:var(--ice);border:1px solid var(--border);border-radius:8px}.privacy-overview button:hover{background:#e8e0bf}.privacy-overview button:focus-visible{outline:3px solid var(--accent-ink);outline-offset:3px}.privacy-section{margin-top:30px;padding-top:28px;border-top:1px solid var(--border);scroll-margin-top:20px}.privacy-tag{display:inline-block;font-size:.75rem;font-weight:600;line-height:1.4;color:var(--accent-ink);background:var(--ice);padding:6px 10px;border-radius:5px}.privacy-dialog .privacy-section h3{font-size:clamp(1.3rem,4vw,1.65rem);margin:12px 0 20px}.privacy-dialog h4{font-size:1rem;font-weight:700;line-height:1.5;margin:26px 0 8px;letter-spacing:0}.privacy-dialog .privacy-section p{line-height:1.75;margin:10px 0 16px}.privacy-callout{padding:20px;background:var(--ice);border-left:4px solid var(--accent);border-radius:0 8px 8px 0}.privacy-callout>strong{display:block;font-size:1rem}.privacy-dialog .privacy-callout p{margin:8px 0 0}.privacy-section-voluntary .privacy-tag{background:var(--accent);color:var(--ink)}
@media(max-width:480px){.privacy-overview{grid-template-columns:1fr;gap:8px}.privacy-section{margin-top:24px;padding-top:24px}.privacy-callout{padding:16px}.privacy-dialog h2{font-size:1.55rem}.privacy-tag{max-width:100%;overflow-wrap:anywhere}}

a.legal-trigger{text-decoration:none}a.legal-trigger:hover{text-decoration:underline}
.legal-page{max-width:820px;margin:0 auto;padding:clamp(28px,5vw,60px) 0 clamp(56px,8vw,100px)}.legal-page h1{font-size:clamp(2.2rem,5vw,3.2rem);margin:14px 0 24px}.legal-page .privacy-intro{color:var(--muted);margin-bottom:24px}.legal-page .privacy-section h3{font-size:clamp(1.3rem,4vw,1.65rem);margin:12px 0 20px}.legal-page .privacy-section p,.legal-page>p{line-height:1.75;margin:10px 0 16px}.legal-page a{text-decoration:underline;text-underline-offset:3px}.legal-page .privacy-callout p{margin:8px 0 0}
.privacy-overview a{display:flex;align-items:center;min-height:48px;padding:12px 16px;font-size:.875rem;font-weight:600;color:var(--ink);background:var(--ice);border:1px solid var(--border);border-radius:8px;text-decoration:none}.privacy-overview a:hover{background:#e8e0bf}.privacy-overview a:focus-visible{outline:3px solid var(--accent-ink);outline-offset:3px}
.consent-text-link{display:inline-block}
