/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   IQ WIDGETS â€” Classi generate dai widget PHP Elementor custom
   e classi di pagine specifiche non coperte da components.css
   o single-servizi.css.
   In Equipe Theme v1.0
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   1. BOTTONI â€” alias e varianti mancanti
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

/* .btn-orange â€” alias 1:1 di .btn-iq-primary, usato dai widget IQ */
.btn-orange {
  background: var(--orange);
  color: #fff;
  border: none;
  padding: 13px 26px;
  border-radius: var(--radius-md);
  font-family: var(--ff-body);
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  transition: background .2s var(--ease), transform .2s var(--ease), box-shadow .2s var(--ease);
  line-height: 1;
}
.btn-orange svg,
.btn-orange i,
.btn-orange [class*="e-font-icon"] {
  color: #fff;
  fill: #fff;
  stroke: currentColor;
  flex-shrink: 0;
}
.btn-orange:hover {
  background: var(--orange-l);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(224,114,64,.28);
}
.btn-orange:active { transform: translateY(0); }

/* .btn-ghost-w â€” ghost bianco su sfondi scuri */
.btn-ghost-w {
  background: rgba(255,255,255,.1);
  color: #fff;
  border: 1px solid rgba(255,255,255,.3);
  padding: 12px 22px;
  border-radius: var(--radius-md);
  font-family: var(--ff-body);
  font-size: 15px;
  font-weight: 500;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  transition: background .2s, border-color .2s;
  line-height: 1;
}
.btn-ghost-w:hover { background: rgba(255,255,255,.2); color: #fff; border-color: rgba(255,255,255,.5); }

/* .btn-white â€” bottone bianco pieno su sfondi scuri */
.btn-white {
  background: #fff;
  color: var(--teal-d);
  padding: 13px 26px;
  border-radius: var(--radius-md);
  font-family: var(--ff-body);
  font-size: 15px;
  font-weight: 700;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  transition: background .2s, transform .2s;
  line-height: 1;
}
.btn-white:hover { background: var(--bg-teal); color: var(--teal-d); transform: translateY(-2px); }

/* .btn-blue / .btn-blue-outline â€” usati nell'UIKit */
.btn-blue {
  background: #3B82F6;
  color: #fff;
  padding: 12px 24px;
  border-radius: var(--radius-md);
  font-family: var(--ff-body);
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: background .2s;
  border: none;
  line-height: 1;
}
.btn-blue:hover { background: #2563EB; color: #fff; }
.btn-blue-outline {
  background: transparent;
  color: #3B82F6;
  border: 1.5px solid #93C5FD;
  padding: 11px 22px;
  border-radius: var(--radius-md);
  font-family: var(--ff-body);
  font-size: 15px;
  font-weight: 500;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: all .2s;
  line-height: 1;
}
.btn-blue-outline:hover { background: #EFF6FF; color: #2563EB; }

/* .btn-nav-cta â€” CTA nell'header di navigazione */
.btn-nav-cta {
  background: var(--orange);
  color: #fff;
  padding: 9px 20px;
  border-radius: var(--radius-md);
  font-family: var(--ff-body);
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  transition: background .2s;
  line-height: 1;
  white-space: nowrap;
}
.btn-nav-cta:hover { background: var(--orange-l); color: #fff; }

/* .btn-s4 â€” bottone Spazio4 (arancio primario) */
.btn-s4 {
  background: var(--s4-orange, #E07240);
  color: #fff;
  border: none;
  padding: 14px 28px;
  border-radius: 10px;
  font-family: var(--ff-body);
  font-size: 16px;
  font-weight: 600;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  transition: background .2s var(--ease), transform .2s var(--ease);
  line-height: 1;
}
.btn-s4:hover { background: var(--orange-l, #d05e2e); color: #fff; transform: translateY(-2px); }


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   2. IQ HERO SERVIZIO â€” classi dell'widget iq_svc_hero
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

/* Wrapper esterno generato dal widget */
.iq-hero-wrap {
  position: relative;
  overflow: hidden;
}

/* Titolo H1 */
.iq-hero-title {
  font-family: var(--ff-head);
  font-size: clamp(32px, 4vw, 54px);
  font-weight: 700;
  line-height: 1.1;
  color: var(--ink);
}
.iq-hero-title em { font-style: italic; font-weight: 400; color: var(--teal); }

/* Descrizione */
.iq-hero-desc {
  font-size: 17px;
  font-weight: 300;
  line-height: 1.8;
  color: var(--ink-mid);
  max-width: 500px;
}

/* Eyebrow badge widget â€” si affianca a .service-eyebrow di single-servizi.css */
.iq-service-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #fff;
  border: 1px solid var(--teal-pale);
  color: var(--teal-d);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  padding: 7px 16px;
  border-radius: 100px;
  box-shadow: 0 2px 12px rgba(46,139,114,.08);
}

/* Immagine hero â€” dimensioni e object-fit gestiti dai selettori Elementor */
.iq-hero-img {
  display: block;
  max-width: 100%;
}

/* Wrapper immagine â€” overflow:hidden per il border-radius Elementor */
.iq-hero-img-wrap {
  overflow: hidden;
  line-height: 0;
}

/* Icona dentro una trust pill */
.iq-pill-icon {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  color: var(--teal);
}
.iq-pill-icon svg { display: block; }


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   3. TOP BAR
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

.topbar {
  background: var(--teal-d);
  padding: 8px 0;
  font-size: 12px;
  color: rgba(255,255,255,.75);
}
.topbar-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: rgba(255,255,255,.75);
  text-decoration: none;
  transition: color .2s;
}
.topbar-item:hover { color: #fff; }
.topbar-phone { font-weight: 600; color: #fff; }
.topbar-sep { color: rgba(255,255,255,.25); margin: 0 4px; }
.topbar-social {
  display: inline-flex;
  align-items: center;
  gap: 12px;
}
.topbar-social a {
  color: rgba(255,255,255,.6);
  text-decoration: none;
  transition: color .2s;
  display: inline-flex;
}
.topbar-social a:hover { color: #fff; }


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   4. KPI BAR â€” versione non-iq (pagine specifiche)
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

.kpi-strip {
  background: var(--teal-d);
  padding: 32px 0;
}
.kpi-item {
  text-align: center;
  padding: 0 16px;
  border-right: 1px solid rgba(255,255,255,.14);
}
.kpi-item:last-child { border-right: none; }
.kpi-num {
  font-family: var(--ff-head);
  font-size: clamp(28px, 3vw, 42px);
  font-weight: 700;
  color: #fff;
  line-height: 1;
  margin-bottom: 4px;
}
.kpi-num span { color: var(--teal-l); }
.kpi-label {
  font-size: 12px;
  color: rgba(255,255,255,.55);
  font-weight: 400;
}

@media (max-width: 575px) {
  .kpi-item { border-right: none; padding: 10px 8px; }
}


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   5. SEZIONI WRAPPER â€” label semantici usati nelle pagine
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

.cta-section    { padding: var(--section-py) 0; }
.steps-section  { padding: var(--section-py) 0; }
.team-section   { padding: var(--section-py) 0; }
.target-section { padding: var(--section-py) 0; }
.faq-section    { padding: var(--section-py) 0; }

/* Intestazioni di sezione generiche */
.sec-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  color: var(--teal-d);
  background: var(--bg-teal);
  border: 1px solid var(--teal-pale);
  padding: 5px 14px;
  border-radius: 100px;
  margin-bottom: 12px;
}
.sec-title {
  font-family: var(--ff-head);
  font-size: clamp(24px, 3vw, 38px);
  font-weight: 700;
  line-height: 1.2;
  color: var(--ink);
  margin-bottom: 12px;
}
.sec-desc {
  font-size: 16px;
  line-height: 1.8;
  color: var(--ink-mid);
  max-width: 600px;
}


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   6. FOOTER â€” classi aggiuntive
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

.footer-cert-iq {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  color: rgba(255,255,255,.5);
  text-decoration: none;
  transition: color .2s;
}
.footer-cert-iq:hover { color: rgba(255,255,255,.8); }

.footer-link-iq {
  color: rgba(255,255,255,.55);
  text-decoration: none;
  font-size: 14px;
  transition: color .2s;
  display: block;
  padding: 3px 0;
}
.footer-link-iq:hover { color: #fff; }

.footer-logo-text {
  font-family: var(--ff-head);
  font-size: 18px;
  font-weight: 700;
  color: #fff;
  line-height: 1.2;
}


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   7. PAGINE SPECIFICHE â€” Pillar (psicoterapia, psichiatria)
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

.pillar-hero {
  padding: 80px 0 72px;
  background: var(--bg-soft);
  position: relative;
  overflow: hidden;
}
.pillar-eyebrow {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--teal);
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 16px;
}
.pillar-eyebrow::before {
  content: '';
  width: 18px;
  height: 2px;
  background: var(--teal);
  border-radius: 2px;
}
.pillar-h1 {
  font-family: var(--ff-head);
  font-size: clamp(36px, 4.5vw, 60px);
  font-weight: 700;
  line-height: 1.1;
  color: var(--ink);
  margin-bottom: 18px;
}
.pillar-h1 em { font-style: italic; font-weight: 400; color: var(--teal); }
.pillar-lead {
  font-size: clamp(16px, 1.8vw, 19px);
  font-weight: 300;
  line-height: 1.8;
  color: var(--ink-mid);
  max-width: 580px;
}
.pillar-quote {
  background: var(--bg-teal);
  border-left: 3px solid var(--teal);
  border-radius: 0 var(--radius-md) var(--radius-md) 0;
  padding: 20px 24px;
  margin-top: 32px;
}
.pillar-quote-text {
  font-family: var(--ff-head);
  font-size: 17px;
  font-style: italic;
  color: var(--ink);
  line-height: 1.6;
  margin-bottom: 8px;
}
.pillar-quote-source {
  font-size: 12px;
  font-weight: 600;
  color: var(--teal-d);
  letter-spacing: .5px;
  text-transform: uppercase;
}


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   8. PSICHIATRIA â€” classi specifiche
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

.psich-hero {
  padding: 80px 0 72px;
  background: var(--bg-soft);
  position: relative;
  overflow: hidden;
}
.psich-eyebrow {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--teal);
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 16px;
}
.psich-eyebrow::before {
  content: '';
  width: 18px;
  height: 2px;
  background: var(--teal);
  border-radius: 2px;
}
.psich-h1 {
  font-family: var(--ff-head);
  font-size: clamp(34px, 4vw, 56px);
  font-weight: 700;
  line-height: 1.1;
  color: var(--ink);
}
.psich-h1 em { font-style: italic; font-weight: 400; color: var(--teal); }
.psich-lead {
  font-size: 18px;
  font-weight: 300;
  line-height: 1.8;
  color: var(--ink-mid);
  max-width: 560px;
}
.psich-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #fff;
  border: 1px solid var(--teal-pale);
  padding: 7px 16px;
  border-radius: 100px;
  font-size: 13px;
  font-weight: 500;
  color: var(--ink-mid);
}
.psich-pill strong { color: var(--ink); }

/* KPI psich */
.psich-kpi { background: var(--teal-d); padding: 32px 0; }
.psich-kpi-item {
  text-align: center;
  padding: 0 16px;
  border-right: 1px solid rgba(255,255,255,.14);
}
.psich-kpi-item:last-child { border-right: none; }
.psich-kpi-num {
  font-family: var(--ff-head);
  font-size: clamp(28px, 3vw, 40px);
  font-weight: 700;
  color: #fff;
  line-height: 1;
}
.psich-kpi-num span { color: var(--teal-l); }
.psich-kpi-label { font-size: 12px; color: rgba(255,255,255,.55); margin-top: 4px; }

/* Disturbi psich */
.psich-dist { padding: var(--section-py) 0; }
.psich-dist-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 24px;
  height: 100%;
  transition: all .22s var(--ease);
}
.psich-dist-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-sm);
  border-color: var(--teal-pale);
}

/* Sub-servizi psich */
.psich-sub-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 20px;
  overflow: hidden;
  height: 100%;
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
  transition: transform .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease);
}
.psich-sub-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 48px rgba(46,139,114,.12);
  border-color: var(--teal-pale);
}
.psich-sub-accent { height: 4px; width: 100%; flex-shrink: 0; }
.psich-sub-body   { padding: 24px 20px; flex: 1; display: flex; flex-direction: column; }
.psich-sub-age    { font-size: 10px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; margin-bottom: 8px; }
.psich-sub-title  { font-family: var(--ff-head); font-size: 20px; font-weight: 700; color: var(--ink); margin-bottom: 10px; line-height: 1.3; }
.psich-sub-desc   { font-size: 14px; line-height: 1.7; color: var(--ink-mid); flex: 1; margin-bottom: 16px; }
.psich-sub-tags   { margin-bottom: 16px; }
.psich-sub-tag    { font-size: 11px; font-weight: 500; padding: 4px 10px; border-radius: 100px; border: 1px solid var(--teal-pale); color: var(--teal-d); display: inline-block; margin: 2px; }
.psich-sub-link   { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; color: var(--teal); margin-top: auto; transition: gap .2s; }
.psich-sub-card:hover .psich-sub-link { gap: 12px; }

