/* Studio Panziera — Design direzionale ispirato a studiopersichini.it,
   armonizzato con il marchio «Il punto» (sp. / studio panziera.) e la palette blu istituzionale. */

@font-face { font-family: "Montserrat"; font-weight: 300; font-style: normal; font-display: swap; src: url(../font/montserrat-latin-300-normal.woff2) format("woff2"); }
@font-face { font-family: "Montserrat"; font-weight: 400; font-style: normal; font-display: swap; src: url(../font/montserrat-latin-400-normal.woff2) format("woff2"); }
@font-face { font-family: "Montserrat"; font-weight: 400; font-style: italic; font-display: swap; src: url(../font/montserrat-latin-400-italic.woff2) format("woff2"); }
@font-face { font-family: "Montserrat"; font-weight: 500; font-style: normal; font-display: swap; src: url(../font/montserrat-latin-500-normal.woff2) format("woff2"); }
@font-face { font-family: "Montserrat"; font-weight: 600; font-style: normal; font-display: swap; src: url(../font/montserrat-latin-600-normal.woff2) format("woff2"); }
@font-face { font-family: "Montserrat"; font-weight: 700; font-style: normal; font-display: swap; src: url(../font/montserrat-latin-700-normal.woff2) format("woff2"); }

:root {
  --navy: #0E1C30;
  --blu: #13233B;
  --blu-2: #1A3358;
  --blu-punto: #1E5699;
  --blu-hover: #16437A;
  --blu-chiaro: #4DA3FF;
  --ghiaccio: #EDF3FA;
  --fondo: #FFFFFF;
  --fondo-alt: #F5F8FC;
  --testo: #1E293B;
  --tenue: #566578;
  --linea: #E2E8F0;
  --linea-scura: #CBD5E1;
  --accento: var(--blu-punto);
  --link: #1E5699;
  --titoli: "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --corpo: "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --raggio: 4px;
  --larghezza: 1200px;
  color-scheme: light;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 1.5rem; scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--fondo);
  color: var(--testo);
  font: 400 1rem/1.7 var(--corpo);
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--link); text-underline-offset: .2em; text-decoration-thickness: 1px; transition: color .18s ease, background-color .18s ease, border-color .18s ease; }
a:hover { color: var(--blu); text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--blu-punto); outline-offset: 2px; }

