/*
Theme Name:  Boost4Biz Blog
Theme URI:   https://boost4biz.blog
Author:      Boost4Biz – Sergio De Carolis
Description: Tema Blog & Formazione Boost4Biz. Design system identico al tema base. Aggiunge: archivio blog ottimizzato, CPT Corsi/Formazione, sidebar, lettore articoli, compatibilità Elementor (free) per le pagine interne. Varianti colore: Verde Petrolio brand, Blu Dati #1E7A92 per la navigazione blog/contenuto, Arancione #F28C28 per CTA.
Version:     1.0.0
Requires at least: 6.4
Tested up to:      6.7
Requires PHP:      8.0
License:     Proprietario
Text Domain: b4b-blog
Tags:        custom-colors, custom-logo, full-width-template, blog, elementor
*/

/* ══════════════════════════════════════════════
   B4B BLOG THEME — style.css
   
   SEZIONI:
   01  Design Tokens (:root)
   02  Alias retrocompatibilità
   03  Reset & Base
   04  Tipografia
   05  Layout utilities
   06  Decoratori
   07  Bottoni
   08  Badge / Section-label
   09  Card generiche
   10  Form
   11  Accordion
   12  Steps
   13  Componenti (CTA Banner, Value Bar, ecc.)
   14  Scroll Reveal
   15  Responsive globale
   ──────────────────────────────────────────────
   16  BLOG — header sezione, archivio, sidebar
   17  BLOG — single post / prose
   18  BLOG — search results
   19  FORMAZIONE — CPT Corsi
   20  FORMAZIONE — single corso
   21  ELEMENTOR — compatibilità & overrides
   22  COMMENTI
══════════════════════════════════════════════ */

/* ── 01 DESIGN TOKENS ──────────────────────── */
:root {
  /* Palette brand */
  --petrol:        #006D5B;
  --petrol-dark:   #005247;
  --petrol-deeper: #003D35;
  --petrol-light:  #E6F2EF;
  --petrol-mid:    #B3D6CF;
  --petrol-soft:   #4DA090;
  --petrol-pale:   #F0F8F6;

  --arancio:       #F28C28;
  --arancio-dark:  #D4740E;
  --arancio-light: #FEF3E6;

  --oxford:        #002147;
  --oxford-dark:   #001530;
  --oxford-mid:    #1A3A5C;
  --oxford-light:  #EEF2F8;

  /* Blu dati — colore primario blog/contenuto */
  --blu:           #1E7A92;
  --blu-dark:      #155E70;
  --blu-light:     #EBF8FC;
  --blu-mid:       #A5D8E8;

  /* Neutri */
  --graphite:      #1A1A1A;
  --slate:         #2D3748;
  --muted:         #4A5568;
  --cool-grey:     #718096;
  --fog:           #E2E8F0;
  --fog-dark:      #CBD5E0;
  --bg-white:      #FFFFFF;
  --bg-off:        #F7FAFC;

  /* Semantici */
  --success:       #006D5B;
  --error:         #C53030;
  --coral:         #C0405E;
  --coral-light:   #FFF0F4;

  /* Footer */
  --footer-bg:     #001530;
  --footer-text:   rgba(255,255,255,.82);
  --footer-muted:  rgba(255,255,255,.48);

  /* Tipografia */
  --font:          'Poppins', sans-serif;
  --fw-normal:     400;
  --fw-medium:     500;
  --fw-semi:       600;
  --fw-bold:       700;
  --fw-black:      800;

  --text-xs:   12px;
  --text-sm:   14px;
  --text-base: 16px;
  --text-lg:   18px;
  --text-xl:   20px;
  --text-2xl:  24px;
  --text-3xl:  30px;
  --text-4xl:  36px;

  /* Spaziature */
  --s1:  8px;  --s2: 16px;  --s3: 24px;  --s4: 32px;
  --s5: 48px;  --s6: 64px;  --s7: 96px;  --s8:120px;

  /* Border radius */
  --r-sm: 4px; --r-md: 8px; --r-lg: 12px; --r-xl: 20px; --r-full: 9999px;

  /* Shadow */
  --sh-xs:          0 1px 3px rgba(0,0,0,.07);
  --sh-sm:          0 2px 8px rgba(0,0,0,.08);
  --sh-md:          0 4px 16px rgba(0,0,0,.09);
  --sh-lg:          0 8px 32px rgba(0,0,0,.11);
  --sh-hover:       0 8px 28px rgba(0,0,0,.14);
  --sh-btn-petrol:  0 3px 12px rgba(0,109,91,.28);
  --sh-btn-arancio: 0 3px 12px rgba(242,140,40,.28);
  --sh-btn-blu:     0 3px 12px rgba(30,122,146,.28);

  /* Transizioni */
  --tr: .2s cubic-bezier(.4,0,.2,1);

  /* Layout */
  --max-w:     1200px;
  --max-w-blog: 920px;  /* max-width per contenuti blog */
  --max-w-prose:760px;  /* max-width testo single post */
  --pad-x:       24px;
  --hdr-h:       80px;
  --topbar-h:    44px;
}

/* ── 02 ALIAS RETROCOMPATIBILITÀ ───────────── */
:root {
  --cyan: var(--petrol); --verde: var(--petrol);
  --teal: var(--petrol-soft); --navy: var(--oxford);
  --navy-hover: var(--oxford-dark); --navy-light: var(--oxford-light);
  --sh-btn-navy: var(--sh-btn-petrol);
  --green-light: var(--petrol-light); --green-mid: var(--petrol-mid);
  --accent-warm: var(--arancio);
  --giallo: #D4A017; --giallo-bg: #FEF9E7; --giallo-dark: #8B6914;
  --purple: #6B3FD4; --purple-light: #F0EBFF;
  --blu-deep: var(--blu);
  --blu-footer: var(--footer-bg);
}

/* ── 03 RESET & BASE ───────────────────────── */
*,*::before,*::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: var(--text-base); scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  font-family: var(--font);
  font-size: var(--text-base);
  font-weight: var(--fw-normal);
  line-height: 1.65;
  color: var(--slate);
  background: var(--bg-white);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
body.has-sticky-header { padding-top: calc(var(--topbar-h) + var(--hdr-h)); }
a { color: var(--blu); text-decoration: none; transition: color var(--tr); }
a:hover { color: var(--arancio); }
img, svg { max-width: 100%; height: auto; display: block; }
ul, ol { padding-left: 1.5em; } li { margin-bottom: .3em; }
:focus-visible { outline: 2px solid var(--blu); outline-offset: 3px; border-radius: var(--r-sm); }

.skip-link {
  position: fixed; top: -100px; left: 16px; z-index: 9999;
  background: var(--petrol); color: #fff; padding: 10px 18px;
  border-radius: 0 0 var(--r-md) var(--r-md);
  font-size: var(--text-sm); font-weight: var(--fw-semi);
  box-shadow: var(--sh-md); transition: top .2s;
}
.skip-link:focus { top: 0; }

/* ── 04 TIPOGRAFIA ──────────────────────────── */
h1,h2,h3,h4,h5,h6 {
  font-family: var(--font);
  color: var(--graphite);  /* Blog: titoli graphite, non petrol */
  line-height: 1.25;
  font-weight: var(--fw-bold);
  letter-spacing: -.02em;
}
h1 { font-size: clamp(26px,4vw,44px);   letter-spacing: -.03em; font-weight: var(--fw-black); }
h2 { font-size: clamp(22px,3vw,34px);   font-weight: var(--fw-bold); }
h3 { font-size: clamp(18px,2.4vw,24px); font-weight: var(--fw-semi); }
h4 { font-size: 17px; font-weight: var(--fw-semi); }
p  { margin-bottom: 1em; max-width: 72ch; line-height: 1.7; }
p:last-child { margin-bottom: 0; }

/* Titoli sezione: verde petrolio */
.section-hdr h2, .section-title, .arch-hdr h1,
.page-hero h1 { color: var(--petrol); }

/* Label, badge, date: oxford */
.section-label, .badge, .post-tag, .post-date,
.bc-item, .form-label, .card-text { color: var(--oxford); }

/* Accento b4 */
.b4-accent { color: var(--arancio); font-weight: inherit; }

/* ── 05 LAYOUT ──────────────────────────────── */
.container      { max-width: var(--max-w);      margin: 0 auto; padding: 0 var(--pad-x); }
.container-blog { max-width: var(--max-w-blog); margin: 0 auto; padding: 0 var(--pad-x); }

.section    { padding: var(--s7) 0; }
.section-sm { padding: var(--s6) 0; }
.section-lg { padding: var(--s8) 0; }

.bg-white { background: var(--bg-white); } .bg-off   { background: var(--bg-off); }
.bg-green { background: var(--petrol-light); } .bg-petrol { background: var(--petrol); }
.bg-blu   { background: var(--blu-light); }  .bg-dark  { background: var(--footer-bg); }

.grid   { display: grid; gap: var(--s3); }
.cols-2 { grid-template-columns: repeat(2,1fr); }
.cols-3 { grid-template-columns: repeat(3,1fr); }
.cols-4 { grid-template-columns: repeat(4,1fr); }
.cols-6-4 { grid-template-columns: 6fr 4fr; }
.cols-7-5 { grid-template-columns: 7fr 5fr; }