.psich-info {
  background: var(--bg-teal);
  border: 1px solid var(--teal-pale);
  border-radius: var(--radius-lg);
  padding: 28px;
}
.psich-integrato { padding: var(--section-py) 0; }


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   9. CENTRO ADHD â€” classi specifiche
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

.adhd-hero {
  padding: 80px 0 72px;
  background: var(--bg-soft);
  position: relative;
  overflow: hidden;
}
/* .adhd-h1 — overridden by §17 below; kept for legacy */
.adhd-h1 em { font-style: italic; font-weight: 400; color: var(--teal); }
.adhd-lead {
  font-size: 18px;
  font-weight: 300;
  line-height: 1.8;
  color: #ffffff;
  max-width: 560px;
}
.adhd-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: var(--teal-d);
  background: var(--bg-teal);
  border: 1px solid var(--teal-pale);
  padding: 6px 14px;
  border-radius: 100px;
  margin-bottom: 16px;
}

.adhd-stat-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 24px;
  text-align: center;
}
.adhd-stat-num {
  font-family: var(--ff-head);
  font-size: clamp(28px, 3vw, 42px);
  font-weight: 700;
  color: var(--teal);
  line-height: 1;
}
.adhd-stat-label { font-size: 13px; color: var(--ink-mid); margin-top: 6px; }

.adhd-trust { padding: 40px 0; background: var(--bg-soft); border-top: 1px solid var(--border); }
.adhd-trust-item { display: flex; align-items: center; gap: 10px; }
.adhd-trust-icon {
  width: 40px; height: 40px;
  border-radius: var(--radius-md);
  background: var(--bg-teal);
  display: flex; align-items: center; justify-content: center;
  color: var(--teal); flex-shrink: 0;
}

.adhd-sintomi { padding: var(--section-py) 0; }
.sintomo-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--bg-teal);
  border: 1px solid var(--teal-pale);
  color: var(--teal-d);
  padding: 8px 16px;
  border-radius: 100px;
  font-size: 13px;
  font-weight: 500;
}
.sintomo-title { font-size: 16px; font-weight: 700; color: var(--ink); margin-bottom: 6px; }
.sintomo-desc  { font-size: 14px; line-height: 1.65; color: var(--ink-mid); }

.adhd-steps { padding: var(--section-py) 0; background: var(--bg-teal); }
.adhd-step-num {
  width: 40px; height: 40px; border-radius: 50%;
  background: var(--teal);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--ff-head); font-size: 15px; font-weight: 700; color: #fff;
  flex-shrink: 0;
}
.adhd-step-conn {
  width: 2px;
  background: linear-gradient(to bottom, var(--teal), var(--teal-pale));
  margin: 4px 0 4px 19px;
  flex-grow: 1;
  min-height: 24px;
}

.adhd-target { padding: var(--section-py) 0; }
.adhd-panel {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  overflow: hidden;
}
.adhd-panel-item {
  padding: 16px 20px;
  border-bottom: 1px solid var(--border);
  display: flex; align-items: flex-start; gap: 12px;
}
.adhd-panel-item:last-child { border-bottom: none; }
.adhd-panel-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--teal); flex-shrink: 0; margin-top: 6px;
}
.adhd-panel-title { font-size: 14px; font-weight: 700; color: var(--ink); margin-bottom: 2px; }
.adhd-panel-text  { font-size: 13px; color: var(--ink-mid); line-height: 1.6; }

.adhd-faq    { padding: var(--section-py) 0; }
.adhd-team   { padding: var(--section-py) 0; background: var(--bg-soft); }
.adhd-cosa   { padding: var(--section-py) 0; }
.adhd-gender { padding: var(--section-py) 0; background: var(--bg-soft); }

.adhd-grid-bg {
  background-image: radial-gradient(var(--teal-pale) 1px, transparent 1px);
  background-size: 24px 24px;
  opacity: .4;
  pointer-events: none;
}

.adhd-age-card {
  background: #fff; border: 1px solid var(--border);
  border-radius: var(--radius-lg); padding: 24px; height: 100%;
}
.adhd-age-header { margin-bottom: 16px; }
.adhd-age-badge  { font-size: 10px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--orange); margin-bottom: 4px; }
.adhd-age-title  { font-family: var(--ff-head); font-size: 18px; font-weight: 700; color: var(--ink); }
.adhd-age-tag    { font-size: 11px; font-weight: 500; padding: 4px 10px; border-radius: 100px; display: inline-block; }
.adhd-age-accent { display: block; height: 3px; border-radius: 3px; margin-bottom: 12px; }
.adhd-age-desc   { font-size: 14px; line-height: 1.65; color: var(--ink-mid); }

.adhd-mini-card {
  background: #fff; border: 1px solid var(--border);
  border-radius: var(--radius-lg); padding: 20px; height: 100%;
}
.adhd-mini-ph {
  width: 100%; height: 160px; background: var(--bg-teal);
  border-radius: var(--radius-md);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--ff-head); font-size: 36px; font-style: italic;
  color: var(--teal); margin-bottom: 14px;
}


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   10. SPAZIO 4 â€” variabili e classi specifiche
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

:root {
  --s4-orange: #E07240;
  --s4-gold:   #C97B50;
  --s4-green:  #2E8B72;
  --s4-purple: #7B5EA7;
  --s4-blue:   #1A4A8C;
  --s4-pale-o: #FAE8D8;
  --s4-pale-g: #EAF5F0;
  --s4-pale-p: #F0EBF8;
}

/* â”€â”€ Hero â”€â”€ */
.s4-hero {
  background: white;
  position: relative;
  overflow: hidden;
  padding: 88px 0;
}
.s4-hero-blob1 {
  position: absolute;
  top: -100px; right: -100px;
  width: 500px; height: 500px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(224,114,64,.1) 0%, transparent 65%);
  pointer-events: none;
}
.s4-hero-blob2 {
  position: absolute;
  bottom: -80px; left: -80px;
  width: 400px; height: 400px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(46,139,114,.08) 0%, transparent 65%);
  pointer-events: none;
}
.s4-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--s4-pale-o);
  border: 1px solid rgba(224,114,64,.3);
  color: var(--s4-orange);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  padding: 7px 16px;
  border-radius: 100px;
  margin-bottom: 24px;
}
.s4-h1 {
  font-family: var(--ff-head);
  font-size: clamp(38px, 5vw, 62px);
  font-weight: 700;
  line-height: 1.1;
  color: var(--ink);
  margin-bottom: 20px;
}
.s4-h1 span { color: var(--s4-orange); }
.s4-lead {
  font-size: 18px;
  font-weight: 300;
  line-height: 1.82;
  color: var(--ink-mid);
  max-width: 520px;
  margin-bottom: 36px;
}
/* activity cards (destra hero) */
.s4-act-card {
  border-radius: 20px;
  padding: 28px 24px;
  height: 100%;
  border: 2px solid transparent;
  transition: transform .25s var(--ease), box-shadow .25s var(--ease);
}
.s4-act-card:hover { transform: translateY(-6px); box-shadow: 0 20px 48px rgba(0,0,0,.1); }
/* numeri grandi */
.s4-big-num {
  font-family: var(--ff-head);
  font-size: 56px;
  font-weight: 700;
  line-height: 1;
  margin-bottom: 6px;
}

/* â”€â”€ Laboratori â”€â”€ */
.s4-lab { background: var(--bg-soft); padding: 88px 0; }
.s4-lab-card {
  background: white;
  border-radius: 20px;
  padding: 28px;
  border: 1px solid var(--border);
  transition: transform .22s var(--ease), box-shadow .22s var(--ease);
  height: 100%;
  position: relative;
  overflow: hidden;
}
.s4-lab-card:hover { transform: translateY(-4px); box-shadow: 0 14px 36px rgba(0,0,0,.08); }
.s4-lab-icon {
  width: 52px; height: 52px;
  border-radius: 14px;
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 18px;
  font-size: 24px;
}

/* â”€â”€ Target / Per chi â”€â”€ */
.s4-target { background: white; padding: 88px 0; }
.s4-tcard {
  border-radius: 18px;
  padding: 26px 22px;
  border: 1px solid var(--border);
  background: var(--bg-soft);
  transition: transform .22s var(--ease), box-shadow .22s var(--ease);
  height: 100%;
}
.s4-tcard:hover { transform: translateY(-4px); box-shadow: 0 14px 36px rgba(0,0,0,.08); }

/* â”€â”€ Come funziona (steps) â”€â”€ */
.s4-steps {
  background: linear-gradient(135deg, #FBF7F2 0%, #F6FAF8 100%);
  padding: 88px 0;
}
.s4-step-circle {
  width: 52px; height: 52px;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--ff-head);
  font-size: 18px; font-weight: 700;
  color: white;
  flex-shrink: 0;
}

/* â”€â”€ Quote section â”€â”€ */
.s4-quote { background: var(--s4-orange); padding: 72px 0; }


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   11. SUBPAGE CARDS â€” pagine sub-servizio
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

.subpage-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 20px;
}
.subpage-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 20px;
  overflow: hidden;
  height: 100%;
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
  transition: transform .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease);
}
.subpage-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 18px 44px rgba(46,139,114,.11);
  border-color: var(--teal-pale);
}
.subpage-card-accent  { height: 4px; width: 100%; }
.subpage-card-header  { padding: 22px 20px 4px; }
.subpage-card-title   { font-family: var(--ff-head); font-size: 19px; font-weight: 700; color: var(--ink); line-height: 1.25; margin-bottom: 10px; }
.subpage-card-desc    { font-size: 14px; line-height: 1.7; color: var(--ink-mid); padding: 0 20px 16px; flex: 1; }
.subpage-age-badge    { font-size: 10px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; margin-bottom: 8px; }
.subpage-tags         { padding: 0 20px 12px; }
.subpage-tag          { font-size: 11px; font-weight: 500; padding: 4px 10px; border-radius: 100px; border: 1px solid var(--teal-pale); color: var(--teal-d); display: inline-block; margin: 2px; }
.subpage-link         { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; color: var(--teal); padding: 0 20px 20px; margin-top: auto; transition: gap .2s; }
.subpage-card:hover .subpage-link { gap: 12px; }


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   12. PILLAR HERO â€” widget IQ â€” Pillar Hero
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

.pillar-hero {
  --pillar-bg-start: #F7F2EA;
  --pillar-bg-end:   #EAF5F0;
  background: linear-gradient(135deg, var(--pillar-bg-start) 0%, var(--pillar-bg-end) 60%, #F0EAF5 100%);
  position: relative;
  overflow: hidden;
  padding: 96px 0;
}
.pillar-hero::before {
  content: '';
  position: absolute; top: -120px; right: -120px;
  width: 520px; height: 520px; border-radius: 50%;
  background: radial-gradient(circle, rgba(46,139,114,.1) 0%, transparent 70%);
  pointer-events: none;
}
.pillar-hero::after {
  content: '';
  position: absolute; bottom: -80px; left: -80px;
  width: 360px; height: 360px; border-radius: 50%;
  background: radial-gradient(circle, rgba(196,149,106,.08) 0%, transparent 70%);
  pointer-events: none;
}

.pillar-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--teal);
  margin-bottom: 24px;
}
.pillar-eyebrow::before {
  content: '';
  width: 24px; height: 2px;
  background: var(--teal);
  border-radius: 2px;
}

.pillar-h1 {
  font-family: var(--ff-head);
  font-size: clamp(40px, 5vw, 64px);
  font-weight: 400;
  font-style: italic;
  line-height: 1.12;
  color: var(--ink);
  margin-bottom: 24px;
}
.pillar-h1 p { margin: 0; }
.pillar-h1 strong { font-style: normal; font-weight: 700; }
.pillar-h1 em     { font-style: italic; font-weight: 400; }

.pillar-lead {
  font-size: 18px;
  font-weight: 300;
  line-height: 1.85;
  color: var(--ink-mid);
  max-width: 540px;
  margin-bottom: 40px;
}
.pillar-lead p { margin: 0; }

.pillar-link-secondary {
  font-size: 15px;
  font-weight: 500;
  color: var(--teal-d);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border-bottom: 1px solid var(--teal-pale);
  padding-bottom: 2px;
  transition: border-color .2s, color .2s;
}
.pillar-link-secondary:hover {
  color: var(--teal);
  border-color: var(--teal);
}

/* Quote card */
.pillar-quote {
  background: white;
  border-radius: 20px;
  padding: 32px 28px;
  box-shadow: 0 8px 40px rgba(0,0,0,.07);
  position: relative;
  margin-bottom: 0;
}
.pillar-quote::before {
  content: '\201C';
  font-family: var(--ff-head);
  font-size: 72px;
  font-style: italic;
  color: rgba(46,139,114,.12);
  position: absolute;
  top: 8px; left: 20px;
  line-height: 1;
}
.pillar-quote-text {
  font-family: var(--ff-head);
  font-size: 19px;
  font-style: italic;
  color: var(--ink);
  line-height: 1.6;
  margin-bottom: 16px;
  padding-top: 20px;
  position: relative;
  z-index: 1;
}
.pillar-quote-text p { margin: 0; }
.pillar-quote-source {
  font-size: 12px;
  color: var(--ink-light);
  display: flex;
  align-items: center;
  gap: 10px;
}
.pillar-quote-source::before {
  content: '';
  width: 20px; height: 1px;
  background: var(--teal);
}

