/* Pop-up d'iscrizione (modulo pvpopup). Tutto sotto .pvp, con valori espliciti: il tema non deve cambiarne l'aspetto. */
html.pvp-aperto,
html.pvp-aperto body { overflow: hidden !important; }

.pvp {
  position: fixed; inset: 0; z-index: 2147483000;
  display: flex; align-items: center; justify-content: center;
  padding: 16px;
  font-family: "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  color: #1b1b1b; line-height: 1.4; text-align: left;
}
.pvp *, .pvp *::before, .pvp *::after { box-sizing: border-box; }
/* i temi (anche quello di base di PrestaShop) allineano a destra le etichette e ingrigiscono i paragrafi */
.pvp p { margin: 0; color: inherit; font-family: inherit; text-align: left; }
.pvp label, .pvp legend, .pvp span { text-align: left; }
.pvp [hidden] { display: none !important; }

.pvp-sfondo { position: absolute; inset: 0; background: rgba(10, 16, 12, .62); animation: pvp-sfuma .25s ease-out; }
.pvp-finestra {
  position: relative; width: 100%; max-width: 440px;
  max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px);
  display: flex; flex-direction: column;
  background: #fff; border-radius: 16px; overflow: hidden;
  box-shadow: 0 24px 60px rgba(0, 0, 0, .35);
  animation: pvp-entra .3s ease-out;
  outline: none;
}
.pvp-scorri { overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; }

.pvp-chiudi {
  position: absolute; top: 10px; right: 10px; z-index: 3;
  width: 38px; height: 38px; padding: 0; margin: 0;
  display: flex; align-items: center; justify-content: center;
  border: 0; border-radius: 50%; background: #fff; color: #1b1b1b;
  box-shadow: 0 2px 8px rgba(0, 0, 0, .3); cursor: pointer;
}
.pvp-chiudi:hover, .pvp-chiudi:focus-visible { background: #eef3ea; outline: 2px solid #a6be6f; outline-offset: 1px; }

/* testata: foto a destra, scurita a sinistra dove sta il testo */
.pvp-testata {
  position: relative; padding: 20px 22px 22px; min-height: 200px;
  background-color: #111813; background-repeat: no-repeat; background-size: cover; background-position: right center;
}
.pvp-testata::before {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(17, 24, 19, .97) 0%, rgba(17, 24, 19, .9) 48%, rgba(17, 24, 19, .35) 78%, rgba(17, 24, 19, 0) 100%);
}
.pvp-testata > * { position: relative; z-index: 1; max-width: 72%; }
.pvp-logo { display: block; width: 118px; height: auto; margin: 0 0 14px; }
.pvp .pvp-titolo {
  font-family: "Arial Black", "Arial Bold", Arial, sans-serif; font-weight: 900;
  font-size: 25px; line-height: 1.08; letter-spacing: .2px; color: #fff; text-transform: uppercase;
}
.pvp .pvp-sottotitolo {
  margin-top: 4px; font-family: Georgia, "Times New Roman", serif; font-style: italic;
  font-size: 23px; line-height: 1.15; color: #a6be6f;
}
.pvp-trattino { display: block; width: 46px; height: 4px; margin: 14px 0 8px; background: #a6be6f; border-radius: 2px; }
.pvp .pvp-riga { font-size: 14px; line-height: 1.35; color: #d6e1cd; }

.pvp-corpo { padding: 20px 22px 22px; }
.pvp .pvp-invito { font-size: 20px; line-height: 1.3; font-weight: 700; margin-bottom: 16px; }

.pvp-campo { margin-bottom: 14px; }
.pvp .pvp-etichetta { display: block; margin: 0 0 6px; padding: 0; font-size: 14px; font-weight: 700; color: #1b1b1b; }
.pvp-obbl { color: #c0392b; }
.pvp .pvp-input {
  display: block; width: 100%; height: 46px; margin: 0; padding: 0 12px;
  font: inherit; font-size: 16px; color: #1b1b1b; background: #fff;
  border: 1px solid #c4cbc4; border-radius: 8px; box-shadow: none;
}
.pvp select.pvp-input { padding-right: 32px; -webkit-appearance: auto; appearance: auto; }
.pvp .pvp-input:focus { outline: none; border-color: #1f3f2d; box-shadow: 0 0 0 3px rgba(31, 63, 45, .18); }
.pvp-campo.pvp-sbagliato .pvp-input { border-color: #c0392b; }

.pvp-interessi { margin: 0 0 14px; padding: 0; border: 0; min-width: 0; }
.pvp-interessi legend { float: none; width: auto; }
.pvp .pvp-spunta {
  display: flex; align-items: flex-start; gap: 10px;
  margin: 0 0 9px; padding: 0; font-size: 15px; font-weight: 400; line-height: 1.35; color: #1b1b1b; cursor: pointer;
}
.pvp .pvp-spunta input {
  -webkit-appearance: checkbox; appearance: auto; position: static; opacity: 1; visibility: visible;
  flex: 0 0 auto; width: 20px; height: 20px; margin: 0; accent-color: #1f3f2d; cursor: pointer;
}
.pvp .pvp-spunta-privacy { font-size: 14px; margin-bottom: 0; }
.pvp-spunta a { color: #1f6fb2; text-decoration: underline; }

.pvp .pvp-errore { margin-top: 6px; font-size: 13px; line-height: 1.35; color: #c0392b; }
.pvp .pvp-errore-generale { margin: 0 0 10px; }
.pvp-esca { position: absolute !important; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; }

.pvp .pvp-pulsante {
  display: block; width: 100%; height: 50px; margin: 6px 0 0; padding: 0 16px;
  font: inherit; font-size: 17px; font-weight: 700; color: #fff; text-transform: none;
  background: #1f3f2d; border: 0; border-radius: 10px; cursor: pointer;
}
.pvp .pvp-pulsante:hover { background: #2b5a3f; }
.pvp .pvp-pulsante:disabled { opacity: .7; cursor: wait; }

.pvp-grazie { text-align: center; padding: 8px 0 6px; }
.pvp-spunta-ok { display: block; margin: 0 auto 12px; }
.pvp .pvp-grazie-titolo { font-size: 22px; font-weight: 700; margin-bottom: 8px; }
.pvp .pvp-grazie-testo { font-size: 16px; color: #3a3f3a; }

@media (min-width: 520px) {
  .pvp-finestra { max-width: 460px; }
  .pvp-testata { padding: 24px 26px 26px; min-height: 220px; }
  .pvp-logo { width: 140px; }
  .pvp .pvp-titolo { font-size: 30px; }
  .pvp .pvp-sottotitolo { font-size: 27px; }
  .pvp .pvp-riga { font-size: 15px; }
  .pvp-corpo { padding: 22px 26px 26px; }
  .pvp .pvp-invito { font-size: 22px; }
}

@keyframes pvp-sfuma { from { opacity: 0; } to { opacity: 1; } }
@keyframes pvp-entra { from { opacity: 0; transform: translateY(16px) scale(.98); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .pvp-sfondo, .pvp-finestra { animation: none; } }
