/* Modulo: extras — cookie bar, accessibilità, festività, pagine legali, admin tema/legale */

/* ---------- Cookie bar ---------- */
.ck-bar{position:fixed;z-index:80;background:var(--surface);color:var(--text);border:1px solid var(--border);box-shadow:0 18px 50px rgba(10,14,30,.22);padding:18px 22px;display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px;animation:ck-in .18s ease-out}
.ck-bar[hidden],.ck-bar [hidden]{display:none!important}
@keyframes ck-in{from{transform:translateY(12px)}to{transform:none}}
.ck-pos-bottom{left:16px;right:16px;bottom:16px;border-radius:calc(var(--radius) + 4px);padding-left:88px}
.ck-pos-top{left:16px;right:16px;top:16px;border-radius:calc(var(--radius) + 4px);animation-name:ck-in-top}
@keyframes ck-in-top{from{transform:translateY(-12px)}to{transform:none}}
.ck-pos-box{right:18px;bottom:18px;width:min(440px,calc(100vw - 36px));border-radius:calc(var(--radius) + 4px);flex-direction:column;align-items:stretch}
.ck-main{display:flex;gap:14px;align-items:flex-start;flex:1 1 420px;min-width:0}
.ck-icon{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;flex-shrink:0;background:color-mix(in srgb,var(--primary) 12%,transparent);color:var(--primary)}
.ck-copy h2{font-size:1rem;margin:0 0 4px}
.ck-copy p{margin:0;font-size:.86rem;color:var(--text-muted)}
.ck-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.ck-pos-box .ck-actions{justify-content:stretch}
.ck-pos-box .ck-actions .ck-btn{flex:1}
.ck-btn{min-width:120px}
.ck-close{position:absolute;top:8px;right:8px;background:none;border:0;color:var(--text-muted);cursor:pointer;width:32px;height:32px;border-radius:8px;display:grid;place-items:center}
.ck-close:hover{background:var(--surface-2);color:var(--text)}
.ck-prefs{flex-basis:100%;display:grid;gap:8px;max-height:46vh;overflow:auto}
.ck-prefs[hidden]{display:none}
.ck-cat{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2)}
.ck-cat-text{display:flex;flex-direction:column;gap:2px;font-size:.86rem}
.ck-cat-text span{color:var(--text-muted);font-size:.8rem}
.ck-cat .toggle input:disabled+span{opacity:.6}
@media (max-width:700px){
  .ck-pos-bottom,.ck-pos-top{left:8px;right:8px;padding:16px;bottom:8px}
  .ck-pos-top{top:8px;bottom:auto}
  .ck-actions{width:100%;padding-left:56px}
  .ck-actions .ck-btn{flex:1 1 40%;min-width:0}
  .ck-icon{display:none}
}

