/* ============================================================
   VINCASOFT — style.css  v6.1 — Maggio 2026
   Font: Plus Jakarta Sans (titoli) + DM Sans (corpo)
   Scala: H1 68px · H2 52px · H3 32px · Body 20px
   Layout: PAGE SHELL 1440px · contenuto 1280px · padding 72px
   OGNI sezione usa .container — nulla va a tutta larghezza.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@600;700;800&family=DM+Sans:wght@400;500&display=swap');


/* ============================================================
   SEZIONE DESKTOP — ELEMENTI COMUNI
   ============================================================ */

/* FONT — @import garantisce il caricamento anche su http:// locale */

/* ============================================================
   VARIABILI
   ============================================================ */
:root {
  --vp:     #1FA0D0;
  --vd:     #167A99;
  --vl:     #5FC4E6;
  --vs:     #E6F4FA;
  --text:   #0F172A;
  --muted:  #64748B;
  --border: #E2E8F0;
  --bg:     #F8FAFC;
  --white:  #FFFFFF;

  --f-title: 'Plus Jakarta Sans', sans-serif;
  --f-body:  'DM Sans', sans-serif;

  /* Corpo centrale stile Cisco */
  --shell-w: 1280px;
  --max-w:   1280px;
  --pad-x:   72px;

  --page-gutter-bg: #F3F6F8;
}

/* ============================================================
   RESET & BASE
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html  { scroll-behavior: smooth; }
body  {
  font-family: var(--f-body);
  font-size: 20px;
  line-height: 1.65;
  color: var(--text);
  background: var(--page-gutter-bg);
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a   { color: inherit; text-decoration: none; }
ul  { list-style: none; }

/* ============================================================
   PAGE SHELL — corpo centrale con fasce laterali neutre
   ============================================================ */
.page-shell {
  width: min(100%, var(--shell-w));
  margin: 0 auto;
  background: var(--white);
  overflow: hidden;
  box-shadow: 0 0 32px rgba(15, 23, 42, 0.05);
}

/* Le sezioni principali restano sempre dentro la page-shell */
.hero,
.cta-section,
footer {
  width: 100%;
  max-width: 100%;
}

/* ============================================================
   CONTAINER — corpo fisso con spazio ai lati
   TUTTE le sezioni usano questo contenitore.
   ============================================================ */
.container {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 var(--pad-x);
}

/* ============================================================
   TIPOGRAFIA — scala approvata
   ============================================================ */
h1 { font-family: var(--f-title); font-size: 68px; font-weight: 800; line-height: 1.04; letter-spacing: -.03em; }
h2 { font-family: var(--f-title); font-size: 52px; font-weight: 700; line-height: 1.08; letter-spacing: -.025em; }
h3 { font-family: var(--f-title); font-size: 32px; font-weight: 600; line-height: 1.15; letter-spacing: -.02em; }

/* ============================================================
   COMPONENTI CONDIVISI
   ============================================================ */
.eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--f-body); font-size: 12px; font-weight: 700;
  letter-spacing: .12em; text-transform: uppercase;
  color: var(--vp); margin-bottom: 18px;
}
.ew-dot { width: 5px; height: 5px; border-radius: 50%; background: var(--vp); flex-shrink: 0; }

.btn-primary {
  display: inline-flex; align-items: center; gap: 9px;
  background: var(--vp); color: white;
  padding: 16px 28px; border-radius: 8px;
  font-family: var(--f-title); font-size: 17px; font-weight: 600;
  border: none; cursor: pointer; transition: background .2s;
}
.btn-primary:hover { background: var(--vd); color: white; }

.divider { width: 40px; height: 3px; background: var(--vp); margin: 0 auto 28px; border-radius: 2px; }

/* ============================================================
   NAVBAR — sticky · logo sx · menu tutto a destra
   ============================================================ */
.nav {
  background: var(--white);
  border-bottom: 1px solid var(--border);
  position: sticky; top: 0; z-index: 1000;
}
.nav-inner {
  display: flex; align-items: center;
  justify-content: space-between;
  height: 90px;
}
/* Logo grande e leggibile */
.logo img { height: 180px; width: auto; display: block; }

/* Tutti i link menu a destra */
.nav-links {
  display: flex; gap: 2px; align-items: center;
  margin-left: auto; /* spinge tutto a destra */
}
.nav-links a {
  font-family: var(--f-body); font-size: 15px; font-weight: 500;
  color: var(--muted); transition: color .2s; white-space: nowrap;
  padding: 6px 6px;
}
.nav-links a:hover { color: var(--vp); }
.nav-cta {
  background: var(--vp) !important; color: white !important;
  padding: 11px 22px; border-radius: 8px;
  font-weight: 600 !important; transition: background .2s !important;
}
.nav-cta:hover { background: var(--vd) !important; }

/* ============================================================
   HERO — standard unico
   Tutte le hero principali hanno la stessa altezza.
   Le singole pagine modificano solo overlay, testo e posizione immagine.
   ============================================================ */
.hero {
  position: relative;
  height: 620px;
  min-height: 620px;
  display: flex;
  align-items: center;
  overflow: hidden;
}

.hero-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
}

.hero-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(
    to right,
    rgba(15, 23, 42, 0.65) 0%,
    rgba(15, 23, 42, 0.4) 30%,
    rgba(15, 23, 42, 0.15) 55%,
    rgba(15, 23, 42, 0) 75%
  );
}

.hero .container {
  position: relative;
  z-index: 2;
  padding-top: 0;
  padding-bottom: 0;
  padding-left: 24px;
}

.hero-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}

.hero h1 {
  color: white;
  margin-bottom: 22px;
}

.hero h1 em {
  font-style: italic;
  color: var(--vl);
}

.hero-sub {
  font-family: var(--f-body);
  font-size: 20px;
  color: rgba(255, 255, 255, .85);
  line-height: 1.5;
  margin-bottom: 36px;
  max-width: 520px;
}

/* ============================================================
   CTA FINALE — background immagine full, colori originali
   ============================================================ */

.cta-section {
  position: relative;
  padding: 96px 0;
  background: var(--vs);
  overflow: hidden;
  min-height: 360px;
}

/* Immagine di background full */
.cta-section::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("../img/sections/ai_test.png") no-repeat right center;
  background-size: cover;
  opacity: 1;
  z-index: 0;
}

/* Contenuto sopra l'immagine */
.cta-inner {
  position: relative;
  z-index: 1;
  text-align: left;
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 var(--pad-x);
}

/* Titolo */
.cta-inner h2 {
  font-family: var(--f-title);
  font-size: 52px;
  font-weight: 700;
  margin-bottom: 18px;
  color: var(--text);
}

/* Testo */
.cta-inner p {
  font-family: var(--f-body);
  font-size: 19px;
  color: var(--muted);
  line-height: 1.55;
  max-width: 520px;
  margin: 0 0 64px 0;
}

/* Pulsante */
.cta-inner .btn-primary {
  display: inline-block;
  margin-top: 0;
}
/* ============================================================
   FOOTER — sfondo #060F1C
   ============================================================ */

footer {
  width: 100%;
  background: #060F1C;
  padding: 28px 0 24px;
}

/* Container allineato al layout centrale */
.footer-inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 var(--pad-x);
}

/* Grid colonne */
.footer-grid {
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr 1.4fr;
  gap: 44px;
  margin-bottom: 42px;
  align-items: start;
}

/* =========================
   COLONNA BRAND (LOGO)
   ========================= */

.footer-brand-col {
  padding-top: 0;
  overflow: visible;
}

/* LOGO */
.footer-logo {
  width: 245px;
  height: auto;
  display: block;
  margin: 0 0 10px;
}

.footer-logo-link {
  display: inline-block;
  margin: 0 0 10px;
}

.footer-logo-link .footer-logo {
  margin: 0;
}

.footer-logo-link:hover {
  opacity: 0.9;
}
/* TESTO SOTTO LOGO */
.footer-brand {
  font-family: var(--f-body);
  font-size: 14px;
  color: #94A3B8;
  line-height: 1.36;
  margin: 4px 0 0;
  max-width: 290px;
}

/* =========================
   TITOLI COLONNE
   ========================= */

footer h5 {
  position: relative;
  font-family: var(--f-title);
  font-size: 15px;
  font-weight: 800;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: #94A3B8;
  margin: 0 0 16px;
  padding-bottom: 10px;
}

footer h5::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 44px;
  height: 2px;
  border-radius: 999px;
  background: rgba(31, 160, 208, 0.58);
}

/* =========================
   LINK / TESTI
   ========================= */

footer a,
footer p,
footer span {
  font-family: var(--f-body);
  font-size: 16px;
  line-height: 1.20;
  color: #94A3B8;
  text-decoration: none;
  display: block;
}

footer a {
  margin-bottom: 7px;
  transition: color 0.18s ease;
}

footer a:hover,
footer a:focus {
  color: var(--white);
  text-decoration: none;
}

/* Indirizzo */
.footer-address {
  font-family: var(--f-body);
  font-size: 13px;
  color: #64748B;
  line-height: 1.26;
  display: block;
  margin-top: 10px;
}

/* =========================
   FOOTER BOTTOM
   Barra legale — Privacy / Cookie
   ========================= */

.footer-bottom {
  border-top: 1px solid #0F1E30;
  padding-top: 20px;
  font-size: 13px;
  color: #64748B;

  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
}

.footer-bottom span,
.footer-bottom a {
  display: inline;
  font-size: 16px;
  line-height: 1.35;
  color: #64748B;
  margin-bottom: 0;
}

.footer-bottom a,
.footer-bottom a:visited,
.footer-bottom a[aria-current="page"] {
  color: #64748B;
  font-weight: 600;
  text-decoration: none;
  transition: color 0.18s ease;
}

.footer-bottom a:hover,
.footer-bottom a:focus,
.footer-bottom a[aria-current="page"]:hover,
.footer-bottom a[aria-current="page"]:focus {
  color: var(--white);
  text-decoration: none;
}

/* ============================================================
   DIMENSIONI TESTO — elementi comuni
   ============================================================ */
.sec-p,
.cta-inner p {
  font-size: 22px;
  line-height: 1.7;
}

footer a,
footer p,
footer span {
  font-size: 17px;
}


/* ============================================================
   SEZIONE DESKTOP — SINGOLE PAGINE
   ============================================================ */

/* ============================================================
   HOME — pagina iniziale
   ============================================================ */

/* ============================================================
   HOME — POSIZIONAMENTO
   ============================================================ */

.pos-section {
  padding: 38px 0;
  background: var(--white);
  text-align: center;
}

.pos-section .narrow {
  max-width: 760px;
  margin: 0 auto;
}

.pos-section .divider {
  margin-bottom: 30px;
}

.pos-section .sec-h2 {
  font-family: var(--f-title);
  font-size: 52px;
  font-weight: 700;
  letter-spacing: -.025em;
  line-height: 1.08;
  margin-bottom: 16px;
  color: var(--text);
}

.pos-section .sec-p {
  font-family: var(--f-body);
  font-size: 20px;
  color: var(--muted);
  line-height: 1.42;
}

/* ============================================================
   HOME — SERVIZI
   Titolo sx + separatore + 2 aree dx
   ============================================================ */

.svc-section {
  border-top: 1px solid var(--border);
}

.svc-cisco {
  display: grid;
  grid-template-columns: 300px 1fr;
  gap: 0;
  padding: 56px 0 72px;
}

.svc-left {
  display: flex;
  align-items: flex-start;
  padding-right: 60px;
}

.svc-left-content {
  padding-top: 160px;
}

.svc-left h2 {
  font-family: var(--f-title);
  font-size: 36px;
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -.025em;
  color: var(--text);
  margin-bottom: 14px;
}

.svc-left p {
  font-family: var(--f-body);
  font-size: 18px;
  line-height: 1.5;
  color: var(--muted);
  margin: 0;
}

.svc-right {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  padding-left: 60px;
  border-left: 1px solid var(--border);
}

.svc-item {
  padding-right: 44px;
}

.svc-item:nth-child(2) {
  padding-right: 0;
  padding-left: 44px;
  border-left: 1px solid var(--border);
}

.svc-label {
  font-family: var(--f-body);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--vp);
  margin-bottom: 14px;
}

.svc-item-title {
  font-family: var(--f-title);
  font-size: 22px;
  font-weight: 700;
  line-height: 1.2;
  color: var(--text);
  margin-bottom: 12px;
}

.svc-desc {
  font-family: var(--f-body);
  font-size: 18px;
  line-height: 1.7;
  color: var(--muted);
  margin-bottom: 18px;
}

.svc-list {
  display: flex;
  flex-direction: column;
  gap: 9px;
  margin-bottom: 22px;
}

.svc-list li {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  font-family: var(--f-body);
  font-size: 17px;
  line-height: 1.55;
  color: var(--text);
}

.svc-list-tight {
  margin-bottom: 6px;
}

.svc-check {
  flex-shrink: 0;
  margin-top: 1px;
  font-size: 13px;
  font-weight: 700;
  color: var(--vp);
}

.svc-extra {
  font-family: var(--f-body);
  font-size: 18px;
  line-height: 1.7;
  color: var(--muted);
}

.svc-link {
  display: inline-block;
  margin-top: 22px;
  font-family: var(--f-body);
  font-size: 14px;
  font-weight: 600;
  color: var(--vp);
  text-align: left;
  transition: color .2s;
}

.svc-link:hover {
  color: var(--vd);
}

.svc-link-tight {
  margin-top: 2px;
}

.svc-link + .svc-extra {
  margin-top: 30px;
}

.svc-link-after-extra {
  margin-top: 10px;
}
/* ============================================================
   HOME — COME LAVORIAMO
   Foto sx · step dx
   La griglia resta dentro il corpo centrale
   ============================================================ */
.how-section {
  background: var(--bg);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

.how-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: stretch;

  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 var(--pad-x);
}

.how-photo {
  position: relative;
  overflow: hidden;
  min-height: 560px;
  max-height: 740px;
}

.how-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 42%;
  display: block;
}

.how-photo-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to right,
    transparent 68%,
    var(--bg) 100%
  );
}

.how-photo-ph {
  width: 100%;
  height: 100%;
  min-height: 520px;
  background: #dde4ea;

  display: flex;
  align-items: center;
  justify-content: center;

  font-family: var(--f-body);
  font-size: 14px;
  color: var(--muted);
}

.how-text {
  padding: 24px 64px 40px;
}

.how-text h2 {
  font-family: var(--f-title);
  font-size: 44px;
  font-weight: 700;
  letter-spacing: -.025em;
  line-height: 1.1;
  margin: 0 0 14px;
}

.how-intro {
  font-family: var(--f-body);
  font-size: 18px;
  color: var(--muted);
  line-height: 1.7;
}

.steps {
  margin-top: 32px;
  display: flex;
  flex-direction: column;
}

.step {
  display: grid;
  grid-template-columns: 52px 1fr;
  gap: 14px;
  align-items: start;

  padding: 18px 0;
  border-top: 1px solid var(--border);
}

.step-num {
  font-family: var(--f-title);
  font-size: 24px;
  font-weight: 800;
  color: #D1D5DB;
  line-height: 1.4;
}

.step-title {
  font-family: var(--f-title);
  font-size: 19px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 5px;
}

.step-desc {
  font-family: var(--f-body);
  font-size: 16px;
  color: var(--muted);
  line-height: 1.7;
}
/* ============================================================
   HOME — PER CHI È
   3 colonne · separatori · icone PNG · titolo sx
   ============================================================ */
.target-section {
  padding: 48px 0 50px;
  background: var(--white);
}
.target-section .sec-h2 { text-align: left; margin-top: 10px; margin-bottom: 44px; max-width: 560px; }
.target-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 0; }
.target-item { padding-right: 48px; border-right: 1px solid var(--border); }
.target-item:nth-child(2) { padding: 0 48px; }
.target-item:last-child   { border-right: none; padding-right: 0; padding-left: 48px; }
.ti-icon { width: 110px; height: 110px; margin-bottom: 20px; }
.ti-icon img { width: 110px; height:110px; object-fit: contain; }
.ti-title { font-family: var(--f-title); font-weight: 700; font-size: 22px; margin-bottom: 10px; color: var(--text); }
.ti-desc  { font-family: var(--f-body); font-size: 18px; color: var(--muted); line-height: 1.65; }

/* ============================================================
   CHI SIAMO — pagina interna
   ============================================================ */


