/* ==========================================================================
   Growth Engine — modulo dedicato
   Mockup: Asset/mockup/PS mockup/Press Start rigenerata/Growth Engine.dc.html

   Stesso impianto di ps-rental.css: tutto sotto .ps-growth, variabili con
   prefisso --psg-. La landing non dipende dallo stato globale di Oxygen ne'
   lo influenza, e nessuna classe finisce nel suo store di selettori: si puo'
   lavorare qui mentre altri sono nel builder.

   Il mockup non ha una versione mobile: i breakpoint sono dedotti dalla scala
   della styleguide (1023px per il passaggio a due colonne, 781px a una).
   ========================================================================== */

.ps-growth {
  /* Colori — dal CSS del mockup, coerenti con la styleguide */
  --psg-ink:        #0c0c12;
  --psg-ink-2:      #26262e;
  --psg-black:      #0b0b13;
  --psg-black-deep: #08080f;
  --psg-muted:      #5a5a66;
  --psg-muted-2:    #8b8b97;
  --psg-muted-3:    #d2d2dc;
  --psg-hairline:   #e8e8ee;
  --psg-surface:    #ffffff;
  --psg-desk:       #f7f7f3;
  --psg-desk-2:     #f7f7fa;
  --psg-pastel:     #efedfe;

  --psg-blu:        #3d18f0;
  --psg-viola-soft: #a98cff;
  --psg-verde:      #4ade80;
  --psg-g1:         #2418f2;
  --psg-g2:         #8000ff;
  --psg-g3:         #ff0083;
  --psg-gradient:   linear-gradient(93deg, var(--psg-g1), var(--psg-g2) 52%, var(--psg-g3));

  /* Spazio — scala della styleguide */
  --psg-s1: 8px;  --psg-s2: 12px; --psg-s3: 16px; --psg-s4: 24px;
  --psg-s5: 44px; --psg-s6: 64px; --psg-s7: 92px;

  --psg-radius-control: 14px;
  --psg-radius-card:    22px;
  --psg-radius-block:   30px;

  --psg-max: 1440px;

  color: var(--psg-ink);
  line-height: 1.55;
  font-size: 16.5px;
}

.ps-growth *,
.ps-growth *::before,
.ps-growth *::after { box-sizing: border-box; }

.ps-growth [hidden] { display: none !important; }

.ps-growth__wrap {
  max-width: var(--psg-max);
  margin: 0 auto;
  padding-left: var(--psg-s4);
  padding-right: var(--psg-s4);
}

.ps-growth__section { padding: var(--psg-s7) 0; }

/* Sezioni che seguono un'altra sezione chiara: nel mockup non raddoppiano
   il respiro verticale, si attaccano sotto con il solo padding inferiore. */
.ps-growth__section--stretta { padding-top: 0; }

.ps-growth__section--soft { background: var(--psg-desk); }

/* --- tipografia ----------------------------------------------------------- */

.ps-growth__eyebrow {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .17em;
  text-transform: uppercase;
  color: var(--psg-muted-2);
  margin: 0 0 var(--psg-s2);
}

.ps-growth h2.ps-growth__h2 {
  font-size: 46px;
  font-weight: 700;
  line-height: 1.04;
  letter-spacing: -.025em;
  margin: 0;
  color: var(--psg-ink);
  text-wrap: pretty;
}

/* Il colore va dichiarato sull'elemento, non ereditato dalla sezione: Oxygen
   ha una regola `h1,h2,...{color:var(--bde-headings-color)}` e una regola
   diretta batte sempre l'ereditarieta'. Senza questo i titoli sui fondi scuri
   restano quasi invisibili. */