/* Mini stats */
.pillar-stats-row {
  display: flex;
  align-items: center;
  gap: 0;
  margin-top: 24px;
  padding-top: 24px;
  border-top: 1px solid var(--border);
}
.pillar-stats-sep {
  width: 1px;
  background: var(--border);
  align-self: stretch;
  margin: 0 4px;
}
.pillar-stat-num {
  font-family: var(--ff-head);
  font-size: 30px;
  font-weight: 700;
  color: var(--teal);
  line-height: 1;
}
.pillar-stat-suffix { color: var(--orange); }
.pillar-stat-label  {
  font-size: 12px;
  color: var(--ink-light);
  margin-top: 4px;
}

@media (max-width: 991px) {
  .pillar-hero { padding: 64px 0; }
  .pillar-h1   { font-size: clamp(32px, 6vw, 48px); }
}
@media (max-width: 767px) {
  .pillar-hero { padding: 48px 0; }
  .pillar-hero::before,
  .pillar-hero::after { display: none; }
}


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   13. PILLAR PERCORSI â€” widget IQ â€” Pillar Percorsi
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

.pillar-percorsi-wrap { background: var(--bg-soft); }

/* Varianti colonne per subpage-grid */
.pillar-percorsi-grid--1 { grid-template-columns: 1fr; }
.pillar-percorsi-grid--2 { grid-template-columns: repeat(2, 1fr); }
.pillar-percorsi-grid--3 { grid-template-columns: repeat(3, 1fr); }

@media (max-width: 768px) {
  .pillar-percorsi-grid--2,
  .pillar-percorsi-grid--3 { grid-template-columns: 1fr; }
}
@media (min-width: 769px) and (max-width: 991px) {
  .pillar-percorsi-grid--3 { grid-template-columns: repeat(2, 1fr); }
}

/* Titolo H2 con em */
.pillar-percorsi-wrap .section-title em {
  font-style: italic;
  font-weight: 400;
}
.pillar-percorsi-wrap .section-title p { margin: 0; }


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   14. PILLAR APPROCCIO â€” widget IQ â€” Pillar Approccio
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

.pillar-approccio-wrap { background: var(--bg-soft); }

.approccio-pillar {
  display: flex;
  gap: 20px;
  align-items: flex-start;
  padding: 22px 0;
  border-bottom: 1px solid var(--border);
}
.approccio-pillar--last,
.approccio-pillar:last-child { border-bottom: none; }

.approccio-item-title {
  font-size: 16px;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 6px;
  line-height: 1.35;
}
.approccio-item-desc {
  font-size: 15px;
  line-height: 1.7;
  color: var(--ink-mid);
}
.approccio-item-desc p      { margin: 0; }
.approccio-item-desc p + p  { margin-top: .4em; }

/* Titolo H2 con em */
.pillar-approccio-wrap .section-title em {
  font-style: italic;
  font-weight: 400;
}
.pillar-approccio-wrap .section-title p { margin: 0; }


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   16. AMBITI DI INTERVENTO â€” widget IQ â€” Ambiti di Intervento
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

.ambito-card {
  background: white;
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 26px 22px;
  border-top: 3px solid var(--teal);
  height: 100%;
  transition: all .22s var(--ease);
}
.ambito-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 36px rgba(46,139,114,.1);
}
.ambito-card.accent-orange { border-top-color: var(--orange); }
.ambito-card.accent-teal-l { border-top-color: var(--teal-l); }

.ambito-icon-box {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  background: var(--bg-teal);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--teal);
  margin-bottom: 16px;
  flex-shrink: 0;
}
.ambito-icon-box svg,
.ambito-icon-box i,
.ambito-icon-box [class*="e-font-icon"] {
  color: inherit;
  fill: currentColor;
}
.ambito-icon-box.orange {
  background: #FBF0EA;
  color: var(--orange);
}

.ambito-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 8px;
  line-height: 1.35;
}
.ambito-desc {
  font-size: 14px;
  line-height: 1.72;
  color: var(--ink-mid);
}
.ambito-desc p { margin: 0; }
.ambito-desc p + p { margin-top: .5em; }

.ambito-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 14px;
}
.ambito-tag {
  font-size: 11px;
  font-weight: 500;
  color: var(--teal-d);
  background: var(--bg-teal);
  padding: 3px 9px;
  border-radius: 100px;
  border: 1px solid var(--teal-pale);
  display: inline-block;
}
.ambito-tag.orange {
  color: #C05A20;
  background: #FBF0EA;
  border-color: #F5C9A8;
}

/* Intro text â€” colore gestito via CSS (light default, dark override) */
.iq-ambiti-intro { color: var(--ink-mid); }

/* â”€â”€ Variante dark â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.iq-ambiti-wrap--dark .section-eyebrow {
  color: rgba(255,255,255,.55);
  border-color: rgba(255,255,255,.2);
}
.iq-ambiti-wrap--dark .section-title {
  color: #fff;
}
.iq-ambiti-wrap--dark .iq-ambiti-intro,
.iq-ambiti-wrap--dark .iq-ambiti-intro p,
.iq-ambiti-wrap--dark .iq-ambiti-intro li,
.iq-ambiti-wrap--dark .iq-ambiti-intro a {
  color: rgba(255,255,255,.72);
}

.iq-ambiti-wrap--dark .ambito-card {
  background: rgba(255,255,255,.07);
  border-color: rgba(255,255,255,.12);
  border-top-color: var(--teal-l);
}
.iq-ambiti-wrap--dark .ambito-card.accent-orange {
  border-top-color: var(--orange);
}
.iq-ambiti-wrap--dark .ambito-card.accent-teal-l {
  border-top-color: rgba(255,255,255,.3);
}
.iq-ambiti-wrap--dark .ambito-card:hover {
  background: rgba(255,255,255,.11);
  box-shadow: 0 14px 36px rgba(0,0,0,.25);
  transform: translateY(-4px);
}

.iq-ambiti-wrap--dark .ambito-icon-box {
  background: rgba(255,255,255,.12);
  color: #fff;
}
.iq-ambiti-wrap--dark .ambito-icon-box.orange {
  background: rgba(255,255,255,.1);
  color: #FFB07C;
}


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   17. DSA HERO â€” widget IQ â€” DSA Hero
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

.dsa-hero__badge {
  transition: box-shadow .2s;
}

.dsa-hero__h1 em {
  font-style: italic;
  font-weight: 800;
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   18. DSA PERCORSO â€” widget IQ â€” DSA Percorso Diagnostico
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

.dsa-percorso-timeline {
  display: flex;
  align-items: flex-start;
  gap: 0;
}

@media (max-width: 767px) {
  .dsa-percorso-timeline {
    flex-direction: column;
    gap: 32px;
  }
  .dsa-percorso-timeline .dsa-percorso-step {
    padding: 0 !important;
    text-align: left !important;
  }
  /* Nascondi le linee connettore su mobile */
  .dsa-percorso-timeline .dsa-percorso-step > div[aria-hidden] {
    display: none !important;
  }
}

.iq-ambiti-wrap--dark .ambito-title {
  color: #fff;
}
.iq-ambiti-wrap--dark .ambito-desc,
.iq-ambiti-wrap--dark .ambito-desc p,
.iq-ambiti-wrap--dark .ambito-desc li,
.iq-ambiti-wrap--dark .ambito-desc a {
  color: rgba(255,255,255,.72);
}

.iq-ambiti-wrap--dark .ambito-tag {
  color: rgba(255,255,255,.8);
  background: rgba(255,255,255,.1);
  border-color: rgba(255,255,255,.18);
}
.iq-ambiti-wrap--dark .ambito-tag.orange {
  color: #FFB07C;
  background: rgba(255,255,255,.08);
  border-color: rgba(255,255,255,.15);
}


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   13. TIPOGRAFIA â€” utility classi
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

.type-eyebrow {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--teal);
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.type-h1 { font-family: var(--ff-head); font-size: clamp(32px,4vw,48px); font-weight: 700; line-height: 1.1; color: var(--ink); }
.type-h2 { font-family: var(--ff-head); font-size: clamp(24px,3vw,36px); font-weight: 700; line-height: 1.2; color: var(--ink); }
.type-h3 { font-family: var(--ff-head); font-size: clamp(18px,2vw,24px); font-weight: 700; line-height: 1.3; color: var(--ink); }

/* Sidebar generica */
.sidebar { position: sticky; top: 88px; }


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   13a. UTILITY GLOBALI â€” sezioni comuni a piÃ¹ pagine
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

/* Eyebrow / soprattitolo */
.section-eyebrow {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--teal);
  display: flex;
  align-items: center;
  gap: 10px;
}
.section-eyebrow::before {
  content: '';
  width: 20px;
  height: 2px;
  background: var(--teal);
  border-radius: 2px;
  flex-shrink: 0;
}

/* Titolo di sezione */
.section-title {
  font-family: var(--ff-head);
  font-size: clamp(26px, 3vw, 40px);
  font-weight: 700;
  line-height: 1.2;
  color: var(--ink);
}
/* Specificità 0,1,1 → parità con `.elementor h2`; forza il colore corretto quando non è sovrascritto dal widget */
h2.section-title, h3.section-title { color: var(--ink); }

/* â”€â”€ Widget DSA Trust Bar â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.iq-dsa-trustbar {
  background: white;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  padding-top: 12px;
  padding-bottom: 12px;
}
.trust-icon {
  width: 36px;
  height: 36px;
  background: var(--bg-teal);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--teal);
  flex-shrink: 0;
}
/* Font Awesome Pro <i> e SVG inline dentro il box icona */
.trust-icon i {
  font-size: 16px;
  line-height: 1;
  display: block;
}
.trust-icon svg {
  width: 16px;
  height: 16px;
  display: block;
}

/* â”€â”€ Widget DSA Intro: dsa-card, law-box, when-box â”€â”€â”€â”€â”€â”€â”€ */
.dsa-card {
  background: var(--bg-teal);
  border-radius: 14px;
  padding: 22px 20px;
  border: 1px solid var(--border);
  transition: all .2s var(--ease);
  height: 100%;
}
.dsa-card:hover {
  background: white;
  box-shadow: 0 8px 24px rgba(46,139,114,.1);
  transform: translateY(-2px);
}
.dsa-card-name {
  font-size: 15px;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 6px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.dsa-card-name::before {
  content: '';
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--teal);
  flex-shrink: 0;
}
.dsa-card-desc {
  font-size: 13px;
  line-height: 1.6;
  color: var(--ink-mid);
}

.law-box {
  background: var(--teal-d);
  border-radius: 14px;
  padding: 28px 30px;
}
.law-box-label {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: rgba(255,255,255,.55);
}
.law-box-text {
  font-size: 15px;
  color: rgba(255,255,255,.9);
  line-height: 1.7;
}
.law-box-text strong { color: white; }

.when-box {
  background: var(--bg-warm);
  border: 1px solid #EDE6D8;
  border-radius: 14px;
  padding: 22px 24px;
}
.when-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 14px;
  color: var(--ink-mid);
  line-height: 1.5;
}
.when-item::before {
  content: 'â†’';
  color: var(--teal);
  font-weight: 700;
  flex-shrink: 0;
  margin-top: 1px;
}

/* â”€â”€ Widget DSA Percorso Diagnostico: timeline + equipe â”€â”€â”€ */
.timeline {
  position: relative;
  padding-left: 52px;
}
.timeline::before {
  content: '';
  position: absolute;
  left: 18px;
  top: 12px;
  bottom: 12px;
  width: 2px;
  background: linear-gradient(to bottom, var(--teal), var(--teal-pale));
  border-radius: 2px;
}
.timeline-dot {
  position: absolute;
  left: -42px;
  top: 4px;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: white;
  border: 2px solid var(--teal);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--ff-mono);
  font-size: 11px;
  font-weight: 600;
  color: var(--teal);
}
.timeline-title {
  font-size: 16px;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 6px;
}
.timeline-desc {
  font-size: 15px;
  line-height: 1.65;
  color: var(--ink-mid);
  margin-bottom: 8px;
}
.timeline-who {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: white;
  border: 1px solid var(--border);
  padding: 4px 12px;
  border-radius: 100px;
  font-size: 12px;
  font-weight: 500;
  color: var(--teal-d);
}