h1, h2, h3, h4 {
  font-family: var(--titoli);
  font-weight: 300;
  color: var(--blu);
  line-height: 1.2;
  margin: 0 0 .6em;
  letter-spacing: -.015em;
  text-wrap: balance;
}
h1 strong, h2 strong, h3 strong { font-weight: 600; }
h1 { font-size: clamp(2rem, 3.8vw, 3.1rem); line-height: 1.16; }
h2 { font-size: clamp(1.6rem, 2.7vw, 2.25rem); }
h3 { font-size: 1.25rem; font-weight: 500; line-height: 1.3; }
p { margin: 0 0 1.05em; }
ul, ol { margin: 0; padding: 0; }
address { font-style: normal; }
mark.segnaposto { background: #FFF3C4; color: #5C4300; padding: .05em .3em; border-radius: 3px; font-size: .9em; }

.contenitore { width: min(100% - 40px, var(--larghezza)); margin-inline: auto; }
.contenitore--stretto { width: min(100% - 40px, 840px); }
.salta { position: absolute; left: -999px; top: 0; background: #fff; padding: .6rem 1rem; z-index: 50; }
.salta:focus { left: 1rem; }

/* Divisore corto blu in stile Persichini */
.filetto-blu {
  width: 52px;
  height: 2px;
  background: var(--blu-punto);
  margin: 1.1rem 0 1.35rem;
}
.filetto-blu--centro { margin-inline: auto; }
.filetto-blu--chiaro { background: var(--blu-chiaro); }

/* Fascia superiore contatti */
.fascia-contatti {
  background: var(--navy);
  color: #CBD5E1;
  font-size: .8125rem;
  letter-spacing: .02em;
}
.fascia-contatti .contenitore {
  display: flex;
  gap: 1.8rem;
  align-items: center;
  justify-content: flex-end;
  padding: .48rem 0;
  flex-wrap: wrap;
}
.fascia-contatti .contenitore > span { margin-right: auto; color: #94A3B8; font-weight: 400; }
.fascia-contatti a { color: #F8FAFC; text-decoration: none; font-weight: 500; }
.fascia-contatti a:hover { color: var(--blu-chiaro); }

/* Testata */
.testata {
  background: rgba(255, 255, 255, .97);
  border-bottom: 1px solid var(--linea);
  position: sticky;
  top: 0;
  z-index: 30;
  backdrop-filter: blur(8px);
}
.testata__riga {
  display: flex;
  align-items: center;
  gap: 1.75rem;
  min-height: 86px;
}
.marchio { display: block; flex: 0 0 auto; margin-right: auto; }
.marchio img { height: 50px; width: auto; }
.testata__chiama {
  display: none;
  align-items: center;
  gap: .4rem;
  min-height: 42px;
  padding: .45rem .9rem;
  background: var(--blu-punto);
  color: #fff;
  font-weight: 600;
  font-size: .88rem;
  text-decoration: none;
  border-radius: var(--raggio);
  white-space: nowrap;
}
.testata__chiama:hover { background: var(--blu-hover); color: #fff; text-decoration: none; }
.nav-larga ul, .menu ul { list-style: none; display: flex; gap: 1.4rem; align-items: center; }
.nav-larga a { white-space: nowrap; }
.nav-larga a, .menu a {
  color: var(--blu);
  text-decoration: none;
  font-weight: 500;
  font-size: .92rem;
  letter-spacing: .01em;
  padding: .35rem 0;
  border-bottom: 2px solid transparent;
}
.nav-larga a:hover, .nav-larga a[aria-current="page"] {
  color: var(--blu-punto);
  border-bottom-color: var(--blu-punto);
}
.testata__cta {
  min-height: 42px !important;
  padding: .55rem 1.15rem !important;
  font-size: .86rem !important;
  white-space: nowrap;
}
.menu { display: none; position: relative; }
.menu summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: .5rem;
  font-weight: 600;
  font-size: .9rem;
  padding: .5rem .8rem;
  border: 1px solid var(--linea-scura);
  border-radius: var(--raggio);
  color: var(--blu);
}
.menu summary::-webkit-details-marker { display: none; }
.menu__icona, .menu__icona::before, .menu__icona::after {
  display: block;
  width: 18px;
  height: 2px;
  background: currentColor;
  position: relative;
}
.menu__icona::before, .menu__icona::after { content: ""; position: absolute; left: 0; }
.menu__icona::before { top: -6px; }
.menu__icona::after { top: 6px; }
.menu nav {
  position: absolute;
  right: 0;
  top: calc(100% + 8px);
  background: #fff;
  border: 1px solid var(--linea);
  border-radius: var(--raggio);
  min-width: 250px;
  padding: .6rem 1.1rem;
  z-index: 40;
  box-shadow: 0 16px 36px rgb(14 28 48 / .12);
}
.menu ul { flex-direction: column; gap: 0; align-items: stretch; }
.menu li a { display: block; padding: .75rem 0; border-bottom: 1px solid var(--linea); }
.menu li:last-child a { border-bottom: 0; }

/* tra 1021 e 1240 px il menu con «Blog» non lascia spazio al pulsante: resta la voce «Contatti» */
@media (max-width: 1240px) { .testata__cta { display: none !important; } }
@media (max-width: 1020px) {
  .nav-larga, .testata__cta { display: none !important; }
  .menu { display: block; }
  .testata__riga { min-height: 72px; gap: .65rem; }
  .marchio img { height: 42px; }
  .testata__chiama { display: inline-flex; }
  .fascia-contatti .contenitore > span { display: none; }
  .fascia-contatti .contenitore { justify-content: space-between; gap: .8rem; }
}
@media (max-width: 520px) {
  .contenitore { width: min(100% - 28px, var(--larghezza)); }
  .menu__testo { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .menu summary { min-height: 40px; padding: .45rem .65rem; }
  .testata__riga { gap: .45rem; }
  .testata .marchio img { height: 32px; }
  .testata__chiama { min-height: 40px; padding: .4rem .7rem; font-size: .82rem; }
}

/* Briciole */
.briciole ol {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  font-size: .82rem;
  color: var(--tenue);
  margin-bottom: 1rem;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.briciole li + li::before { content: "/"; margin-right: .35rem; color: var(--linea-scura); }
.briciole a { color: inherit; text-decoration: none; }
.briciole a:hover { color: var(--blu-punto); }

/* Occhielli e titoletti */
.occhiello {
  text-transform: uppercase;
  letter-spacing: .16em;
  font-size: .76rem;
  font-weight: 600;
  color: var(--blu-punto);
  margin-bottom: .75rem;
}
.occhiello--chiaro { color: var(--blu-chiaro); }
.titoletto {
  font-family: var(--corpo);
  font-size: .78rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .16em;
  color: var(--blu-punto);
  margin-bottom: .75rem;
}

/* Hero / Aperture — Stile Persichini: split 50/50 su sfondo bianco puro */
.apertura { position: relative; }
.apertura--home {
  background: var(--fondo);
  border-bottom: 1px solid var(--linea);
  overflow: hidden;
}
.apertura--home .apertura__griglia {
  display: grid;
  grid-template-columns: 1.08fr .92fr;
  gap: 3.5rem;
  align-items: center;
  padding: 3.8rem 0 4.2rem;
}
.apertura--home .apertura__testo {
  position: relative;
  z-index: 1;
}
.apertura--home h1 {
  color: var(--blu);
  font-weight: 300;
  margin-bottom: 0;
}
.apertura__lead {
  font-size: 1.08rem;
  line-height: 1.72;
  color: var(--tenue);
  max-width: 39em;
}
.apertura__firma {
  margin-top: 1.35rem;
  padding-left: .95rem;
  border-left: 2px solid var(--blu-punto);
  font-size: .92rem;
  color: var(--blu);
}
.apertura__firma strong {
  display: block;
  font-weight: 600;
  font-size: 1rem;
  letter-spacing: -.01em;
}
.apertura__firma span {
  color: var(--tenue);
  font-style: italic;
}
.apertura__azioni {
  display: flex;
  flex-wrap: wrap;
  gap: .9rem;
  margin-top: 1.85rem;
}
.apertura__numeri {
  display: grid;
  grid-template-columns: repeat(2, max-content);
  gap: 1.8rem 3.5rem;
  margin-top: 2.2rem;
  padding-top: 1.4rem;
  border-top: 1px solid var(--linea);
}
.apertura__numeri strong {
  display: block;
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--blu);
}
.apertura__numeri span {
  font-size: .8rem;
  color: var(--tenue);
}
.apertura__quadro {
  position: relative;
}
.apertura__foto {
  border-radius: var(--raggio);
  overflow: hidden;
  box-shadow: 0 24px 48px rgb(14 28 48 / .12);
  border: 1px solid var(--linea);
  aspect-ratio: 4 / 3.3;
  background: var(--ghiaccio);
}
.apertura__foto img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.apertura__badge {
  position: absolute;
  left: -1.2rem;
  bottom: -1.2rem;
  background: var(--navy);
  color: #fff;
  padding: 1.15rem 1.4rem;
  border-radius: var(--raggio);
  max-width: 310px;
  box-shadow: 0 16px 32px rgb(14 28 48 / .22);
  border-left: 3px solid var(--blu-chiaro);
}
.apertura__badge strong {
  display: block;
  font-size: .82rem;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: var(--blu-chiaro);
  margin-bottom: .25rem;
}
.apertura__badge p {
  margin: 0;
  font-size: .86rem;
  line-height: 1.45;
  color: #E2E8F0;
}

.apertura--interna {
  background: var(--fondo-alt);
  border-bottom: 1px solid var(--linea);
  padding: 3rem 0 2.7rem;
}
.apertura--interna h1 { margin-bottom: .25em; font-weight: 300; }
.apertura--interna .apertura__lead { color: var(--tenue); margin: 0; max-width: 44em; }

@media (max-width: 920px) {
  .apertura--home .apertura__griglia {
    grid-template-columns: 1fr;
    gap: 2.2rem;
    padding: 2.4rem 0 3rem;
  }
  .apertura__badge {
    position: static;
    max-width: none;
    margin-top: .75rem;
  }
  .apertura__numeri {
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
  }
}

/* Pulsanti */
.pulsante {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: .75rem 1.5rem;
  font: inherit;
  font-size: .92rem;
  font-weight: 600;
  letter-spacing: .02em;
  text-decoration: none;
  border: 1px solid var(--blu-punto);
  background: var(--blu-punto);
  color: #fff;
  border-radius: var(--raggio);
  cursor: pointer;
  transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .15s ease;
}
.pulsante:hover {
  background: var(--blu-hover);
  border-color: var(--blu-hover);
  color: #fff;
  text-decoration: none;
}
.pulsante--secondario {
  background: transparent;
  color: var(--blu);
  border-color: var(--linea-scura);
}
.pulsante--secondario:hover {
  background: var(--ghiaccio);
  border-color: var(--blu-punto);
  color: var(--blu-punto);
}
.pulsante--pieno {
  background: var(--blu);
  border-color: var(--blu);
  color: #fff;
}
.pulsante--pieno:hover {
  background: var(--blu-punto);
  border-color: var(--blu-punto);
  color: #fff;
}
.link-freccia {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  font-weight: 600;
  font-size: .92rem;
  color: var(--blu-punto);
  text-decoration: none;
  white-space: nowrap;
}
.link-freccia::after { content: "→"; transition: transform .18s ease; }
.link-freccia:hover { color: var(--blu); text-decoration: none; }
.link-freccia:hover::after { transform: translateX(3px); }

/* Sezioni */
.sezione { padding: 4.5rem 0; }
.sezione--alt { background: var(--fondo-alt); border-top: 1px solid var(--linea); border-bottom: 1px solid var(--linea); }
.sezione--navy {
  background: var(--navy);
  color: #E2E8F0;
  padding: 4.8rem 0;
}
.sezione--navy h2, .sezione--navy h3 { color: #fff; }
.sezione--navy p { color: #CBD5E1; }

.sezione__intro {
  max-width: 760px;
  margin-bottom: 2.8rem;
}
.sezione__intro p {
  color: var(--tenue);
  font-size: 1.04rem;
}
.sezione--navy .sezione__intro p { color: #CBD5E1; }

.sezione__testa {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 1.5rem;
  flex-wrap: wrap;
  margin-bottom: 2.4rem;
  padding-bottom: 1.1rem;
  border-bottom: 1px solid var(--linea);
}
.sezione__testa h2 { margin: 0; }
.sezione__testa p { margin: .35rem 0 0; color: var(--tenue); max-width: 44em; }

/* Pilastri Business Partner su sfondo Navy */
.pilastri-griglia {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2.2rem;
  margin-top: 2.5rem;
}
.pilastro {
  padding-top: 1.4rem;
  border-top: 1px solid rgba(255, 255, 255, .16);
}
.pilastro__num {
  display: inline-block;
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .16em;
  color: var(--blu-chiaro);
  margin-bottom: .6rem;
}
.pilastro h3 {
  font-size: 1.15rem;
  font-weight: 500;
  color: #fff;
  margin-bottom: .55rem;
}
.pilastro p {
  font-size: .92rem;
  line-height: 1.65;
  color: #CBD5E1;
  margin: 0;
}
@media (max-width: 1020px) {
  .pilastri-griglia { grid-template-columns: repeat(2, 1fr); gap: 1.8rem; }
}
@media (max-width: 620px) {
  .pilastri-griglia { grid-template-columns: 1fr; gap: 1.5rem; }
}

/* 5 Servizi Strategici in Home — 1 Card Regina 50/50 + 4 Card Fotografiche */
.servizio-regina {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  background: #fff;
  border: 1px solid var(--linea);
  border-radius: var(--raggio);
  overflow: hidden;
  box-shadow: 0 14px 34px rgb(14 28 48 / .06);
  margin-bottom: 2rem;
}
.servizio-regina__foto {
  min-height: 340px;
  background: var(--ghiaccio);
  overflow: hidden;
}
.servizio-regina__foto img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.servizio-regina__corpo {
  padding: 2.6rem 2.8rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.servizio-tag {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  font-size: .75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .14em;
  color: var(--blu-punto);
  margin-bottom: .65rem;
}
.servizio-tag span {
  background: var(--ghiaccio);
  color: var(--blu-punto);
  padding: .18rem .5rem;
  border-radius: 2px;
  font-weight: 700;
}
.servizio-regina__corpo h3 {
  font-size: clamp(1.4rem, 2.2vw, 1.75rem);
  font-weight: 400;
  color: var(--blu);
  margin-bottom: .6rem;
}
.servizio-regina__corpo p {
  color: var(--tenue);
  font-size: .98rem;
  margin-bottom: 1.1rem;
}
.servizio-punti {
  list-style: none;
  margin: 0 0 1.4rem;
  padding: 0;
  display: grid;
  gap: .4rem;
}
.servizio-punti li {
  position: relative;
  padding-left: 1.2rem;
  font-size: .9rem;
  color: var(--testo);
}
.servizio-punti li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .68em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--blu-punto);
}

.griglia-strategici {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.8rem;
}
.card-strategica {
  background: #fff;
  border: 1px solid var(--linea);
  border-radius: var(--raggio);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.card-strategica:hover {
  transform: translateY(-3px);
  box-shadow: 0 18px 38px rgb(14 28 48 / .08);
  border-color: var(--linea-scura);
}
.card-strategica__foto {
  aspect-ratio: 16 / 9;
  background: var(--ghiaccio);
  overflow: hidden;
}
.card-strategica__foto img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .35s ease;
}
.card-strategica:hover .card-strategica__foto img {
  transform: scale(1.03);
}
.card-strategica__corpo {
  padding: 1.8rem 2rem 2rem;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.card-strategica__corpo h3 {
  font-size: 1.28rem;
  font-weight: 500;
  margin-bottom: .55rem;
}
.card-strategica__corpo h3 a {
  color: var(--blu);
  text-decoration: none;
}
.card-strategica__corpo h3 a:hover { color: var(--blu-punto); }
.card-strategica__corpo p {
  color: var(--tenue);
  font-size: .94rem;
  margin-bottom: 1.2rem;
  flex: 1;
}
@media (max-width: 900px) {
  .servizio-regina { grid-template-columns: 1fr; }
  .servizio-regina__foto { min-height: 240px; }
  .servizio-regina__corpo { padding: 1.8rem; }
  .griglia-strategici { grid-template-columns: 1fr; }
}

/* Righe alternate 50/50 nella pagina Servizi (stile studiopersichini.it/servizi) */
.righe-servizi {
  display: grid;
  gap: 3.5rem;
}
.riga-servizio {
  display: grid;
  grid-template-columns: 1fr 1.08fr;
  gap: 3.2rem;
  align-items: center;
  padding-bottom: 3.5rem;
  border-bottom: 1px solid var(--linea);
}
.riga-servizio:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}
.riga-servizio--inversa {
  grid-template-columns: 1.08fr 1fr;
}
.riga-servizio--inversa .riga-servizio__foto {
  order: 2;
}
.riga-servizio--inversa .riga-servizio__testo {
  order: 1;
}
.riga-servizio__foto {
  border-radius: var(--raggio);
  overflow: hidden;
  border: 1px solid var(--linea);
  box-shadow: 0 16px 36px rgb(14 28 48 / .08);
  aspect-ratio: 16 / 10.5;
  background: var(--ghiaccio);
}
.riga-servizio__foto img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.riga-servizio__testo h3 {
  font-size: clamp(1.35rem, 2.2vw, 1.75rem);
  font-weight: 400;
  color: var(--blu);
  margin-bottom: .5rem;
}
.riga-servizio__testo p {
  color: var(--tenue);
  font-size: .96rem;
}
@media (max-width: 880px) {
  .riga-servizio, .riga-servizio--inversa {
    grid-template-columns: 1fr;
    gap: 1.6rem;
    padding-bottom: 2.5rem;
  }
  .riga-servizio--inversa .riga-servizio__foto,
  .riga-servizio--inversa .riga-servizio__testo {
    order: unset;
  }
}

/* Elenco servizi tradizionali (in coda) */
.elenco-servizi {
  list-style: none;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem 2.2rem;
}
.elenco-servizi li {
  background: #fff;
  border: 1px solid var(--linea);
  border-left: 3px solid var(--blu-punto);
  border-radius: var(--raggio);
  transition: border-color .18s ease, box-shadow .18s ease;
}
.elenco-servizi li:hover {
  border-color: var(--blu-punto);
  box-shadow: 0 10px 24px rgb(14 28 48 / .06);
}
.elenco-servizi a {
  display: block;
  padding: 1.35rem 1.5rem;
  text-decoration: none;
  color: inherit;
}
.elenco-servizi__nome {
  display: block;
  font-family: var(--titoli);
  font-size: 1.12rem;
  font-weight: 600;
  color: var(--blu);
  line-height: 1.3;
}
.elenco-servizi__breve {
  display: block;
  color: var(--tenue);
  font-size: .9rem;
  margin-top: .35rem;
  line-height: 1.55;
}
.elenco-servizi a:hover .elenco-servizi__nome {
  color: var(--blu-punto);
}
@media (max-width: 760px) {
  .elenco-servizi { grid-template-columns: 1fr; }
}

/* Paragrafo di fatti e schede dati */
.fatti { padding-bottom: 2.5rem; }
.fatti__testo {
  font-family: var(--titoli);
  font-size: clamp(1.18rem, 2vw, 1.42rem);
  line-height: 1.6;
  color: var(--blu);
  font-weight: 400;
}
.fatti__blocco {
  font-size: 1rem;
  color: var(--tenue);
  max-width: 48em;
}
.schede-dati {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0;
  margin: 2.2rem 0 0;
  border-top: 1px solid var(--linea);
  border-bottom: 1px solid var(--linea);
  background: #fff;
}
.schede-dati > div { padding: 1.15rem 1.15rem 1.15rem 0; }
.schede-dati > div + div { border-left: 1px solid var(--linea); padding-left: 1.15rem; }
.schede-dati dt {
  font-size: .74rem;
  text-transform: uppercase;
  letter-spacing: .14em;
  color: var(--blu-punto);
  font-weight: 600;
}
.schede-dati dd { margin: .25rem 0 0; font-weight: 500; font-size: .95rem; color: var(--blu); }
.schede-dati--colonna { grid-template-columns: 1fr 1fr; }
.schede-dati--colonna > div:nth-child(3) { border-left: 0; padding-left: 0; }
.schede-dati--colonna > div:nth-child(n+3) { border-top: 1px solid var(--linea); }
@media (max-width: 760px) {
  .schede-dati, .schede-dati--colonna { grid-template-columns: 1fr 1fr; }
  .schede-dati > div:nth-child(3) { border-left: 0; padding-left: 0; }
  .schede-dati > div:nth-child(n+3) { border-top: 1px solid var(--linea); }
}

/* Schede generiche (Per chi lavoriamo, Aree territoriali) */
.griglia-tre, .griglia-due, .griglia-quattro {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.6rem;
}
.griglia-due { grid-template-columns: 1fr 1fr; }
.griglia-quattro { grid-template-columns: repeat(2, 1fr); }
.scheda {
  background: #fff;
  border: 1px solid var(--linea);
  border-top: 3px solid var(--blu-punto);
  border-radius: var(--raggio);
  padding: 1.75rem;
}
.scheda h3, .scheda h2 {
  font-size: 1.2rem;
  font-weight: 600;
  color: var(--blu);
  margin-bottom: .45em;
}
.scheda p { color: var(--tenue); font-size: .93rem; margin: 0; }
.scheda--grande p + p { margin-top: 1rem; }
.scheda__link { font-size: .88rem; }
.scheda__link a { font-weight: 600; text-decoration: none; }
.scheda__link a:hover { text-decoration: underline; }
@media (max-width: 960px) {
  .griglia-tre, .griglia-quattro { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 620px) {
  .griglia-tre, .griglia-due, .griglia-quattro { grid-template-columns: 1fr; }
}

/* Domande frequenti */
section.domande:not(.domande--servizio) { padding: 3.5rem 0; }
.contenitore > .domande, .pagina-servizio .domande { padding-left: 0; padding-right: 0; }
body > main > .domande { width: min(100% - 40px, 840px); margin-inline: auto; }
.domanda { border-top: 1px solid var(--linea); padding: 1.35rem 0 .45rem; }
.domanda:last-child { border-bottom: 1px solid var(--linea); }
.domanda h3 { font-size: 1.12rem; font-weight: 600; margin-bottom: .4em; color: var(--blu); }
.domanda p { color: var(--tenue); font-size: .95rem; }
.domande--servizio { padding: 1.6rem 0; border-top: 1px solid var(--linea); }
.domande--servizio h2 { font-size: 1.3rem; font-weight: 500; }
.domande--servizio h2 a { text-decoration: none; color: inherit; }
.domande__indice { padding-left: 1.2rem; color: var(--tenue); font-size: .94rem; }
.domande__indice li { margin: .35rem 0; }

/* Pagina singolo servizio */
.pagina-servizio {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 4rem;
  padding-top: 1.5rem;
}
.pagina-servizio .sezione { padding: 2.2rem 0 1rem; }
.pagina-servizio__foto {
  margin-top: 1.5rem;
  border-radius: var(--raggio);
  overflow: hidden;
  border: 1px solid var(--linea);
  aspect-ratio: 16 / 8.5;
  background: var(--ghiaccio);
}
.pagina-servizio__foto img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.pagina-servizio__lato { padding-top: 2.2rem; }
.riquadro-contatti {
  background: var(--navy);
  color: #DCE2EC;
  padding: 1.85rem;
  border-radius: var(--raggio);
  border-top: 3px solid var(--blu-chiaro);
  margin-bottom: 2rem;
}
.riquadro-contatti h2 { color: #fff; font-size: 1.35rem; font-weight: 500; margin-bottom: .5rem; }
.riquadro-contatti p { font-size: .92rem; color: #CBD5E1; }
.riquadro-contatti a { color: #fff; }
.riquadro-contatti .pulsante {
  margin-top: .6rem;
  background: var(--blu-punto);
  border-color: var(--blu-punto);
  width: 100%;
}
.riquadro-contatti .pulsante:hover {
  background: var(--blu-hover);
}
.altri-servizi { margin-bottom: 1.8rem; }
.altri-servizi h2 { font-size: 1.05rem; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; color: var(--blu); margin-bottom: .6rem; }
.altri-servizi ul { list-style: none; border-top: 1px solid var(--linea); }
.altri-servizi a {
  display: block;
  padding: .65rem 0;
  border-bottom: 1px solid var(--linea);
  text-decoration: none;
  font-size: .92rem;
  color: var(--testo);
}
.altri-servizi a:hover { color: var(--blu-punto); }
.vedi-anche { margin-top: 2rem; font-size: .94rem; }
.aggiornato {
  font-size: .85rem;
  color: var(--tenue);
  margin-top: 2.5rem;
  padding-top: 1rem;
  border-top: 1px solid var(--linea);
}
@media (max-width: 920px) {
  .pagina-servizio { grid-template-columns: 1fr; gap: 0; }
  .pagina-servizio__lato { padding-top: 0; padding-bottom: 3rem; }
}

.spunte { list-style: none; columns: 1; }
.spunte li {
  position: relative;
  padding: .55rem 0 .55rem 1.6rem;
  border-bottom: 1px solid var(--linea);
  break-inside: avoid;
  font-size: .96rem;
}
.spunte li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 1.15em;
  width: .65rem;
  height: 2px;
  background: var(--blu-punto);
}

/* Titolare */
.titolare__griglia {
  display: grid;
  grid-template-columns: 300px 1fr;
  gap: 3.5rem;
  align-items: start;
}
.segnaposto-foto {
  aspect-ratio: 4 / 5;
  background: var(--ghiaccio);
  border: 1px solid var(--linea);
  border-radius: var(--raggio);
  display: grid;
  place-items: center;
}
.segnaposto-foto img { height: 88px; width: auto; opacity: .85; }
.titolare__foto { margin: 0; }
.titolare__foto figcaption { font-size: .82rem; color: var(--tenue); margin-top: .5rem; }
@media (max-width: 760px) {
  .titolare__griglia { grid-template-columns: 1fr; gap: 1.5rem; }
  .titolare__foto { max-width: 220px; }
}

/* Contatti (slegati dalla sede fisica in primo piano) */
.contatti {
  display: grid;
  grid-template-columns: 1fr 1.25fr;
  gap: 4rem;
  padding: 3.5rem 0 4.5rem;
}
.contatti__card {
  background: var(--fondo-alt);
  border: 1px solid var(--linea);
  border-left: 3px solid var(--blu-punto);
  border-radius: var(--raggio);
  padding: 1.5rem 1.6rem;
  margin-bottom: 1.25rem;
}
.contatti__card h3 {
  font-size: 1.05rem;
  font-weight: 600;
  margin-bottom: .35rem;
}
.contatti__card p {
  margin: 0;
  font-size: .93rem;
  color: var(--tenue);
}
.nota { font-size: .88rem; color: var(--tenue); margin-top: .6rem; }
.modulo { display: grid; gap: 1.1rem; margin-top: 1.4rem; }
.campo { display: grid; gap: .35rem; }
.campo label { font-weight: 600; font-size: .9rem; color: var(--blu); }
.campo-doppio { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.facoltativo { font-weight: 400; color: var(--tenue); }
.modulo input, .modulo select, .modulo textarea {
  font: inherit;
  font-size: .95rem;
  padding: .75rem .85rem;
  border: 1px solid var(--linea-scura);
  background: #fff;
  border-radius: var(--raggio);
  width: 100%;
  color: var(--testo);
}
.modulo input:focus, .modulo select:focus, .modulo textarea:focus {
  outline: 2px solid var(--blu-punto);
  outline-offset: 0;
  border-color: var(--blu-punto);
}
.campo--spunta { grid-template-columns: auto 1fr; align-items: center; gap: .6rem; }
.campo--spunta input { width: 20px; height: 20px; }
.campo--spunta label { font-weight: 400; color: var(--testo); }
.modulo button { justify-self: start; }
.modulo__esito { background: #ECFDF5; border-left: 3px solid #059669; padding: 1rem; margin: 0; font-size: .92rem; }
.modulo__esito--errore { background: #FEF3F2; border-left-color: #B42318; }
.modulo button:disabled { opacity: .7; cursor: progress; }
/* campo trappola per i robot: fuori dallo schermo, le persone non lo vedono e non ci arrivano col tasto Tab */
.campo-trappola { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
@media (max-width: 860px) {
  .contatti { grid-template-columns: 1fr; gap: 2.5rem; }
  .campo-doppio { grid-template-columns: 1fr; }
}

.testo-lungo { padding: 3rem 0 4rem; }
.testo-lungo h2 { font-size: 1.5rem; font-weight: 500; margin-top: 1.8em; }

/* Fascia Invito finale */
.invito {
  background: var(--blu);
  color: #DCE2EC;
  padding: 4rem 0;
  border-top: 1px solid rgba(255, 255, 255, .08);
}
.invito h2 { color: #fff; font-weight: 300; margin-bottom: .3em; }
.invito p { margin: 0; color: #CBD5E1; max-width: 42em; }
.invito__riga { display: flex; justify-content: space-between; align-items: center; gap: 2rem; flex-wrap: wrap; }
.invito__azioni { display: flex; gap: .85rem; flex-wrap: wrap; }
.invito .pulsante--secondario { color: #fff; border-color: rgba(255, 255, 255, .35); }
.invito .pulsante--secondario:hover { background: rgba(255, 255, 255, .1); border-color: #fff; color: #fff; }

/* Piede */
.piede {
  background: var(--navy);
  color: #94A3B8;
  font-size: .9rem;
  padding: 4rem 0 1.8rem;
}
.piede a { color: #E2E8F0; text-decoration: none; }
.piede a:hover { color: var(--blu-chiaro); text-decoration: underline; }
.piede strong {
  display: block;
  color: #fff;
  font-family: var(--titoli);
  font-size: .85rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .12em;
  margin-bottom: .85rem;
}
.piede__griglia { display: grid; grid-template-columns: 1.3fr 1.15fr 1.25fr 1.15fr; gap: 2.5rem; }
.piede__logo { height: 46px; width: auto; margin-bottom: 1rem; }
.piede ul { list-style: none; }
.piede li { margin: .35rem 0; }
.piede__legale {
  border-top: 1px solid rgba(255, 255, 255, .1);
  margin-top: 2.8rem;
  padding-top: 1.4rem;
  font-size: .8rem;
  color: #64748B;
}
.piede__legale p { margin: .25rem 0; }
@media (max-width: 960px) { .piede__griglia { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .piede__griglia { grid-template-columns: 1fr; } }

/* ---- Pannello Impath ---- */
/* Nell'anteprima del pannello le voci aggiunte a un elenco copiano la prima: lo stile lo decide la posizione. */
.fatti__voci > p + p { font-family: var(--corpo); font-size: 1rem; line-height: 1.7; color: var(--tenue); font-weight: 400; max-width: 48em; }
/* Slot facoltativi lasciati vuoti nel pannello: spariscono */
[data-edit-text]:empty { display: none; }
/* Foto del titolare: finché c'è il simbolo del logo resta il riquadro segnaposto, con una foto vera la riempie */
.titolare__foto .segnaposto-foto img:not([src$=".svg"]) { width: 100%; height: 100%; object-fit: cover; opacity: 1; }
.titolare__foto .segnaposto-foto:has(img:not([src$=".svg"])) { overflow: hidden; }

/* ---- Privacy e cookie (6/11/2026) ---- */
.testo-lungo h3 { font-size: 1.1rem; font-weight: 600; margin: 1.4em 0 .4em; color: var(--blu); }
.testo-lungo ul { padding-left: 1.2rem; }
.testo-lungo li { margin: .3rem 0; }
.tabella-scorre { overflow-x: auto; margin: 1rem 0 1.6rem; -webkit-overflow-scrolling: touch; }
.tabella-scorre table { width: 100%; min-width: 34rem; border-collapse: collapse; font-size: .9rem; line-height: 1.5; }
.tabella-scorre th, .tabella-scorre td { text-align: left; vertical-align: top; padding: .65rem .75rem; border-bottom: 1px solid var(--linea); }
.tabella-scorre th { background: var(--fondo-alt); color: var(--blu); font-weight: 600; }
.tabella-scorre code { font-size: .85em; background: var(--ghiaccio); padding: .1em .35em; border-radius: 3px; white-space: nowrap; }
@media (max-width: 620px) {
  .tabella-scorre table { min-width: 0; }
  .tabella-scorre thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .tabella-scorre tr { display: block; padding: .8rem .9rem; margin-bottom: .7rem; background: var(--fondo-alt); border-radius: var(--raggio); }
  .tabella-scorre td { display: grid; grid-template-columns: 7.5rem 1fr; gap: .6rem; padding: .25rem 0; border: 0; }
  .tabella-scorre td::before { content: attr(data-etichetta); font-weight: 600; color: var(--blu); }
  .tabella-scorre td > code { justify-self: start; }
}
.piede__preferenze { font: inherit; color: #E2E8F0; background: none; border: 0; padding: 0; cursor: pointer; text-decoration: underline; text-underline-offset: 2px; }
.piede__preferenze:hover { color: var(--blu-chiaro); }

/* Banner dei cookie: Rifiuta e Accetta con lo stesso peso, la X vale come rifiuto */
.consenso {
  position: fixed;
  z-index: 1000;
  right: 1rem;
  bottom: 1rem;
  left: 1rem;
  max-width: 35rem;
  margin-left: auto;
  max-height: calc(100vh - 2rem);
  overflow-y: auto;
  padding: 1.35rem 1.4rem 1.2rem;
  background: #fff;
  color: var(--testo);
  border: 1px solid var(--linea-scura);
  border-top: 3px solid var(--blu-punto);
  border-radius: var(--raggio);
  box-shadow: 0 18px 48px rgba(14, 28, 48, .22);
  font-size: .9rem;
  line-height: 1.6;
}
.consenso[hidden], .consenso__scelte[hidden] { display: none; }
.consenso p { margin: 0 0 .9rem; }
.consenso a { color: var(--link); }
.consenso__titolo { margin-right: 2.5rem !important; font-family: var(--titoli); font-size: 1rem; font-weight: 600; color: var(--blu); }
.consenso__chiudi {
  position: absolute;
  top: .45rem;
  right: .45rem;
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: var(--raggio);
  background: none;
  color: var(--tenue);
  font-size: 1.6rem;
  line-height: 1;
  cursor: pointer;
}
.consenso__chiudi:hover { background: var(--fondo-alt); color: var(--blu); }
.consenso__scelte { display: grid; gap: .65rem; margin: 0 0 1rem; padding: .9rem 1rem; background: var(--fondo-alt); border-radius: var(--raggio); }
.consenso__scelte label { display: flex; gap: .65rem; align-items: flex-start; cursor: pointer; }
.consenso__scelte input { flex-shrink: 0; width: 18px; height: 18px; margin-top: .2rem; accent-color: var(--blu-punto); }
.consenso__azioni { display: flex; flex-wrap: wrap; gap: .6rem; }
.consenso__azioni .pulsante { flex: 1 1 8.5rem; min-height: 44px; padding: .6rem 1rem; }
@media (max-width: 560px) {
  .consenso { right: .5rem; bottom: .5rem; left: .5rem; padding: 1.1rem 1rem 1rem; font-size: .86rem; }
  .consenso__azioni .pulsante--secondario { flex-basis: 100%; }
}
@media print { .consenso { display: none !important; } }

/* Sito online: righe e didascalie rimaste senza dato perché il segnaposto non si mostra */
.schede-dati > div:has(> dd > [data-edit-text]:empty) { display: none; }
figcaption:empty { display: none; }