/* ============================================================
   CHI SIAMO — HERO
   ============================================================ */

.hero-about .hero-bg img {
  object-position: center;
}

.page-chi-siamo .hero::after,
.hero-about::after {
  background: linear-gradient(
    to right,
    rgba(248, 250, 252, 0.96) 0%,
    rgba(248, 250, 252, 0.90) 22%,
    rgba(248, 250, 252, 0.58) 43%,
    rgba(248, 250, 252, 0) 76%
  );
}

.page-chi-siamo .hero .hero-inner > div:first-child,
.hero-about .hero-inner > div:first-child {
  transform: translateY(-48px);
}

.hero-about .hero-inner {
  align-items: flex-start;
  padding-top: 48px;
}

.page-chi-siamo .hero h1,
.hero-about h1 {
  color: var(--text);
  line-height: 1.02;
  max-width: 560px;
  margin-bottom: 34px;
}

.page-chi-siamo .hero-sub,
.hero-about .hero-sub {
  max-width: 540px;
  color: var(--muted);
  font-size: 20px;
  line-height: 1.58;
  margin-bottom: 28px;
}

.page-chi-siamo .hero .eyebrow,
.hero-about .eyebrow {
  color: var(--vp) !important;
}

.page-chi-siamo .hero .ew-dot,
.hero-about .ew-dot {
  background: var(--vp) !important;
}


/* ============================================================
   CHI SIAMO — PARTIAMO DA QUELLO CHE C'È
   ============================================================ */

.about-main {
  background: var(--white);
  padding: 52px 0 96px;
}

.about-main-head {
  max-width: 1120px;
  margin: 0 auto;
}

.about-main-head h2 {
  max-width: 960px;
  margin: 0 auto 34px;
  font-family: var(--f-title);
  font-size: 50px;
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: -.025em;
  color: var(--text);
  text-align: center;
}

.about-main-intro {
  max-width: 1120px;
  margin: 0 auto;
  text-align: left;
}

.about-main-intro p {
  margin: 0 0 14px;
  font-family: var(--f-body);
  font-size: 19px;
  line-height: 1.68;
  color: var(--muted);
}

.about-main-intro p:last-child {
  margin-bottom: 0;
}


/* ============================================================
   CHI SIAMO — CARD CONTESTO / INTERVENTO
   ============================================================ */

.about-panel {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 32px;
  max-width: 1120px;
  margin: 44px auto 0;
}

.about-panel-card {
  min-height: 270px;
  padding: 48px 52px;
  background: var(--bg);
  border: 1px solid var(--border);
  text-align: left;
}

.about-panel-card.strong {
  background: #D8EEF7;
  border-color: rgba(31, 160, 208, 0.35);
  box-shadow: 0 18px 40px rgba(15, 23, 42, 0.07);
}

.about-panel-card span {
  display: block;
  margin-bottom: 24px;
  font-family: var(--f-title);
  font-size: 27px;
  font-weight: 800;
  letter-spacing: .08em;
  color: var(--vp);
}

.about-panel-card h3 {
  margin: 0 0 16px;
  font-family: var(--f-title);
  font-size: 26px;
  font-weight: 700;
  line-height: 1.2;
  color: var(--text);
}

.about-panel-card p {
  max-width: 640px;
  margin: 0;
  font-family: var(--f-body);
  font-size: 18px;
  line-height: 1.66;
  color: #475569;
}


/* ============================================================
   CHI SIAMO — MENO PARTI SEPARATE
   ============================================================ */

.about-system {
  background: var(--bg);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

.about-system-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: stretch;
}

.about-system-visual {
  position: relative;
  min-height: 430px;
  padding: 52px 72px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: 23px;
  background:
    radial-gradient(
      circle at 32% 42%,
      rgba(255, 255, 255, 0.42) 0%,
      rgba(255, 255, 255, 0.18) 34%,
      transparent 66%
    ),
    linear-gradient(
      135deg,
      rgba(230, 242, 248, 0.68) 0%,
      rgba(210, 232, 242, 0.72) 100%
    ),
    url("../img/sections/system_pattern_bg_v2.png") no-repeat center;
  background-size: cover;
}

.system-layer {
  width: 100%;
  max-width: 460px;
  padding: 21px 30px;
  background: rgba(255, 255, 255, 0.97);
  border: 1px solid rgba(31, 160, 208, 0.18);
  border-left: 5px solid var(--vp);
  box-shadow: 0 18px 42px rgba(15, 23, 42, 0.09);
}

.system-layer span {
  display: block;
  margin-bottom: 5px;
  font-family: var(--f-title);
  font-size: 22px;
  font-weight: 800;
  color: var(--text);
}

.system-layer small {
  font-family: var(--f-body);
  font-size: 15px;
  color: var(--muted);
}

.layer-two {
  margin-left: 44px;
}

.layer-three {
  margin-left: 88px;
}

.about-system-copy {
  padding: 52px 64px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.about-system-copy h2 {
  max-width: 560px;
  margin: 0 0 30px;
  font-family: var(--f-title);
  font-size: 48px;
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: -.025em;
  color: var(--text);
  text-align: left;
}

.about-system-copy p {
  max-width: 620px;
  margin: 0 0 18px;
  font-family: var(--f-body);
  font-size: 18px;
  line-height: 1.74;
  color: var(--muted);
}

.about-system-copy p:last-child {
  margin-bottom: 0;
}


/* ============================================================
   CHI SIAMO — NON UN FORNITORE IN PIÙ
   ============================================================ */

.about-fit {
  background: var(--white);
  padding: 56px 0 58px;
}

.about-fit-inner {
  max-width: 1120px;
}

.about-fit h2 {
  max-width: 820px;
  margin: 0 0 26px;
  font-family: var(--f-title);
  font-size: 48px;
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: -.025em;
  color: var(--text);
}

.about-fit p {
  max-width: 1040px;
  margin: 0 0 16px;
  font-family: var(--f-body);
  font-size: 19px;
  line-height: 1.68;
  color: var(--muted);
}

.about-fit p:last-child {
  margin-bottom: 0;
}

/* ============================================================
   INFRASTRUTTURA CLOUD — pagina interna
   ============================================================ */


/* ============================================================
   INFRASTRUTTURA CLOUD — HERO
   ============================================================ */

.hero-infrastruttura .hero-bg img {
  object-position: center right;
  transform: none;
}

.page-infrastruttura .hero::after,
.hero-infrastruttura::after {
  background: linear-gradient(
    to right,
    rgba(248, 250, 252, 0.98) 0%,
    rgba(248, 250, 252, 0.86) 27%,
    rgba(248, 250, 252, 0.38) 45%,
    rgba(248, 250, 252, 0.04) 64%,
    rgba(248, 250, 252, 0) 100%
  );
}

.page-infrastruttura .hero-inner,
.hero-infrastruttura .hero-inner {
  align-items: flex-start;
  padding-top: 04px;
}

.page-infrastruttura .hero-inner > div:first-child,
.hero-infrastruttura .hero-inner > div:first-child {
  transform: translateY(-48px);
}

.page-infrastruttura .hero h1,
.hero-infrastruttura h1 {
  max-width: 580px;
  color: var(--text);
  line-height: 1.04;
  margin-bottom: 26px;
}

.page-infrastruttura .hero-sub,
.hero-infrastruttura .hero-sub {
  max-width: 530px;
  color: var(--muted);
  font-size: 18.5px;
  line-height: 1.56;
  margin-bottom: 13px;
}

.page-infrastruttura .hero-sub:last-of-type,
.hero-infrastruttura .hero-sub:last-of-type {
  margin-bottom: 0;
}

.page-infrastruttura .hero .eyebrow,
.hero-infrastruttura .eyebrow {
  color: var(--vp);
}

.page-infrastruttura .hero .ew-dot,
.hero-infrastruttura .ew-dot {
  background: var(--vp);
}

/* ============================================================
   INFRASTRUTTURA CLOUD — POSIZIONAMENTO
   ============================================================ */

.infra-position {
  background: var(--white);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  padding: 44px 0 48px;
}

.infra-position-inner {
  max-width: 1120px;
  margin: 0 auto;
  text-align: center;
}

.infra-position h2 {
  font-family: var(--f-title);
  font-size: 36px;
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: -0.03em;
  color: var(--text);
  margin: 0 0 16px;
}

.infra-position p {
  max-width: 1040px;
  margin: 0 auto 11px;
  font-family: var(--f-body);
  font-size: 18px;
  line-height: 1.62;
  color: var(--muted);
  text-align: center;
}

.infra-position p:first-of-type {
  max-width: 1080px;
  font-family: var(--f-title);
  font-size: 17.5px;
  font-weight: 700;
  line-height: 1.58;
  color: var(--text);
  margin-bottom: 9px;
}

.infra-position p:last-child {
  margin-bottom: 0;
}

/* ============================================================
   INFRASTRUTTURA CLOUD — METODO / TRE COLONNE
   ============================================================ */

.infra-method {
  background: var(--white);
  padding: 58px 0 64px;
  border-bottom: 1px solid var(--border);
}

.infra-method-grid {
  display: grid;
  grid-template-columns: 0.95fr 1.08fr 1fr;
  gap: 0;
  align-items: stretch;
}

.infra-method-col {
  position: relative;
  min-height: 100%;
  padding: 4px 38px 4px;
}

.infra-method-col:first-child {
  padding-left: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.infra-method-col:last-child {
  padding-right: 0;
}

.infra-method-col + .infra-method-col {
  border-left: 1px solid rgba(203, 213, 225, 0.62);
  justify-content: center;
  transform: translateY(10px);
}

.infra-method h2,
.infra-method h3 {
  font-family: var(--f-title);
  color: var(--text);
  letter-spacing: -0.025em;
  margin: 0;
}

.infra-method h2 {
  font-size: 30px;
  font-weight: 700;
  line-height: 1.16;
  margin-bottom: 20px;
}

.infra-method h3 {
  font-size: 30px;
  font-weight: 700;
  line-height: 1.16;
  margin-bottom: 16px;
}

.infra-method p {
  font-family: var(--f-body);
  font-size: 16.5px;
  line-height: 1.62;
  color: var(--muted);
  margin: 0 0 15px;
}

.infra-method p:last-child {
  margin-bottom: 0;
}

.infra-method ul {
  display: grid;
  gap: 11px;
  margin: 16px 0 0;
  padding: 0;
  list-style: none;
}

.infra-method li {
  position: relative;
  padding-left: 27px;
  font-family: var(--f-body);
  font-size: 16.3px;
  line-height: 1.48;
  color: var(--text);
}

.infra-method li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.72em;
  width: 14px;
  height: 2px;
  background: var(--vp);
  border-radius: 2px;
}

.infra-method-note {
  margin-top: 20px !important;
  padding-top: 0;
  border-top: 0;
  color: var(--muted);
}

/* ============================================================
   INFRASTRUTTURA CLOUD — PROBLEMA / APPROCCIO
   ============================================================ */

.infra-split {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(135deg, #071527 0%, #0B1E33 56%, #0E2740 100%);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  padding: 72px 0 48px;
}

/* Background immagine su tutta la sezione */
.infra-split::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    url("../img/sections/rack-infrastruttura.png");
  background-size: cover;
  background-position: center right;
  background-repeat: no-repeat;
  opacity: 0.72;
}

/* Overlay di uniformazione e leggibilità */
.infra-split::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background:
    linear-gradient(
      90deg,
      rgba(7, 21, 39, 0.94) 0%,
      rgba(7, 21, 39, 0.84) 30%,
      rgba(7, 21, 39, 0.54) 58%,
      rgba(7, 21, 39, 0.18) 100%
    ),
    linear-gradient(
      180deg,
      rgba(7, 21, 39, 0.00) 0%,
      rgba(7, 21, 39, 0.20) 38%,
      rgba(7, 21, 39, 0.82) 100%
    );
}

.infra-split .container {
  position: relative;
  z-index: 3;
}

.infra-split-layout {
  display: block;
  position: static;
}

.infra-split-content {
  position: relative;
  z-index: 3;
}

/* L'immagine HTML resta nel PHP ma non viene usata visivamente */
.infra-split-image {
  display: none;
}

.infra-split-head {
  max-width: 780px;
  margin: 0 0 58px;
}

.infra-split-head h2 {
  max-width: 720px;
  font-family: var(--f-title);
  font-size: 42px;
  font-weight: 700;
  line-height: 1.14;
  letter-spacing: -0.03em;
  color: #FFFFFF;
  margin: 0 0 22px;
}

.infra-split-head p {
  max-width: 720px;
  font-family: var(--f-body);
  font-size: 18px;
  line-height: 1.68;
  color: rgba(226, 239, 247, 0.88);
  margin: 0 0 10px;
}

.infra-split-head p:last-child {
  margin-bottom: 0;
}

.infra-split-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 86px;
  position: relative;
}

.infra-split-grid::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 1px;
  background: rgba(226, 239, 247, 0.22);
}

.infra-problem {
  padding-right: 38px;
}

.infra-approach {
  padding-left: 38px;
}

.infra-label {
  position: relative;
  display: inline-block;
  font-family: var(--f-title);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .095em;
  text-transform: uppercase;
  color: #7DD3FC;
  margin: 0 0 22px;
  padding-bottom: 11px;
}

.infra-label::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 34px;
  height: 2px;
  background: var(--vp);
  border-radius: 2px;
}

.infra-problem p,
.infra-approach p {
  font-family: var(--f-body);
  font-size: 17.5px;
  line-height: 1.68;
  color: rgba(226, 239, 247, 0.88);
  margin: 0 0 18px;
}

.infra-problem p:last-child,
.infra-approach p:last-child {
  margin-bottom: 0;
}

.infra-bad-list {
  display: grid;
  gap: 11px;
  margin: 24px 0 0;
  padding: 0;
  list-style: none;
}

.infra-bad-list li {
  position: relative;
  padding-left: 24px;
  font-family: var(--f-body);
  font-size: 16.5px;
  line-height: 1.52;
  color: rgba(248, 250, 252, 0.92);
}

.infra-bad-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.72em;
  width: 12px;
  height: 2px;
  background: #7DD3FC;
  border-radius: 2px;
}

/* ============================================================
   INFRASTRUTTURA CLOUD — AMBIENTI
   ============================================================ */

.infra-environments {
  background: var(--white);
  border-bottom: 1px solid var(--border);
  padding: 64px 0 48px;
}

.infra-environments-head {
  max-width: 840px;
  margin: 0 auto 38px;
  text-align: center;
}

.infra-environments-head h2 {
  font-family: var(--f-title);
  font-size: 40px;
  font-weight: 700;
  line-height: 1.14;
  letter-spacing: -0.03em;
  color: var(--text);
  margin: 0 0 20px;
}

.infra-environments-head p {
  font-family: var(--f-body);
  font-size: 18px;
  line-height: 1.68;
  color: var(--muted);
  margin: 0 0 10px;
}

.infra-environments-head p:last-child {
  margin-bottom: 0;
}

.infra-environments-list {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 0;
}

.infra-environment-item {
  position: relative;
  padding: 30px 34px 32px;
  background: transparent;
}

.infra-environment-item:nth-child(1),
.infra-environment-item:nth-child(2),
.infra-environment-item:nth-child(3) {
  grid-column: span 2;
}

.infra-environment-item:nth-child(4),
.infra-environment-item:nth-child(5) {
  grid-column: span 3;
  padding-top: 22px;
  padding-bottom: 24px;
}

.infra-environment-item:nth-child(2),
.infra-environment-item:nth-child(3),
.infra-environment-item:nth-child(5) {
  border-left: 1px solid rgba(203, 213, 225, 0.46);
}

.infra-environment-item:nth-child(4) {
  padding-left: 34px;
}

.infra-env-icon {
  width: 56px;
  height: 56px;
  margin-bottom: 22px;
  border: 1.5px solid rgba(31, 160, 208, 0.48);
  border-radius: 15px;
  background:
    linear-gradient(
      135deg,
      rgba(230, 244, 250, 0.98) 0%,
      rgba(255, 255, 255, 1) 100%
    );
  display: flex;
  align-items: center;
  justify-content: center;
}

.infra-env-icon svg {
  width: 30px;
  height: 30px;
  color: var(--vp);
  display: block;
}