.equipe-img {
  width: 100%;
  height: 280px;
  object-fit: cover;
  border-radius: 18px;
  box-shadow: 0 8px 32px rgba(0,0,0,.08);
}
.equipe-member {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 16px;
  border-radius: 12px;
  background: white;
  border: 1px solid var(--border);
  transition: all .2s;
  color: inherit;
}
.equipe-member:hover {
  box-shadow: 0 4px 16px rgba(46,139,114,.1);
  transform: translateX(4px);
}
.member-photo {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
  border: 2px solid var(--teal-pale);
}
.member-avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--bg-teal);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--ff-head);
  font-size: 16px;
  font-weight: 700;
  color: var(--teal);
  flex-shrink: 0;
  font-style: italic;
  border: 2px solid var(--teal-pale);
}
.member-name {
  font-size: 14px;
  font-weight: 600;
  color: var(--ink);
}
.member-role {
  font-size: 12px;
  color: var(--ink-light);
}
.member-tag {
  margin-left: auto;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .8px;
  text-transform: uppercase;
  background: var(--teal-pale);
  color: var(--teal-d);
  padding: 4px 10px;
  border-radius: 100px;
  flex-shrink: 0;
}

/* â”€â”€ Widget DSA Dopo la Diagnosi: dopo-card â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.dopo-card {
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 32px 28px;
  position: relative;
  overflow: hidden;
  background: var(--bg-soft);
  transition: all .25s var(--ease);
  height: 100%;
}
.dopo-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(46,139,114,.04) 0%, transparent 60%);
  pointer-events: none;
}
.dopo-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 48px rgba(46,139,114,.12);
  border-color: var(--teal-pale);
}
.dopo-card-icon {
  width: 52px;
  height: 52px;
  border-radius: 14px;
  background: var(--teal-pale);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--teal);
  position: relative;
  z-index: 1;
}
.dopo-card-title {
  font-size: 17px;
  font-weight: 700;
  color: var(--ink);
  position: relative;
  z-index: 1;
}
.dopo-card-desc {
  font-size: 15px;
  line-height: 1.7;
  color: var(--ink-mid);
  position: relative;
  z-index: 1;
}


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   14. STAFF PROFILO â€” hero, curriculum, cv-text, contatti
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

/* â”€â”€ profile-hero section â”€â”€ */
.profile-hero {
  background: var(--bg-soft);
  position: relative;
  overflow: hidden;
}
.profile-hero::before {
  content: '';
  position: absolute;
  top: -80px; right: -80px;
  width: 480px; height: 480px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(46,139,114,.07) 0%, transparent 70%);
  pointer-events: none;
}

/* Photo wrap */
.profile-photo-wrap { position: relative; max-width: 400px; }
.profile-photo {
  width: 100%;
  height: 500px;
  object-fit: cover;
  object-position: top center;
  border-radius: 24px;
  box-shadow: 0 24px 64px rgba(46,139,114,.14);
  display: block;
}
.profile-photo-placeholder {
  width: 100%;
  height: 500px;
  background: var(--bg-teal);
  border-radius: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--ff-head);
  font-size: 72px;
  font-style: italic;
  font-weight: 700;
  color: var(--teal);
}

/* Availability badge (sotto la foto) */
.availability-badge {
  position: absolute;
  bottom: -16px;
  left: 50%;
  transform: translateX(-50%);
  background: white;
  border-radius: 100px;
  padding: 10px 20px;
  box-shadow: 0 8px 32px rgba(0,0,0,.1);
  display: flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
  border: 1px solid var(--border);
}
.avail-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: #4DC87A;
  flex-shrink: 0;
  animation: pulse 2s infinite;
}
.avail-text {
  font-size: 13px;
  font-weight: 600;
  color: var(--ink);
}

/* Profile text elements */
.profile-role-tag {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--bg-teal);
  border: 1px solid var(--teal-pale);
  color: var(--teal-d);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  padding: 7px 16px;
  border-radius: 100px;
}
.profile-name {
  font-family: var(--ff-head);
  font-size: clamp(32px, 4vw, 52px);
  font-weight: 700;
  color: var(--ink);
  line-height: 1.1;
}
.profile-role {
  font-size: 18px;
  font-weight: 300;
  color: var(--ink-mid);
}
.profile-tagline {
  font-size: 17px;
  font-weight: 300;
  line-height: 1.8;
  color: var(--ink-mid);
}

/* Spec chips (tassonomia ruolo) */
.spec-chip {
  font-size: 12px;
  font-weight: 500;
  color: var(--teal-d);
  background: var(--bg-teal);
  padding: 6px 14px;
  border-radius: 100px;
  border: 1px solid var(--teal-pale);
  display: inline-block;
}
.spec-chip.orange {
  color: #b85a2a;
  background: #FEF0E8;
  border-color: #FDDCC8;
}

/* btn-ghost-teal */
.btn-ghost-teal {
  background: transparent;
  color: var(--teal-d);
  border: 1.5px solid var(--teal-pale);
  padding: 13px 24px;
  border-radius: 10px;
  font-family: var(--ff-body);
  font-size: 15px;
  font-weight: 500;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: background .2s, border-color .2s;
}
.btn-ghost-teal:hover {
  background: var(--bg-teal);
  color: var(--teal-d);
  border-color: var(--teal-l);
}

/* â”€â”€ Keyframe pulse (availability dot) â”€â”€ */
@keyframes pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%       { opacity: .6; transform: scale(1.2); }
}

/* â”€â”€ Curriculum section â”€â”€ */
.iq-staff-curriculum {
  background: white;
  padding: 88px 0;
}

/* cv-collapsible — read-more wrapper */
.cv-collapsible {
  overflow: hidden;
  transition: max-height .5s ease;
  position: relative;
}
.cv-collapsible.cv-expanded .cv-fade { display: none; }
.cv-fade {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 80px;
  background: linear-gradient(to bottom, transparent, var(--bg-soft, #f7f5f2));
  pointer-events: none;
}
.cv-toggle-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 16px;
  background: none;
  border: 1.5px solid var(--teal-pale);
  color: var(--teal-d);
  font-family: var(--ff-body);
  font-size: 14px;
  font-weight: 600;
  padding: 8px 18px;
  border-radius: var(--radius-pill);
  cursor: pointer;
  transition: background .2s, color .2s;
}
.cv-toggle-btn:hover { background: var(--bg-teal); }
.cv-toggle-icon { flex-shrink: 0; transition: transform .3s; }
.cv-toggle-icon--up { transform: rotate(180deg); }

/* cv-block-title — eyebrow con lineetta teal */
.cv-block-title {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  color: var(--teal);
  display: flex;
  align-items: center;
  gap: 10px;
}
.cv-block-title::before {
  content: '';
  width: 16px;
  height: 2px;
  background: var(--teal);
  border-radius: 2px;
  flex-shrink: 0;
}

/* cv-timeline â€” vertical line + dot + entry */
.cv-timeline {
  position: relative;
  padding-left: 44px;
}
.cv-timeline::before {
  content: '';
  position: absolute;
  left: 12px;
  top: 8px;
  bottom: 8px;
  width: 2px;
  background: linear-gradient(to bottom, var(--teal), var(--teal-pale));
  border-radius: 2px;
}
.cv-item {
  position: relative;
  margin-bottom: 28px;
}
.cv-item:last-child { margin-bottom: 0; }
.cv-dot {
  position: absolute;
  left: -38px;
  top: 5px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: white;
  border: 2px solid var(--teal);
  box-shadow: 0 0 0 3px var(--teal-pale);
}
.cv-year {
  font-size: 11px;
  font-weight: 600;
  color: var(--teal);
  letter-spacing: 0.5px;
  margin-bottom: 4px;
}
.cv-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 3px;
}
.cv-place {
  font-size: 13px;
  color: var(--ink-light);
}

/* profile quote (dark teal card con testo bianco) */
.profile-quote {
  background: var(--teal-d);
  border-radius: 20px;
  padding: 36px 40px;
  position: relative;
  overflow: hidden;
}
.profile-quote::before {
  content: '\201C';
  font-family: var(--ff-head);
  font-size: 120px;
  color: rgba(255,255,255,.06);
  position: absolute;
  top: -20px; left: 20px;
  line-height: 1;
  pointer-events: none;
}
.profile-quote-text {
  font-family: var(--ff-head);
  font-size: 20px;
  font-style: italic;
  color: rgba(255,255,255,.95);
  line-height: 1.65;
  position: relative;
  z-index: 1;
  margin-bottom: 16px;
}
.profile-quote-author {
  font-size: 13px;
  color: rgba(255,255,255,.5);
  display: flex;
  align-items: center;
  gap: 10px;
  position: relative;
  z-index: 1;
}
.profile-quote-author::before {
  content: '';
  width: 20px;
  height: 1px;
  background: rgba(255,255,255,.3);
}

/* approach-tag */
.approach-tag {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 16px;
  background: var(--bg-soft);
  border-radius: 12px;
  border: 1px solid var(--border);
  transition: background .2s, border-color .2s;
}
.approach-tag:hover {
  background: var(--bg-teal);
  border-color: var(--teal-pale);
}
.approach-tag-icon {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: var(--bg-teal);
  color: var(--teal);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 16px;
}
.approach-tag:hover .approach-tag-icon {
  background: white;
}
.approach-tag-name {
  font-size: 14px;
  font-weight: 600;
  color: var(--ink);
  margin-bottom: 3px;
}
.approach-tag-desc {
  font-size: 12px;
  color: var(--ink-light);
  line-height: 1.45;
}

/* cv-abilitazione â€” sfondo teal chiaro, icona bianca */
.cv-abilitazione {
  display: flex;
  align-items: center;
  gap: 12px;
  background: var(--bg-teal);
  border: 1px solid var(--teal-pale);
  border-radius: 10px;
  padding: 12px 16px;
}
.cv-abilitazione-icon {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: white;
  color: var(--teal);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 16px;
}
.cv-abilitazione-nome {
  font-size: 13px;
  font-weight: 700;
  color: var(--ink);
}
.cv-abilitazione-sub {
  font-size: 12px;
  color: var(--ink-light);
  margin-top: 2px;
}

/* cv-sede (da tassonomia sede) */
.cv-sede-item {
  display: flex;
  align-items: center;
  gap: 12px;
  background: white;
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 12px 16px;
}
.cv-sede-icon {
  color: var(--teal);
  flex-shrink: 0;
  display: flex;
  align-items: center;
}
.cv-sede-nome {
  font-size: 13px;
  font-weight: 600;
  color: var(--ink);
}
.cv-sede-sub {
  font-size: 12px;
  color: var(--ink-light);
  margin-top: 2px;
}

/* â”€â”€ CV Text section â”€â”€ */
.iq-staff-cv-text { padding: 0 0 88px; background: white; }
.cv-text-block { /* container */ }
.cv-pdf-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--bg-teal);
  border: 1px solid var(--teal-pale);
  color: var(--teal-d);
  font-size: 13px;
  font-weight: 600;
  padding: 9px 18px;
  border-radius: 10px;
  text-decoration: none;
  transition: background .18s;
}
.cv-pdf-btn:hover { background: var(--teal-pale); color: var(--teal-d); }
.cv-text-area {
  background: var(--bg-soft);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 40px;
  min-height: 200px;
}
.cv-text-inner { font-size: 15px; line-height: 1.8; color: var(--ink-mid); }
.cv-text-inner h4 {
  font-family: var(--ff-head);
  font-size: 17px;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--border);
}
.cv-text-inner ul {
  list-style: none;
  padding: 0;
  margin: 0 0 24px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.cv-text-inner ul li {
  padding-left: 20px;
  position: relative;
  font-size: 14px;
  line-height: 1.7;
}
.cv-text-inner ul li::before {
  content: 'â€”';
  position: absolute;
  left: 0;
  color: var(--teal);
  font-weight: 700;
}
.cv-text-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  min-height: 160px;
  opacity: .45;
  color: var(--ink);
}
.cv-text-placeholder svg { color: var(--teal); margin-bottom: 14px; }
.cv-text-placeholder div { font-size: 15px; font-weight: 600; }
.cv-text-placeholder p { font-size: 15px; color: var(--ink-light); margin-top: 6px; max-width: 320px; }

/* â”€â”€ Contatti info â”€â”€ */
.contact-card {
  display: flex;
  align-items: center;
  gap: 14px;
  background: white;
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 24px;
  transition: all .2s;
  color: inherit;
  text-decoration: none;
}
.contact-card:hover {
  border-color: var(--teal-pale);
  box-shadow: 0 8px 28px rgba(46,139,114,.08);
  color: inherit;
  text-decoration: none;
}
.contact-icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: var(--bg-teal);
  color: var(--teal);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.contact-label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--ink-light);
  margin-bottom: 4px;
  line-height: 16px;
}
.contact-value {
  font-size: 15px;
  font-weight: 600;
  color: var(--ink);
  line-height: 16px;
}
.contact-sub {
  font-size: 13px;
  color: var(--ink-light);
  /* margin-top: 2px; */
}


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   14. SERVIZI STAFF â€” section.servizi-section (Di cosa mi occupo)
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

.iq-staff-servizi {
  background: var(--bg-soft);
  padding: 88px 0;
}

