/* aggiornarsi.it – foglio di stile principale
   Valori ricavati dal sito originale (desktop 1440px, mobile 390px). */

/* ---------------------------------------------------------------- font */
@font-face { font-family: "DM Sans"; font-style: normal; font-weight: 400 700; font-display: swap;
  src: url(../fonts/dmsans-latin.woff2) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "DM Sans"; font-style: normal; font-weight: 400 700; font-display: swap;
  src: url(../fonts/dmsans-latin-ext.woff2) format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "DM Sans"; font-style: italic; font-weight: 400 700; font-display: swap;
  src: url(../fonts/dmsans-italic-latin.woff2) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "DM Sans"; font-style: italic; font-weight: 400 700; font-display: swap;
  src: url(../fonts/dmsans-italic-latin-ext.woff2) format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Lato"; font-style: normal; font-weight: 300; font-display: swap;
  src: url(../fonts/lato-300-latin.woff2) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Lato"; font-style: normal; font-weight: 300; font-display: swap;
  src: url(../fonts/lato-300-latin-ext.woff2) format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Lato"; font-style: italic; font-weight: 300; font-display: swap;
  src: url(../fonts/lato-300-italic-latin.woff2) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Lato"; font-style: italic; font-weight: 300; font-display: swap;
  src: url(../fonts/lato-300-italic-latin-ext.woff2) format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

/* ---------------------------------------------------------------- token */
:root {
  --green: #339443;
  --green-dark: #127b5f;
  --lime: #c2ca54;
  --lime-dark: #bcc34b;
  --text: #000;
  --text-soft: rgba(0, 0, 0, .65);
  --text-muted: rgba(0, 0, 0, .6);
  --sub-text: #212934;
  --phone: #888;
  --body-font: "DM Sans", Arial, Helvetica, sans-serif;
  --head-font: Lato, Arial, Helvetica, sans-serif;
  --header-h: 104px;
  --gutter: 26px;
}

/* ---------------------------------------------------------------- base */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  font: 400 16px/1.6 var(--body-font);
  color: var(--text);
  background: #fff;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; transition: color .2s; }
h1, h2, h3, h4 { margin: 0; font-weight: 300; }
p { margin: 0 0 20px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.only-desktop { display: block; }
.only-mobile { display: none; }

/* ---------------------------------------------------------------- bottoni */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 12px;
  font: 500 18px/21px var(--body-font);
  letter-spacing: -.01em;
  color: #fff;
  background: var(--green);
  padding: 17px 40px;
  border-radius: 10px;
  white-space: nowrap;
  transition: background .2s, color .2s;
}
.btn:hover { background: var(--green-dark); color: #fff; }
.btn svg { width: 14px; height: 14px; fill: currentColor; }
.btn--sm {
  font-size: 14px; line-height: 17px; text-transform: uppercase;
  padding: 13px 29px; border-radius: 8px;
  background: linear-gradient(var(--green-dark), var(--green));
}
.btn--sm:hover { background: linear-gradient(var(--green), var(--green-dark)); }
.btn--lime { background: var(--lime); border-radius: 5px; }
.btn--lime:hover { background: var(--green); }

/* ---------------------------------------------------------------- header */
.site-header {
  position: fixed; inset: 0 0 auto 0; z-index: 100;
  height: var(--header-h);
  background: #fff;
  padding: 0 32px;
}
.site-header__inner {
  height: 100%;
  display: flex; align-items: center;
  margin: 0 -6px;
}
.site-header__logo { flex: 0 0 20%; padding-left: var(--gutter); }
.site-header__logo img { width: 196px; height: auto; }
.header-spacer { height: var(--header-h); }
/* i link interni (#…) si fermano sotto la testata fissa, non dietro */
[id] { scroll-margin-top: calc(var(--header-h) + 12px); }

.nav { flex: 0 0 48%; display: flex; justify-content: center; padding-left: 10px; }
.nav__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: nowrap; align-items: center; }
.nav__item.only-mobile { display: none; }
.nav__sub--mobile { display: none; }
.sub-toggle { display: none; background: none; border: 0; padding: 0 32px; cursor: pointer; color: inherit; }
.sub-toggle svg { width: 12px; height: 12px; fill: none; stroke: currentColor; stroke-width: 2; transition: transform .2s; }
.nav__item { position: relative; margin: 0 12px; }
.nav__item:first-child { margin-left: 0; }
.nav__item:last-child { margin-right: 0; }
.nav__link {
  display: flex; align-items: center; gap: 6px;
  font: 500 16px/25.6px var(--body-font);
  white-space: nowrap;
  padding: 6px 6px 8px;
  border-bottom: 2px solid transparent;
}
.nav__link:hover, .nav__item.is-active > .nav__link { color: var(--green); }
.nav__item.is-active > .nav__link { border-bottom-color: var(--green); }
.nav__link .chev { width: 10px; height: 10px; fill: none; stroke: currentColor; stroke-width: 2; }
.nav__sub {
  list-style: none; margin: 0; padding: 0;
  position: absolute; top: 100%; left: 0;
  /* larga quanto la voce più lunga: ogni voce su una sola riga */
  width: max-content; min-width: 248px; white-space: nowrap;
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 10px 30px -8px rgba(0, 0, 0, .2);
  opacity: 0; visibility: hidden; transform: translateY(8px);
  transition: opacity .2s, transform .2s, visibility .2s;
  overflow: hidden;
}
.nav__item:hover > .nav__sub, .nav__item:focus-within > .nav__sub, .nav__item.is-open > .nav__sub { opacity: 1; visibility: visible; transform: none; }
/* finestre strette: il sottomenu si apre verso sinistra, così non esce dallo schermo */
@media (max-width: 1100px) { .nav__sub { left: auto; right: 0; } }
.nav__sub a {
  display: block;
  font: 500 17px/27.2px var(--body-font);
  color: var(--sub-text);
  padding: 14px 28px;
}
.nav__sub a:hover { color: var(--green); background: #f6f6f6; }

.site-header__phone {
  flex: 0 0 17%;
  display: flex; align-items: center; gap: 12.6px;
  font: 700 17px/30.6px var(--body-font);
  color: var(--phone);
}
.site-header__phone svg { width: 18px; height: 18px; fill: var(--green); }
.site-header__phone a:hover { color: var(--green); }
.site-header__cta { flex: 0 0 13%; display: flex; }
.site-header__cta .btn { width: 100%; }

.nav-toggle {
  display: none;
  background: none; border: 0; padding: 8px; cursor: pointer; color: #333;
}
.nav-toggle svg { width: 26px; height: 26px; fill: currentColor; }
.nav-toggle__label { display: none; }
.nav-toggle__close, .nav-toggle[aria-expanded="true"] .nav-toggle__open { display: none; }
.nav-toggle[aria-expanded="true"] .nav-toggle__close { display: block; }

/* ---------------------------------------------------------------- sezioni home */
.section { padding: 0 32px; }
.section__row { display: flex; flex-wrap: wrap; margin: 0 -6px; }
.col-half { width: 50%; padding: 0 0 0 var(--gutter); }

.hero, .webinar {
  background-color: rgba(0, 0, 0, .05);
  background-size: cover;
  background-position: 0% 50%;
  background-repeat: no-repeat;
  padding-top: 80px;
}
/* sezioni solo desktop: gli sfondi si scaricano solo lì (su telefono e tablet ~320 KB in meno) */
@media (min-width: 992.02px) {
  .hero { background-image: url(/wp-content/uploads/2020/09/img-sito-wide.png); }
  .webinar { background-image: url(/wp-content/uploads/2021/04/img-sito-wide-3-dark.png); }
}
.hero .section__row, .webinar .section__row { align-items: center; }
.hero__text, .webinar__text { padding-top: 1.5%; padding-bottom: 2.5%; }
.hero__text { margin-left: 50%; }

.display {
  font: 300 50px/52.67px var(--head-font);
  letter-spacing: -.46px;
  margin: 20px 0 50.6px;
}
.lead {
  font-size: 18px; line-height: 25.2px;
  letter-spacing: -.02em;
  color: var(--text-soft);
}
.lead b, .lead strong { font-weight: 700; }
.hero__actions { display: flex; justify-content: flex-end; margin-top: 36px; padding-bottom: 20px; }
.webinar__actions { margin-top: 36px; padding-bottom: 30px; }

/* aree operative */
.areas-intro { padding: 68.24px 32px; text-align: center; }
.areas-intro__inner { padding: 0 var(--gutter); margin: 0 -6px; }
.areas-intro h2 {
  font: 300 clamp(24.87px, calc(20.48px + 1.125vw), 32px)/1.14 var(--head-font);
  letter-spacing: -.01em;
  margin: 32px 0 1.1em;
}
/* sull'originale il testo da 20px sta in un paragrafo da 16px: la riga scende di qualche pixel */
.areas-intro p { font-size: 20px; line-height: 51.2px; margin-bottom: 64px; position: relative; top: 5px; }

.areas { background: rgba(207, 207, 207, .4); padding: 27.29px 32px 27.29px 17px; }
.areas__grid { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0 -10px; }
.area-card { display: block; padding: 6.975px 17.44px 34.89px; }
.area-card__img {
  position: relative; height: 231px; margin: 20px 10px 9px;
  background-size: cover; background-position: 50% 50%;
  box-shadow: 0 0 10px rgba(0, 0, 0, .25);
  overflow: hidden;
}
.area-card__label {
  position: absolute; left: 0; right: 0; bottom: 0;
  background: rgba(18, 123, 95, .7);
  color: #fff;
  padding: 15px 10px 15px 25px;
  font-size: 17px; line-height: 27.2px;
  transition: background .2s;
}
.area-card--whatsapp .area-card__label { background: rgba(255, 233, 100, .7); padding: 15px 10px 17px 35px; }
.area-card:hover .area-card__label { background: rgba(18, 123, 95, .9); }
.area-card--whatsapp:hover .area-card__label { background: rgba(255, 233, 100, .9); }

/* news in evidenza */
.featured { padding: 0 32px 20px; }
.featured__inner { padding: 52px var(--gutter) 0; margin: 0 -6px; }
.featured__title {
  background: var(--lime);
  color: #fff;
  text-align: center;
  padding: 5px 0;
  font: 300 32px/40px var(--head-font);
  letter-spacing: -.01em;
  margin-bottom: 32px;
}
.featured__title b { font-weight: 400; }
/* come Avada: voci della stessa riga alla stessa altezza, "Leggi di più" in fondo; 48px fra le voci */
.post-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 48px; }
.post-card { display: flex; flex-direction: column; }
.post-card__media { position: relative; display: block; overflow: hidden; }
.post-card__media img { width: 100%; }
.post-card__media::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(to top, var(--lime-dark) 0, rgba(248, 96, 17, 0) 100%);
  opacity: 0; transition: opacity .3s;
}
.post-card__media:hover::after { opacity: 1; }
.post-card__body { flex: 1 1 auto; display: flex; flex-direction: column; padding-top: 26px; }
.post-card__title {
  font: 400 clamp(20.6px, calc(19.7345px + .22116vw), 22px)/1.3 var(--body-font);
  letter-spacing: -.01em;
  margin-bottom: 5px;
}
.post-card__title a:hover { color: var(--green); }
.post-card__meta { font-size: 13px; line-height: 19.5px; padding: 0; margin: 0 0 20px; }
.post-card__meta a:hover { color: var(--green); }
.post-card__meta .sep { margin: 0 5px; }
.post-card__more {
  border-top: 1px dashed rgba(0, 0, 0, .08);
  margin-top: auto; padding: 25px 0 31px;
  font-size: 13px; line-height: 20.8px;
}
.post-card__more a::after { content: " ›"; }
.post-card__more a:hover { color: var(--green); }
.featured__actions { text-align: center; padding: 20px 0 20px; }