.infra-env-icon svg path {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.75;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.infra-environment-item h3 {
  font-family: var(--f-title);
  font-size: 22px;
  font-weight: 700;
  line-height: 1.24;
  letter-spacing: -0.015em;
  color: var(--text);
  margin: 0 0 14px;
}

.infra-environment-item p {
  max-width: 440px;
  font-family: var(--f-body);
  font-size: 16px;
  line-height: 1.66;
  color: var(--muted);
  margin: 0;
}

/* ============================================================
   INFRASTRUTTURA CLOUD — CASO REALE
   ============================================================ */

.infra-case {
  background: linear-gradient(180deg, #F8FBFD 0%, #FFFFFF 100%);
  border-bottom: 1px solid var(--border);
  padding: 58px 0 62px;
}

.infra-case-layout {
  display: block;
}

.infra-case-image {
  display: none;
}

.infra-case-content {
  padding: 0;
}

.infra-case-label {
  display: block;
  width: fit-content;
  margin: 0 0 22px auto;
  padding-bottom: 10px;
  font-family: var(--f-title);
  font-size: 18px;
  font-weight: 800;
  line-height: 0.7;
  letter-spacing: .105em;
  text-transform: uppercase;
  color: var(--vp);
  border-bottom: 2px solid var(--vp);
}

.infra-case-content h2 {
  max-width: 860px;
  font-family: var(--f-title);
  font-size: 40px;
  font-weight: 700;
  line-height: 1.14;
  letter-spacing: -0.03em;
  color: var(--text);
  margin: 0 0 18px;
}

.infra-case-content > p:not(.infra-case-label) {
  max-width: 720px;
  font-family: var(--f-body);
  font-size: 18px;
  line-height: 1.68;
  color: var(--muted);
  margin: 0 0 42px;
}

.infra-case-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border-top: 1px solid rgba(203, 213, 225, 0.68);
}

.infra-case-step {
  padding: 30px 34px 0;
  border-right: 1px solid rgba(203, 213, 225, 0.68);
}

.infra-case-step:first-child {
  padding-left: 0;
}

.infra-case-step:last-child {
  border-right: 0;
  padding-right: 0;
}

.infra-case-step h3 {
  font-family: var(--f-title);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.24;
  color: var(--text);
  margin: 0 0 18px;
}

.infra-case-step p {
  font-family: var(--f-body);
  font-size: 16.5px;
  line-height: 1.66;
  color: var(--muted);
  margin: 0 0 14px;
}

.infra-case-step p:last-child {
  margin-bottom: 0;
}

/* ============================================================
   INFRASTRUTTURA CLOUD — PER CHI È / PER CHI NON È
   ============================================================ */

.infra-fit {
  background:
    linear-gradient(180deg, #F8FBFD 0%, #EEF7FB 100%);
  padding: 36px 0 56px;
  border-bottom: 1px solid var(--border);
}

.infra-fit-head {
  max-width: 820px;
  margin: 0 0 40px;
}

.infra-fit-head h2 {
  font-family: var(--f-title);
  font-size: 40px;
  font-weight: 700;
  line-height: 1.14;
  letter-spacing: -0.03em;
  color: var(--text);
  margin: 0 0 20px;
}

.infra-fit-head p {
  max-width: 760px;
  font-family: var(--f-body);
  font-size: 18px;
  line-height: 1.66;
  color: var(--muted);
  margin: 0 0 9px;
}

.infra-fit-head p:last-child {
  margin-bottom: 0;
}

.infra-fit-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  position: relative;
  margin-bottom: 34px;
  padding-top: 4px;
}

.infra-fit-grid::before {
  content: "";
  position: absolute;
  top: 4px;
  bottom: 0;
  left: 50%;
  width: 1px;
  background: rgba(203, 213, 225, 0.72);
}

.infra-fit-col:first-child {
  padding-right: 30px;
}

.infra-fit-col:last-child {
  padding-left: 30px;
}

.infra-fit-col h3 {
  font-family: var(--f-title);
  font-size: 30px;
  font-weight: 700;
  line-height: 1.18;
  letter-spacing: -0.02em;
  color: var(--text);
  margin: 0 0 14px;
}

.infra-fit-col p {
  font-family: var(--f-body);
  font-size: 17px;
  line-height: 1.6;
  color: var(--muted);
  margin: 0 0 20px;
}

.infra-fit-col ul {
  display: grid;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.infra-fit-col li {
  position: relative;
  padding-left: 28px;
  font-family: var(--f-body);
  font-size: 16.5px;
  line-height: 1.52;
  color: var(--text);
}

.infra-fit-col li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.72em;
  width: 13px;
  height: 2px;
  background: var(--vp);
  border-radius: 2px;
}

.infra-fit-callout {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 24px 0 0;
  border-top: 1px solid rgba(31, 160, 208, 0.22);
  background: transparent;
}

.infra-fit-callout p {
  max-width: 980px;
  font-family: var(--f-title);
  font-size: 23px;
  font-weight: 700;
  line-height: 1.36;
  color: var(--text);
  margin: 0 0 8px;
}

.infra-fit-callout p:last-child {
  margin-bottom: 0;
}


/* ============================================================
   INFRASTRUTTURA CLOUD — CTA FINALE
   Mantiene il componente standard, testo specifico Infrastruttura
   ============================================================ */

.page-infrastruttura .cta-inner p {
  max-width: 520px;
  margin-bottom: 42px;
  font-size: 19px;
  line-height: 1.55;
}

.page-infrastruttura .cta-inner .btn-primary {
  margin-top: 0;
}

/* ============================================================
   HOSTING — Pagina interna
   ============================================================ */

/* ============================================================
   HOSTING — HERO
   ============================================================ */

.page-hosting .hero-inner > div:first-child {
  max-width: 560px;
}

.page-hosting .hero h1 {
  max-width: 560px;
}

/* ============================================================
   HOSTING — AMBIENTE WEB GESTITO / COME LO GESTIAMO
   Blocco unico dopo la hero
   ============================================================ */

.page-hosting .hosting-position {
  background: #ffffff;
  padding: 36px 0 36px;
  margin: 0;
  border-bottom: 1px solid var(--border);
}

.page-hosting .hosting-position-inner {
  max-width: 980px;
  margin: 0 auto;
}

.page-hosting .hosting-position-icon {
  display: none;
}

.page-hosting .hosting-position-text {
  max-width: 780px;
  margin: 0 auto 34px;
  text-align: center;
}

.page-hosting .hosting-position-text h2 {
  margin: 0 0 14px;
  font-family: var(--f-title);
  font-size: 42px;
  line-height: 1.08;
  letter-spacing: -0.04em;
  color: var(--text);
}

.page-hosting .hosting-position-text p {
  margin: 0 auto;
  max-width: 760px;
  font-size: 18px;
  line-height: 1.65;
  color: var(--muted);
}

.page-hosting .hosting-position-points {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}

.page-hosting .hosting-position-point {
  padding: 24px 26px 26px;
  min-height: 0;
  border: 1px solid rgba(31, 160, 208, 0.18);
  border-radius: 22px;
  background: #ffffff;
  box-shadow: 0 18px 42px rgba(15, 23, 42, 0.05);
}

.page-hosting .hosting-position-point-icon {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  margin: 0 0 18px;
  border-radius: 14px;
  background: rgba(31, 160, 208, 0.11);
  border: 1px solid rgba(31, 160, 208, 0.26);
}

.page-hosting .hosting-position-point-icon::before {
  content: "";
  display: block;
  width: 27px;
  height: 27px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 27px 27px;
}

/* Server / infrastruttura */
.page-hosting .hosting-point-infra::before {
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%231FA0D0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='5' width='16' height='5' rx='1.5'/%3E%3Crect x='4' y='14' width='16' height='5' rx='1.5'/%3E%3Cpath d='M7 7.5h.01M7 16.5h.01M11 7.5h6M11 16.5h6'/%3E%3C/svg%3E");
}

/* Supporto diretto */
.page-hosting .hosting-point-support::before {
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%231FA0D0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 13v-1a8 8 0 0 1 16 0v1'/%3E%3Cpath d='M5 13h3v5H6a1 1 0 0 1-1-1v-4Z'/%3E%3Cpath d='M16 13h3v4a1 1 0 0 1-1 1h-2v-5Z'/%3E%3Cpath d='M16 18c0 1.1-.9 2-2 2h-2'/%3E%3C/svg%3E");
}

/* Gestione proattiva */
.page-hosting .hosting-point-proactive::before {
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%231FA0D0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6v5h-5'/%3E%3Cpath d='M4 18v-5h5'/%3E%3Cpath d='M18.5 10A7 7 0 0 0 6.8 6.8L4 9.5'/%3E%3Cpath d='M5.5 14A7 7 0 0 0 17.2 17.2L20 14.5'/%3E%3C/svg%3E");
}

.page-hosting .hosting-position-point h3 {
  margin: 0 0 9px;
  font-family: var(--f-title);
  font-size: 19px;
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: var(--text);
}

.page-hosting .hosting-position-point p {
  margin: 0;
  font-size: 15px;
  line-height: 1.5;
  color: var(--muted);
}

/* ============================================================
   HOSTING — AMBIENTE TECNICO
   ============================================================ */

.page-hosting .hosting-real {
  background: #eef8fc;
  border-bottom: 1px solid var(--border);
}

.page-hosting .hosting-real-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  max-width: 1440px;
  height: 480px;
  margin: 0 auto;
  overflow: hidden;
}

.page-hosting .hosting-real-media {
  position: relative;
  height: 420px;
  overflow: hidden;
}

.page-hosting .hosting-real-media img {
  width: 100%;
  height: 100%;
  min-height: 0;
  display: block;
  object-fit: cover;
  object-position: center;
  filter: saturate(0.98) contrast(0.98) brightness(1.01);
}

.page-hosting .hosting-real-media::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(
      90deg,
      rgba(255, 255, 255, 0.00) 0%,
      rgba(255, 255, 255, 0.00) 68%,
      rgba(230, 244, 250, 0.06) 100%
    );
}