.ps-growth__hero .ps-growth__h1,
.ps-growth__hero .ps-growth__price,
.ps-growth__hero .ps-growth__badge,
.ps-growth__xsell .ps-growth__badge,
.ps-growth h3.ps-growth__xsell-h,
.ps-growth__xsell .ps-growth__price,
.ps-growth__cta-block .ps-growth__badge,
.ps-growth h2.ps-growth__cta-h,
.ps-growth__sum .ps-growth__sum-tot-k { color: #fff; }

.ps-growth h2.ps-growth__xsell-h { color: #fff; }

/* Le regole qui sopra sono piu' specifiche di .ps-growth__grad-text e
   renderebbero bianche anche le cifre che devono restare in gradiente:
   vanno riportate a `transparent` esplicitamente. */
.ps-growth__price.ps-growth__grad-text { color: transparent; }

.ps-growth__grad-text {
  background: var(--psg-gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.ps-growth__lede {
  color: var(--psg-muted);
  margin: 0;
  max-width: 46ch;
}

/* Testata di sezione: occhiello e titolo a sinistra, lede a destra, allineati
   sulla linea di base inferiore come nel mockup. */
.ps-growth__head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 31rem);
  gap: var(--psg-s4) var(--psg-s6);
  align-items: end;
  margin-bottom: var(--psg-s6);
}
.ps-growth__head--sola { grid-template-columns: minmax(0, 1fr); }

/* --- bottoni -------------------------------------------------------------- */

.ps-growth__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--psg-s1);
  min-height: 52px;
  padding: 0 27px;
  border-radius: 999px;
  border: 1.5px solid transparent;
  font-size: 15px;
  font-weight: 600;
  line-height: 1;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: transform .18s ease, opacity .18s ease, background-color .18s ease;
}
.ps-growth__btn:hover { transform: translateY(-1px); }
.ps-growth__btn:focus-visible { outline: 2.5px solid var(--psg-g2); outline-offset: 2px; }

.ps-growth__btn--grad    { background: var(--psg-gradient); color: #fff; }
.ps-growth__btn--light   { background: var(--psg-surface); color: var(--psg-ink); }
.ps-growth__btn--ghost   { background: transparent; color: var(--psg-ink); border-color: var(--psg-muted-3); }
.ps-growth__btn--on-dark { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .34); }

.ps-growth__btn.is-disabled { opacity: .4; pointer-events: none; }

/* --- nastro a rete -------------------------------------------------------- */

.ps-growth__wave-wrap {
  line-height: 0;
  background: var(--psg-black-deep);
  overflow: hidden;
  height: 150px;
}
.ps-growth__wave {
  display: block;
  width: 100%;
  height: 150px;
  object-fit: cover;
}

/* --- hero ----------------------------------------------------------------- */

.ps-growth__hero {
  position: relative;
  background: var(--psg-black-deep);
  color: #fff;
  overflow: hidden;
}

/* Aloni gradiente confinati agli angoli: la styleguide vieta il gradiente
   come sfondo diffuso dietro il testo. */
.ps-growth__hero::before,
.ps-growth__hero::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
}
.ps-growth__hero::before {
  width: 820px; height: 820px; top: -300px; right: -180px;
  background: radial-gradient(closest-side, rgba(70, 20, 255, .45), transparent 72%);
}
.ps-growth__hero::after {
  width: 680px; height: 680px; bottom: -340px; left: -200px;
  background: radial-gradient(closest-side, rgba(255, 0, 131, .28), transparent 72%);
}

.ps-growth__hero-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(0, .92fr);
  gap: var(--psg-s6);
  align-items: center;
  padding-top: var(--psg-s7);
  padding-bottom: var(--psg-s7);
}

.ps-growth__badge {
  display: inline-flex;
  align-items: center;
  gap: var(--psg-s1);
  padding: 9px 16px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, .28);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  line-height: 1.2;
}

.ps-growth h1.ps-growth__h1 {
  font-size: clamp(38px, 4.3vw, 60px);
  font-weight: 700;
  line-height: 1.02;
  letter-spacing: -.03em;
  margin: var(--psg-s4) 0 0;
  text-wrap: pretty;
}

.ps-growth__hero-lede {
  color: rgba(255, 255, 255, .72);
  font-size: 17.5px;
  max-width: 52ch;
  margin: var(--psg-s3) 0 0;
}

.ps-growth__cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--psg-s2);
  margin: var(--psg-s5) 0 var(--psg-s4);
}

.ps-growth__ticks {
  display: flex;
  flex-wrap: wrap;
  gap: var(--psg-s2) var(--psg-s4);
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 13.5px;
  font-weight: 500;
  color: rgba(255, 255, 255, .55);
}
.ps-growth__ticks li { display: flex; align-items: center; gap: 7px; }

