/* ============================================================
   Home — versione convenzionale
   Lo standard di categoria, eseguito per bene.
   ============================================================ */

.mono {
  font-family: var(--font-mono);
}

.contenitore {
  width: 100%;
  max-width: var(--container-xl);
  margin-inline: auto;
  padding-inline: clamp(20px, 4vw, 32px);
}

/* ---- Testata ------------------------------------------------------- */

.testata {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(251, 250, 249, 0.86);
  -webkit-backdrop-filter: saturate(1.2) blur(10px);
  backdrop-filter: saturate(1.2) blur(10px);
  border-bottom: 1px solid var(--border-subtle);
}

.testata__interno {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-5);
  height: var(--header-height);
}

.nav {
  display: flex;
  align-items: center;
  gap: var(--space-6);
  margin-left: auto;
}

.nav__voce {
  font-size: var(--text-base);
  font-weight: var(--fw-medium);
  color: var(--text-body);
  text-decoration: none;
  transition: color var(--dur-fast) var(--ease-out);
}

.nav__voce:hover {
  color: var(--brand-strong);
}

.testata__azioni {
  display: flex;
  align-items: center;
  gap: var(--space-3);
}

.menu-btn {
  display: none;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  background: transparent;
  border: 1px solid var(--border-default);
  border-radius: var(--radius-md);
  color: var(--text-strong);
  cursor: pointer;
}

.menu-btn__linee {
  display: flex;
  flex-direction: column;
  gap: 5px;
  width: 18px;
}

.menu-btn__linee span {
  display: block;
  height: 2px;
  border-radius: var(--radius-pill);
  background: currentColor;
  transition: transform var(--dur-base) var(--ease-out);
}

.menu-btn[aria-expanded="true"] .menu-btn__linee span:first-child {
  transform: translateY(3.5px) rotate(45deg);
}

.menu-btn[aria-expanded="true"] .menu-btn__linee span:last-child {
  transform: translateY(-3.5px) rotate(-45deg);
}

.nav-mobile {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  padding: var(--space-4) clamp(20px, 4vw, 32px) var(--space-6);
  border-top: 1px solid var(--border-subtle);
  background: var(--surface-card);
}

.nav-mobile[hidden] {
  display: none;
}

.nav-mobile__voce {
  padding: var(--space-3) 0;
  font-size: var(--text-md);
  font-weight: var(--fw-medium);
  color: var(--text-body);
  text-decoration: none;
}

.nav-mobile .btn {
  margin-top: var(--space-3);
}

/* ---- Hero ---------------------------------------------------------- */

.hero {
  background: linear-gradient(180deg, var(--petrol-50) 0%, var(--surface-page) 72%);
  border-bottom: 1px solid var(--border-subtle);
}

.hero__interno {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding-top: clamp(48px, 7vw, 88px);
  padding-bottom: clamp(56px, 7vw, 96px);
}

.pillola {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: 7px 14px;
  border-radius: var(--radius-pill);
  background: var(--surface-card);
  border: 1px solid var(--border-subtle);
  box-shadow: var(--shadow-xs);
  font-size: var(--text-sm);
  font-weight: var(--fw-semibold);
  color: var(--brand-strong);
}

.hero__titolo {
  margin-top: var(--space-6);
  font-family: var(--font-display);
  font-weight: var(--fw-bold);
  font-size: clamp(2.25rem, 5.2vw, 3.75rem);
  line-height: 1.04;
  letter-spacing: var(--tracking-tighter);
  color: var(--text-strong);
  max-width: 17ch;
  text-wrap: balance;
}

.hero__testo {
  margin-top: var(--space-5);
  font-size: var(--text-md);
  line-height: var(--leading-relaxed);
  color: var(--text-body);
  max-width: 58ch;
  text-wrap: pretty;
}

.hero__azioni {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-3);
  margin-top: var(--space-7);
}

.prove {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-3) var(--space-6);
  margin-top: var(--space-6);
}

