/* =========================================================================
   Corso di Leadership -- site.css
   Source of truth: concatenation of colors_and_type.css + styles.css from the
   approved design bundle (design-approved/project/corsoleadership/).
   Google Fonts @import removed -- fonts loaded via functions.php wp_head pattern.
   ========================================================================= */

/* =========================================================================
   Castro & Partners — Design Tokens
   Colors, typography, spacing, radii, shadows.
   ========================================================================= */

/* Webfonts: served via Google Fonts CDN.
   Montserrat → headings & display (matches the heavy geometric wordmark).
   Inter       → body, UI, captions.
   --- Note: the live Castro & Partners site is built on Elementor with
   "google_font-enabled". The exact production faces are not exposed in the
   page source, so Montserrat (Black/ExtraBold) is used as the closest
   visual match to the "CASTRO & PARTNERS" wordmark. Flagged as a
   substitution — see README.md > Visual Foundations > Type. */

:root {
  /* ---------------------------------------------------------------------
     Color — Brand
     The primary navy is sampled directly from the brand mark (#004F85).
     The deep-blue family is the only colored hue in the system; everything
     else is grayscale. This restraint is intentional — it reads as
     "consulting/finance" rather than "tech startup".
     --------------------------------------------------------------------- */
  --cp-brand-900: #00263F;   /* darkest navy — deep accents, body on light */
  --cp-brand-800: #003560;
  --cp-brand-700: #004F85;   /* PRIMARY brand blue (from logo)            */
  --cp-brand-600: #1A6BA0;
  --cp-brand-500: #4A8EBC;
  --cp-brand-400: #82B0D2;
  --cp-brand-300: #B6D0E3;
  --cp-brand-200: #DCE8F1;
  --cp-brand-100: #EEF4F8;   /* faint wash — section backgrounds          */
  --cp-brand-050: #F6F9FB;

  /* ---------------------------------------------------------------------
     Color — Neutrals
     A long, even grayscale. Black is used liberally for headings; white is
     the dominant surface.
     --------------------------------------------------------------------- */
  --cp-ink:        #0B0B0C;  /* near-black — headings, wordmark           */
  --cp-ink-2:      #1A1A1C;  /* body text                                 */
  --cp-gray-900:   #2B2B2E;
  --cp-gray-800:   #444448;
  --cp-gray-700:   #5C5C61;
  --cp-gray-600:   #757579;  /* secondary text                            */
  --cp-gray-500:   #9A9A9E;
  --cp-gray-400:   #BDBDC1;  /* hairline borders                          */
  --cp-gray-300:   #D9D9DC;
  --cp-gray-200:   #EAEAEC;
  --cp-gray-100:   #F2F2F4;  /* card backgrounds on white                 */
  --cp-gray-050:   #F8F8FA;
  --cp-white:      #FFFFFF;

  /* ---------------------------------------------------------------------
     Color — Semantic / status (used sparingly — mostly in UI kit forms)
     --------------------------------------------------------------------- */
  --cp-success:    #1F8A5B;
  --cp-warning:    #C68A1F;
  --cp-danger:     #B23B3B;
  --cp-info:       var(--cp-brand-700);

  /* ---------------------------------------------------------------------
     Foreground / background semantic aliases
     --------------------------------------------------------------------- */
  --cp-fg-1:       var(--cp-ink);          /* primary text                */
  --cp-fg-2:       var(--cp-gray-700);     /* secondary text              */
  --cp-fg-3:       var(--cp-gray-600);     /* tertiary, captions          */
  --cp-fg-invert:  var(--cp-white);
  --cp-fg-accent:  var(--cp-brand-700);

  --cp-bg-1:       var(--cp-white);        /* base surface                */
  --cp-bg-2:       var(--cp-gray-050);     /* alt surface                 */
  --cp-bg-3:       var(--cp-gray-100);
  --cp-bg-dark:    var(--cp-brand-900);    /* dark hero / footer          */
  --cp-bg-accent:  var(--cp-brand-700);

  --cp-border:     var(--cp-gray-300);
  --cp-border-strong: var(--cp-gray-400);
  --cp-border-accent: var(--cp-brand-700);

  /* ---------------------------------------------------------------------
     Type
     --------------------------------------------------------------------- */
  --cp-font-display: "Montserrat", "Helvetica Neue", Arial, sans-serif;
  --cp-font-body:    "Inter", "Helvetica Neue", Arial, sans-serif;
  --cp-font-mono:    ui-monospace, "SF Mono", Menlo, Consolas, monospace;

  /* Display weights (matching the heavy wordmark) */
  --cp-w-regular:  400;
  --cp-w-medium:   500;
  --cp-w-semibold: 600;
  --cp-w-bold:     700;
  --cp-w-xbold:    800;
  --cp-w-black:    900;

  /* Type scale (1.25 modular — designed for 16px base) */
  --cp-fs-12:  0.75rem;   /* 12px caption / micro                          */
  --cp-fs-14:  0.875rem;  /* 14px UI label                                 */
  --cp-fs-16:  1rem;      /* 16px body                                     */
  --cp-fs-18:  1.125rem;  /* 18px body lead                                */
  --cp-fs-20:  1.25rem;
  --cp-fs-24:  1.5rem;    /* h5                                            */
  --cp-fs-28:  1.75rem;   /* h4                                            */
  --cp-fs-32:  2rem;      /* h3                                            */
  --cp-fs-40:  2.5rem;    /* h2                                            */
  --cp-fs-56:  3.5rem;    /* h1                                            */
  --cp-fs-72:  4.5rem;    /* hero display                                  */

  --cp-lh-tight:  1.08;
  --cp-lh-snug:   1.2;
  --cp-lh-normal: 1.45;
  --cp-lh-relaxed: 1.6;

  --cp-tracking-tight: -0.01em;
  --cp-tracking-wide:  0.04em;
  --cp-tracking-wider: 0.12em;  /* small eyebrow labels                    */

  /* ---------------------------------------------------------------------
     Spacing — 4px base
     --------------------------------------------------------------------- */
  --cp-space-1:  4px;
  --cp-space-2:  8px;
  --cp-space-3:  12px;
  --cp-space-4:  16px;
  --cp-space-5:  20px;
  --cp-space-6:  24px;
  --cp-space-8:  32px;
  --cp-space-10: 40px;
  --cp-space-12: 48px;
  --cp-space-16: 64px;
  --cp-space-20: 80px;
  --cp-space-24: 96px;
  --cp-space-32: 128px;

  /* ---------------------------------------------------------------------
     Radii — Italian-corporate restraint. Mostly rectangular.
     --------------------------------------------------------------------- */
  --cp-radius-0:    0px;     /* default for buttons / hero blocks         */
  --cp-radius-sm:   2px;     /* fields, chips                             */
  --cp-radius-md:   4px;     /* cards                                     */
  --cp-radius-lg:   8px;     /* large feature cards                       */
  --cp-radius-pill: 999px;   /* tags, status pills                        */

  /* ---------------------------------------------------------------------
     Shadows — subtle, never glow-y
     --------------------------------------------------------------------- */
  --cp-shadow-1: 0 1px 2px rgba(11, 11, 12, 0.04), 0 1px 1px rgba(11, 11, 12, 0.06);
  --cp-shadow-2: 0 2px 6px rgba(11, 11, 12, 0.06), 0 4px 12px rgba(11, 11, 12, 0.06);
  --cp-shadow-3: 0 6px 16px rgba(11, 11, 12, 0.08), 0 12px 28px rgba(11, 11, 12, 0.08);
  --cp-shadow-focus: 0 0 0 3px rgba(0, 79, 133, 0.25);

  /* ---------------------------------------------------------------------
     Motion
     --------------------------------------------------------------------- */
  --cp-ease-out: cubic-bezier(0.2, 0.7, 0.2, 1);
  --cp-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
  --cp-dur-fast: 120ms;
  --cp-dur-base: 200ms;
  --cp-dur-slow: 360ms;

  /* ---------------------------------------------------------------------
     Layout
     --------------------------------------------------------------------- */
  --cp-container-narrow: 880px;
  --cp-container:        1200px;
  --cp-container-wide:   1400px;
}