.page-hosting .hosting-real-content {
  height: 390px;
  padding: 34px 64px 32px;
  background: linear-gradient(180deg, #eef8fc 0%, #f7fbfd 100%);
  box-sizing: border-box;
}

.page-hosting .hosting-real-content h2 {
  margin: 0 0 12px;
  max-width: 620px;
  font-family: var(--f-title);
  font-size: 36px;
  line-height: 1.06;
  letter-spacing: -0.04em;
  color: var(--text);
}

.page-hosting .hosting-real-intro {
  margin: 0 0 22px;
  max-width: 620px;
  font-size: 15.5px;
  line-height: 1.52;
  color: var(--muted);
}

.page-hosting .hosting-real-items {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 17px;
}

.page-hosting .hosting-real-item {
  padding-left: 17px;
  border-left: 1px solid rgba(31, 160, 208, 0.24);
}

.page-hosting .hosting-real-icon {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 62px;
  height: 62px;
  margin-bottom: 20px;
  border-radius: 18px;
  background: rgba(31, 160, 208, 0.13);
  border: 1px solid rgba(31, 160, 208, 0.32);
}

.page-hosting .hosting-real-icon::before {
  content: "";
  display: block;
  width: 36px;
  height: 36px;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: 36px 36px;
}

/* Plesk / pannello */
.page-hosting .hosting-real-plesk::before {
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%231FA0D0' stroke-width='2.1' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='5' width='16' height='5' rx='1.5'/%3E%3Crect x='4' y='14' width='16' height='5' rx='1.5'/%3E%3Cpath d='M7 7.5h.01M7 16.5h.01M11 7.5h6M11 16.5h6'/%3E%3C/svg%3E");
}

/* Email / servizi collegati */
.page-hosting .hosting-real-mail::before {
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%231FA0D0' stroke-width='2.1' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='6' width='16' height='12' rx='2'/%3E%3Cpath d='m4 8 8 6 8-6'/%3E%3C/svg%3E");
}

/* Sicurezza */
.page-hosting .hosting-real-security::before {
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%231FA0D0' stroke-width='2.1' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3 5 6v5c0 4.5 3 8.5 7 10 4-1.5 7-5.5 7-10V6l-7-3Z'/%3E%3Cpath d='m9.5 12 1.8 1.8L15 10'/%3E%3C/svg%3E");
}

.page-hosting .hosting-real-item h3 {
  margin: 0 0 12px;
  font-family: var(--f-title);
  font-size: 15.5px;
  line-height: 1.15;
  color: var(--text);
}

.page-hosting .hosting-real-item p {
  margin: 0;
  font-size: 12.7px;
  line-height: 1.42;
  color: var(--muted);
}

/* ============================================================
   HOSTING — CRESCITA ED EVOLUZIONE
   ============================================================ */

.hosting-growth {
  background: #ffffff;
  padding: 36px 0 36px;
  border-bottom: 1px solid var(--border);
}

.hosting-growth-inner {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(260px, 0.75fr);
  gap: 56px;
  align-items: center;
}

.hosting-growth-content {
  max-width: 680px;
}

.hosting-growth-content h2 {
  margin: 0 0 16px;
  font-family: var(--f-title);
  font-size: 40px;
  line-height: 1.08;
  letter-spacing: -0.04em;
  color: var(--text);
}

.hosting-growth-content p {
  margin: 0;
  max-width: 640px;
  font-size: 17px;
  line-height: 1.65;
  color: var(--muted);
}

.page-hosting .hosting-growth .hosting-growth-link,
.page-hosting .hosting-growth .hosting-growth-link:link,
.page-hosting .hosting-growth .hosting-growth-link:visited {
  display: inline-flex;
  margin-top: 22px;
  font-weight: 700;
  color: #1FA0D0 !important;
  text-decoration: none;
}

.page-hosting .hosting-growth .hosting-growth-link:hover {
  color: #167A99 !important;
}


.hosting-growth-chart {
  display: flex;
  justify-content: center;
  align-items: center;
}

.hosting-growth-svg {
  width: min(100%, 470px);
  height: auto;
  display: block;
}

/* ============================================================
   HOSTING — COSA È INCLUSO
   ============================================================ */

.hosting-included {
  background: linear-gradient(180deg, #ffffff 0%, #f7fbfd 100%);
  padding: 36px 0 36px;
  border-bottom: 1px solid var(--border);
}

.hosting-included-head {
  max-width: 820px;
  margin: 0 0 38px;
}

.hosting-included-head h2 {
  margin: 0 0 16px;
  font-family: var(--f-title);
  font-size: 42px;
  line-height: 1.08;
  letter-spacing: -0.04em;
  color: var(--text);
}

.hosting-included-head p {
  max-width: 700px;
  margin: 0;
  font-size: 18px;
  line-height: 1.65;
  color: var(--muted);
}

.hosting-included-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 18px;
}

.hosting-included-item {
  min-height: 150px;
  padding: 24px 22px;
  border: 1px solid rgba(31, 160, 208, 0.18);
  border-radius: 22px;
  background: #ffffff;
  box-shadow: 0 18px 42px rgba(15, 23, 42, 0.05);
}

.hosting-included-item strong {
  display: block;
  margin-bottom: 10px;
  font-family: var(--f-title);
  font-size: 17px;
  line-height: 1.25;
  color: var(--text);
}

.hosting-included-item span {
  display: block;
  font-size: 15px;
  line-height: 1.55;
  color: var(--muted);
}

/* ============================================================
   HOSTING — PER CHI È / PER CHI NON È
   ============================================================ */

.page-hosting .hosting-fit {
  background: #ffffff;
  padding: 32px 0 66px;
  border-bottom: 1px solid var(--border);
}

.page-hosting .hosting-fit-head {
  max-width: 860px;
  margin: 0 0 34px;
}

.page-hosting .hosting-fit-head h2 {
  margin: 0 0 16px;
  font-family: var(--f-title);
  font-size: 42px;
  line-height: 1.08;
  letter-spacing: -0.04em;
  color: var(--text);
}

.page-hosting .hosting-fit-head p {
  margin: 0;
  max-width: 780px;
  font-size: 18px;
  line-height: 1.65;
  color: var(--muted);
}

.page-hosting .hosting-fit-grid {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 72px;
  max-width: 1080px;
}

.page-hosting .hosting-fit-grid::before {
  content: "";
  position: absolute;
  top: 6px;
  bottom: 6px;
  left: 50%;
  width: 1px;
  transform: translateX(-50%);
  background: linear-gradient(
    180deg,
    rgba(31, 160, 208, 0.00) 0%,
    rgba(31, 160, 208, 0.16) 18%,
    rgba(31, 160, 208, 0.16) 82%,
    rgba(31, 160, 208, 0.00) 100%
  );
}

.page-hosting .hosting-fit-box {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.page-hosting .hosting-fit-for,
.page-hosting .hosting-fit-not {
  background: transparent;
  border: 0;
}

.page-hosting .hosting-fit-box h3 {
  margin: 0 0 18px;
  font-family: var(--f-title);
  font-size: 26px;
  line-height: 1.15;
  letter-spacing: -0.03em;
  color: var(--text);
}
.page-hosting .hosting-fit-box ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.page-hosting .hosting-fit-box li {
  margin: 0 0 13px;
  padding: 0;
  border: 0;
  font-size: 16px;
  line-height: 1.55;
  color: var(--muted);
}

.page-hosting .hosting-fit-box li:last-child {
  margin-bottom: 0;
}

.page-hosting .hosting-fit-box li::before {
  content: none;
}

.page-hosting .hosting-fit-accent {
  display: block !important;
  width: 88px;
  min-width: 88px;
  height: 3px;
  min-height: 3px;
  margin: -8px 0 24px;
  border-radius: 999px;
  background: #1FA0D0 !important;
}

/* ============================================================
   APPLICATIVI — pagina interna
   ============================================================ */

/* HERO */
.hero-applicativi {
  min-height: 560px;
  background: #f8fafc;
}

.hero-applicativi .hero-bg img {
  object-position: center right;
  transform: scale(1.05) translateX(6px) translateY(4px);
  filter:
    contrast(1.05)
    saturate(1.04)
    drop-shadow(-18px 24px 34px rgba(6, 15, 28, 0.13));
}

.hero-applicativi::after,
.page-applicativi .hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(
    to right,
    rgba(248, 250, 252, 0.99) 0%,
    rgba(248, 250, 252, 0.96) 24%,
    rgba(248, 250, 252, 0.72) 42%,
    rgba(248, 250, 252, 0.22) 62%,
    rgba(248, 250, 252, 0.00) 100%
  );
}

.hero-applicativi .container {
  position: relative;
  z-index: 2;
}

.hero-applicativi .hero-inner {
  min-height: 560px;
  align-items: center;
  padding-top: 0;
  padding-bottom: 0;
}

.hero-applicativi h1 {
  max-width: 620px;
  margin-bottom: 26px;
  color: #07182A;
}

.hero-applicativi .hero-sub {
  max-width: 520px;
  margin-top: 0;
  color: #40566A;
}

/* ============================================================
   APPLICATIVI — IL NOSTRO APPROCCIO
   ============================================================ */

.applicativi-position {
  padding: 88px 0 64px;
  border-top: 1px solid rgba(181, 216, 230, 0.28);
  background:
    radial-gradient(circle at 72% 30%, rgba(31, 160, 208, 0.10) 0%, rgba(31, 160, 208, 0.00) 34%),
    linear-gradient(180deg, #ffffff 0%, #f7fbfd 100%);
}

.applicativi-position-head {
  max-width: 960px;
  margin: 0 auto 82px;
  text-align: center;
}

.applicativi-position-head h2 {
  max-width: 860px;
  margin: 0 auto;
  color: #07182A;
  font-size: 48px;
  line-height: 1.08;
  letter-spacing: -0.045em;
}

.applicativi-position-body {
  display: grid;
  grid-template-columns: minmax(0, 0.68fr) minmax(0, 1.32fr);
  gap: 76px;
  align-items: start;
}
.applicativi-position-text {
  max-width: 560px;
  padding-top: 18px;
}

.applicativi-position-text p {
  margin: 0 0 18px;
  color: #40566A;
  font-size: 19px;
  line-height: 1.68;
}

.applicativi-position-text p:last-child {
  margin-bottom: 0;
}

/* Timeline a creste */
.applicativi-approach-flow {
  position: relative;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 18px;
  min-height: 300px;
  padding: 56px 0 18px;
}
.applicativi-approach-flow::before {
  content: "";
  position: absolute;
  left: 5%;
  right: 5%;
  top: 70px;
  height: 94px;
  pointer-events: none;
  opacity: 0.9;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  background-image: url("data:image/svg+xml,%3Csvg width='1000' height='120' viewBox='0 0 1000 120' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 62 C90 12 160 12 250 62 C340 112 410 112 500 62 C590 12 660 12 750 62 C840 112 910 112 1000 62' fill='none' stroke='%231FA0D0' stroke-opacity='0.20' stroke-width='18' stroke-linecap='round'/%3E%3Cpath d='M0 62 C90 12 160 12 250 62 C340 112 410 112 500 62 C590 12 660 12 750 62 C840 112 910 112 1000 62' fill='none' stroke='%23167A99' stroke-opacity='0.28' stroke-width='2' stroke-linecap='round' stroke-dasharray='6 10'/%3E%3C/svg%3E");
}

.applicativi-approach-flow::after {
  content: none;
}

.applicativi-approach-step {
  position: relative;
  z-index: 2;
  text-align: center;
}

.applicativi-approach-step:nth-child(1),
.applicativi-approach-step:nth-child(3),
.applicativi-approach-step:nth-child(5) {
  transform: translateY(2px);
}

.applicativi-approach-step:nth-child(2),
.applicativi-approach-step:nth-child(4) {
  transform: translateY(38px);
}

.applicativi-approach-icon {
  position: relative;
  display: grid;
  place-items: center;
  width: 82px;
  height: 82px;
  margin: 0 auto 24px;
  border-radius: 50%;
  background:
    linear-gradient(145deg, #ffffff 0%, #eef9fd 100%);
  border: 1px solid rgba(181, 216, 230, 0.84);
  box-shadow:
    0 18px 38px rgba(6, 15, 28, 0.10),
    inset 0 1px 0 rgba(255, 255, 255, 1);
}

.applicativi-approach-icon::before,
.applicativi-approach-icon::after {
  content: "";
  position: absolute;
  display: block;
}

.applicativi-approach-step strong {
  display: block;
  min-height: 42px;
  margin: 0 0 12px;
  color: #07182A;
  font-size: 16px;
  line-height: 1.22;
  font-weight: 800;
  letter-spacing: -0.025em;
  text-transform: uppercase;
}

.applicativi-approach-step p {
  max-width: 168px;
  margin: 0 auto;
  color: #40566A;
  font-size: 15px;
  line-height: 1.5;
}

/* Icone timeline */
.applicativi-approach-icon.ascolto::before {
  left: 25px;
  top: 24px;
  width: 25px;
  height: 25px;
  border: 3px solid #167A99;
  border-radius: 50%;
}

.applicativi-approach-icon.ascolto::after {
  right: 22px;
  bottom: 21px;
  width: 15px;
  height: 3px;
  background: #167A99;
  border-radius: 3px;
  transform: rotate(45deg);
}

.applicativi-approach-icon.progetto::before {
  left: 27px;
  top: 20px;
  width: 29px;
  height: 38px;
  border: 3px solid #167A99;
  border-radius: 4px;
  transform: rotate(18deg);
}

.applicativi-approach-icon.progetto::after {
  left: 32px;
  top: 48px;
  width: 22px;
  height: 3px;
  background: #167A99;
  border-radius: 3px;
  transform: rotate(18deg);
}

.applicativi-approach-icon.sviluppo::before {
  left: 23px;
  top: 30px;
  width: 36px;
  height: 21px;
  border-top: 3px solid #167A99;
  border-bottom: 3px solid #167A99;
  transform: skewX(-18deg);
}

.applicativi-approach-icon.sviluppo::after {
  left: 34px;
  top: 24px;
  width: 13px;
  height: 34px;
  border-left: 3px solid #167A99;
  border-right: 3px solid #167A99;
  transform: skewX(-18deg);
}

.applicativi-approach-icon.test::before {
  left: 24px;
  top: 26px;
  width: 34px;
  height: 29px;
  border: 3px solid #167A99;
  border-radius: 7px;
}

.applicativi-approach-icon.test::after {
  left: 32px;
  top: 36px;
  width: 19px;
  height: 11px;
  border-left: 3px solid #167A99;
  border-bottom: 3px solid #167A99;
  transform: rotate(-45deg);
}

.applicativi-approach-icon.supporto::before {
  left: 23px;
  top: 27px;
  width: 36px;
  height: 25px;
  border: 3px solid #167A99;
  border-radius: 17px 17px 11px 11px;
  border-bottom-width: 5px;
}

.applicativi-approach-icon.supporto::after {
  left: 20px;
  top: 38px;
  width: 7px;
  height: 17px;
  background: #167A99;
  border-radius: 7px;
  box-shadow: 36px 0 0 #167A99;
}

/* ============================================================
   APPLICATIVI — COSA POSSIAMO COSTRUIRE
   ============================================================ */

.applicativi-build {
  padding: 56px 0 64px;
  background:
    linear-gradient(180deg, #ffffff 0%, #f7fbfd 100%);
}

.applicativi-build-head {
  max-width: 900px;
  margin: 0 auto 34px;
  text-align: center;
}

.applicativi-build-head h2 {
  margin: 0 0 22px;
  color: #07182A;
  font-size: 48px;
  line-height: 1.08;
  letter-spacing: -0.045em;
}

.applicativi-build-head p {
  max-width: 760px;
  margin: 0 auto;
  color: #40566A;
  font-size: 20px;
  line-height: 1.6;
}

.applicativi-build-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.42fr) minmax(330px, 0.58fr);
  gap: 42px;
  align-items: center;
}

/* Visual decorativo a sinistra */
.applicativi-build-visual {
  position: relative;
  min-height: 410px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.applicativi-build-visual::before {
  content: none;
}

.applicativi-build-visual img {
  position: relative;
  z-index: 2;
  display: block;
  width: 100%;
  max-width: 760px;
  height: auto;
  transform: translateX(-18px) translateY(0);
  filter: drop-shadow(0 30px 48px rgba(6, 15, 28, 0.13));
}

/* Box testuale a destra */
.applicativi-build-note {
  position: relative;
  padding: 24px 0 24px 42px;
  border-left: 1px solid rgba(181, 216, 230, 0.72);
  border-radius: 0;
  background: transparent;
  border-top: 0;
  border-right: 0;
  border-bottom: 0;
  box-shadow: none;
}

.applicativi-build-note-block {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr);
  gap: 22px;
  align-items: start;
}

.applicativi-build-note-block h3 {
  margin: 0 0 14px;
  color: #07182A;
  font-size: 24px;
  line-height: 1.18;
  font-weight: 800;
  letter-spacing: -0.035em;
}

.applicativi-build-note-block p {
  margin: 0;
  color: #40566A;
  font-size: 18px;
  line-height: 1.62;
}

.applicativi-build-note-divider {
  height: 1px;
  margin: 36px 0;
  background: rgba(181, 216, 230, 0.62);
}

/* Icone box destro */
.applicativi-build-note-icon {
  position: relative;
  display: block;
  width: 58px;
  height: 58px;
  border-radius: 50%;
  background:
    linear-gradient(145deg, #ffffff 0%, #eef9fd 100%);
  border: 1px solid rgba(181, 216, 230, 0.78);
  box-shadow:
    0 14px 30px rgba(6, 15, 28, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 1);
}

.applicativi-build-note-icon::before,
.applicativi-build-note-icon::after {
  content: "";
  position: absolute;
  display: block;
}

/* Icona target */
.applicativi-build-note-icon-target::before {
  left: 16px;
  top: 16px;
  width: 24px;
  height: 24px;
  border: 3px solid #167A99;
  border-radius: 50%;
}

.applicativi-build-note-icon-target::after {
  left: 27px;
  top: 8px;
  width: 14px;
  height: 24px;
  border-right: 3px solid #167A99;
  border-top: 3px solid #167A99;
  transform: rotate(45deg);
  border-radius: 0 8px 0 0;
}

/* Icona puzzle/pezzo mancante */
.applicativi-build-note-icon-puzzle::before {
  left: 15px;
  top: 16px;
  width: 28px;
  height: 26px;
  border: 3px solid #167A99;
  border-radius: 9px;
}

.applicativi-build-note-icon-puzzle::after {
  left: 26px;
  top: 8px;
  width: 12px;
  height: 12px;
  background: #eef9fd;
  border: 3px solid #167A99;
  border-radius: 50%;
}


/* ============================================================
   APPLICATIVI — INTERFACCE OPERATIVE E FILEMAKER
   ============================================================ */

.applicativi-special {
  padding: 12px 0 34px;
  background:
    linear-gradient(180deg, #f7fbfd 0%, #ffffff 100%);
}

.applicativi-special-head {
  max-width: 820px;
  margin: 0 0 30px;
}

.applicativi-special-head h2 {
  margin: 0;
  color: #07182A;
  font-size: 46px;
  line-height: 1.1;
  letter-spacing: -0.045em;
}

/* Fascia piena, non card */
.applicativi-special-panel {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  width: calc(100% + 80px);
  margin-right: -80px;
  min-height: 360px;
  overflow: hidden;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}


/* ============================================================
   APPLICATIVI — AREA SITO / INTERFACCE OPERATIVE
   ============================================================ */

.applicativi-web-area {
  position: relative;
  display: grid;
  grid-template-columns: minmax(230px, 0.62fr) minmax(260px, 1fr);
  gap: 28px;
  align-items: center;
  padding: 32px 34px 34px 0;
  background:
    radial-gradient(circle at 72% 48%, rgba(31, 160, 208, 0.075) 0%, rgba(31, 160, 208, 0.00) 44%),
    linear-gradient(145deg, #ffffff 0%, #f7fbfd 100%);
  overflow: hidden;
}

.applicativi-web-content {
  position: relative;
  z-index: 2;
}

.applicativi-web-content h3 {
  max-width: 270px;
  margin: 0 0 20px;
  color: #07182A;
  font-size: 34px;
  line-height: 1.08;
  letter-spacing: -0.045em;
}

.applicativi-web-content p {
  max-width: 285px;
  margin: 0 0 15px;
  color: #40566A;
  font-size: 16.5px;
  line-height: 1.56;
}

.applicativi-web-content p:last-child {
  margin-bottom: 0;
}

.applicativi-web-media {
  position: relative;
  z-index: 1;
  min-height: 250px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.applicativi-web-media img {
  display: block;
  width: 100%;
  max-width: 360px;
  height: auto;
  transform: translateX(6px) translateY(0);
  filter: drop-shadow(-14px 20px 28px rgba(6, 15, 28, 0.12));
}


/* ============================================================
   APPLICATIVI — AREA FILEMAKER
   ============================================================ */

.applicativi-filemaker-area {
  position: relative;
  display: grid;
  grid-template-columns: minmax(230px, 0.64fr) minmax(260px, 1fr);
  gap: 26px;
  align-items: center;
  padding: 32px 40px 34px 46px;
  background:
    radial-gradient(circle at 74% 38%, rgba(95, 196, 230, 0.26) 0%, rgba(95, 196, 230, 0.00) 42%),
    linear-gradient(145deg, #07182A 0%, #0B2238 54%, #06101E 100%);
  overflow: hidden;
}

.applicativi-filemaker-area::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.07) 0%, rgba(255, 255, 255, 0.00) 44%);
  pointer-events: none;
}

.applicativi-filemaker-content {
  position: relative;
  z-index: 2;
  align-self: stretch;
  display: flex;
  flex-direction: column;
}

.applicativi-filemaker-content h3 {
  margin: 0 0 20px;
  color: #ffffff;
  font-size: 36px;
  line-height: 1.08;
  letter-spacing: -0.045em;
}

.applicativi-filemaker-content p {
  max-width: 285px;
  margin: 0 0 15px;
  color: rgba(255, 255, 255, 0.78);
  font-size: 16px;
  line-height: 1.54;
}

.applicativi-filemaker-content p:last-of-type {
  margin-bottom: 0;
}

.applicativi-link {
  display: inline-flex;
  align-items: center;
  color: #8CDBF4;
  font-size: 15.5px;
  line-height: 1.2;
  font-weight: 800;
  text-decoration: none;
}

.applicativi-link:hover {
  color: #ffffff;
}

.applicativi-filemaker-content .applicativi-link {
  margin-top: auto;
  padding-top: 34px;
}

.applicativi-filemaker-media {
  position: relative;
  z-index: 2;
  align-self: center;
  min-height: 250px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.applicativi-filemaker-media img {
  display: block;
  width: 100%;
  max-width: 330px;
  height: auto;
  transform: perspective(1100px) rotateY(-7deg) rotateX(2deg) translateX(-2px) translateY(-2px);
  filter: drop-shadow(-18px 24px 32px rgba(0, 0, 0, 0.28));
}

.applicativi-filemaker-brand {
  position: absolute;
  right: 40px;
  bottom: 18px;
  display: grid;
  gap: 4px;
  justify-items: end;
  color: rgba(255, 255, 255, 0.74);
  font-size: 13px;
  line-height: 1.2;
}

.applicativi-claris-logo {
  display: block;
  color: #ffffff;
  font-size: 27px;
  line-height: 1;
  font-weight: 700;
  letter-spacing: -0.04em;
}

/* ============================================================
   APPLICATIVI — LA DIFFERENZA
   ============================================================ */

.applicativi-difference {
  padding: 42px 0 58px;
  background: #ffffff;
}

.applicativi-difference-inner {
  display: grid;
  grid-template-columns: minmax(0, 0.42fr) minmax(0, 0.58fr);
  gap: 58px;
  align-items: center;
}

.applicativi-difference-text h2 {
  max-width: 520px;
  margin: 0 0 20px;
  color: #07182A;
  font-size: 34px;
  line-height: 1.12;
  letter-spacing: -0.045em;
}

.applicativi-difference-text p {
  max-width: 520px;
  margin: 0 0 14px;
  color: #40566A;
  font-size: 17px;
  line-height: 1.58;
}

.applicativi-difference-text p:last-child {
  margin-bottom: 0;
}

.applicativi-difference-points {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: start;
}

.applicativi-difference-point {
  position: relative;
  min-height: 132px;
  padding: 4px 24px 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  text-align: center;
}

.applicativi-difference-point:not(:first-child)::before {
  content: "";
  position: absolute;
  left: 0;
  top: 4px;
  bottom: 8px;
  width: 1px;
  background: rgba(181, 216, 230, 0.72);
}

.applicativi-difference-point h3 {
  max-width: 170px;
  margin: 16px auto 0;
  color: #102337;
  font-size: 15px;
  line-height: 1.28;
  font-weight: 800;
  letter-spacing: -0.025em;
}

.applicativi-difference-icon {
  position: relative;
  display: block;
  width: 42px;
  height: 42px;
  margin: 0 auto;
  border-radius: 0;
  background: transparent;
  border: 0;
}

.applicativi-difference-icon::before,
.applicativi-difference-icon::after {
  content: "";
  position: absolute;
  display: block;
}

/* Icona — meno funzioni inutili */
.applicativi-difference-icon.funzioni::before {
  left: 8px;
  top: 19px;
  width: 26px;
  height: 3px;
  background: #1F6BFF;
  border-radius: 4px;
}

/* Icona — meno adattamenti forzati */
.applicativi-difference-icon.adattamenti::before {
  left: 8px;
  top: 11px;
  width: 26px;
  height: 3px;
  background: #1F6BFF;
  border-radius: 4px;
  box-shadow:
    0 9px 0 #1F6BFF,
    0 18px 0 #1F6BFF;
}

.applicativi-difference-icon.adattamenti::after {
  left: 13px;
  top: 7px;
  width: 6px;
  height: 6px;
  background: #ffffff;
  border: 2px solid #1F6BFF;
  border-radius: 50%;
  box-shadow:
    12px 9px 0 -2px #ffffff,
    12px 9px 0 0 #1F6BFF,
    -1px 18px 0 -2px #ffffff,
    -1px 18px 0 0 #1F6BFF;
}

/* Icona — meno distanza tra sviluppo e uso */
.applicativi-difference-icon.utenti::before {
  left: 10px;
  top: 8px;
  width: 8px;
  height: 8px;
  border: 2px solid #1F6BFF;
  border-radius: 50%;
  box-shadow: 15px 0 0 -2px #ffffff, 15px 0 0 0 #1F6BFF;
}

.applicativi-difference-icon.utenti::after {
  left: 6px;
  bottom: 8px;
  width: 12px;
  height: 10px;
  border: 2px solid #1F6BFF;
  border-top: 0;
  border-radius: 0 0 12px 12px;
  box-shadow: 16px 0 0 -2px #ffffff, 16px 0 0 0 #1F6BFF;
}

/* Icona — più continuità */
.applicativi-difference-icon.continuita::before {
  left: 8px;
  top: 10px;
  width: 26px;
  height: 26px;
  border: 2px solid #1F6BFF;
  border-radius: 9px;
}

.applicativi-difference-icon.continuita::after {
  left: 17px;
  top: 16px;
  width: 8px;
  height: 13px;
  border-right: 2px solid #1F6BFF;
  border-bottom: 2px solid #1F6BFF;
  transform: rotate(38deg);
}

/* ============================================================
   APPLICATIVI — PER CHI È / PER CHI NON È
   ============================================================ */

.applicativi-target {
  padding: 44px 0 52px;
  background:
    linear-gradient(180deg, #f7fbfd 0%, #ffffff 100%);
}

.applicativi-target-head {
  max-width: 900px;
  margin: 0 auto 58px;
  text-align: center;
}

.applicativi-target-head p {
  max-width: 720px;
  margin: 18px auto 0;
  color: #40566A;
  font-size: 18px;
  line-height: 1.55;
  letter-spacing: -0.01em;
}

.applicativi-target-head h2 {
  margin: 0;
  color: #07182A;
  font-size: 40px;
  line-height: 1.08;
  letter-spacing: -0.035em;
}

/* Confronto tipografico, senza card, senza bullet */
.applicativi-target-compare {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 76px;
  align-items: start;
  max-width: 1120px;
  margin: 0 auto;
}

.applicativi-target-compare::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 8px;
  bottom: -8px;
  width: 1px;
  background: rgba(181, 216, 230, 0.58);
  transform: translateX(-50%);
}

.applicativi-target-column {
  position: relative;
  min-width: 0;
  counter-reset: target-item;
}

.applicativi-target-column h3 {
  position: relative;
  display: inline-block;
  margin: 0 0 32px;
  color: #07182A;
  font-size: 32px;
  line-height: 1.1;
  letter-spacing: -0.025em;
  text-align: left;
}

.applicativi-target-fit h3::before,
.applicativi-target-not-fit h3::before {
  content: none;
}

.applicativi-target-fit h3::after,
.applicativi-target-not-fit h3::after {
  content: "";
  display: block;
  width: 62px;
  height: 3px;
  margin: 13px 0 0;
  border-radius: 999px;
}

.applicativi-target-fit h3::after {
  background: #1FA0D0;
}

.applicativi-target-not-fit h3::after {
  background: #9A7A70;
}

.applicativi-target-items {
  display: grid;
  gap: 22px;
}

.applicativi-target-item {
  position: relative;
  counter-increment: target-item;
  padding-left: 62px;
  border: 0;
}

.applicativi-target-item::before {
  content: counter(target-item, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: -0.02em;
  color: rgba(31, 160, 208, 0.92);
  font-size: 20px;
  line-height: 1;
  font-weight: 800;
  letter-spacing: -0.02em;
}

.applicativi-target-not-fit .applicativi-target-item::before {
  color: rgba(154, 122, 112, 0.88);
}

.applicativi-target-item:last-child {
  border-bottom: 0;
}

.applicativi-target-item span {
  display: block;
  max-width: 600px;
  color: #40566A;
  font-size: 20px;
  line-height: 1.42;
  letter-spacing: -0.012em;
}

.applicativi-target-fit .applicativi-target-item span {
  color: #334B5F;
}

.applicativi-target-not-fit .applicativi-target-item span {
  color: #4E5560;
}

/* ============================================================
   APPLICATIVI — CTA FINALE
   Mantiene il componente standard, con testo specifico Applicativi
   ============================================================ */

.page-applicativi .cta-inner p {
  max-width: 520px;
  margin-bottom: 44px;
  font-size: 19px;
  line-height: 1.55;
}

/* ============================================================
   FILEMAKER — pagina interna
   Versione desktop
   ============================================================ */

/* ============================================================
   FILEMAKER — HERO
   ============================================================ */

.page-filemaker .hero-filemaker {
  position: relative;
  min-height: 620px;
  overflow: hidden;
  background: #f8fbfe;
}

.page-filemaker .hero-filemaker .hero-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.page-filemaker .hero-filemaker .hero-bg img {
  filter: contrast(1.12) saturate(1.08) brightness(0.94);
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center right;
  display: block;
}

.page-filemaker .hero-filemaker .container {
  position: relative;
  z-index: 2;
}

.page-filemaker .hero-filemaker .hero-inner {
  min-height: 620px;
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  align-items: start;
  padding-top: 92px;
}

.hero-filemaker .hero-inner > div:first-child {
  transform: translateY(-22px);
}

.page-filemaker .hero-filemaker .eyebrow {
  margin-bottom: 18px;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #1FA0D0;
}

.page-filemaker .hero-filemaker h1 {
  max-width: 620px;
  margin: 0;
  margin-bottom: 30px;
  color: #061936;
  font-size: 58px;
  line-height: 1.04;
  letter-spacing: -0.045em;  
}

.hero-filemaker .hero-sub {

  max-width: 620px;
  color: #5f6f86;
  font-size: 21px;
  font-weight: 400;
  line-height: 1.62;
}

.hero-filemaker::after,
.page-filemaker .hero::after {
  background: linear-gradient(
    to right,
    rgba(248, 250, 252, 0.92) 0%,
    rgba(248, 250, 252, 0.80) 30%,
    rgba(248, 250, 252, 0.38) 52%,
    rgba(248, 250, 252, 0.08) 72%,
    rgba(248, 250, 252, 0.00) 100%
  );
}
.page-filemaker .hero-filemaker .btn-primary {
  margin-top: 4px;
}
/* ============================================================
   FILEMAKER — POSIZIONAMENTO
   ============================================================ */

.filemaker-position {
  padding: 48px 0 64px;
  background: #ffffff;
}

.filemaker-position-head {
  max-width: 820px;
  margin: 0 auto 54px;
  text-align: center;
}

.filemaker-position-head h2 {
  margin: 0;
  color: #071a36;
  font-size: 40px;
  line-height: 1.24;
  letter-spacing: -0.035em;
}

.filemaker-position-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  max-width: 1050px;
  margin: 0 auto;
}

.filemaker-position-item {
  position: relative;
  padding: 0 42px;
}

.filemaker-position-item + .filemaker-position-item {
  border-left: 1px solid rgba(9, 31, 61, 0.12);
}

.filemaker-position-item::before {
  content: "";
  display: block;
  width: 42px;
  height: 3px;
  margin: 0 0 22px;
  border-radius: 999px;
  background: #1FA0D0;
}

.filemaker-position-item h3 {
  margin: 0 0 12px;
  color: #071a36;
  font-size: 18px;
  line-height: 1.25;
  letter-spacing: -0.015em;
}

.filemaker-position-item p {
  margin: 0;
  color: #53657c;
  font-size: 16px;
  line-height: 1.65;
}

/* ============================================================
   FILEMAKER — PARTNER, RESELLER, HOSTING E VPS
   ============================================================ */

.filemaker-partner {
  padding: 48px 0 40px;
  background:
    linear-gradient(180deg, #f4f8fc 0%, #eef5fa 100%);
}
.filemaker-partner-grid {
  display: grid;
  grid-template-columns: minmax(300px, 0.82fr) minmax(0, 1.55fr);
  gap: 58px;
  align-items: center;
}

.filemaker-partner-intro {
  max-width: 430px;
}

.filemaker-partner-intro h2 {
  margin: 0 0 28px;
  color: #071a36;
  font-size: 42px;
  line-height: 1.12;
  letter-spacing: -0.04em;
}

.filemaker-partner-intro p {
  margin: 0 0 28px;
  color: #40556f;
  font-size: 18px;
  line-height: 1.7;
}

.filemaker-partner-intro strong {
  display: block;
  max-width: 310px;
  padding-top: 26px;
  color: #071a36;
  font-size: 18px;
  line-height: 1.45;
  border-top: 3px solid #1FA0D0;
}

.filemaker-partner-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.filemaker-partner-card {
  position: relative;
  min-height: 245px;
  padding: 24px 24px 24px;
  overflow: hidden;
  border-radius: 4px;
  color: #ffffff;
  background: #071a36;
  box-shadow: 0 16px 32px rgba(6, 20, 42, 0.15);
}

.filemaker-partner-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background:
    linear-gradient(180deg, rgba(5, 17, 36, 0.26) 0%, rgba(5, 17, 36, 0.88) 100%),
    radial-gradient(circle at 78% 14%, rgba(31, 160, 208, 0.58), transparent 42%);
}

.filemaker-partner-card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  opacity: 0.28;
  background:
    linear-gradient(135deg, rgba(255,255,255,0.16) 0%, transparent 38%),
    repeating-linear-gradient(
      90deg,
      rgba(255,255,255,0.08) 0,
      rgba(255,255,255,0.08) 1px,
      transparent 1px,
      transparent 28px
    );
}

.filemaker-card-partner {
  background:
    linear-gradient(145deg, #0b163d 0%, #162a62 52%, #08142f 100%);
}

.filemaker-card-hosting {
  background:
    linear-gradient(145deg, #05383f 0%, #096a77 48%, #061f35 100%);
}

.filemaker-card-vps {
  background:
    linear-gradient(145deg, #063b74 0%, #082759 54%, #061528 100%);
}

.filemaker-partner-card > * {
  position: relative;
  z-index: 1;
}

.filemaker-card-icon {
  width: 62px;
  height: 62px;
  margin: 22px auto 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 22px;
  border: 1px solid rgba(255,255,255,0.38);
  background: linear-gradient(135deg, rgba(255,255,255,0.24), rgba(255,255,255,0.07));
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,0.10),
    0 12px 26px rgba(0,0,0,0.16);
}

/* Logo Claris nel box Partner */
.filemaker-card-claris img {
  display: block;
  width: 54px;
  height: auto;
  filter: none;
  opacity: 0.96;
}

/* Icona cloud nel box Hosting FileMaker */
.filemaker-card-cloud::before {
  content: "";
  width: 48px;
  height: 32px;
  display: block;
  background: rgba(255,255,255,0.96);
  -webkit-mask:
    radial-gradient(circle 12px at 17px 20px, #000 98%, transparent 100%),
    radial-gradient(circle 15px at 30px 15px, #000 98%, transparent 100%),
    radial-gradient(circle 11px at 40px 21px, #000 98%, transparent 100%),
    linear-gradient(#000 0 0) bottom / 40px 17px no-repeat;
  mask:
    radial-gradient(circle 12px at 17px 20px, #000 98%, transparent 100%),
    radial-gradient(circle 15px at 30px 15px, #000 98%, transparent 100%),
    radial-gradient(circle 11px at 40px 21px, #000 98%, transparent 100%),
    linear-gradient(#000 0 0) bottom / 40px 17px no-repeat;
}

/* Icona server nel box VPS ottimizzate */
.filemaker-card-server {
  position: relative;
}

.filemaker-card-server::before {
  content: "";
  width: 48px;
  height: 38px;
  display: block;
  border-radius: 6px;
  border-top: 5px solid rgba(255,255,255,0.96);
  border-bottom: 5px solid rgba(255,255,255,0.96);
  background:
    linear-gradient(rgba(255,255,255,0.96), rgba(255,255,255,0.96)) center / 100% 5px no-repeat;
}

.filemaker-card-server::after {
  content: "";
  position: absolute;
  right: 18px;
  top: 25px;
  width: 4px;
  height: 4px;
  border-radius: 999px;
  background: #5FC4E6;
  box-shadow: 0 11px 0 #5FC4E6, 0 -11px 0 #5FC4E6;
}
.filemaker-partner-card h3 {
  margin: 0 0 08px;
  color: #ffffff;
  font-size: 22px;
  line-height: 1.24;
  letter-spacing: -0.02em;
}

.filemaker-partner-card p {
  margin: 0;
  color: rgba(255,255,255,0.84);
  font-size: 16px;
  line-height: 1.46;
}

/* ============================================================
   FILEMAKER — PROBLEMA
   ============================================================ */

.filemaker-problem {
  background: #ffffff;
}
.filemaker-problem-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  max-width: 1400px;
  margin: 0 auto;
  min-height: 470px;
}

.filemaker-problem-media {
  position: relative;
  overflow: hidden;
  background: #eaf2f7;
}
.filemaker-problem-media img {
  width: 100%;
  height: 100%;
  min-height: 470px;
  object-fit: cover;
  object-position: 30% center;
  display: block;
  filter: brightness(1.03) saturate(0.96);
  transform: scale(1.01);
}
.filemaker-problem-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      90deg,
      rgba(248,251,254,0.00) 0%,
      rgba(248,251,254,0.00) 42%,
      rgba(248,251,254,0.24) 68%,
      rgba(248,251,254,0.82) 100%
    ),
    linear-gradient(
      180deg,
      rgba(255,255,255,0.03) 0%,
      rgba(6,25,54,0.025) 100%
    );
  pointer-events: none;
}
.filemaker-problem-content {
  padding: 44px 78px 56px;
  background: #f8fbfe;
}
.filemaker-problem-content h2 {
  margin: 0 0 24px;
  color: #071a36;
  font-size: 40px;
  line-height: 1.15;
  letter-spacing: -0.035em;
}

.filemaker-problem-content p {
  margin: 0 0 18px;
  color: #40556f;
  font-size: 18px;
  line-height: 1.7;
}

.filemaker-problem-intro {
  max-width: 680px;
}

.filemaker-problem-points {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 26px;
  margin-top: 42px;
}

.filemaker-problem-point {
  padding-top: 22px;
  border-top: 1px solid rgba(9, 31, 61, 0.14);
}

.filemaker-problem-point h3 {
  margin: 0 0 10px;
  color: #071a36;
  font-size: 17px;
  line-height: 1.3;
}

.filemaker-problem-point p {
  margin: 0;
  color: #5a6d83;
  font-size: 15px;
  line-height: 1.6;
}

.filemaker-point-users p {
  margin-top: 12px;
}

/* ============================================================
   FILEMAKER — SISTEMA COMPLETO
   ============================================================ */

.filemaker-system {
  padding: 44px 0 46px;
  background: #ffffff;
}

.filemaker-system-head {
  max-width: 820px;
  margin: 0 auto 36px;
  text-align: center;
}

.filemaker-system-head h2 {
  margin: 0 0 18px;
  color: #071a36;
  font-size: 38px;
  line-height: 1.16;
  letter-spacing: -0.035em;
}

.filemaker-system-head p {
  margin: 0 auto;
  max-width: 720px;
  color: #52667e;
  font-size: 18px;
  line-height: 1.7;
}

.filemaker-system-grid {
  display: grid;
  grid-template-columns: repeat(5, 150px);
  gap: 40px;
  justify-content: center;
}

.filemaker-system-item {
  position: relative;
  padding: 28px 18px 0 0;
  text-align: left;
}

.filemaker-system-item::before {
  content: "";
  display: block;
  width: 42px;
  height: 3px;
  margin: 0 0 16px;
  border-radius: 999px;
  background: #1FA0D0;
}

.filemaker-system-item h3 {
  margin: 0 0 12px;
  color: #071a36;
  font-size: 18px;
  line-height: 1.3;
  letter-spacing: -0.015em;
}

.filemaker-system-item p {
  max-width: 150px;
  margin: 0;
  color: #5a6d83;
  font-size: 15px;
  line-height: 1.46;
}
/* ============================================================
   FILEMAKER — CASO REALE / COSA CAMBIA
   ============================================================ */

.filemaker-case {
  background: #f4f8fc;
}
.filemaker-case-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  max-width: 1400px;
  margin: 0 auto;
  min-height: 420px;
}

.filemaker-case-content {
  padding: 50px 74px 46px 84px;
}

.filemaker-case-content h2 {
  margin: 0 0 36px;
  color: #071a36;
  font-size: 42px;
  line-height: 1.12;
  letter-spacing: -0.04em;
}

.filemaker-case-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
  margin-bottom: 44px;
}

.filemaker-case-step {
  position: relative;
}

.filemaker-case-step span {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  margin-bottom: 16px;
  border-radius: 999px;
  color: #ffffff;
  background: #1FA0D0;
  font-size: 15px;
  font-weight: 800;
  line-height: 1;
}

.filemaker-case-step h3 {
  margin: 0 0 10px;
  color: #071a36;
  font-size: 17px;
  line-height: 1.28;
}

.filemaker-case-step p {
  margin: 0;
  color: #53677e;
  font-size: 15px;
  line-height: 1.62;
}

.filemaker-case-benefits {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
  padding-top: 30px;
  border-top: 1px solid rgba(9, 31, 61, 0.14);
}

.filemaker-case-benefits article {
  min-width: 0;
}

.filemaker-case-benefits h3 {
  margin: 0 0 6px;
  color: #071a36;
  font-size: 15px;
  line-height: 1.3;
}

.filemaker-case-benefits p {
  margin: 0;
  color: #5d7188;
  font-size: 14px;
  line-height: 1.45;
}

.filemaker-case-media {
  position: relative;
  overflow: hidden;
  background: #dce8ef;
}

.filemaker-case-media img {
  width: 100%;
  height: 100%;
  min-height: 420px;
  object-fit: cover;
  object-position: 86% center;
  display: block;
}

.filemaker-case-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      90deg,
      rgba(244,248,252,0.92) 0%,
      rgba(244,248,252,0.58) 13%,
      rgba(244,248,252,0.16) 28%,
      rgba(244,248,252,0.00) 42%
    ),
    linear-gradient(
      180deg,
      rgba(6,25,54,0.02),
      rgba(6,25,54,0.08)
    );
  pointer-events: none;
}

/* ============================================================
   FILEMAKER — DIFFERENZA VINCASOFT
   ============================================================ */

.filemaker-difference {
  position: relative;
  min-height: 360px;
  padding: 54px 0 56px;
  overflow: hidden;
  background:
    radial-gradient(circle at 86% 44%, rgba(42, 116, 255, 0.28), transparent 24%),
    linear-gradient(135deg, #071832 0%, #06101f 58%, #091c3d 100%);
}

.filemaker-difference::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.18;
  background:
    linear-gradient(90deg, rgba(255,255,255,0.08) 1px, transparent 1px),
    linear-gradient(180deg, rgba(255,255,255,0.06) 1px, transparent 1px);
  background-size: 48px 48px;
  pointer-events: none;
}

.filemaker-difference .container {
  position: relative;
  z-index: 1;
}

.filemaker-difference-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr) 260px;
  gap: 56px;
  align-items: start;
}

/* Titolo principale */
.filemaker-difference-title h2 {
  margin: 0;
  color: #ffffff;
  font-size: 41px;
  line-height: 1.28;
  letter-spacing: -0.005em;
}

/* Testo centrale */
.filemaker-difference-text {
  padding-left: 48px;
  border-left: 1px solid rgba(255,255,255,0.28);
}

.filemaker-difference-text p {
  margin: 0;
  color: rgba(255,255,255,0.78);
  font-size: 18px;
  line-height: 1.72;
}

.filemaker-difference-text p + p {
  margin-top: 18px;
  color: #ffffff;
  font-weight: 700;
}

/* Simbolo a layer — immagine */

.filemaker-difference-mark {
  position: relative;
  width: 340px;
  height: 300px;
  justify-self: center;
  margin-top: 0;
  overflow: hidden;
  border-radius: 34px;
  mix-blend-mode: screen;
  filter: drop-shadow(0 30px 62px rgba(42, 92, 255, 0.36));
  transform: translateY(-24px);
}

.filemaker-difference-mark img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

/* Vecchio simbolo CSS — disattivato perché ora usiamo immagine */
.filemaker-layer,
.filemaker-layer-one,
.filemaker-layer-two,
.filemaker-layer-three {
  display: none;
}
/* ============================================================
   FILEMAKER — CTA FINALE
   Mantiene il componente standard, con testo specifico FileMaker
   ============================================================ */
.page-filemaker .cta-inner p {
  max-width: 520px;
  margin-bottom: 64px;
  font-size: 19px;
  line-height: 1.55;
}
.page-filemaker .cta-inner .btn-primary {
  margin-top: 0px;
}
/* ============================================================
   CONTATTI — pagina interna
   ============================================================ */

/* ============================================================
   CONTATTI — HERO
   ============================================================ */

.hero-contatti {
  position: relative;
  min-height: 620px;
  background: #06101d;
  overflow: hidden;
}

.hero-contatti .hero-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.hero-contatti .hero-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center right;
  display: block;
  opacity: 1;
  filter: brightness(1.42) contrast(1.02) saturate(1.08);
}

.hero-contatti::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(
      90deg,
      rgba(6, 15, 28, 0.86) 0%,
      rgba(6, 15, 28, 0.78) 28%,
      rgba(6, 15, 28, 0.52) 48%,
      rgba(6, 15, 28, 0.20) 70%,
      rgba(6, 15, 28, 0.06) 100%
    ),
    linear-gradient(
      180deg,
      rgba(6, 15, 28, 0.02) 0%,
      rgba(6, 15, 28, 0.00) 56%,
      rgba(6, 15, 28, 0.22) 100%
    );
}

/* Forza la container dell'hero a non centrare il contenuto */
.page-contatti .hero-contatti > .container {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: none;
  margin: 0;
  padding-left: 80px;
  padding-right: 80px;
}

/* Disattiva la struttura hero globale e crea layout dedicato */
.page-contatti .hero-contatti .hero-inner {
  min-height: 620px;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 58px 0 72px;

  display: block;
}

/* Blocco testo realmente a sinistra */
.page-contatti .hero-contatti .hero-inner > div:first-child {
  width: 560px;
  max-width: 560px;
  margin: 0;
  padding: 0;
}

/* Nasconde la seconda colonna vuota dell'HTML */
.page-contatti .hero-contatti .hero-inner > div:last-child {
  display: none;
}

/* Nasconde la voce CONTATTI nell'hero */
.page-contatti .hero-contatti .eyebrow {
  display: none;
}

.page-contatti .hero-contatti h1 {
  max-width: 560px;
  margin: 0;
  color: #ffffff;
  font-size: 64px;
  line-height: 1.02;
  letter-spacing: -0.055em;
}

.page-contatti .hero-contatti h1::after {
  content: "";
  display: block;
  width: 56px;
  height: 3px;
  margin-top: 30px;
  background: #1FA0D0;
  border-radius: 999px;
}

.page-contatti .hero-contatti .hero-sub {
  max-width: 500px;
  margin: 30px 0 0;
  color: rgba(255, 255, 255, 0.86);
  font-size: 19px;
  line-height: 1.65;
}

.page-contatti .hero-contatti .btn-primary {
  margin-top: 76px;
}

/* ============================================================
   CONTATTI — elementi comuni
   ============================================================ */

.page-contatti .contact-kicker {
  margin: 0 0 12px;
  color: #167A99;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.10em;
  text-transform: uppercase;
}

.page-contatti .contact-section-head {
  max-width: 680px;
  margin-bottom: 42px;
}

.page-contatti .contact-section-head h2 {
  margin: 0;
  color: #07152a;
  font-size: 42px;
  line-height: 1.08;
  letter-spacing: -0.04em;
}

.page-contatti .contact-section-head p:not(.contact-kicker) {
  margin: 14px 0 0;
  color: #5f6f82;
  font-size: 18px;
  line-height: 1.6;
}

.page-contatti a {
  text-decoration: none;
}

/* ============================================================
   CONTATTI — DUE SEDI
   ============================================================ */

.contact-locations {
  position: relative;
  padding: 78px 0 86px;
  background:
    radial-gradient(circle at 16% 18%, rgba(31, 160, 208, 0.10), transparent 30%),
    linear-gradient(180deg, #ffffff 0%, #f8fbfd 100%);
}

.contact-locations::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  width: min(1240px, calc(100% - 160px));
  height: 1px;
  transform: translateX(-50%);
  background: rgba(7, 21, 42, 0.08);
}

.contact-locations .container {
  display: grid;
  grid-template-columns: 0.82fr 1fr 1fr;
  gap: 58px;
  align-items: start;
}

.contact-locations .contact-section-head {
  max-width: 380px;
  margin: 0;
}

.contact-locations .contact-section-head h2 {
  margin: 0;
  color: #07152a;
  font-size: 36px;
  line-height: 1.08;
  letter-spacing: -0.04em;
}

.contact-locations .contact-section-head p {
  margin: 20px 0 0;
  color: #5f6f82;
  font-size: 18px;
  line-height: 1.65;
}

.contact-locations-grid {
  display: contents;
}

.contact-location {
  position: relative;
  min-height: 300px;
}

.contact-location + .contact-location {
  padding-left: 44px;
  border-left: 1px solid rgba(7, 21, 42, 0.10);
}

.contact-location-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  margin-bottom: 28px;
}

.contact-location-head > div {
  display: flex;
  align-items: center;
  gap: 18px;
}

.contact-location h3 {
  margin: 0;
  color: #07152a;
  font-size: 24px;
  line-height: 1.2;
  letter-spacing: -0.025em;
}

.contact-location p {
  margin: 0;
  color: #415166;
  font-size: 17px;
  line-height: 1.55;
}

.contact-location-icon {
  width: 54px;
  height: 54px;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background:
    radial-gradient(circle at 35% 25%, rgba(255, 255, 255, 0.95), rgba(226, 241, 248, 0.95));
  box-shadow:
    0 18px 40px rgba(22, 122, 153, 0.14),
    inset 0 0 0 1px rgba(31, 160, 208, 0.12);
}

.contact-location-icon::before {
  content: "";
  width: 24px;
  height: 24px;
  display: block;
  background: #1FA0D0;
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
}

.contact-icon-pin::before {
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 22s7-6.1 7-13a7 7 0 1 0-14 0c0 6.9 7 13 7 13Zm0-9.5A3.5 3.5 0 1 0 12 5a3.5 3.5 0 0 0 0 7.5Z'/%3E%3C/svg%3E");
}

.contact-icon-building::before {
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 21V4.8C4 3.8 4.8 3 5.8 3h8.4c1 0 1.8.8 1.8 1.8V9h2.2c1 0 1.8.8 1.8 1.8V21h-6v-4h-4v4H4Zm3-13h2V6H7v2Zm4 0h2V6h-2v2Zm-4 4h2v-2H7v2Zm4 0h2v-2h-2v2Zm5 4h2v-2h-2v2Z'/%3E%3C/svg%3E");
}

.contact-location-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: 0 14px;
  border-radius: 999px;
  background: rgba(31, 160, 208, 0.12);
  color: #167A99;
  font-size: 12px;
  font-weight: 800;
}

.contact-location-legal .contact-location-label {
  background: rgba(7, 21, 42, 0.08);
  color: #667386;
}

.contact-map-preview {
  width: 100%;
  height: 210px;
  margin-top: 28px;
  overflow: hidden;
  border-radius: 16px;
  background: #eaf2f7;
  box-shadow:
    0 18px 44px rgba(7, 21, 42, 0.10),
    inset 0 0 0 1px rgba(7, 21, 42, 0.08);
}

.contact-map-preview iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

.contact-location-note {
  width: 100%;
  min-height: 150px;
  margin-top: 28px;
  padding: 28px 0 0;
  border-top: 1px solid rgba(7, 21, 42, 0.10);
  background: transparent;
  box-shadow: none;
}

.contact-location-note strong {
  display: block;
  margin-bottom: 14px;
  color: #07152a;
  font-size: 15px;
  font-weight: 800;
}

.contact-location-note ul {
  display: grid;
  gap: 9px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.contact-location-note li {
  position: relative;
  padding-left: 20px;
  color: #506176;
  font-size: 16px;
  line-height: 1.42;
}

.contact-location-note li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.62em;
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: #1FA0D0;
  box-shadow: 0 0 0 4px rgba(31, 160, 208, 0.10);
}
/* ============================================================
   CONTATTI — CANALI DIRETTI
   ============================================================ */

.contact-direct {
  padding: 34px 0 74px;
  background:
    linear-gradient(180deg, #f8fbfd 0%, #ffffff 100%);
}

.contact-direct .contact-section-head {
  margin-bottom: 42px;
}

.contact-direct .contact-section-head h2 {
  margin: 0;
  color: #07152a;
  font-size: 42px;
  line-height: 1.08;
  letter-spacing: -0.04em;
}

.contact-direct-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0;
}

.contact-direct-item {
  display: grid;
  grid-template-columns: 62px minmax(0, 1fr);
  gap: 20px;
  align-items: center;
  min-height: 150px;
}

.contact-direct-item + .contact-direct-item {
  padding-left: 42px;
  border-left: 1px solid rgba(7, 21, 42, 0.12);
}

.contact-direct-icon {
  width: 58px;
  height: 58px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background:
    radial-gradient(circle at 34% 24%, #ffffff 0%, #eef7fb 52%, #dceef6 100%);
  box-shadow:
    0 18px 38px rgba(31, 160, 208, 0.14),
    inset 0 0 0 1px rgba(31, 160, 208, 0.12);
}

.contact-direct-icon::before {
  content: "";
  width: 26px;
  height: 26px;
  display: block;
  background: #1FA0D0;
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
}

.contact-icon-email::before {
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 5h18v14H3V5Zm9 7.2L5.4 7v10h13.2V7L12 12.2Zm0-2.2L18.4 7H5.6L12 10Z'/%3E%3C/svg%3E");
}

.contact-icon-pec::before {
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 4h16v16H4V4Zm2 3v1.2l6 3.8 6-3.8V7H6Zm0 3.5V18h12v-7.5l-6 3.8-6-3.8Z'/%3E%3C/svg%3E");
}

.contact-icon-phone::before {
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.6 3.5 9.4 4c.6.1 1 .5 1.2 1.1l.8 2.7c.2.6 0 1.3-.5 1.7l-1.6 1.3c1 2 2.6 3.6 4.7 4.7l1.3-1.6c.4-.5 1.1-.7 1.7-.5l2.7.8c.6.2 1 .6 1.1 1.2l.5 2.8c.1.8-.4 1.5-1.2 1.7-1.2.2-2.4.2-3.8 0C9.5 19 5 14.5 4.1 7.7c-.2-1.3-.2-2.6 0-3.8.2-.8.9-1.3 1.7-1.2Z'/%3E%3C/svg%3E");
}

.contact-direct-label {
  margin: 0 0 6px;
  color: #167A99;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.contact-direct h3 {
  margin: 0;
  color: #07152a;
  font-size: 24px;
  line-height: 1.18;
  letter-spacing: -0.025em;
}

.contact-direct h3 a {
  color: inherit;
}

.contact-direct h3 a:hover {
  color: #167A99;
}

.contact-direct-item p:last-child {
  max-width: 300px;
  margin: 11px 0 0;
  color: #5f6f82;
  font-size: 15px;
  line-height: 1.5;
}
/* ============================================================
   CONTATTI — GESTIONE RICHIESTE
   ============================================================ */

.contact-requests {
  position: relative;
  padding: 44px 0 44px;
  background:
    radial-gradient(circle at 76% 28%, rgba(31, 160, 208, 0.08), transparent 30%),
    linear-gradient(180deg, #f4f8fb 0%, #f8fbfd 100%);
}

.contact-requests::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  width: min(1240px, calc(100% - 160px));
  height: 1px;
  transform: translateX(-50%);
  background: rgba(7, 21, 42, 0.08);
}

.contact-requests .contact-section-head {
  max-width: 760px;
  margin-bottom: 46px;
}

.contact-requests .contact-section-head h2 {
  margin: 0;
  color: #07152a;
  font-size: 42px;
  line-height: 1.08;
  letter-spacing: -0.04em;
}

.contact-requests .contact-section-head p {
  max-width: 680px;
  margin: 16px 0 0;
  color: #5f6f82;
  font-size: 18px;
  line-height: 1.6;
}

.contact-requests-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  margin-top: 8px;
}

.contact-request-item {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr);
  gap: 22px;
  align-items: flex-start;
  min-height: 160px;
}