.prove li {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--text-sm);
  color: var(--text-muted);
}

.prove .icona {
  color: var(--success);
}

/* ---- Anteprima del prodotto ---------------------------------------- */

.anteprima {
  width: 100%;
  max-width: 940px;
  margin: clamp(40px, 5vw, 64px) 0 0;
}

.finestra {
  background: var(--surface-card);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-xl);
  overflow: hidden;
  text-align: left;
}

.finestra__barra {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-3) var(--space-5);
  background: var(--sand-25);
  border-bottom: 1px solid var(--border-subtle);
}

.finestra__pallino {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--sand-300);
}

.finestra__url {
  margin-left: var(--space-3);
  font-size: var(--text-xs);
  color: var(--text-muted);
}

.finestra__corpo {
  padding: var(--space-5);
  background: var(--surface-page);
}

.tessere {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-4);
}

.tessera {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: var(--space-4);
  background: var(--surface-card);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md);
}

.tessera__etichetta {
  font-size: var(--text-sm);
  font-weight: var(--fw-semibold);
  color: var(--text-muted);
}

.tessera__valore {
  font-family: var(--font-display);
  font-weight: var(--fw-bold);
  font-size: var(--text-xl);
  line-height: 1.15;
  color: var(--text-strong);
}

.casi {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  margin-top: var(--space-4);
}

.caso {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  padding: var(--space-3) var(--space-4);
  background: var(--surface-card);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md);
}

.caso__id {
  font-size: var(--text-xs);
  font-weight: var(--fw-semibold);
  color: var(--brand-strong);
  white-space: nowrap;
}

.caso__testo {
  flex: 1;
  min-width: 0;
  font-size: var(--text-sm);
  color: var(--text-body);
}

.badge--attesa {
  background: var(--warning-bg);
  color: var(--warning-text);
}

.badge--corso {
  background: var(--success-bg);
  color: var(--success-600);
}

.badge--chiuso {
  background: var(--surface-sunken);
  color: var(--text-muted);
}

.anteprima__nota {
  margin-top: var(--space-3);
  font-size: var(--text-xs);
  color: var(--text-muted);
  text-align: center;
}

/* ---- Sezioni ------------------------------------------------------- */

.sezione {
  padding-block: clamp(64px, 8vw, 112px);
}

.sezione--stretta {
  padding-block: clamp(32px, 4vw, 56px) clamp(64px, 8vw, 112px);
}

.sezione--form {
  background: var(--surface-page);
  border-top: 1px solid var(--border-subtle);
}

.intro {
  max-width: 58ch;
  margin-inline: auto;
  text-align: center;
}

.soprattitolo {
  font-size: var(--text-sm);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  color: var(--brand-strong);
}

.soprattitolo--chiaro {
  color: var(--petrol-300);
}

.titolo {
  margin-top: var(--space-3);
  font-family: var(--font-display);
  font-weight: var(--fw-bold);
  font-size: clamp(var(--text-xl), 3.4vw, var(--text-2xl));
  line-height: 1.15;
  letter-spacing: var(--tracking-tight);
  color: var(--text-strong);
  text-wrap: balance;
}

.sottotitolo {
  margin-top: var(--space-4);
  font-size: var(--text-md);
  line-height: var(--leading-relaxed);
  color: var(--text-body);
  text-wrap: pretty;
}

/* ---- Griglia funzionalità ------------------------------------------ */

.griglia {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
  gap: var(--space-5);
  margin-top: clamp(40px, 5vw, 64px);
}

.carta {
  padding: var(--space-6);
  background: var(--surface-card);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  transition:
    transform var(--dur-base) var(--ease-out),
    box-shadow var(--dur-base) var(--ease-out);
}

.carta:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-lg);
}

.carta__tessera {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: var(--radius-md);
  background: var(--brand-subtle);
  color: var(--brand);
  margin-bottom: var(--space-5);
}