/* Card servizio */
.servizio-card {
  border-radius: 18px;
  overflow: hidden;
  background: white;
  border: 1px solid var(--border);
  height: 100%;
  transition: transform .25s var(--ease, ease), box-shadow .25s var(--ease, ease), border-color .25s;
  cursor: pointer;
  display: flex;
  flex-direction: column;
}
.servizio-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 20px 48px rgba(46,139,114,.11);
  border-color: var(--teal-pale);
}
.servizio-card .card-img-top {
  height: 180px;
  width: 100%;
  object-fit: cover;
  display: block;
  flex-shrink: 0;
}
.servizio-card .card-img-placeholder {
  height: 180px;
  background: var(--bg-teal);
  flex-shrink: 0;
}
.servizio-card .card-body {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.servizio-tag {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--teal);
}
.servizio-name {
  font-family: var(--ff-head);
  font-size: 19px;
  font-weight: 700;
  color: var(--ink);
  line-height: 1.25;
}
.servizio-desc {
  font-size: 14px;
  line-height: 1.65;
  color: var(--ink-mid);
  flex: 1;
}
.servizio-link {
  font-size: 13px;
  font-weight: 600;
  color: var(--teal);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: gap .2s;
  margin-top: auto;
}
.servizio-link:hover { gap: 10px; color: var(--teal); }

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   15. RESPONSIVO â€” aggiustamenti globali widget IQ
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

@media (max-width: 991px) {
  .iq-hero-title { font-size: clamp(28px,4vw,42px); }
  .psich-kpi-item,
  .kpi-item { border-right: none; border-bottom: 1px solid rgba(255,255,255,.12); }
  .psich-kpi-item:last-child,
  .kpi-item:last-child { border-bottom: none; }
  .sidebar { position: static; }
}

@media (max-width: 767px) {
  .topbar { display: none; }
  .iq-hero-title { font-size: clamp(26px,6vw,36px); }
  .iq-hero-desc  { font-size: 16px; max-width: 100%; }
  .pillar-h1, .psich-h1, .adhd-h1, .s4-h1 { font-size: clamp(28px,7vw,40px); }
  .s4-hero-blob1, .s4-hero-blob2 { display: none; }
  .subpage-grid { grid-template-columns: 1fr; }
}

/* =====================================================
   16. ARCHIVIO TEAM (archive-staff.php + card-staff)
   ===================================================== */

/* -- Hero -- */
.iq-team-hero {
  background: var(--bg-teal);
  position: relative;
  overflow: hidden;
}
.iq-team-hero::before {
  content: '';
  position: absolute;
  top: -60px;
  right: -60px;
  width: 360px;
  height: 360px;
  border-radius: 50%;
  background: rgba(46,139,114,.07);
  pointer-events: none;
}
.iq-team-h1 {
  font-family: var(--ff-head);
  font-size: clamp(34px,4vw,54px);
  font-weight: 700;
  color: var(--ink);
  line-height: 1.12;
}
.iq-team-h1 em { font-style: italic; font-weight: 400; }

/* -- Stats -- */
.iq-team-stat-num {
  font-family: var(--ff-head);
  font-size: 36px;
  font-weight: 700;
  color: var(--teal);
  line-height: 1;
}
.iq-team-stat-plus { color: var(--teal-l); font-size: 24px; }
.iq-team-stat-label { font-size: 12px; color: var(--ink-light); margin-top: 4px; }

/* -- Filter bar -- */
.iq-team-filter-bar {
  background: white;
  border-bottom: 1px solid var(--border);
  position: sticky;
  top: 112px;
  z-index: 99;
  box-shadow: 0 2px 12px rgba(0,0,0,.04);
}
.iq-filter-inner {
  display: flex;
  align-items: center;
  gap: 8px;
  overflow-x: auto;
  scrollbar-width: none;
  height: 56px;
}
.iq-filter-inner::-webkit-scrollbar { display: none; }
.iq-filter-btn {
  font-size: 13px;
  font-weight: 500;
  color: var(--ink-mid);
  background: none;
  border: 1px solid transparent;
  padding: 7px 16px;
  border-radius: 100px;
  white-space: nowrap;
  cursor: pointer;
  transition: all .2s;
  font-family: var(--ff-body);
  text-decoration: none;
  display: inline-block;
  line-height: 1.4;
}
.iq-filter-btn:hover { background: var(--bg-teal); color: var(--teal); }
.iq-filter-btn.active { background: var(--teal); color: white; border-color: var(--teal); }

/* -- Team card -- */
.iq-team-card {
  background: white;
  border: 1px solid var(--border);
  border-radius: 20px;
  overflow: hidden;
  transition: all .25s var(--ease);
  height: 100%;
  display: flex;
  flex-direction: column;
}
.iq-team-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 48px rgba(46,139,114,.11);
  border-color: var(--teal-pale);
}
.iq-team-card:hover .iq-team-card-overlay { opacity: 1; }

