/* Firma&Paga — banner cookie (components/cookie-banner). Usa le variabili di fp.css: tema chiaro/scuro automatico. */
.fp-cookie { position: fixed; z-index: 70; left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom)); color: var(--testo); font-size: .95rem; line-height: 1.45; }
.fp-cookie[hidden] { display: none !important; }
.fp-cookie:focus { outline: none; }
.fp-cookie-box { position: relative; background: var(--rilievo); border: 1px solid var(--bordo); border-radius: 18px; padding: 18px 18px 16px; box-shadow: 0 18px 50px rgba(10, 20, 16, .22), 0 2px 6px rgba(10, 20, 16, .08); max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); overflow-y: auto; overscroll-behavior: contain; }
.fp-cookie.entra .fp-cookie-box { animation: fpCookieEntra .35s cubic-bezier(.2, .7, .2, 1) both; }
@keyframes fpCookieEntra { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .fp-cookie.entra .fp-cookie-box { animation: none; } }

.fp-cookie-titolo { display: flex; align-items: center; gap: 10px; font-weight: 800; font-size: 1.05rem; margin: 0 40px 6px 0; }
.fp-cookie-titolo svg { width: 22px; height: 22px; color: var(--primario); flex-shrink: 0; }
.fp-cookie-testo { margin: 0 0 14px; color: var(--testo-2); }
.fp-cookie-testo a { color: var(--primario); font-weight: 600; }
.fp-cookie-x { position: absolute; top: 10px; right: 10px; width: 40px; height: 40px; border-radius: 50%; border: 0; background: transparent; color: var(--testo-2); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.fp-cookie-x:hover { background: var(--superficie); color: var(--testo); }
.fp-cookie-x svg { width: 20px; height: 20px; }
.fp-cookie button:focus-visible, .fp-cookie a:focus-visible, .fp-cookie input:focus-visible + span { outline: 3px solid var(--primario); outline-offset: 2px; }

/* Pulsanti: "Rifiuta" e "Accetta tutti" hanno la stessa evidenza (nessun dark pattern) */
.fp-cookie-azioni { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.fp-cookie-azioni .fp-cookie-btn { min-height: 46px; border-radius: 12px; font: inherit; font-weight: 700; cursor: pointer; padding: 10px 14px; border: 2px solid var(--primario); background: var(--primario); color: var(--su-primario); }
.fp-cookie-azioni .fp-cookie-btn:hover { background: var(--primario-hover); border-color: var(--primario-hover); }
.fp-cookie-azioni .fp-cookie-btn-2 { background: transparent; color: var(--primario); }
.fp-cookie-azioni .fp-cookie-btn-2:hover { background: var(--primario-tenue); border-color: var(--primario); }
.fp-cookie-azioni [data-cookie="personalizza"] { grid-column: 1 / -1; order: 3; }
.fp-cookie-azioni [data-cookie="salva"] { grid-column: 1 / -1; }
.fp-cookie-azioni [hidden] { display: none; }

/* Pannello categorie */
.fp-cookie-pannello { border-top: 1px solid var(--bordo); margin: 0 0 14px; padding-top: 6px; }
.fp-cookie-pannello[hidden] { display: none; }
.fp-cookie-cat { display: grid; grid-template-columns: 1fr auto; gap: 4px 14px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--bordo); }
.fp-cookie-cat:last-child { border-bottom: 0; }
.fp-cookie-cat b { font-size: .98rem; }
.fp-cookie-cat p { grid-column: 1 / -1; margin: 0; color: var(--testo-2); font-size: .86rem; }
.fp-cookie-sempre { font-size: .78rem; font-weight: 700; color: var(--primario); background: var(--primario-tenue); padding: 3px 9px; border-radius: 999px; white-space: nowrap; }
.fp-cookie-switch { position: relative; display: inline-block; width: 50px; height: 30px; flex-shrink: 0; cursor: pointer; }
.fp-cookie-switch input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; z-index: 1; }
.fp-cookie-switch span { position: absolute; inset: 0; background: var(--bordo); border-radius: 30px; transition: background .2s; }
.fp-cookie-switch span::before { content: ""; position: absolute; width: 24px; height: 24px; left: 3px; top: 3px; background: #fff; border-radius: 50%; transition: transform .2s; box-shadow: 0 1px 3px rgba(0, 0, 0, .25); }
.fp-cookie-switch input:checked + span { background: var(--primario); }
.fp-cookie-switch input:checked + span::before { transform: translateX(20px); }

/* Desktop: card in basso a sinistra, non a tutta larghezza */
@media (min-width: 720px) {
  .fp-cookie { left: 24px; right: auto; bottom: 24px; width: 460px; }
  .fp-cookie-azioni { grid-template-columns: 1fr 1fr 1fr; }
  .fp-cookie-azioni [data-cookie="personalizza"] { grid-column: auto; order: 0; }
}

/* App: sopra la barra di navigazione inferiore (su desktop la barra non c'è) */
.fp-cookie-app { bottom: calc(var(--nav-h) + env(safe-area-inset-bottom) + 10px); }
@media (min-width: 900px) { .fp-cookie-app { bottom: 24px; left: auto; right: 24px; } }

/* Pagamenti: dentro la pagina, in alto, così non copre mai il modulo di pagamento */
.fp-cookie-alto { position: static; width: auto; margin: 12px auto 0; max-width: 560px; padding: 0 16px; }
.fp-cookie-alto .fp-cookie-box { box-shadow: var(--ombra); max-height: none; }

/* Spazio in fondo alla pagina mentre il banner è aperto, per poter leggere anche il piè di pagina */
body.fp-cookie-aperto { padding-bottom: var(--fp-cookie-h, 0px); }

@media print { .fp-cookie { display: none !important; } }