.carta__titolo {
  font-family: var(--font-display);
  font-weight: var(--fw-semibold);
  font-size: var(--text-lg);
  letter-spacing: var(--tracking-tight);
  color: var(--text-strong);
}

.carta__testo {
  margin-top: var(--space-2);
  line-height: var(--leading-relaxed);
  color: var(--text-body);
}

/* ---- Sicurezza ----------------------------------------------------- */

.sezione--scura {
  background: var(--surface-inverse);
  color: var(--petrol-100);
}

.sezione--scura .titolo {
  color: var(--white);
}

.sezione--scura .sottotitolo {
  color: var(--petrol-100);
}

.sicurezza-blocco {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
  gap: clamp(40px, 5vw, 72px);
  align-items: center;
}

.sicurezza-blocco__testo .titolo {
  max-width: 16ch;
}

.sicurezza-blocco__nota {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  margin-top: var(--space-6);
  padding: var(--space-4) var(--space-5);
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.13);
  border-radius: var(--radius-md);
  font-size: var(--text-sm);
  line-height: var(--leading-normal);
  color: var(--petrol-100);
}

.sicurezza-blocco__nota .icona {
  color: var(--petrol-300);
  margin-top: 1px;
}

.griglia-sicurezza {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: var(--space-4);
}

.punto {
  padding: var(--space-5);
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.13);
  border-radius: var(--radius-lg);
}

.punto__icona {
  display: inline-flex;
  color: var(--petrol-200);
  margin-bottom: var(--space-3);
}

.punto__titolo {
  font-family: var(--font-display);
  font-weight: var(--fw-semibold);
  font-size: var(--text-md);
  color: var(--white);
}

.punto__testo {
  margin-top: var(--space-1);
  font-size: var(--text-sm);
  line-height: var(--leading-normal);
  color: var(--petrol-100);
}

/* ---- Come funziona ------------------------------------------------- */

.passi-c {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: var(--space-6);
  margin-top: clamp(40px, 5vw, 64px);
}

.passo-c {
  position: relative;
  padding-top: var(--space-6);
  border-top: 1px solid var(--border-subtle);
}

.passo-c::before {
  content: "";
  position: absolute;
  top: -1px;
  left: 0;
  width: 40px;
  height: 1px;
  background: var(--brand);
}

.passo-c__quando {
  font-size: var(--text-sm);
  font-weight: var(--fw-semibold);
  color: var(--brand-strong);
}

.passo-c__titolo {
  margin-top: var(--space-3);
  font-family: var(--font-display);
  font-weight: var(--fw-semibold);
  font-size: var(--text-lg);
  letter-spacing: var(--tracking-tight);
  color: var(--text-strong);
}

.passo-c__testo {
  margin-top: var(--space-2);
  line-height: var(--leading-relaxed);
  color: var(--text-body);
}

.chiusa-c {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  max-width: 64ch;
  margin: clamp(40px, 5vw, 56px) auto 0;
  padding: var(--space-5);
  background: var(--brand-subtle);
  border-radius: var(--radius-lg);
  color: var(--brand-strong);
  font-weight: var(--fw-medium);
  line-height: var(--leading-normal);
}

.chiusa-c .icona {
  margin-top: 2px;
  color: var(--brand);
}

/* ---- Pannello CTA -------------------------------------------------- */

.pannello {
  padding: clamp(40px, 6vw, 72px) clamp(24px, 5vw, 56px);
  background: linear-gradient(135deg, var(--petrol-600), var(--petrol-800));
  border-radius: var(--radius-2xl);
  box-shadow: var(--shadow-brand);
  text-align: center;
  color: var(--white);
}

.pannello__titolo {
  font-family: var(--font-display);
  font-weight: var(--fw-bold);
  font-size: clamp(var(--text-xl), 3.4vw, var(--text-2xl));
  line-height: 1.15;
  letter-spacing: var(--tracking-tight);
  text-wrap: balance;
}