/* Card prezzo: bordo gradiente ottenuto con un layer sotto */
.ps-growth__price-card {
  position: relative;
  border-radius: 28px;
  padding: 1.5px;
  background: var(--psg-gradient);
}
.ps-growth__price-inner {
  border-radius: 26.5px;
  background: linear-gradient(180deg, #16101f, var(--psg-black-deep));
  padding: 38px;
}
.ps-growth__price-label {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .5);
  margin: 0;
}
.ps-growth__price-row {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 10px;
  margin: var(--psg-s2) 0 4px;
}
.ps-growth__price {
  font-size: clamp(48px, 5vw, 74px);
  font-weight: 800;
  line-height: 1;
  letter-spacing: -.04em;
}
.ps-growth__price--sm { font-size: clamp(40px, 4vw, 56px); }
.ps-growth__price-unit { font-size: 17px; font-weight: 500; color: rgba(255, 255, 255, .6); }
.ps-growth__price-note { font-size: 13.5px; color: rgba(255, 255, 255, .55); margin: 0; }

.ps-growth__price-list {
  list-style: none;
  margin: var(--psg-s4) 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
}
.ps-growth__price-list li {
  display: flex;
  align-items: flex-start;
  gap: var(--psg-s2);
  padding: var(--psg-s2) 0;
  font-size: 15px;
  line-height: 1.5;
  border-top: 1px solid rgba(255, 255, 255, .13);
  color: rgba(255, 255, 255, .92);
}
.ps-growth__check { color: var(--psg-viola-soft); flex: none; line-height: 0; margin-top: 2px; }

.ps-growth__price-card .ps-growth__btn { width: 100%; margin-top: var(--psg-s4); }

/* --- card generiche ------------------------------------------------------- */

.ps-growth__grid {
  display: grid;
  gap: 22px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.ps-growth__grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.ps-growth__card {
  border: 1px solid var(--psg-hairline);
  border-radius: var(--psg-radius-card);
  padding: 28px;
  background: var(--psg-surface);
}
.ps-growth__card--step { border-color: transparent; }

.ps-growth__card h3 {
  font-size: 18px;
  font-weight: 700;
  letter-spacing: -.012em;
  line-height: 1.25;
  color: var(--psg-ink);
  margin: var(--psg-s3) 0 6px;
}
.ps-growth__card p { margin: 0; color: var(--psg-muted); font-size: 14.5px; line-height: 1.55; }

.ps-growth__icon {
  width: 44px;
  height: 44px;
  border-radius: 13px;
  background: var(--psg-pastel);
  color: var(--psg-blu);
  display: flex;
  align-items: center;
  justify-content: center;
}

/* --- passi ---------------------------------------------------------------- */

.ps-growth__step-n {
  font-size: 12.5px;
  font-weight: 800;
  letter-spacing: .1em;
  margin: 0;
  background: var(--psg-gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.ps-growth__card--step h3 { margin-top: 6px; }
.ps-growth__step-when {
  margin: var(--psg-s1) 0 0;
  padding-top: var(--psg-s2);
  border-top: 1px solid var(--psg-hairline);
  font-size: 12.5px;
  font-weight: 600;
  color: var(--psg-blu) !important;
}

/* --- moduli --------------------------------------------------------------- */

.ps-growth__hint {
  display: flex;
  align-items: flex-start;
  gap: 13px;
  border: 1px solid var(--psg-hairline);
  border-radius: var(--psg-radius-control);
  padding: 18px 22px;
  margin: 0 0 22px;
  font-size: 14.5px;
  line-height: 1.55;
  color: var(--psg-ink-2);
}
.ps-growth__hint > svg { color: var(--psg-blu); flex: none; margin-top: 2px; }

.ps-growth__mod { display: flex; flex-direction: column; }
.ps-growth__mod h3 { margin-bottom: 2px; font-size: 19px; }
.ps-growth__mod-prezzo { font-size: 15px; font-weight: 700; margin: 0 !important; }
.ps-growth__mod-setup { font-size: 13px; color: var(--psg-muted-2) !important; margin: 0 0 var(--psg-s1) !important; }

.ps-growth__mod-list {
  list-style: none;
  margin: 6px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 7px;
}
.ps-growth__mod-list li {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--psg-ink-2);
}
.ps-growth__mod-list li > svg { color: var(--psg-blu); flex: none; margin-top: 3px; }

.ps-growth__chiusa {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--psg-s4);
  margin-top: 26px;
  padding-top: 26px;
  border-top: 1px solid var(--psg-hairline);
}
.ps-growth__chiusa .ps-growth__lede { max-width: none; }

/* --- configuratore -------------------------------------------------------- */

.ps-growth__cfg {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 430px);
  gap: 26px;
  align-items: start;
}