.iq-team-photo-wrap { position: relative; overflow: hidden; }
.iq-team-photo {
  width: 100%;
  height: 280px;
  object-fit: cover;
  object-position: top;
  display: block;
  transition: transform .4s var(--ease);
}
.iq-team-card:hover .iq-team-photo { transform: scale(1.04); }
.iq-team-placeholder {
  width: 100%;
  height: 280px;
  background: var(--bg-teal);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--ff-head);
  font-size: 52px;
  font-style: italic;
  font-weight: 700;
  color: var(--teal);
}
.iq-team-card-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(26,43,37,.7) 0%, transparent 50%);
  opacity: 0;
  transition: opacity .3s;
  display: flex;
  align-items: flex-end;
  padding: 20px;
}
.iq-overlay-cta {
  font-size: 13px;
  font-weight: 600;
  color: white;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.iq-team-card-body {
  padding: 22px 20px;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.iq-team-name {
  font-family: var(--ff-head);
  font-size: 17px;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 4px;
  line-height: 1.2;
}
.iq-team-role { font-size: 13px; color: var(--ink-light); margin-bottom: 12px; line-height: 1.4; }
.iq-team-bio  { font-size: 13px; line-height: 1.65; color: var(--ink-mid); flex: 1; margin-bottom: 16px; }
.iq-team-specs { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 16px; }
.iq-team-spec {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .5px;
  text-transform: uppercase;
  color: var(--teal-d);
  background: var(--bg-teal);
  padding: 4px 10px;
  border-radius: 100px;
}
.iq-team-spec.orange { color: #b85a2a; background: #FEF0E8; }
.iq-team-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 14px;
  border-top: 1px solid var(--border);
  margin-top: auto;
}
.iq-team-sedi { font-size: 12px; color: var(--ink-light); display: flex; align-items: center; gap: 5px; }
.iq-team-link {
  font-size: 13px;
  font-weight: 600;
  color: var(--teal);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  transition: gap .2s;
}
.iq-team-link:hover { gap: 8px; color: var(--teal); }

/* -- Pagination -- */
.iq-team-grid-section .nav-links {
  display: flex;
  gap: 8px;
  justify-content: center;
  flex-wrap: wrap;
}
.iq-team-grid-section .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 8px;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 500;
  border: 1px solid var(--border);
  color: var(--ink-mid);
  text-decoration: none;
  transition: all .2s;
}
.iq-team-grid-section .page-numbers.current,
.iq-team-grid-section .page-numbers:hover {
  background: var(--teal);
  color: white;
  border-color: var(--teal);
}
.iq-team-grid-section .page-numbers.dots { border: none; background: none; }

/* -- Responsive -- */
@media (max-width: 767px) {
  .iq-team-hero::before { display: none; }
  .iq-team-h1 { font-size: clamp(28px,7vw,40px); }
  .iq-team-filter-bar { top: 64px; }
}


/* ============================================================
   §17 - CENTRO ADHD
   Variabili colore + tutti i widget adhd-*
   ============================================================ */

:root {
  --adhd-dark: #0E2420;
  --adhd-pale: #EBF5F2;
}

/* -- Hero -- */
.adhd-hero {
  background: var(--adhd-dark);
  padding: 96px 0 80px;
  position: relative;
  overflow: hidden;
}
.adhd-grid-bg {
  position: absolute;
  inset: 0;
  background: var(--ink);
  opacity: .7;
  pointer-events: none;
}
.adhd-hero::before {
  content: '';
  position: absolute;
  top: -180px;
  right: -180px;
  width: 600px;
  height: 600px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(91,181,154,.18) 0%, transparent 65%);
  pointer-events: none;
}
.adhd-badge {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: rgba(91,181,154,.15);
  border: 1px solid rgba(91,181,154,.35);
  color: #5BB59A;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .5px;
  padding: 6px 14px;
  border-radius: 100px;
  margin-bottom: 24px;
}
.adhd-h1 {
  font-family: var(--ff-head);
  font-size: clamp(34px, 4.5vw, 58px);
  font-weight: 800;
  color: white !important;
  line-height: 1.1;
  margin-bottom: 20px;
}
.adhd-h1 span { color: #5BB59A !important; }
.adhd-lead {
  font-size: 17px;
  font-weight: 300;
  line-height: 1.85;
  color: #ffffff !important;
  max-width: 520px;
  margin-bottom: 36px;
}
.btn-orange {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--orange, #E07240);
  color: white;
  font-size: 15px;
  font-weight: 600;
  padding: 14px 26px;
  border-radius: 12px;
  text-decoration: none;
  transition: opacity .2s, transform .2s;
}
.btn-orange:hover { opacity: .9; transform: translateY(-1px); color: white; }
.btn-blue-outline {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 1.5px solid rgba(255,255,255,.3);
  color: rgba(255,255,255,.85);
  font-size: 15px;
  font-weight: 500;
  padding: 14px 24px;
  border-radius: 12px;
  text-decoration: none;
  transition: border-color .2s, color .2s;
}
.btn-blue-outline:hover { border-color: #5BB59A; color: #5BB59A; }
.btn-teal {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--teal, #2E8B72);
  color: white;
  font-size: 15px;
  font-weight: 600;
  padding: 13px 26px;
  border-radius: 12px;
  text-decoration: none;
  transition: opacity .2s, transform .2s;
}
.btn-teal:hover { opacity: .88; transform: translateY(-1px); color: white; }
.adhd-stat-card {
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 14px;
  padding: 20px 16px;
  text-align: center;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.adhd-stat-num {
  font-family: var(--ff-head);
  font-size: 32px;
  font-weight: 800;
  color: white;
  line-height: 1;
  margin-bottom: 6px;
}
.adhd-stat-num span { color: #5BB59A; }
.adhd-stat-label {
  font-size: 12px;
  color: rgba(255,255,255,.55);
  line-height: 1.4;
}
.adhd-panel {
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 20px;
  padding: 32px 28px;
}
.adhd-panel-title {
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: #5BB59A;
  margin-bottom: 22px;
}
.adhd-panel-item {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  padding: 14px 0;
  border-bottom: 1px solid rgba(255,255,255,.07);
}
.adhd-panel-item:last-child { border-bottom: none; padding-bottom: 0; }
.adhd-panel-dot {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(91,181,154,.2);
  border: 1px solid rgba(91,181,154,.4);
  color: #5BB59A;
  font-size: 12px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}
.adhd-panel-text {
  font-size: 14px;
  color: rgba(255,255,255,.78);
  line-height: 1.65;
  padding-top: 8px;
}
.adhd-panel-text strong { color: white; }

/* -- Trust bar -- */
.adhd-trust {
  background: var(--adhd-pale);
  padding: 28px 0;
}
.adhd-trust-item {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 14px;
  font-family: var(--ff-body, sans-serif);
  color: var(--ink-mid, #4A5568);
  white-space: nowrap;
}
.adhd-trust-item strong {
  font-family: var(--ff-body, sans-serif);
  color: var(--ink, #1A202C);
}
.adhd-trust-icon {
  flex-shrink: 0;
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: white;
  border: 1px solid #C8E8DF;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--teal, #2E8B72);
}

/* -- Cosa e -- */
.adhd-cosa {
  padding: 96px 0;
  background: white;
}
.adhd-cosa-placeholder {
  width: 100%;
  height: 420px;
  border-radius: 20px;
  background: linear-gradient(135deg, #EAF5F0 0%, #F6FAF8 100%);
  border: 2px dashed #C8E8DF;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #6A7D74;
  font-size: 13px;
  gap: 10px;
}
.tipo-card {
  background: white;
  border-radius: 14px;
  border-top: 3px solid var(--teal, #2E8B72);
  border: 1px solid var(--border, #E5EDEA);
  border-top: 3px solid var(--teal, #2E8B72);
  padding: 18px 16px;
  height: 100%;
}

/* -- Sintomi -- */
.adhd-sintomi {
  padding: 96px 0;
  background: var(--bg-light, #F8FAF9);
}
.sintomo-chip {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  background: white;
  border: 1px solid var(--border, #E5EDEA);
  border-radius: 14px;
  padding: 18px 16px;
  height: 100%;
  color: var(--teal, #2E8B72);
}
.sintomo-chip > svg { flex-shrink: 0; margin-top: 2px; }
.sintomo-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 5px;
}
.sintomo-desc {
  font-size: 13px;
  color: var(--ink-mid);
  line-height: 1.6;
}

/* -- Target -- */
.adhd-target {
  padding: 96px 0;
  background: white;
}
.adhd-age-card {
  background: var(--adhd-pale);
  border-radius: 18px;
  border: 1px solid #C8E8DF;
  overflow: hidden;
  height: 100%;
  display: flex;
  flex-direction: column;
  transition: box-shadow .25s, transform .25s;
}
.adhd-age-card:hover {
  box-shadow: 0 10px 40px rgba(0,0,0,.09);
  transform: translateY(-3px);
}
.adhd-age-header {
  padding: 28px 24px 20px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex: 1;
}
.adhd-age-badge {
  display: inline-block;
  background: var(--adhd-pale);
  color: var(--teal, #2E8B72);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .5px;
  padding: 4px 12px;
  border-radius: 100px;
  align-self: flex-start;
}
.adhd-age-title {
  font-size: 18px;
  font-weight: 700;
  color: var(--ink);
  line-height: 1.3;
}
.adhd-age-desc {
  font-size: 14px;
  color: var(--ink-mid);
  line-height: 1.7;
}
.adhd-age-tag {
  display: inline-block;
  background: var(--bg-light, #F8FAF9);
  border: 1px solid var(--border, #E5EDEA);
  color: var(--ink-mid);
  font-size: 11px;
  font-weight: 600;
  padding: 3px 10px;
  border-radius: 100px;
}
.adhd-age-accent {
  height: 5px;
  flex-shrink: 0;
}

/* -- Gender -- */
.adhd-gender {
  background: var(--adhd-dark);
  padding: 96px 0;
  position: relative;
  overflow: hidden;
}
.adhd-gender::before {
  content: '';
  position: absolute;
  bottom: -200px;
  left: -200px;
  width: 500px;
  height: 500px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(91,181,154,.14) 0%, transparent 65%);
  pointer-events: none;
}
.adhd-gender-eyebrow {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #5BB59A;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.adhd-gender-line {
  width: 20px;
  height: 2px;
  background: #5BB59A;
  border-radius: 2px;
  display: inline-block;
  flex-shrink: 0;
}
.adhd-gender-h2 {
  font-family: var(--ff-head);
  font-size: clamp(26px, 3vw, 38px);
  font-weight: 700;
  color: white !important;
  line-height: 1.2;
}
.adhd-gender-bullet {
  display: flex;
  align-items: flex-start;
  gap: 14px;
}
.adhd-gender-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #5BB59A;
  flex-shrink: 0;
  margin-top: 7px;
}
.adhd-gender-bullet > div:last-child {
  color: rgba(255,255,255,.78);
  font-size: 15px;
  line-height: 1.65;
}

/* -- Percorso / Steps -- */
.adhd-steps {
  padding: 96px 0;
  background: var(--adhd-pale);
}
.adhd-summary-box {
  background: white;
  border-radius: 14px;
  padding: 22px;
  border: 1px solid #D4EEE7;
}
.adhd-summary-title {
  font-size: 12px;
  font-weight: 700;
  color: var(--teal, #2E8B72);
  margin-bottom: 12px;
  letter-spacing: .5px;
  text-transform: uppercase;
}
.adhd-step-num {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--teal, #2E8B72);
  color: white;
  font-size: 13px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  position: relative;
  z-index: 1;
}
.adhd-step-conn {
  width: 2px;
  flex: 1;
  min-height: 32px;
  background: linear-gradient(to bottom, #C8E8DF, transparent);
  margin: 4px auto 0;
}
.adhd-step-badge {
  margin-top: 8px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--adhd-pale);
  border: 1px solid #D4EEE7;
  padding: 4px 12px;
  border-radius: 100px;
  font-size: 12px;
  font-weight: 500;
  color: var(--teal, #2E8B72);
}

/* -- Responsive ADHD -- */
@media (max-width: 991px) {
  .adhd-hero { padding: 64px 0 56px; }
  .adhd-gender, .adhd-steps, .adhd-cosa, .adhd-sintomi, .adhd-target { padding: 64px 0; }
  .adhd-trust-item { white-space: normal; }
}
@media (max-width: 767px) {
  .adhd-hero .container-xl,
  .adhd-trust .container-xl,
  .adhd-cosa .container-xl,
  .adhd-sintomi .container-xl,
  .adhd-target .container-xl,
  .adhd-gender .container-xl,
  .adhd-steps .container-xl { padding: 0 20px; }
  .adhd-h1 { font-size: clamp(30px, 8vw, 46px); }
  .adhd-trust { padding: 24px 0; }
  .adhd-trust > .container-xl > .d-flex { gap: 20px; flex-direction: column; align-items: flex-start; }
  .adhd-stat-card { padding: 14px 10px; }
  .adhd-stat-num { font-size: 26px; }
}


/* ══════════════════════════════════════════════════════════════════════
   WIDGET HOMEPAGE — stili fp-*
   Spostati da front-page.css qui dentro perché iq-widgets.css è sempre
   caricato (anche nell'editor Elementor), mentre front-page.css viene
   incluso solo quando is_front_page() = true.
   ══════════════════════════════════════════════════════════════════════ */

/* ── Elementor reset: zero padding/margin sui widget home ── */
.elementor-widget-iq_home_hero,
.elementor-widget-iq_home_trustbar,
.elementor-widget-iq_home_services,
.elementor-widget-iq_home_why,
.elementor-widget-iq_home_team,
.elementor-widget-iq_home_dsa,
.elementor-widget-iq_home_contacts {
  padding: 0 !important;
  margin: 0 !important;
}

/* ─── 1. HERO ─────────────────────────────────────────── */
.fp-hero {
  position: relative;
  overflow: hidden;
  min-height: 620px;
  display: flex;
  align-items: center;
}
.fp-hero-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  background-color: var(--teal-d);
}
.fp-hero-bg::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    rgba(26, 43, 37, .82) 0%,
    rgba(26, 43, 37, .55) 55%,
    rgba(26, 43, 37, .10) 100%
  );
  opacity: var(--fp-overlay-opacity, 1);
}
.fp-hero-content {
  position: relative;
  z-index: 2;
}
.fp-hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(255, 255, 255, .12);
  border: 1px solid rgba(255, 255, 255, .25);
  color: rgba(255, 255, 255, .9);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  padding: 7px 16px;
  border-radius: var(--radius-pill);
  backdrop-filter: blur(4px);
}
.fp-hero-h1 {
  font-family: var(--ff-head);
  font-size: clamp(36px, 4vw, 56px);
  font-weight: 700;
  line-height: 1.12;
  color: white;
}
/* Specificità alzata a 0,2,0 per battere `.elementor h2` del kit (0,1,1) */
.fp-hero .fp-hero-h1 { color: white; }
.fp-hero-h1 em {
  font-style: italic;
  font-weight: 400;
  color: var(--teal-l);
}
.fp-hero-lead {
  font-size: 17px;
  font-weight: 300;
  line-height: 1.8;
  color: rgba(255, 255, 255, .85);
}
.fp-hero-btn-primary {
  background: var(--orange);
  color: white;
  border: none;
  padding: 14px 28px;
  border-radius: 10px;
  font-family: var(--ff-body);
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  transition: background .2s, transform .2s, box-shadow .2s;
  line-height: 1;
}
.fp-hero-btn-primary:hover {
  background: var(--orange-l);
  color: white;
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(224, 114, 64, .3);
}
.fp-hero-btn-ghost {
  background: rgba(255, 255, 255, .1);
  color: white;
  border: 1px solid rgba(255, 255, 255, .3);
  padding: 13px 24px;
  border-radius: 10px;
  font-family: var(--ff-body);
  font-size: 15px;
  font-weight: 500;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: background .2s;
  line-height: 1;
}
.fp-hero-btn-ghost:hover { background: rgba(255, 255, 255, .2); color: white; }
.fp-kpi {
  border-left: 2px solid rgba(255, 255, 255, .2);
  padding-left: 18px;
}
.fp-kpi-num {
  font-family: var(--ff-head);
  font-size: 30px;
  font-weight: 700;
  color: white;
  line-height: 1;
}
.fp-kpi-num span { color: var(--teal-l); }
.fp-kpi-label { font-size: 12px; color: rgba(255, 255, 255, .6); margin-top: 4px; }
.fp-hero-card {
  background: rgba(255, 255, 255, .08);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(255, 255, 255, .15);
  border-radius: 20px;
  padding: 28px;
}
.fp-hero-card-title {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--teal-l);
  margin-bottom: 16px;
}
.fp-hci-icon {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: rgba(255, 255, 255, .08);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--teal-l);
  flex-shrink: 0;
}
.fp-hci-text strong {
  display: block;
  font-size: 14px;
  font-weight: 600;
  color: white;
  margin-bottom: 2px;
}
.fp-hci-text span { font-size: 12px; color: rgba(255, 255, 255, .55); }

/* ─── 2. TRUST BAR ────────────────────────────────────── */
.fp-trust-bar {
  background: white;
  border-bottom: 1px solid var(--border);
  padding: 28px 0;
}
.fp-trust-text,
.trust-item-text,
.adhd-trust-text { font-size: 14px; }

.fp-trust-text h4,
.trust-item-text h4,
.adhd-trust-text h4 {
  color: var(--teal);
  text-transform: uppercase;
  font-size: inherit;
  margin: 0;
  line-height: 1.2;
}
.fp-trust-text h4 strong,
.trust-item-text h4 strong { color: inherit; }

.fp-trust-text p,
.trust-item-text p,
.adhd-trust-text p {
  color: var(--ink-mid);
  font-size: 12px;
  margin: 0;
  line-height: 1.2;
}

/* ─── 3. SERVIZI ──────────────────────────────────────── */
.fp-services {
  padding: var(--section-py) 0;
  background: var(--bg-soft);
}
.fp-services-lead {
  font-size: 16px;
  line-height: 1.75;
  color: var(--ink-mid);
  max-width: 460px;
  margin: 0;
}
.servizio-card.featured { display: flex; flex-direction: row; overflow: hidden; }
.servizio-card.featured .card-img-top,
.servizio-card.featured .servizio-card__img {
  width: 50%;
  height: auto;
  min-height: 240px;
  flex: 0 0 50%;
  flex-shrink: 0;
  object-fit: cover;
  background-size: cover;
  background-position: center;
  border-radius: var(--radius-lg) 0 0 var(--radius-lg);
}
.accred-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--teal-pale);
  color: var(--teal-d);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  padding: 5px 12px;
  border-radius: var(--radius-pill);
}

/* ─── 4. PERCHÉ ───────────────────────────────────────── */
.fp-perche { padding: var(--section-py) 0; background: white; }
.fp-perche-img-wrap { position: relative; }
.fp-perche-img {
  width: 100%;
  height: 480px;
  object-fit: cover;
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-lg);
}
.fp-perche-img--placeholder { background: var(--bg-teal); border-radius: var(--radius-xl); }
.fp-perche-kpi-float {
  background: var(--teal-d);
  border-radius: var(--radius-lg);
  padding: 22px 24px;
  box-shadow: 0 12px 40px rgba(31, 107, 87, .3);
  position: absolute;
  bottom: -20px;
  right: -20px;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.fp-pkpi-num { font-family: var(--ff-head); font-size: 26px; font-weight: 700; color: white; line-height: 1; }
.fp-pkpi-num span { color: var(--teal-l); }
.fp-pkpi-label { font-size: 11px; color: rgba(255, 255, 255, .55); margin-top: 4px; }
.fp-perche-lead { font-size: 17px; font-weight: 300; line-height: 1.8; color: var(--ink-mid); }
.fp-pillar { display: flex; gap: 20px; align-items: flex-start; padding: 20px 0; }
.fp-pillar--border { border-bottom: 1px solid var(--border); }
.fp-pillar-num {
  font-family: var(--ff-head);
  font-size: 42px;
  font-weight: 700;
  color: rgba(46, 139, 114, .12);
  line-height: 1;
  min-width: 52px;
  flex-shrink: 0;
}
.fp-pillar-title { font-size: 17px; font-weight: 700; color: var(--ink); margin-bottom: 6px; }
.fp-pillar-desc { font-size: 15px; line-height: 1.7; color: var(--ink-mid); }

/* ─── 5. TEAM ─────────────────────────────────────────── */
.fp-team { padding: var(--section-py) 0; background: var(--bg-soft); }

/* ─── 6. DSA PROMO ────────────────────────────────────── */
.fp-dsa-promo {
  background: var(--teal-d);
  padding: 64px 0;
  position: relative;
  overflow: hidden;
}
.fp-dsa-promo::before {
  content: '';
  position: absolute;
  top: -80px; right: -80px;
  width: 400px; height: 400px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .04);
  pointer-events: none;
}
.fp-dsa-accred {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(255, 255, 255, .1);
  border: 1px solid rgba(255, 255, 255, .2);
  color: rgba(255, 255, 255, .85);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  padding: 6px 14px;
  border-radius: var(--radius-pill);
}
.fp-dsa-title {
  font-family: var(--ff-head);
  font-size: clamp(24px, 2.8vw, 36px);
  font-weight: 700;
  color: white;
  margin-bottom: 10px;
  line-height: 1.25;
}
/* Specificità 0,2,0 → batte `.elementor h2` (0,1,1) del kit */
.fp-dsa-promo .fp-dsa-title { color: white; }
.fp-dsa-text { font-size: 16px; color: rgba(255, 255, 255, .75); line-height: 1.7; max-width: 560px; margin: 0; }

/* ─── 7. CONTATTI ─────────────────────────────────────── */
.fp-contacts { padding: var(--section-py) 0; background: var(--bg-warm); }
.fp-form-wrap {
  background: white;
  border-radius: var(--radius-xl);
  padding: 40px;
  box-shadow: 0 8px 40px rgba(0, 0, 0, .06);
  border: 1px solid var(--border);
}
.fp-form-title { font-family: var(--ff-head); font-size: 24px; font-weight: 700; color: var(--ink); }
.fp-form-sub { font-size: 15px; color: var(--ink-mid); }
.fp-form-wrap .form-control,
.fp-form-wrap .form-select {
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  font-family: var(--ff-body);
  font-size: 15px;
  color: var(--ink);
  background: var(--bg-soft);
  padding: 12px 14px;
}
.fp-form-wrap .form-control:focus,
.fp-form-wrap .form-select:focus {
  border-color: var(--teal-l);
  background: white;
  box-shadow: 0 0 0 3px rgba(46, 139, 114, .08);
}
.fp-form-wrap label { font-size: 13px; font-weight: 600; color: var(--ink-mid); margin-bottom: 6px; }
.fp-form-submit {
  width: 100%;
  padding: 15px;
  background: var(--orange);
  color: white;
  border: none;
  border-radius: var(--radius-sm);
  font-family: var(--ff-body);
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  transition: background .2s, transform .2s;
}
.fp-form-submit:hover { background: var(--orange-l); transform: translateY(-1px); }
.fp-form-privacy { text-align: center; font-size: 12px; color: var(--ink-light); margin-top: 12px; margin-bottom: 0; }
.fp-info-title { font-family: var(--ff-head); font-size: 28px; font-weight: 700; color: var(--ink); }
.fp-info-lead { font-size: 16px; color: var(--ink-mid); line-height: 1.7; }
.fp-sede-card {
  background: white;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 20px 22px;
  transition: box-shadow .2s, border-color .2s;
}
.fp-sede-card:hover { box-shadow: var(--shadow-sm); border-color: var(--teal-pale); }
.fp-sede-label { font-size: 10px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--teal); margin-bottom: 4px; }
.fp-sede-city { font-size: 17px; font-weight: 700; color: var(--ink); margin-bottom: 4px; }
.fp-sede-addr { font-size: 14px; color: var(--ink-mid); }
.fp-sede-contact { display: flex; align-items: center; gap: 8px; font-size: 14px; color: var(--ink-mid); }
.fp-sede-contact svg { color: var(--teal); flex-shrink: 0; }
.fp-sede-contact a { color: var(--ink-mid); text-decoration: none; }
.fp-sede-contact a:hover { color: var(--teal); }
.fp-urgency-box { background: var(--teal-d); border-radius: var(--radius-md); padding: 20px 22px; }
.fp-urgency-top {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  font-weight: 600;
  color: rgba(255, 255, 255, .9);
  margin-bottom: 6px;
}
.fp-urgency-sub { font-size: 13px; color: rgba(255, 255, 255, .55); line-height: 1.5; }

/* ─── 8. BLOG ─────────────────────────────────────────── */
.fp-blog {
  padding: var(--section-py) 0;
  background: var(--bg-soft);
}
.fp-blog-lead {
  font-size: 16px;
  line-height: 1.75;
  color: var(--ink-mid);
  max-width: 460px;
  margin: 0;
}

/* Card base */
.fp-blog-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform .25s var(--ease), box-shadow .25s var(--ease), border-color .25s;
}
.fp-blog-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 20px 48px rgba(46, 139, 114, .1);
  border-color: var(--teal-pale);
}

/* Immagine card standard */
.fp-blog-card__img-wrap { overflow: hidden; flex-shrink: 0; }
.fp-blog-card__img-top {
  width: 100%;
  height: 200px;
  object-fit: cover;
  display: block;
  transition: transform .4s var(--ease);
}
.fp-blog-card:hover .fp-blog-card__img-top { transform: scale(1.04); }
.fp-blog-card__img-placeholder {
  height: 200px;
  background: var(--bg-teal);
  flex-shrink: 0;
}

/* Corpo della card */
.fp-blog-card__body { padding: 22px 22px 20px; flex: 1; }

/* Categoria */
.fp-blog-cat {
  display: inline-flex;
  align-items: center;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--teal-d);
  background: var(--bg-teal);
  border: 1px solid var(--teal-pale);
  padding: 4px 10px;
  border-radius: var(--radius-pill);
  text-decoration: none;
  transition: background .2s;
}
.fp-blog-cat:hover { background: var(--teal-pale); color: var(--teal-d); }

/* Titolo */
.fp-blog-title {
  font-family: var(--ff-head);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--ink);
}
.fp-blog-title a {
  color: inherit;
  text-decoration: none;
  transition: color .2s;
}
.fp-blog-title a:hover { color: var(--teal); }

/* Estratto */
.fp-blog-excerpt {
  font-size: 14px;
  line-height: 1.65;
  color: var(--ink-mid);
  flex: 1;
  margin-bottom: 0;
}

/* Meta (autore · data) */
.fp-blog-meta {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: var(--ink-light);
}

/* Link "Leggi" */
.fp-blog-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  color: var(--teal);
  text-decoration: none;
  transition: gap .2s;
}
.fp-blog-link:hover { gap: 10px; color: var(--teal-d); }