.flex         { display:flex; align-items:center; }
.flex-between { display:flex; align-items:center; justify-content:space-between; }
.flex-center  { display:flex; align-items:center; justify-content:center; }
.flex-col     { display:flex; flex-direction:column; }
.gap-1{gap:var(--s1)} .gap-2{gap:var(--s2)} .gap-3{gap:var(--s3)} .gap-4{gap:var(--s4)}
.wrap        { flex-wrap:wrap; }
.text-center { text-align:center; }
.mx-auto     { margin-left:auto; margin-right:auto; }
.sr-only     { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0; }

/* ── 06 DECORATORI ──────────────────────────── */
.line-top-petrol,.line-top-verde { border-top: 3px solid var(--petrol); }
.line-top-blu                    { border-top: 3px solid var(--blu); }
.line-top-arancio                { border-top: 3px solid var(--arancio); }
.line-top-oxford                 { border-top: 3px solid var(--oxford); }

.divider-color {
  height: 2px;
  background: linear-gradient(90deg, var(--petrol), var(--blu), var(--arancio));
  border: none; border-radius: 2px;
}
.divider-sm { height: 1px; background: var(--fog); border: none; margin: 0; }

.img-ph {
  position:relative; background:var(--petrol-light);
  border:2px dashed var(--petrol-mid); border-radius:var(--r-lg);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:10px; min-height:200px; overflow:hidden;
}
.img-ph__num   { font-size:40px; font-weight:var(--fw-bold); color:var(--petrol); opacity:.25; }
.img-ph__label { font-size:var(--text-xs); color:var(--oxford); text-align:center; padding:0 16px; }

/* ── 07 BOTTONI ─────────────────────────────── */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family:var(--font); font-size:var(--text-sm); font-weight:var(--fw-semi);
  letter-spacing:.01em; line-height:1; padding:14px 30px;
  border-radius:var(--r-md); border:2px solid transparent;
  cursor:pointer; text-decoration:none; white-space:nowrap;
  transition:all var(--tr); box-shadow:var(--sh-xs);
}

/* Verde pieno */
.btn-petrol,.btn-cta,.btn-primary,.btn-navy {
  background:var(--petrol); color:#fff; border-color:var(--petrol);
  box-shadow:var(--sh-btn-petrol);
}
.btn-petrol:hover,.btn-cta:hover,.btn-primary:hover {
  background:var(--arancio); border-color:var(--arancio); color:#fff;
  box-shadow:var(--sh-btn-arancio); transform:translateY(-2px);
}
.btn-petrol:active { transform:translateY(0); }

/* Blu pieno — CTA blog/contenuto */
.btn-blu {
  background:var(--blu); color:#fff; border-color:var(--blu);
  box-shadow:var(--sh-btn-blu);
}
.btn-blu:hover {
  background:var(--arancio); border-color:var(--arancio); color:#fff;
  box-shadow:var(--sh-btn-arancio); transform:translateY(-2px);
}
.btn-blu:active { transform:translateY(0); }

/* Verde outline */
.btn-green,.btn-secondary {
  background:transparent; color:var(--petrol); border-color:var(--petrol);
}
.btn-green:hover,.btn-secondary:hover {
  background:var(--arancio); color:#fff; border-color:var(--arancio);
  box-shadow:var(--sh-btn-arancio); transform:translateY(-2px);
}

/* Blu outline — "Leggi articolo", nav blog */
.btn-blu-outline {
  background:transparent; color:var(--blu); border-color:var(--blu);
}
.btn-blu-outline:hover {
  background:var(--arancio); color:#fff; border-color:var(--arancio);
  box-shadow:var(--sh-btn-arancio); transform:translateY(-2px);
}

/* Arancio outline — Prenota */
.btn-prenota {
  background:transparent; color:var(--arancio); border-color:var(--arancio);
}
.btn-prenota:hover {
  background:var(--arancio); color:#fff; border-color:var(--arancio);
  box-shadow:var(--sh-btn-arancio); transform:translateY(-2px);
}
.btn-prenota:active { background:var(--arancio-dark); }