/* ---------- Widget accessibilità ---------- */
.a11y-fab{position:fixed;left:18px;bottom:18px;z-index:90;width:54px;height:54px;border-radius:50%;border:3px solid #fff;background:#1d4ed8;color:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:0 8px 24px rgba(15,23,42,.35);transition:transform .15s}
.a11y-fab:hover{transform:scale(1.06)}
.a11y-fab:focus-visible{outline:4px solid #facc15;outline-offset:3px}
.a11y-fab.a11y-fab-active::after{content:"";position:absolute;top:-2px;right:-2px;width:14px;height:14px;border-radius:50%;background:#22c55e;border:2px solid #fff}
.a11y-panel{position:fixed;left:18px;bottom:84px;z-index:91;width:min(380px,calc(100vw - 36px));max-height:calc(100vh - 110px);overflow:auto;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);box-shadow:0 24px 60px rgba(0,0,0,.28)}
.a11y-panel[hidden],.a11y [hidden]{display:none!important}
.a11y-head{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--border)}
.a11y-head h2{margin:0;font-size:1.02rem;display:flex;align-items:center;gap:8px}
.a11y-body{padding:14px 16px}
.a11y-row{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.a11y-row-label{font-weight:600;font-size:.88rem;color:var(--heading)}
.a11y-stepper{display:flex;align-items:center;gap:8px}
.a11y-font-val{min-width:48px;text-align:center;font-variant-numeric:tabular-nums;font-weight:600}
.a11y-seg{display:flex;border:1px solid var(--border);border-radius:10px;overflow:hidden}
.a11y-seg button{display:flex;align-items:center;gap:5px;border:0;background:var(--surface);color:var(--text);padding:6px 10px;font:inherit;font-size:.8rem;cursor:pointer}
.a11y-seg button+button{border-left:1px solid var(--border)}
.a11y-seg button[aria-checked=true]{background:var(--primary);color:var(--primary-contrast)}
.a11y-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.a11y-opt{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;min-height:78px;padding:10px 6px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);color:var(--text);font:inherit;font-size:.76rem;font-weight:600;line-height:1.2;cursor:pointer}
.a11y-opt:hover{border-color:var(--primary)}
.a11y-opt[aria-pressed=true]{background:var(--primary);color:var(--primary-contrast);border-color:var(--primary)}
.a11y-foot{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;border-top:1px solid var(--border);background:var(--surface-2)}
.a11y-guide{position:fixed;left:0;right:0;top:0;height:36px;z-index:95;pointer-events:none;background:rgba(250,204,21,.12);border-top:2px solid #facc15;border-bottom:2px solid #facc15;box-shadow:0 0 0 100vmax rgba(0,0,0,.18)}
.a11y-guide[hidden]{display:none}
@media (max-width:600px){.a11y-grid{grid-template-columns:repeat(2,1fr)}.a11y-fab{width:48px;height:48px;left:12px;bottom:12px}.a11y-panel{left:12px;bottom:70px}}

/* Classi applicate a <html> dalle preferenze di accessibilità */
html.a11y-contrast{--text:#000;--text-muted:#1c1c1c;--heading:#000;--bg:#fff;--surface:#fff;--surface-2:#f0f0f0;--border:#000;--input-bg:#fff;--input-border:#000;--link:#0000c8;--primary:#0000b4;--primary-hover:#000080;--primary-contrast:#fff;--accent:#000080;--success:#005a1e;--warning:#7a3d00;--danger:#a00000;--info:#00376e;--sidebar-bg:#000;--sidebar-text:#fff;--sidebar-muted:#f0f0f0;--sidebar-active-bg:#ffeb3b;--sidebar-active-text:#000;--login-bg:#000;--login-text:#fff}
html.a11y-contrast[data-theme=dark]{--text:#fff;--text-muted:#f0f0f0;--heading:#fff;--bg:#000;--surface:#000;--surface-2:#141414;--border:#fff;--input-bg:#000;--input-border:#fff;--link:#ffeb3b;--primary:#ffeb3b;--primary-hover:#fff176;--primary-contrast:#000;--accent:#00e5ff;--success:#69f0ae;--warning:#ffd740;--danger:#ff8a80;--info:#80d8ff;--sidebar-bg:#000;--sidebar-text:#fff;--sidebar-muted:#f0f0f0;--sidebar-active-bg:#ffeb3b;--sidebar-active-text:#000;--login-bg:#000;--login-text:#fff}
@media (prefers-color-scheme:dark){html.a11y-contrast:not([data-theme=light]){--text:#fff;--text-muted:#f0f0f0;--heading:#fff;--bg:#000;--surface:#000;--surface-2:#141414;--border:#fff;--input-bg:#000;--input-border:#fff;--link:#ffeb3b;--primary:#ffeb3b;--primary-hover:#fff176;--primary-contrast:#000;--accent:#00e5ff;--success:#69f0ae;--warning:#ffd740;--danger:#ff8a80;--info:#80d8ff;--sidebar-bg:#000;--sidebar-text:#fff;--sidebar-muted:#f0f0f0;--sidebar-active-bg:#ffeb3b;--sidebar-active-text:#000;--login-bg:#000;--login-text:#fff}}
html.a11y-contrast .card,html.a11y-contrast .stat,html.a11y-contrast .btn-secondary,html.a11y-contrast .input,html.a11y-contrast .select,html.a11y-contrast .textarea{border-width:2px}
html.a11y-contrast .hero,html.a11y-contrast .auth-orbs,html.a11y-contrast .brand-mark{background:var(--surface)!important;color:var(--text)!important;border:2px solid var(--border)}
html.a11y-contrast .hero h2,html.a11y-contrast .hero p,html.a11y-contrast .hero .hero-meta{color:var(--text)!important}
html.a11y-contrast .auth-orbs{display:none}
html.a11y-dyslexic body,html.a11y-dyslexic button,html.a11y-dyslexic input,html.a11y-dyslexic select,html.a11y-dyslexic textarea{font-family:"OpenDyslexic","Atkinson Hyperlegible","Comic Sans MS","Verdana","Tahoma",sans-serif!important;letter-spacing:.03em;word-spacing:.1em}
html.a11y-line-height body :is(p,li,td,th,dd,dt,label,span,a,small,div){line-height:1.95!important}
html.a11y-letter-spacing body *{letter-spacing:.1em!important;word-spacing:.16em!important}
html.a11y-links a{text-decoration:underline!important;text-decoration-thickness:2px!important;text-underline-offset:3px;font-weight:600}
html.a11y-links a:hover,html.a11y-links a:focus{background:#ffeb3b;color:#000!important}
html.a11y-focus :focus,html.a11y-focus :focus-visible{outline:4px solid #ff9f1c!important;outline-offset:3px!important;box-shadow:0 0 0 7px rgba(0,0,0,.6)!important}
html.a11y-animations *,html.a11y-animations *::before,html.a11y-animations *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
html.a11y-animations .hd-canvas,html.a11y-animations .hd-befana{display:none!important}
html.a11y-cursor,html.a11y-cursor *{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 24 24'%3E%3Cpath d='M4 2l15 11-7 1 4 8-3 1-4-8-5 5z' fill='%23000' stroke='%23fff' stroke-width='1.4'/%3E%3C/svg%3E") 6 3,auto!important}
html.a11y-cursor a,html.a11y-cursor button,html.a11y-cursor [role=button],html.a11y-cursor label{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 24 24'%3E%3Cpath d='M9 2a2 2 0 012 2v6l1-1a2 2 0 013 0l1 1a2 2 0 013 1l1 1a2 2 0 012 2v4a6 6 0 01-6 6h-3a6 6 0 01-5-3l-4-6a2 2 0 013-2l1 1V4a2 2 0 012-2z' fill='%23000' stroke='%23fff' stroke-width='1.2'/%3E%3C/svg%3E") 14 2,pointer!important}
html.a11y-grayscale{filter:grayscale(1)}
html.a11y-images img:not(.captcha-img),html.a11y-images .hd,html.a11y-images .auth-orbs{visibility:hidden!important}
html.a11y-images .auth-side{background-image:none!important}

/* ---------- Festività ---------- */
.hd{position:fixed;inset:0;pointer-events:none;z-index:45;overflow:hidden}
.hd-canvas{position:absolute;inset:0;width:100%;height:100%}
@media (prefers-reduced-motion:reduce){.hd *{animation:none!important}.hd-canvas{display:none}}
/* Halloween */
.hd-spider{position:absolute;top:0;width:24px;opacity:.88;animation:hd-spider var(--dur,7s) ease-in-out var(--delay,0s) infinite alternate;transform-origin:top center}
.hd-spider::before{content:"";position:absolute;left:50%;top:0;width:1px;height:var(--len,120px);background:linear-gradient(rgba(140,140,150,.2),rgba(140,140,150,.75));transform:translateX(-.5px);animation:hd-thread var(--dur,7s) ease-in-out var(--delay,0s) infinite alternate}
.hd-spider svg{position:absolute;left:0;top:var(--len,120px);animation:hd-spider-y var(--dur,7s) ease-in-out var(--delay,0s) infinite alternate,hd-wiggle 1.6s ease-in-out infinite;filter:drop-shadow(0 2px 2px rgba(0,0,0,.25))}
@keyframes hd-thread{from{height:calc(var(--len,120px) * .35)}to{height:var(--len,120px)}}
@keyframes hd-spider-y{from{top:calc(var(--len,120px) * .35)}to{top:var(--len,120px)}}
@keyframes hd-spider{from{transform:rotate(-2deg)}to{transform:rotate(2deg)}}
@keyframes hd-wiggle{0%,100%{transform:rotate(-6deg)}50%{transform:rotate(6deg)}}
.hd-web{position:absolute;top:0;right:0;color:rgba(160,160,175,.45);width:150px;height:150px}
.hd-pumpkin{position:absolute;right:22px;bottom:14px;filter:drop-shadow(0 6px 10px rgba(234,88,12,.35));animation:hd-bob 3.4s ease-in-out infinite}
.hd-pumpkin svg{display:block}
@keyframes hd-bob{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-5px) rotate(2deg)}}
/* Natale */
.hd-garland{position:absolute;left:0;right:0;top:0;height:40px}
.hd-wire{position:absolute;left:0;top:0;width:100%;height:30px}
.hd-bulb{position:absolute;top:14px;width:10px;height:15px;border-radius:50% 50% 50% 50%/40% 40% 60% 60%;background:var(--c);box-shadow:0 0 10px 2px var(--c);animation:hd-twinkle 2.6s ease-in-out infinite}
.hd-bulb::before{content:"";position:absolute;left:2px;top:-4px;width:6px;height:5px;border-radius:2px;background:#3f3f46}
@keyframes hd-twinkle{0%,100%{opacity:1;box-shadow:0 0 12px 3px var(--c)}50%{opacity:.45;box-shadow:0 0 2px 0 var(--c)}}
/* Pasqua */
.hd-eggs{position:absolute;right:22px;bottom:10px;display:flex;align-items:flex-end;gap:0;filter:drop-shadow(0 4px 6px rgba(0,0,0,.15))}
.hd-eggs svg{display:block;margin-left:-8px;animation:hd-bob 4s ease-in-out infinite}
.hd-eggs svg:nth-child(2){animation-delay:-1.2s}.hd-eggs svg:nth-child(3){animation-delay:-2.4s}
/* Epifania */
.hd-befana{position:absolute;top:12%;left:-160px;animation:hd-fly 22s linear infinite;animation-delay:2s;filter:drop-shadow(0 3px 4px rgba(0,0,0,.25))}
@keyframes hd-fly{0%{transform:translate(0,0) rotate(-6deg)}50%{transform:translate(calc(50vw + 80px),-30px) rotate(-3deg)}100%{transform:translate(calc(100vw + 320px),10px) rotate(-6deg)}}
/* Festa della donna */
.hd-mimosa{position:absolute;right:6px;bottom:6px;opacity:.95;animation:hd-bob 5s ease-in-out infinite}
/* Ferragosto */
.hd-sun{position:absolute;right:20px;top:58px;opacity:.85}
.hd-sun .hd-rays{transform-origin:60px 60px;animation:hd-spin 26s linear infinite}
@keyframes hd-spin{to{transform:rotate(360deg)}}
.hd-waves{position:absolute;left:0;right:0;bottom:0;height:46px;overflow:hidden}
.hd-waves svg{position:absolute;left:0;bottom:0;width:200%;height:100%}
.hd-wave1{animation:hd-wave 14s linear infinite}.hd-wave2{animation:hd-wave 9s linear infinite reverse}
@keyframes hd-wave{to{transform:translateX(-300px)}}
/* Tricolore */
.hd-tricolore{position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,#009246 0 33.33%,#f1f2f1 33.33% 66.66%,#ce2b37 66.66%);box-shadow:0 1px 3px rgba(0,0,0,.15)}
@media (max-width:700px){.hd-pumpkin svg{width:64px;height:56px}.hd-web{width:100px;height:100px}.hd-eggs svg{transform:scale(.8)}.hd-sun{transform:scale(.7);transform-origin:top right}}

/* ---------- Pagine legali ---------- */
.lg-crumbs{margin-bottom:12px}
.lg-crumbs a{color:var(--text-muted)}
.legal-doc h1{font-size:1.75rem;margin-bottom:.3em}
.legal-doc>p.muted:first-of-type{font-size:.85rem;margin-bottom:1.6em}
.legal-doc table{display:block;overflow-x:auto}
@media (min-width:700px){.legal-doc table{display:table}}
.lg-related{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.lg-related-link{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font-size:.86rem}
.lg-related-link:hover{border-color:var(--primary);text-decoration:none}

/* ---------- Admin: legale / tema / festività ---------- */
.lg-pages{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.lg-page-card{display:flex;flex-direction:column;gap:10px}
.lg-page-card h3{display:flex;align-items:center;gap:8px;margin:0}
.lg-editor .textarea.code{min-height:420px}
.lg-preview{max-height:520px;overflow:auto;border:1px solid var(--border);border-radius:var(--radius);padding:18px 22px;background:var(--surface)}
.th-mode-tabs{margin-bottom:14px}
.th-preview{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;display:grid;grid-template-columns:120px 1fr;min-height:230px;font-size:.8rem;position:sticky;top:80px}
.th-pv-side{padding:12px 10px;display:flex;flex-direction:column;gap:6px}
.th-pv-side span{display:block;padding:6px 8px;border-radius:7px}
.th-pv-main{padding:14px;display:flex;flex-direction:column;gap:10px}
.th-pv-card{border-radius:10px;padding:12px;border:1px solid}
.th-pv-btns{display:flex;gap:6px;flex-wrap:wrap}
.th-pv-btns span{padding:5px 10px;border-radius:7px;font-weight:600}
.th-pv-badges{display:flex;gap:5px;flex-wrap:wrap}
.th-pv-badges span{padding:1px 7px;border-radius:999px;font-size:.7rem;font-weight:600;color:#fff}
.th-pv-input{border:1px solid;border-radius:7px;padding:6px 8px}
.th-images{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px}
.th-image-card{border:1px solid var(--border);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:10px;background:var(--surface)}
.th-image-box{height:110px;border-radius:10px;background:repeating-conic-gradient(var(--surface-2) 0 25%,var(--surface) 0 50%) 0 0/14px 14px;display:grid;place-items:center;overflow:hidden;border:1px solid var(--border)}
.th-image-box.dark{background:#111827}
.th-image-box img{max-height:96px;max-width:100%;object-fit:contain}
.th-image-box.cover img{width:100%;height:100%;max-height:none;object-fit:cover}
.hd-admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.hd-admin-item{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer}
.hd-admin-item:has(input:checked){border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 22%,transparent)}
.hd-admin-item input{margin-top:3px;accent-color:var(--primary)}
.hd-admin-item strong{display:block;font-size:.9rem;color:var(--heading)}
.hd-admin-item small{display:block;color:var(--text-muted);font-size:.78rem}
.hd-admin-item .badge{margin-top:4px}
.a11y-admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}
/* Con la sidebar fissa (desktop) il pulsante accessibilità resta in basso a sinistra dell'area contenuti */
@media (min-width:901px){.layout-app .a11y-fab{left:282px}.layout-app .a11y-panel{left:282px}}
/* Zucca più discreta e sollevata sopra il footer */
.hd-pumpkin{bottom:64px;opacity:.92}
.hd-pumpkin svg{width:68px;height:60px}
