/*
 * Sito pubblico ProDiets (layouts/sito). Non passa da Vite: la cache si
 * aggiorna con ?v=filemtime nel layout.
 * Ordine: token, base, tipografia, contenitori, pulsanti e pillole,
 * header, footer, intestazioni di pagina, FAQ. Le pagine aggiungono in
 * fondo solo le regole delle loro sezioni.
 */

/* ---------- Token ---------- */
:root {
  /* Colori */
  --ps-verde-scuro: #123832;
  --ps-verde-testo: #1f7b70;
  --ps-verde-marca: #2a9d8f; /* solo accenti e focus, mai testo bianco sopra */
  --ps-verde-su-scuro: #5fc2b4;
  --ps-teal-chiaro: #f0f8f6;
  --ps-fondo: #f6f6f2;
  --ps-card: #ffffff;
  --ps-terracotta: #c1502e;
  --ps-terracotta-tenue: #fbf1ec;
  --ps-terracotta-testo: #a8431f; /* #c1502e su fondo caldo è 4.35:1, sotto AA per il testo piccolo */
  --ps-terracotta-bordo: #f1dcd1;
  --ps-errore: #a8431f;
  --ps-testo: #1f2421;
  --ps-secondario: #4b544e;
  --ps-filetto: #e6e6df;
  --ps-filetto-2: #e0e0d8;
  --ps-campo: #f3f4f0;
  --ps-su-scuro: #eef6f4;
  --ps-su-scuro-testo: rgba(238, 246, 244, .84);
  --ps-su-scuro-menu: rgba(238, 246, 244, .86);
  --ps-su-scuro-tenue: rgba(238, 246, 244, .76);
  --ps-su-scuro-contorno: rgba(238, 246, 244, .4);

  /* Raggi */
  --ps-raggio-s: 8px;
  --ps-raggio-m: 16px;
  --ps-raggio-l: 28px;
  --ps-raggio-pillola: 999px;

  /* Ombre */
  --ps-ombra-0: 0 0 0 1px #e6e6df;
  --ps-ombra-1: 0 1px 2px rgba(18, 56, 50, .06), 0 8px 24px rgba(18, 56, 50, .06);
  --ps-ombra-2: 0 24px 60px rgba(18, 56, 50, .16);
  --ps-focus: 0 0 0 2px #2a9d8f, 0 0 0 5px rgba(42, 157, 143, .2);

  /* Tipografia */
  --ps-font-titoli: 'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --ps-font-testo: 'Instrument Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --ps-h1: 60px;
  --ps-h1-pagina: 56px;
  --ps-h2: 44px;
  --ps-h3: 21px;
  --ps-lead: 19px;
  --ps-corpo: 16px;
  --ps-piccolo: 15px;

  /* Spaziatura (griglia 8px) */
  --ps-u: 8px;
  --ps-sezione: 120px;
  --ps-margine: 80px;
  --ps-contenuto: 1280px;
  --ps-pannello-rientro: 40px;
  --ps-header-altezza: 80px;

  /* Movimento */
  --ps-transizione: 200ms ease-out;
}

@media (max-width: 1199px) {
  :root { --ps-margine: 40px; }
}

@media (max-width: 1079px) {
  :root { --ps-header-altezza: 64px; }
}

@media (max-width: 640px) {
  :root {
    --ps-h1: 36px;
    --ps-h1-pagina: 36px;
    --ps-h2: 30px;
    --ps-h3: 18px;
    --ps-lead: 17px;
    --ps-sezione: 72px;
    --ps-margine: 16px;
    --ps-pannello-rientro: 8px;
    --ps-header-altezza: 60px;
  }
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-padding-top: calc(var(--ps-header-altezza) + 16px);
}

body {
  margin: 0;
  background: var(--ps-fondo);
  color: var(--ps-testo);
  font: 400 var(--ps-corpo)/1.55 var(--ps-font-testo);
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}

[hidden] { display: none !important; }
img, picture, svg { display: block; max-width: 100%; }
img { height: auto; }

h1, h2, h3, h4, p, ul, ol, figure { margin: 0; }
/* Niente parola sola sull'ultima riga di titoli e paragrafi. */
h1, h2, h3, h4, p, li, summary { text-wrap: pretty; }
ul[class], ol[class] { padding: 0; list-style: none; }

a { color: var(--ps-verde-testo); text-decoration: none; transition: color var(--ps-transizione); }
a:hover { color: var(--ps-verde-scuro); text-decoration: underline; }

/* Anello di focus: :where() lascia a ogni componente la possibilità di sommarlo alle sue ombre */
:where(:focus) { outline: none; }
:where(:focus-visible) { outline: none; box-shadow: var(--ps-focus); }

.ps-salta {
  position: absolute;
  left: 16px;
  top: -100px;
  z-index: 100;
  padding: 12px 20px;
  border-radius: var(--ps-raggio-pillola);
  background: var(--ps-card);
  color: var(--ps-verde-scuro);
  font: 700 15px var(--ps-font-titoli);
}
.ps-salta:focus-visible { top: 12px; }

/* ---------- Tipografia ---------- */
.ps-h1, .ps-h2, .ps-h3 { font-family: var(--ps-font-titoli); font-weight: 800; color: inherit; }
.ps-h1 { font-size: var(--ps-h1); line-height: 1.06; letter-spacing: -.03em; }
.ps-h2 { font-size: var(--ps-h2); line-height: 1.1; letter-spacing: -.025em; }
.ps-h3 { font-size: var(--ps-h3); line-height: 1.25; }
.ps-accento { color: var(--ps-verde-su-scuro); }

.ps-eyebrow {
  display: block;
  font: 700 14px var(--ps-font-titoli);
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--ps-verde-testo);
}
.ps-eyebrow--terracotta { color: var(--ps-terracotta-testo); }

.ps-lead { font-size: var(--ps-lead); line-height: 1.6; color: var(--ps-secondario); }
/* Link dentro un testo: sottolineati, non distinti solo dal colore */
.ps-lead a { text-decoration: underline; text-underline-offset: 2px; }

.ps-link {
  font: 700 17px var(--ps-font-titoli);
  color: var(--ps-verde-testo);
}

/* ---------- Contenitori e sezioni ---------- */
.ps-contenitore {
  width: 100%;
  max-width: calc(var(--ps-contenuto) + 2 * var(--ps-margine));
  margin-inline: auto;
  padding-inline: var(--ps-margine);
}

.ps-sezione { padding-block: var(--ps-sezione); }
.ps-sezione--bianca { background: var(--ps-card); }

/* Pannello verde rientrato dai bordi (tour, fascia finale) */
.ps-pannello {
  margin-inline: var(--ps-pannello-rientro);
  border-radius: var(--ps-raggio-l);
  background: var(--ps-verde-scuro);
  color: #fff;
}

.ps-card {
  border-radius: var(--ps-raggio-m);
  background: var(--ps-card);
  box-shadow: var(--ps-ombra-1);
}
.ps-card:focus-visible { box-shadow: var(--ps-ombra-1), var(--ps-focus); }

/* ---------- Pulsanti ---------- */
.ps-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 52px;
  padding: 0 30px;
  border: 0;
  border-radius: var(--ps-raggio-pillola);
  font: 700 17px/1.2 var(--ps-font-titoli);
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: background-color var(--ps-transizione), color var(--ps-transizione), box-shadow var(--ps-transizione);
}
.ps-btn:hover { text-decoration: none; }
.ps-btn--piccolo { min-height: 44px; padding: 0 22px; font-size: 15px; }
/* Pulsante dell'header: più basso, area di tocco garantita dal padding del contenitore */
.ps-btn--mini { min-height: 44px; padding: 0 20px; font-size: 15px; }