/* Bianco */
.btn-white,.btn-cta-inv {
  background:#fff; color:var(--petrol); border-color:rgba(255,255,255,.8);
  box-shadow:0 3px 12px rgba(0,0,0,.18);
}
.btn-white:hover { background:var(--arancio); color:#fff; border-color:var(--arancio); box-shadow:var(--sh-btn-arancio); transform:translateY(-2px); }
.btn-white--arancio:hover { background:var(--arancio); color:#fff; border-color:var(--arancio); box-shadow:var(--sh-btn-arancio); }

/* Ghost */
.btn-ghost {
  background:transparent; color:var(--blu); border:none;
  padding:0; font-weight:var(--fw-semi); font-size:var(--text-sm); box-shadow:none;
}
.btn-ghost::after { content:' →'; display:inline-block; transition:transform var(--tr); }
.btn-ghost:hover  { color:var(--arancio); }
.btn-ghost:hover::after { transform:translateX(4px); }

.btn-sm { padding:10px 20px; font-size:var(--text-xs); }
.btn-lg { padding:17px 40px; font-size:var(--text-lg); }

/* ── 08 BADGE ───────────────────────────────── */
.badge {
  display:inline-flex; align-items:center; gap:5px;
  padding:4px 12px; border-radius:var(--r-full);
  font-size:var(--text-xs); font-weight:var(--fw-semi);
  letter-spacing:.4px; text-transform:uppercase;
}
.badge-petrol,.badge-verde { background:var(--petrol-light); color:var(--petrol-deeper); border:1px solid var(--petrol-mid); }
.badge-blu { background:var(--blu-light); color:var(--blu-dark); border:1px solid var(--blu-mid); }
.badge-arancio { background:var(--arancio-light); color:var(--arancio-dark); border:1px solid rgba(242,140,40,.25); }
.badge-oxford,.badge-navy { background:var(--oxford-light); color:var(--oxford); border:1px solid rgba(0,33,71,.15); }
.badge-coral  { background:var(--coral-light); color:var(--coral); border:1px solid rgba(192,64,94,.2); }
.badge-giallo { background:#FEF9E7; color:#8B6914; border:1px solid #F0DF90; }
.badge-purple { background:#F0EBFF; color:#5B2FC9; border:1px solid #D0C0F8; }

.section-label {
  display:inline-block; font-size:var(--text-xs); font-weight:var(--fw-semi);
  letter-spacing:1.5px; text-transform:uppercase; color:var(--oxford); margin-bottom:10px;
}

/* ── 09 CARD ────────────────────────────────── */
.card {
  background:var(--bg-white); border:1px solid var(--fog-dark);
  border-radius:var(--r-lg); padding:var(--s4); box-shadow:var(--sh-sm);
  transition:transform var(--tr),box-shadow var(--tr),border-color var(--tr);
}
.card:hover { transform:translateY(-4px); box-shadow:var(--sh-hover); border-color:var(--blu); }
.card-title { font-size:var(--text-lg); font-weight:var(--fw-semi); color:var(--graphite); margin-bottom:10px; line-height:1.3; }
.card-text  { font-size:var(--text-sm); color:var(--oxford); line-height:1.65; margin-bottom:16px; }

/* KPI */
.kpi-box { text-align:center; padding:var(--s3); }
.kpi-box .num { font-size:clamp(36px,5vw,52px); font-weight:var(--fw-black); line-height:1; margin-bottom:6px; display:block; letter-spacing:-.03em; color:var(--petrol); }
.kpi-box .lbl { font-size:var(--text-sm); color:var(--oxford); }

/* Section header */
.section-hdr { margin-bottom:var(--s6); }
.section-hdr.center { text-align:center; }
.section-hdr.center p { margin-left:auto; margin-right:auto; }
.section-sub { font-size:var(--text-lg); color:var(--slate); line-height:1.65; max-width:62ch; font-weight:var(--fw-normal); }

/* ── 10 FORM ────────────────────────────────── */
.form-group { margin-bottom:20px; }
.form-label { display:block; font-size:var(--text-xs); font-weight:var(--fw-semi); letter-spacing:.5px; text-transform:uppercase; color:var(--oxford); margin-bottom:6px; }
.form-label .req { color:var(--error); }
.form-ctrl {
  width:100%; height:50px; padding:0 16px;
  border:1.5px solid var(--fog-dark); border-radius:var(--r-md);
  font-family:var(--font); font-size:var(--text-base); color:var(--slate);
  background:var(--bg-white); box-shadow:inset 0 2px 4px rgba(0,0,0,.04);
  transition:border-color var(--tr),box-shadow var(--tr); appearance:none;
}
textarea.form-ctrl { height:auto; min-height:120px; padding:14px 16px; resize:vertical; }
.form-ctrl::placeholder { color:var(--cool-grey); }
.form-ctrl:focus { outline:none; border-color:var(--blu); box-shadow:0 0 0 3px rgba(30,122,146,.12); }
.form-ctrl.err  { border-color:var(--error); }
.form-err  { font-size:var(--text-xs); color:var(--error); margin-top:4px; display:none; font-weight:var(--fw-semi); }
.form-err.show { display:block; }
.form-micro { font-size:var(--text-xs); color:var(--oxford); margin-top:8px; }

/* ── 11 ACCORDION ───────────────────────────── */
.accordion { border:1.5px solid var(--fog-dark); border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--sh-xs); }
.accordion-item { border-bottom:1px solid var(--fog); }
.accordion-item:last-child { border-bottom:none; }
.acc-trigger {
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:20px var(--s3); background:transparent; border:none; text-align:left;
  cursor:pointer; font-family:var(--font); font-size:var(--text-base); font-weight:var(--fw-semi);
  color:var(--graphite); transition:background var(--tr),color var(--tr);
}
.acc-trigger:hover { background:var(--blu-light); color:var(--blu-dark); }
.acc-trigger.open  { background:var(--blu-light); color:var(--blu-dark); border-bottom:1px solid var(--blu-mid); }
.acc-icon { flex-shrink:0; width:28px; height:28px; border-radius:50%; background:var(--blu-light); color:var(--blu); font-size:18px; display:flex; align-items:center; justify-content:center; transition:transform var(--tr),background var(--tr),color var(--tr); }
.acc-trigger.open .acc-icon { transform:rotate(45deg); background:var(--blu); color:#fff; }
.acc-body { max-height:0; overflow:hidden; transition:max-height .32s cubic-bezier(.4,0,.2,1); }
.acc-content { padding:0 var(--s3) var(--s3); font-size:var(--text-base); color:var(--oxford); line-height:1.75; }

/* ── 12 STEPS ───────────────────────────────── */
.steps { display:flex; flex-direction:column; gap:0; }
.step  { display:flex; gap:var(--s3); padding-bottom:var(--s5); position:relative; }
.step:not(:last-child)::before { content:''; position:absolute; left:25px; top:54px; bottom:0; width:2px; background:linear-gradient(180deg,var(--petrol-mid),transparent); }
.step__num { flex-shrink:0; width:52px; height:52px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:var(--text-lg); font-weight:var(--fw-bold); color:#fff; position:relative; z-index:1; box-shadow:var(--sh-md); }
.step-1 .step__num { background:linear-gradient(135deg,var(--petrol-soft),var(--petrol)); }
.step-2 .step__num { background:linear-gradient(135deg,var(--petrol),var(--petrol-dark)); }
.step-3 .step__num { background:linear-gradient(135deg,var(--petrol-dark),var(--oxford)); }
.step-4 .step__num { background:linear-gradient(135deg,var(--oxford),var(--oxford-dark)); }
.step-5 .step__num { background:linear-gradient(135deg,var(--arancio),var(--arancio-dark)); }
.step__body  { padding-top:12px; }
.step__title { font-size:var(--text-lg); font-weight:var(--fw-semi); color:var(--graphite); margin-bottom:6px; }
.step__text  { font-size:var(--text-sm); color:var(--oxford); }

/* ── 13 COMPONENTI ──────────────────────────── */
/* CTA Banner */
.cta-banner {
  background:linear-gradient(135deg,var(--petrol) 0%,var(--petrol-dark) 60%,var(--oxford) 100%);
  padding:var(--s7) 0; text-align:center; position:relative; overflow:hidden;
}
.cta-banner::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse at 20% 50%,rgba(255,255,255,.06) 0%,transparent 60%); pointer-events:none; }
.cta-banner .title  { font-size:clamp(22px,3vw,36px); font-weight:var(--fw-bold); color:#fff; margin-bottom:16px; max-width:600px; margin-left:auto; margin-right:auto; position:relative; z-index:1; letter-spacing:-.02em; }
.cta-banner .sub    { font-size:var(--text-lg); color:rgba(255,255,255,.88); margin-bottom:32px; max-width:520px; margin-left:auto; margin-right:auto; font-weight:var(--fw-normal); position:relative; z-index:1; }
.cta-banner .micro  { font-size:var(--text-xs); color:rgba(255,255,255,.58); margin-top:14px; position:relative; z-index:1; }

/* Value bar */
.value-bar { background:var(--petrol-light); border-top:3px solid var(--petrol); border-bottom:3px solid var(--petrol); padding:var(--s5) 0; text-align:center; }
.value-bar p { font-size:clamp(18px,2.5vw,24px); font-weight:var(--fw-semi); color:var(--petrol-deeper); max-width:820px; margin:0 auto; line-height:1.4; }

/* Breadcrumb */
.breadcrumb { padding:12px 0; border-bottom:1px solid var(--fog); background:var(--bg-off); }
.bc-list    { display:flex; flex-wrap:wrap; gap:8px; list-style:none; padding:0; margin:0; }
.bc-item    { font-size:var(--text-xs); color:var(--oxford); }
.bc-item a  { color:var(--oxford); transition:color var(--tr); }
.bc-item a:hover { color:var(--blu); }
.bc-item + .bc-item::before { content:'/'; margin-right:8px; color:var(--fog-dark); }
.bc-item.current { color:var(--blu); font-weight:var(--fw-semi); }

/* Pagination */
.pagination { display:flex; justify-content:center; gap:8px; padding-top:var(--s5); }
.page-numbers { display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:var(--r-md); border:1.5px solid var(--fog-dark); font-size:var(--text-sm); font-weight:var(--fw-semi); color:var(--oxford); text-decoration:none; box-shadow:var(--sh-xs); transition:all var(--tr); }
.page-numbers:hover,.page-numbers.current { background:var(--blu); border-color:var(--blu); color:#fff; box-shadow:var(--sh-btn-blu); }
.page-numbers.dots { border:none; width:auto; box-shadow:none; }

/* Newsletter strip */
.newsletter-strip { background:linear-gradient(135deg,var(--blu-light),var(--petrol-pale)); border-top:3px solid var(--blu); border-bottom:3px solid var(--petrol); padding:var(--s6) 0; }
.newsletter-strip h2 { color:var(--graphite); font-size:clamp(20px,2.5vw,28px); margin-bottom:10px; }
.newsletter-strip p  { color:var(--oxford); font-size:var(--text-base); max-width:52ch; }
.newsletter-form     { display:flex; gap:12px; margin-top:var(--s3); flex-wrap:wrap; }
.newsletter-form .form-ctrl { flex:1; min-width:200px; border-color:var(--blu-mid); }
.newsletter-form .form-ctrl:focus { border-color:var(--blu); }

/* ── 14 SCROLL REVEAL ───────────────────────── */
.card,.step,.news-card,.signal,.post-card,.corso-card,.kpi-box,.section-hdr,.valore-item,.tl-item {
  opacity:0; transform:translateY(20px);
  transition:opacity .55s ease,transform .55s ease;
}
.card:nth-child(2) { transition-delay:.08s; }
.card:nth-child(3) { transition-delay:.16s; }
.card:nth-child(4) { transition-delay:.24s; }
.revealed { opacity:1!important; transform:translateY(0)!important; }

@media (prefers-reduced-motion:reduce) {
  .card,.step,.news-card,.signal,.post-card,.corso-card,.kpi-box,.section-hdr,.valore-item,.tl-item
  { opacity:1; transform:none; transition:none; }
}

/* ── 15 RESPONSIVE GLOBALE ──────────────────── */
@media (max-width:1024px) {
  .section { padding:72px 0; }
  .cols-4  { grid-template-columns:repeat(2,1fr); }
  .cols-6-4,.cols-7-5 { grid-template-columns:1fr; }
}
@media (max-width:768px) {
  :root { --pad-x:20px; --hdr-h:68px; --topbar-h:40px; }
  html  { font-size:15px; }
  .section { padding:56px 0; }
  .cols-2,.cols-3,.cols-4 { grid-template-columns:1fr; }
  .grid { gap:var(--s2); }
  .btn  { padding:13px 26px; }
  .btn-lg { padding:16px 32px; font-size:var(--text-base); }
  .cta-banner { padding:56px 0; }
  h1 { font-size:clamp(24px,6vw,34px); }
  h2 { font-size:clamp(20px,5vw,28px); }
}
@media (max-width:480px) {
  :root { --pad-x:16px; --hdr-h:62px; --topbar-h:36px; }
  .section { padding:48px 0; }
  h1 { font-size:clamp(22px,7vw,30px); }
  .btn { width:100%; justify-content:center; }
  .btn.btn-ghost { width:auto; }
  .card { padding:var(--s3); }
}

/* ══════════════════════════════════════════════
   16  BLOG — HEADER SEZIONE E ARCHIVIO
══════════════════════════════════════════════ */

/* Testata archivio */
.arch-hdr {
  padding: var(--s6) 0 var(--s5);
  background: var(--bg-off);
  border-bottom: 3px solid var(--blu);
}
.arch-hdr h1 { color: var(--graphite); font-size: clamp(24px,3.5vw,38px); font-weight: var(--fw-black); margin-bottom: 10px; }
.arch-hdr .arch-desc { font-size: var(--text-lg); color: var(--slate); max-width: 60ch; }

/* Tag categorie */
.arch-cats { display:flex; flex-wrap:wrap; gap:8px; margin-top:var(--s3); }
.cat-tag {
  padding:6px 16px; border-radius:var(--r-full);
  font-size:12px; font-weight:var(--fw-semi);
  border:1.5px solid var(--fog-dark); color:var(--oxford);
  text-decoration:none; background:#fff;
  box-shadow:var(--sh-xs); transition:all var(--tr);
}
.cat-tag:hover,.cat-tag.active {
  background:var(--blu); border-color:var(--blu); color:#fff;
  box-shadow:var(--sh-btn-blu); transform:translateY(-1px);
}

/* Post in evidenza */
.post-feat {
  display:grid; grid-template-columns:1fr 1fr; gap:0;
  background:#fff; border:1.5px solid var(--fog-dark);
  border-top:4px solid var(--blu); border-radius:var(--r-lg);
  overflow:hidden; margin-bottom:var(--s5); box-shadow:var(--sh-md);
}
.post-feat__img { aspect-ratio:4/3; overflow:hidden; background:var(--blu-light); }
.post-feat__img img { width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.post-feat:hover .post-feat__img img { transform:scale(1.03); }
.post-feat__body { padding:40px 44px; display:flex; flex-direction:column; justify-content:center; }
.post-feat__tag  { display:inline-block; margin-bottom:12px; }
.post-feat__title { font-size:clamp(20px,2.5vw,28px); font-weight:var(--fw-bold); margin-bottom:14px; line-height:1.25; letter-spacing:-.02em; color:var(--graphite); }
.post-feat__title a { color:inherit; text-decoration:none; }
.post-feat__title a:hover { color:var(--blu); }
.post-feat__ex   { font-size:15px; color:var(--slate); margin-bottom:var(--s3); font-weight:var(--fw-medium); line-height:1.6; }
.post-feat__meta { display:flex; align-items:center; justify-content:space-between; gap:var(--s2); flex-wrap:wrap; }

/* Post card griglia */
.post-card {
  background:var(--bg-white); border:1px solid var(--fog-dark);
  border-radius:var(--r-lg); overflow:hidden;
  display:flex; flex-direction:column;
  box-shadow:var(--sh-sm);
  transition:transform var(--tr),box-shadow var(--tr),border-color var(--tr);
}
.post-card:hover { transform:translateY(-4px); box-shadow:var(--sh-hover); border-color:var(--blu); }
.post-card__img  { aspect-ratio:16/9; overflow:hidden; background:var(--blu-light); }
.post-card__img img { width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.post-card:hover .post-card__img img { transform:scale(1.04); }
.post-card__body { padding:var(--s3); flex:1; display:flex; flex-direction:column; }
.post-card__cat  { font-size:11px; font-weight:var(--fw-bold); letter-spacing:1px; text-transform:uppercase; color:var(--blu); margin-bottom:8px; display:block; text-decoration:none; }
.post-card__cat:hover { color:var(--arancio); }
.post-card__title { font-size:var(--text-base); font-weight:var(--fw-semi); color:var(--graphite); margin-bottom:8px; line-height:1.4; flex:1; }
.post-card__title a { color:inherit; text-decoration:none; }
.post-card__title a:hover { color:var(--blu); }
.post-card__excerpt { font-size:13px; color:var(--slate); line-height:1.6; margin-bottom:12px; }
.post-card__meta { display:flex; align-items:center; justify-content:space-between; margin-top:auto; padding-top:12px; border-top:1px solid var(--fog); }
.post-card__date { font-size:var(--text-xs); color:var(--cool-grey); display:flex; align-items:center; gap:5px; }
.post-card__read { font-size:var(--text-xs); color:var(--cool-grey); }

/* Layout archivio con sidebar */
.archive-layout {
  display:grid;
  grid-template-columns:1fr 300px;
  gap:var(--s6);
  align-items:start;
}

/* ── SIDEBAR ────────────────────────────────── */
.blog-sidebar { display:flex; flex-direction:column; gap:var(--s3); }

.sidebar-widget {
  background:var(--bg-white);
  border:1px solid var(--fog-dark);
  border-top:3px solid var(--blu);
  border-radius:var(--r-lg);
  padding:var(--s3);
  box-shadow:var(--sh-sm);
  position:sticky;
  top:calc(var(--topbar-h) + var(--hdr-h) + 20px);
}
.sidebar-widget__title {
  font-size:11px; font-weight:var(--fw-bold);
  letter-spacing:1.5px; text-transform:uppercase;
  color:var(--oxford); margin-bottom:var(--s2);
  padding-bottom:10px; border-bottom:1px solid var(--fog);
}
/* Search in sidebar */
.sidebar-search { display:flex; gap:8px; }
.sidebar-search .form-ctrl { height:42px; font-size:var(--text-sm); }
.sidebar-search .btn { height:42px; padding:0 16px; font-size:var(--text-xs); }

/* Categorie sidebar */
.sidebar-cats { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:6px; }
.sidebar-cats li a {
  display:flex; align-items:center; justify-content:space-between;
  font-size:var(--text-sm); color:var(--slate); text-decoration:none;
  padding:7px 10px; border-radius:var(--r-md);
  transition:background var(--tr),color var(--tr);
}
.sidebar-cats li a:hover { background:var(--blu-light); color:var(--blu); }
.sidebar-cats li a .count { font-size:11px; color:var(--cool-grey); background:var(--fog); border-radius:var(--r-full); padding:1px 7px; }

/* Post recenti sidebar */
.sidebar-posts { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:12px; }
.sidebar-post  { display:flex; gap:12px; align-items:flex-start; }
.sidebar-post__img { width:60px; height:60px; border-radius:var(--r-md); overflow:hidden; flex-shrink:0; background:var(--blu-light); }
.sidebar-post__img img { width:100%; height:100%; object-fit:cover; }
.sidebar-post__title { font-size:13px; font-weight:var(--fw-semi); color:var(--graphite); line-height:1.4; text-decoration:none; display:block; }
.sidebar-post__title:hover { color:var(--blu); }
.sidebar-post__date { font-size:11px; color:var(--cool-grey); margin-top:3px; }

/* Tag cloud sidebar */
.tag-cloud { display:flex; flex-wrap:wrap; gap:6px; }
.tag-cloud a {
  display:inline-block; padding:4px 10px; border-radius:var(--r-full);
  font-size:12px; font-weight:var(--fw-medium);
  background:var(--bg-off); color:var(--oxford);
  border:1px solid var(--fog-dark); text-decoration:none;
  transition:all var(--tr);
}
.tag-cloud a:hover { background:var(--blu); color:#fff; border-color:var(--blu); }

/* ══════════════════════════════════════════════
   17  BLOG — SINGLE POST / PROSE
══════════════════════════════════════════════ */

/* Reading progress bar */
.reading-progress {
  position:fixed; top:0; left:0; z-index:2000;
  height:3px; width:0%; background:linear-gradient(90deg,var(--petrol),var(--blu),var(--arancio));
  transition:width .1s linear; border-radius:0 2px 2px 0;
}

/* Header single post */
.single-hdr {
  padding:var(--s5) 0;
  background:linear-gradient(180deg,var(--bg-off),var(--bg-white));
  border-bottom:3px solid var(--blu);
}
.single-hdr__inner { max-width: var(--max-w-prose); margin:0 auto; }
.single-meta { display:flex; align-items:center; gap:var(--s2); flex-wrap:wrap; font-size:13px; color:var(--cool-grey); margin-top:14px; }
.single-meta svg { color:var(--blu); flex-shrink:0; }

/* Layout 2 col: contenuto + sidebar */
.single-layout {
  display:grid;
  grid-template-columns:1fr 300px;
  gap:var(--s6);
  align-items:start;
}

/* Hero image post */
.single-hero-img {
  width:100%; border-radius:var(--r-lg);
  border-top:3px solid var(--blu);
  box-shadow:var(--sh-lg);
  margin-bottom:var(--s4);
}

/* Sidebar single */
.sidebar-card {
  background:var(--petrol-pale);
  border-radius:var(--r-lg);
  padding:var(--s3);
  border:1.5px solid var(--petrol-mid);
  border-top:3px solid var(--petrol);
  box-shadow:var(--sh-sm);
  position:sticky;
  top:calc(var(--topbar-h) + var(--hdr-h) + 24px);
}
.sidebar-card__title {
  font-size:11px; font-weight:var(--fw-bold); letter-spacing:1.5px;
  text-transform:uppercase; color:var(--arancio); margin-bottom:12px; display:block;
}

/* PROSE — corpo articolo */
.prose { color:var(--slate); }
.prose p { font-size:var(--text-lg); line-height:1.85; color:var(--slate); margin-bottom:1.4em; max-width:none; }
.prose h2 { font-size:clamp(20px,2.5vw,28px); color:var(--graphite); margin:2em 0 .8em; padding-bottom:.5em; border-bottom:2px solid var(--blu-mid); font-weight:var(--fw-bold); }
.prose h3 { font-size:clamp(17px,2vw,22px); color:var(--graphite); margin:1.6em 0 .6em; font-weight:var(--fw-semi); }
.prose ul,.prose ol { padding-left:2em; margin-bottom:1.4em; }
.prose li { font-size:var(--text-base); color:var(--slate); margin-bottom:.5em; line-height:1.7; }
.prose strong { color:var(--graphite); font-weight:var(--fw-bold); }
.prose em     { color:var(--muted); }
.prose a      { color:var(--blu); text-decoration:underline; text-underline-offset:3px; }
.prose a:hover { color:var(--arancio); }
.prose blockquote {
  border-left:4px solid var(--blu);
  padding:18px var(--s3);
  background:var(--blu-light);
  border-radius:0 var(--r-md) var(--r-md) 0;
  margin:2em 0; font-style:italic; font-size:var(--text-lg);
  color:var(--blu-dark);
}
.prose blockquote p { font-size:inherit; color:inherit; margin:0; }
.prose img { border-radius:var(--r-lg); margin:2em 0; box-shadow:var(--sh-md); width:100%; }
.prose hr  { border:none; height:2px; background:linear-gradient(90deg,var(--petrol),var(--blu),transparent); margin:var(--s5) 0; }
.prose code { background:var(--bg-off); border:1px solid var(--fog-dark); border-radius:var(--r-sm); padding:2px 6px; font-size:.9em; color:var(--coral); font-family:monospace; }
.prose pre  { background:var(--graphite); color:#E5E7EB; border-radius:var(--r-md); padding:var(--s3); overflow-x:auto; margin:1.5em 0; }
.prose pre code { background:none; border:none; padding:0; color:inherit; font-size:14px; }
/* Callout box */
.prose .callout {
  display:flex; gap:14px; align-items:flex-start;
  background:var(--petrol-light); border-left:4px solid var(--petrol);
  border-radius:0 var(--r-md) var(--r-md) 0;
  padding:18px var(--s3); margin:2em 0;
}
.prose .callout svg { color:var(--petrol); flex-shrink:0; margin-top:2px; }
.prose .callout p   { font-size:var(--text-base); color:var(--oxford); margin:0; }
.prose .callout-blu { background:var(--blu-light); border-color:var(--blu); }
.prose .callout-blu svg { color:var(--blu); }

/* Share bar */
.share-bar { display:flex; align-items:center; gap:var(--s2); flex-wrap:wrap; margin-top:var(--s4); padding-top:var(--s3); border-top:2px solid var(--fog); }
.share-bar__label { font-size:11px; font-weight:var(--fw-bold); letter-spacing:1px; text-transform:uppercase; color:var(--muted); }
.share-btn { display:inline-flex; align-items:center; gap:6px; padding:8px 16px; border-radius:var(--r-md); font-size:13px; font-weight:var(--fw-semi); text-decoration:none; transition:all var(--tr); border:1.5px solid transparent; }
.share-btn--linkedin { background:#EBF5FB; color:#0A66C2; border-color:#C3E0F5; }
.share-btn--linkedin:hover { background:#0A66C2; color:#fff; }
.share-btn--twitter  { background:#E8F5FD; color:#1DA1F2; border-color:#C0E4F8; }
.share-btn--twitter:hover  { background:#1DA1F2; color:#fff; }
.share-btn--copy     { background:var(--bg-off); color:var(--slate); border-color:var(--fog-dark); cursor:pointer; }
.share-btn--copy:hover { background:var(--petrol-light); color:var(--petrol); border-color:var(--petrol); }
.share-btn--copy.copied { background:var(--petrol); color:#fff; }

/* Post correlati */
.related-posts { border-top:3px solid var(--fog); background:var(--bg-off); }
.related-posts h2 { font-size:clamp(18px,2.5vw,24px); font-weight:var(--fw-bold); color:var(--graphite); margin-bottom:var(--s4); }

/* Author box */
.author-box {
  display:flex; gap:var(--s3); align-items:flex-start;
  background:var(--bg-off); border:1px solid var(--fog-dark);
  border-top:3px solid var(--petrol); border-radius:var(--r-lg);
  padding:var(--s3); margin-top:var(--s4); box-shadow:var(--sh-sm);
}
.author-box__avatar { width:80px; height:80px; border-radius:50%; overflow:hidden; flex-shrink:0; border:3px solid var(--petrol-mid); }
.author-box__avatar img { width:100%; height:100%; object-fit:cover; }
.author-box__name  { font-size:var(--text-base); font-weight:var(--fw-bold); color:var(--graphite); margin-bottom:4px; }
.author-box__role  { font-size:var(--text-xs); font-weight:var(--fw-semi); letter-spacing:.5px; text-transform:uppercase; color:var(--petrol); margin-bottom:8px; display:block; }
.author-box__bio   { font-size:var(--text-sm); color:var(--oxford); line-height:1.65; }

/* ══════════════════════════════════════════════
   18  BLOG — SEARCH RESULTS
══════════════════════════════════════════════ */
.search-hdr { padding:var(--s5) 0; background:var(--bg-off); border-bottom:3px solid var(--blu); }
.search-hdr h1 { font-size:clamp(22px,3vw,32px); font-weight:var(--fw-bold); color:var(--graphite); }
.search-hdr h1 em { color:var(--blu); font-style:normal; }
.search-form-wrap { display:flex; gap:10px; margin-top:var(--s3); max-width:560px; }
.search-form-wrap .form-ctrl { flex:1; height:48px; }
.search-form-wrap .btn { height:48px; padding:0 20px; }
.search-none { text-align:center; padding:var(--s8) 0; }
.search-none svg { margin:0 auto var(--s3); color:var(--fog-dark); }

/* ══════════════════════════════════════════════
   19  FORMAZIONE — CPT CORSI
══════════════════════════════════════════════ */

/* Header archivio corsi */
.formazione-hdr {
  padding:var(--s6) 0 var(--s5);
  background:linear-gradient(135deg,var(--petrol-pale),var(--blu-light));
  border-bottom:3px solid var(--petrol);
}
.formazione-hdr h1 { color:var(--graphite); font-size:clamp(24px,3.5vw,40px); font-weight:var(--fw-black); margin-bottom:12px; }
.formazione-hdr p  { font-size:var(--text-lg); color:var(--oxford); max-width:60ch; }

/* Filtri livello */
.livello-filters { display:flex; flex-wrap:wrap; gap:8px; margin-top:var(--s3); }
.livello-tag {
  padding:7px 18px; border-radius:var(--r-full);
  font-size:12px; font-weight:var(--fw-semi);
  border:1.5px solid var(--fog-dark); color:var(--oxford);
  background:#fff; text-decoration:none;
  box-shadow:var(--sh-xs); transition:all var(--tr);
  cursor:pointer;
}
.livello-tag:hover { background:var(--petrol); border-color:var(--petrol); color:#fff; transform:translateY(-1px); }
.livello-tag.active { background:var(--petrol); border-color:var(--petrol); color:#fff; box-shadow:var(--sh-btn-petrol); }
.livello-tag.livello-base       { border-color:var(--petrol-mid); }
.livello-tag.livello-intermedio { border-color:var(--blu-mid); }
.livello-tag.livello-avanzato   { border-color:var(--arancio); }

/* Corso card */
.corso-card {
  background:var(--bg-white); border:1px solid var(--fog-dark);
  border-radius:var(--r-lg); overflow:hidden;
  display:flex; flex-direction:column;
  box-shadow:var(--sh-sm);
  transition:transform var(--tr),box-shadow var(--tr),border-color var(--tr);
}
.corso-card:hover { transform:translateY(-4px); box-shadow:var(--sh-hover); border-color:var(--petrol); }

.corso-card__cover {
  aspect-ratio:16/9; overflow:hidden;
  background:linear-gradient(135deg,var(--petrol-light),var(--blu-light));
  position:relative;
}
.corso-card__cover img { width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.corso-card:hover .corso-card__cover img { transform:scale(1.04); }

.corso-card__livello {
  position:absolute; top:12px; left:12px;
  font-size:10px; font-weight:var(--fw-bold); letter-spacing:1px; text-transform:uppercase;
  padding:4px 10px; border-radius:var(--r-full); border:1px solid transparent;
}
.corso-card__livello.base       { background:var(--petrol-light); color:var(--petrol-darker,#003D35); border-color:var(--petrol-mid); }
.corso-card__livello.intermedio { background:var(--blu-light);    color:var(--blu-dark);    border-color:var(--blu-mid); }
.corso-card__livello.avanzato   { background:var(--arancio-light);color:var(--arancio-dark);border-color:rgba(242,140,40,.3); }

.corso-card__free {
  position:absolute; top:12px; right:12px;
  background:var(--petrol); color:#fff;
  font-size:10px; font-weight:var(--fw-bold); letter-spacing:.5px; text-transform:uppercase;
  padding:4px 10px; border-radius:var(--r-full);
}
.corso-card__duration {
  position:absolute; bottom:12px; right:12px;
  background:rgba(0,0,0,.65); color:#fff; backdrop-filter:blur(4px);
  font-size:11px; font-weight:var(--fw-semi);
  padding:3px 9px; border-radius:var(--r-full);
  display:flex; align-items:center; gap:4px;
}

.corso-card__body { padding:var(--s3); flex:1; display:flex; flex-direction:column; }
.corso-card__topic { font-size:11px; font-weight:var(--fw-bold); letter-spacing:1px; text-transform:uppercase; color:var(--petrol); margin-bottom:8px; }
.corso-card__title { font-size:var(--text-lg); font-weight:var(--fw-semi); color:var(--graphite); margin-bottom:10px; line-height:1.35; letter-spacing:-.01em; flex:1; }
.corso-card__desc  { font-size:var(--text-sm); color:var(--oxford); line-height:1.6; margin-bottom:var(--s2); }

.corso-card__meta  { display:flex; align-items:center; justify-content:space-between; margin-top:auto; padding-top:12px; border-top:1px solid var(--fog); }
.corso-card__modules { font-size:12px; color:var(--cool-grey); display:flex; align-items:center; gap:5px; }
.corso-card__price { font-size:var(--text-sm); font-weight:var(--fw-bold); color:var(--petrol); }
.corso-card__price.free { color:var(--petrol); }

/* Griglia corsi 3 col */
.corsi-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--s4); }
@media (max-width:1024px) { .corsi-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px)  { .corsi-grid { grid-template-columns:1fr; } }

/* Corso in evidenza (hero) */
.corso-featured {
  display:grid; grid-template-columns:1fr 1fr; gap:0;
  background:#fff; border:1.5px solid var(--fog-dark);
  border-top:4px solid var(--petrol); border-radius:var(--r-lg);
  overflow:hidden; margin-bottom:var(--s5); box-shadow:var(--sh-md);
}
.corso-featured__img  { aspect-ratio:4/3; overflow:hidden; background:var(--petrol-light); }
.corso-featured__img img { width:100%; height:100%; object-fit:cover; }
.corso-featured__body { padding:40px 44px; display:flex; flex-direction:column; justify-content:center; }
.corso-featured__title{ font-size:clamp(20px,2.5vw,28px); font-weight:var(--fw-bold); color:var(--graphite); margin-bottom:12px; line-height:1.25; }
.corso-featured__desc { font-size:15px; color:var(--slate); margin-bottom:var(--s3); line-height:1.6; }

/* ══════════════════════════════════════════════
   20  FORMAZIONE — SINGLE CORSO
══════════════════════════════════════════════ */
.corso-hero {
  padding:var(--s6) 0;
  background:linear-gradient(135deg,var(--bg-white),var(--petrol-pale));
  border-bottom:3px solid var(--petrol);
}
.corso-hero__in    { display:grid; grid-template-columns:1fr 340px; gap:var(--s6); align-items:center; }
.corso-hero__label { margin-bottom:12px; }
.corso-hero__title { font-size:clamp(22px,3.5vw,40px); font-weight:var(--fw-black); color:var(--graphite); margin-bottom:14px; line-height:1.2; letter-spacing:-.025em; }
.corso-hero__sub   { font-size:var(--text-lg); color:var(--oxford); font-weight:var(--fw-medium); line-height:1.6; margin-bottom:var(--s3); }

/* Box info corso */
.corso-info-box {
  background:#fff;
  border:1.5px solid var(--fog-dark);
  border-top:3px solid var(--petrol);
  border-radius:var(--r-lg);
  padding:var(--s3);
  box-shadow:var(--sh-md);
  position:sticky;
  top:calc(var(--topbar-h) + var(--hdr-h) + 16px);
}
.corso-info-box__price { font-size:clamp(28px,4vw,40px); font-weight:var(--fw-black); color:var(--petrol); margin-bottom:4px; line-height:1; }
.corso-info-box__price.free::before { content:'GRATUITO'; font-size:var(--text-xs); letter-spacing:1px; display:block; color:var(--petrol); font-weight:var(--fw-bold); margin-bottom:4px; }
.corso-info-box__stats { list-style:none; padding:0; margin:var(--s2) 0 var(--s3); display:flex; flex-direction:column; gap:10px; }
.corso-info-box__stat  { display:flex; align-items:center; gap:10px; font-size:var(--text-sm); color:var(--oxford); }
.corso-info-box__stat svg { color:var(--petrol); flex-shrink:0; }

/* Curriculum / moduli */
.corso-curriculum { margin-top:var(--s5); }
.corso-module { border:1.5px solid var(--fog-dark); border-radius:var(--r-md); margin-bottom:12px; overflow:hidden; }
.corso-module__header {
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:16px 20px; background:var(--bg-off);
  font-weight:var(--fw-semi); color:var(--graphite); cursor:pointer;
}
.corso-module__header:hover { background:var(--petrol-light); }
.corso-module__title { font-size:var(--text-base); }
.corso-module__count { font-size:12px; color:var(--cool-grey); flex-shrink:0; }
.corso-module__lessons { list-style:none; padding:0; margin:0; }
.corso-lesson {
  display:flex; align-items:center; gap:12px;
  padding:12px 20px; border-top:1px solid var(--fog);
  font-size:var(--text-sm); color:var(--slate);
}
.corso-lesson svg      { color:var(--petrol); flex-shrink:0; }
.corso-lesson__title   { flex:1; }
.corso-lesson__dur     { font-size:11px; color:var(--cool-grey); flex-shrink:0; }
.corso-lesson.locked   { color:var(--cool-grey); }
.corso-lesson.locked svg { color:var(--fog-dark); }
.corso-lesson.free-preview .corso-lesson__title::after { content:'Anteprima'; font-size:10px; font-weight:var(--fw-bold); color:var(--petrol); background:var(--petrol-light); padding:2px 7px; border-radius:var(--r-full); margin-left:8px; letter-spacing:.5px; }

/* ══════════════════════════════════════════════
   21  ELEMENTOR — COMPATIBILITÀ E OVERRIDES
══════════════════════════════════════════════ */

/* Quando Elementor è attivo su una pagina */
body.elementor-page .page-content-wrapper { padding:0; }
body.elementor-page .entry-content { max-width:none; padding:0; }

/* Template full-width: no container interno */
body.template-elementor-full .page-wrap { padding:0; }
body.template-elementor-full #main { padding:0; }

/* Template canvas: nasconde header e footer */
body.template-elementor-canvas .site-header,
body.template-elementor-canvas .site-footer { display:none; }
body.template-elementor-canvas { padding-top:0 !important; }

/* CSS Custom Properties disponibili in Elementor */
/* (Elementor accede a queste variabili nei widget custom CSS) */
.elementor-section, .elementor-widget-wrap {
  --petrol:        #006D5B;
  --arancio:       #F28C28;
  --oxford:        #002147;
  --blu:           #1E7A92;
  --graphite:      #1A1A1A;
}

/* Overrides per coerenza visiva degli widget Elementor */
.elementor-widget-heading .elementor-heading-title { letter-spacing:-.02em; }
.elementor-widget-button .elementor-button {
  font-family:var(--font) !important;
  font-weight:var(--fw-semi) !important;
  letter-spacing:.01em !important;
  border-radius:var(--r-md) !important;
  transition:all var(--tr) !important;
}
.elementor-widget-text-editor { color:var(--slate); line-height:1.7; }

/* Sezioni Elementor: rimuove padding default conflittuale */
.elementor-section.elementor-section-boxed > .elementor-container {
  max-width:var(--max-w);
}

/* Form Elementor: applica stile tema */
.elementor-form .elementor-field-group input,
.elementor-form .elementor-field-group textarea,
.elementor-form .elementor-field-group select {
  font-family:var(--font) !important;
  font-size:var(--text-base) !important;
  border:1.5px solid var(--fog-dark) !important;
  border-radius:var(--r-md) !important;
  transition:border-color var(--tr) !important;
}
.elementor-form .elementor-field-group input:focus,
.elementor-form .elementor-field-group textarea:focus {
  border-color:var(--blu) !important;
  box-shadow:0 0 0 3px rgba(30,122,146,.12) !important;
  outline:none !important;
}

/* ══════════════════════════════════════════════
   22  COMMENTI
══════════════════════════════════════════════ */
.comments-area { margin-top:var(--s5); padding-top:var(--s4); border-top:2px solid var(--fog); }
.comments-title { font-size:var(--text-2xl); font-weight:var(--fw-bold); color:var(--graphite); margin-bottom:var(--s4); }
.comment-list { list-style:none; padding:0; margin:0 0 var(--s4); display:flex; flex-direction:column; gap:var(--s3); }
.comment       { padding:var(--s3); border:1px solid var(--fog-dark); border-radius:var(--r-lg); background:var(--bg-white); }
.comment-author.vcard { display:flex; align-items:center; gap:12px; margin-bottom:10px; }
.comment-author .avatar { border-radius:50%; width:40px; height:40px; }
.fn { font-weight:var(--fw-semi); color:var(--graphite); font-size:var(--text-sm); }
.comment-metadata { font-size:var(--text-xs); color:var(--cool-grey); margin-top:2px; }
.comment-body p { font-size:var(--text-base); color:var(--slate); max-width:none; }
.reply a { font-size:var(--text-xs); font-weight:var(--fw-semi); color:var(--blu); text-decoration:none; }
.reply a:hover { color:var(--arancio); }
.comment-respond { background:var(--bg-off); border-radius:var(--r-lg); padding:var(--s4); border:1px solid var(--fog-dark); }
.comment-reply-title { font-size:var(--text-xl); font-weight:var(--fw-bold); color:var(--graphite); margin-bottom:var(--s3); }
.comment-form label { display:block; font-size:var(--text-xs); font-weight:var(--fw-semi); letter-spacing:.5px; text-transform:uppercase; color:var(--oxford); margin-bottom:5px; }
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea {
  width:100%; padding:12px 16px; border:1.5px solid var(--fog-dark); border-radius:var(--r-md);
  font-family:var(--font); font-size:var(--text-base); color:var(--slate);
  background:var(--bg-white); transition:border-color var(--tr);
  box-sizing:border-box;
}
.comment-form input:focus, .comment-form textarea:focus { outline:none; border-color:var(--blu); box-shadow:0 0 0 3px rgba(30,122,146,.12); }
.comment-form .submit {
  background:var(--petrol); color:#fff; border:none; border-radius:var(--r-md);
  padding:13px 30px; font-family:var(--font); font-size:var(--text-sm); font-weight:var(--fw-semi);
  cursor:pointer; transition:all var(--tr);
}
.comment-form .submit:hover { background:var(--arancio); transform:translateY(-2px); }

/* Responsive sezioni blog */
@media (max-width:1024px) {
  .archive-layout,.single-layout { grid-template-columns:1fr; }
  .blog-sidebar { position:static; }
  .corso-hero__in { grid-template-columns:1fr; }
  .corso-info-box { position:static; }
  .post-feat,.corso-featured { grid-template-columns:1fr; }
  .post-feat__body,.corso-featured__body { padding:var(--s3); }
}
@media (max-width:768px) {
  .arch-hdr,.formazione-hdr { padding:var(--s5) 0 var(--s4); }
  .single-hdr { padding:var(--s4) 0; }
  .newsletter-form { flex-direction:column; }
  .newsletter-form .btn { width:100%; justify-content:center; }
}

/* ══════════════════════════════════════════════
   23  METODO — Pagina fasi del metodo
══════════════════════════════════════════════ */

/* Step navigator hero */
.metodo-steps-nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: var(--s3);
}
.metodo-step-nav-item {
  font-size: var(--text-sm);
  font-weight: var(--fw-semi);
  color: var(--petrol);
  text-decoration: none;
  padding: 6px 14px;
  border-radius: var(--r-full);
  background: var(--petrol-light);
  border: 1.5px solid var(--petrol-mid);
  transition: all var(--tr);
}
.metodo-step-nav-item:hover {
  background: var(--petrol);
  color: #fff;
  border-color: var(--petrol);
  transform: translateY(-1px);
}
.metodo-step-nav-sep {
  color: var(--cool-grey);
  font-weight: var(--fw-bold);
  font-size: var(--text-base);
}

/* Fase header (numero + titolo) */
.metodo-fase { scroll-margin-top: calc(var(--hdr-h) + var(--topbar-h) + 16px); }

.metodo-fase__header {
  display: flex;
  align-items: flex-start;
  gap: var(--s3);
  margin-bottom: var(--s5);
}
.metodo-fase__header--rev { flex-direction: row-reverse; text-align: right; }

.metodo-fase__num {
  font-size: clamp(48px, 8vw, 96px);
  font-weight: var(--fw-black);
  line-height: 1;
  color: var(--petrol);
  opacity: .18;
  flex-shrink: 0;
  letter-spacing: -.04em;
}
.metodo-fase__num--blu    { color: var(--blu); }
.metodo-fase__num--arancio{ color: var(--arancio); }
.metodo-fase__num--coral  { color: var(--coral); }

.metodo-fase__title {
  font-size: clamp(22px, 3.5vw, 40px);
  font-weight: var(--fw-black);
  color: var(--graphite);
  margin: 4px 0 8px;
  letter-spacing: -.025em;
  line-height: 1.15;
}
.metodo-fase__sub {
  font-size: var(--text-lg);
  color: var(--muted);
  font-weight: var(--fw-medium);
  margin: 0;
  line-height: 1.55;
  max-width: 52ch;
}

/* Layout 2 colonne: img + content */
.metodo-fase__layout {
  display: grid;
  grid-template-columns: 5fr 6fr;
  gap: var(--s6);
  align-items: start;
}
.metodo-fase__layout--rev { grid-template-columns: 6fr 5fr; }

/* Box immagine con titolo sotto */
.metodo-img-box {
  border-radius: var(--r-xl);
  overflow: hidden;
  box-shadow: var(--sh-lg);
  background: var(--bg-off);
  border: 1px solid var(--fog-dark);
  transition: transform var(--tr), box-shadow var(--tr);
}
.metodo-img-box:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 48px rgba(0,0,0,.14);
}
.metodo-img-box img {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  display: block;
}
.metodo-img-box__caption {
  padding: 14px 18px;
  font-size: var(--text-sm);
  color: var(--slate);
  line-height: 1.55;
  text-align: center;
  background: var(--bg-white);
  border-top: 1px solid var(--fog);
  margin: 0;
}
.metodo-img-box__caption strong { color: var(--graphite); }

/* Contenuto testuale articolo */
.metodo-fase__content > p {
  font-size: var(--text-lg);
  color: var(--slate);
  line-height: 1.8;
  margin-bottom: 1.2em;
}
.metodo-art-title {
  font-size: clamp(18px, 2.2vw, 24px);
  font-weight: var(--fw-bold);
  color: var(--graphite);
  margin-bottom: var(--s3);
  line-height: 1.3;
  letter-spacing: -.015em;
}

/* Lista puntata metodo */
.metodo-list {
  list-style: none;
  padding: 0;
  margin: 0 0 1.4em;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.metodo-list li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: var(--text-base);
  color: var(--slate);
  line-height: 1.65;
}
.metodo-list li::before {
  content: '→';
  color: var(--petrol);
  font-weight: var(--fw-bold);
  flex-shrink: 0;
  margin-top: 1px;
}

/* Highlight box */
.metodo-highlight {
  background: var(--petrol-light);
  border-left: 4px solid var(--petrol);
  border-radius: 0 var(--r-md) var(--r-md) 0;
  padding: 16px var(--s3);
  font-size: var(--text-base);
  color: var(--oxford);
  line-height: 1.75;
  margin: var(--s3) 0;
  font-weight: var(--fw-medium);
}
.metodo-highlight--arancio {
  background: var(--arancio-light);
  border-left-color: var(--arancio);
  color: var(--oxford);
}
.metodo-highlight--coral {
  background: var(--coral-light);
  border-left-color: var(--coral);
  color: var(--oxford);
}

/* Flow tag */
.metodo-flow-tag {
  display: inline-block;
  background: var(--blu-light);
  color: var(--blu-dark);
  border: 1.5px solid var(--blu-mid);
  border-radius: var(--r-md);
  padding: 10px 16px;
  font-size: var(--text-sm);
  font-weight: var(--fw-semi);
  margin: 0 0 var(--s3);
  line-height: 1.55;
}

/* Output box per fase */
.metodo-output-box {
  background: var(--petrol-pale);
  border: 1.5px solid var(--petrol-mid);
  border-top: 3px solid var(--petrol);
  border-radius: var(--r-lg);
  padding: var(--s3);
  margin-top: var(--s3);
}
.metodo-output-box--blu    { background: var(--blu-light);    border-color: var(--blu-mid);          border-top-color: var(--blu); }
.metodo-output-box--arancio{ background: var(--arancio-light);border-color: rgba(242,140,40,.3);     border-top-color: var(--arancio); }
.metodo-output-box--coral  { background: var(--coral-light);  border-color: rgba(192,64,94,.2);      border-top-color: var(--coral); }

.metodo-output-box__label {
  display: block;
  font-size: 10px;
  font-weight: var(--fw-bold);
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--petrol);
  margin-bottom: 6px;
}
.metodo-output-box--blu    .metodo-output-box__label { color: var(--blu); }
.metodo-output-box--arancio.metodo-output-box__label { color: var(--arancio-dark); }
.metodo-output-box--coral  .metodo-output-box__label { color: var(--coral); }
.metodo-output-box p {
  font-size: var(--text-sm);
  color: var(--oxford);
  margin: 0;
  line-height: 1.65;
}

/* Griglia riepilogativa ciclo */
.metodo-ciclo-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--s3);
}
.metodo-ciclo-card {
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: var(--r-xl);
  padding: var(--s3);
  text-align: center;
  transition: background var(--tr), transform var(--tr);
}
.metodo-ciclo-card:hover {
  background: rgba(255,255,255,.12);
  transform: translateY(-4px);
}
.metodo-ciclo-card__num {
  display: block;
  font-size: 13px;
  font-weight: var(--fw-bold);
  letter-spacing: 2px;
  margin-bottom: 4px;
}
.metodo-ciclo-card__ico {
  font-size: 32px;
  display: block;
  margin-bottom: 10px;
}
.metodo-ciclo-card__label {
  font-size: var(--text-base);
  font-weight: var(--fw-bold);
  color: #fff;
  margin: 0 0 6px;
}
.metodo-ciclo-card__desc {
  font-size: 12px;
  color: rgba(255,255,255,.55);
  line-height: 1.55;
  margin: 0;
}

/* ── Responsive Metodo ──────────────────────── */
@media (max-width: 1024px) {
  .metodo-fase__layout,
  .metodo-fase__layout--rev {
    grid-template-columns: 1fr;
  }
  .metodo-fase__layout--rev > .metodo-img-box { order: -1; }
  .metodo-ciclo-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .metodo-steps-nav { gap: 6px; }
  .metodo-step-nav-item { font-size: 12px; padding: 5px 10px; }
  .metodo-step-nav-sep  { display: none; }
  .metodo-ciclo-grid { grid-template-columns: 1fr 1fr; }
  .metodo-fase__header,
  .metodo-fase__header--rev { flex-direction: column; gap: var(--s2); }
  .metodo-fase__header--rev { text-align: left; }
  .metodo-fase__num { font-size: 48px; opacity: .14; }
}

/* ══════════════════════════════════════════════
   24  ESPERIENZE — Principi operativi
══════════════════════════════════════════════ */

/* Stat box hero */
.esperienze-stat-box {
  background: var(--bg-white);
  border: 1px solid var(--fog-dark);
  border-top: 3px solid var(--petrol);
  border-radius: var(--r-lg);
  padding: var(--s3);
  box-shadow: var(--sh-sm);
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.esperienze-stat-num {
  font-size: clamp(32px, 4vw, 48px);
  font-weight: var(--fw-black);
  color: var(--petrol);
  line-height: 1;
  letter-spacing: -.03em;
}
.esperienze-stat-lbl {
  font-size: var(--text-xs);
  font-weight: var(--fw-semi);
  letter-spacing: .5px;
  text-transform: uppercase;
  color: var(--muted);
}

/* Griglia principi — 2 col */
.principi-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--s4);
}

/* Card principio */
.principio-card {
  background: var(--bg-white);
  border: 1px solid var(--fog-dark);
  border-radius: var(--r-xl);
  overflow: hidden;
  box-shadow: var(--sh-sm);
  display: flex;
  flex-direction: column;
  transition: transform var(--tr), box-shadow var(--tr), border-color var(--tr);
}
.principio-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--sh-hover);
  border-color: var(--petrol-mid);
}

.principio-card__head {
  padding: var(--s3) var(--s3) var(--s2);
  border-top: 4px solid var(--petrol);
  background: var(--bg-off);
}
.principio-card__num {
  display: inline-block;
  font-size: 11px;
  font-weight: var(--fw-black);
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--petrol);
  margin-bottom: 8px;
  background: var(--petrol-light);
  border-radius: var(--r-full);
  padding: 3px 10px;
}
.principio-card__title {
  font-size: clamp(15px, 1.8vw, 18px);
  font-weight: var(--fw-bold);
  color: var(--graphite);
  margin: 0;
  line-height: 1.35;
  letter-spacing: -.01em;
}

.principio-card__desc {
  font-size: var(--text-sm);
  color: var(--oxford);
  line-height: 1.7;
  padding: var(--s2) var(--s3);
  margin: 0;
  flex: 1;
}

.principio-card__test {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 12px var(--s3);
  background: var(--petrol-pale);
  border-top: 1px solid var(--petrol-mid);
  margin-top: auto;
}
.principio-card__test-icon {
  font-size: 16px;
  flex-shrink: 0;
  margin-top: 1px;
}
.principio-card__test-text {
  font-size: 12px;
  color: var(--petrol-dark);
  font-weight: var(--fw-medium);
  line-height: 1.6;
}

/* ── Responsive Esperienze ───────────────────── */
@media (max-width: 1024px) {
  .principi-grid { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
  .esperienze-stat-box { flex-direction: row; align-items: center; justify-content: space-between; }
}

/* ══════════════════════════════════════════════
   25  FORMAZIONE — Pagina moduli
══════════════════════════════════════════════ */

/* Stats hero formazione */
.formazione-stats-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--s2);
}
.formazione-stat {
  background: rgba(255,255,255,.7);
  border: 1px solid var(--fog-dark);
  border-radius: var(--r-lg);
  padding: var(--s2) var(--s3);
  display: flex;
  flex-direction: column;
  gap: 2px;
  box-shadow: var(--sh-xs);
  backdrop-filter: blur(4px);
}
.formazione-stat__num {
  font-size: clamp(24px, 3vw, 36px);
  font-weight: var(--fw-black);
  color: var(--petrol);
  line-height: 1;
  letter-spacing: -.02em;
}
.formazione-stat__lbl {
  font-size: 11px;
  font-weight: var(--fw-semi);
  letter-spacing: .5px;
  text-transform: uppercase;
  color: var(--muted);
}

/* Griglia moduli — 2 col di default → 1 col mobile */
.moduli-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--s4);
}

/* Card modulo */
.modulo-card {
  background: var(--bg-white);
  border: 1px solid var(--fog-dark);
  border-radius: var(--r-xl);
  overflow: hidden;
  box-shadow: var(--sh-sm);
  display: flex;
  flex-direction: column;
  transition: transform var(--tr), box-shadow var(--tr), border-color var(--tr), opacity .2s, transform .2s;
}
.modulo-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--sh-hover);
  border-color: var(--petrol-mid);
}

.modulo-card__head {
  padding: var(--s3);
  border-top: 4px solid var(--petrol);
  background: var(--bg-off);
}
.modulo-card__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
}
.modulo-card__icon { font-size: 28px; }
.modulo-card__num {
  font-size: 36px;
  font-weight: var(--fw-black);
  line-height: 1;
  color: var(--petrol);
  opacity: .22;
  letter-spacing: -.03em;
}
.modulo-card__area {
  font-size: 10px;
  font-weight: var(--fw-bold);
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--petrol);
  background: var(--petrol-light);
  border-radius: var(--r-full);
  padding: 3px 10px;
  display: inline-block;
  margin-bottom: 8px;
}
.modulo-card__title {
  font-size: clamp(16px, 1.8vw, 20px);
  font-weight: var(--fw-bold);
  color: var(--graphite);
  margin: 0;
  line-height: 1.3;
  letter-spacing: -.01em;
}

.modulo-card__body {
  padding: var(--s2) var(--s3);
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: var(--s2);
}
.modulo-card__obiettivo,
.modulo-card__contenuti { display: flex; flex-direction: column; gap: 6px; }

.modulo-card__obiettivo-label,
.modulo-card__contenuti-label {
  font-size: 11px;
  font-weight: var(--fw-bold);
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--cool-grey);
}
.modulo-card__obiettivo p {
  font-size: var(--text-sm);
  color: var(--slate);
  line-height: 1.65;
  margin: 0;
  font-style: italic;
}
.modulo-card__contenuti ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.modulo-card__contenuti li {
  font-size: var(--text-sm);
  color: var(--oxford);
  line-height: 1.6;
  display: flex;
  gap: 7px;
  align-items: flex-start;
}
.modulo-card__contenuti li::before {
  content: '·';
  color: var(--petrol);
  font-weight: var(--fw-black);
  flex-shrink: 0;
}

