:root{--legal-ink:#17251c;--legal-green:#173d2b;--legal-cream:#f5f0e5;--legal-line:#d8d1c0;--legal-orange:#e56a39}
.legal-footer{margin-top:48px;padding:28px clamp(20px,5vw,80px);background:var(--legal-green);color:#fff;font:14px/1.5 system-ui,sans-serif}.legal-footer nav{display:flex;flex-wrap:wrap;justify-content:center;gap:12px 24px}.legal-footer a,.legal-footer button{color:inherit;background:none;border:0;padding:0;text-decoration:underline;text-underline-offset:3px;font:inherit;cursor:pointer}.legal-footer p{margin:18px 0 0;text-align:center;color:#d9e2d8}
.legal-page{width:min(820px,calc(100% - 40px));margin:48px auto 80px;color:var(--legal-ink);font:16px/1.7 system-ui,sans-serif}.legal-page h1,.legal-page h2{font-family:Georgia,serif}.legal-page h1{font-size:clamp(38px,7vw,64px);line-height:1}.legal-page h2{margin-top:42px;font-size:27px}.legal-page a{color:var(--legal-green)}.legal-card{padding:24px;border:1px solid var(--legal-line);border-radius:18px;background:#fff}.legal-form{display:grid;gap:18px}.legal-form label{display:grid;gap:6px;font-weight:650}.legal-form input,.legal-form select,.legal-form textarea{width:100%;padding:12px;border:1px solid #aaa;border-radius:8px;font:inherit}.legal-form button{padding:14px 20px;border:0;border-radius:999px;background:var(--legal-green);color:#fff;font-weight:700;cursor:pointer}.legal-form button:disabled{opacity:.55}.legal-status{padding:14px;border-radius:10px;background:#e8eee5}.legal-notice{padding:12px 16px;background:#fff4d8;border:1px solid #dfbd68;border-radius:10px}
.legal-dialog{width:min(920px,calc(100% - 28px));max-height:min(880px,calc(100dvh - 28px));border:1px solid #ffffff66;border-radius:28px;padding:0;background:var(--legal-cream);color:var(--legal-ink);box-shadow:0 30px 100px #09180f70;font:15px/1.5 system-ui,sans-serif}.legal-dialog::backdrop{background:#102319cc;backdrop-filter:blur(7px)}.legal-dialog-inner{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;max-height:inherit}.consent-intro{padding:28px 30px 20px;background:linear-gradient(135deg,#fffdf8,#edf1e5)}.consent-intro>span{display:inline-block;margin-bottom:8px;color:#9c421f;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.legal-dialog h2{margin:0;font:700 clamp(28px,4vw,42px)/1.05 Georgia,serif;letter-spacing:-.025em}.consent-intro p{max-width:70ch;margin:12px 0 0;color:#46584c}.consent-categories{overflow:auto;padding:16px 22px;overscroll-behavior:contain}
.consent-category{margin:10px 0;border:1px solid var(--legal-line);border-radius:18px;background:#fff}.consent-category.is-requested{outline:3px solid #e56a3950;border-color:var(--legal-orange)}.consent-category-head{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;padding:18px 20px}.consent-category h3{margin:0;font:700 21px/1.15 Georgia,serif}.consent-category-head p{max-width:65ch;margin:6px 0 0;color:#56655b}.consent-category details{border-top:1px solid #e7e2d7}.consent-category summary{padding:12px 20px;color:var(--legal-green);font-weight:750;cursor:pointer}.consent-services{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0 12px 12px}.consent-services article{padding:14px;border-radius:12px;background:#f5f4ee}.consent-services h4{margin:0 0 9px;font-size:15px}.consent-services dl{display:grid;gap:7px;margin:0}.consent-services dl div{display:grid;grid-template-columns:92px 1fr;gap:7px}.consent-services dt{font-size:12px;font-weight:800;color:#516156}.consent-services dd{margin:0;font-size:12px;color:#46534a}
.consent-switch{flex:0 0 auto;display:grid;grid-template-columns:42px auto;align-items:center;gap:8px;cursor:pointer}.consent-switch input{position:absolute;width:1px;height:1px;opacity:0}.consent-switch span{position:relative;width:42px;height:24px;border-radius:999px;background:#b8bcb8;transition:background .18s ease}.consent-switch span::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 4px #0004;transition:transform .18s ease}.consent-switch input:checked+span{background:var(--legal-green)}.consent-switch input:checked+span::after{transform:translateX(18px)}.consent-switch input:focus-visible+span{outline:3px solid #e56a3970;outline-offset:2px}.consent-switch b{min-width:76px;font-size:12px}.consent-switch.is-locked{cursor:default;opacity:.8}
.consent-links{display:flex;gap:18px;margin:0;padding:2px 30px 13px}.consent-links a{color:var(--legal-green);font-size:13px;font-weight:700;text-underline-offset:3px}.legal-dialog-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;padding:14px 22px 20px;border-top:1px solid var(--legal-line);background:#fffdf8}.legal-dialog button{min-height:48px;padding:11px 15px;border:1px solid var(--legal-green);border-radius:999px;background:#fff;color:var(--legal-green);font:750 14px/1.2 system-ui,sans-serif;cursor:pointer}.legal-dialog button.decision{background:var(--legal-green);color:#fff}.legal-dialog button.secondary{border-color:var(--legal-orange);color:#9c421f}.legal-dialog button.quiet{grid-column:1/-1;min-height:auto;border:0;background:transparent;color:#59665d;text-decoration:underline}.legal-dialog button:focus-visible,.legal-footer a:focus-visible,.legal-footer button:focus-visible,.consent-category summary:focus-visible{outline:3px solid #e56a3970;outline-offset:3px}
@media(max-width:700px){.legal-dialog{width:calc(100% - 16px);max-height:calc(100dvh - 16px);border-radius:20px}.consent-intro{padding:22px 20px 16px}.consent-categories{padding:10px 12px}.consent-category-head{gap:12px;padding:15px}.consent-category-head p{font-size:13px}.consent-switch{grid-template-columns:38px}.consent-switch span{width:38px}.consent-switch input:checked+span::after{transform:translateX(14px)}.consent-switch b{grid-column:1/-1;min-width:0;text-align:center}.consent-services{grid-template-columns:1fr}.consent-services dl div{grid-template-columns:82px 1fr}.consent-links{padding-inline:20px}.legal-dialog-actions{grid-template-columns:1fr;padding:12px}.legal-dialog button.quiet{grid-column:auto}}
@media(prefers-reduced-motion:reduce){.consent-switch span,.consent-switch span::after{transition:none}}
