
/* Privacy e consenso v39: componente isolato, senza modificare layout e logica esistenti. */
.privacy-ui-layer{position:relative;z-index:2147483000}
.privacy-banner{position:fixed;left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));display:grid;grid-template-columns:minmax(0,1fr) auto;gap:22px;align-items:end;max-width:1080px;margin:0 auto;padding:22px 58px 22px 24px;background:rgba(12,15,13,.98);color:#f6f7f6;border:1px solid rgba(255,255,255,.14);border-radius:18px;box-shadow:0 24px 80px rgba(0,0,0,.58);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.privacy-banner[hidden]{display:none!important}
.privacy-banner h2,.privacy-modal h2{margin:4px 0 8px;font-family:"Playfair Display",Georgia,serif;font-size:clamp(1.25rem,2vw,1.7rem);line-height:1.12;color:#fff}
.privacy-banner p,.privacy-modal p{margin:0;color:#c8cec9;line-height:1.55}
.privacy-banner a{display:inline-flex;margin-top:8px;color:#8fe0a8;text-underline-offset:3px}
.privacy-kicker{display:block;color:#74d294;font-size:.74rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.privacy-banner-actions,.privacy-modal-actions{display:flex;gap:10px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.privacy-action{min-height:44px;padding:10px 16px;border-radius:999px;border:1px solid transparent;font:inherit;font-weight:700;cursor:pointer;transition:transform .16s ease,border-color .16s ease,background .16s ease}
.privacy-action:hover{transform:translateY(-1px)}
.privacy-action:focus-visible,.privacy-banner-close:focus-visible,.privacy-modal-close:focus-visible,.privacy-settings-link:focus-visible{outline:3px solid rgba(116,210,148,.5);outline-offset:3px}
.privacy-action-primary{background:#15803d;color:#fff;border-color:#22984f}
.privacy-action-primary:hover{background:#1a8e46}
.privacy-action-secondary{background:transparent;color:#f6f7f6;border-color:rgba(255,255,255,.22)}
.privacy-action-secondary:hover{border-color:rgba(255,255,255,.44);background:rgba(255,255,255,.05)}
.privacy-banner-close,.privacy-modal-close{position:absolute;top:10px;right:12px;width:40px;height:40px;display:grid;place-items:center;border:0;background:transparent;color:#dce2dd;font-size:1.8rem;line-height:1;cursor:pointer;border-radius:50%}
.privacy-banner-close:hover,.privacy-modal-close:hover{background:rgba(255,255,255,.07)}
.privacy-modal{position:fixed;inset:0;display:none;place-items:center;padding:20px;z-index:2147483001}
.privacy-modal[aria-hidden="false"]{display:grid}
.privacy-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.72);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.privacy-modal-panel{position:relative;width:min(620px,100%);max-height:min(760px,calc(100vh - 40px));overflow:auto;padding:30px;background:#0e1210;color:#f6f7f6;border:1px solid rgba(255,255,255,.14);border-radius:20px;box-shadow:0 30px 100px rgba(0,0,0,.72)}
.privacy-modal-open{overflow:hidden}
.privacy-preference-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;margin-top:18px;padding:18px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.1);border-radius:14px}
.privacy-preference-row div{display:grid;gap:5px}
.privacy-preference-row strong{color:#fff}
.privacy-preference-row span{color:#b9c1bb;font-size:.9rem;line-height:1.45}
.privacy-always-on{display:inline-flex!important;padding:7px 10px;border-radius:999px;background:rgba(21,128,61,.18);color:#8fe0a8!important;font-weight:800;white-space:nowrap}
.privacy-preference-toggle{cursor:pointer}
.privacy-preference-toggle input{appearance:none;width:50px;height:28px;padding:2px;border:1px solid rgba(255,255,255,.24);border-radius:999px;background:#353b37;cursor:pointer;transition:background .18s ease,border-color .18s ease}
.privacy-preference-toggle input::before{content:"";display:block;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.35);transition:transform .18s ease}
.privacy-preference-toggle input:checked{background:#15803d;border-color:#2aa154}
.privacy-preference-toggle input:checked::before{transform:translateX(22px)}
.privacy-modal-actions{margin-top:22px}
.privacy-settings-link{appearance:none;border:0;background:transparent;color:inherit;font:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer;opacity:.78;padding:0}
.privacy-settings-link:hover{opacity:1}
.map-wrapper[data-consent-map]{min-height:480px}
.map-consent-placeholder{width:100%;height:100%;min-height:480px;display:grid;place-items:center;padding:30px;background:linear-gradient(145deg,rgba(21,128,61,.09),rgba(255,255,255,.025));border:1px solid rgba(255,255,255,.09);border-radius:inherit;text-align:center}
.map-consent-copy{max-width:520px}
.map-consent-kicker{display:block;margin-bottom:9px;color:#74d294;font-size:.74rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.map-consent-copy h3{margin:0 0 10px;color:#fff;font-size:clamp(1.35rem,2.5vw,2rem)}
.map-consent-copy p{margin:0;color:#c1c9c3;line-height:1.6}
.map-consent-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:22px}
@media(max-width:760px){.privacy-banner{grid-template-columns:1fr;align-items:stretch;padding:20px 48px 20px 20px;gap:16px}.privacy-banner-actions{display:grid;grid-template-columns:1fr 1fr}.privacy-banner-actions .privacy-action-primary{grid-column:1/-1;grid-row:1}.privacy-action{width:100%}.privacy-modal-panel{padding:26px 20px}.privacy-preference-row{grid-template-columns:1fr}.privacy-preference-toggle input{justify-self:start}.privacy-modal-actions{display:grid;grid-template-columns:1fr}.map-wrapper[data-consent-map],.map-consent-placeholder{min-height:420px}}
@media(max-width:420px){.privacy-banner-actions{grid-template-columns:1fr}.privacy-banner-actions .privacy-action-primary{grid-column:auto}.privacy-banner{left:8px;right:8px;bottom:max(8px,env(safe-area-inset-bottom));border-radius:14px}.map-consent-actions{display:grid}.map-consent-actions .btn{width:100%}}
@media(prefers-reduced-motion:reduce){.privacy-action,.privacy-preference-toggle input,.privacy-preference-toggle input::before{transition:none!important}}