/* ── Variante Featured (primo articolo grande) ── */
.fp-blog-card--featured {
  flex-direction: row;
}
.fp-blog-card--featured .fp-blog-card__img {
  flex: 0 0 46%;
  min-height: 260px;
  background-size: cover;
  background-position: center;
  border-radius: var(--radius-lg) 0 0 var(--radius-lg);
}
.fp-blog-card--featured .fp-blog-card__body { padding: 28px 26px; }
.fp-blog-card--featured .fp-blog-title { font-size: 20px; }
.fp-blog-card--featured .fp-blog-excerpt { -webkit-line-clamp: 4; }


/* ─── Responsive homepage ─────────────────────────────── */
@media (max-width: 991px) {
  .fp-perche-kpi-float { position: static; margin-top: 20px; }
  .fp-form-wrap { padding: 28px 24px; }
}
@media (max-width: 767px) {
  .fp-hero { min-height: auto; padding: 64px 0 56px; }
  .fp-hero-bg::after {
    background: linear-gradient(180deg, rgba(26, 43, 37, .82) 0%, rgba(26, 43, 37, .65) 100%);
  }
  .servizio-card.featured { flex-direction: column; }
  .servizio-card.featured .card-img-top,
  .servizio-card.featured .servizio-card__img { width: 100%; height: 200px; border-radius: var(--radius-lg) var(--radius-lg) 0 0; }
  .fp-blog-card--featured { flex-direction: column; }
  .fp-blog-card--featured .fp-blog-card__img { width: 100%; min-height: 200px; border-radius: var(--radius-lg) var(--radius-lg) 0 0; }
  .fp-services { background: var(--bg-soft); }
  .fp-kpi { padding-left: 14px; }
  .fp-kpi-num { font-size: 24px; }
}


/* ══════════════════════════════════════════════════════════════════════
   PAGINA CHI SIAMO — widget IQ (iq_chisiamo_*)
   Replica fedele di InEquipe_ChiSiamo_Bootstrap.html
   ══════════════════════════════════════════════════════════════════════ */

/* ── Elementor reset: zero padding/margin ── */
.elementor-widget-iq_chisiamo_hero,
.elementor-widget-iq_chisiamo_manifesto,
.elementor-widget-iq_chisiamo_pillars,
.elementor-widget-iq_chisiamo_timeline,
.elementor-widget-iq_chisiamo_approach,
.elementor-widget-iq_chisiamo_stats,
.elementor-widget-iq_chisiamo_team_preview,
.elementor-widget-iq_chisiamo_sedi,
.elementor-widget-iq_chisiamo_cta {
  padding: 0 !important;
  margin: 0 !important;
}

/* ── Testo lead (usato in più widget) ── */
.lead-text {
  font-size: 17px;
  line-height: 1.8;
  color: var(--ink-mid);
}

/* ─── 1. PAGE HERO ──────────────────────────────────────────── */
.iq-cs-hero {
  background: var(--bg-teal);
  position: relative;
  overflow: hidden;
}
.iq-cs-hero::before {
  content: '';
  position: absolute;
  top: -60px; right: -60px;
  width: 360px; height: 360px;
  border-radius: 50%;
  background: rgba(46,139,114,.07);
  pointer-events: none;
}
.iq-cs-hero::after {
  content: '';
  position: absolute;
  bottom: -100px; left: -100px;
  width: 280px; height: 280px;
  border-radius: 50%;
  background: rgba(224,114,64,.05);
  pointer-events: none;
}
.iq-cs-hero h1,
.elementor-widget-iq_chisiamo_hero h1 {
  font-family: var(--ff-head) !important;
  font-size: clamp(38px, 5vw, 64px) !important;
  font-weight: 700 !important;
  color: var(--ink) !important;
  line-height: 1.08 !important;
  letter-spacing: -0.02em !important;
  margin-bottom: 1.25rem;
}
.iq-cs-hero h1 em,
.elementor-widget-iq_chisiamo_hero h1 em {
  font-style: italic !important;
  font-weight: 400 !important;
  color: var(--teal) !important;
}

/* Immagine laterale */
.iq-cs-hero__img-wrap {
  aspect-ratio: 1;
  background: white;
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 24px 56px rgba(46,139,114,.18);
  position: relative;
}
.iq-cs-hero__img-wrap img,
.iq-cs-hero__img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center top !important;
  display: block !important;
  /* Annulla il reset img di Elementor (height:auto) */
  max-height: none !important;
}

/* Badge accreditamento */
.iq-cs-hero__badge {
  position: absolute;
  bottom: 20px; left: 20px; right: 20px;
  background: rgba(255,255,255,.95);
  backdrop-filter: blur(8px);
  border-radius: 14px;
  padding: 14px 18px;
  display: flex;
  align-items: center;
  gap: 12px;
}
.iq-cs-hero__badge-icon {
  width: 42px; height: 42px;
  border-radius: 50%;
  background: var(--bg-teal);
  display: flex; align-items: center; justify-content: center;
  color: var(--teal);
  flex-shrink: 0;
}
.iq-cs-hero__badge-sub {
  font-size: 12px;
  color: var(--ink-light);
  line-height: 1.3;
}
.iq-cs-hero__badge-title {
  font-size: 14px;
  font-weight: 600;
  color: var(--ink);
}