.contact-request-item + .contact-request-item {
  padding-left: 72px;
  border-left: 1px solid rgba(7, 21, 42, 0.12);
}

.contact-request-icon {
  width: 48px;
  height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background:
    radial-gradient(circle at 35% 22%, #ffffff, #eef8fc 58%, #dceef6 100%);
  box-shadow:
    0 16px 34px rgba(31, 160, 208, 0.12),
    inset 0 0 0 1px rgba(31, 160, 208, 0.12);
}

.contact-request-icon::before {
  content: "";
  width: 23px;
  height: 23px;
  display: block;
  background: #1FA0D0;
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
}

.contact-icon-client::before {
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 12a4.5 4.5 0 1 0 0-9 4.5 4.5 0 0 0 0 9Zm0 2c-4.2 0-7.5 2.4-7.5 5.4V21h15v-1.6c0-3-3.3-5.4-7.5-5.4Z'/%3E%3C/svg%3E");
}

.contact-icon-project::before {
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9 3h6l1.6 2H21v15H3V5h4.4L9 3Zm-4 7v8h14v-8H5Z'/%3E%3C/svg%3E");
}

.contact-request-item h3 {
  margin: 0 0 17px;
  color: #07152a;
  font-size: 21px;
  line-height: 1.25;
  letter-spacing: -0.02em;
}

.contact-request-item ul {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.contact-request-item li {
  position: relative;
  padding-left: 22px;
  color: #44546a;
  font-size: 16px;
  line-height: 1.45;
}

.contact-request-item li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.62em;
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: #1FA0D0;
  box-shadow: 0 0 0 4px rgba(31, 160, 208, 0.10);
}
/* ============================================================
   CONTATTI — CTA FINALE
   Usa il componente CTA standard, con solo testo più compatto
   ============================================================ */

.page-contatti .cta-inner p {
  max-width: 420px;
  font-size: 17px;
  line-height: 1.42;
}
/* ============================================================
   PRIVACY POLICY — pagina di servizio
   Hero neutro · corpo leggibile · nessuna CTA
   ============================================================ */

/* ============================================================
   PRIVACY POLICY — HERO
   Pagina di servizio · blu/nero tecnico · profondità controllata
   ============================================================ */

.page-privacy .legal-hero {
  position: relative;
  padding: 58px 0 78px;
  background:
    radial-gradient(
      circle at 12% 18%,
      rgba(31, 160, 208, 0.18) 0%,
      rgba(14, 53, 86, 0.16) 24%,
      rgba(6, 20, 37, 0.00) 50%
    ),
    linear-gradient(
      115deg,
      #061425 0%,
      #071a2f 30%,
      #0a2540 56%,
      #cfdbe2 100%
    );
  border-bottom: 1px solid rgba(6, 20, 37, 0.30);
  overflow: hidden;
}

.page-privacy .legal-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      90deg,
      rgba(0, 0, 0, 0.14) 0%,
      rgba(6, 20, 37, 0.08) 36%,
      rgba(255, 255, 255, 0.08) 72%,
      rgba(255, 255, 255, 0.30) 100%
    );
  pointer-events: none;
}