.ps-growth__mods { display: flex; flex-direction: column; gap: var(--psg-s2); }

.ps-growth__modc {
  position: relative;
  display: flex;
  align-items: center;
  gap: 18px;
  width: 100%;
  padding: 22px 24px;
  border: 1.5px solid var(--psg-hairline);
  border-radius: var(--psg-radius-card);
  background: var(--psg-surface);
  font-family: inherit;
  text-align: left;
  cursor: pointer;
  transition: border-color .15s ease;
}
.ps-growth__modc:hover { border-color: var(--psg-muted-3); }
.ps-growth__modc:focus-visible { outline: 2.5px solid var(--psg-g2); outline-offset: 2px; }

/* Bordo gradiente sul modulo attivo, disegnato come cornice sopra la card:
   cambiare `border-color` sposterebbe il layout di mezzo pixel. */
.ps-growth__modc::after {
  content: "";
  position: absolute;
  inset: -1.5px;
  border-radius: var(--psg-radius-card);
  padding: 2px;
  background: var(--psg-gradient);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask-composite: exclude;
  opacity: 0;
  transition: opacity .15s ease;
  pointer-events: none;
}
.ps-growth__modc.is-on::after { opacity: 1; }

.ps-growth__cb {
  width: 24px;
  height: 24px;
  flex: none;
  border-radius: 8px;
  border: 1.5px solid #c9c9d2;
  display: flex;
  align-items: center;
  justify-content: center;
  color: transparent;
}
.ps-growth__modc.is-on .ps-growth__cb {
  background: var(--psg-blu);
  border-color: var(--psg-blu);
  color: #fff;
}

.ps-growth__modc-testo { display: block; min-width: 0; }
.ps-growth__modc-nome {
  display: block;
  font-size: 16.5px;
  font-weight: 700;
  letter-spacing: -.012em;
  color: var(--psg-ink);
  line-height: 1.3;
}
.ps-growth__modc-sommario {
  display: block;
  font-size: 13px;
  color: var(--psg-muted);
  margin-top: 3px;
}

.ps-growth__pill {
  display: inline-block;
  vertical-align: 2px;
  margin-left: var(--psg-s1);
  padding: 3px 9px;
  border-radius: 999px;
  background: var(--psg-gradient);
  color: #fff;
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
  white-space: nowrap;
}

.ps-growth__modc-prezzo { margin-left: auto; flex: none; text-align: right; }
.ps-growth__modc-mese {
  display: block;
  font-size: 16px;
  font-weight: 700;
  color: var(--psg-ink);
  white-space: nowrap;
}
.ps-growth__modc-setup {
  display: block;
  font-size: 12.5px;
  color: var(--psg-muted-2);
  margin-top: 3px;
  white-space: nowrap;
}

.ps-growth__bud {
  border: 1.5px solid var(--psg-hairline);
  border-radius: var(--psg-radius-card);
  padding: 22px 24px;
  margin-top: var(--psg-s2);
  background: var(--psg-surface);
}
.ps-growth__bud-t { font-size: 15px; font-weight: 700; margin: 0; }
.ps-growth__bud-row { display: flex; align-items: center; flex-wrap: wrap; gap: var(--psg-s2); margin-top: var(--psg-s2); }
.ps-growth__bud-in {
  width: 180px;
  height: 52px;
  padding: 0 16px;
  border: 1.5px solid var(--psg-muted-3);
  border-radius: 13px;
  background: var(--psg-surface);
  color: var(--psg-ink);
  font-family: inherit;
  font-size: 16px;
  font-weight: 600;
}
.ps-growth__bud-in:focus-visible { outline: 2.5px solid var(--psg-g2); outline-offset: 2px; }
.ps-growth__bud-u { font-size: 15px; font-weight: 600; color: var(--psg-muted); }
.ps-growth__bud-n { font-size: 13px; line-height: 1.5; color: var(--psg-muted); margin: var(--psg-s2) 0 0; }

/* Riepilogo: resta a vista mentre si scorre la lista dei moduli */
.ps-growth__sum { position: sticky; top: 22px; }
.ps-growth__sum-inner {
  position: relative;
  overflow: hidden;
  border-radius: 26px;
  background: var(--psg-black);
  color: #fff;
  padding: 32px;
}
.ps-growth__sum-inner::before {
  content: "";
  position: absolute;
  width: 320px; height: 320px; right: -110px; top: -130px;
  border-radius: 50%;
  background: radial-gradient(closest-side, rgba(128, 0, 255, .4), transparent 70%);
  pointer-events: none;
}
.ps-growth__sum-inner > * { position: relative; }