/* ─── 2. MANIFESTO ──────────────────────────────────────────── */
.iq-cs-manifesto {
  background: white;
}
.manifesto-quote {
  font-family: var(--ff-head);
  font-size: clamp(22px, 3.5vw, 34px);
  font-weight: 400;
  font-style: italic;
  color: var(--ink);
  line-height: 1.45;
  position: relative;
  padding-left: 32px;
}
.manifesto-quote::before {
  content: '\201C';
  position: absolute;
  left: -8px; top: -16px;
  font-size: 100px;
  line-height: 1;
  color: var(--teal-pale);
  font-family: var(--ff-head);
  pointer-events: none;
}
.manifesto-author {
  font-size: 14px;
  font-weight: 600;
  color: var(--teal);
  letter-spacing: .04em;
  text-transform: uppercase;
  padding-left: 32px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.manifesto-author::before {
  content: '';
  display: inline-block;
  width: 28px;
  height: 2px;
  background: var(--teal);
  flex-shrink: 0;
}

/* ─── 3. PILLARS ────────────────────────────────────────────── */
.iq-cs-pillars {
  background: var(--bg-soft);
}
.pillar-card {
  background: white;
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 28px;
  position: relative;
  overflow: hidden;
  transition: transform .25s, box-shadow .25s;
}
.pillar-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 4px;
  background: var(--teal);
  border-radius: 20px 20px 0 0;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .3s ease;
}
.pillar-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 16px 40px rgba(46,139,114,.12);
}
.pillar-card:hover::before {
  transform: scaleX(1);
}
.pillar-card.orange::before { background: var(--orange, #e07240); }
.pillar-card.sage::before   { background: #7ea97e; }
.pillar-icon {
  width: 52px; height: 52px;
  border-radius: 12px;
  background: var(--bg-teal);
  display: flex; align-items: center; justify-content: center;
  color: var(--teal);
  margin-bottom: 20px;
  flex-shrink: 0;
  transition: background .25s, color .25s;
}
/* Icone Elementor dentro il box: FontAwesome <i> o SVG inline */
.pillar-icon i,
.pillar-icon svg {
  width: 26px;  height: 26px;
  font-size: 26px;
  line-height: 1;
  display: block;
}
.pillar-card.orange .pillar-icon { background: #fdf0e8; color: var(--orange, #e07240); }
.pillar-card.sage   .pillar-icon { background: #edf5ed; color: #4d8050; }
.pillar-card:hover .pillar-icon  { background: var(--teal); color: white; }
.pillar-card.orange:hover .pillar-icon { background: var(--orange, #e07240); color: white; }
.pillar-card.sage:hover   .pillar-icon { background: #4d8050; color: white; }
/* Specificity 0,2,1 — batte il Kit Elementor (.elementor-kit-ID h3 = 0,1,1) */
.pillar-card h3.pillar-title {
  font-family: var(--ff-head) !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  color: var(--ink) !important;
  margin-bottom: 10px !important;
  margin-top: 0 !important;
  line-height: 1.25 !important;
}
.pillar-card .pillar-text {
  font-size: 14px;
  color: var(--ink-mid);
  line-height: 1.7;
  margin: 0;
}

/* ─── 4. TIMELINE ───────────────────────────────────────────── */
.iq-cs-timeline {
  background: var(--bg-soft);
}
.timeline {
  position: relative;
  padding-left: 0;
  list-style: none;
  margin: 0;
}
.timeline::before {
  content: '';
  position: absolute;
  left: 18px; top: 0; bottom: 0;
  width: 2px;
  background: linear-gradient(to bottom, var(--teal), var(--teal-pale));
}
.timeline-item {
  position: relative;
  padding-left: 60px;
  padding-bottom: 36px;
}
.timeline-item:last-child {
  padding-bottom: 0;
}
.timeline-dot {
  position: absolute;
  left: 8px; top: 4px;
  width: 22px; height: 22px;
  border-radius: 50%;
  background: white;
  border: 2px solid var(--teal);
  box-shadow: 0 0 0 4px rgba(46,139,114,.12);
}
.timeline-item .timeline-year {
  font-family: var(--ff-head) !important;
  font-size: 28px !important;
  font-weight: 700 !important;
  color: var(--teal) !important;
  line-height: 1;
  margin-bottom: 4px;
}
.timeline-item .timeline-title {
  font-size: 17px !important;
  font-weight: 600 !important;
  color: var(--ink) !important;
  margin-bottom: 6px;
  margin-top: 0;
  line-height: 1.3;
}
.timeline-item .timeline-text {
  font-size: 14.5px;
  color: var(--ink-mid);
  line-height: 1.7;
  margin: 0;
}

/* Bottoni del widget ─ definiti globalmente, usabili ovunque */
.btn-outline-iq {
  background: white;
  color: var(--teal);
  padding: 13px 26px;
  border-radius: 10px;
  font-weight: 600;
  font-size: 15px;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  border: 1px solid var(--border);
  transition: background .2s, border-color .2s, transform .2s, box-shadow .2s;
}
.btn-outline-iq:hover {
  background: var(--bg-teal);
  border-color: var(--teal-pale);
  color: var(--teal);
  transform: translateY(-2px);
}
.btn-primary-iq {
  background: var(--teal);
  color: white;
  padding: 14px 28px;
  border-radius: 10px;
  font-weight: 600;
  font-size: 15px;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  border: none;
  transition: background .2s, transform .2s, box-shadow .2s;
  cursor: pointer;
}
.btn-primary-iq:hover {
  background: var(--teal-d);
  color: white;
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(46,139,114,.25);
}
.btn-white {
  background: white;
  color: var(--teal-d);
  padding: 14px 28px;
  border-radius: 10px;
  font-weight: 600;
  font-size: 15px;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  border: none;
  transition: background .2s, transform .2s, box-shadow .2s;
}
.btn-white:hover {
  background: var(--bg-teal);
  color: var(--teal-d);
  transform: translateY(-2px);
}
.btn-ghost-w {
  background: transparent;
  color: white;
  padding: 13px 26px;
  border-radius: 10px;
  font-weight: 600;
  font-size: 15px;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  border: 1px solid rgba(255,255,255,.45);
  transition: background .2s, border-color .2s, transform .2s;
}
.btn-ghost-w:hover {
  background: rgba(255,255,255,.12);
  border-color: rgba(255,255,255,.7);
  color: white;
  transform: translateY(-2px);
}

/* ─── 5. APPROACH ───────────────────────────────────────────── */
.iq-cs-approach {
  background: var(--teal-d);
  position: relative;
  overflow: hidden;
}
.iq-cs-approach::before {
  content: '';
  position: absolute;
  top: -120px; left: -80px;
  width: 360px; height: 360px;
  border-radius: 50%;
  background: rgba(91,181,154,.08);
  pointer-events: none;
}
/* Colori testo sul dark bg */
.iq-cs-approach .section-title { color: white; }
.iq-cs-approach .section-title em { color: var(--teal-l); }
.iq-cs-approach .section-eyebrow { color: var(--teal-l); }
.iq-cs-approach .section-eyebrow::before { background: var(--teal-l); }
.approach-lead {
  font-size: 17px;
  color: rgba(255,255,255,.75);
  line-height: 1.7;
  margin-bottom: 0;
}
.approach-card {
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 20px;
  padding: 32px 28px;
  height: 100%;
  transition: background .25s, transform .25s;
}
.approach-card:hover {
  background: rgba(255,255,255,.12);
  transform: translateY(-4px);
}
.approach-card .approach-num {
  font-family: var(--ff-head);
  font-size: 14px !important;
  font-weight: 400;
  color: var(--teal-l) !important;
  letter-spacing: 2px;
  text-transform: uppercase;
  margin-bottom: 14px;
  display: block;
}
/* Specificity 0,2,1 — batte Kit Elementor */
.approach-card h3.approach-title {
  font-family: var(--ff-head) !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  color: white !important;
  margin-bottom: 10px !important;
  margin-top: 0 !important;
  line-height: 1.25 !important;
}
.approach-card .approach-text {
  font-size: 14px;
  color: rgba(255,255,255,.65);
  line-height: 1.7;
  margin: 0;
}

/* ─── 6. STATS ──────────────────────────────────────────────── */
.iq-cs-stats {
  background: white;
}
.stat-block {
  text-align: center;
  padding: 20px 16px;
}
.stat-num {
  font-family: var(--ff-head);
  font-size: clamp(40px, 5vw, 56px);
  font-weight: 700;
  color: var(--teal);
  line-height: 1;
  margin-bottom: 8px;
  display: block;
}
.stat-num span {
  color: var(--teal-l);
  font-size: .6em;
  vertical-align: top;
  line-height: 1.6;
}
.stat-label {
  font-size: 13px;
  color: var(--ink-light);
  text-transform: uppercase;
  letter-spacing: 1px;
  font-weight: 500;
  line-height: 1.4;
}

/* ─── 7. TEAM PREVIEW ───────────────────────────────────────── */
.iq-cs-team-preview {
  background: var(--bg-warm);
}
.team-thumb-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 24px;
}
.team-thumb {
  width: 64px;
  height: 80px;
  border-radius: 12px;
  overflow: hidden;
  border: 2px solid white;
  box-shadow: 0 4px 12px rgba(0,0,0,.1);
  transition: transform .2s, box-shadow .2s;
  display: block;
  background: var(--bg-teal);
  text-decoration: none;
}
.team-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.team-thumb:hover {
  transform: translateY(-4px) scale(1.05);
  box-shadow: 0 8px 20px rgba(46,139,114,.2);
}
.team-thumb.placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--ff-head);
  font-size: 22px;
  font-style: italic;
  color: var(--teal);
  background: var(--bg-teal);
}

/* Mini stat card */
.iq-cs-mini-stat {
  background: white;
  border-radius: 18px;
  padding: 24px;
  border: 1px solid var(--border);
}
.iq-cs-mini-stat__num {
  font-family: var(--ff-head);
  font-size: 28px;
  font-weight: 700;
  color: var(--teal);
  line-height: 1;
  margin-bottom: 6px;
}
.iq-cs-mini-stat__label {
  font-size: 13px;
  color: var(--ink-mid);
  font-weight: 500;
  line-height: 1.4;
}

/* Card formazione continua */
.iq-cs-training-card {
  background: white;
  border-radius: 18px;
  padding: 24px;
  border: 1px solid var(--border);
}
.iq-cs-training-card__head {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 12px;
}
.iq-cs-training-card__icon {
  width: 42px; height: 42px;
  border-radius: 50%;
  background: var(--bg-teal);
  display: flex; align-items: center; justify-content: center;
  color: var(--teal);
  flex-shrink: 0;
}
.iq-cs-training-card__title {
  font-family: var(--ff-head);
  font-size: 18px;
  font-weight: 700;
  color: var(--ink);
  line-height: 1.25;
}
.iq-cs-training-card__text {
  font-size: 14px;
  color: var(--ink-mid);
  line-height: 1.65;
  margin: 0;
}

/* ─── 8. SEDI ───────────────────────────────────────────────── */
.iq-cs-sedi {
  background: white;
}
.sede-card {
  background: white;
  border: 1px solid var(--border);
  border-radius: 20px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  height: 100%;
  transition: transform .25s, box-shadow .25s;
}
.sede-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 48px rgba(46,139,114,.1);
}
.sede-img {
  width: 100%;
  height: 200px;
  object-fit: cover;
  display: block;
}
.sede-img-placeholder {
  width: 100%;
  height: 200px;
  background: var(--bg-teal);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.sede-img-placeholder svg {
  opacity: .35;
  color: var(--teal);
}
.sede-body {
  padding: 28px 26px;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.sede-city {
  font-family: var(--ff-head);
  font-size: 26px;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 2px;
  line-height: 1.2;
}
.sede-addr {
  font-size: 14px;
  color: var(--ink-mid);
  margin-bottom: 16px;
  line-height: 1.5;
}
.sede-info {
  font-size: 13.5px;
  color: var(--ink-mid);
  line-height: 1.6;
  display: flex;
  flex-direction: column;
  gap: 7px;
  margin-bottom: 20px;
  flex: 1;
}
.sede-info > div {
  display: flex;
  align-items: flex-start;
  gap: 8px;
}
.sede-info svg { flex-shrink: 0; margin-top: 2px; }
.sede-link {
  font-size: 14px;
  font-weight: 600;
  color: var(--teal);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: auto;
  transition: gap .2s, opacity .2s;
}
.sede-link:hover {
  color: var(--teal-d);
  gap: 10px;
}

/* ─── 9. CTA ────────────────────────────────────────────────── */
.iq-cs-cta {
  background: var(--teal-d);
  position: relative;
  overflow: hidden;
}
.iq-cs-cta::before {
  content: '';
  position: absolute;
  top: -80px; right: -80px;
  width: 360px; height: 360px;
  border-radius: 50%;
  background: rgba(255,255,255,.04);
  pointer-events: none;
}
/* Eyebrow chiaro su dark bg */
.iq-cs-cta .section-eyebrow { color: var(--teal-l); }
.iq-cs-cta .section-eyebrow::before { background: var(--teal-l); }
.iq-cs-cta .section-title { color: white; }
.iq-cs-cta .section-title em { color: var(--teal-l); }

/* ─── Failsafe: neutralizza Elementor Kit su TUTTI i widget IQ ─ */
/* Il Kit Elementor usa .elementor-kit-{ID} h1/h2/h3 (spec. 0,1,1).
   Questi selettori hanno spec. 0,2,0 o superiore e caricano dopo
   elementor-frontend grazie alla dipendenza in enqueue.php.        */
[class*="elementor-widget-iq_"] h1,
[class*="elementor-widget-iq_"] h2,
[class*="elementor-widget-iq_"] h3,
[class*="elementor-widget-iq_"] h4 {
  font-family: var(--ff-head) !important;
}
/* Pulsanti IQ: annulla stili Elementor button */
[class*="elementor-widget-iq_"] .btn-primary-iq,
[class*="elementor-widget-iq_"] .btn-outline-iq,
[class*="elementor-widget-iq_"] .btn-white,
[class*="elementor-widget-iq_"] .btn-ghost-w {
  font-family: var(--ff-body) !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}
/* Paragrafi e testi */
[class*="elementor-widget-iq_"] p {
  font-family: var(--ff-body) !important;
}

/* ─── Responsive Chi Siamo ──────────────────────────────────── */
@media (max-width: 991px) {
  .iq-cs-hero__img-wrap { max-width: 320px; margin: 0 auto; }
  .team-thumb-row { justify-content: flex-start; }
}
@media (max-width: 767px) {
  .iq-cs-hero h1 { font-size: clamp(32px, 8vw, 48px); }
  .iq-cs-hero__badge { flex-direction: row; }
  .manifesto-quote { font-size: clamp(20px, 5vw, 28px); }
  .iq-cs-mini-stat { padding: 18px; }
  .iq-cs-training-card { padding: 18px; }
  .sede-card { margin-bottom: 0; }
  .stat-num { font-size: 40px; }
  .timeline::before { left: 10px; }
  .timeline-dot  { left: 0; }
  .timeline-item { padding-left: 44px; }
}
