/* Privacy controls share the site's palette and remain readable in either theme. */
.legal-links{display:flex;flex-wrap:wrap;gap:12px 26px;padding-top:22px;margin-top:22px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
.legal-links button{padding:0;border:0;background:none;color:inherit;font-size:inherit;text-align:left}.legal-links a:hover,.legal-links button:hover{color:var(--green)}
.privacy-banner{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);width:min(980px,calc(100% - 40px));z-index:90;padding:23px 27px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:20px;box-shadow:0 18px 65px #0003}
.privacy-banner-copy{display:flex;align-items:flex-start;gap:16px}.privacy-symbol{display:grid;place-items:center;width:43px;height:43px;flex:0 0 43px;color:var(--green);background:var(--soft);border-radius:13px}.privacy-symbol svg{width:24px;height:24px}
.privacy-banner h2{font-size:19px;letter-spacing:-.025em;margin:0 0 5px}.privacy-banner p{font-size:13px;line-height:1.6;color:var(--muted)}.privacy-banner a,.privacy-explanation a,.legal-layout article a:not(.button),.form-privacy-note a,.consent a,.parent-consent a{color:var(--green);text-decoration:underline;text-underline-offset:3px}
.privacy-banner-actions{display:flex;flex-wrap:wrap;gap:9px;margin:17px 0 0 59px}.privacy-banner-actions .button{min-height:44px;font-size:12px;padding:10px 17px}
.privacy-dialog{width:min(600px,calc(100% - 32px));max-height:90dvh;border:1px solid var(--line);border-radius:24px;background:var(--surface);color:var(--ink);padding:36px;box-shadow:0 30px 100px #0004}.privacy-dialog::backdrop{background:#05120cca;backdrop-filter:blur(5px)}
.privacy-close{position:absolute;top:15px;right:15px;width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:var(--soft);color:var(--ink);font-size:25px}.privacy-dialog>.privacy-symbol{margin-bottom:20px}.privacy-dialog .eyebrow{font-size:11px}.privacy-dialog h2{font-size:30px;margin:9px 0 15px}.privacy-intro{font-size:14px;color:var(--muted);margin-bottom:20px}
.privacy-option{position:relative;display:flex;align-items:center;gap:20px;justify-content:space-between;padding:18px 0;border-top:1px solid var(--line);cursor:pointer}.privacy-option>div{flex:1}.privacy-option strong{font-size:15px}.privacy-option p{font-size:12px;color:var(--muted);line-height:1.6;margin-top:5px}.privacy-required{font-size:11px;color:var(--muted);flex:0 0 45px}.privacy-option input{position:absolute;right:0;width:46px;height:27px;opacity:0;cursor:pointer}.privacy-switch{width:46px;height:27px;border:1px solid var(--line);background:var(--soft);border-radius:30px;flex:0 0 46px;pointer-events:none}.privacy-switch:before{content:'';display:block;width:19px;height:19px;border-radius:50%;margin:3px;background:var(--muted);transition:transform .2s,background .2s}.privacy-option input:checked+.privacy-switch{background:var(--green);border-color:var(--green)}.privacy-option input:checked+.privacy-switch:before{transform:translateX(19px);background:var(--on-green,#fff)}.privacy-option input:focus-visible+.privacy-switch{outline:3px solid var(--green);outline-offset:4px}
.privacy-explanation{font-size:12px;color:var(--muted);margin:16px 0 23px}.privacy-actions{display:flex;flex-wrap:wrap;gap:9px}.privacy-actions .button{min-height:46px;font-size:12px;padding:11px 17px}.privacy-error:empty{display:none}.privacy-error{margin-top:12px;font-size:13px!important;color:var(--ink)!important}
.map-privacy{min-height:285px;padding:32px 25px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:var(--soft);border-radius:10px;border:1px solid var(--line)}.map-privacy-symbol{color:var(--green);width:32px;height:32px;margin-bottom:14px}.map-privacy strong{font-size:17px}.map-privacy p{max-width:340px;color:var(--muted);font-size:12px;margin:8px 0 17px}.map-privacy .button{font-size:12px;min-height:44px;padding:9px 16px}
.form-privacy-note{font-size:12px;color:var(--muted);margin:15px 0;line-height:1.7}
.legal-main{max-width:1280px;margin:auto;padding:65px var(--gutter) 100px}.legal-hero{max-width:870px;margin-bottom:62px}.legal-hero h1{font-size:clamp(35px,4.5vw,64px);margin:20px 0 26px;line-height:1.08;overflow-wrap:anywhere}.legal-hero>p{max-width:650px;color:var(--muted);font-size:18px}.legal-edition{display:flex;gap:25px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-top:30px}.legal-edition>span{background:var(--soft);border-radius:6px;padding:7px 12px}.legal-edition button{font-size:12px}
.legal-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:64px}.legal-layout>aside{position:sticky;top:120px;align-self:start}.legal-layout>aside>.eyebrow{font-size:10px;margin-bottom:20px}.legal-layout>aside nav{display:grid;gap:14px;font-size:13px;line-height:1.6;color:var(--muted)}.legal-layout>aside nav a:hover{color:var(--green)}.legal-back{display:block;margin-top:30px;font-size:12px;color:var(--green)}.legal-layout article{min-width:0}.legal-layout article section{margin:0 0 45px;padding:0 0 40px;border-bottom:1px solid var(--line);scroll-margin-top:120px}.legal-layout article h2{font-size:24px;line-height:1.35;letter-spacing:-.025em;margin-bottom:22px;text-wrap:initial}.legal-layout article p{font-size:14px;line-height:1.9;margin:12px 0;color:var(--muted)}.legal-layout article strong{color:var(--ink);font-weight:700}.operator-details{border:1px solid var(--line);background:var(--surface);border-radius:14px;padding:6px 22px;margin-top:22px}.operator-details>div{padding:15px 0}.operator-details>div+div{border-top:1px solid var(--line)}.operator-details dt{font-size:11px;color:var(--muted);margin-bottom:4px}.operator-details dd{font-size:14px;margin:0;line-height:1.75}.legal-purpose{padding:24px;background:var(--surface);border:1px solid var(--line);border-radius:14px;margin-bottom:14px}.legal-purpose h3{font-size:18px}.legal-purpose p:last-child{margin-bottom:0}.legal-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px}.legal-table-wrap table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}.legal-table-wrap caption{text-align:left;padding:18px;font-size:14px;font-weight:700}.legal-table-wrap th,.legal-table-wrap td{padding:15px;vertical-align:top;border-top:1px solid var(--line)}.legal-table-wrap th{background:var(--soft)}.legal-table-wrap code{font-size:11px;overflow-wrap:anywhere}.legal-footer{border-top:1px solid var(--line);padding:35px var(--gutter);font-size:13px;background:var(--surface)}
@media(max-width:800px){.legal-main{padding-top:40px;padding-bottom:35px}.legal-layout{display:block}.legal-layout>aside{position:static;margin-bottom:40px;padding:23px;background:var(--soft);border-radius:12px}.legal-layout>aside nav{display:grid;grid-template-columns:1fr 1fr;gap:13px 20px}.legal-hero{margin-bottom:35px}.legal-layout article h2{font-size:23px}.privacy-banner{padding:20px;bottom:85px;max-height:65dvh;overflow:auto}.privacy-banner-actions{margin-left:0}.privacy-banner-copy>.privacy-symbol{display:none}.privacy-banner-actions .button{flex:1 1 auto}.legal-hero>p{font-size:16px}}
@media(max-width:450px){.privacy-dialog{padding:25px}.privacy-dialog h2{font-size:26px}.privacy-actions{display:grid}.privacy-option{gap:12px}.privacy-banner{width:calc(100% - 24px);padding:18px;border-radius:16px}.privacy-banner h2{font-size:17px}.privacy-banner-actions .button{font-size:11px;padding:10px}.legal-layout>aside nav{grid-template-columns:1fr}.legal-purpose{padding:20px}.legal-layout article p{font-size:14px}.legal-edition{gap:15px}.legal-links{gap:13px 20px}}
@media print{.header,.legal-layout>aside,.legal-footer,.privacy-banner,.privacy-dialog,.legal-edition button{display:none!important}.legal-main{max-width:none;padding:0}.legal-layout{display:block}.legal-hero{margin-bottom:30px}.legal-hero h1{font-size:28px}.legal-layout article section{break-inside:avoid}.legal-page{padding:0!important;background:#fff!important;color:#000!important}.legal-purpose{break-inside:avoid;background:#fff!important}.legal-layout article p,.legal-hero>p{color:#222!important}}
.privacy-option{margin:0}.privacy-option p{font-weight:400}.privacy-option input{min-height:0;margin:0;padding:0}.privacy-dialog .privacy-actions{position:sticky;bottom:-36px;background:var(--surface);padding-top:14px;padding-bottom:14px;margin-bottom:-14px}
@media(max-width:450px){.privacy-dialog>.privacy-symbol{display:none}.privacy-dialog .privacy-intro{line-height:1.6;margin-bottom:13px}.privacy-option{padding:14px 0}.privacy-dialog .privacy-actions{bottom:-25px;grid-template-columns:1fr}.privacy-explanation{margin:10px 0 7px}}