/* =========================================================================
   Semantic typography — defaults for raw HTML elements
   ========================================================================= */

html, body {
  font-family: var(--cp-font-body);
  font-size: var(--cp-fs-16);
  line-height: var(--cp-lh-normal);
  color: var(--cp-fg-1);
  background: var(--cp-bg-1);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5, h6, .cp-display {
  font-family: var(--cp-font-display);
  color: var(--cp-fg-1);
  margin: 0;
  text-wrap: balance;
}

.cp-display, h1 {
  font-size: var(--cp-fs-56);
  font-weight: var(--cp-w-black);
  line-height: var(--cp-lh-tight);
  letter-spacing: var(--cp-tracking-tight);
}

h2 {
  font-size: var(--cp-fs-40);
  font-weight: var(--cp-w-xbold);
  line-height: var(--cp-lh-snug);
  letter-spacing: var(--cp-tracking-tight);
}

h3 {
  font-size: var(--cp-fs-32);
  font-weight: var(--cp-w-bold);
  line-height: var(--cp-lh-snug);
}

h4 {
  font-size: var(--cp-fs-24);
  font-weight: var(--cp-w-bold);
  line-height: var(--cp-lh-snug);
}

h5 {
  font-size: var(--cp-fs-20);
  font-weight: var(--cp-w-semibold);
  line-height: var(--cp-lh-snug);
}

h6, .cp-eyebrow {
  font-size: var(--cp-fs-14);
  font-weight: var(--cp-w-bold);
  line-height: var(--cp-lh-normal);
  letter-spacing: var(--cp-tracking-wider);
  text-transform: uppercase;
  color: var(--cp-brand-700);
}

p, .cp-body {
  font-size: var(--cp-fs-16);
  line-height: var(--cp-lh-relaxed);
  color: var(--cp-fg-2);
  margin: 0 0 var(--cp-space-4);
}

.cp-lead {
  font-size: var(--cp-fs-20);
  line-height: var(--cp-lh-relaxed);
  color: var(--cp-fg-2);
  font-weight: var(--cp-w-regular);
}

.cp-caption {
  font-size: var(--cp-fs-12);
  line-height: var(--cp-lh-normal);
  color: var(--cp-fg-3);
  letter-spacing: var(--cp-tracking-wide);
  text-transform: uppercase;
}

small, .cp-small {
  font-size: var(--cp-fs-14);
  color: var(--cp-fg-3);
}

code, .cp-mono {
  font-family: var(--cp-font-mono);
  font-size: 0.9em;
}

a {
  color: var(--cp-brand-700);
  text-decoration: none;
  transition: color var(--cp-dur-fast) var(--cp-ease-out);
}
a:hover { color: var(--cp-brand-800); text-decoration: underline; }

/* =========================================================================
   styles.css -- site-level styles
   ========================================================================= */
/* =========================================================================
   Corso di Leadership Certificato — corsoleadership.com
   Built on the Castro & Partners design system (colors_and_type.css),
   pushed bolder: deep-navy drama, oversized Montserrat Black display,
   one energetic amber/gold accent doubling as a certification seal.
   ========================================================================= */

:root {
  /* Energetic accent — tunable via Tweaks. Vivid yellow = energy + certification. */
  --lead-accent:       #F5C518;   /* signal yellow */
  --lead-accent-deep:  #C99A06;   /* readable yellow for text on light */
  --lead-accent-soft:  #FBEFB8;
  --lead-accent-tint:  rgba(245,197,24,0.14);

  --lead-navy:    var(--cp-brand-900);   /* #00263F deep navy surface */
  --lead-navy-2:  #042F4D;               /* slightly lifted navy panel */
  --lead-ink:     var(--cp-ink);

  /* Display scale multiplier (Tweaks) */
  --lead-scale: 1;

  /* Section rhythm (overridden by [data-density]) */
  --sec-pad: 120px;
}

[data-density="compact"] { --sec-pad: 84px; }
[data-density="comfy"]   { --sec-pad: 156px; }

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
html, body { margin: 0; padding: 0; }
body {
  font-family: var(--cp-font-body);
  background: var(--cp-bg-1);
  color: var(--cp-fg-1);
  /* overflow-x: clip blocca lo scroll orizzontale SENZA creare un contenitore
     di scroll: con `hidden` il body diventava lo scroll container e rompeva
     il position:fixed dell'header (.hdr si staccava durante lo scroll). */
  overflow-x: clip;
}
img { max-width: 100%; display: block; }
::selection { background: var(--lead-accent); color: var(--lead-navy); }

a { color: var(--lead-accent-deep); }
a:hover { color: var(--lead-accent-deep); }

/* ---------- Layout ---------- */
.wrap {
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 40px;
}
.wrap--narrow { max-width: 940px; }
.section { padding: var(--sec-pad) 0; position: relative; }
.section--navy { background: var(--lead-navy); color: #fff; }
.section--ink  { background: #0A0A0C; color: #fff; }
.section--wash { background: var(--cp-brand-050); }

/* ---------- Eyebrow ---------- */
.eyebrow {
  font-family: var(--cp-font-display);
  font-weight: 800;
  font-size: 13px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--lead-accent-deep);
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 22px;
}
.section--navy .eyebrow, .section--ink .eyebrow { color: var(--lead-accent); }
.eyebrow::before {
  content: "";
  width: 32px; height: 2px;
  background: var(--lead-accent);
  display: inline-block;
}

/* ---------- Display headings ---------- */
.h-display {
  font-family: var(--cp-font-display);
  font-weight: 900;
  line-height: 0.96;
  letter-spacing: -0.025em;
  margin: 0;
  text-wrap: balance;
}
.h-sec {
  font-family: var(--cp-font-display);
  font-weight: 900;
  font-size: clamp(34px, calc(5vw * var(--lead-scale)), 60px);
  line-height: 1.02;
  letter-spacing: -0.02em;
  margin: 0 0 20px;
  text-wrap: balance;
}
.lead {
  font-size: clamp(18px, 1.4vw, 21px);
  line-height: 1.6;
  color: var(--cp-fg-2);
  max-width: 60ch;
  margin: 0;
}
.section--navy .lead, .section--ink .lead { color: rgba(255,255,255,0.74); }

/* Headings inside dark surfaces are always white — never near-black on navy */
.section--navy :is(h1, h2, h3, h4, h5, h6, .h-display, .h-sec),
.section--ink :is(h1, h2, h3, h4, h5, h6, .h-display, .h-sec),
.proof :is(h1, h2, h3, h4, h5, h6) {
  color: #fff;
}

/* ---------- Buttons ---------- */
.btn {
  font-family: var(--cp-font-display);
  font-weight: 800;
  font-size: 13px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 17px 30px;
  border: none;
  cursor: pointer;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  transition: background var(--cp-dur-base) var(--cp-ease-out),
              color var(--cp-dur-base) var(--cp-ease-out),
              transform var(--cp-dur-base) var(--cp-ease-out);
  border-radius: 0;
  white-space: nowrap;
}
.btn svg { width: 16px; height: 16px; }
.btn--primary { background: var(--lead-accent); color: var(--lead-navy); }
.btn--primary:hover { background: var(--lead-accent-deep); color: var(--lead-navy); text-decoration: none; }
.btn--solid { background: var(--cp-brand-700); color: #fff; }
.btn--solid:hover { background: var(--cp-brand-800); color: #fff; text-decoration: none; }
.btn--ghost {
  background: transparent; color: #fff;
  border: 1.5px solid rgba(255,255,255,0.35);
  padding: 15.5px 28.5px;
}
.btn--ghost:hover { border-color: var(--lead-accent); color: var(--lead-accent); text-decoration: none; }
.btn--outline-dark {
  background: transparent; color: var(--lead-navy);
  border: 1.5px solid var(--cp-gray-400);
  padding: 15.5px 28.5px;
}
.btn--outline-dark:hover { border-color: var(--lead-navy); color: var(--lead-navy); text-decoration: none; }
[data-motion="on"] .btn:active { transform: translateY(1px); }
/* Variante small: usata da CTA header e bottoni level-card. Valori dal design intent
   (l'header CTA del design aveva inline padding:13px 22px;font-size:12px). */
.btn--sm { padding: 13px 22px; font-size: 12px; }

/* =========================================================================
   Header
   ========================================================================= */
.hdr {
  /* fixed (non sticky): il template-part di WP avvolge l'header in un wrapper
     alto ~80px e position:sticky si aggancerebbe a QUEL wrapper -> esce dallo
     schermo appena si scrolla. fixed si ancora alla finestra e resta sempre in
     cima. La sovrapposizione del contenuto e' evitata dal padding-top su
     .corsolead-main + scroll-margin-top sulle ancore (sotto). */
  position: fixed; top: 0; left: 0; right: 0; z-index: 80;
  /* margin:0 annulla il block-gap di WP (:where(.is-layout-flow) > * { margin-block: 24px }). */
  margin: 0;
  transition: background var(--cp-dur-base) var(--cp-ease-out),
              border-color var(--cp-dur-base) var(--cp-ease-out),
              backdrop-filter var(--cp-dur-base) var(--cp-ease-out);
  border-bottom: 1px solid transparent;
}
/* Header fixed: ogni hero di pagina (home/CTL/assessment) ha il proprio
   padding-top interno (~80px) che tiene il titolo sotto l'header, quindi
   nessun contenuto viene coperto. --hdr-h serve solo per lo scroll-margin
   delle ancore. */
:root { --hdr-h: 80px; }
/* Ancore: cliccando una voce nav (#metodo, #livelli...) la sezione non
   finisce sotto l'header fixed. */
[id]{ scroll-margin-top: var(--hdr-h); }
.hdr__inner {
  display: flex; align-items: center; justify-content: space-between;
  gap: 24px; padding: 18px 0;
}
.hdr.is-stuck {
  background: rgba(255,255,255,0.95);
  backdrop-filter: saturate(140%) blur(10px);
  -webkit-backdrop-filter: saturate(140%) blur(10px);
  border-bottom: 1px solid var(--cp-border);
}
.brand { display: flex; align-items: center; gap: 12px; text-decoration: none; color: #fff; }
.hdr.is-stuck .brand { color: var(--lead-ink); }
.brand__mark { width: 34px; height: 34px; display: block; flex-shrink: 0; border-radius: 8px; }
/* Marchio SVG inline (3 barre ascendenti, la più alta in accent).
   currentColor permette l'adattamento header chiaro/scuro. Dal design styles.css. */
.logo-mark { width: 34px; height: 34px; display: block; flex-shrink: 0; }
.logo-mark .b1 { fill: currentColor; opacity: 0.4; }
.logo-mark .b2 { fill: currentColor; opacity: 0.72; }
.logo-mark .b3 { fill: var(--lead-accent); }
.brand__wm {
  font-family: var(--cp-font-display); font-weight: 900;
  font-size: 21px; line-height: 1; letter-spacing: -0.03em;
  text-transform: lowercase; color: inherit; white-space: nowrap;
}
.brand__wm .lt { font-weight: 600; opacity: 0.68; }
.brand__wm .dot { color: var(--lead-accent); }
.hdr__nav { display: flex; align-items: center; gap: 30px; }
.hdr__link {
  font-family: var(--cp-font-body); font-size: 14px; font-weight: 600;
  color: rgba(255,255,255,0.82); text-decoration: none; letter-spacing: 0.01em;
  transition: color var(--cp-dur-fast) var(--cp-ease-out);
  white-space: nowrap;
}
.hdr__link:hover { color: #fff; }
.hdr__link--accent { color: var(--lead-accent); font-weight: 700; }
.hdr__link--accent:hover { color: var(--lead-accent); }
.hdr.is-stuck .hdr__link--accent { color: var(--lead-accent-deep); }
.hdr.is-stuck .hdr__link--accent:hover { color: var(--lead-accent-deep); }
.hdr.is-stuck .hdr__link { color: var(--cp-gray-700); }
.hdr.is-stuck .hdr__link:hover { color: var(--lead-navy); }
.hdr__cta { display: flex; align-items: center; gap: 18px; }
.hdr__menu-btn { display: none; }

/* Scroll progress bar */
.scrollbar {
  position: fixed; top: 0; left: 0; height: 3px; width: 0%;
  background: var(--lead-accent); z-index: 90;
  transition: width 80ms linear;
}

/* =========================================================================
   Hero — solid navy, crisp white type, photo in its own clean column
   ========================================================================= */
.hero {
  position: relative;
  min-height: calc(100vh - 73px); /* 73px = altezza approssimativa .hdr sticky */
  background:
    radial-gradient(120% 90% at 0% 0%, #053150 0%, var(--lead-navy) 55%);
  color: #fff;
  display: flex; align-items: center;
  overflow: hidden;
  padding: 80px 0 72px;
}
.hero__inner { position: relative; z-index: 2; width: 100%; }
.hero__grid { display: grid; grid-template-columns: 1.08fr 0.92fr; gap: 56px; align-items: center; }

/* Right visual column */
.hero__visual { position: relative; }
.hero__photo {
  width: 100%; height: 600px; object-fit: cover; display: block;
  position: relative; z-index: 2;
}
.hero__visual::before {
  content: ""; position: absolute; left: 30px; top: 30px; right: -16px; bottom: -16px;
  border: 2px solid var(--lead-accent); z-index: 1;
}
.hero__visual .seal { position: absolute; left: -56px; bottom: -42px; z-index: 4; width: 220px; height: 220px; }
.hero__visual .seal::before {
  content: ""; position: absolute; inset: -10px; border-radius: 50%;
  background: var(--lead-navy); box-shadow: 0 18px 50px rgba(0,0,0,0.45);
}
.hero__visual .seal__ring, .hero__visual .seal__core { z-index: 1; }
.hero__kicker {
  display: inline-flex; align-items: center; gap: 12px;
  font-family: var(--cp-font-display); font-weight: 800;
  font-size: 13px; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--lead-accent);
  border: 1px solid rgba(239,160,46,0.4);
  padding: 9px 16px; border-radius: 999px;
  margin-bottom: 30px;
}
.hero__kicker .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--lead-accent); }
[data-motion="on"] .hero__kicker .dot { animation: pulse 2.4s var(--cp-ease-in-out) infinite; }
@keyframes pulse { 0%,100%{opacity:1;transform:scale(1);} 50%{opacity:.4;transform:scale(1.5);} }

.hero__title {
  font-family: var(--cp-font-display); font-weight: 900;
  font-size: clamp(46px, calc(7.3vw * var(--lead-scale)), 112px);
  line-height: 0.94; letter-spacing: -0.03em;
  margin: 0 0 28px; text-wrap: balance;
  color: #fff;
}
.hero__title .accent { color: var(--lead-accent); display: inline; }
.hero__lead {
  font-size: clamp(18px, 1.5vw, 22px); line-height: 1.55;
  color: rgba(255,255,255,0.8); max-width: 42ch; margin: 0 0 40px;
}
.hero__actions { display: flex; gap: 16px; flex-wrap: wrap; align-items: center; }
.hero__meta {
  display: flex; gap: 36px; margin-top: 52px; flex-wrap: wrap;
  border-top: 1px solid rgba(255,255,255,0.14); padding-top: 30px;
}
.hero__meta-item { }
.hero__meta-num {
  font-family: var(--cp-font-display); font-weight: 900;
  font-size: 38px; line-height: 1; color: #fff; letter-spacing: -0.02em;
}
.hero__meta-num .u { color: var(--lead-accent); }
.hero__meta-lbl {
  font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase;
  color: rgba(255,255,255,0.55); margin-top: 8px; font-weight: 600;
}

/* Certification seal */
.hero__seal-wrap { display: flex; justify-content: center; align-items: center; }
.seal { position: relative; width: 220px; height: 220px; }
.seal__ring {
  position: absolute; inset: 0;
  animation: spin 28s linear infinite;
}
[data-motion="off"] .seal__ring { animation: none; }
.seal__ring text {
  font-family: var(--cp-font-display); font-weight: 800;
  font-size: 12.5px; letter-spacing: 0.18em;
  fill: var(--lead-accent); text-transform: uppercase;
}
@keyframes spin { to { transform: rotate(360deg); } }
.seal__core {
  position: absolute; inset: 42px;
  border: 1.5px solid rgba(239,160,46,0.45);
  border-radius: 50%;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center; gap: 6px;
  background: radial-gradient(circle at 50% 35%, rgba(239,160,46,0.14), transparent 70%);
}
.seal__core img { width: 44px; height: 44px; }
.seal__core .seal__lbl {
  font-family: var(--cp-font-display); font-weight: 900;
  font-size: 11px; letter-spacing: 0.2em; color: #fff; text-transform: uppercase;
}
.seal__core .seal__sub {
  font-size: 9.5px; letter-spacing: 0.16em; color: var(--lead-accent);
  text-transform: uppercase; font-weight: 700;
}

.hero__scroll {
  position: absolute; bottom: 26px; left: 50%; transform: translateX(-50%);
  z-index: 3; display: flex; flex-direction: column; align-items: center; gap: 8px;
  font-size: 10.5px; letter-spacing: 0.2em; text-transform: uppercase;
  color: rgba(255,255,255,0.5); font-weight: 600;
}
.hero__scroll .line { width: 1px; height: 38px; background: linear-gradient(rgba(255,255,255,0.5), transparent); }
[data-motion="on"] .hero__scroll .line { animation: scrolldrop 1.8s var(--cp-ease-in-out) infinite; }
@keyframes scrolldrop { 0%{transform:scaleY(0);transform-origin:top;} 50%{transform:scaleY(1);transform-origin:top;} 51%{transform-origin:bottom;} 100%{transform:scaleY(0);transform-origin:bottom;} }

/* =========================================================================
   Proof bar
   ========================================================================= */
.proof { background: #0A0A0C; color: #fff; }
.proof__grid {
  display: grid; grid-template-columns: repeat(4, 1fr);
}
.proof__cell {
  padding: 44px 28px; text-align: center;
  border-left: 1px solid rgba(255,255,255,0.1);
}
.proof__cell:first-child { border-left: none; }
.proof__num {
  font-family: var(--cp-font-display); font-weight: 900;
  font-size: clamp(40px, 4.4vw, 60px); line-height: 1;
  letter-spacing: -0.02em; color: #fff;
}
.proof__num .u { color: var(--lead-accent); }
.proof__lbl {
  font-size: 12.5px; letter-spacing: 0.12em; text-transform: uppercase;
  color: rgba(255,255,255,0.6); margin-top: 12px; font-weight: 600;
}

/* =========================================================================
   Manifesto
   ========================================================================= */
.manifesto .h-display {
  font-size: clamp(36px, calc(5.8vw * var(--lead-scale)), 88px);
  line-height: 1.0;
}
.manifesto__lead-row { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; margin-top: 56px; align-items: start; }
.manifesto__strike { color: rgba(255,255,255,0.32); text-decoration: line-through; text-decoration-thickness: 3px; }
.manifesto__hi { color: var(--lead-accent); }

/* Research basis strip */
.research { margin-top: 64px; border-top: 1px solid rgba(255,255,255,0.14); padding-top: 32px; }
.research__lbl {
  font-family: var(--cp-font-display); font-weight: 800; font-size: 12px;
  letter-spacing: 0.18em; text-transform: uppercase; color: var(--lead-accent);
  display: block; margin-bottom: 20px;
}
.research__row { display: flex; flex-wrap: wrap; gap: 10px; }
.research__row span {
  font-family: var(--cp-font-body); font-size: 14px; font-weight: 600;
  color: rgba(255,255,255,0.82); padding: 8px 16px;
  border: 1px solid rgba(255,255,255,0.18);
}

/* =========================================================================
   Section head (shared)
   ========================================================================= */
.sec-head { max-width: 760px; margin-bottom: 64px; }
.sec-head--center { margin-left: auto; margin-right: auto; text-align: center; }
.sec-head--center .eyebrow { justify-content: center; }
.sec-index {
  font-family: var(--cp-font-display); font-weight: 900;
  font-size: 14px; color: var(--lead-accent-deep); letter-spacing: 0.1em;
}

/* =========================================================================
   Pillars (framework)
   ========================================================================= */
.pillars { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0; border-top: 1px solid var(--cp-border); }
.pillar {
  padding: 44px 44px 48px; border-bottom: 1px solid var(--cp-border);
  border-right: 1px solid var(--cp-border);
  position: relative;
  transition: background var(--cp-dur-base) var(--cp-ease-out);
}
.pillar:nth-child(2n) { border-right: none; }
.pillar:hover { background: var(--cp-brand-050); }
.pillar__num {
  font-family: var(--cp-font-display); font-weight: 900;
  font-size: 13px; color: var(--lead-accent-deep); letter-spacing: 0.14em;
  margin-bottom: 20px;
}
.pillar__h {
  font-family: var(--cp-font-display); font-weight: 800; font-size: 26px;
  letter-spacing: -0.01em; color: var(--lead-ink); margin: 0 0 12px; line-height: 1.12;
}
.pillar__p { font-size: 16px; line-height: 1.62; color: var(--cp-fg-2); margin: 0; max-width: 46ch; }

/* =========================================================================
   Levels (certification tiers)
   ========================================================================= */
.levels { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.level {
  background: #fff; border: 1px solid var(--cp-border);
  display: flex; flex-direction: column;
  transition: box-shadow var(--cp-dur-base) var(--cp-ease-out), transform var(--cp-dur-base) var(--cp-ease-out);
  position: relative; overflow: hidden;
}
.level:hover { box-shadow: var(--cp-shadow-3); }
[data-motion="on"] .level:hover { transform: translateY(-4px); }
.level__top { padding: 32px 30px 28px; color: #fff; position: relative; overflow: hidden; }
.level--1 .level__top { background: var(--cp-brand-700); }
.level--2 .level__top { background: var(--cp-brand-800); }
.level--3 .level__top { background: var(--lead-navy); }
.level__top::after {
  content: ""; position: absolute; right: -40px; top: -40px;
  width: 160px; height: 160px; border: 28px solid rgba(255,255,255,0.06); border-radius: 50%;
}
.level__code {
  display: inline-block; font-family: var(--cp-font-display); font-weight: 900;
  font-size: 12px; letter-spacing: 0.16em; padding: 6px 12px;
  background: rgba(255,255,255,0.14); color: #fff; margin-bottom: 20px;
}
.level--3 .level__code { background: var(--lead-accent); color: var(--lead-navy); }
.level__cert {
  font-family: var(--cp-font-display); font-weight: 900; font-size: 25px;
  line-height: 1.08; letter-spacing: -0.01em; margin: 0 0 6px; position: relative;
  color: #fff;
}
.level__tag { font-size: 13px; color: rgba(255,255,255,0.7); position: relative; }
.level__body { padding: 28px 30px 32px; display: flex; flex-direction: column; gap: 18px; flex: 1; }
.level__meta { display: flex; gap: 26px; }
.level__meta div span {
  display: block; font-family: var(--cp-font-display); font-weight: 900;
  font-size: 26px; color: var(--lead-ink); line-height: 1;
}
.level__meta div small { font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--cp-fg-3); }
.level__for { font-size: 14px; line-height: 1.5; color: var(--cp-fg-2); margin: 0; }
.level__for strong { color: var(--lead-ink); font-weight: 700; }
.level__list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 9px; }
.level__list li {
  font-size: 13.5px; color: var(--cp-fg-2); line-height: 1.4;
  padding-left: 22px; position: relative;
}
.level__list li::before {
  content: ""; position: absolute; left: 0; top: 7px;
  width: 8px; height: 8px; background: var(--lead-accent); transform: rotate(45deg);
}
.level__foot { margin-top: auto; padding-top: 8px; }
.level__prereq {
  display: flex; align-items: center; gap: 9px;
  margin: 4px 0 0; padding: 11px 0 0; border-top: 1px solid var(--cp-border);
  font-size: 12.5px; line-height: 1.35; color: var(--cp-fg-3);
}
.level__prereq svg { width: 15px; height: 15px; color: var(--lead-accent-deep); flex-shrink: 0; }
.level__prereq strong { color: var(--lead-ink); font-weight: 700; }

/* =========================================================================
   Module index (28 moduli)
   ========================================================================= */
.modgroup { margin-bottom: 56px; }
.modgroup:last-child { margin-bottom: 0; }
.modgroup__head {
  display: flex; align-items: baseline; gap: 16px; flex-wrap: wrap;
  padding-bottom: 18px; margin-bottom: 22px;
  border-bottom: 2px solid var(--lead-ink);
}
.modgroup__level {
  font-family: var(--cp-font-display); font-weight: 900; font-size: 13px;
  letter-spacing: 0.14em; color: var(--lead-accent-deep);
}
.modgroup__title {
  font-family: var(--cp-font-display); font-weight: 900; font-size: 24px;
  letter-spacing: -0.01em; color: var(--lead-ink);
}
.modgroup__count { font-size: 13px; color: var(--cp-fg-3); margin-left: auto; letter-spacing: 0.04em; }
.modgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--cp-border); border: 1px solid var(--cp-border); }
.mod {
  background: #fff; padding: 20px 22px; display: flex; gap: 16px; align-items: flex-start;
  transition: background var(--cp-dur-base) var(--cp-ease-out);
}
.mod:hover { background: var(--cp-brand-050); }
.mod__code {
  font-family: var(--cp-font-display); font-weight: 900; font-size: 13px;
  color: var(--lead-accent-deep); letter-spacing: 0.04em; flex-shrink: 0; padding-top: 1px;
  min-width: 30px;
}
.mod__title { font-size: 14.5px; font-weight: 600; color: var(--lead-ink); line-height: 1.34; }

/* =========================================================================
   Audience path
   ========================================================================= */
.path { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; }
.path__step {
  padding: 36px 32px; border-left: 3px solid var(--lead-accent);
  background: rgba(255,255,255,0.03);
}
.path__from { font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--lead-accent); font-weight: 700; margin-bottom: 14px; }
.path__h { font-family: var(--cp-font-display); font-weight: 800; font-size: 22px; color: #fff; margin: 0 0 10px; }
.path__p { font-size: 14.5px; line-height: 1.55; color: rgba(255,255,255,0.66); margin: 0; }
.path__roles { display: flex; flex-wrap: wrap; gap: 6px; margin: 16px 0 18px; }
.path__roles span { font-size: 12px; font-weight: 600; color: rgba(255,255,255,0.9); border: 1px solid rgba(255,255,255,0.22); padding: 5px 11px; }
.path__do { margin: 0; }
.path__do dt { font-size: 11px; letter-spacing: 0.13em; text-transform: uppercase; color: var(--lead-accent); font-weight: 700; margin-bottom: 5px; }
.path__do dd { margin: 0 0 14px; font-size: 14.5px; line-height: 1.5; color: rgba(255,255,255,0.82); }
.path__do dd:last-child { margin-bottom: 0; }

/* Fit / not-fit clarity */
.fit { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin-top: 56px; border: 1px solid rgba(255,255,255,0.16); }
.fit__col { padding: 34px 36px 38px; }
.fit__col--yes { background: rgba(255,255,255,0.03); border-right: 1px solid rgba(255,255,255,0.16); }
.fit__h { display: flex; align-items: center; gap: 11px; font-family: var(--cp-font-display); font-weight: 800; font-size: 16px; letter-spacing: 0.01em; color: #fff; margin: 0 0 20px; }
.fit__h svg { width: 22px; height: 22px; flex-shrink: 0; }
.fit__col--yes .fit__h svg { color: var(--lead-accent); }
.fit__col--no .fit__h { color: rgba(255,255,255,0.55); }
.fit__col--no .fit__h svg { color: rgba(255,255,255,0.4); }
.fit__list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 13px; }
.fit__list li { display: flex; gap: 12px; align-items: flex-start; font-size: 15px; line-height: 1.45; }
.fit__list li svg { width: 17px; height: 17px; flex-shrink: 0; margin-top: 2px; }
.fit__col--yes .fit__list li { color: rgba(255,255,255,0.9); }
.fit__col--yes .fit__list li svg { color: var(--lead-accent); }
.fit__col--no .fit__list li { color: rgba(255,255,255,0.55); }
.fit__col--no .fit__list li svg { color: rgba(255,255,255,0.4); }

/* =========================================================================
   Tools (cosa porti a casa)
   ========================================================================= */
.tools { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.tool {
  border: 1px solid var(--cp-border); background: #fff; padding: 26px 26px 28px;
  display: flex; flex-direction: column; gap: 12px;
  transition: border-color var(--cp-dur-base) var(--cp-ease-out), box-shadow var(--cp-dur-base) var(--cp-ease-out);
}
.tool:hover { border-color: var(--lead-accent); box-shadow: var(--cp-shadow-2); }
.tool__icon {
  width: 44px; height: 44px; background: var(--lead-accent-tint);
  display: flex; align-items: center; justify-content: center; color: var(--lead-accent-deep);
}
.tool__icon svg { width: 22px; height: 22px; }
.tool__h { font-family: var(--cp-font-display); font-weight: 800; font-size: 17px; color: var(--lead-ink); margin: 0; line-height: 1.25; }
.tool__p { font-size: 13.5px; line-height: 1.5; color: var(--cp-fg-2); margin: 0; }

/* =========================================================================
   Docente
   ========================================================================= */
.docente { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: 64px; align-items: center; }
.docente__photo-wrap { position: relative; }
.docente__photo {
  width: 100%; aspect-ratio: 4/5; object-fit: cover;
  background: var(--cp-brand-100); position: relative; z-index: 2;
}
.docente__photo-wrap::before {
  content: ""; position: absolute; left: -16px; top: -16px; right: 28px; bottom: 28px;
  border: 2px solid var(--lead-accent); z-index: 1;
}
.docente__role { color: var(--lead-accent-deep); }
.docente__name { font-family: var(--cp-font-display); font-weight: 900; font-size: clamp(36px,4vw,52px); letter-spacing: -0.02em; color: var(--lead-ink); margin: 0 0 6px; line-height: 1; }
.docente__title { font-size: 16px; color: var(--cp-fg-2); margin: 0 0 24px; }
.docente__bio p { font-size: 16px; line-height: 1.66; color: var(--cp-fg-2); margin: 0 0 14px; max-width: 56ch; }
.docente__bio strong { color: var(--lead-ink); font-weight: 700; }
.docente__creds { display: flex; gap: 30px; margin-top: 28px; flex-wrap: wrap; border-top: 1px solid var(--cp-border); padding-top: 24px; }
.docente__cred span { display: block; font-family: var(--cp-font-display); font-weight: 900; font-size: 20px; color: var(--lead-ink); }
.docente__cred small { font-size: 12px; color: var(--cp-fg-3); letter-spacing: 0.04em; }

/* =========================================================================
   Quote
   ========================================================================= */
.quote { text-align: center; max-width: 980px; margin: 0 auto; }
.quote__mark { font-family: var(--cp-font-display); font-weight: 900; font-size: 90px; color: var(--lead-accent); line-height: 0.6; }
.quote__text {
  font-family: var(--cp-font-display); font-weight: 800;
  font-size: clamp(26px, calc(3.4vw * var(--lead-scale)), 46px);
  line-height: 1.18; letter-spacing: -0.015em; color: #fff; margin: 18px 0 22px; text-wrap: balance;
}
.quote__by { font-size: 14px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--lead-accent); font-weight: 700; }

/* =========================================================================
   FAQ
   ========================================================================= */
.faq { max-width: 880px; margin: 0 auto; }
.faq__item { border-bottom: 1px solid var(--cp-border); }
.faq__q {
  width: 100%; text-align: left; background: none; border: none; cursor: pointer;
  padding: 26px 50px 26px 0; position: relative;
  font-family: var(--cp-font-display); font-weight: 700; font-size: clamp(17px,1.6vw,21px);
  color: var(--lead-ink); letter-spacing: -0.005em; line-height: 1.3;
}
.faq__q::after {
  content: "+"; position: absolute; right: 6px; top: 50%; transform: translateY(-50%);
  font-size: 28px; font-weight: 400; color: var(--lead-accent-deep); transition: transform var(--cp-dur-base) var(--cp-ease-out);
}
.faq__item.open .faq__q::after { content: "−"; }
.faq__a { max-height: 0; overflow: hidden; transition: max-height var(--cp-dur-slow) var(--cp-ease-out); }
.faq__a-inner { padding: 0 60px 28px 0; font-size: 16px; line-height: 1.66; color: var(--cp-fg-2); }

/* =========================================================================
   Final CTA
   ========================================================================= */
.finalcta__grid { display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 64px; align-items: center; }
.finalcta__title { font-family: var(--cp-font-display); font-weight: 900; font-size: clamp(34px, calc(4.6vw * var(--lead-scale)), 60px); line-height: 1.02; letter-spacing: -0.02em; color: #fff; margin: 0 0 18px; }
.finalcta__sub { font-size: 18px; line-height: 1.6; color: rgba(255,255,255,0.74); margin: 0 0 28px; }
.finalcta__points { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 12px; }
.finalcta__points li { display: flex; gap: 12px; align-items: center; font-size: 15px; color: rgba(255,255,255,0.85); }
.finalcta__points li svg { width: 18px; height: 18px; color: var(--lead-accent); flex-shrink: 0; }
.form {
  background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.12);
  padding: 36px; display: flex; flex-direction: column; gap: 14px;
}
.form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.form label { font-size: 12px; font-weight: 600; color: rgba(255,255,255,0.7); letter-spacing: 0.04em; margin-bottom: 6px; display: block; }
.form input, .form select {
  width: 100%; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.18);
  padding: 13px 15px; color: #fff; font-family: var(--cp-font-body); font-size: 14px; border-radius: 0;
  transition: border-color var(--cp-dur-fast) var(--cp-ease-out);
}
.form input::placeholder { color: rgba(255,255,255,0.4); }
.form input:focus, .form select:focus { outline: none; border-color: var(--lead-accent); }
.form select option { color: #000; }
.form__success {
  border-left: 3px solid var(--lead-accent); background: var(--lead-accent-tint);
  padding: 16px 18px; font-size: 14px; color: #fff; display: none;
}
.form__note { font-size: 11.5px; color: rgba(255,255,255,0.5); line-height: 1.5; margin: 0; }

/* =========================================================================
   Footer
   ========================================================================= */
.ftr { background: #0A0A0C; color: #fff; padding: 72px 0 36px; }
.ftr__grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 48px; }
.ftr__brand { display: flex; align-items: center; gap: 12px; margin-bottom: 20px; color: #fff; }
.ftr__p { font-size: 14px; line-height: 1.7; color: rgba(255,255,255,0.6); margin: 0; max-width: 38ch; }
.ftr__h { font-family: var(--cp-font-display); font-weight: 700; font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; margin: 0 0 16px; color: #fff; }
.ftr__col a, .ftr__col p { display: block; font-size: 14px; line-height: 1.9; color: rgba(255,255,255,0.62); text-decoration: none; margin: 0; }
.ftr__col a:hover { color: var(--lead-accent); }
.ftr__legal { margin-top: 56px; padding-top: 26px; border-top: 1px solid rgba(255,255,255,0.1); display: flex; flex-direction: column; gap: 24px; }
.ftr__legal p { font-size: 12px; color: rgba(255,255,255,0.4); margin: 0; line-height: 1.6; }
.ftr__legal-text { display: flex; flex-direction: column; gap: 4px; }

/* Partner logos row */
.ftr__partners { display: flex; align-items: center; gap: 32px; flex-wrap: wrap; }
.ftr__partner-item { display: flex; flex-direction: column; gap: 8px; }
.ftr__partner-label { font-size: 11px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(255,255,255,0.4); }
.ftr__partner-link { display: inline-flex; align-items: center; text-decoration: none; }
.ftr__partner-link:hover { opacity: 0.85; }

/* ManagementAcademy: emblema circolare nero su trasparente -- serve badge bianco */
.ftr__partner-badge {
  display: inline-flex; align-items: center; justify-content: center;
  background: #fff; border-radius: 50%;
  padding: 6px; width: 64px; height: 64px;
}
.ftr__partner-badge img { width: 52px; height: 52px; object-fit: contain; display: block; }

/* Badge rettangolare per il lockup orizzontale Castro & Partners (simbolo + testo). */
.ftr__partner-badge--wide {
  border-radius: 8px; width: auto; height: 52px; padding: 8px 16px;
}
/* Castro & Partners: logo a colori su badge bianco -- niente filtro (il lockup
   ha simbolo navy + testo nero, l'invert lo rendeva una macchia bianca). */
.ftr__partner-cp { height: 30px; width: auto; object-fit: contain; display: block; }

/* =========================================================================
   Scroll reveal
   ========================================================================= */
[data-reveal] { opacity: 0; transform: translateY(28px); transition: opacity 0.7s var(--cp-ease-out), transform 0.7s var(--cp-ease-out); }
[data-reveal].in { opacity: 1; transform: none; }
[data-motion="off"] [data-reveal] { opacity: 1; transform: none; transition: none; }

/* =========================================================================
   Empathy / problem-agitation ("Ti suona familiare?")
   ========================================================================= */
.pains-intro { font-size: clamp(17px,1.4vw,20px); line-height: 1.6; color: var(--cp-fg-2); max-width: 62ch; margin: 0 0 8px; }
.pains-intro strong { color: var(--lead-ink); font-weight: 700; }
.pains { display: grid; grid-template-columns: 1fr 1fr; gap: 0 56px; margin-top: 44px; border-top: 1px solid var(--cp-border); }
.pain {
  display: flex; gap: 18px; align-items: flex-start;
  padding: 22px 4px; border-bottom: 1px solid var(--cp-border);
}
.pain__mark {
  flex-shrink: 0; width: 26px; height: 26px; margin-top: 1px;
  border: 1.5px solid var(--lead-accent-deep); color: var(--lead-accent-deep);
  display: flex; align-items: center; justify-content: center;
}
.pain__mark svg { width: 15px; height: 15px; }
.pain__txt { font-size: 16.5px; line-height: 1.45; color: var(--lead-ink); font-weight: 500; }
.pains-close {
  margin-top: 44px; font-family: var(--cp-font-display); font-weight: 800;
  font-size: clamp(20px, 2.3vw, 30px); line-height: 1.28; letter-spacing: -0.01em;
  color: var(--lead-ink); max-width: 30ch; text-wrap: balance;
}
.pains-close .hl { color: var(--lead-accent-deep); }

/* =========================================================================
   Prima → Dopo (transformation)
   ========================================================================= */
.ba { display: grid; grid-template-columns: 1fr 1fr; gap: 0; border: 1px solid var(--cp-border); }
.ba__col { padding: 40px 40px 44px; }
.ba__col--before { background: var(--cp-gray-050); border-right: 1px solid var(--cp-border); }
.ba__col--after { background: var(--lead-navy); color: #fff; position: relative; }
.ba__tag {
  font-family: var(--cp-font-display); font-weight: 800; font-size: 12px;
  letter-spacing: 0.16em; text-transform: uppercase; margin: 0 0 6px;
}
.ba__col--before .ba__tag { color: var(--cp-fg-3); }
.ba__col--after .ba__tag { color: var(--lead-accent); }
.ba__h { font-family: var(--cp-font-display); font-weight: 900; font-size: 24px; letter-spacing: -0.01em; margin: 0 0 26px; line-height: 1.1; }
.ba__col--before .ba__h { color: var(--cp-fg-2); }
.ba__col--after .ba__h { color: #fff; }
.ba__list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; }
.ba__list li { display: flex; gap: 14px; align-items: flex-start; padding: 14px 0; font-size: 15.5px; line-height: 1.45; }
.ba__list li + li { border-top: 1px solid rgba(0,0,0,0.06); }
.ba__col--after .ba__list li + li { border-top-color: rgba(255,255,255,0.12); }
.ba__col--before .ba__list li { color: var(--cp-fg-2); }
.ba__col--after .ba__list li { color: rgba(255,255,255,0.92); }
.ba__ico { flex-shrink: 0; width: 18px; height: 18px; margin-top: 1px; }
.ba__col--before .ba__ico { color: var(--cp-gray-400); }
.ba__col--after .ba__ico { color: var(--lead-accent); }

/* =========================================================================
   Process / certification mechanics
   ========================================================================= */
.process { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; border-top: 2px solid var(--lead-ink); }
.pstep { padding: 30px 26px 34px 0; border-right: 1px solid var(--cp-border); position: relative; }
.pstep:last-child { border-right: none; padding-right: 0; }
.pstep__n {
  font-family: var(--cp-font-display); font-weight: 900; font-size: 13px;
  color: var(--lead-accent-deep); letter-spacing: 0.1em; margin-bottom: 18px;
  display: flex; align-items: center; gap: 10px;
}
.pstep__n::after { content: ""; height: 1px; flex: 1; background: var(--cp-border); }
.pstep__h { font-family: var(--cp-font-display); font-weight: 800; font-size: 19px; color: var(--lead-ink); margin: 0 0 10px; line-height: 1.18; }
.pstep__p { font-size: 14.5px; line-height: 1.55; color: var(--cp-fg-2); margin: 0; max-width: 34ch; }

.certcard {
  margin-top: 56px; display: grid; grid-template-columns: 1fr 1fr; gap: 0;
  border: 1px solid var(--cp-border); background: #fff;
}
.certcard__side { padding: 38px 40px; }
.certcard__side--l { border-right: 1px solid var(--cp-border); }
.certcard__lbl { font-family: var(--cp-font-display); font-weight: 800; font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--lead-accent-deep); margin: 0 0 18px; }
.certrow { display: flex; gap: 14px; align-items: flex-start; padding: 13px 0; border-top: 1px solid var(--cp-border); font-size: 15px; line-height: 1.45; color: var(--cp-fg-2); }
.certrow:first-of-type { border-top: none; }
.certrow svg { width: 18px; height: 18px; color: var(--lead-accent-deep); flex-shrink: 0; margin-top: 1px; }
.certrow strong { color: var(--lead-ink); font-weight: 700; }
.tracks { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.tracks span { font-size: 13px; font-weight: 600; color: var(--cp-fg-2); padding: 7px 13px; border: 1px solid var(--cp-border); }

/* =========================================================================
   Assessment teaser band
   ========================================================================= */
.astease { background: #0A0A0C; color: #fff; }
.astease__inner { display: grid; grid-template-columns: 1.3fr 0.7fr; gap: 48px; align-items: center; }
.astease__ey { font-family: var(--cp-font-display); font-weight: 800; font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--lead-accent); margin: 0 0 16px; }
.astease__h { font-family: var(--cp-font-display); font-weight: 900; font-size: clamp(28px, calc(3.6vw * var(--lead-scale)), 46px); line-height: 1.04; letter-spacing: -0.02em; margin: 0 0 16px; color: #fff; text-wrap: balance; }
.astease__p { font-size: 17px; line-height: 1.6; color: rgba(255,255,255,0.72); margin: 0; max-width: 48ch; }
.astease__right { display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }
.astease__stat { display: flex; gap: 14px; align-items: baseline; }
.astease__stat b { font-family: var(--cp-font-display); font-weight: 900; font-size: 30px; color: var(--lead-accent); line-height: 1; }
.astease__stat span { font-size: 14px; color: rgba(255,255,255,0.7); }
.astease__right .btn { margin-top: 6px; }

/* =========================================================================
   Responsive
   ========================================================================= */
@media (max-width: 1080px) {
  .hero { min-height: 0; padding: 72px 0 64px; }
  .hero__grid { grid-template-columns: 1fr; gap: 40px; }
  .hero__photo { height: 380px; }
  .hero__visual .seal { display: none; }
  .levels { grid-template-columns: 1fr; }
  .docente { grid-template-columns: 1fr; gap: 36px; }
  .finalcta__grid { grid-template-columns: 1fr; gap: 36px; }
  .modgrid { grid-template-columns: repeat(2, 1fr); }
  .tools { grid-template-columns: repeat(2, 1fr); }
  .manifesto__lead-row { grid-template-columns: 1fr; gap: 24px; }
  .astease__inner { grid-template-columns: 1fr; gap: 28px; }
  .pains { grid-template-columns: 1fr; }
  .ba { grid-template-columns: 1fr; }
  .ba__col--before { border-right: none; border-bottom: 1px solid var(--cp-border); }
  .process { grid-template-columns: 1fr 1fr; }
  .pstep { padding-right: 26px; }
  .pstep:nth-child(2) { border-right: none; padding-right: 0; }
  .certcard { grid-template-columns: 1fr; }
  .certcard__side--l { border-right: none; border-bottom: 1px solid var(--cp-border); }
}
@media (max-width: 760px) {
  .wrap { padding: 0 22px; }
  .hdr__nav { display: none; }
  .proof__grid { grid-template-columns: 1fr 1fr; }
  .proof__cell:nth-child(3) { border-left: none; }
  .fit { grid-template-columns: 1fr; }
  .fit__col--yes { border-right: none; border-bottom: 1px solid rgba(255,255,255,0.16); }
  .pains, .pillars, .path, .tools, .modgrid { grid-template-columns: 1fr; }
  .process { grid-template-columns: 1fr; }
  .pstep { border-right: none; padding-right: 0; }
  .pillar { border-right: none; }
  .form__row { grid-template-columns: 1fr; }
  .hero__meta { gap: 24px; }
  .ftr__grid { grid-template-columns: 1fr 1fr; }
}

/* =========================================================================
   WP theme additions: mobile nav, skip link, accessibility, hdr mobile nav
   ========================================================================= */

/* Skip link */
.skip-link {
  position: absolute; top: -100%; left: 0; z-index: 200;
  background: var(--lead-navy); color: var(--lead-accent);
  padding: 8px 16px; font-size: 14px; font-weight: 600;
  text-decoration: none;
}
.skip-link:focus { top: 0; }

/* Mobile nav menu button */
.hdr__menu-btn {
  display: none;
  flex-direction: column; gap: 5px;
  background: none; border: none; cursor: pointer;
  padding: 8px; align-items: center; justify-content: center;
}
.hdr__menu-btn .mobile-nav-toggle__bar {
  display: block; width: 22px; height: 2px;
  background: #fff; border-radius: 2px;
  transition: transform var(--cp-dur-fast) var(--cp-ease-out), opacity var(--cp-dur-fast) var(--cp-ease-out);
}
.hdr.is-stuck .hdr__menu-btn .mobile-nav-toggle__bar { background: var(--lead-ink); }

/* Mobile nav dropdown */
.hdr__nav-mobile {
  display: none;
  background: rgba(255,255,255,0.97);
  border-top: 1px solid var(--cp-border);
  padding: 16px 0 24px;
}
.hdr__nav-mobile.is-open { display: block; }
.hdr__nav-mobile .wrap {
  display: flex; flex-direction: column; gap: 4px;
}
.hdr__nav-mobile .hdr__link {
  display: block; padding: 10px 0;
  color: var(--cp-gray-700); font-size: 15px;
  border-bottom: 1px solid var(--cp-border);
}
.hdr__nav-mobile .hdr__link--accent { color: var(--lead-accent-deep); font-weight: 700; }
.hdr__nav-mobile .btn { margin-top: 12px; align-self: flex-start; }

@media (max-width: 760px) {
  .hdr__nav { display: none !important; }
  .hdr__cta  { display: none !important; }
  .hdr__menu-btn { display: inline-flex; }
}

/* WP body margin reset (FSE block theme adds margin to body sometimes) */
.corsolead-main { margin: 0; padding: 0; }

/* Le sezioni della home/pagine sono bordo a bordo come nel design.
   WP core inietta margin-block-start:24px su ogni figlio is-layout-flow
   (:root :where(.is-layout-flow) > *). Lo annulliamo dentro il contenuto. */
.corsolead-main .entry-content > *,
.corsolead-main > .entry-content,
.corsolead-main .wp-block-post-content > * {
  margin-block-start: 0;
  margin-block-end: 0;
}

/* Assessment page: hide header/footer (the .asx has its own bar) */
body.page-template-page-assessment-leadership .hdr,
body.page-template-page-assessment-leadership .ftr { display: none !important; }

/* =========================================================================
   Waitlist countdown -- hero component
   Lives below .hero__actions, above .hero__meta.
   On the navy hero background: testo chiaro, numeri grandi, accento giallo.
   ========================================================================= */
.wl-countdown {
  margin-top: 32px;
  margin-bottom: 0;
}
.wl-countdown__label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.55);
  margin: 0 0 12px;
}
.wl-countdown__cells {
  display: flex;
  align-items: flex-start;
  gap: 0;
}
.wl-countdown__cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 64px;
}
.wl-countdown__num {
  font-family: var(--cp-font-display);
  font-weight: 900;
  font-size: clamp(28px, 3.5vw, 44px);
  line-height: 1;
  color: var(--lead-accent);
  letter-spacing: -0.02em;
  display: block;
}
.wl-countdown__lbl {
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.5);
  font-weight: 600;
  margin-top: 6px;
}
.wl-countdown__sep {
  font-family: var(--cp-font-display);
  font-weight: 900;
  font-size: clamp(24px, 3vw, 38px);
  color: rgba(255,255,255,0.25);
  line-height: 1;
  padding: 0 4px;
  align-self: flex-start;
  padding-top: 2px;
}
.wl-countdown__expired {
  font-size: 14px;
  color: rgba(255,255,255,0.75);
  margin: 0;
}
.wl-countdown__expired a {
  color: var(--lead-accent);
  font-weight: 700;
  text-decoration: underline;
}

@media (max-width: 480px) {
  .wl-countdown__cell { min-width: 48px; }
  .wl-countdown__num  { font-size: 26px; }
  .wl-countdown__sep  { font-size: 22px; padding: 0 2px; }
}
