
:root{
  --bg:#ffffff;
  --bg2:#f7f9fd;
  --text:#1b1f2a;
  --muted:#55606f;
  --brand:#08619f;
  --accent:#ff8b17;
  --card:#ffffff;
  --border:rgba(12, 24, 45, .10);
  --shadow:0 12px 30px rgba(12,24,45,.08);
  --radius:18px;
  --container:1120px;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: Nunito, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.65;
  text-rendering:optimizeLegibility;
}

img{max-width:100%; height:auto; display:block}
a{color:inherit}
.container{width:min(var(--container), calc(100% - 2rem)); margin-inline:auto}
.center{text-align:center}
.skip{position:absolute; left:-9999px; top:auto}
.skip:focus{left:1rem; top:1rem; background:#fff; padding:.5rem .75rem; border-radius:10px; box-shadow:var(--shadow); z-index:999}

.header{
  position:sticky; top:0; z-index:50;
  background:rgba(255,255,255,.92);
  backdrop-filter:saturate(140%) blur(8px);
  border-bottom:1px solid var(--border);
}
.header__inner{display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.75rem 0}
.brand{display:flex; align-items:center; gap:.6rem; text-decoration:none}
.nav{display:flex; align-items:center; gap:1rem; flex-wrap:wrap; justify-content:flex-end}
.nav a{font-family:Poppins, sans-serif; font-weight:600; text-decoration:none; color:rgba(27,31,42,.86); padding:.4rem .55rem; border-radius:10px}
.nav a:hover{color:var(--brand)}

.btn{
  display:inline-flex; align-items:center; justify-content:center;
  gap:.5rem;
  padding:.95rem 1.15rem;
  border-radius:999px;
  text-decoration:none;
  font-family:Poppins, sans-serif;
  font-weight:600;
  background:var(--accent);
  color:#fff;
  border:1px solid rgba(0,0,0,0);
}
.btn--small{padding:.6rem .9rem; font-size:.92rem}
.btn--ghost{
  background:transparent;
  color:var(--brand);
  border:1px solid rgba(8,97,159,.25);
}
.btn:focus{outline:3px solid rgba(8,97,159,.25); outline-offset:2px}

.section{padding:72px 0}
.section--tight{padding:52px 0}
.section--alt{background:var(--bg2); border-top:1px solid var(--border); border-bottom:1px solid var(--border)}

.kicker{
  margin:0 0 .75rem;
  font-family:Poppins, sans-serif;
  font-weight:600;
  letter-spacing:.02em;
  color:rgba(8,97,159,.95);
}

h1,h2,h3{
  font-family:Poppins, sans-serif;
  line-height:1.15;
  margin:0 0 .75rem;
}
h1{font-size:clamp(2rem, 2.6vw + 1.2rem, 3.25rem)}
h2{font-size:clamp(1.6rem, 1.4vw + 1.05rem, 2.25rem)}
h3{font-size:1.15rem}

.lead{font-size:1.06rem; color:var(--muted); margin:0 0 1.25rem}
.muted{color:rgba(255,255,255,.78); margin:.2rem 0}

.hero{padding:70px 0 56px}
.hero__grid{
  display:grid;
  grid-template-columns: 1.05fr .95fr;
  gap:2.25rem;
  align-items:center;
}
.hero__cta{display:flex; flex-wrap:wrap; gap:.75rem; margin:1rem 0 1rem}
.checks{list-style:none; padding:0; margin:1.1rem 0 0; display:grid; gap:.35rem; color:var(--muted)}
.checks li{display:flex; gap:.55rem; align-items:flex-start}
.checks li::before{content:"✅"; line-height:1.2}

.hero__visual{
  position:relative;
  min-height:520px;
}
.visual-card{
  border-radius:var(--radius);
  overflow:hidden;
  background:var(--card);
  box-shadow:var(--shadow);
  border:1px solid var(--border);
}
.visual-card--bg{
  position:absolute; inset:0;
  transform:translateY(0);
}
.visual-card--bg img{width:100%; height:100%; object-fit:cover}
.visual-phone{
  position:absolute;
  left:10%;
  bottom:-18px;
  width:min(310px, 58%);
  filter:drop-shadow(0 20px 30px rgba(12,24,45,.18));
}
.visual-stack{
  position:absolute;
  right:-4%;
  top:36%;
  display:grid;
  gap:.8rem;
  width:min(340px, 62%);
}
.visual-stack img{
  border-radius:16px;
  box-shadow:0 12px 24px rgba(12,24,45,.10);
  border:1px solid var(--border);
  background:#fff;
}

.split{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:2.25rem;
  align-items:center;
}
.split--reverse{grid-template-columns: 1fr 1fr}
.split__media img{
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  border:1px solid var(--border);
}
.bullets{margin:1rem 0 1.25rem; padding-left:1.15rem; color:var(--muted)}
.bullets li{margin:.35rem 0}

.cards{
  margin-top:1.75rem;
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:1.15rem;
}
.card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:1.25rem 1.1rem;
  text-align:left;
}
.card p{margin:.35rem 0 0; color:var(--muted)}
.icon{font-size:1.65rem; margin-bottom:.6rem}