/* Primario su chiaro */
.ps-btn--primario { background: var(--ps-verde-testo); color: #fff; }
.ps-btn--primario:hover { background: var(--ps-verde-scuro); color: #fff; }

/* Secondario a contorno su chiaro */
.ps-btn--secondario { background: transparent; color: var(--ps-verde-testo); box-shadow: inset 0 0 0 1.5px var(--ps-verde-testo); }
.ps-btn--secondario:hover { color: var(--ps-verde-scuro); box-shadow: inset 0 0 0 1.5px var(--ps-verde-scuro); }

/* Primario su scuro */
.ps-btn--bianco { background: #fff; color: var(--ps-verde-scuro); }
.ps-btn--bianco:hover { background: var(--ps-su-scuro); color: var(--ps-verde-scuro); }

/* Secondario a contorno su scuro */
.ps-btn--contorno-scuro { background: transparent; color: var(--ps-su-scuro); box-shadow: inset 0 0 0 1.5px var(--ps-su-scuro-contorno); }
.ps-btn--contorno-scuro:hover { color: #fff; box-shadow: inset 0 0 0 1.5px var(--ps-su-scuro); }

.ps-btn:focus-visible { box-shadow: var(--ps-focus); }
/* I pulsanti a contorno tengono il contorno anche con il focus */
.ps-btn--secondario:focus-visible { box-shadow: inset 0 0 0 1.5px var(--ps-verde-testo), var(--ps-focus); }
.ps-btn--contorno-scuro:focus-visible { box-shadow: inset 0 0 0 1.5px var(--ps-su-scuro-contorno), var(--ps-focus); }

.ps-azioni { display: flex; flex-wrap: wrap; gap: 12px; }

@media (max-width: 640px) {
  .ps-eyebrow { font-size: 12px; }
  .ps-btn { font-size: 16px; }
  .ps-azioni--mobile-colonna { flex-direction: column; }
  .ps-azioni--mobile-colonna .ps-btn { width: 100%; }
}

/* ---------- Header ---------- */
.ps-header {
  position: sticky;
  top: 0;
  z-index: 50;
}
.ps-header--scuro { background: var(--ps-verde-scuro); }
.ps-header--chiaro { background: var(--ps-card); border-bottom: 1px solid var(--ps-filetto); }

.ps-header-barra {
  display: flex;
  align-items: center;
  gap: 32px;
  height: var(--ps-header-altezza);
  max-width: calc(var(--ps-contenuto) + 2 * var(--ps-margine));
  margin-inline: auto;
  padding-inline: var(--ps-margine);
}

.ps-header-logo { display: flex; align-items: center; flex: 0 0 auto; min-height: 44px; }
.ps-header-logo img { width: auto; height: 28px; }
.ps-header--scuro .ps-header-logo img { height: 30px; }
.ps-header-logo:focus-visible { border-radius: var(--ps-raggio-s); }

.ps-menu { display: flex; align-items: center; justify-content: space-between; gap: 32px; flex: 1 1 auto; }
.ps-menu-voci { display: flex; align-items: center; justify-content: center; gap: 32px; flex: 1 1 auto; }

.ps-menu-voce {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font: 500 16px var(--ps-font-testo);
  color: var(--ps-secondario);
  white-space: nowrap;
}
.ps-menu-voce[aria-current="page"] { color: var(--ps-verde-testo); font-weight: 600; }
.ps-menu-voce:hover { color: var(--ps-verde-scuro); }

.ps-menu-azioni { display: flex; align-items: center; gap: 20px; flex: 0 0 auto; }
.ps-menu-accedi {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font: 600 16px var(--ps-font-testo);
  color: var(--ps-testo);
}

.ps-header--scuro .ps-menu-voce { color: var(--ps-su-scuro-menu); }
.ps-header--scuro .ps-menu-voce[aria-current="page"] { color: #fff; }
.ps-header--scuro .ps-menu-voce:hover,
.ps-header--scuro .ps-menu-accedi:hover { color: #fff; }
.ps-header--scuro .ps-menu-accedi { color: var(--ps-su-scuro); }

.ps-header-prova { display: none; }
.ps-hamburger { display: none; }

@media (max-width: 1079px) {
  .ps-header-barra { gap: 12px; }
  .ps-header-logo { margin-right: auto; }
  .ps-header-prova { display: inline-flex; }

  .ps-hamburger {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    width: 44px;
    height: 44px;
    margin-right: -10px;
    padding: 0;
    border: 0;
    border-radius: var(--ps-raggio-s);
    background: transparent;
    cursor: pointer;
  }
  .ps-hamburger-linea {
    display: block;
    width: 20px;
    height: 2px;
    border-radius: 2px;
    background: var(--ps-testo);
    transition: transform var(--ps-transizione);
  }
  .ps-header--scuro .ps-hamburger-linea { background: var(--ps-su-scuro); }
  .ps-hamburger[aria-expanded="true"] .ps-hamburger-linea:first-child { transform: translateY(3.5px) rotate(45deg); }
  .ps-hamburger[aria-expanded="true"] .ps-hamburger-linea:last-child { transform: translateY(-3.5px) rotate(-45deg); }

  /* Menu a tendina sotto la barra */
  .ps-menu {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    flex-direction: column;
    align-items: stretch;
    gap: 16px;
    max-height: calc(100vh - var(--ps-header-altezza));
    max-height: calc(100dvh - var(--ps-header-altezza));
    overflow-y: auto;
    padding: 8px var(--ps-margine) 24px;
    background: var(--ps-card);
    border-bottom: 1px solid var(--ps-filetto);
    box-shadow: 0 24px 40px rgba(18, 56, 50, .12);
  }
  .ps-header--scuro .ps-menu { background: var(--ps-verde-scuro); border-bottom-color: rgba(238, 246, 244, .12); }

  /* Senza JS il menu resta visibile e statico */
  html:not(.ps-js) .ps-menu { position: static; box-shadow: none; }
  html:not(.ps-js) .ps-hamburger { display: none; }
  html:not(.ps-js) .ps-header-barra { flex-wrap: wrap; height: auto; min-height: var(--ps-header-altezza); }
  .ps-js .ps-menu { display: none; }
  .ps-js .ps-header--aperto .ps-menu { display: flex; }

  .ps-menu-voci { flex-direction: column; align-items: stretch; gap: 0; }
  .ps-menu-voci li + li { border-top: 1px solid var(--ps-filetto); }
  .ps-header--scuro .ps-menu-voci li + li { border-top-color: rgba(238, 246, 244, .12); }
  .ps-menu-voce { display: flex; min-height: 52px; font-size: 17px; }

  .ps-menu-azioni { flex-direction: column; align-items: stretch; gap: 8px; }
  .ps-menu-azioni .ps-btn { min-height: 52px; font-size: 16px; }
  .ps-menu-accedi { justify-content: center; min-height: 52px; border-radius: var(--ps-raggio-pillola); box-shadow: inset 0 0 0 1.5px var(--ps-filetto); }
  .ps-header--scuro .ps-menu-accedi { box-shadow: inset 0 0 0 1.5px var(--ps-su-scuro-contorno); }
  .ps-menu-accedi:focus-visible, .ps-header--scuro .ps-menu-accedi:focus-visible { box-shadow: inset 0 0 0 1.5px var(--ps-filetto), var(--ps-focus); }
}

@media (max-width: 640px) {
  .ps-header-logo img, .ps-header--scuro .ps-header-logo img { height: 22px; }
  .ps-header-prova { min-height: 36px; padding: 0 14px; font-size: 13px; }
  /* Area di tocco di 44px anche per il pulsante compatto */
  .ps-header-prova { position: relative; }
  .ps-header-prova::after { content: ''; position: absolute; inset: -4px; }
}

/* ---------- Footer ---------- */
.ps-footer { border-top: 1px solid var(--ps-filetto-2); }
.ps-footer-griglia {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr));
  gap: 48px;
  padding-top: 64px;
  padding-bottom: 48px;
}
.ps-footer-brand { display: flex; flex-direction: column; gap: 14px; font: 400 15px/1.6 var(--ps-font-testo); color: var(--ps-secondario); }
.ps-footer-brand img { width: auto; height: 28px; align-self: flex-start; }
.ps-footer-legale { font-size: 14px; }
.ps-footer-colonna { display: flex; flex-direction: column; gap: 10px; }
.ps-footer-titolo { font: 700 15px var(--ps-font-titoli); color: var(--ps-testo); }
.ps-footer-colonna ul { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0; list-style: none; }
.ps-footer a { color: var(--ps-secondario); font: 400 15px/1.5 var(--ps-font-testo); }
.ps-footer a:hover { color: var(--ps-verde-scuro); }

@media (max-width: 1079px) {
  .ps-footer-griglia { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ps-footer-brand { grid-column: 1 / -1; }
}

@media (max-width: 640px) {
  .ps-footer-griglia { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px 24px; padding-top: 48px; padding-bottom: 40px; }
  /* Voci del footer: righe alte almeno 44px da toccare */
  .ps-footer-colonna ul { gap: 0; }
  .ps-footer-colonna a { display: inline-flex; align-items: center; min-height: 44px; }
  .ps-footer-legale a { display: inline-flex; align-items: center; min-height: 44px; }
}

/* ---------- Intestazione delle pagine tematiche ---------- */
.ps-intestazione { padding-top: 88px; padding-bottom: 64px; }
.ps-intestazione-testo { display: flex; flex-direction: column; gap: 18px; max-width: 900px; }
.ps-intestazione--centrata .ps-intestazione-testo { align-items: center; margin-inline: auto; text-align: center; }
.ps-intestazione--centrata .ps-lead { max-width: 700px; }
.ps-intestazione h1 { font: 800 var(--ps-h1-pagina)/1.06 var(--ps-font-titoli); letter-spacing: -.03em; }

.ps-briciole { font: 600 15px var(--ps-font-testo); color: var(--ps-secondario); }
.ps-briciole ol { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.ps-briciole li + li::before { content: '/'; margin-right: 6px; }
.ps-briciole a { color: var(--ps-secondario); }
/* Link alti 44px da toccare; il margine negativo lascia la riga dov'era */
.ps-briciole ol { align-items: center; margin-block: -12.5px; }
.ps-briciole a { display: inline-flex; align-items: center; min-height: 44px; }
.ps-briciole a:hover { color: var(--ps-verde-scuro); }

@media (max-width: 640px) {
  .ps-intestazione { padding-top: 48px; padding-bottom: 40px; }
  .ps-intestazione-testo { gap: 14px; }
  .ps-briciole { font-size: 14px; }
  .ps-briciole ol { margin-block: -13px; }
}

/* ---------- Domande a fisarmonica (<details>) ---------- */
.ps-faq { display: flex; flex-direction: column; }
.ps-faq-voce { border-bottom: 1px solid var(--ps-filetto-2); }
.ps-faq-voce:first-child { border-top: 1px solid var(--ps-filetto-2); }
.ps-faq-voce > summary {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 24px;
  padding: 24px 0;
  cursor: pointer;
  list-style: none;
}
.ps-faq-voce > summary::-webkit-details-marker { display: none; }
.ps-faq-voce > summary:focus-visible { border-radius: var(--ps-raggio-s); }
.ps-faq-domanda { font: 700 19px/1.35 var(--ps-font-titoli); color: var(--ps-testo); }
.ps-faq-icona {
  position: relative;
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  margin-top: 2px;
  color: var(--ps-verde-testo);
}
.ps-faq-icona::before, .ps-faq-icona::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 16px;
  height: 2px;
  margin: -1px 0 0 -8px;
  border-radius: 2px;
  background: currentColor;
  transition: transform var(--ps-transizione);
}
.ps-faq-icona::after { transform: rotate(90deg); }
.ps-faq-voce[open] .ps-faq-icona::after { transform: rotate(0deg); }
.ps-faq-voce > summary:hover .ps-faq-domanda { color: var(--ps-verde-scuro); }
.ps-faq-risposta { padding: 0 46px 24px 0; font: 400 17px/1.6 var(--ps-font-testo); color: var(--ps-secondario); }
.ps-faq-risposta a { text-decoration: underline; }
.ps-faq-risposta strong { color: var(--ps-testo); }

@media (max-width: 640px) {
  .ps-faq-voce > summary { gap: 16px; padding: 20px 0; }
  .ps-faq-domanda { font-size: 17px; }
  .ps-faq-risposta { padding-right: 0; font-size: 16px; }
}

/* ---------- Pagina /domande-frequenti ---------- */
.ps-faq-indice { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.ps-faq-indice a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 18px;
  border-radius: var(--ps-raggio-pillola);
  background: var(--ps-card);
  box-shadow: var(--ps-ombra-0);
  font: 600 15px var(--ps-font-testo);
  color: var(--ps-testo);
}
.ps-faq-indice a:hover { color: var(--ps-verde-scuro); text-decoration: none; box-shadow: inset 0 0 0 1.5px var(--ps-verde-testo); }
.ps-faq-indice a:focus-visible { box-shadow: var(--ps-ombra-0), var(--ps-focus); }

.ps-faq-gruppi { display: flex; flex-direction: column; gap: 72px; padding-bottom: var(--ps-sezione); }
.ps-faq-gruppo { display: grid; grid-template-columns: 420px minmax(0, 1fr); gap: 80px; align-items: start; }
.ps-faq-gruppo-titolo { position: sticky; top: calc(var(--ps-header-altezza) + 32px); }

@media (max-width: 1079px) {
  .ps-faq-gruppo { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .ps-faq-gruppo-titolo { position: static; }
}

@media (max-width: 640px) {
  .ps-faq-gruppi { gap: 48px; }
}

/* Invito finale della pagina */
.ps-faq-finale { padding-bottom: var(--ps-sezione); }
.ps-faq-finale .ps-pannello { margin-inline: 0; }

/* Fascia finale verde con invito */
.ps-invito {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  padding: 64px;
}
.ps-invito-testo { display: flex; flex-direction: column; gap: 12px; max-width: 640px; }
.ps-invito-testo p { font: 400 var(--ps-lead)/1.6 var(--ps-font-testo); color: var(--ps-su-scuro-testo); }

@media (max-width: 640px) {
  .ps-invito { padding: 40px 20px; text-align: center; justify-content: center; }
  .ps-invito .ps-azioni { width: 100%; flex-direction: column; }
  .ps-invito .ps-btn { width: 100%; }
}

/* ---------- Home ---------- */
.ps-intro { display: flex; flex-direction: column; gap: 14px; max-width: 760px; }
.ps-intro--centrata { align-items: center; margin-inline: auto; text-align: center; }
.ps-intro--centrata .ps-lead { max-width: 720px; }

/* Spunte degli elenchi */
.ps-spunte { display: flex; flex-direction: column; gap: 10px; }
.ps-spunte li { display: flex; align-items: flex-start; gap: 10px; }
.ps-spunta { flex: 0 0 auto; width: 18px; height: 18px; margin-top: 2px; color: var(--ps-verde-testo); }
.ps-spunte--scuro .ps-spunta { color: var(--ps-verde-su-scuro); }

/* Cornice da telefono per le schermate dell'app */
.ps-telefono {
  --bordo: 10px;
  --raggio: 44px;
  padding: var(--bordo);
  border-radius: var(--raggio);
  background: #0c0f0e;
  box-shadow: 0 24px 60px rgba(18, 56, 50, .24);
}
.ps-telefono img { width: 100%; border-radius: calc(var(--raggio) - var(--bordo) + 1px); }

/* Testo solo su schermi larghi (versione breve su mobile, come nella tavola) */
@media (max-width: 640px) {
  .ps-solo-largo { display: none; }
}

/* 1. Hero */
.ps-hero { background: var(--ps-verde-scuro); color: #fff; }
.ps-hero-griglia {
  display: grid;
  grid-template-columns: 560px minmax(0, 1fr);
  gap: 24px;
  align-items: center;
  padding-top: 56px;
  padding-bottom: 96px;
  padding-right: calc(var(--ps-margine) / 2);
}
.ps-hero-testo { display: flex; flex-direction: column; gap: 24px; }
.ps-hero .ps-eyebrow { color: var(--ps-verde-su-scuro); }
.ps-hero .ps-lead { color: var(--ps-su-scuro-testo); }
.ps-hero-azioni { margin-top: 8px; }
.ps-hero-fiducia { display: flex; flex-wrap: wrap; gap: 6px 16px; font: 500 15px/1.5 var(--ps-font-testo); color: var(--ps-su-scuro-tenue); }
.ps-hero-fiducia li + li::before { content: '·'; margin-right: 16px; color: var(--ps-verde-su-scuro); }
.ps-hero-immagine img { width: 100%; }

@media (max-width: 1199px) {
  .ps-hero-griglia { grid-template-columns: minmax(0, 480px) minmax(0, 1fr); }
}

@media (max-width: 1079px) {
  .ps-hero-griglia { grid-template-columns: minmax(0, 1fr); gap: 40px; padding-right: var(--ps-margine); padding-top: 48px; padding-bottom: 72px; }
  .ps-hero-testo { max-width: 640px; }
  .ps-hero-immagine { max-width: 760px; }
}

@media (max-width: 640px) {
  .ps-hero-griglia { gap: 24px; padding-top: 24px; padding-bottom: 48px; }
  .ps-hero-testo { gap: 16px; }
  .ps-hero .ps-eyebrow { font-size: 11px; }
  .ps-hero .ps-h1 { line-height: 1.08; }
  .ps-hero .ps-lead { font-size: 16px; line-height: 1.55; }
  .ps-hero-azioni { margin-top: 0; gap: 10px; }
  .ps-hero-fiducia { justify-content: center; gap: 4px 8px; font-size: 13px; }
  .ps-hero-fiducia li + li::before { margin-right: 8px; }
  /* Su due righe: la prima voce da sola, le altre due sotto, mai un puntino a inizio riga. */
  .ps-hero-fiducia { display: grid; grid-template-columns: auto auto; justify-content: center; }
  .ps-hero-fiducia li:first-child { grid-column: 1 / -1; text-align: center; }
  .ps-hero-fiducia li:nth-child(2)::before { content: none; }
}

/* 2. Come funziona */
.ps-passi { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 20px; margin-top: 56px; }
.ps-passo { display: flex; flex-direction: column; gap: 14px; padding: 28px 24px; }
.ps-passo-numero { font: 800 15px var(--ps-font-titoli); color: var(--ps-verde-testo); }
.ps-passo-testo { display: flex; flex-direction: column; gap: 14px; }
.ps-passo-testo p { color: var(--ps-secondario); }

@media (max-width: 1199px) {
  .ps-passi { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 1079px) {
  .ps-passi { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
  .ps-passi { grid-template-columns: minmax(0, 1fr); gap: 12px; margin-top: 24px; }
  .ps-passo { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 12px; padding: 20px; }
  .ps-passo-numero { font-size: 14px; padding-top: 2px; }
  .ps-passo-testo { gap: 6px; }
  .ps-passo-testo p { font-size: 15px; line-height: 1.5; }
}

/* 3. Tour */
.ps-tour {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  margin-inline: max(var(--ps-pannello-rientro), (100% - 1360px) / 2);
  padding: 96px 40px 0;
  overflow: hidden;
}
.ps-tour-intro { display: flex; flex-direction: column; align-items: center; gap: 14px; max-width: 820px; text-align: center; }
.ps-tour .ps-eyebrow { color: var(--ps-verde-su-scuro); }
.ps-tour .ps-lead { color: var(--ps-su-scuro-testo); }

.ps-tour-gruppi-barra { max-width: 100%; }
.ps-tour-gruppi { display: flex; gap: 6px; padding: 6px; border-radius: var(--ps-raggio-pillola); background: rgba(255, 255, 255, .07); }
.ps-tour-gruppo {
  flex: 0 0 auto;
  min-height: 44px;
  padding: 0 20px;
  border: 0;
  border-radius: var(--ps-raggio-pillola);
  background: transparent;
  color: var(--ps-su-scuro);
  font: 700 15px var(--ps-font-titoli);
  white-space: nowrap;
  cursor: pointer;
  transition: background-color var(--ps-transizione), color var(--ps-transizione);
}
.ps-tour-gruppo:hover { background: rgba(255, 255, 255, .1); }
.ps-tour-gruppo[aria-selected="true"] { background: #fff; color: var(--ps-verde-scuro); }

.ps-tour-pannello { display: flex; flex-direction: column; align-items: center; gap: 40px; width: 100%; max-width: 1200px; }
.ps-js .ps-tour-pannello:not(.is-attivo) { display: none; }

.ps-tour-schede { display: flex; gap: 24px; max-width: 100%; }
.ps-tour-scheda {
  flex: 0 0 auto;
  min-height: 44px;
  padding: 0;
  border: 0;
  background: none;
  color: rgba(238, 246, 244, .7);
  font: 600 15px var(--ps-font-testo);
  white-space: nowrap;
  cursor: pointer;
  transition: color var(--ps-transizione), box-shadow var(--ps-transizione);
}
.ps-tour-scheda:hover { color: #fff; }
.ps-tour-scheda[aria-selected="true"] { color: #fff; box-shadow: inset 0 -2px 0 var(--ps-verde-su-scuro); }
.ps-tour-scheda:focus-visible { border-radius: 4px; }
.ps-tour-scheda[aria-selected="true"]:focus-visible { box-shadow: inset 0 -2px 0 var(--ps-verde-su-scuro), var(--ps-focus); }
/* Senza JS i comandi del tour non servono: tutti i moduli restano in vista. */
html:not(.ps-js) .ps-tour-gruppi-barra, html:not(.ps-js) .ps-tour-schede { display: none; }

.ps-tour-modulo { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 48px; align-items: start; width: 100%; }
.ps-js .ps-tour-modulo:not(.is-attivo) { display: none; }
.ps-js .ps-tour-modulo.is-attivo { animation: ps-dissolvenza 200ms ease-out; }
@keyframes ps-dissolvenza { from { opacity: 0; } to { opacity: 1; } }

.ps-tour-schermata > picture img { border-radius: 12px 12px 0 0; box-shadow: 0 24px 60px rgba(0, 0, 0, .35); }
.ps-tour-telefoni { display: flex; justify-content: center; gap: 24px; height: 470px; overflow: hidden; padding-top: 4px; }
.ps-tour-telefoni .ps-telefono { --bordo: 9px; --raggio: 38px; flex: 0 1 220px; align-self: flex-start; box-shadow: 0 24px 60px rgba(0, 0, 0, .35); }

.ps-tour-testo { display: flex; flex-direction: column; gap: 18px; padding-top: 12px; padding-bottom: 40px; }
.ps-tour-titoletto { font: 800 24px/1.25 var(--ps-font-titoli); color: #fff; }
.ps-tour-testo > p { font: 400 17px/1.6 var(--ps-font-testo); color: rgba(238, 246, 244, .82); }
.ps-tour-testo .ps-spunte { font: 500 16px/1.4 var(--ps-font-testo); color: var(--ps-su-scuro); }

@media (max-width: 1079px) {
  .ps-tour { padding: 72px 32px 0; gap: 32px; }
  .ps-tour-pannello { gap: 32px; }
  .ps-tour-modulo { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .ps-tour-testo { order: -1; padding: 0; max-width: 640px; }
}

@media (max-width: 640px) {
  .ps-tour { align-items: stretch; gap: 20px; padding: 56px 16px 0; }
  .ps-tour-intro { align-items: flex-start; text-align: left; gap: 12px; }
  .ps-tour-intro .ps-lead { display: none; }
  .ps-tour-pannello { align-items: stretch; gap: 20px; }

  /* Pillole e sotto-schede scorrono in orizzontale fino al bordo */
  .ps-tour-gruppi-barra, .ps-tour-schede { margin-right: -16px; overflow-x: auto; scrollbar-width: none; }
  .ps-tour-gruppi-barra::-webkit-scrollbar, .ps-tour-schede::-webkit-scrollbar { display: none; }
  .ps-tour-gruppi { width: max-content; padding: 0 16px 0 0; background: none; }
  .ps-tour-gruppo { padding: 0 16px; background: rgba(255, 255, 255, .08); font-size: 14px; }
  .ps-tour-schede { gap: 20px; padding-right: 16px; }
  .ps-tour-scheda { font-size: 14px; }

  .ps-tour-testo { gap: 8px; }
  .ps-tour-titoletto { font-size: 18px; }
  .ps-tour-testo > p { font-size: 15px; line-height: 1.55; color: var(--ps-su-scuro-testo); }
  .ps-tour-testo .ps-spunte { display: none; }

  .ps-tour-schermata { height: 230px; margin-right: -16px; overflow: hidden; }
  .ps-tour-schermata > picture img { width: 520px; max-width: none; border-radius: 10px 0 0 0; }
  .ps-tour-telefoni { justify-content: flex-start; gap: 10px; height: 230px; padding-right: 16px; }
  .ps-tour-telefoni .ps-telefono { --bordo: 6px; --raggio: 24px; flex: 0 0 132px; }
}

/* 4. App per il telefono */
.ps-app-griglia { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 80px; align-items: center; }
.ps-app-telefoni { position: relative; aspect-ratio: 600 / 620; border-radius: var(--ps-raggio-l); background: var(--ps-teal-chiaro); }
.ps-app-telefono { position: absolute; }
.ps-app-telefono--primo { left: 11.67%; top: 9.7%; width: 41.67%; }
.ps-app-telefono--secondo { --bordo: 9px; --raggio: 40px; right: 11.67%; top: 19.35%; width: 38.33%; }
.ps-app-testo { display: flex; flex-direction: column; gap: 22px; }
/* Link alto 44px da toccare; il margine negativo lascia la sezione com'era */
.ps-app-testo .ps-link { display: inline-flex; align-items: center; min-height: 44px; margin-block: -11px; }
.ps-app-card { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-top: 8px; }
.ps-app-chi { display: flex; flex-direction: column; gap: 10px; padding: 24px; }
.ps-app-chi-titolo { font: 800 18px var(--ps-font-titoli); }
.ps-app-chi p { line-height: 1.6; color: var(--ps-secondario); }

@media (max-width: 1199px) {
  .ps-app-griglia { gap: 48px; }
  .ps-app-telefono--primo { --bordo: 8px; --raggio: 36px; }
  .ps-app-telefono--secondo { --bordo: 8px; --raggio: 34px; }
}

@media (max-width: 1079px) {
  .ps-app-griglia { grid-template-columns: minmax(0, 1fr); }
  .ps-app-telefoni { width: 100%; max-width: 560px; margin-inline: auto; }
}

@media (max-width: 640px) {
  .ps-app-griglia { display: flex; flex-direction: column; align-items: stretch; gap: 20px; }
  .ps-app-testo { display: contents; }
  .ps-app-testo .ps-eyebrow { order: 1; }
  .ps-app-testo .ps-h2 { order: 2; margin-top: -8px; }
  .ps-app-telefoni { order: 3; aspect-ratio: auto; height: 360px; overflow: hidden; }
  .ps-app-testo .ps-lead { order: 4; font-size: 16px; }
  .ps-app-card { order: 5; grid-template-columns: minmax(0, 1fr); gap: 12px; margin-top: 0; }
  .ps-app-testo .ps-link { order: 6; }
  .ps-app-telefono--primo { --bordo: 8px; --raggio: 34px; left: 50%; top: 32px; width: 190px; transform: translateX(-50%); box-shadow: none; }
  .ps-app-telefono--secondo { display: none; }
  .ps-app-chi { padding: 20px; }
}

/* 5. Funzionalità: elenchi con filetto, senza icone né card */
.ps-funzioni { padding-bottom: var(--ps-sezione); }
.ps-funzioni-testa { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; margin-bottom: 48px; }
.ps-funzioni-testa .ps-btn { flex: 0 0 auto; }
.ps-funzioni-griglia { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px 48px; }
.ps-funzioni-gruppo { display: flex; flex-direction: column; gap: 12px; padding-top: 18px; border-top: 2px solid var(--ps-testo); }
.ps-funzioni-titolo { font: 800 19px var(--ps-font-titoli); }
.ps-funzioni-gruppo ul { display: flex; flex-direction: column; gap: 12px; margin: 0; padding: 0; list-style: none; }
.ps-funzioni-gruppo li { line-height: 1.45; color: var(--ps-secondario); }

@media (max-width: 1079px) {
  .ps-funzioni-griglia { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
  .ps-funzioni-testa { flex-direction: column; align-items: flex-start; gap: 20px; margin-bottom: 32px; }
  .ps-funzioni-griglia { gap: 32px 20px; }
  .ps-funzioni-gruppo { gap: 10px; padding-top: 14px; }
  .ps-funzioni-titolo { font-size: 17px; }
  .ps-funzioni-gruppo ul { gap: 8px; }
  .ps-funzioni-gruppo li { font-size: 15px; }
}

/* 6. Prezzi */
.ps-prezzi { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; align-items: stretch; margin-top: 48px; }
.ps-prezzo { display: flex; flex-direction: column; gap: 16px; padding: 32px 28px; border-radius: var(--ps-raggio-m); background: var(--ps-card); box-shadow: var(--ps-ombra-0); }
.ps-prezzo--prova { background: var(--ps-terracotta-tenue); box-shadow: 0 0 0 1px var(--ps-terracotta-bordo); }
.ps-prezzo--scelto { box-shadow: 0 0 0 2px var(--ps-verde-testo), 0 24px 60px rgba(18, 56, 50, .14); }
.ps-prezzo-testa { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 28px; }
.ps-prezzo-nome { font: 800 19px var(--ps-font-titoli); }
.ps-prezzo-badge { padding: 4px 10px; border-radius: var(--ps-raggio-pillola); background: var(--ps-teal-chiaro); color: var(--ps-verde-testo); font: 700 12px var(--ps-font-titoli); white-space: nowrap; }
.ps-prezzo--scelto .ps-prezzo-badge { background: var(--ps-verde-testo); color: #fff; }
.ps-prezzo-cifra { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px; }
.ps-prezzo-importo { font: 800 48px/1 var(--ps-font-titoli); letter-spacing: -.03em; }
.ps-prezzo-per { font: 500 16px var(--ps-font-testo); color: var(--ps-secondario); }
.ps-prezzo-nota { min-height: 46px; font-size: 15px; line-height: 1.5; color: var(--ps-secondario); }
/* ul.ps-prezzo-punti: più specifico di ul[class] { padding: 0 }, che altrimenti incolla le voci al filetto */
ul.ps-prezzo-punti { gap: 8px; margin-top: 4px; margin-bottom: 8px; padding-top: 20px; border-top: 1px solid var(--ps-filetto); font: 500 15px/1.4 var(--ps-font-testo); }
.ps-prezzo-cta { margin-top: auto; width: 100%; padding-inline: 12px; }
.ps-prezzo--prova .ps-btn--secondario { background: #fff; }
.ps-prezzi-cta-mobile { display: none; }

.ps-offerte { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-top: 48px; }
.ps-offerta { display: flex; align-items: center; gap: 20px; padding: 28px; border-radius: var(--ps-raggio-m); background: var(--ps-fondo); }
.ps-offerta > div { display: flex; flex-direction: column; gap: 4px; }
.ps-offerta-icona {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: var(--ps-card);
  color: var(--ps-verde-testo);
  font: 800 19px var(--ps-font-titoli);
}
.ps-offerta-titolo { font: 800 18px var(--ps-font-titoli); }
.ps-offerta p { line-height: 1.5; color: var(--ps-secondario); }
.ps-offerta a { white-space: nowrap; }

.ps-garanzie { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 24px; margin-top: 48px; font: 500 15px var(--ps-font-testo); color: var(--ps-secondario); }
.ps-garanzie li { display: flex; align-items: center; gap: 8px; }
.ps-garanzie .ps-spunta { width: 16px; height: 16px; margin: 0; }

@media (max-width: 1199px) {
  .ps-prezzo { padding: 28px 22px; }
  .ps-prezzo-importo { font-size: 42px; }
}

@media (max-width: 1079px) {
  .ps-prezzi { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ps-offerte { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 640px) {
  .ps-intro--centrata { align-items: flex-start; text-align: left; }
  .ps-prezzi { grid-template-columns: minmax(0, 1fr); gap: 16px; margin-top: 24px; }
  /* Su mobile ogni durata è una riga compatta, come nella tavola */
  .ps-prezzo { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 20px; }
  .ps-prezzo--scelto { box-shadow: 0 0 0 2px var(--ps-verde-testo); }
  .ps-prezzo-testa { flex-direction: column; align-items: flex-start; gap: 4px; min-height: 0; }
  .ps-prezzo-nome { font-size: 17px; }
  .ps-prezzo-badge { padding: 3px 9px; font-size: 11px; }
  .ps-prezzo-cifra { flex-wrap: nowrap; gap: 4px; }
  .ps-prezzo-importo { font-size: 30px; }
  .ps-prezzo-per { font-size: 13px; }
  .ps-prezzo-nota, .ps-prezzo-punti, .ps-prezzo-cta { display: none; }
  .ps-prezzi-cta-mobile { display: flex; width: 100%; margin-top: 16px; }
  .ps-offerte { gap: 12px; margin-top: 32px; }
  .ps-offerta { align-items: flex-start; gap: 16px; padding: 20px; }
  .ps-offerta-titolo { font-size: 17px; }
  .ps-offerta a { display: inline-flex; align-items: center; min-height: 44px; margin-block: -12px; }
  .ps-garanzie { flex-direction: column; align-items: flex-start; gap: 8px; margin-top: 32px; }
}

/* 8. Domande frequenti */
.ps-domande-griglia { display: grid; grid-template-columns: 420px minmax(0, 1fr); gap: 80px; align-items: start; }
.ps-domande-tutte { margin-top: 8px; }
.ps-domande-griglia .ps-faq-voce:first-child { border-top: 0; }
.ps-domande-griglia .ps-faq-voce:first-child > summary { padding-top: 0; }

@media (max-width: 1079px) {
  .ps-domande-griglia { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .ps-domande-griglia .ps-faq-voce:first-child > summary { padding-top: 24px; }
  .ps-domande-griglia .ps-faq-voce:first-child { border-top: 1px solid var(--ps-filetto-2); }
}

@media (max-width: 640px) {
  .ps-domande-griglia { gap: 16px; }
  .ps-domande-griglia .ps-faq-domanda { font-size: 16px; line-height: 1.4; }
  .ps-domande-griglia .ps-faq-voce > summary { padding: 18px 0; }
  .ps-domande-tutte { display: inline-flex; align-items: center; min-height: 44px; margin-top: 0; }
}

/* 9. Contatti */
.ps-contatti { padding-bottom: var(--ps-sezione); }
.ps-contatti-griglia { display: grid; grid-template-columns: minmax(0, 1fr) 600px; gap: 80px; align-items: start; }
.ps-contatti .ps-intro { gap: 18px; }
.ps-contatti-punti { margin-top: 6px; font: 500 17px/1.4 var(--ps-font-testo); }
.ps-contatti-punti a { color: inherit; }
.ps-contatti-punti a:hover { color: var(--ps-verde-scuro); }

.ps-modulo { display: flex; flex-direction: column; gap: 16px; padding: 40px; box-shadow: 0 1px 2px rgba(18, 56, 50, .06), 0 8px 24px rgba(18, 56, 50, .08); }
.ps-modulo-riga { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.ps-campo { display: flex; flex-direction: column; gap: 6px; }
.ps-campo label { font: 600 14px var(--ps-font-testo); }
.ps-campo input, .ps-campo select, .ps-campo textarea {
  width: 100%;
  min-height: 48px;
  padding: 0 16px;
  border: 0;
  border-radius: var(--ps-raggio-s);
  background: var(--ps-campo);
  color: var(--ps-testo);
  font: 400 16px/1.4 var(--ps-font-testo);
  transition: background-color var(--ps-transizione), box-shadow var(--ps-transizione);
}
.ps-campo textarea { min-height: 110px; padding: 12px 16px; resize: vertical; }
.ps-campo select {
  appearance: none;
  padding-right: 44px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234b544e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
  background-size: 18px;
  cursor: pointer;
}
.ps-campo input:focus, .ps-campo select:focus, .ps-campo textarea:focus { outline: none; background-color: #fff; box-shadow: var(--ps-focus); }
.ps-campo [aria-invalid="true"] { background-color: #fff; box-shadow: 0 0 0 2px var(--ps-errore); }
.ps-campo [aria-invalid="true"]:focus { box-shadow: 0 0 0 2px var(--ps-errore), 0 0 0 5px rgba(168, 67, 31, .18); }
.ps-campo-errore { font: 500 14px/1.4 var(--ps-font-testo); color: var(--ps-errore); }
.ps-campo-errore:empty { display: none; }

.ps-consenso { display: flex; align-items: flex-start; gap: 10px; font: 400 14px/1.5 var(--ps-font-testo); color: var(--ps-secondario); cursor: pointer; }
.ps-consenso input { flex: 0 0 auto; width: 20px; height: 20px; margin: 1px 0 0; accent-color: var(--ps-verde-testo); cursor: pointer; }
.ps-modulo-trappola { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

.ps-modulo-piede { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin-top: 6px; }
.ps-modulo-invia { min-height: 52px; padding: 0 28px; font-size: 16px; }
.ps-modulo-invia[disabled] { cursor: progress; opacity: .8; }
.ps-modulo-nota { flex: 1 1 220px; font-size: 14px; line-height: 1.5; color: var(--ps-secondario); }
.ps-modulo-nota--ok { color: var(--ps-verde-testo); font-weight: 600; }
.ps-modulo-nota--errore { color: var(--ps-errore); font-weight: 600; }

@media (max-width: 1199px) {
  .ps-contatti-griglia { grid-template-columns: minmax(0, 1fr) minmax(0, 560px); gap: 48px; }
}

@media (max-width: 1079px) {
  .ps-contatti-griglia { grid-template-columns: minmax(0, 1fr); gap: 32px; }
}

@media (max-width: 640px) {
  .ps-contatti-punti { font-size: 16px; }
  .ps-modulo { padding: 24px 16px; }
  .ps-modulo-riga { grid-template-columns: minmax(0, 1fr); }
  .ps-modulo-invia { width: 100%; }
}

/* 10. Fascia finale: il telefono sporge dal bordo alto */
.ps-finale { padding-top: var(--ps-sezione); padding-bottom: 40px; }
.ps-finale-card {
  position: relative;
  min-height: 420px;
  margin-inline: max(var(--ps-pannello-rientro), (100% - 1360px) / 2);
  padding: 88px 80px 64px;
}
.ps-finale-testo { display: flex; flex-direction: column; gap: 20px; max-width: 640px; }
.ps-finale-titolo { font: 800 48px/1.08 var(--ps-font-titoli); letter-spacing: -.03em; color: #fff; }
.ps-finale-testo p { font: 400 var(--ps-lead)/1.6 var(--ps-font-testo); color: var(--ps-su-scuro-testo); }
.ps-finale-testo .ps-azioni { margin-top: 6px; }
.ps-finale-telefono { position: absolute; right: 160px; top: -90px; width: 260px; height: 510px; overflow: hidden; border-radius: 44px 44px 0 0; }
.ps-finale-telefono .ps-telefono { box-shadow: 0 30px 60px rgba(0, 0, 0, .4); }

@media (max-width: 1199px) {
  .ps-finale-card { padding: 72px 48px 56px; }
  .ps-finale-telefono { right: 48px; }
  .ps-finale-testo { max-width: calc(100% - 320px); }
  .ps-finale-titolo { font-size: 40px; }
}

@media (max-width: 1079px) {
  .ps-finale-telefono { width: 220px; height: 450px; right: 40px; }
  .ps-finale-telefono .ps-telefono { --bordo: 9px; --raggio: 38px; }
  .ps-finale-testo { max-width: calc(100% - 260px); }
  .ps-finale-titolo { font-size: 34px; }
}

@media (max-width: 640px) {
  .ps-finale { padding-top: 60px; padding-bottom: 16px; }
  .ps-finale-card { min-height: 0; padding: 170px 20px 40px; }
  .ps-finale-testo { max-width: none; gap: 16px; text-align: center; }
  .ps-finale-titolo { font-size: 28px; line-height: 1.12; letter-spacing: -.025em; }
  .ps-finale-testo p { font-size: 16px; }
  .ps-finale-testo .ps-azioni { flex-direction: column; margin-top: 0; }
  .ps-finale-testo .ps-btn { width: 100%; }
  .ps-finale-scrivici { display: none; }
  .ps-finale-telefono { left: 50%; right: auto; top: -40px; width: 150px; height: 190px; margin-left: -75px; border-radius: 28px 28px 0 0; }
  .ps-finale-telefono .ps-telefono { --bordo: 7px; --raggio: 28px; }
}

/* ---------- Pagine tematiche: parti comuni ---------- */
/* Testo solo per i lettori di schermo */
.ps-nascosto {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

/* Fascia verde di chiusura (partial sito.partials.invito) */
.ps-invito-sezione { padding-bottom: var(--ps-sezione); }
.ps-invito-sezione .ps-pannello { margin-inline: 0; }

/* ---------- Pagina /funzionalita ---------- */
.ps-funz { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 64px; align-items: start; padding-bottom: 96px; }

.ps-indice { position: sticky; top: calc(var(--ps-header-altezza) + 32px); }
.ps-indice ul { position: relative; display: flex; flex-direction: column; gap: 4px; margin: 0; padding: 0; list-style: none; }
.ps-indice-voce {
  display: flex;
  align-items: center;
  min-height: 44px;
  padding: 10px 16px;
  border-radius: var(--ps-raggio-s);
  font: 600 16px/1.3 var(--ps-font-testo);
  color: var(--ps-secondario);
  transition: background-color var(--ps-transizione), color var(--ps-transizione), box-shadow var(--ps-transizione);
}
.ps-indice-voce:hover { color: var(--ps-verde-scuro); text-decoration: none; }
.ps-indice-voce.is-attiva { background: var(--ps-card); color: var(--ps-verde-testo); box-shadow: inset 3px 0 0 var(--ps-verde-testo); }
.ps-indice-voce.is-attiva:focus-visible { box-shadow: inset 3px 0 0 var(--ps-verde-testo), var(--ps-focus); }

.ps-funz-blocchi { display: flex; flex-direction: column; gap: 32px; }
.ps-funz-blocco { display: flex; flex-direction: column; gap: 28px; padding: 48px; scroll-margin-top: calc(var(--ps-header-altezza) + 32px); }
.ps-funz-testa { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; }
.ps-funz-intro { display: flex; flex-direction: column; gap: 14px; }
.ps-funz-titolo { font: 800 34px/1.12 var(--ps-font-titoli); letter-spacing: -.02em; }
.ps-funz-intro p { font: 400 17px/1.6 var(--ps-font-testo); color: var(--ps-secondario); }
ul.ps-funz-punti { padding-top: 4px; font: 500 16px/1.4 var(--ps-font-testo); }
.ps-funz-schermata img { width: 100%; border-radius: 12px; box-shadow: 0 0 0 1px rgba(18, 56, 50, .08); }

/* Schermate dell'app: telefoni su fondo teal, tagliati in basso */
.ps-funz-telefoni {
  display: flex;
  justify-content: center;
  gap: 32px;
  height: 440px;
  padding: 40px 24px 0;
  overflow: hidden;
  border-radius: 12px;
  background: var(--ps-teal-chiaro);
}
.ps-funz-telefoni .ps-telefono { --bordo: 8px; --raggio: 36px; flex: 0 1 210px; align-self: flex-start; }

@media (max-width: 1199px) {
  .ps-funz { gap: 40px; }
  .ps-funz-blocco { padding: 40px; }
  .ps-funz-testa { gap: 32px; }
  .ps-funz-titolo { font-size: 30px; }
}

/* Sotto i 1080px l'indice diventa una barra di voci scorrevole, fissa sotto l'header */
@media (max-width: 1079px) {
  .ps-funz { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .ps-indice {
    top: var(--ps-header-altezza);
    z-index: 10;
    margin-inline: calc(-1 * var(--ps-margine));
    padding-block: 10px;
    background: var(--ps-fondo);
    border-bottom: 1px solid var(--ps-filetto);
  }
  .ps-indice ul {
    flex-direction: row;
    gap: 8px;
    overflow-x: auto;
    padding: 2px var(--ps-margine);
    scrollbar-width: none;
    overscroll-behavior-x: contain;
  }
  .ps-indice ul::-webkit-scrollbar { display: none; }
  .ps-indice li { flex: 0 0 auto; }
  .ps-indice-voce { padding: 0 16px; border-radius: var(--ps-raggio-pillola); background: var(--ps-card); box-shadow: var(--ps-ombra-0); font-size: 15px; white-space: nowrap; }
  .ps-indice-voce:focus-visible { box-shadow: var(--ps-ombra-0), var(--ps-focus); }
  .ps-indice-voce.is-attiva { background: var(--ps-teal-chiaro); box-shadow: inset 0 0 0 1.5px var(--ps-verde-testo); }
  .ps-indice-voce.is-attiva:focus-visible { box-shadow: inset 0 0 0 1.5px var(--ps-verde-testo), var(--ps-focus); }
  .ps-funz-blocco { scroll-margin-top: calc(var(--ps-header-altezza) + 88px); }
}

@media (max-width: 640px) {
  .ps-funz { padding-bottom: 56px; }
  .ps-indice { padding-block: 8px; }
  .ps-funz-blocchi { gap: 16px; }
  .ps-funz-blocco { gap: 20px; padding: 24px 20px; }
  .ps-funz-testa { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .ps-funz-intro { gap: 10px; }
  .ps-funz-titolo { font-size: 24px; line-height: 1.15; }
  .ps-funz-intro p { font-size: 16px; line-height: 1.55; }
  ul.ps-funz-punti { gap: 8px; padding-top: 0; font-size: 15px; }
  .ps-funz-schermata img { border-radius: 8px; }
  .ps-funz-telefoni { gap: 12px; height: 300px; padding: 24px 12px 0; }
  .ps-funz-telefoni .ps-telefono { --bordo: 6px; --raggio: 26px; flex: 0 1 140px; }
  .ps-funz-telefoni .ps-telefono:nth-child(3) { display: none; }
}

/* ---------- Pagina /prezzi ---------- */
.ps-intestazione--prezzi { padding-bottom: 56px; }
.ps-pagina-prezzi .ps-prezzi { margin-top: 0; }
.ps-pagina-prezzi .ps-offerta { background: var(--ps-card); box-shadow: var(--ps-ombra-1); }

/* Tabella "Cosa è incluso" */
.ps-inclusi-scheda { margin-top: 56px; overflow: hidden; border-radius: var(--ps-raggio-m); background: var(--ps-card); box-shadow: var(--ps-ombra-1); }
.ps-inclusi { width: 100%; border-collapse: collapse; table-layout: fixed; font: 400 16px/1.4 var(--ps-font-testo); text-align: left; }
.ps-inclusi th, .ps-inclusi td { padding: 16px 12px; vertical-align: middle; }
.ps-inclusi th:first-child { width: 33.4%; padding-left: 32px; }
.ps-inclusi :is(th, td):last-child { padding-right: 32px; }
.ps-inclusi thead th { padding-block: 18px; background: var(--ps-teal-chiaro); font: 700 15px var(--ps-font-titoli); }
.ps-inclusi tbody tr { border-top: 1px solid #eeeee8; }
.ps-inclusi tbody th { font-weight: 400; }
.ps-inclusi td { color: var(--ps-verde-testo); }
/* Trattino delle voci non incluse: solo su mobile, dove accanto c'è il nome della durata */
.ps-inclusi-vuoto { display: none; }

@media (max-width: 1079px) {
  .ps-inclusi th:first-child { width: 28%; }
  .ps-inclusi th, .ps-inclusi td { padding-inline: 10px; }
  .ps-inclusi th:first-child { padding-left: 24px; }
  .ps-inclusi :is(th, td):last-child { padding-right: 24px; }
}

/* Su mobile le card restano complete (è la pagina dei prezzi) e la tabella si legge riga per riga */
@media (max-width: 640px) {
  .ps-intestazione--prezzi { padding-bottom: 32px; }
  .ps-pagina-prezzi .ps-prezzo { display: flex; align-items: stretch; gap: 12px; padding: 24px 20px; }
  .ps-pagina-prezzi .ps-prezzo--scelto { box-shadow: 0 0 0 2px var(--ps-verde-testo), var(--ps-ombra-1); }
  .ps-pagina-prezzi .ps-prezzo-testa { flex-direction: row; align-items: center; justify-content: space-between; }
  .ps-pagina-prezzi .ps-prezzo-importo { font-size: 40px; }
  .ps-pagina-prezzi .ps-prezzo-per { font-size: 15px; }
  .ps-pagina-prezzi .ps-prezzo-nota { display: block; min-height: 0; }
  .ps-pagina-prezzi ul.ps-prezzo-punti { display: flex; margin-top: 0; padding-top: 20px; }
  .ps-pagina-prezzi .ps-prezzo-cta { display: inline-flex; margin-top: 4px; }
  .ps-pagina-prezzi .ps-prezzi-cta-mobile { display: none; }

  .ps-inclusi-scheda { margin-top: 32px; }
  .ps-inclusi, .ps-inclusi thead, .ps-inclusi tbody, .ps-inclusi tr, .ps-inclusi th, .ps-inclusi td { display: block; }
  .ps-inclusi thead tr { display: block; padding: 16px 20px; background: var(--ps-teal-chiaro); }
  .ps-inclusi thead th { display: none; padding: 0; background: none; }
  .ps-inclusi thead th:first-child { display: block; width: auto; padding: 0; }
  .ps-inclusi tbody tr { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 6px 16px; padding: 16px 20px; }
  .ps-inclusi tbody th, .ps-inclusi tbody th:first-child { grid-column: 1 / -1; width: auto; padding: 0 0 4px; font-weight: 600; }
  .ps-inclusi td, .ps-inclusi td:last-child { display: flex; justify-content: space-between; gap: 8px; padding: 0; font-size: 15px; }
  .ps-inclusi td::before { content: attr(data-piano); color: var(--ps-secondario); }
  .ps-inclusi-vuoto { display: inline; color: var(--ps-secondario); }
}

/* ---------- Pagina /app-pazienti ---------- */
/* Hero verde: i telefoni escono dal bordo inferiore, tagliati dall'overflow */
.ps-app-hero { overflow: hidden; background: var(--ps-verde-scuro); color: #fff; }
.ps-app-hero-griglia { display: grid; grid-template-columns: minmax(0, 1fr) 560px; gap: 40px; align-items: end; padding-top: 56px; }
.ps-app-hero-testo { display: flex; flex-direction: column; gap: 20px; padding-bottom: 96px; }
.ps-app-hero .ps-eyebrow { color: var(--ps-verde-su-scuro); }
.ps-app-hero h1 { font: 800 var(--ps-h1-pagina)/1.06 var(--ps-font-titoli); letter-spacing: -.03em; }
.ps-app-hero .ps-lead { color: var(--ps-su-scuro-testo); }
.ps-app-hero-telefoni { position: relative; height: 520px; }
.ps-app-hero-telefono { position: absolute; width: 250px; box-shadow: 0 30px 60px rgba(0, 0, 0, .4); }
.ps-app-hero-telefono--primo { left: 20px; bottom: -120px; }
.ps-app-hero-telefono--secondo { right: 10px; bottom: -200px; }

/* Le 6 card delle funzioni */
.ps-app-funzioni { padding-top: 96px; }
.ps-app-funzioni-griglia { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.ps-app-funzione { display: flex; flex-direction: column; gap: 8px; padding: 28px; }
.ps-app-funzione-titolo { font: 800 19px/1.3 var(--ps-font-titoli); }
.ps-app-funzione p { color: var(--ps-secondario); }
.ps-app-funzioni + .ps-sezione { margin-top: 96px; }

/* Come si attiva in 3 passi */
.ps-app-attiva { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 64px; align-items: center; }
.ps-app-passi { display: flex; flex-direction: column; gap: 24px; margin-top: 40px; }
.ps-app-passo { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 16px; }
.ps-app-passo-numero { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: var(--ps-raggio-pillola); background: var(--ps-teal-chiaro); color: var(--ps-verde-testo); font: 800 17px var(--ps-font-titoli); }
.ps-app-passo > div { display: flex; flex-direction: column; gap: 4px; padding-top: 9px; }
.ps-app-passo-titolo { font: 800 19px/1.3 var(--ps-font-titoli); }
.ps-app-passo p { color: var(--ps-secondario); }
.ps-app-attiva-immagine img { width: 100%; border-radius: var(--ps-raggio-m); box-shadow: var(--ps-ombra-2); }

/* L'app del nutrizionista: tre telefoni su fondo teal, tagliati in basso */
.ps-app-nutri { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 80px; align-items: center; }
.ps-app-nutri-telefoni {
  display: flex;
  justify-content: center;
  gap: 20px;
  height: 520px;
  padding: 56px 32px 0;
  overflow: hidden;
  border-radius: var(--ps-raggio-l);
  background: var(--ps-teal-chiaro);
}
.ps-app-nutri-telefoni .ps-telefono { --bordo: 8px; --raggio: 34px; flex: 0 1 200px; align-self: flex-start; }
.ps-app-nutri-telefoni .ps-telefono:nth-child(2) { margin-top: 64px; }
.ps-app-nutri-testo { display: flex; flex-direction: column; gap: 22px; }
ul.ps-app-nutri-punti { gap: 12px; font: 500 16px/1.45 var(--ps-font-testo); }
.ps-app-nutri-nota { font-size: var(--ps-piccolo); color: var(--ps-secondario); }

/* Privacy: quattro voci con filetto, come le funzionalità della home */
.ps-intro--larga { max-width: 880px; }
.ps-app-privacy { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px 48px; margin-top: 56px; }
.ps-app-privacy-voce { display: flex; flex-direction: column; gap: 10px; padding-top: 18px; border-top: 2px solid var(--ps-testo); }
.ps-app-privacy-titolo { font: 800 19px/1.3 var(--ps-font-titoli); }
.ps-app-privacy-voce p { color: var(--ps-secondario); }

@media (max-width: 1199px) {
  .ps-app-hero-griglia { grid-template-columns: minmax(0, 1fr) 480px; }
  .ps-app-hero-telefono { width: 220px; }
  .ps-app-hero-telefono--primo { left: 0; }
  .ps-app-hero-telefono--secondo { right: 0; }
  .ps-app-attiva, .ps-app-nutri { gap: 48px; }
  .ps-app-privacy { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1079px) {
  .ps-app-hero-griglia { grid-template-columns: minmax(0, 1fr); gap: 32px; padding-top: 48px; }
  .ps-app-hero-testo { max-width: 680px; padding-bottom: 0; }
  .ps-app-hero-telefoni { width: 100%; max-width: 520px; height: 400px; margin-inline: auto; }
  .ps-app-hero-telefono--primo { left: 20px; bottom: -110px; }
  .ps-app-hero-telefono--secondo { right: 20px; bottom: -180px; }
  .ps-app-funzioni-griglia { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ps-app-attiva, .ps-app-nutri { grid-template-columns: minmax(0, 1fr); }
  .ps-app-attiva-immagine { max-width: 760px; }
  .ps-app-nutri-telefoni { order: 2; width: 100%; max-width: 640px; height: 480px; margin-inline: auto; }
}

@media (max-width: 640px) {
  .ps-app-hero-griglia { gap: 24px; padding-top: 32px; }
  .ps-app-hero-testo { gap: 14px; }
  .ps-app-hero .ps-lead { font-size: 16px; line-height: 1.55; }
  .ps-app-hero .ps-btn { width: 100%; }
  .ps-app-hero-telefoni { max-width: 358px; height: 300px; }
  .ps-app-hero-telefono { --bordo: 7px; --raggio: 30px; width: 168px; box-shadow: 0 20px 40px rgba(0, 0, 0, .35); }
  .ps-app-hero-telefono--primo { left: 4px; bottom: -80px; }
  .ps-app-hero-telefono--secondo { right: 4px; bottom: -140px; }
  .ps-app-funzioni { padding-top: 48px; }
  .ps-app-funzioni + .ps-sezione { margin-top: 56px; }
  .ps-app-funzioni-griglia { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .ps-app-funzione { padding: 20px; }
  .ps-app-funzione-titolo, .ps-app-passo-titolo, .ps-app-privacy-titolo { font-size: 17px; }
  .ps-app-funzione p, .ps-app-passo p, .ps-app-privacy-voce p { font-size: 15px; line-height: 1.5; }
  .ps-app-attiva, .ps-app-nutri { gap: 32px; }
  .ps-app-passi { gap: 20px; margin-top: 28px; }
  .ps-app-passo { grid-template-columns: 40px minmax(0, 1fr); gap: 14px; }
  .ps-app-passo-numero { width: 40px; height: 40px; font-size: 16px; }
  .ps-app-passo > div { padding-top: 8px; }
  .ps-app-attiva-immagine img { border-radius: 12px; }
  .ps-app-nutri-testo { gap: 16px; }
  .ps-app-nutri-testo .ps-lead { font-size: 16px; }
  ul.ps-app-nutri-punti { gap: 10px; font-size: 15px; }
  .ps-app-nutri-telefoni { gap: 12px; height: 340px; padding: 32px 12px 0; }
  .ps-app-nutri-telefoni .ps-telefono { --bordo: 6px; --raggio: 26px; flex: 0 1 150px; }
  .ps-app-nutri-telefoni .ps-telefono:nth-child(2) { margin-top: 32px; }
  .ps-app-nutri-telefoni .ps-telefono:nth-child(3) { display: none; }
  .ps-app-privacy { grid-template-columns: minmax(0, 1fr); gap: 24px; margin-top: 32px; }
  .ps-app-privacy-voce { gap: 8px; padding-top: 14px; }
}

/* ---------- Pagina /prodiets-o-excel ---------- */
.ps-intestazione--excel { padding-bottom: 48px; }
.ps-intestazione--excel .ps-intestazione-testo { max-width: 980px; }

/* I pregi di Excel, detti subito */
.ps-excel-pregi { padding-bottom: 40px; }
.ps-excel-pregi-titolo { margin-bottom: 16px; font: 800 19px var(--ps-font-titoli); }
.ps-excel-pregi-elenco { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.ps-excel-pregi-elenco li { display: flex; flex-direction: column; gap: 6px; padding: 22px 24px; border-radius: var(--ps-raggio-m); background: var(--ps-card); box-shadow: var(--ps-ombra-0); }
.ps-excel-pregio { font: 700 17px var(--ps-font-titoli); }
.ps-excel-pregi-elenco p { font-size: var(--ps-piccolo); line-height: 1.5; color: var(--ps-secondario); }

/* Tabella attività per attività */
.ps-excel-confronto { padding-bottom: 64px; }
.ps-confronto-scheda { overflow: hidden; border-radius: var(--ps-raggio-m); background: var(--ps-card); box-shadow: var(--ps-ombra-1); }
.ps-confronto { width: 100%; border-collapse: collapse; table-layout: fixed; font: 400 16px/1.5 var(--ps-font-testo); text-align: left; }
.ps-confronto th, .ps-confronto td { padding: 20px 12px; vertical-align: top; }
.ps-confronto th:first-child { width: 304px; padding-left: 32px; }
.ps-confronto :is(th, td):last-child { padding-right: 32px; }
.ps-confronto thead th { background: var(--ps-fondo); font: 700 16px var(--ps-font-titoli); }
.ps-confronto thead th:nth-child(2) { color: var(--ps-secondario); }
.ps-confronto thead .ps-confronto-noi { color: var(--ps-verde-testo); }
.ps-confronto tbody tr { border-top: 1px solid #eeeee8; }
.ps-confronto tbody th { font: 700 16px/1.5 var(--ps-font-titoli); }
.ps-confronto tbody td:nth-of-type(1) { color: var(--ps-secondario); }

/* Importazione gratuita */
.ps-excel-importa-sezione { padding-bottom: var(--ps-sezione); }
.ps-excel-importa { display: flex; align-items: center; gap: 24px; padding: 36px 40px; }
.ps-excel-importa .ps-offerta-icona { background: var(--ps-teal-chiaro); }
.ps-excel-importa-testo { display: flex; flex: 1 1 auto; flex-direction: column; gap: 8px; }
.ps-excel-importa-titolo { font: 800 26px/1.2 var(--ps-font-titoli); letter-spacing: -.015em; }
.ps-excel-importa-testo p:last-child { max-width: 720px; color: var(--ps-secondario); }
.ps-excel-importa .ps-btn { flex: 0 0 auto; }

@media (max-width: 1079px) {
  .ps-excel-pregi-elenco { gap: 12px; }
  .ps-confronto th:first-child { width: 200px; padding-left: 24px; }
  .ps-confronto :is(th, td):last-child { padding-right: 24px; }
  .ps-excel-importa { flex-wrap: wrap; padding: 32px; }
  .ps-excel-importa-testo { flex-basis: calc(100% - 72px); }
  .ps-excel-importa .ps-btn { margin-left: 72px; }
}

/* Su mobile la tabella si legge riga per riga, con il nome della colonna sopra ogni cella */
@media (max-width: 640px) {
  .ps-intestazione--excel { padding-bottom: 32px; }
  .ps-excel-pregi { padding-bottom: 24px; }
  .ps-excel-pregi-titolo { margin-bottom: 12px; font-size: 17px; }
  .ps-excel-pregi-elenco { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .ps-excel-pregi-elenco li { padding: 16px 20px; }
  .ps-excel-confronto { padding-bottom: 40px; }
  .ps-confronto, .ps-confronto thead, .ps-confronto tbody, .ps-confronto tr, .ps-confronto th, .ps-confronto td { display: block; }
  .ps-confronto thead tr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .ps-confronto tbody tr { padding: 18px 20px; }
  .ps-confronto tbody tr:first-child { border-top: 0; }
  .ps-confronto tbody th, .ps-confronto tbody th:first-child { width: auto; padding: 0 0 10px; font-size: 17px; }
  .ps-confronto td, .ps-confronto td:last-child { display: flex; flex-direction: column; gap: 2px; padding: 0; font-size: 15px; }
  .ps-confronto td + td { margin-top: 10px; }
  .ps-confronto td::before { content: attr(data-colonna); content: attr(data-colonna) / ''; font: 700 12px var(--ps-font-titoli); letter-spacing: .08em; text-transform: uppercase; color: var(--ps-secondario); }
  .ps-confronto td + td::before { color: var(--ps-verde-testo); }
  .ps-excel-importa { flex-direction: column; align-items: flex-start; gap: 16px; padding: 24px 20px; }
  .ps-excel-importa-testo { flex-basis: auto; }
  .ps-excel-importa-titolo { font-size: 22px; }
  .ps-excel-importa .ps-btn { width: 100%; margin-left: 0; }
}

/* ---------- Pagina /tour ---------- */
.ps-intestazione--tour { padding-bottom: 48px; }
.ps-tour-griglia-sezione { padding-bottom: 96px; }
.ps-tour-griglia { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.ps-tour-griglia li { display: flex; }
.ps-tour-card {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  overflow: hidden;
  color: var(--ps-testo);
  transition: box-shadow var(--ps-transizione), transform var(--ps-transizione);
}
.ps-tour-card:hover { color: var(--ps-testo); text-decoration: none; box-shadow: var(--ps-ombra-2); transform: translateY(-2px); }
.ps-tour-card:focus-visible { box-shadow: var(--ps-ombra-1), var(--ps-focus); }
.ps-tour-card-immagine { height: 230px; overflow: hidden; background: var(--ps-teal-chiaro); }
.ps-tour-card-immagine img { width: 100%; }
/* Moduli App: due telefoni su fondo teal, tagliati in basso */
.ps-tour-card-immagine--telefoni { display: flex; justify-content: center; gap: 16px; padding: 24px 24px 0; }
.ps-tour-card-immagine--telefoni .ps-telefono { --bordo: 6px; --raggio: 26px; flex: 0 1 132px; align-self: flex-start; box-shadow: 0 16px 32px rgba(18, 56, 50, .2); }
.ps-tour-card-testo { display: flex; flex-direction: column; gap: 6px; padding: 22px 24px; }
.ps-tour-card-titolo { font: 800 19px/1.3 var(--ps-font-titoli); }
.ps-tour-card:hover .ps-tour-card-titolo { color: var(--ps-verde-testo); }
.ps-tour-card-testo p { font-size: var(--ps-piccolo); line-height: 1.5; color: var(--ps-secondario); }

/* ---------- Pagine /tour/{modulo} ---------- */
.ps-intestazione--modulo { padding-bottom: 48px; }
.ps-tour-pagina-schermata img { width: 100%; border-radius: var(--ps-raggio-m); box-shadow: var(--ps-ombra-2); }
.ps-tour-pagina-telefoni {
  display: flex;
  justify-content: center;
  gap: 40px;
  padding: 56px 40px;
  border-radius: var(--ps-raggio-l);
  background: var(--ps-teal-chiaro);
}
.ps-tour-pagina-telefoni .ps-telefono { flex: 0 1 280px; }
.ps-tour-pagina-telefoni:focus-visible { box-shadow: var(--ps-focus); }

.ps-tour-pagina-dettagli { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 64px; align-items: start; padding-block: 72px; }
.ps-tour-pagina-testo { display: flex; flex-direction: column; gap: 14px; max-width: 760px; }
.ps-tour-pagina-titolo { font: 800 var(--ps-h3)/1.25 var(--ps-font-titoli); }
.ps-tour-pagina-testo p { font: 400 var(--ps-lead)/1.6 var(--ps-font-testo); }
.ps-tour-pagina-punti { display: flex; flex-direction: column; gap: 18px; padding: 32px; }
.ps-tour-pagina-punti .ps-spunte { gap: 12px; font: 500 17px/1.4 var(--ps-font-testo); }

.ps-tour-navigazione { display: flex; flex-direction: column; align-items: center; gap: 28px; padding-bottom: 72px; }
.ps-tour-vicini { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; width: 100%; }
.ps-tour-vicino {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-height: 44px;
  padding: 24px 28px;
  color: var(--ps-testo);
  transition: box-shadow var(--ps-transizione);
}
.ps-tour-vicino--succ { align-items: flex-end; text-align: right; }
.ps-tour-vicino:hover { color: var(--ps-testo); text-decoration: none; box-shadow: var(--ps-ombra-2); }
.ps-tour-vicino:focus-visible { box-shadow: var(--ps-ombra-1), var(--ps-focus); }
.ps-tour-vicino-etichetta { font: 600 15px var(--ps-font-testo); color: var(--ps-secondario); }
.ps-tour-vicino-titolo { font: 800 21px/1.25 var(--ps-font-titoli); }
.ps-tour-vicino:hover .ps-tour-vicino-titolo { color: var(--ps-verde-testo); }
.ps-tour-tutti { display: inline-flex; align-items: center; min-height: 44px; }

@media (max-width: 1079px) {
  .ps-tour-griglia { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
  .ps-tour-pagina-dettagli { grid-template-columns: minmax(0, 1fr); gap: 32px; padding-block: 56px; }
  .ps-tour-pagina-telefoni { gap: 24px; padding: 40px 24px; }
}

@media (max-width: 640px) {
  .ps-intestazione--tour, .ps-intestazione--modulo { padding-bottom: 32px; }
  .ps-tour-griglia-sezione { padding-bottom: 56px; }
  .ps-tour-griglia { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .ps-tour-card-immagine { height: 200px; }
  .ps-tour-card-testo { padding: 18px 20px; }
  .ps-tour-card-titolo { font-size: 18px; }
  .ps-tour-pagina-schermata img { border-radius: 8px; box-shadow: var(--ps-ombra-1); }
  /* Su mobile i telefoni scorrono di lato, uno per schermata */
  .ps-tour-pagina-telefoni {
    justify-content: flex-start;
    gap: 16px;
    margin-inline: calc(-1 * var(--ps-margine));
    padding: 32px var(--ps-margine);
    overflow-x: auto;
    border-radius: 0;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    overscroll-behavior-x: contain;
  }
  .ps-tour-pagina-telefoni::-webkit-scrollbar { display: none; }
  .ps-tour-pagina-telefoni .ps-telefono { --bordo: 8px; --raggio: 36px; flex: 0 0 min(240px, 72vw); scroll-snap-align: center; }
  .ps-tour-pagina-dettagli { gap: 24px; padding-block: 40px; }
  .ps-tour-pagina-testo p { font-size: 17px; }
  .ps-tour-pagina-punti { gap: 14px; padding: 24px 20px; }
  .ps-tour-pagina-punti .ps-spunte { font-size: 16px; }
  .ps-tour-navigazione { gap: 16px; }
  .ps-tour-vicini { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .ps-tour-vicino, .ps-tour-vicino--succ { align-items: flex-start; padding: 18px 20px; text-align: left; }
  .ps-tour-vicino-titolo { font-size: 18px; }
}

/* ---------- Movimento ridotto ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    transition-duration: 0s !important;
    animation-duration: 0s !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
  }
}