/* ---------------------------------------------------------------- pagine interne
   Chi siamo, pagine persona, Cosa facciamo. Misure dall'originale a 1440px e 390px. */
.h-xl, .h-l, .h-m { font-family: var(--head-font); font-weight: 300; letter-spacing: -.01em; }
.h-xl { font-size: clamp(35.99px, calc(22.46px + 3.47vw), 58px); line-height: 1.14; margin: 12px 0 calc(1.1em + 24px); }
.h-l  { font-size: clamp(30.86px, calc(21.55px + 2.386vw), 46px); line-height: 1.14; }
.h-m  { font-size: clamp(24.87px, calc(20.49px + 1.124vw), 32px); line-height: 1.26; }

/* intro con foto (Chi siamo) e intro centrata (Cosa facciamo) */
.page-intro { padding: 48px 26px 60px; }
.page-intro p { font-size: 17px; line-height: 23.8px; letter-spacing: -.02em; }
.page-intro--media { display: flex; align-items: flex-start; }
.page-intro__media { flex: 0 0 33.333%; padding: 20px 27px 0 26px; }
.page-intro__media img { width: 100%; margin-bottom: 20px; }
.page-intro--media .page-intro__text { flex: 0 0 66.667%; padding: 39px 27px 0 26px; }
.page-intro--media p { text-align: justify; }
.page-intro--narrow .page-intro__text { width: 75%; margin: 0 auto; padding: 10px 27px 52px 26px; }