.tri{
  margin-top:2rem;
  display:grid;
  grid-template-columns: 1fr .9fr 1fr;
  gap:2rem;
  align-items:start;
}
.tri__center{
  display:flex;
  justify-content:center;
  align-items:center;
}
.tri__center img{
  width:min(330px, 100%);
  filter:drop-shadow(0 20px 30px rgba(12,24,45,.14));
}
.feature{
  background:#fff;
  border:1px solid var(--border);
  border-radius:16px;
  padding:1rem;
  box-shadow:0 10px 24px rgba(12,24,45,.06);
  margin-bottom:1rem;
}
.feature p{margin:.35rem 0 0; color:var(--muted)}

.stats{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap:1rem;
}
.stat{
  background:#fff;
  border:1px solid var(--border);
  border-radius:16px;
  padding:1.1rem 1rem;
  box-shadow:0 10px 24px rgba(12,24,45,.06);
  text-align:center;
}
.stat__n{font-family:Poppins, sans-serif; font-weight:700; font-size:1.55rem; color:var(--brand)}
.stat__l{color:var(--muted)}

.quotes{display:grid; gap:.9rem; margin:1rem 0 1.25rem}
.quote{
  margin:0;
  background:#fff;
  border:1px solid var(--border);
  border-radius:16px;
  padding:1rem;
  box-shadow:0 10px 24px rgba(12,24,45,.06);
}
.quote blockquote{margin:0; color:var(--muted)}
.quote figcaption{margin-top:.6rem; font-family:Poppins, sans-serif; font-weight:600}

.logos{
  margin-top:2rem;
  display:grid;
  grid-template-columns: repeat(6, 1fr);
  gap:1rem;
  align-items:center;
  opacity:.9;
}
.logos img{max-height:44px; margin-inline:auto; filter:grayscale(100%); opacity:.9}

.faq{
  margin-top:1.1rem;
  display:grid;
  gap:.75rem;
}
details{
  background:#fff;
  border:1px solid var(--border);
  border-radius:16px;
  padding:.85rem 1rem;
  box-shadow:0 10px 24px rgba(12,24,45,.06);
}
summary{
  cursor:pointer;
  font-family:Poppins, sans-serif;
  font-weight:600;
}
.faq__body{padding-top:.6rem; color:var(--muted)}
.cta-bottom{margin-top:1.6rem}

.footer{
  background:linear-gradient(180deg, #0a3f67, #062b46);
  color:#fff;
  padding:46px 0;
}
.footer__inner{display:grid; gap:.75rem; justify-items:center; text-align:center}
.footer a{color:rgba(255,255,255,.88)}

@media (max-width: 980px){
  .nav{display:none}
  .hero__grid{grid-template-columns:1fr; gap:1.6rem}
  .hero__visual{min-height:460px}
  .split{grid-template-columns:1fr}
  .cards{grid-template-columns:1fr; max-width:760px; margin-inline:auto}
  .tri{grid-template-columns:1fr; gap:1rem}
  .tri__center{order:-1}
  .stats{grid-template-columns:repeat(2,1fr)}
  .logos{grid-template-columns:repeat(3,1fr)}
}
/* === HERO FORM (no effetti) === */
.hero__form{
  margin-top:1.15rem;
}
.hero__formTitle{
  font-family:Poppins, sans-serif;
  font-weight:700;
  font-size:1.05rem;
  margin:0 0 .75rem;
}
.leadform{
  display:block;
}
.leadform__grid{
  display:grid;
  grid-template-columns:1fr;
  gap:.85rem;
}
@media (min-width: 560px){
  .leadform__grid{ grid-template-columns:1fr 1fr; }
}
.field{ margin:0 0 .85rem; }
.field:last-child{ margin-bottom:0; }
.field__label{
  display:block;
  font-size:.85rem;
  color:var(--muted);
  margin:0 0 .35rem;
}
.field__control{
  width:100%;
  padding:.72rem .85rem;
  border:1px solid var(--border);
  border-radius:14px;
  background:var(--bg);
  color:var(--text);
  font:inherit;
}
.field__control:focus{
  outline:none;
  border-color:rgba(8,97,159,.55);
  box-shadow:0 0 0 4px rgba(8,97,159,.12);
}
.btn{ cursor:pointer; }
.btn--full{ width:100%; }

/* ===== Form in fondo pagina: centrato e con larghezza max ===== */
#contatto .hero__form{
  max-width: 520px;      /* scegli 480-600 se vuoi più stretto/largo */
  margin: 0 auto;        /* centra */
  width: 100%;
}

#contatto{
  text-align: center;    /* opzionale: centra eventuali titoli/testo */
}