.ps-growth__sum-t {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .5);
  margin: 0 0 6px;
}
.ps-growth__sum-vuoto {
  font-size: 14.5px;
  line-height: 1.6;
  color: rgba(255, 255, 255, .55);
  margin: var(--psg-s2) 0 4px;
}

.ps-growth__srow {
  display: flex;
  justify-content: space-between;
  gap: var(--psg-s2);
  padding: 11px 0;
  font-size: 14.5px;
  border-top: 1px solid rgba(255, 255, 255, .13);
}
.ps-growth__srow:first-child { border-top: 0; }
.ps-growth__srow-k { color: rgba(255, 255, 255, .8); }
.ps-growth__srow-v { font-weight: 600; white-space: nowrap; }
.ps-growth__srow--sconto .ps-growth__srow-k,
.ps-growth__srow--sconto .ps-growth__srow-v { color: var(--psg-verde); }

.ps-growth__sum-tot {
  margin-top: 6px;
  padding-top: 18px;
  border-top: 1px solid rgba(255, 255, 255, .25);
}
.ps-growth__sum-tot-k {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .5);
  margin: 0;
}
.ps-growth__sum-tot-v {
  font-size: 46px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -.035em;
  margin: var(--psg-s1) 0 0;
}
/* Fuori dal `background-clip: text` del totale: dentro prenderebbe il rosa di
   coda del gradiente e la crenatura stretta del numero. */
.ps-growth__sum-tot-m {
  font-size: 14px;
  font-weight: 500;
  letter-spacing: normal;
  color: rgba(255, 255, 255, .55);
}
.ps-growth__sum-setup { font-size: 14px; color: rgba(255, 255, 255, .7); margin: 10px 0 0; }
.ps-growth__sum-fine { font-size: 12px; line-height: 1.55; color: rgba(255, 255, 255, .42); margin: var(--psg-s3) 0 0; }
.ps-growth__sum .ps-growth__btn { width: 100%; margin-top: 20px; }
.ps-growth__sum-nota {
  font-size: 12.5px;
  line-height: 1.5;
  color: rgba(255, 255, 255, .55);
  margin: var(--psg-s2) 0 0;
  text-align: center;
}

/* --- cross-sell ----------------------------------------------------------- */

.ps-growth__xsell {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr);
  gap: var(--psg-s5);
  align-items: center;
  border-radius: var(--psg-radius-block);
  background: var(--psg-black-deep);
  color: #fff;
  padding: 52px 56px;
}
.ps-growth__xsell::before {
  content: "";
  position: absolute;
  width: 520px; height: 520px; top: -200px; right: -120px;
  border-radius: 50%;
  background: radial-gradient(closest-side, rgba(70, 20, 255, .4), transparent 72%);
  pointer-events: none;
}
.ps-growth__xsell > * { position: relative; }

.ps-growth h2.ps-growth__xsell-h {
  font-size: clamp(26px, 2.6vw, 34px);
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: -.022em;
  margin: var(--psg-s3) 0 0;
  text-wrap: pretty;
}
.ps-growth__xsell-lede {
  color: rgba(255, 255, 255, .72);
  margin: var(--psg-s2) 0 var(--psg-s5);
  max-width: 56ch;
}
.ps-growth__xsell-lede strong { color: #fff; }

.ps-growth__xsell-prezzo {
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: var(--psg-radius-card);
  background: rgba(255, 255, 255, .05);
  padding: 30px;
}

/* --- confronto ------------------------------------------------------------ */

.ps-growth__cmp {
  border: 1px solid var(--psg-hairline);
  border-radius: 26px;
  overflow: hidden;
}
.ps-growth__cmp-row {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--psg-hairline);
}
.ps-growth__cmp-row:first-child { border-top: 0; background: var(--psg-desk-2); }

