/* chalco · banner cookie e preferenze (04.11.2026)
   stile del sito: riquadro bianco, bordo e ombra nera piena, testata nera in maiuscolo (come il modulo contatti).
   rifiuta e accetta hanno lo stesso peso visivo (linee guida Garante privacy, 10.06.2021). */
.cc { position: fixed; left: 24px; bottom: 24px; z-index: 9000; width: min(480px, calc(100vw - 48px)); max-height: calc(100vh - 48px); max-height: calc(100dvh - 48px);
  display: flex; flex-direction: column; background: #fff; border: 1px solid var(--c-black, #0E0E10); box-shadow: 8px 8px 0 var(--c-black, #0E0E10);
  font-family: var(--font-sans, "Montserrat", sans-serif); color: var(--c-ink, #0E0E10); }
.cc[hidden] { display: none; }
.cc__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 12px 12px 20px; background: var(--c-black, #0E0E10); color: #fff;
  font-size: 10px; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; }
.cc__x { display: grid; place-items: center; width: 28px; height: 28px; margin: 0; padding: 0; border: 1px solid rgba(255,255,255,.6); background: transparent; color: #fff; cursor: pointer; font: 400 18px/1 var(--font-sans, sans-serif); }
.cc__x:hover, .cc__x:focus-visible { background: #fff; color: var(--c-black, #0E0E10); }
.cc__body { padding: 20px 20px 18px; overflow-y: auto; overscroll-behavior: contain; }
.cc__t { margin: 0 0 10px; font-size: 20px; font-weight: 800; letter-spacing: -.04em; line-height: 1.15; }
.cc__p { margin: 0 0 10px; font-size: 13px; line-height: 1.6; color: var(--c-ink-2, #4A4A52); }
.cc__p a, .cc__cat a { color: var(--c-ink, #0E0E10); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
.cc__btns { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; margin-top: 16px; }
.cc__btns .btn { min-width: 0; padding: 13px 8px; border: 1px solid var(--c-black, #0E0E10); font-size: 11px; letter-spacing: .16em; white-space: nowrap; }
.cc__btns .btn--primary { background: var(--c-black, #0E0E10); color: #fff; }
.cc__btns .btn--primary:hover { background: #fff; color: var(--c-black, #0E0E10); }
.cc__btns .btn--secondary { background: #fff; color: var(--c-black, #0E0E10); }
.cc__btns .btn--secondary:hover { background: var(--c-black, #0E0E10); color: #fff; }
.cc__cats { margin: 14px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--c-black, #0E0E10); }
.cc__cat { padding: 14px 0; border-bottom: 1px solid var(--c-line, rgba(14,14,16,.35)); }
.cc__row { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.cc__name { font-size: 14px; font-weight: 700; letter-spacing: -.01em; }
.cc__always { font-size: 10px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--c-ink-3, #6B6A70); white-space: nowrap; }
.cc__cat p { margin: 6px 0 0; font-size: 13px; line-height: 1.55; color: var(--c-ink-2, #4A4A52); }
/* interruttore */
.cc__sw { position: relative; flex-shrink: 0; width: 44px; height: 24px; }
.cc__sw input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; z-index: 1; }
.cc__sw span { position: absolute; inset: 0; border: 1px solid var(--c-black, #0E0E10); background: #fff; transition: background .15s; }
.cc__sw span::after { content: ""; position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; background: var(--c-black, #0E0E10); transition: transform .15s, background .15s; }
.cc__sw input:checked + span { background: var(--c-black, #0E0E10); }
.cc__sw input:checked + span::after { transform: translateX(20px); background: #fff; }
.cc__sw input:focus-visible + span { outline: 2px solid var(--c-blue, #003376); outline-offset: 2px; }
.cc__sw input:disabled { cursor: default; }
.cc__sw input:disabled + span { opacity: .45; }
/* link "preferenze cookie" nel footer: sembra un collegamento come gli altri */
.cc-link { padding: 0; margin: 0; border: 0; background: none; font: inherit; color: inherit; letter-spacing: inherit; text-transform: inherit; cursor: pointer; }
.cc-link:hover { font-weight: 700; }
/* pulsante nella cookie policy */
.cc-policy-btn { margin: 4px 0 28px; }
.lg-body { min-width: 0; }
.lg-body .cc-tab-wrap { max-width: 100%; overflow-x: auto; margin: 0 0 24px; }
.lg-body .cc-tab-wrap table { margin: 0; min-width: 560px; }
@media (max-width: 767px) {
  .cc { left: 12px; right: 12px; bottom: 12px; width: auto; max-height: calc(100vh - 24px); max-height: calc(100dvh - 24px); box-shadow: 5px 5px 0 var(--c-black, #0E0E10); }
  .cc__body { padding: 16px 16px 14px; }
  .cc__t { font-size: 18px; }
  .cc__p { font-size: 12px; }
  .cc__btns .btn { padding: 12px 4px; letter-spacing: .08em; font-size: 10.5px; }
}
@media (prefers-reduced-motion: reduce) { .cc__sw span, .cc__sw span::after { transition: none; } }
@media print { .cc { display: none !important; } }