#contatto .hero__form{
  text-align: left;      /* mantiene label/campi allineati bene */
}

/* =========================================================
   SEZIONI – contrasto visivo coerente e stabile
   ========================================================= */

/* Colore base di tutte le sezioni */
.section{
  background: #FFFFFF; /* azzurro chiaro */
}

/* Sezioni alternate (più contrasto) */
.section.section--alt{
  background: #EEEEEE; /* azzurro più marcato */
}
.section + .section{
  border-top: 1px solid rgba(0,0,0,.05);
}

/* =========================================================
   PRIVACY FORM
   ========================================================= */
.privacy-form{
  font-size: .85rem;
  color: var(--muted);
  margin: .75rem 0 0;
}

.privacy-form a{
  color: var(--brand);
  text-decoration: underline;
  text-decoration-color: rgba(10,102,163,.45);
}

.privacy-form a:hover{
  text-decoration-color: rgba(10,102,163,.85);
}

.privacy-form label{
  display: flex;
  gap: .5rem;
  align-items: flex-start;
  line-height: 1.35;
  cursor: pointer;
}

.privacy-form input[type="checkbox"]{
  margin-top: .2rem;
}
/* =========================
   Riquadri: Piccole/Medie/Grandi
   ========================= */

.size-cards{
  margin-top: 1.75rem;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.15rem;
}

/* riuso .card già presente, aggiungo solo dettagli */
.size-card{
  text-align: left;
  padding: 1.25rem 1.1rem;
  position: relative;
}

.size-card__top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: .75rem;
  margin-bottom: .35rem;
}

.size-card .icon{
  margin: 0;
  font-size: 1.75rem;
}

.size-card__tag{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  padding: .35rem .6rem;
  border-radius: 999px;
  font-family: Poppins, sans-serif;
  font-weight: 600;
  font-size: .82rem;
  color: rgba(8,97,159,.95);
  background: rgba(8,97,159,.10);
  border: 1px solid rgba(8,97,159,.18);
  white-space: nowrap;
}

.size-card__tag--accent{
  color: #fff;
  background: var(--accent);
  border-color: rgba(0,0,0,0);
}

.size-card__list{
  margin: .75rem 0 0;
  padding-left: 1.05rem;
  color: var(--muted);
}

.size-card__list li{
  margin: .35rem 0;
}

.size-card__note{
  margin: .85rem 0 0;
  color: var(--muted);
  font-size: .95rem;
}

/* Evidenzia la card “Medie imprese” (coerente con il brand) */
.size-card--featured{
  border-color: rgba(255,139,23,.35);
  box-shadow: 0 16px 36px rgba(12,24,45,.10);
}

/* Hover leggero (coerente con lo stile della pagina) */
.size-card:hover{
  transform: translateY(-2px);
  transition: transform .18s ease, box-shadow .18s ease;
}

.size-card{
  transition: transform .18s ease, box-shadow .18s ease;
}

/* Responsive */
@media (max-width: 980px){
  .size-cards{
    grid-template-columns: 1fr;
    max-width: 760px;
    margin-inline: auto;
  }
}
/* Evidenziazione frase finale "Perfetto per..." */

.size-card__note--highlight{
  margin-top: .9rem;
  padding-left: .75rem;
  border-left: 3px solid var(--accent);
  font-weight: 600;
  color: var(--text);
  line-height: 1.45;
}
/* =========================
   Utility comuni
   ========================= */

.utility-grid{
  margin-top: 1.5rem;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}

.utility-item{
  background: #fff;
  border-radius: 14px;
  padding: 1rem .9rem;
  font-weight: 500;
  color: var(--text);
  box-shadow: 0 10px 24px rgba(12,24,45,.06);
  border: 1px solid rgba(0,0,0,.04);
  text-align: left;
}

/* hover coerente */
.utility-item:hover{
  transform: translateY(-2px);
  transition: transform .18s ease, box-shadow .18s ease;
}

/* mobile */
@media (max-width: 980px){
  .utility-grid{
    grid-template-columns: 1fr;
    max-width: 760px;
    margin-inline: auto;
  }
}

/* =========================
   Hero mini trust bar
   ========================= */
.hero__trust{
  display:flex;
  flex-wrap:wrap;
  gap:1.5rem;
  margin-top:1.25rem;
  padding-top:1rem;
  border-top:1px solid var(--border);
}
.hero__trustItem{
  display:flex;
  flex-direction:column;
  line-height:1.1;
}
.hero__trustItem strong{
  font-family:Poppins, sans-serif;
  font-weight:700;
  font-size:1.4rem;
  color:var(--brand);
}
.hero__trustItem span{
  font-size:.82rem;
  color:var(--muted);
  margin-top:.15rem;
}
@media (max-width: 480px){
  .hero__trust{ gap:1rem; }
  .hero__trustItem strong{ font-size:1.2rem; }
}