.ps-growth__cmp-c {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 17px 22px;
  font-size: 14px;
  line-height: 1.5;
  color: var(--psg-ink-2);
}
.ps-growth__cmp-row--testa .ps-growth__cmp-c {
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .11em;
  text-transform: uppercase;
  color: var(--psg-muted-2);
}
.ps-growth__cmp-c--hi { background: #fbfaff; font-weight: 600; }
.ps-growth__cmp-ok { color: var(--psg-blu); flex: none; line-height: 0; }
.ps-growth__cmp-row--testa .ps-growth__cmp-c--hi { color: var(--psg-ink); }

/* --- CTA finale e form ---------------------------------------------------- */

.ps-growth__cta-block {
  position: relative;
  overflow: hidden;
  border-radius: var(--psg-radius-block);
  background: var(--psg-black);
  color: #fff;
  padding: 56px 58px;
}
.ps-growth__wave-bg {
  position: absolute;
  left: 0;
  bottom: -12%;
  width: 100%;
  height: auto;
  opacity: .35;
  pointer-events: none;
}
.ps-growth__cta-block-inner { position: relative; }

.ps-growth h2.ps-growth__cta-h {
  font-size: clamp(30px, 3.2vw, 46px);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -.028em;
  margin: 26px 0 var(--psg-s3);
  max-width: 22ch;
  text-wrap: pretty;
}
.ps-growth__cta-lede { color: rgba(255, 255, 255, .72); max-width: 60ch; margin: 0; }

.ps-growth__scelti {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 9px;
  margin-top: 26px;
}
.ps-growth__scelti-t { font-size: 13px; color: rgba(255, 255, 255, .55); }
.ps-growth__chip {
  display: inline-flex;
  align-items: center;
  gap: var(--psg-s1);
  padding: 9px 15px;
  margin-right: 9px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, .3);
  font-size: 13.5px;
  font-weight: 600;
}
.ps-growth__chip > svg { color: var(--psg-verde); }

.ps-growth__form { margin-top: 26px; max-width: 760px; }

.ps-growth__form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--psg-s2);
}

.ps-growth__form input[type="text"],
.ps-growth__form input[type="email"],
.ps-growth__form input[type="tel"],
.ps-growth__form input[type="url"],
.ps-growth__form select {
  width: 100%;
  height: 52px;
  padding: 0 16px;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 13px;
  background: rgba(255, 255, 255, .07);
  color: #fff;
  font: inherit;
  font-size: 15px;
}
.ps-growth__form select { appearance: none; color: rgba(255, 255, 255, .85); }
.ps-growth__form select option { color: var(--psg-ink); }
.ps-growth__form ::placeholder { color: rgba(255, 255, 255, .45); }
.ps-growth__form input:focus-visible,
.ps-growth__form select:focus-visible { outline: 2.5px solid var(--psg-g2); outline-offset: 2px; }

/* Il campo con i moduli scelti lo compila il configuratore: e' un promemoria
   per chi riceve la mail, non una cosa da chiedere due volte all'utente. */
.ps-growth__form .psg-campo-nascosto,
.ps-growth__form-grid .wpcf7-form-control-wrap:has(.psg-campo-nascosto) { display: none; }

.ps-growth__privacy {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: var(--psg-s3) 0 var(--psg-s4);
  font-size: 13px;
  line-height: 1.45;
  color: rgba(255, 255, 255, .6);
}
.ps-growth__privacy input[type="checkbox"] {
  width: 17px;
  height: 17px;
  margin: 1px 0 0;
  accent-color: var(--psg-g2);
  flex: none;
}

/* --- Contact Form 7 -------------------------------------------------------
   Stessi tre aggiustamenti di ps-rental.css: CF7 avvolge i campi in span
   inline e in <p> generati, che senza questo romperebbero il grid.          */

.ps-growth__form .wpcf7-form-control-wrap { display: block; width: 100%; }
.ps-growth__form p { margin: 0; }
.ps-growth__form-grid > p { display: contents; }
.ps-growth__form-grid br { display: none; }
.ps-growth__form .wpcf7-list-item { margin: 0; }
.ps-growth__privacy .wpcf7-list-item-label { color: rgba(255, 255, 255, .6); }
.ps-growth__form .wpcf7-submit { width: auto; }