.page-privacy .legal-hero::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 24px;
  background:
    linear-gradient(
      180deg,
      rgba(6, 20, 37, 0.00) 0%,
      rgba(6, 20, 37, 0.10) 100%
    );
  pointer-events: none;
}

.page-privacy .legal-hero .container {
  position: relative;
  z-index: 2;
}

.page-privacy .legal-hero-inner {
  max-width: 820px;
}

.page-privacy .legal-hero .eyebrow {
  display: none;
  align-items: center;
  margin-bottom: 18px;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(31, 160, 208, 0.18);
  color: #d9f4ff;
  font-size: 13px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.16);
}

.page-privacy .legal-hero h1 {
  max-width: 760px;
  margin: 0;
  color: #ffffff;
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: 58px;
  line-height: 1.04;
  font-weight: 800;
  letter-spacing: -0.055em;
  text-shadow: 0 16px 32px rgba(0, 0, 0, 0.22);
}
.page-privacy .legal-hero-sub {
  max-width: 690px;
  margin: 24px 0 0;
  color: rgba(235, 247, 252, 0.88);
  font-size: 21px;
  line-height: 1.62;
  font-weight: 500;
}
/* ============================================================
   PRIVACY POLICY — CONTENUTO
   ============================================================ */

.page-privacy .legal-page-content {
  padding: 72px 0 104px;
  background: #ffffff;
}