.pannello__testo {
  max-width: 50ch;
  margin: var(--space-4) auto 0;
  font-size: var(--text-md);
  line-height: var(--leading-relaxed);
  color: var(--petrol-100);
  text-wrap: pretty;
}

.pannello__azioni {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-3);
  margin-top: var(--space-7);
}

/* ---- Contatti ------------------------------------------------------ */

.contatto {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1fr);
  gap: clamp(40px, 5vw, 72px);
  align-items: start;
}

.contatto__testo .titolo,
.contatto__testo .soprattitolo,
.contatto__testo .sottotitolo {
  text-align: left;
}

.contatto__punti {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  margin-top: var(--space-6);
}

.contatto__punti li {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  font-size: var(--text-base);
  color: var(--text-body);
}

.contatto__punti .icona {
  color: var(--success);
}

.contatto__modulo {
  padding: clamp(24px, 3vw, 40px);
  background: var(--surface-card);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-md);
}

.contatto__modulo .avviso {
  margin-bottom: var(--space-5);
}

.form__legenda {
  font-size: var(--text-sm);
  color: var(--text-muted);
}

.form__campi {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  margin-top: var(--space-5);
}

.form__azioni {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-4) var(--space-5);
  margin-top: var(--space-6);
}

.form__nota {
  font-size: var(--text-sm);
  color: var(--text-muted);
}

/* ---- Piede --------------------------------------------------------- */

.piede-c {
  background: var(--surface-card);
  border-top: 1px solid var(--border-subtle);
  padding-top: clamp(40px, 5vw, 64px);
}

.piede-c__interno {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--space-6);
  padding-bottom: var(--space-7);
}

.piede-c__marchio p {
  max-width: 38ch;
  margin-top: var(--space-4);
  font-size: var(--text-sm);
  line-height: var(--leading-relaxed);
  color: var(--text-muted);
}

.piede-c__nav {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3) var(--space-6);
  align-items: flex-start;
}

.piede-c__nav a {
  font-size: var(--text-sm);
  color: var(--text-muted);
  text-decoration: none;
}

.piede-c__nav a:hover {
  color: var(--brand-strong);
  text-decoration: underline;
}

.piede-c__legale {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--space-3);
  padding-block: var(--space-5);
  border-top: 1px solid var(--border-subtle);
  font-size: var(--text-xs);
  color: var(--text-muted);
}

.piede-c__legale a {
  color: var(--text-muted);
}

/* ---- Movimento ----------------------------------------------------- */

@media (prefers-reduced-motion: no-preference) {
  @keyframes sali-c {
    from {
      opacity: 0;
      transform: translateY(16px);
    }
  }

  .hero .pillola,
  .hero__titolo,
  .hero__testo,
  .hero__azioni,
  .prove,
  .anteprima {
    animation: sali-c 640ms var(--ease-out) backwards;
  }

  .hero__titolo { animation-delay: 70ms; }
  .hero__testo  { animation-delay: 140ms; }
  .hero__azioni { animation-delay: 210ms; }
  .prove        { animation-delay: 280ms; }
  .anteprima    { animation-delay: 350ms; }
}

/* ---- Adattamento --------------------------------------------------- */

@media (max-width: 1000px) {
  .sicurezza-blocco,
  .contatto {
    grid-template-columns: minmax(0, 1fr);
  }

  .sicurezza-blocco__testo .titolo {
    max-width: 24ch;
  }
}

@media (max-width: 860px) {
  .nav,
  .testata__azioni {
    display: none;
  }

  .menu-btn {
    display: inline-flex;
    margin-left: auto;
  }
}

@media (max-width: 560px) {
  .tessere {
    grid-template-columns: minmax(0, 1fr);
  }

  .caso {
    flex-wrap: wrap;
    gap: var(--space-2) var(--space-3);
  }

  .caso__testo {
    flex-basis: 100%;
    order: 3;
  }

  .hero__azioni .btn,
  .pannello__azioni .btn {
    width: 100%;
  }
}