.ps-growth__form .wpcf7-response-output {
  margin: var(--psg-s4) 0 0;
  padding: var(--psg-s2) var(--psg-s3);
  border: 0;
  border-radius: var(--psg-radius-control);
  background: rgba(255, 255, 255, .07);
  color: #fff;
  font-size: 14px;
}
.ps-growth__form .wpcf7-not-valid-tip { color: #ff8ec0; font-size: 12.5px; margin-top: 6px; }
.ps-growth__form .wpcf7-spinner { filter: invert(1); }

/* --- recensioni e FAQ innestate ------------------------------------------- */

/* [ps_recensioni] e [ps_faq] portano il loro foglio: qui serve solo che non
   rimangano attaccate alla testata di sezione. */
.ps-growth .psf,
.ps-growth .psr-carosello { margin-top: 0; }

/* ==========================================================================
   Responsive
   ========================================================================== */

@media (max-width: 1200px) {
  .ps-growth__cfg { grid-template-columns: minmax(0, 1fr); }
  .ps-growth__sum { position: static; }
}

@media (max-width: 1023px) {
  .ps-growth__hero-grid { grid-template-columns: minmax(0, 1fr); gap: var(--psg-s5); }
  .ps-growth__grid,
  .ps-growth__grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ps-growth__head { grid-template-columns: minmax(0, 1fr); align-items: start; }
  .ps-growth__xsell { grid-template-columns: minmax(0, 1fr); padding: var(--psg-s5); }

  /* Il confronto a quattro colonne sotto i 1024px non si legge: ogni riga
     diventa un blocco, con l'intestazione di colonna davanti al valore. */
  .ps-growth__cmp-row { grid-template-columns: minmax(0, 1fr); }
  .ps-growth__cmp-row--testa { display: none; }
  .ps-growth__cmp-c--voce {
    font-weight: 700;
    font-size: 15px;
    color: var(--psg-ink);
    padding-bottom: 4px;
  }
  .ps-growth__cmp-c:not(.ps-growth__cmp-c--voce) {
    align-items: flex-start;
    padding-top: 4px;
    padding-bottom: 4px;
  }
  .ps-growth__cmp-c[data-psg-col]::before {
    content: attr(data-psg-col) " · ";
    color: var(--psg-muted-2);
    font-weight: 600;
    white-space: nowrap;
  }
  .ps-growth__cmp-c--hi { background: transparent; }
  .ps-growth__cmp-row > .ps-growth__cmp-c:last-child { padding-bottom: 17px; }
}

@media (max-width: 781px) {
  .ps-growth { font-size: 16px; }
  .ps-growth__section { padding: var(--psg-s5) 0; }
  .ps-growth__section--stretta { padding-top: 0; }
  .ps-growth__wrap { padding-left: var(--psg-s3); padding-right: var(--psg-s3); }
  .ps-growth h2.ps-growth__h2 { font-size: clamp(28px, 7.4vw, 36px); }
  .ps-growth__head { margin-bottom: var(--psg-s5); }
  .ps-growth__hero-grid { padding-top: var(--psg-s5); padding-bottom: var(--psg-s5); }
  .ps-growth__grid,
  .ps-growth__grid--4 { grid-template-columns: minmax(0, 1fr); }
  .ps-growth__price-inner { padding: var(--psg-s4); }
  .ps-growth__wave-wrap,
  .ps-growth__wave { height: 90px; }
  .ps-growth__btn { width: 100%; }
  .ps-growth__chiusa .ps-growth__btn { width: 100%; }

  .ps-growth__modc { flex-wrap: wrap; padding: 18px 20px; gap: var(--psg-s2); }
  .ps-growth__modc-testo { flex: 1 1 60%; }
  .ps-growth__modc-prezzo { margin-left: 0; flex: 1 1 100%; text-align: left; }
  .ps-growth__modc-mese,
  .ps-growth__modc-setup { display: inline; margin: 0; }
  .ps-growth__modc-setup::before { content: " · "; }

  .ps-growth__sum-inner { padding: var(--psg-s4); }
  .ps-growth__sum-tot-v { font-size: 38px; }
  .ps-growth__bud-in { width: 100%; }

  .ps-growth__cta-block { padding: var(--psg-s5) var(--psg-s4); border-radius: var(--psg-radius-card); }
  .ps-growth__form-grid { grid-template-columns: minmax(0, 1fr); }
  .ps-growth__xsell { padding: var(--psg-s4); border-radius: var(--psg-radius-card); }
}

@media (prefers-reduced-motion: reduce) {
  .ps-growth__btn,
  .ps-growth__modc,
  .ps-growth__modc::after { transition: none; }
  .ps-growth__btn:hover { transform: none; }
}