/* fascia verde con invito all'azione (Chi siamo) */
.cta-band { display: flex; align-items: center; background: var(--green); color: #f4f4f6; padding: 0 26px; }
.cta-band__text { flex: 0 0 66.667%; padding: 20px 27px 20px 26px; }
.cta-band__text h2 { margin: 12px 0 24px; }
.cta-band__text p { font-size: 17px; line-height: 27.2px; }
.cta-band__action { flex: 0 0 33.333%; display: flex; justify-content: center; padding: 20px 27px 20px 26px; }
.btn--light { background: #f4f4f6; color: var(--green); }
.btn--light:hover { background: #fff; color: var(--green-dark); }

/* pagina persona */
.person { display: flex; align-items: center; padding: 68.24px 26px; }
.person__text { flex: 0 0 75%; padding: 20px 80px 20px 79px; }
.person__name { margin: 12px 0 37px; }
.person__role { margin: 0 0 24px; }
.person__text p { font-size: 17px; line-height: 27.2px; text-align: justify; }
.person__photo { flex: 0 0 25%; padding: 20px 27px 20px 52px; }
.person__photo img { width: 100%; }

/* Cosa facciamo: fascia titolo e aree */
.band-title { background: #3a9f4c; color: #fff; text-align: center; padding: 96px 52px 24px; }
.band-title h2 { line-height: 1.14; margin: 12px 0 1.1em; }
.area { padding: 20px 52px; border-bottom: .8px solid rgba(0, 0, 0, .08); scroll-margin-top: var(--header-h); }
.area:last-child { border-bottom: 0; }
.area h2 { margin: 1em 0; }
.area p { font-size: 17px; line-height: 27.2px; }

/* ---------------------------------------------------------------- pagine Servizi */
.svc-band {
  background: rgba(0, 0, 0, .05) var(--band-bg) left center / cover no-repeat;
  padding: 80px 26px;
}
.svc-band__text { width: 33.333%; padding: 42.875px 0 20px 26px; }
.svc-band__text h1 { font-size: 50px; line-height: 56.5px; margin: 0 0 50.6px; }

.svc-content { padding: 48px 26px 60px; }
.svc-content__inner { width: 75%; margin: 0 auto; padding: 0 27px 0 26px; }
.svc-col { margin-top: 10px; display: flow-root; }
.svc-col p, .svc-col li { font-size: 17px; line-height: 23.8px; letter-spacing: -.02em; }
.svc-col ul, .svc-col ol { padding-left: 40px; margin: 17px 0; }
/* Spaziature dei titoli Avada, misurate sull'originale. Avada mette sotto ogni titolo un
   margine negativo (-50px titolo grande, -20px sottotitolo) che su mobile diventa +24px.
   --h3 e' la dimensione del sottotitolo, che scala con la larghezza. */
.svc-col { --h3: clamp(24.87px, calc(20.49px + 1.124vw), 32px); --title-mb: -20px; --title-mb-big: -50px; }
.svc-col h2 { font: 300 clamp(35.99px, calc(22.46px + 3.47vw), 58px)/1.14 var(--head-font); letter-spacing: -.01em;
  margin: 12px 0 calc(1.1em + var(--title-mb-big) + 12px + var(--h3)); }
.svc-col h3 { font: 300 var(--h3)/1.26 var(--head-font); letter-spacing: -.01em; text-align: justify;
  margin: var(--h3) 0 calc(var(--h3) + var(--title-mb)); }
.svc-col > h3:first-child { margin-top: calc(var(--h3) + 12px); }
.svc-col h2 + h3 { margin-top: 0; }
.svc-col h3 + ul, .svc-col h3 + ol { margin-top: calc(var(--h3) + var(--title-mb) + 17px); }

/* form contatti delle pagine Servizi */
.contact-section {
  background: linear-gradient(180deg, #fff 56%, #f4f4f6 56%);
  padding: 48px 26px 81.89px;
}
.contact-section__title {
  font: 300 clamp(37.7px, calc(22.75px + 3.833vw), 62px)/1.11 var(--head-font);
  letter-spacing: -.01em;
  text-align: center;
  margin: 12px 0 104px;
  padding: 0 26px;
}
.contact-card {
  background: #fff;
  border-radius: 12px;
  box-shadow: 12px 32px 60px -8px rgba(0, 0, 0, .12);
  padding: 40px;
  margin-bottom: 68px;
}
.contact-card__logo { margin: 0 auto 91px; }
/* form dei Servizi e di Contatti: sotto il logo l'etichetta verde "Compila ora il form" (sull'originale e' un pulsante senza link) */
.contact-card--cta .contact-card__logo { margin-bottom: 20px; }
.contact-card__cta {
  display: flex; align-items: center; justify-content: center; gap: 12.6px;
  width: fit-content; max-width: 100%; margin: 0 auto 16px; padding: 17px 40px;
  font: 500 18px/21px var(--body-font); color: var(--green); text-align: center;
}
.contact-card__cta svg { flex: none; width: 18px; height: 18px; fill: currentColor; }
.form { max-width: 764px; margin: 0 auto; }
.form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.field { margin: 0 0 20px; font-size: 14px; line-height: 22.4px; }
.field label { display: block; line-height: 27px; }
/* i testi lunghi del form usano l'interlinea del paragrafo (27,2px) anche a 14px, come l'originale */
.field--text, .field--text label { line-height: 27.2px; }
.field input[type=text], .field input[type=tel], .field input[type=email], .field textarea, .field select {
  display: block; width: 100%;
  height: 50px; padding: 0 15px;
  font: 400 14px var(--body-font); color: #5e5e5e;
  background: #fff; border: .8px solid #dcdcdc; border-radius: 10px;
}
.field textarea { height: 150px; padding: 12px 15px; resize: vertical; }
.field input:focus, .field textarea:focus, .field select:focus { outline: 2px solid var(--green); outline-offset: 0; border-color: var(--green); }
.field__check { white-space: nowrap; }
.field__check input { margin: 0 4px 0 4px; vertical-align: -1px; }
.field a { color: #000; text-decoration: underline; }
.field a:hover { color: var(--green); }
.field--submit { margin: 0 0 20px; }
.field--submit .btn { border: 0; cursor: pointer; }
.field textarea { padding: 8px 15px; }
.field__select { position: relative; display: block; }
.field__select select { appearance: none; -webkit-appearance: none; padding-right: 63px; cursor: pointer; }
.field__select::after {
  content: ""; position: absolute; top: 1px; right: 1px; width: 48px; height: 48px;
  border-left: 1px solid #dcdcdc; pointer-events: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M1.5 3.5 5 7l3.5-3.5' fill='none' stroke='%235e5e5e' stroke-width='1.6'/%3E%3C/svg%3E") center / 11px no-repeat;
}
/* Contatti: la riga "Accetto" ha interlinea 36px sull'originale */
.field--consent-tall .field__check { display: inline-block; line-height: 36px; }
/* Contatti: la sezione e' la prima della pagina, Avada aggiunge 20px in cima */
.contact-section--page { padding-top: 68px; }
.form__status { margin: 16px 0 0; font-size: 15px; }
.form__status.is-ok { color: var(--green); }
.form__status.is-error { color: #b42318; }

/* ---------------------------------------------------------------- barra titolo (Privacy) */
.title-bar {
  min-height: 240px;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 0 52px; text-align: center;
}
.title-bar__title { font: 300 clamp(41.97px, calc(23.5px + 4.737vw), 72px)/1.14 var(--head-font); letter-spacing: -.01em; }
.breadcrumbs { font-size: 14px; line-height: 22.4px; color: rgba(0, 0, 0, .8); }
.breadcrumbs a:hover { color: var(--green); }
.breadcrumbs__sep { margin: 0 5px; }

/* ---------------------------------------------------------------- testo legale (Privacy) */
.legal { padding: 60px 53px 0 52px; }
/* indirizzi web lunghi nel testo: vanno a capo invece di allargare la pagina sul telefono */
.legal { overflow-wrap: anywhere; }
.legal__block { display: flow-root; }
.legal__part { padding: 20px 0; }
.legal__part + .legal__part { padding-top: 0; }
.legal p, .legal li { font-size: 17px; line-height: 27.2px; }
.legal p { margin: 0 0 20px; }
.legal h2 { font: 300 clamp(30.86px, calc(21.55px + 2.386vw), 46px)/1.14 var(--head-font); letter-spacing: -.01em; margin: 0 0 1.1em; }
.legal h3 { font: 300 clamp(24.87px, calc(20.49px + 1.124vw), 32px)/1.26 var(--head-font); letter-spacing: -.01em; margin: 1em 0; }
.legal h4 { font: 400 clamp(22.31px, calc(20.035px + .5825vw), 26px)/1.4 var(--body-font); margin: 1.33em 0; }
.legal ul, .legal ol { padding-left: 40px; margin: 17px 0; }
.legal li > ul, .legal li > ol { margin: 0; }
.legal a { color: #000; }
.legal a:hover { color: var(--green); }

/* ---------------------------------------------------------------- news: parti comuni
   Pagine generate dal container admin (admin/src/View.php). Misure dall'originale a 1440px. */
.post-meta { font-size: 13px; line-height: 19.5px; margin: 0; }
.post-meta .sep { margin: 0 5px; }
.post-meta a:hover { color: var(--green); }

/* intestazione di News, Eventi, News area */
.list-intro { padding: 60px 32px 64px; text-align: center; }
.list-intro__title { font: 300 clamp(35.99px, calc(22.46px + 3.47vw), 58px)/1.12 var(--head-font); letter-spacing: -.01em; margin: 32px auto 24px; max-width: 771px; }
.list-intro__lead { font-size: 25px; line-height: 35px; letter-spacing: -.02em; margin: 0 auto 40px; max-width: 771px; }
.list-intro--wide .list-intro__title, .list-intro--wide .list-intro__lead { max-width: 862px; }

/* fascia verde con filtro per categoria e ricerca (News) */
.news-filters { display: flex; justify-content: space-between; background: var(--green); padding: 55px 32px 47.3px; }
.news-filters__col { width: 405px; max-width: 100%; margin: 0 21px 0 20px; }
.news-filters__title { font: 400 26px/1.4 var(--body-font); margin: 0 0 35px; }
.news-filters select {
  display: block; width: 100%; height: 50px; padding: 0 63px 0 15px;
  font: 400 14px var(--body-font); color: #5e5e5e;
  background: #fff; border: 1px solid #dcdcdc; border-radius: 10px;
}

/* casella di ricerca (fascia filtri, archivi, pagina risultati) */
.search-form { position: relative; display: block; }
.search-form input {
  display: block; width: 100%; height: 50px; padding: 0 15px 0 50px;
  font: 400 14px var(--body-font); color: #5e5e5e;
  background: #fff; border: 1px solid #dcdcdc; border-radius: 10px;
}
.search-form button {
  position: absolute; left: 0; top: 0; width: 50px; height: 50px;
  display: flex; align-items: center; justify-content: center;
  background: none; border: 0; color: #5e5e5e; cursor: pointer;
}
.search-form button svg { width: 15px; height: 15px; }
.search-form input:focus { outline: 2px solid var(--green); outline-offset: 0; }

/* elenco News: data, miniatura, testo */
.news-list { padding: 59px 52px 0; }
.news-list__items { display: flow-root; } /* il margine sotto l'ultima news non si fonde con il pulsante */
.post-medium { display: grid; grid-template-columns: 82px 320px 1fr; grid-template-rows: auto 1fr; column-gap: 17px; margin-bottom: 64.6px; }
.post-medium--noimg { grid-template-columns: 82px 1fr; }
.post-medium__date { grid-column: 1; grid-row: 1; background: var(--green); color: #fff; text-align: center; padding: 8px 0 5px; height: 69px; }
.post-medium__day { display: block; font: 700 29px/29px var(--body-font); }
.post-medium__month { display: block; font-size: 17px; line-height: 27.2px; }
.post-medium__format { grid-column: 1; grid-row: 2; align-self: start; height: 55px; margin-top: 3px; background: #f2f3f5; display: flex; align-items: center; justify-content: center; }
.post-medium__format svg { width: 26px; height: 26px; fill: var(--green); }
.post-medium__media { grid-column: 2; grid-row: 1 / 3; display: block; position: relative; overflow: hidden; }
.post-medium__media img { width: 320px; height: auto; }
.post-medium__body { grid-column: 3; grid-row: 1 / 3; }
.post-medium--noimg .post-medium__body { grid-column: 2; }
.post-medium__title { font: 400 22px/28.6px var(--body-font); letter-spacing: -.01em; margin: 0 0 5px; }
.post-medium__title a:hover { color: var(--green); }
.post-medium__excerpt p { font-size: 17px; line-height: 27.2px; margin: 20px 0 0; }
.post-medium__media::after, .grid-item__media::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(to top, var(--lime-dark) 0, rgba(248, 96, 17, 0) 100%);
  opacity: 0; transition: opacity .3s;
}
.post-medium__media:hover::after, .grid-item__media:hover::after { opacity: 1; }

/* colonna laterale delle pagine News area */
.news-list--sidebar { display: flex; padding: 0 52px 0 44px; }
.news-sidebar { flex: 0 0 298px; margin-right: 54px; padding-top: 44px; }
.news-sidebar__title { font: 400 18px/25.2px var(--body-font); margin: 0 0 24px; }
.news-sidebar__list { list-style: none; margin: 0 0 45px; padding: 0; }
.news-sidebar__list li { padding: 10px 10px 10px 12px; border-bottom: .8px solid rgba(0, 0, 0, .08); font-size: 17px; line-height: 27.2px; }
.news-sidebar__list li:first-child { padding-top: 0; }
.news-sidebar__list a:hover { color: var(--green); }
.news-list__main { flex: 1 1 auto; min-width: 0; padding-top: 20px; }
.post-medium__excerpt p { margin-bottom: 20px; }

/* paginazione (nascosta come sull'originale) e pulsante "Load More Posts" */
.pagination { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.load-more {
  display: block; width: 100%; height: 50px; margin: 20px 0 40px;
  background: #70ae2b; color: #fff; border: 0; border-radius: 0;
  font: 700 17px var(--body-font); text-transform: uppercase; cursor: pointer;
}
.load-more:hover { background: var(--green); }
.load-more[disabled] { opacity: .6; cursor: wait; }

/* griglie a 3 colonne (Eventi, archivi, ricerca) */
.grid-list { padding: 0 28px 40px; }
.grid-list__items { display: grid; grid-template-columns: repeat(3, 1fr); align-items: start; }
.grid-item { padding: 24px; }
.grid-item__media { display: block; position: relative; overflow: hidden; }
.grid-item__media img { width: 100%; }
.grid-item__title { font: 400 22px/28.6px var(--body-font); letter-spacing: -.01em; margin: 26px 0 5px; }
.grid-item__title a:hover { color: var(--green); }
.grid-item--archive { text-align: center; padding-bottom: 69px; }
/* archivi: voci della stessa riga alla stessa altezza, come l'originale */
.grid-list--archive { padding-top: 56px; padding-bottom: 100px; }
.grid-list--archive .grid-list__items { align-items: stretch; }
.grid-item__sep { border-top: 1px dashed rgba(0, 0, 0, .08); margin: 20px 0 0; }
.grid-item__more { font-size: 13px; line-height: 20.8px; padding: 5px 0; margin: 40px 0 0; }
.grid-item--event { padding-bottom: 50px; }
/* Eventi su desktop e tablet: voci della stessa riga alla stessa altezza, "Leggi di più" in fondo (come l'originale) */
@media (min-width: 641px) {
  .grid-list--events .grid-list__items { align-items: stretch; }
  .grid-item--event { display: flex; flex-direction: column; }
  .grid-item--event .grid-item__sep { margin-bottom: 40px; }
  .grid-item--event .grid-item__more { margin-top: auto; }
}
.grid-list.grid-list--events { margin-top: -4px; padding-bottom: 0; }
.grid-list.grid-list--events .load-more { margin-top: 20px; }
.grid-item__more a:hover { color: var(--green); }
.grid-list .load-more { width: calc(100% - 48px); margin: 22px 24px 40px; }

/* intestazione degli archivi (categoria, autore) */
.archive-head { display: flex; justify-content: space-between; align-items: flex-start; min-height: 271px; padding: 92px 52px 0; }
.archive-head__text { flex: 1 1 auto; }
.archive-head__title { font: 300 clamp(30.86px, calc(21.544px + 2.3878vw), 46px)/1.14 var(--head-font); letter-spacing: -.01em; margin: 0 0 13px; }
/* negli archivi le briciole restano visibili anche su tablet e mobile, come sull'originale */
.archive-head .breadcrumbs { display: block; text-align: left; }
.archive-head__search { width: 405px; flex: 0 0 auto; margin-top: 4px; }
.archive-head__search input, .search-head__form input { height: 66px; padding-left: 66px; font-size: 20px; border-width: .8px; }
.archive-head__search button, .search-head__form button { width: 66px; height: 66px; }
.archive-head__search button svg, .search-head__form button svg { width: 20px; height: 20px; }

/* pagina risultati di ricerca */
.search-head { text-align: center; padding: 92px 52px; }
.search-head__title { font: 300 clamp(35.99px, calc(22.46px + 3.47vw), 58px)/1.12 var(--head-font); letter-spacing: -.01em; margin: 0 0 44px; }
.search-head__form { width: 58.33%; margin: 0 auto; }
/* risultati della ricerca: come l'originale, immagini accostate a 10px, voci della stessa riga
   alla stessa altezza e 140px fra "Load More Posts" e la fascia Eventi */
.grid-list.grid-list--search { padding: 40px 52px 100px; }
.grid-list--search .grid-list__items { grid-template-columns: repeat(3, 1fr); gap: 10px; align-items: stretch; }
.grid-item.grid-item--search { padding: 0 0 46px; }
.grid-list--search .load-more { width: 100%; margin: 25px 0 40px; }
.search-empty { text-align: center; font-size: 17px; padding: 20px 0 60px; }

/* fascia verde finale "Contattaci per informazioni sui prossimi eventi" */
.cta-eventi { background: var(--green); color: #fff; padding: 60px 26px 33.64px; text-align: center; }
.cta-eventi__title { font: 300 clamp(24.87px, calc(20.49px + 1.124vw), 32px)/1.26 var(--head-font); letter-spacing: -.01em; margin: 0 26px 36px; }
.cta-eventi__action { margin: 0 0 50px; }
.btn--outline-light { background: #fff; color: #000; border: 2px solid #fff; }
.btn--outline-light:hover { background: transparent; color: #fff; }
.cta-eventi__contacts { display: flex; }
.cta-eventi__contacts p { flex: 1 1 50%; font-size: 30px; line-height: 42px; letter-spacing: -.01em; margin: 0 0 39px; padding: 0 27px 0 26px; }
.cta-eventi__mail { text-align: right; }
.cta-eventi__tel { text-align: left; }
.cta-eventi a:hover { text-decoration: underline; }

/* ---------------------------------------------------------------- singola news */
.title-bar--single { height: 240px; min-height: 0; overflow: visible; }
.title-bar--single .title-bar__title { margin: 0; }
.single { padding: 60px 52px 0; }
.single-nav { display: flex; justify-content: flex-end; gap: 19px; font-size: 17px; line-height: 34px; margin-bottom: 60px; padding: 1px 17px 1px 0; }
.single-nav a:hover { color: var(--green); }
/* frecce fuori dal link, come le icone dell'originale: la larghezza del link resta quella del testo */
.single-nav a { position: relative; }
.single-nav__prev::before { content: "\2039"; position: absolute; right: 100%; margin-right: 6px; }
.single-nav__next::after { content: "\203A"; position: absolute; left: 100%; margin-left: 6px; }
.single__media img { width: 100%; }
.single__title { font: 400 clamp(20.6px, calc(19.74px + .221vw), 22px)/1.3 var(--body-font); letter-spacing: -.01em; margin: 30px 0 1.1em; }
.single__content { font-size: 17px; line-height: 27.2px; overflow-wrap: anywhere; }
/* testi scritti con il builder di Avada (74 news con righe e colonne flex, 23 con colonne
   "legacy" senza margini): solo le regole che usano, con le variabili --awb-* scritte nel markup */
.single__content .fusion-row::before, .single__content .fusion-row::after,
.single__content .fusion-clearfix::before, .single__content .fusion-clearfix::after { content: " "; display: table; }
.single__content .fusion-row::after, .single__content .fusion-clearfix { clear: both; }
.single__content .fusion-flex-container { display: flex; justify-content: center; }
.single__content .fusion-flex-container .fusion-row::before, .single__content .fusion-flex-container .fusion-row::after { content: none; }
.single__content .fusion-flex-container .fusion-row { display: flex; flex-wrap: wrap; flex: 1 1 0%; width: 100%; }
.single__content .fusion-flex-align-items-flex-start { align-items: flex-start; }
.single__content .fusion-layout-column { margin-top: var(--awb-margin-top, 0); margin-bottom: var(--awb-margin-bottom, 0); }
.single__content .fusion-flex-column {
  display: flex; width: var(--awb-width-large, 100%); order: var(--awb-order-large, 0);
  margin-top: var(--awb-margin-top-large, 0); margin-bottom: var(--awb-margin-bottom-large, 20px);
}
.single__content .fusion-flex-column .fusion-column-wrapper {
  display: flex; flex-direction: column; width: 100%;
  margin: 0 var(--awb-spacing-right-large, 4%) 0 var(--awb-spacing-left-large, 4%);
}/* come l'originale: i margini del primo e dell'ultimo blocco escono dal contenitore del testo */
.single__content blockquote > :last-child { margin-bottom: 0; }
.single__content table { border-collapse: collapse; max-width: 100%; }
.single__content td, .single__content th { border: 1px solid #ddd; padding: 4px 8px; }
.single__content ul, .single__content ol { padding-left: 40px; margin: 17px 0; }
/* citazioni: stile Avada dell'originale (molte news hanno tutto il testo in un blockquote) */
.single__content blockquote {
  margin: 34px 40px; padding: 15px;
  border-left: 4px solid var(--green); background: #f4f4f6;
  font-style: italic;
}
.single__content a { color: var(--green); }
.single__meta { font-size: 13px; line-height: 20.8px; padding: 5px 0; margin-top: 20px; }
.share-box { display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap; margin-top: 60px; padding: 22.61px 20px; background: #f4f4f6; }
.share-box__title { font: 400 clamp(22.31px, calc(20.04px + .5814vw), 26px)/1.4 var(--body-font); letter-spacing: -.01em; margin: 0; }
.share-box__icons { display: flex; gap: 0 19.8px; flex-wrap: wrap; }
.share-box__icons a { display: block; width: 20px; height: 20px; margin: 5px 0; color: #000; }
.share-box__icons a:hover { color: var(--green); }
.share-box__icons svg { width: 20px; height: 20px; fill: currentColor; }
.single__section-title { font: 400 16px/24px var(--body-font); letter-spacing: -.01em; margin: 12px 0 32px; }
.single__section-title a:hover { color: var(--green); }
/* "Scritto da": sull'originale il titolo sta 12px sotto l'inizio del blocco (margine non fuso) */
.about-author { display: flow-root; margin-top: 55px; min-height: 137px; }
/* avatar generico come l'originale (Gravatar "mm": nessun autore ha una foto), servito in locale */
.about-author .single__section-title { margin-bottom: 24px; }
.about-author__avatar { float: left; width: 72px; height: 72px; margin: 0 20px 5px 0; border-radius: 50%; }
.related { margin-top: 55px; padding-bottom: 8px; }
.related__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 48px; }
.related__item { display: flex; justify-content: center; align-items: flex-start; padding-bottom: 5px; }
.related__item img { max-width: 100%; height: auto; }
.related__noimg { display: block; padding: 20px; background: #f4f4f6; font-size: 15px; }

/* news: tablet e mobile. Elenco News misurato sull'originale a 820px e 390px; i titoli
   crescono in modo lineare fino a 1024px come in Avada. */
.news-filters__title { font-size: clamp(22.31px, calc(20.04px + .5814vw), 26px); }
.post-medium__title, .grid-item__title { font-size: clamp(20.6px, calc(19.7345px + .22116vw), 22px); }
@media (max-width: 992px) {
  .list-intro { padding: 36px 32px 48px; }
  .list-intro__title, .list-intro__lead,
  .list-intro--wide .list-intro__title, .list-intro--wide .list-intro__lead { max-width: 79.2%; }

  .news-filters { padding: 53px 32px 35px; }
  .news-filters__col { width: 30.63%; margin: 0; }
  .news-filters__title { margin-bottom: 33px; }

  /* voce dell'elenco: data e miniatura in alto, testo sotto a tutta larghezza */
  .news-list { padding-left: 32px; padding-right: 32px; }

  /* singola news (misurata sull'originale a 820px e 390px) */
  /* alta almeno 220px; con un titolo lungo si allunga (4px sopra e sotto), come l'originale */
  .title-bar.title-bar--single { height: auto; min-height: 220px; padding-top: 4px; padding-bottom: 4px; }
  .single { padding-left: 30px; padding-right: 30px; }
  .single__content .fusion-flex-column { width: var(--awb-width-medium, var(--awb-width-large, 100%)); order: var(--awb-order-medium, 0); }
  .single__content .fusion-flex-column .fusion-column-wrapper {
    margin-left: var(--awb-spacing-left-medium, var(--awb-spacing-left-large, 4%));
    margin-right: var(--awb-spacing-right-medium, var(--awb-spacing-right-large, 4%));
  }
  /* condivisione: titolo e icone centrati uno sotto l'altro */
  .share-box { flex-direction: column; justify-content: flex-start; gap: 0; }
  .share-box__title { text-align: center; margin-bottom: .5em; }
  .share-box__icons { justify-content: center; gap: 0 20px; }
  .news-list { padding-top: 60px; }
  /* miniatura larga 320px come su desktop (misura dell'originale su iPad) */
  .post-medium { grid-template-rows: 69px auto; }
  .post-medium__media { grid-column: 2; grid-row: 1 / 3; }
  .post-medium__body { grid-column: 1 / -1; grid-row: 3; padding-top: 20px; }
  .post-medium__title { line-height: 1.3; }

  /* News area su tablet: colonna laterale stretta a sinistra (come l'originale) */
  .news-list.news-list--sidebar { padding: 0 17px; }
  .news-sidebar { flex: 0 0 159px; margin: 0 16px 0 18px; }
  .news-list--sidebar .news-list__main { padding: 20px 15px 0; }
  .grid-list { padding-left: 8px; padding-right: 8px; }
  .grid-list__items { grid-template-columns: repeat(2, 1fr); }
  .grid-item__title { line-height: 1.3; }
  /* archivi su tablet: titolo e ricerca affiancati come su desktop, ricerca larga 1/3 */
  .archive-head { min-height: 265px; padding: 92px 32px 0; }
  .archive-head__search { width: 30.66%; margin-top: 2px; }
  .search-head { padding: 92px 32px; }
  .grid-list.grid-list--search { padding: 40px 32px 100px; }
  .grid-list--search .grid-list__items { grid-template-columns: repeat(2, 1fr); }

  .cta-eventi { padding: 46px 32px 51px; }
  .cta-eventi__title { margin: 0 0 31px; }
  .cta-eventi__contacts p { padding: 0; }
  .cta-eventi__contacts .cta-eventi__mail { margin-right: 29px; }
  .post-medium { margin-bottom: 65.8px; }
}
@media (max-width: 640px) {
  .list-intro { padding: 20px 32px 20px; }
  .list-intro__title, .list-intro__lead,
  .list-intro--wide .list-intro__title, .list-intro--wide .list-intro__lead { max-width: none; }

  /* News area su mobile: colonna laterale sopra l'elenco */
  /* su telefono miniatura da 197px, 12px dopo la data */
  .post-medium { grid-template-columns: 82px 197px 1fr; column-gap: 12px; }
  .post-medium__media img { width: 197px; }
  .news-list.news-list--sidebar { flex-direction: column; padding: 0 25px; }
  .news-sidebar { flex: none; margin: 0 6px 0 25px; }
  .news-list--sidebar .news-list__main { padding: 20px 7px 0; }

  .news-filters { flex-direction: column; padding: 50px 32px 27px; }
  .news-filters__col { width: auto; }
  .news-filters__col + .news-filters__col { margin-top: 69px; }
  .news-filters__title { margin-bottom: 30px; }

  .cta-eventi { padding: 39px 32px 49px; }
  .cta-eventi__title { margin: 0 0 24px; }
  .cta-eventi__action { margin-bottom: 30px; }
  .cta-eventi__contacts { flex-direction: column; }
  .cta-eventi__contacts p { text-align: center; margin: 0 0 20px; }
  .cta-eventi__contacts .cta-eventi__mail { margin-right: 0; }

  .grid-list { padding: 0 8px 40px; }
  .grid-list--archive { padding-top: 56px; padding-bottom: 100px; }
  .grid-list--search .grid-list__items { grid-template-columns: 1fr; }
  .search-head__form { width: auto; }
  .grid-item--archive { padding-bottom: 70px; }
  /* archivi su mobile: titolo, briciole e ricerca uno sotto l'altro */
  .archive-head { display: block; min-height: 0; padding: 92px 32px; }
  .archive-head__title { margin-bottom: 25px; }
  .archive-head__search { width: auto; margin-top: 40px; }
  .grid-list__items { grid-template-columns: 1fr; }
  .single__content .fusion-flex-column { width: var(--awb-width-small, var(--awb-width-large, 100%)); order: var(--awb-order-small, 0); }
  .single__content .fusion-flex-column .fusion-column-wrapper {
    margin-left: var(--awb-spacing-left-small, var(--awb-spacing-left-large, 4%));
    margin-right: var(--awb-spacing-right-small, var(--awb-spacing-right-large, 4%));
  }
  /* post correlati: come il carosello dell'originale, due per volta; gli altri si scorrono */
  .related__grid {
    grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: calc((100% - 48px) / 2);
    overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
  }
  .related__grid::-webkit-scrollbar { display: none; }
  .related__item { scroll-snap-align: start; }
}

/* telefoni molto stretti (sotto 360px): la miniatura delle news si restringe invece di sbordare */
@media (max-width: 359px) {
  .post-medium { grid-template-columns: 82px minmax(0, 197px) 1fr; }
  .post-medium__media img { width: 100%; }
}

/* ---------------------------------------------------------------- pagine città ("Dove lavoriamo")
   Pagine nuove, non presenti sull'originale: /consulenza-sport-terzo-settore/ e una pagina per città. */
.loc-hero { background: #f4f4f6; padding: 56px 52px 64px; }
.loc-hero__inner { max-width: 980px; margin: 0 auto; }
.loc-hero .breadcrumbs { margin-bottom: 28px; }
.loc-kicker { font: 700 13px/1.4 var(--body-font); letter-spacing: .08em; text-transform: uppercase; color: var(--green); margin: 0 0 10px; }
.loc-hero h1 { margin: 0 0 24px; }
.loc-hero__lead { font-size: 19px; line-height: 1.6; letter-spacing: -.01em; margin: 0 0 30px; max-width: 820px; }
.loc-section { padding: 64px 52px; }
.loc-section--alt { background: #f4f4f6; }
.loc-section--green { background: var(--green); color: #fff; }
.loc-section__inner { max-width: 980px; margin: 0 auto; }
.loc-section h2 { margin: 0 0 28px; }
.loc-section h3 { font: 700 19px/1.35 var(--body-font); margin: 0 0 8px; }
.loc-section p, .loc-section li { font-size: 17px; line-height: 27.2px; }
.loc-section p { margin: 0 0 18px; }
.loc-section a:not(.btn) { color: var(--green); text-decoration: underline; }
.loc-section a:not(.btn):hover { color: var(--green-dark); }
.loc-section--green a:not(.btn) { color: #fff; }
.loc-region { font: 700 13px/1.4 var(--body-font) !important; letter-spacing: .08em; text-transform: uppercase; color: var(--green); margin: 34px 0 -14px !important; }
.loc-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; margin: 30px 0 0; padding: 0; list-style: none; }
.loc-cards--3 { grid-template-columns: repeat(3, 1fr); }
.loc-card { background: #fff; border-radius: 12px; padding: 26px 28px; box-shadow: 0 10px 30px -12px rgba(0, 0, 0, .12); }
.loc-section--alt .loc-card { box-shadow: none; }
.loc-card p:last-child { margin-bottom: 0; }
.loc-cards > li:not(.loc-card) { display: flex; }
.loc-cards > li > .loc-card { flex: 1; }
.loc-section a.loc-card--link { display: block; color: var(--text); text-decoration: none; transition: box-shadow .2s; }
.loc-card--link:hover { box-shadow: 0 14px 34px -10px rgba(0, 0, 0, .22); }
.loc-card--link h3 { color: var(--green); }
.loc-card--link:hover h3 { text-decoration: underline; }
.loc-steps { counter-reset: step; list-style: none; margin: 30px 0 0; padding: 0; display: grid; gap: 22px; }
.loc-steps li { counter-increment: step; position: relative; padding-left: 64px; }
.loc-steps li::before {
  content: counter(step, decimal-leading-zero); position: absolute; left: 0; top: 0;
  font: 300 34px/1 var(--head-font); color: var(--green);
}
.loc-office { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 30px; }
.loc-faq details { border-bottom: 1px solid rgba(0, 0, 0, .1); padding: 6px 0; }
.loc-faq summary { cursor: pointer; font: 700 18px/1.4 var(--body-font); list-style: none; position: relative; padding: 12px 36px 12px 0; }
.loc-faq summary::-webkit-details-marker { display: none; }
.loc-faq summary::after { content: "+"; position: absolute; right: 4px; top: 10px; font: 300 26px/1 var(--head-font); color: var(--green); }
.loc-faq details[open] summary::after { content: "–"; }
.loc-faq details p { margin: 0 0 12px; }
.loc-cities { list-style: none; margin: 20px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px 12px; }
.loc-cities a { display: inline-block; padding: 8px 18px; border: 1.5px solid currentColor; border-radius: 30px; text-decoration: none !important; }
.loc-cities a:hover { background: #fff; color: var(--green) !important; }
.loc-source { font-size: 13px !important; line-height: 1.5 !important; color: var(--text-muted); margin-top: 26px !important; }
.loc-cta { text-align: center; }
.loc-cta p { max-width: 720px; margin-left: auto; margin-right: auto; }
@media (max-width: 992px) {
  .loc-hero, .loc-section { padding-left: 40px; padding-right: 40px; }
  .loc-cards--3 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .loc-hero { padding: 40px 26px 48px; }
  .loc-section { padding: 48px 26px; }
  .loc-hero__lead { font-size: 17px; }
  .loc-cards, .loc-cards--3, .loc-office { grid-template-columns: 1fr; }
  .loc-steps li { padding-left: 52px; }
}

/* ---------------------------------------------------------------- footer
   Rifatto rispetto all'originale (che aveva link rotti del tema demo): colonne con sezioni del
   sito, "Dove lavoriamo" (pagine città) e contatti; sotto, i dati societari come prima. */
.site-footer { border-top: 1px solid rgba(0, 0, 0, .08); background: #f4f4f6; color: var(--sub-text); font-size: 15px; line-height: 1.6; }
.site-footer__main {
  /* le colonne di link sono larghe quanto la voce più lunga: ogni voce su una riga */
  display: grid; grid-template-columns: minmax(220px, 1fr) auto auto auto; gap: 40px 56px;
  max-width: 1300px; margin: 0 auto; padding: 72px 52px 48px;
}
.site-footer__logo { display: inline-block; margin-bottom: 18px; }
.site-footer__col p { margin: 0 0 14px; }
.site-footer__title {
  font: 700 13px/1.4 var(--body-font); letter-spacing: .08em; text-transform: uppercase;
  color: var(--green); margin: 6px 0 16px !important;
}
.site-footer__col ul { list-style: none; margin: 0 0 18px; padding: 0; }
.site-footer__col li { margin: 0 0 8px; }
.site-footer a { color: var(--sub-text); }
.site-footer a:hover, .site-footer__title a:hover { color: var(--green); text-decoration: underline; }
.site-footer__title a { color: inherit; }
.site-footer__place { font-size: 14px; line-height: 1.5; }
.site-footer__social { display: flex; gap: 16px; margin-top: 22px; }
.site-footer__social a { display: block; width: 32px; height: 32px; }
.site-footer__social svg { width: 32px; height: 32px; }
.site-footer__copy {
  border-top: 1px solid rgba(0, 0, 0, .08);
  padding: 26px 30px 32px; text-align: center;
  font-size: 13px; line-height: 21px;
  color: var(--text-muted);
}
.site-footer__copy strong { font-weight: 700; }
.site-footer__copy a { color: #000; text-decoration: underline; }
@media (min-width: 641px) { .site-footer__col li { white-space: nowrap; } }
@media (max-width: 1199px) {
  .site-footer__main { grid-template-columns: auto auto; justify-content: space-between; }
}
@media (max-width: 992px) {
  .site-footer__main { padding: 56px 40px 36px; }
}
@media (max-width: 640px) {
  /* "Dove lavoriamo" sul telefono: solo i nomi delle città, come pulsanti affiancati.
     La frase intera resta nel testo del link per Google e per i lettori di schermo. */
  .site-footer__col--cities ul { display: flex; flex-wrap: wrap; gap: 10px; }
  .site-footer .site-footer__col--cities li a { display: inline-block; padding: 8px 16px; border: 1.5px solid var(--green); border-radius: 30px; color: var(--green); font-weight: 500; }
  .site-footer__pre { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .site-footer__main { grid-template-columns: 1fr; gap: 28px; padding: 48px 26px 28px; }
}

/* ---------------------------------------------------------------- dispositivi touch
   Telefoni, tablet e iPad in orizzontale: bersagli da toccare di almeno ~40px (Google ne chiede 48
   fra centro e centro) senza cambiare l'aspetto, e campi dei form a 16px, perché sotto i 16px
   l'iPhone ingrandisce la pagina quando si tocca un campo. */
@media (max-width: 992px), (pointer: coarse) {
  .field input[type=text], .field input[type=tel], .field input[type=email], .field textarea, .field select { font-size: 16px; }
  .field__check input { width: 20px; height: 20px; vertical-align: -4px; accent-color: var(--green); }
  .share-box__icons { gap: 0; }
  .share-box__icons a { width: 40px; height: 40px; margin: 0; display: flex; align-items: center; justify-content: center; }
  .post-card__more a { display: inline-block; padding: 12px 0; margin: -12px 0; }
  .site-footer__col li { margin: 0; }
  .site-footer__col li a { display: inline-block; padding: 9px 0; }
  .site-footer__title a { display: inline-block; padding: 8px 0; margin: -8px 0; }
  .site-footer__copy a { display: inline-block; padding: 10px 0; margin: -10px 0; }
}

/* ---------------------------------------------------------------- barra contatti (solo telefono)
   Sempre visibile in basso: chiamata e WhatsApp a un tocco. Non c'è sull'originale. */
.mobile-bar { display: none; }
@media (max-width: 640px) {
  .mobile-bar {
    display: flex; position: fixed; inset: auto 0 0 0; z-index: 90;
    background: #fff; box-shadow: 0 -2px 12px rgba(0, 0, 0, .12);
    padding: 8px 10px calc(8px + env(safe-area-inset-bottom)); gap: 10px;
  }
  .mobile-bar a {
    flex: 1 1 50%; display: flex; align-items: center; justify-content: center; gap: 8px;
    height: 46px; border-radius: 8px; color: #fff; font: 600 16px/1 var(--body-font);
  }
  .mobile-bar svg { width: 20px; height: 20px; fill: currentColor; flex: none; }
  .mobile-bar__call { background: var(--green); }
  .mobile-bar__wa { background: #1fa855; }
  /* il fondo della pagina non resta coperto dalla barra */
  body { padding-bottom: calc(62px + env(safe-area-inset-bottom)); }
}

/* ---------------------------------------------------------------- animazioni ingresso */
.js .reveal { opacity: 0; transform: translateY(24px); transition: opacity .8s ease, transform .8s ease; }
.js .reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .js .reveal { opacity: 1; transform: none; transition: none; } }

/* ---------------------------------------------------------------- breakpoint
   Come l'originale (Avada): large >= 993px, medium 641-992px, small <= 640px.
   Differenze volute: sotto 1400px l'header si adatta per restare su una riga
   (l'originale manda il menu a capo). Sotto 993px testata e menu come l'originale
   su iPad (641-992px) e su telefono (<= 640px). */

/* desktop stretto: header a larghezza automatica */
@media (max-width: 1399px) {
  .site-header__logo { flex: 0 0 auto; padding-right: 24px; }
  .nav { flex: 1 1 auto; padding-left: 0; }
  .site-header__phone { flex: 0 0 auto; margin-right: 24px; }
  .site-header__cta { flex: 0 0 auto; padding-right: var(--gutter); }
  .site-header__cta .btn { width: auto; }
}
@media (max-width: 1240px) {
  .site-header__phone { display: none; }
}
@media (max-width: 1100px) {
  .nav__item { margin: 0 6px; }
}

/* tablet e mobile: varianti di contenuto "mobile" e menu a comparsa */
@media (max-width: 992px) {
  .only-desktop { display: none; }
  .only-mobile { display: block; }

  .site-header { position: absolute; padding: 0 32px; }
  .site-header__logo img { display: block; }
  .nav-toggle { display: flex; align-items: center; background: #fff; color: #000; }
  .nav {
    position: absolute; left: 0; right: 0;
    background: #fff; display: none;
  }
  .nav.is-open { display: block; }
  .nav__list { flex-direction: column; align-items: stretch; }
  .nav__item, .nav__item:first-child, .nav__item:last-child { margin: 0; display: flex; flex-wrap: wrap; }
  .nav__link { flex: 1 1 auto; border: 0; }
  .nav__link .chev { display: none; }
  .nav__item.is-active > .nav__link { border: 0; }
  .sub-toggle { display: block; }
  .sub-toggle svg { stroke-width: 1.2; }
  .nav__sub { flex: 1 0 100%; position: static; width: auto; min-width: 0; white-space: normal; box-shadow: none; border-radius: 0; opacity: 1; visibility: visible; transform: none; display: none; background: #fff; }
  .nav__item:hover > .nav__sub, .nav__item:focus-within > .nav__sub { display: none; }
  .nav__item.is-open > .nav__sub { display: block; }
  .nav__item.is-open > .sub-toggle svg { transform: rotate(180deg); }

  .hero-m .display, .webinar-m .display { font-size: 50px; line-height: 53.4px; letter-spacing: -.46px; }
  .hero-m .btn, .webinar-m .btn { display: flex; width: max-content; margin: 0 auto; }
  .hero-m picture, .webinar-m picture { display: block; margin: 0 auto; }
  .hero-m img, .webinar-m img { width: 100%; }
  .webinar-m { background: rgba(0, 0, 0, .05); }

  .areas-intro__inner { padding: 0; margin: 0; }
  .areas-intro p { font-size: 20px; line-height: 51.2px; }

  .areas-m { background: rgba(0, 0, 0, .05); }
  .area-m { display: block; text-align: center; }
  .area-m img { width: 100%; aspect-ratio: 293 / 195; object-fit: cover; }
  .area-m span { display: block; font-weight: 700; font-size: 17px; line-height: 27.2px; }
  .area-m:first-child span { font-size: 18px; line-height: 28.8px; }
  /* icona » verde davanti all'etichetta (sull'originale e' l'icona Font Awesome "angle-double-right") */
  .area-m span::before {
    content: ""; display: inline-block; width: 15.75px; height: 18px; margin-right: 10px; vertical-align: -3px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath fill='%23127b5f' d='M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34zm192-34l-136-136c-9.4-9.4-24.6-9.4-33.9 0l-22.6 22.6c-9.4 9.4-9.4 24.6 0 33.9l96.4 96.4-96.4 96.4c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l136-136c9.4-9.2 9.4-24.4 0-33.8z'/%3E%3C/svg%3E") no-repeat 0 50% / 100% auto;
  }

  .featured { padding: 0 32px 20px; }
  .featured__inner { padding: 52px 0 0; margin: 0; }
  .post-grid { grid-template-columns: repeat(2, 1fr); }

  .area { scroll-margin-top: 0; }

  .svc-band { background: none; padding: 80px 32px 20px; }
  .svc-band__text { width: auto; padding: 20px 0 0; }
  .svc-band__text h1 { line-height: 50px; margin-bottom: 33.94px; }
  /* immagine della fascia: caricata subito (come l'originale), larga quanto il file, centrata */
  .svc-band__img img { max-width: 100%; margin: 0 auto; }
}

/* tablet (misure dell'originale su iPad a 820px): testata su una riga alta 91px con logo,
   telefono, "Contattaci" e pulsante "Menu" (che, come sull'originale, copre in parte "Contattaci") */
@media (min-width: 641px) and (max-width: 992px) {
  :root { --header-h: 91px; }
  .site-header__inner { margin: 0 -15px; }
  .site-header__logo { flex: 0 0 42%; padding: 0 0 0 15px; order: 1; }
  .site-header__phone { display: flex; flex: 0 0 24%; margin: 0; order: 2; gap: 12px; }
  .site-header__phone svg { box-sizing: content-box; width: 17px; height: 17px; padding: 7px; }
  .site-header__cta { flex: 0 0 22%; padding: 0; order: 3; }
  .site-header__cta .btn { width: 170px; height: 51px; padding: 17px 40px; }
  .nav-toggle { order: 4; flex: none; margin-left: calc(12% - 122px); position: relative; z-index: 1; padding: 12px 20px; }
  .nav-toggle__label { display: inline; font: 500 20px/26px var(--body-font); }
  .nav-toggle svg { width: 20px; height: 20px; margin-left: 10px; }
  .nav { top: var(--header-h); order: 5; }
  .nav__item[data-nav="contatti"] { display: none; }
  .nav__link { justify-content: center; padding: 15px 0; font: 500 20px/32px var(--body-font); color: #000; }
  .nav__item.is-active > .nav__link, .nav__item.is-active > .sub-toggle { color: rgb(248, 96, 17); }
  .nav__item[data-nav="cosa-facciamo"] > .sub-toggle, .nav__sub--mobile { display: none; }
  .sub-toggle { width: 93px; padding: 0; }
  .nav__sub a { font: 500 20px/32px var(--body-font); padding: 15px 0 15px 30px; color: #000; }

  .hero-m, .webinar-m { padding: 40px 66px 59.77px; }
  .hero-m .display, .webinar-m .display { margin: 23.86px 0 50.6px; }
  .hero-m .btn { margin-top: 31px; }
  .webinar-m .btn { margin-top: 38px; }
  .hero-m picture, .webinar-m picture { max-width: 400px; }

  .areas-intro { padding: 37.25px 32px; }
  .areas-intro h2 { margin-top: 32px; }

  .areas-m { display: grid; grid-template-columns: 1fr 1fr; row-gap: 40px; padding: 20px 17px; }
  .area-m { margin: 0 14.78px; padding: 19.27px 19.27px 39.27px; }
  .area-m span { margin-top: 15.86px; }
  .featured__actions { padding-top: 26px; }
}

/* tablet: layout delle pagine interne come l'originale (Avada "medium") */
@media (min-width: 641px) and (max-width: 992px) {
  .page-intro--media { display: block; padding: 36px 32px 60px; }
  .page-intro__media { width: 30.6%; margin: 0 auto; padding: 20px 0 0; }
  .page-intro--media .page-intro__text,
  .page-intro--narrow .page-intro__text { width: 79.2%; margin: 0 auto; padding: 10px 0 32px; }
  .page-intro--narrow { padding: 36px 32px 60px; }

  .cta-band { padding: 0 32px; }
  .cta-band__text { padding: 20px 10px 20px 0; }
  .cta-band__action { padding: 20px 0 20px 18px; }

  .person { padding: 29.5px 32px 16.5px; }
  .person__text { flex-basis: 50%; padding: 20px 2% 20px 0; }
  .person__photo { flex-basis: 25%; padding: 20px 1% 20px 2%; }

  .band-title { padding: 68px 32px 48px; }
  .area { padding: 20px 32px; }

  .svc-col { margin-bottom: 48px; }
  .svc-col + .svc-col { margin-top: 58px; }

  /* Servizi: fascia titolo in colonna stretta centrata, testo al 79%, form nella meta' sinistra */
  .svc-band__text, .svc-band__img { width: 32.66%; margin-left: auto; margin-right: auto; position: relative; left: 8px; }
  .svc-band__text h1 { line-height: 51.4px; margin-bottom: 46px; }
  .svc-band__img { display: block; }
  .svc-band__img img { max-width: 100%; }
  .svc-content { padding: 36px 32px 22px; }
  .svc-content__inner { width: 79.2%; padding: 0; }
  .contact-section { padding-left: 32px; padding-right: 32px; }
  .contact-section__title { padding: 0; margin-bottom: 68px; }
  /* riquadro del form al 62% della larghezza, spostato 15px a sinistra; form all'88% del riquadro */
  .contact-card { width: 62.35%; margin-left: -15px; margin-bottom: 0; }
  .contact-section--page { padding-top: 28px; }
  .form { max-width: none; width: 88%; margin: 0 0 0 4.2%; }
  .contact-card__logo { margin-left: calc(48.2% - 98px); }
  .contact-card__cta { margin-left: calc(48.2% - 134px); }


  /* Privacy: come su mobile */
  .title-bar { min-height: 220px; padding: 0 30px; }
  .breadcrumbs { display: none; }
  .legal { padding: 60px 30px 0; }
}

/* mobile */
@media (max-width: 640px) {
  /* testata compatta e fissa (diversa dall'originale, alta 156px con logo e menu su due righe):
     logo e pulsante del menu sulla stessa riga, sempre raggiungibili */
  :root { --header-h: 64px; }
  .site-header { position: fixed; padding: 0 16px 0 24px; box-shadow: 0 1px 0 rgba(0, 0, 0, .06); }
  .site-header__inner { margin: 0; }
  .site-header__logo { width: auto; padding: 0; flex: 0 1 auto; }
  .site-header__logo img { width: 150px; }
  .site-header__phone, .site-header__cta { display: none; }
  .nav-toggle { margin: 0 0 0 auto; padding: 10px 12px; }
  .nav-toggle { color: rgb(74, 78, 87); }
  .nav-toggle svg { width: 25px; height: 25px; }
  /* menu: riquadro bianco largo quanto il contenuto, voci allineate a destra, freccia a sinistra */
  .nav { top: calc(var(--header-h) - 4px); left: 16px; right: 16px; max-height: calc(100vh - var(--header-h) - 80px); max-height: calc(100dvh - var(--header-h) - 80px); overflow-y: auto; }
  .nav__item { border-bottom: 1px solid rgba(0, 0, 0, .1); }
  .nav__link { justify-content: flex-end; min-height: 30px; padding: 0 24px; font: 400 16px/25.6px var(--body-font); color: rgb(74, 78, 87); }
  .sub-toggle { order: -1; width: 74px; padding: 0; color: rgb(74, 78, 87); }
  .nav__item.is-active > .nav__link, .nav__item.is-active > .sub-toggle { color: rgb(74, 78, 87); background: rgb(249, 249, 251); }
  .nav__sub a { font: 400 16px/25.6px var(--body-font); color: rgb(74, 78, 87); text-align: right; padding: 2px 40px 2px 24px; }

  .hero-m, .webinar-m { padding: 24px 20px 38.2px; }
  .hero-m .display, .webinar-m .display { margin: 10.9px 0 50.6px; }
  .hero-m .btn, .webinar-m .btn { margin-top: 36px; }
  .hero-m picture, .webinar-m picture { max-width: 350px; }

  .areas-intro { padding: 16.5px 32px; }
  .areas-intro p { top: 3px; }

  .areas-m { display: grid; row-gap: 41px; padding: 20px 32px; }
  .area-m { padding: 17px 17px 37px; }
  .area-m span { padding-top: 14px; }

  .post-grid { grid-template-columns: 1fr; }

  .page-intro { padding: 12px 32px 40px; }
  .page-intro--media { display: block; margin: 0; }
  .page-intro__media { padding: 20px 0 0; }
  .page-intro--media .page-intro__text { padding: 10px 0 32px; }
  .page-intro--narrow .page-intro__text { width: auto; padding: 10px 0 32px; }

  .cta-band { display: block; padding: 0 32px 24px; }
  .cta-band__text { padding: 20px 0; }
  .cta-band__action { justify-content: flex-start; padding: 20px 0; }

  .person { display: block; padding: 0 32px 40px; margin: 0; }
  .person__text { padding: 20px 0; }
  .person__photo { padding: 20px 0; }

  .band-title { padding: 60px 32px 64px; }
  .area { padding: 20px 32px; }

  .svc-content { padding: 12px 32px 40px; }
  .svc-content__inner { width: auto; padding: 0; }
  .svc-col { margin-bottom: 32px; --title-mb: 24px; --title-mb-big: 24px; }
  .svc-col + .svc-col { margin-top: 42px; }

  .contact-section { padding: 12px 26px 19.81px 25px; }
  .contact-section__title { margin: 22px 7px 39px; }
  .contact-card { padding: 24px 28px 16px; margin-bottom: 32px; }
  .contact-card__logo { margin-bottom: 112px; }
  /* sull'originale l'etichetta e' larga 262px: il testo va a capo su due righe */
  .contact-card__cta { width: 262px; }
  .form { padding: 0 13px 0 8px; }
  .contact-card__logo { position: relative; left: -2.5px; }

  .title-bar { min-height: 220px; padding: 0 30px; }
  .breadcrumbs { display: none; }
  .legal { padding: 60px 30px 0; }
}