.page-privacy .legal-container {
  max-width: 920px;
}

.page-privacy .legal-content {
  position: relative;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.page-privacy .legal-content::before {
  display: none;
}

.page-privacy .legal-intro {
  margin: 0 0 42px;
  padding: 0 0 34px;
  color: #334757;
  font-size: 20px;
  line-height: 1.72;
  font-weight: 500;
  border-bottom: 1px solid rgba(12, 31, 48, 0.08);
}

.page-privacy .legal-section {
  margin-top: 42px;
}

.page-privacy .legal-section:first-of-type {
  margin-top: 0;
}

.page-privacy .legal-section h2 {
  margin: 0 0 18px;
  color: #061425;
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: 28px;
  line-height: 1.22;
  font-weight: 800;
  letter-spacing: -0.025em;
}

.page-privacy .legal-section p {
  margin: 0 0 18px;
  color: #425565;
  font-size: 18px;
  line-height: 1.74;
  font-weight: 400;
}

.page-privacy .legal-section p:last-child {
  margin-bottom: 0;
}

.page-privacy .legal-section strong {
  color: #122536;
  font-weight: 800;
}

.page-privacy .legal-section a {
  color: #167a99;
  font-weight: 700;
  text-decoration: none;
  text-underline-offset: 4px;
  transition:
    color 0.18s ease,
    text-decoration-color 0.18s ease;
}

.page-privacy .legal-section a:hover {
  color: #1fa0d0;
  text-decoration: underline;
  text-decoration-thickness: 1.5px;
}

.page-privacy .legal-section ul {
  margin: 14px 0 22px;
  padding: 0;
  list-style: none;
}

.page-privacy .legal-section ul:last-child {
  margin-bottom: 0;
}

.page-privacy .legal-section li {
  position: relative;
  margin: 0 0 13px;
  padding-left: 28px;
  color: #425565;
  font-size: 18px;
  line-height: 1.68;
}

.page-privacy .legal-section li:last-child {
  margin-bottom: 0;
}

.page-privacy .legal-section li::before {
  content: "";
  position: absolute;
  top: 0.72em;
  left: 2px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #1fa0d0;
  box-shadow: 0 0 0 5px rgba(31, 160, 208, 0.12);
}

.page-privacy .legal-section li strong {
  color: #122536;
}

/* ============================================================
   PRIVACY POLICY — MICRO-SEPARAZIONE TRA SEZIONI LUNGHE
   ============================================================ */

.page-privacy .legal-section + .legal-section {
  padding-top: 6px;
}

.page-privacy .legal-section:nth-of-type(4),
.page-privacy .legal-section:nth-of-type(7),
.page-privacy .legal-section:nth-of-type(10) {
  margin-top: 50px;
  padding-top: 42px;
  border-top: 1px solid rgba(12, 31, 48, 0.08);
}

/* ============================================================
   ANALIZZIAMO IL TUO CASO — pagina interna
   Pagina CTA guidata con form di contatto
   ============================================================ */

/* ANALIZZIAMO — HERO */
.hero-analizziamo {
  position: relative;
  min-height: 560px;
  display: flex;
  align-items: flex-start;
  overflow: hidden;
  background: #f8fbfd;
}

.hero-analizziamo .hero-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.hero-analizziamo .hero-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 88% center;
}

.hero-analizziamo::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(
    to right,
    rgba(248, 251, 253, 1.00) 0%,
    rgba(248, 251, 253, 1.00) 34%,
    rgba(248, 251, 253, 0.94) 47%,
    rgba(248, 251, 253, 0.62) 61%,
    rgba(248, 251, 253, 0.18) 78%,
    rgba(248, 251, 253, 0.02) 100%
  );
}

.hero-analizziamo .container {
  position: relative;
  z-index: 2;
}

.hero-analizziamo .hero-inner {
  display: grid;
  grid-template-columns: minmax(0, 470px) 1fr;
  align-items: start;
  gap: 90px;
  padding-top: 58px;
  transform: translateX(-220px);
}
.hero-analizziamo h1 {
  max-width: 470px;
  margin: 0;
  color: #071827;
  font-size: 64px;
  line-height: 1.04;
  letter-spacing: -0.055em;
}

.hero-analizziamo .hero-sub {
  max-width: 470px;
  margin-top: 46px;
  color: #304556;
  font-size: 22px;
  line-height: 1.5;
}
/* ============================================================
   ANALIZZIAMO — elementi condivisi
   ============================================================ */

.page-analizziamo .analisi-kicker {
  margin: 0 0 14px;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #1FA0D0;
}

.page-analizziamo h2 {
  color: #071827;
}

.page-analizziamo h3 {
  color: #071827;
}

.page-analizziamo p {
  color: #405466;
}

.page-analizziamo .btn-primary {
  border: 0;
  cursor: pointer;
}

/* ============================================================
   ANALIZZIAMO — INTRO / POSIZIONAMENTO
   ============================================================ */

.analisi-intro {
  padding: 44px 0 62px;
  background: #ffffff;
}

.analisi-intro-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 420px;
  gap: 82px;
  align-items: center;
}

.analisi-intro-content {
  max-width: 760px;
}

.analisi-intro-content h2 {
  max-width: 720px;
  margin: 0 0 30px;
  font-size: 48px;
  line-height: 1.08;
  letter-spacing: -0.04em;
}

.analisi-intro-content p {
  max-width: 680px;
  margin: 0 0 18px;
  font-size: 20px;
  line-height: 1.65;
}

.analisi-intro-content p:last-child {
  margin-bottom: 0;
}