/* Output box */
.modulo-card__output {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 14px var(--s3);
  background: var(--petrol-pale);
  border-top: 2px solid var(--petrol);
  margin-top: auto;
}
.modulo-card__output-icon { font-size: 18px; flex-shrink: 0; margin-top: 1px; }
.modulo-card__output-label {
  display: block;
  font-size: 10px;
  font-weight: var(--fw-bold);
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--petrol);
  margin-bottom: 3px;
}
.modulo-card__output p {
  font-size: var(--text-sm);
  color: var(--oxford);
  margin: 0;
  line-height: 1.6;
  font-weight: var(--fw-medium);
}

/* Percorso steps */
.formazione-steps {
  display: flex;
  flex-direction: column;
  gap: var(--s2);
}
.formazione-step {
  display: flex;
  align-items: center;
  gap: var(--s2);
  background: rgba(255,255,255,.6);
  border: 1px solid var(--fog-dark);
  border-radius: var(--r-lg);
  padding: 14px var(--s3);
  box-shadow: var(--sh-xs);
}
.formazione-step__num {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--petrol);
  color: #fff;
  font-size: 13px;
  font-weight: var(--fw-bold);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.formazione-step__label {
  font-size: var(--text-base);
  font-weight: var(--fw-semi);
  color: var(--graphite);
}

/* ── Responsive Formazione ───────────────────── */
@media (max-width: 1024px) {
  .formazione-stats-grid { grid-template-columns: repeat(4,1fr); }
}
@media (max-width: 768px) {
  .formazione-stats-grid { grid-template-columns: repeat(2,1fr); }
  .moduli-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .formazione-stats-grid { grid-template-columns: 1fr 1fr; }
}