.analisi-intro-card {
  position: relative;
  padding: 42px 40px 44px;
  border-radius: 30px;
  background:
    linear-gradient(180deg, #ffffff 0%, #f4fbfe 100%);
  border: 1px solid rgba(31, 160, 208, 0.16);
  box-shadow: 0 28px 70px rgba(7, 24, 39, 0.09);
}

.analisi-intro-card::before {
  content: "";
  position: absolute;
  top: -28px;
  right: -28px;
  width: 110px;
  height: 110px;
  border-radius: 999px;
  background: rgba(31, 160, 208, 0.11);
  pointer-events: none;
}

.analisi-intro-card-icon {
  width: 64px;
  height: 64px;
  margin-bottom: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 22px;
  color: #167A99;
  background: #E6F4FA;
}

.analisi-intro-card-icon svg {
  width: 34px;
  height: 34px;
}

.analisi-intro-card h3 {
  margin: 0 0 20px;
  font-size: 28px;
  line-height: 1.18;
  letter-spacing: -0.03em;
}

.analisi-intro-card ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.analisi-intro-card li {
  position: relative;
  margin-bottom: 14px;
  padding-left: 26px;
  font-size: 18px;
  line-height: 1.45;
  color: #405466;
}

.analisi-intro-card li:last-child {
  margin-bottom: 0;
}

.analisi-intro-card li::before {
  content: "";
  position: absolute;
  top: 11px;
  left: 0;
  width: 9px;
  height: 9px;
  border-radius: 999px;
  background: #1FA0D0;
}

/* ============================================================
   ANALIZZIAMO — FORM
   ============================================================ */

.analisi-form-section {
  padding: 64px 0 16px;
  background:
    linear-gradient(180deg, #eef7fb 0%, #f8fbfd 100%);
}

.analisi-form-layout {
  display: grid;
  grid-template-columns: minmax(0, 430px) 1fr;
  gap: 72px;
  align-items: start;
}

.analisi-form-intro {
  padding-top: 6px;
}

.analisi-form-intro h2 {
  margin: 0 0 24px;
  font-size: 50px;
  line-height: 1.05;
  letter-spacing: -0.045em;
}

.analisi-form-intro > p {
  margin: 0 0 18px;
  font-size: 20px;
  line-height: 1.62;
}

.analisi-form-note {
  margin-top: 34px;
  padding: 0 0 0 22px;
  border-left: 4px solid #1FA0D0;
}

.analisi-form-note p {
  margin: 0;
  max-width: 360px;
  font-size: 17px;
  line-height: 1.6;
  color: #405466;
}

.analisi-form {
  padding: 46px;
  border-radius: 34px;
  background: #ffffff;
  border: 1px solid rgba(22, 122, 153, 0.13);
  box-shadow: 0 34px 90px rgba(7, 24, 39, 0.10);
}

.analisi-form .form-field {
  margin-bottom: 24px;
}

.analisi-form label,
.analisi-form legend {
  display: block;
  margin-bottom: 10px;
  font-size: 16px;
  font-weight: 800;
  color: #071827;
}

.analisi-form label span,
.analisi-form legend span {
  color: #1FA0D0;
}

.analisi-form label small {
  font-size: 14px;
  font-weight: 600;
  color: #70808d;
}

.analisi-form input,
.analisi-form select,
.analisi-form textarea {
  width: 100%;
  min-height: 58px;
  padding: 15px 17px;
  border-radius: 16px;
  border: 1px solid rgba(7, 24, 39, 0.14);
  background: #f8fbfd;
  color: #071827;
  font-family: inherit;
  font-size: 17px;
  line-height: 1.4;
  outline: none;
  transition:
    border-color 0.18s ease,
    background-color 0.18s ease,
    box-shadow 0.18s ease;
}

.analisi-form textarea {
  min-height: 160px;
  resize: vertical;
}

.analisi-form input:focus,
.analisi-form select:focus,
.analisi-form textarea:focus {
  border-color: #1FA0D0;
  background: #ffffff;
  box-shadow: 0 0 0 4px rgba(31, 160, 208, 0.12);
}

.analisi-form input::placeholder,
.analisi-form textarea::placeholder {
  color: #8495a3;
}

.analisi-form .form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px;
}

.analisi-form fieldset {
  margin: 0 0 30px;
  padding: 0;
  border: 0;
}

.analisi-form .form-contact-preference {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 22px;
  align-items: center;
}

.analisi-form .form-contact-preference legend {
  width: 100%;
  margin-bottom: 2px;
}

.analisi-form .form-check {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  padding: 13px 18px;
  border-radius: 999px;
  border: 1px solid rgba(7, 24, 39, 0.12);
  background: #f8fbfd;
  font-size: 16px;
  font-weight: 700;
  color: #405466;
  cursor: pointer;
}

.analisi-form .form-check input {
  width: 18px;
  min-height: auto;
  height: 18px;
  padding: 0;
  border-radius: 4px;
  cursor: pointer;
}

.analisi-form .form-check span {
  color: #405466;
}

.analisi-form .form-privacy-check {
  display: grid;
  grid-template-columns: 18px 1fr;
  gap: 12px;
  align-items: start;
  margin: 4px 0 28px;
  padding: 18px 18px;
  border-radius: 18px;
  background: #f8fbfd;
  border: 1px solid rgba(7, 24, 39, 0.10);
  cursor: pointer;
}

.analisi-form .form-privacy-check input {
  width: 18px;
  height: 18px;
  min-height: auto;
  padding: 0;
  margin-top: 2px;
  cursor: pointer;
}

.analisi-form .form-privacy-check span {
  font-size: 14px;
  font-weight: 600;
  line-height: 1.5;
  color: #405466;
}
.analisi-form button.btn-primary {
  margin-top: 8px;
  min-height: 60px;
  padding: 18px 30px;
  font-size: 17px;
}
.form-hp {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.analisi-form .form-alert,
.form-alert {
  margin-bottom: 24px;
  padding: 18px 20px;
  border-radius: 18px;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.45;
}

.form-alert-success {
  color: #0b5f3c;
  background: #e9f8f0;
  border: 1px solid rgba(11, 95, 60, 0.18);
}

.form-alert-error {
  color: #8a1f1f;
  background: #fff0f0;
  border: 1px solid rgba(138, 31, 31, 0.18);
}
.form-turnstile {
  margin: 4px 0 22px;
}

.form-turnstile .cf-turnstile {
  min-height: 65px;
}
/* ============================================================
   ANALIZZIAMO — COSA SUCCEDE DOPO
   ============================================================ */

.analisi-steps {
  padding: 34px 0 52px;
  background:
    linear-gradient(180deg, #f8fbfd 0%, #eef7fb 100%);
}

.analisi-section-head {
  max-width: 780px;
  margin-bottom: 34px;
}

.analisi-section-head h2 {
  margin: 0 0 22px;
  font-size: 48px;
  line-height: 1.08;
  letter-spacing: -0.04em;
}

.analisi-section-head p {
  max-width: 650px;
  margin: 0;
  font-size: 20px;
  line-height: 1.6;
}

.analisi-steps-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}

.analisi-step-card {
  position: relative;
  min-height: 270px;
  padding: 34px 36px 34px;
  border-radius: 30px;
  background: #ffffff;
  border: 1px solid rgba(22, 122, 153, 0.11);
  box-shadow: 0 24px 58px rgba(7, 24, 39, 0.07);
}

.analisi-step-card::after {
  content: none;
  display: none;
  position: absolute;
  left: 36px;
  bottom: 0;
  width: 86px;
  height: 4px;
  border-radius: 999px 999px 0 0;
  background: #1FA0D0;
}

.analisi-step-number {
  display: block;
  position: relative;
  margin-bottom: 36px;
  padding-bottom: 16px;
  font-size: 26px;
  line-height: 1;
  font-weight: 900;
  letter-spacing: 0.06em;
  color: #1FA0D0;
}

.analisi-step-number::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 86px;
  height: 4px;
  border-radius: 999px;
  background: #1FA0D0;
}

.analisi-step-card h3 {
  margin: 0 0 16px;
  font-size: 27px;
  line-height: 1.22;
  letter-spacing: -0.035em;
}

.analisi-step-card p {
  margin: 0;
  font-size: 18px;
  line-height: 1.6;
}

/* ============================================================
   ANALIZZIAMO — A CHI È RIVOLTO
   ============================================================ */

.analisi-target {
  padding: 64px 0 76px;
  background: #ffffff;
}
.analisi-target-inner {
  display: grid;
  grid-template-columns: minmax(0, 480px) 1fr;
  gap: 78px;
  align-items: start;
}

.analisi-target-content {
  position: sticky;
  top: 120px;
}

.analisi-target-content h2 {
  margin: 0 0 26px;
  font-size: 48px;
  line-height: 1.08;
  letter-spacing: -0.04em;
}

.analisi-target-content p {
  margin: 0;
  font-size: 20px;
  line-height: 1.65;
}

.analisi-target-list {
  display: grid;
  gap: 24px;
}

.analisi-target-item {
  display: grid;
  grid-template-columns: 72px 1fr;
  gap: 26px;
  padding: 34px 36px;
  border-radius: 28px;
  background: #f8fbfd;
  border: 1px solid rgba(31, 160, 208, 0.13);
}

.analisi-target-icon {
  width: 72px;
  height: 72px;
  border-radius: 24px;
  background:
    linear-gradient(135deg, #E6F4FA 0%, #CFEAF5 100%);
  position: relative;
}

.analisi-target-icon::before,
.analisi-target-icon::after {
  content: "";
  position: absolute;
  border-radius: 999px;
  background: #167A99;
}

.analisi-target-icon.agency::before {
  width: 30px;
  height: 22px;
  top: 23px;
  left: 21px;
  border-radius: 8px;
  background: transparent;
  border: 2px solid #167A99;
}

.analisi-target-icon.agency::after {
  width: 26px;
  height: 2px;
  top: 48px;
  left: 23px;
}

.analisi-target-icon.systems::before {
  width: 34px;
  height: 26px;
  top: 18px;
  left: 19px;
  border-radius: 8px;
  background: transparent;
  border: 2px solid #167A99;
}

.analisi-target-icon.systems::after {
  width: 32px;
  height: 8px;
  top: 48px;
  left: 20px;
  border-radius: 4px;
}

.analisi-target-icon.continuity::before {
  width: 34px;
  height: 34px;
  top: 19px;
  left: 19px;
  background: transparent;
  border: 2px solid #167A99;
}

.analisi-target-icon.continuity::after {
  width: 16px;
  height: 16px;
  top: 28px;
  left: 28px;
  background: #1FA0D0;
}

.analisi-target-item h3 {
  margin: 0 0 10px;
  font-size: 26px;
  line-height: 1.22;
  letter-spacing: -0.03em;
}

.analisi-target-item p {
  margin: 0;
  font-size: 18px;
  line-height: 1.58;
}


/* ============================================================
   SEZIONE RESPONSIVE — ELEMENTI COMUNI
   ============================================================ */

@media (max-width: 1180px) {
  :root { --pad-x: 48px; }

  .nav-links { gap: 20px; }

  .hero {
    height: auto;
    min-height: 620px;
  }

  .hero-inner { grid-template-columns: 1fr; }

  .svc-cisco { grid-template-columns: 1fr; gap: 40px; }
  .svc-left { padding-right: 0; }
  .svc-right { border-left: none; padding-left: 0; }

  .how-grid { grid-template-columns: 1fr; }
  .how-photo-overlay { display: none; }
}

@media (max-width: 820px) {
  :root { --pad-x: 28px; }

  .hero {
    height: auto;
    min-height: 560px;
  }

  h1 { font-size: 46px; }
  h2, .sec-h2, .cta-inner h2 { font-size: 38px; }

  .nav-inner {
    height: auto;
    min-height: 90px;
    align-items: flex-start;
    padding: 18px 0;
  }

  .nav-links {
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 14px 18px;
  }

  .svc-right { grid-template-columns: 1fr; }
  .svc-item { padding-right: 0; }
  .svc-item:nth-child(2) {
    padding-left: 0;
    border-left: none;
    border-top: 1px solid var(--border);
    padding-top: 36px;
    margin-top: 36px;
  }

  .target-grid { grid-template-columns: 1fr; gap: 36px; }
  .target-item,
  .target-item:nth-child(2),
  .target-item:last-child {
    padding: 0;
    border-right: none;
  }

  .footer-grid { grid-template-columns: 1fr; }
}


/* ============================================================
   SEZIONE RESPONSIVE — SINGOLE PAGINE
   ============================================================ */

@media (max-width: 1180px) {
  .about-main-grid,
  .about-system-grid {
    grid-template-columns: 1fr;
  }

  .about-system-visual,
  .about-system-copy {
    padding: 72px var(--pad-x);
  }
}

@media (max-width: 820px) {
  .about-main,
  .about-fit {
    padding: 72px 0;
  }

  .about-main-grid {
    gap: 48px;
  }

  .about-copy h2,
  .about-system-copy h2,
  .about-fit h2 {
    font-size: 38px;
  }

  .about-copy .about-lead {
    font-size: 20px;
  }

  .layer-two,
  .layer-three {
    margin-left: 0;
  }
}

@media (max-width: 1180px) {
  .infra-split-grid,
  .infra-offer-grid {
    grid-template-columns: 1fr 1fr;
  }

  .infra-split-grid::before {
    display: none;
  }

  .infra-problem,
  .infra-approach {
    padding: 0;
  }
}

@media (max-width: 820px) {
  .infra-position-inner {
    grid-template-columns: 1fr;
  }

  .infra-position h2,
  .infra-problem h2,
  .infra-approach h2,
  .infra-offer h2,
  .infra-offer-head h2 {
    font-size: 32px;
  }

  .infra-position p {
    font-size: 22px;
  }

  .infra-split-grid,
  .infra-offer-grid {
    grid-template-columns: 1fr;
  }

  .infra-split,
  .infra-offer {
    padding: 64px 0;
  }
}

@media (max-width: 1180px) {

  .hosting-boxes-grid {
    grid-template-columns: 1fr;
  }

  .hosting-box-growth {
    border-right: none;
    border-bottom: 1px solid var(--border);
    padding: 42px 40px;
    background:
      linear-gradient(
        90deg,
        rgba(248, 250, 252, 1) 0%,
        rgba(248, 250, 252, 0.96) 36%,
        rgba(248, 250, 252, 0.70) 58%,
        rgba(248, 250, 252, 0.22) 82%,
        rgba(248, 250, 252, 0) 100%
      ),
      url("/img/sections/grafico.png");
    background-repeat: no-repeat;
    background-size: 46% auto;
    background-position: right 40px center;
  }

  .hosting-box-includes {
    padding: 42px 40px;
  }

  .hosting-box-growth-text,
  .hosting-box-growth h2,
  .hosting-box-growth p {
    max-width: 460px;
  }

  .hosting-box-services {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
  }

}

@media (max-width: 820px) {

  .hosting-box {
    min-height: auto;
  }

  .hosting-box-growth,
  .hosting-box-includes {
    padding: 38px 24px;
  }
.hosting-box-growth {
  border-right: 1px solid var(--border);
  padding: 42px 56px 40px;
  background:
    linear-gradient(
      90deg,
      rgba(248, 250, 252, 1) 0%,
      rgba(248, 250, 252, 0.98) 28%,
      rgba(248, 250, 252, 0.82) 42%,
      rgba(248, 250, 252, 0.34) 62%,
      rgba(248, 250, 252, 0) 100%
    ),
    url("/img/sections/grafico.png");
  background-repeat: no-repeat;
  background-size: 66% auto;
  background-position: right 18px center;
}
  .hosting-box h2 {
    font-size: 25px;
  }

  .hosting-box-growth-text,
  .hosting-box-growth h2,
  .hosting-box-growth p,
  .hosting-box-includes h2 {
    max-width: none;
  }

  .hosting-box-services {
    grid-template-columns: 1fr;
    gap: 18px;
  }

}

@media (max-width: 1180px) {

  .hosting-position-inner {
    max-width: 860px;
  }

  .hosting-position-points {
    max-width: 760px;
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .hosting-position-point {
    padding: 0;
  }

  .hosting-position-point:first-child,
  .hosting-position-point:last-child {
    padding-left: 0;
    padding-right: 0;
  }

  .hosting-position-point:not(:last-child)::after {
    display: none;
  }

  .hosting-real-grid {
    grid-template-columns: 1fr;
  }

  .hosting-real-media {
    min-height: 420px;
  }

  .hosting-real-media img {
    min-height: 420px;
  }

  .hosting-real-content {
    padding: 60px 40px;
  }

  .hosting-managed-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .hosting-managed-evolution {
    grid-column: 1 / -1;
  }

  .hosting-include-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
  }

  .hosting-include-item {
    padding: 26px 18px;
    border-right: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
  }

  .hosting-include-item:nth-child(3n) {
    border-right: none;
  }

  .hosting-include-item:nth-last-child(-n + 3) {
    border-bottom: none;
  }

}

@media (max-width: 820px) {

  .page-hosting .hero-hosting::after,
  .page-hosting .hero::after {
    background: linear-gradient(
      to bottom,
      rgba(248, 250, 252, 0.96) 0%,
      rgba(248, 250, 252, 0.9) 48%,
      rgba(248, 250, 252, 0.72) 100%
    );
  }

  .hosting-position {
    padding: 48px 0 50px;
  }

  .hosting-managed,
  .hosting-offer {
    padding: 56px 0;
  }

  .hosting-position-inner,
  .hosting-managed-head {
    max-width: 100%;
  }

  .hosting-position-text {
    margin-bottom: 34px;
  }

  .hosting-position-text h2,
  .hosting-real-content h2,
  .hosting-managed-head h2,
  .hosting-offer h2 {
    font-size: 32px;
  }

  .hosting-position-text p,
  .hosting-real-intro,
  .hosting-managed-head p {
    font-size: 17px;
  }

  .hosting-position-points {
    gap: 22px;
  }

  .hosting-position-point {
    grid-template-columns: 42px 1fr;
    gap: 14px;
  }

  .hosting-position-point-icon {
    width: 36px;
    min-width: 36px;
    height: 36px;
  }

  .hosting-position-point-icon::before {
    font-size: 30px;
  }

  .hosting-real-media {
    min-height: 320px;
  }

  .hosting-real-media img {
    min-height: 320px;
  }

  .hosting-real-content {
    padding: 48px 24px;
  }

  .hosting-managed-grid {
    grid-template-columns: 1fr;
  }

  .hosting-managed-card {
    min-height: auto;
    padding: 28px 24px;
  }

  .hosting-managed-evolution {
    display: block;
  }

  .hosting-include-list {
    grid-template-columns: 1fr;
  }

  .hosting-include-item {
    padding: 24px 12px;
    border-right: none;
    border-bottom: 1px solid var(--border);
  }

  .hosting-include-item:nth-child(3n) {
    border-right: none;
  }

  .hosting-include-item:nth-last-child(-n + 3) {
    border-bottom: 1px solid var(--border);
  }

  .hosting-include-item:last-child {
    border-bottom: none;
  }

}

@media (max-width: 520px) {

  .hosting-position-inner,
  .hosting-managed-head {
    text-align: left;
  }

  .hosting-position-icon {
    margin-left: 0;
    margin-right: 0;
  }

  .hosting-position-text h2,
  .hosting-real-content h2,
  .hosting-managed-head h2,
  .hosting-offer h2 {
    font-size: 29px;
  }

  .hosting-managed-card h3 {
    font-size: 20px;
  }

}
