/* =============================================================================
   Castro & Partners — Theme extras
   Componenti specifici delle pagine pillar (aree, bridge, shifts, bio-hero, team gallery,
   credentials, accred-stats, partners-grid, ma-band, clients/cert/press overrides,
   info-block, form-full, map-box, etc).
   Estratti da mockups/assets/mockup-chrome.css, depurati di chrome bar e path mockup.
   Path immagini: /wp-content/themes/castroandpartners/assets/img/...
   ============================================================================= */

/* === Hero photo: architectural shot (sostitutivo .hero-arch) === */
.hero-arch {
  background-image:
    linear-gradient(110deg, rgba(0,38,63,0.10) 0%, rgba(0,38,63,0.35) 100%),
    url('/wp-content/themes/castroandpartners/assets/img/editorial/hero-architecture.jpg');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  filter: grayscale(0.25) contrast(1.02);
  position: relative;
}
.hero-arch::before {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 60%, rgba(0,0,0,0.18));
  pointer-events: none;
}

/* Common helpers */
.cp-section__intro--left { text-align: left; margin-left: 0; }

/* Hero coaching: foto editoriale b/n di conversazione executive, trattata con
   gradient navy per integrarsi al brand. Stesso pattern del .hero-arch della home. */
.cp-hero__image--coaching {
  background-image:
    linear-gradient(110deg, rgba(0,38,63,0.12) 0%, rgba(0,38,63,0.42) 100%),
    url('/wp-content/themes/castroandpartners/assets/img/editorial/hero-coaching.jpg');
  background-size: cover;
  background-position: center 35%;
  background-repeat: no-repeat;
  filter: grayscale(0.1) contrast(1.05);
  position: relative;
}
.cp-hero__image--coaching::before {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 65%, rgba(0,0,0,0.22));
  pointer-events: none;
}
/* Disabilita l'overlay scuro standard di .cp-hero__image::after (gia' applicato dal gradient navy sopra). */
.cp-hero__image--coaching::after { background: none; }

/* Hero formazione: grafica vettoriale brand C&P (percorso → certificazione),
   sostituisce la foto stock di architettura (.hero-arch). Già navy, niente
   grayscale né overlay scuro: annulla l'::after standard di .cp-hero__image. */
.cp-hero__image--formazione {
  background-color: var(--cp-brand-900);
  background-image: url('/wp-content/themes/castroandpartners/assets/img/editorial/hero-formazione.svg?v=2');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.cp-hero__image--formazione::after { background: none; }

/* Enfasi su parole chiave dei titoli: highlight navy traslucido stile marker.
   Si applica a <em> dentro h1 hero (.cp-hero__title) e h2 di sezione
   (.cp-eb__heading). Semantica corretta: <em> = enfasi, non solo italico. */
.cp-hero__title em,
.cp-eb__heading em {
  font-style: normal;
  background-image: linear-gradient(
    180deg,
    transparent 55%,
    rgba(74, 142, 188, 0.42) 55%,
    rgba(74, 142, 188, 0.42) 92%,
    transparent 92%
  );
  background-repeat: no-repeat;
  padding: 0 4px;
}
/* Su sfondi navy (consulenza-risultato) il marker chiaro perde contrasto:
   usiamo accent ambra/oro per evidenziare su scuro. */
.cp-hero__title--on-dark em,
.cp-eb__heading--on-dark em,
[style*="color:#fff"].cp-eb__heading em {
  background-image: linear-gradient(
    180deg,
    transparent 55%,
    rgba(255, 196, 84, 0.55) 55%,
    rgba(255, 196, 84, 0.55) 92%,
    transparent 92%
  );
}

/* === Footer: brand composito (simbolo navy + wordmark testuale bianco) === */
.cp-ftr__brand {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 22px;
}
.cp-ftr__symbol {
  height: 44px;
  width: auto;
}
.cp-ftr__wordmark {
  font-family: var(--cp-font-display);
  font-weight: 900;
  font-size: 16px;
  line-height: 1.05;
  letter-spacing: 0.02em;
  color: #fff;
}

/* === Nav header: voce Management Academy separata visivamente === */
.cp-nav__item--academy {
  border-left: 1px solid var(--cp-border);
  padding-left: 24px;
  margin-left: -4px;
}
.cp-nav__item--academy a {
  font-family: var(--cp-font-display);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--cp-fg-2);
}
.cp-nav__item--academy a:hover { color: var(--cp-brand-700); }

/* === Aree consulenza (4 pillars) === */
.cp-areas {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0;
  border-top: 1px solid var(--cp-border);
  border-left: 1px solid var(--cp-border);
}
.cp-area {
  background: #fff;
  border-right: 1px solid var(--cp-border);
  border-bottom: 1px solid var(--cp-border);
  padding: 48px 40px;
  display: flex; flex-direction: column;
  transition: background var(--cp-dur-base) var(--cp-ease-out), border-color var(--cp-dur-base) var(--cp-ease-out);
  position: relative;
}
.cp-area:hover {
  background: var(--cp-brand-900);
  border-color: var(--cp-brand-900);
}
.cp-area:hover .cp-area__h,
.cp-area:hover .cp-area__p { color: #fff; }
.cp-area:hover .cp-area__num,
.cp-area:hover .cp-area__cta { color: #fff; }
.cp-area__num {
  font-family: var(--cp-font-display);
  font-weight: 900;
  font-size: 13px;
  letter-spacing: 0.18em;
  color: var(--cp-brand-700);
  margin-bottom: 16px;
}
.cp-area__h {
  font-family: var(--cp-font-display);
  font-weight: 800;
  font-size: 26px;
  letter-spacing: -0.01em;
  color: var(--cp-ink);
  margin: 0 0 16px;
  line-height: 1.15;
}
.cp-area__p {
  font-size: 15px;
  line-height: 1.6;
  color: var(--cp-fg-2);
  margin: 0 0 20px;
  flex: 1;
}
.cp-area__cta {
  font-family: var(--cp-font-display);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--cp-brand-700);
}
.cp-area__cta::after { content: " \2192"; }

.cp-area__methods {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 24px;
  padding-top: 4px;
}
.cp-method-tag {
  font-family: var(--cp-font-display);
  font-weight: 700;
  font-size: 10.5px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 4px 9px;
  background: var(--cp-brand-100);
  color: var(--cp-brand-700);
  border-radius: 2px;
  white-space: nowrap;
}
.cp-area:hover .cp-method-tag {
  background: rgba(255,255,255,0.12);
  color: #fff;
}

/* === Bridge consulenza ↔ academy ===
   Callout centrato: icona sopra, testo + CTA sotto, tutto allineato al
   centro del box per equilibrio visivo. */
.cp-bridge {
  margin-top: 48px;
  background: var(--cp-brand-900);
  color: #fff;
  padding: 56px clamp(32px, 6vw, 80px);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  border-top: 4px solid var(--cp-brand-700);
}
.cp-bridge__icon {
  color: var(--cp-brand-400);
  margin-bottom: 22px;
}
.cp-bridge__body { max-width: 760px; }
.cp-bridge__h {
  font-family: var(--cp-font-display);
  font-weight: 800;
  font-size: clamp(20px, 2.4vw, 26px);
  line-height: 1.3;
  letter-spacing: -0.005em;
  color: #fff;
  margin: 0 0 16px;
  text-wrap: balance;
}
.cp-bridge__p {
  font-size: 15px;
  line-height: 1.65;
  color: rgba(255,255,255,0.78);
  margin: 0 auto 22px;
  max-width: 64ch;
}
.cp-bridge__cta {
  font-family: var(--cp-font-display);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--cp-brand-300);
}
.cp-bridge__cta:hover { color: #fff; text-decoration: underline; }
@media (max-width: 760px) {
  .cp-bridge { padding: 40px 24px; }
}

/* === Coaching shifts (PRIMA/DOPO + metodi) === */
.cp-shifts {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}
.cp-shift {
  background: #fff;
  border: 1px solid var(--cp-border);
  border-left: 3px solid var(--cp-brand-700);
  padding: 28px 32px;
  display: flex; flex-direction: column;
  gap: 18px;
  position: relative;
}
.cp-shift__num {
  font-family: var(--cp-font-display);
  font-weight: 900;
  font-size: 13px;
  letter-spacing: 0.18em;
  color: var(--cp-brand-700);
}
.cp-shift__pair { display: grid; grid-template-columns: 1fr; gap: 16px; }
.cp-shift__before,
.cp-shift__after {
  font-family: var(--cp-font-body);
  font-size: 15px;
  line-height: 1.55;
  color: var(--cp-ink);
  font-style: italic;
  padding-left: 18px;
  border-left: 2px solid var(--cp-gray-300);
}
.cp-shift__after { border-left-color: var(--cp-brand-700); }
.cp-shift__lab {
  display: block;
  font-style: normal;
  font-family: var(--cp-font-display);
  font-weight: 700;
  font-size: 10.5px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--cp-fg-3);
  margin-bottom: 6px;
}
.cp-shift__after .cp-shift__lab { color: var(--cp-brand-700); }
.cp-shift__methods {
  display: flex; flex-wrap: wrap; gap: 6px; align-items: center;
  padding-top: 18px;
  border-top: 1px solid var(--cp-border);
}
.cp-shift__methods-lab {
  font-family: var(--cp-font-display);
  font-weight: 700;
  font-size: 10.5px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--cp-fg-3);
  margin-right: 4px;
}
@media (max-width: 760px) {
  .cp-shifts { grid-template-columns: 1fr; }
  .cp-shift { padding: 22px 24px; }
}

/* === Chi siamo: bio hero (Luciano) === */
.cp-bio-hero { padding-top: 56px; padding-bottom: 80px; }
.cp-bio-hero__grid {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: 56px;
  align-items: stretch;
}
.cp-bio-hero__photo {
  background-size: cover;
  background-position: 50% 20%;
  background-repeat: no-repeat;
  min-height: 560px;
  background-color: var(--cp-gray-100);
  filter: contrast(1.03);
}
.cp-bio-hero__photo--cutout {
  background-image: none;
  background: linear-gradient(180deg, var(--cp-brand-100) 0%, var(--cp-brand-200) 100%);
  filter: none;
  display: flex; align-items: flex-end; justify-content: center;
  overflow: hidden;
  position: relative;
}
.cp-bio-hero__photo--cutout img {
  display: block;
  max-height: 100%; max-width: 100%;
  width: auto; height: 100%;
  object-fit: contain;
  object-position: center bottom;
}
.cp-bio-hero__copy { display: flex; flex-direction: column; justify-content: center; padding-left: 8px; }
.cp-bio-hero__name {
  font-family: var(--cp-font-display);
  font-weight: 900;
  font-size: clamp(44px, 5.5vw, 72px);
  line-height: 1.02;
  letter-spacing: -0.025em;
  color: var(--cp-ink);
  margin: 14px 0 6px;
}
.cp-bio-hero__role {
  font-family: var(--cp-font-display);
  font-weight: 700;
  font-size: 17px;
  letter-spacing: 0.01em;
  color: var(--cp-brand-700);
  margin: 0 0 22px;
}
.cp-bio-hero__chips {
  list-style: none; padding: 0; margin: 0 0 28px;
  display: flex; flex-direction: column; gap: 8px;
}
.cp-bio-hero__chips li {
  position: relative; padding-left: 22px;
  font-family: var(--cp-font-body);
  font-size: 15px; line-height: 1.5;
  color: var(--cp-fg-1);
}
.cp-bio-hero__chips li::before {
  content: ""; position: absolute; left: 0; top: 9px;
  width: 12px; height: 2px;
  background: var(--cp-brand-700);
}
.cp-bio-hero__quote {
  margin: 0 0 28px;
  padding: 18px 22px 18px 26px;
  background: var(--cp-brand-100);
  border-left: 4px solid var(--cp-brand-700);
  position: relative;
}
.cp-bio-hero__quote p {
  font-family: var(--cp-font-display);
  font-weight: 700;
  font-size: clamp(16px, 1.6vw, 19px);
  line-height: 1.45;
  letter-spacing: -0.005em;
  color: var(--cp-ink);
  margin: 0;
  font-style: italic;
}
.cp-bio-hero__quote p::before { content: "\201C"; margin-right: 2px; }
.cp-bio-hero__quote p::after { content: "\201D"; margin-left: 2px; }
.cp-bio-hero__cta { display: flex; gap: 12px; flex-wrap: wrap; }
@media (max-width: 900px) {
  .cp-bio-hero__grid { grid-template-columns: 1fr; gap: 32px; }
  .cp-bio-hero__photo { min-height: 360px; }
  .cp-bio-hero__copy { padding-left: 0; }
}

/* === Credentials grid (4 milestone) === */
.cp-credentials {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  border-left: 1px solid var(--cp-border);
  border-top: 1px solid var(--cp-border);
  background: #fff;
}
.cp-cred {
  border-right: 1px solid var(--cp-border);
  border-bottom: 1px solid var(--cp-border);
  padding: 32px 28px;
}
.cp-cred__year {
  font-family: var(--cp-font-display);
  font-weight: 900;
  font-size: 13px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--cp-brand-700);
  display: block;
  margin-bottom: 14px;
}
.cp-cred__h {
  font-family: var(--cp-font-display);
  font-weight: 800;
  font-size: 19px;
  line-height: 1.2;
  letter-spacing: -0.005em;
  color: var(--cp-ink);
  margin: 0 0 12px;
}
.cp-cred__p {
  font-size: 14px;
  line-height: 1.55;
  color: var(--cp-fg-2);
  margin: 0;
}
@media (max-width: 900px) { .cp-credentials { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .cp-credentials { grid-template-columns: 1fr; } }

/* === Bio narrativa (Luciano storia) === */
.cp-bio-text p {
  font-family: var(--cp-font-body);
  font-size: 17px;
  line-height: 1.7;
  color: var(--cp-fg-2);
  margin: 0 0 20px;
}
.cp-bio-text p:first-of-type::first-letter {
  font-family: var(--cp-font-display);
  font-weight: 900;
  font-size: 64px;
  line-height: 0.9;
  color: var(--cp-brand-700);
  float: left;
  margin: 6px 12px 0 0;
}
.cp-bio-text__sign {
  font-family: var(--cp-font-display);
  font-weight: 700;
  font-size: 15px;
  color: var(--cp-ink);
  margin-top: 28px;
  letter-spacing: 0.01em;
}

/* === Team gallery (5 colonne, foto 4:5 + nome + linkedin) === */
.cp-team-gallery {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 24px;
  margin: 40px 0 24px;
}
.cp-team-card {
  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);
}
.cp-team-card:hover {
  box-shadow: var(--cp-shadow-3);
  transform: translateY(-2px);
}
.cp-team-card__photo {
  aspect-ratio: 4 / 5;
  background-size: cover;
  background-position: center top;
  background-color: var(--cp-brand-100);
  position: relative;
  overflow: hidden;
}
.cp-team-card__photo::before {
  content: attr(data-initials);
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--cp-font-display);
  font-weight: 800;
  font-size: clamp(36px, 5vw, 56px);
  letter-spacing: 0.04em;
  color: var(--cp-brand-700);
  opacity: 0.55;
  background: linear-gradient(180deg, var(--cp-brand-100) 0%, var(--cp-brand-200) 100%);
}
.cp-team-card__photo::after {
  content: ""; position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, transparent 0 38px, rgba(0,79,133,0.04) 38px 39px);
  pointer-events: none;
}
/* Foto reale presente: nascondi placeholder iniziali + texture, mostra solo l'immagine.
   Micro-boost (saturate+contrast) per dare corpo: i PNG hanno fondo che sfuma al
   bianco e accanto all'off-white della sezione --alt sembravano slavati. */
.cp-team-card__photo--has-photo {
  background-color: #fff;
  filter: saturate(1.06) contrast(1.04);
}
.cp-team-card__photo--has-photo::before,
.cp-team-card__photo--has-photo::after { content: none; }
.cp-team-card__body { padding: 20px 22px 22px; display: flex; flex-direction: column; gap: 6px; }
.cp-team-card__role {
  font-family: var(--cp-font-display);
  font-weight: 700;
  font-size: 10.5px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--cp-brand-700);
}
.cp-team-card__name {
  font-family: var(--cp-font-display);
  font-weight: 800;
  font-size: 18px;
  letter-spacing: -0.005em;
  line-height: 1.2;
  color: var(--cp-ink);
  margin: 0;
}
.cp-team-card__linkedin {
  display: inline-flex; align-items: center; justify-content: center;
  width: 32px; height: 32px;
  margin-top: 12px;
  color: var(--cp-fg-3);
  border: 1px solid var(--cp-border);
  transition: color var(--cp-dur-fast) var(--cp-ease-out), border-color var(--cp-dur-fast) var(--cp-ease-out), background var(--cp-dur-fast) var(--cp-ease-out);
}
.cp-team-card__linkedin:hover {
  color: #fff;
  border-color: var(--cp-brand-700);
  background: var(--cp-brand-700);
  text-decoration: none;
}
@media (max-width: 1100px) { .cp-team-gallery { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 700px) { .cp-team-gallery { grid-template-columns: 1fr 1fr; gap: 16px; } }

/* === Accred stats / bodies (Clienti & Accreditamenti) === */
.cp-accred-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  margin-top: 48px;
  border-top: 1px solid var(--cp-border);
  border-bottom: 1px solid var(--cp-border);
}
.cp-accred-stat {
  padding: 28px 24px;
  border-right: 1px solid var(--cp-border);
}
.cp-accred-stat:last-child { border-right: 0; }
.cp-accred-stat__num {
  display: block;
  font-family: var(--cp-font-display);
  font-weight: 900;
  font-size: clamp(36px, 4vw, 48px);
  line-height: 1;
  letter-spacing: -0.025em;
  color: var(--cp-brand-900);
  margin-bottom: 8px;
}
.cp-accred-stat__lab {
  font-family: var(--cp-font-body);
  font-size: 13px;
  line-height: 1.45;
  color: var(--cp-fg-2);
}
@media (max-width: 760px) {
  .cp-accred-stats { grid-template-columns: 1fr 1fr; }
  .cp-accred-stat { border-bottom: 1px solid var(--cp-border); }
  .cp-accred-stat:nth-child(2) { border-right: 0; }
}

/* === Partners grid (clienti-accreditamenti) === */
.cp-partners-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 0;
  border-top: 1px solid var(--cp-border);
  border-left: 1px solid var(--cp-border);
}
.cp-partners-grid__cell {
  aspect-ratio: 2 / 1;
  border-right: 1px solid var(--cp-border);
  border-bottom: 1px solid var(--cp-border);
  display: flex; align-items: center; justify-content: center;
  padding: 0; position: relative;
  transition: background var(--cp-dur-base) var(--cp-ease-out);
}
.cp-partners-grid__cell:hover { background: var(--cp-bg-2); }
.cp-partners-grid__cell > img {
  position: absolute;
  width: 64%; height: 50%;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  object-fit: contain;
  transition: transform var(--cp-dur-base) var(--cp-ease-out);
}
.cp-partners-grid__cell:hover > img {
  transform: translate(-50%, -50%) scale(1.06);
}
@media (max-width: 760px) {
  .cp-partners-grid { grid-template-columns: repeat(3, 1fr); }
}

/* === Management Academy band === */
.cp-ma-band {
  background: var(--cp-brand-100);
  border-top: 4px solid var(--cp-brand-700);
  border-bottom: 4px solid var(--cp-brand-700);
  padding: 80px 0;
  width: 100%;
  max-width: none;
}
.cp-ma-band__inner {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 56px;
  align-items: center;
}
.cp-ma-band__label {
  font-family: var(--cp-font-display);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--cp-brand-700);
  display: inline-block;
  margin-bottom: 14px;
  padding: 4px 10px;
  background: #fff;
  border: 1px solid var(--cp-brand-700);
}
.cp-ma-band__h {
  font-family: var(--cp-font-display);
  font-weight: 900;
  font-size: clamp(28px, 4vw, 42px);
  letter-spacing: -0.015em;
  color: var(--cp-brand-900);
  line-height: 1.1;
  margin: 0 0 16px;
}
.cp-ma-band__p {
  font-size: 16px;
  line-height: 1.6;
  color: var(--cp-fg-2);
  margin: 0 0 28px;
  max-width: 56ch;
}
.cp-ma-band__divider-info {
  font-family: var(--cp-font-body);
  font-size: 13px;
  color: var(--cp-fg-3);
  font-style: italic;
  margin-top: 14px;
}
.cp-ma-band__stats {
  background: #fff;
  border: 1px solid var(--cp-brand-200);
  padding: 32px;
}
.cp-ma-band__stats .row {
  display: flex; justify-content: space-between; align-items: baseline;
  padding: 14px 0;
  border-bottom: 1px solid var(--cp-border);
}
.cp-ma-band__stats .row:last-child { border-bottom: 0; }
.cp-ma-band__stats .num {
  font-family: var(--cp-font-display);
  font-weight: 900;
  font-size: 28px;
  color: var(--cp-brand-700);
  letter-spacing: -0.01em;
}
.cp-ma-band__stats .lab {
  font-size: 13px;
  color: var(--cp-fg-2);
  text-align: right;
  max-width: 60%;
}
@media (max-width: 760px) {
  .cp-areas { grid-template-columns: 1fr; }
  .cp-ma-band__inner { grid-template-columns: 1fr; gap: 32px; }
}

/* === Loghi clienti / certs / partners ===
   Tutti i loghi PNG hanno padding interno disuguale (vedi anti-pattern foto-asset).
   La griglia è solo grafica di posizionamento: nessun bordo, nessuna cella bianca.
   Ogni logo è normalizzato a una "logo-box" con altezza fissa identica → tutti
   appaiono della stessa dimensione visiva senza dipendere dal whitespace del PNG. */
.cp-clients,
.cp-certs,
.cp-partners-grid {
  background: transparent;
  border: 0 !important;
}
.cp-clients__cell,
.cp-certs__cell,
.cp-partners-grid__cell {
  aspect-ratio: auto !important;
  height: 96px !important;
  min-height: 96px !important;
  padding: 12px 18px !important;
  border: 0 !important;
  background: transparent !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  position: relative;
  transition: transform var(--cp-dur-base) var(--cp-ease-out);
}
.cp-clients__cell > img,
.cp-certs__cell > img,
.cp-partners-grid__cell > img {
  position: static !important;
  transform: none !important;
  width: auto !important;
  height: auto !important;
  max-width: 100% !important;
  max-height: 56px !important;
  object-fit: contain !important;
  display: block !important;
  filter: grayscale(1);
  opacity: 0.78;
  transition: filter var(--cp-dur-base) var(--cp-ease-out), opacity var(--cp-dur-base) var(--cp-ease-out), transform var(--cp-dur-base) var(--cp-ease-out);
}
/* Wall clienti (home): loghi a colori originali, niente grayscale/sbiadito.
   Altezza fissa 38px come driver uniforme: tutti i loghi hanno la stessa
   altezza ottica indipendentemente dalla proporzione del PNG. La larghezza
   scala libera ma e' cap-pata dalla cella (max-width 100%). */
.cp-clients__cell > img {
  filter: none;
  opacity: 1;
  height: 38px !important;
  max-height: 38px !important;
  max-width: 90% !important;
}
/* Loghi verticali (marchio sopra + testo sotto): a 38px sarebbero
   illeggibili. Altezza maggiore — restano stretti quindi non dominano. */
.cp-clients__cell > img[alt="Dipartimento per la Trasformazione Digitale"],
.cp-clients__cell > img[alt="Messagenet"] {
  height: 60px !important;
  max-height: 60px !important;
}
.cp-clients__cell:hover > img,
.cp-certs__cell:hover > img,
.cp-partners-grid__cell:hover > img {
  filter: grayscale(0);
  opacity: 1;
  transform: scale(1.04);
}
.cp-clients__cell:hover,
.cp-certs__cell:hover,
.cp-partners-grid__cell:hover {
  background: transparent !important;
}

.cp-clients {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 32px 24px;
}
/* 28 loghi / 7 colonne = 4 righe piene, niente riga spaiata. */
.cp-clients--6col { grid-template-columns: repeat(7, 1fr); }
.cp-clients__cell--empty {
  display: none !important;
}
.cp-certs {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
/* Enti certificatori / partner: i loghi sono BADGE (cerchi, rombi, box)
   con bianco incorporato. Su sfondo grigino il bianco interno galleggia.
   Soluzione: tessera bianca con separazione strutturale forte (bordo +
   ombra), badge a colori pieni (niente grayscale). Il bianco del badge
   si fonde nella tessera bianca. */
.cp-certs__cell {
  background: #fff !important;
  border: 1px solid #E4E4E4 !important;
  border-radius: 8px !important;
  height: 132px !important;
  min-height: 132px !important;
  padding: 22px 26px !important;
  box-shadow: 0 1px 3px rgba(0,38,63,0.05);
  transition: transform var(--cp-dur-base) var(--cp-ease-out),
              border-color var(--cp-dur-base) var(--cp-ease-out),
              box-shadow var(--cp-dur-base) var(--cp-ease-out);
}
.cp-certs__cell > img {
  filter: none !important;
  opacity: 1 !important;
  max-height: 78px !important;
}
.cp-certs__cell:hover {
  background: #fff !important;
  transform: translateY(-2px);
  border-color: var(--cp-brand-300) !important;
  box-shadow: 0 8px 22px rgba(0,38,63,0.08);
}
@media (max-width: 900px) { .cp-certs { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 560px) { .cp-certs { grid-template-columns: repeat(2, 1fr); } }
.cp-partners-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 32px 24px;
}

/* === Press strip ===
   I file in /img/press/ sono JPG eterogenei: alcuni hanno logo scuro su
   sfondo bianco (Sole24Ore, qb), altri hanno logo bianco su box grigio
   scuro incorporato (ANSA, La Nazione). Per uniformare, mettiamo OGNI
   logo dentro una cella bianca con bordo: il box di ANSA/Nazione si
   "fonde" dentro la cella e tutti i loghi appaiono come tessere uguali. */
.cp-press {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
  justify-content: center;
  align-items: stretch;
  max-width: 1200px;
  margin-inline: auto;
}
.cp-press > span,
.cp-press > a {
  display: flex; align-items: center; justify-content: center;
  background: #fff;
  border: 1px solid #ECECEC;
  border-radius: 4px;
  height: 140px;
  padding: 14px 18px;
  transition: transform var(--cp-dur-base) var(--cp-ease-out),
              border-color var(--cp-dur-base) var(--cp-ease-out),
              box-shadow var(--cp-dur-base) var(--cp-ease-out);
}
.cp-press > a:hover {
  transform: translateY(-2px);
  border-color: var(--cp-brand-300);
  box-shadow: 0 6px 18px rgba(0,38,63,0.06);
}
.cp-press img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
}

/* Press strip section background: warm off-white per far risaltare le
   tessere bianche dei loghi (su #fff puro sparirebbero). */
.cp-section--alt.cp-press-section,
section.cp-section--press {
  background: var(--cp-warm-050);
}

@media (max-width: 1100px) {
  .cp-clients,
  .cp-clients--6col,
  .cp-partners-grid { grid-template-columns: repeat(4, 1fr) !important; }
  .cp-certs { grid-template-columns: repeat(6, 1fr) !important; }
}
@media (max-width: 760px) {
  .cp-clients,
  .cp-clients--6col,
  .cp-partners-grid { grid-template-columns: repeat(3, 1fr) !important; gap: 24px 16px; }
  .cp-certs { grid-template-columns: repeat(4, 1fr) !important; gap: 20px 14px; }
  .cp-press { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .cp-press > span, .cp-press > a { height: 110px; padding: 10px 14px; }
}
@media (max-width: 420px) {
  .cp-clients,
  .cp-clients--6col,
  .cp-partners-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .cp-certs { grid-template-columns: repeat(3, 1fr) !important; }
}

/* === Form esteso /contatti/ === */
.cp-form-full { display: flex; flex-direction: column; }
.cp-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
@media (max-width: 600px) { .cp-form-row { grid-template-columns: 1fr; } }
.cp-field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 16px; }
.cp-field label {
  font-size: 12px; font-weight: 600;
  color: var(--cp-ink);
  letter-spacing: 0.02em;
}
.cp-field input, .cp-field textarea, .cp-field select {
  font-family: var(--cp-font-body);
  font-size: 14px;
  padding: 12px 14px;
  border: 1px solid var(--cp-gray-300);
  border-radius: 2px;
  outline: none;
  background: #fff;
  color: var(--cp-ink);
  transition: border-color 120ms;
}
.cp-field input:focus, .cp-field textarea:focus, .cp-field select:focus {
  border-color: var(--cp-brand-700);
  box-shadow: var(--cp-shadow-focus);
}
.cp-field textarea { resize: vertical; min-height: 120px; }
.cp-consent {
  font-size: 12px;
  color: var(--cp-fg-2);
  margin: 8px 0 16px;
  display: flex; gap: 8px; align-items: flex-start;
}
.cp-consent input { margin-top: 3px; }

/* === Info aside /contatti/ === */
.cp-info-aside {}
.cp-info-block {
  padding: 24px 0;
  border-top: 1px solid var(--cp-border);
}
.cp-info-block:first-of-type { border-top: 0; }
.cp-info-block__lab {
  font-family: var(--cp-font-display);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.14em;
  color: var(--cp-brand-700);
  text-transform: uppercase;
  margin-bottom: 8px;
  display: block;
}
.cp-info-block__val {
  font-size: 17px;
  color: var(--cp-ink);
  line-height: 1.6;
}
.cp-info-block__val a { color: var(--cp-ink); }
.cp-map-card {
  position: relative;
  display: block;
  height: 240px;
  margin-top: 32px;
  border: 1px solid var(--cp-border);
  background: var(--cp-brand-900);
  overflow: hidden;
  text-decoration: none;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.cp-map-card:hover,
.cp-map-card:focus-visible {
  text-decoration: none;
  transform: translateY(-2px);
  box-shadow: 0 12px 30px -16px rgba(0, 38, 63, 0.55);
}
.cp-map-card__grid {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.cp-map-card__pin {
  position: absolute;
  top: 38%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 40px;
  height: 40px;
}
.cp-map-card__pin svg { width: 100%; height: 100%; display: block; }
.cp-map-card__body {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 6px 16px;
  padding: 18px 20px;
  background: linear-gradient(0deg, rgba(0, 38, 63, 0.92) 0%, rgba(0, 38, 63, 0) 100%);
}
.cp-map-card__addr {
  font-family: var(--cp-font-display);
  font-weight: 700;
  font-size: 14px;
  color: #fff;
}
.cp-map-card__cta {
  font-family: var(--cp-font-display);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--cp-brand-500);
  white-space: nowrap;
}
.cp-map-card:hover .cp-map-card__cta,
.cp-map-card:focus-visible .cp-map-card__cta { color: #fff; }

/* === Article (post singolo) === */
/* meta in alto: categoria · data, riga orizzontale pulita (neutralizza is-layout-flow) */
.cp-article-meta {
  display: flex !important;
  flex-wrap: wrap;
  gap: 10px 14px;
  align-items: center;
  margin: 0 0 16px;
}
.cp-article-meta > * { margin: 0 !important; }
.cp-article-meta .wp-block-post-terms,
.cp-article-meta .cp-article-date {
  font-family: var(--cp-font-display);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.cp-article-meta .wp-block-post-terms a {
  color: var(--cp-brand-700);
  text-decoration: none;
}
.cp-article-meta .wp-block-post-terms a:hover { color: var(--cp-brand-900); }
/* separatore tra categoria e data */
.cp-article-meta .cp-article-date::before {
  content: "·";
  margin-right: 14px;
  color: var(--cp-border-strong);
  font-weight: 700;
}
.cp-article-date { color: var(--cp-fg-3); }
.cp-article-date time { color: inherit; }

.cp-article-title {
  font-family: var(--cp-font-display);
  font-weight: 900;
  font-size: clamp(28px, 4vw, 48px);
  line-height: 1.1;
  letter-spacing: -0.015em;
  color: var(--cp-ink);
  margin: 0 0 24px;
}

/* riga tag sopra la box autore */
.cp-article-tagrow {
  margin-top: 48px;
  padding-top: 24px;
  border-top: 1px solid var(--cp-border);
}
.cp-article-tags {
  display: flex !important;
  flex-wrap: wrap;
  gap: 8px;
}
.cp-article-tags a {
  display: inline-block;
  font-family: var(--cp-font-display);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--cp-brand-700);
  background: var(--cp-brand-100);
  padding: 5px 12px;
  border-radius: 999px;
  text-decoration: none;
}
.cp-article-tags a:hover { background: var(--cp-brand-200); }
.cp-article-tags .wp-block-post-terms__separator { display: none; }

/* === Box autore — card in fondo all'articolo === */
.cp-author-box {
  display: flex !important;
  gap: 20px;
  align-items: flex-start;
  margin: 28px 0 8px;
  padding: 24px 28px;
  background: var(--cp-warm-050);
  border: 1px solid var(--cp-border);
  border-radius: 12px;
}
.cp-author-box > * { margin: 0 !important; }
.cp-author-box__mark {
  flex: 0 0 auto;
  width: 56px; height: 56px;
  display: flex; align-items: center; justify-content: center;
  background: #fff;
  border: 1px solid var(--cp-border);
  border-radius: 50%;
  overflow: hidden;
}
.cp-author-box__mark img { width: 36px; height: 36px; object-fit: contain; }
.cp-author-box__body { display: flex; flex-direction: column; gap: 2px; }
.cp-author-box__eyebrow {
  font-family: var(--cp-font-display);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--cp-fg-3);
}
.cp-author-box__name,
.cp-author-box__name a {
  font-family: var(--cp-font-display);
  font-size: 18px;
  font-weight: 700;
  color: var(--cp-brand-900);
  text-decoration: none;
  line-height: 1.2;
}
.cp-author-box__bio {
  margin-top: 6px !important;
  font-family: var(--cp-font-body);
  font-size: 15px;
  line-height: 1.6;
  color: var(--cp-fg-2);
  max-width: 60ch;
}
@media (max-width: 560px) {
  .cp-author-box { flex-direction: column; gap: 14px; }
}

/* === Layout articolo a 2 colonne (contenuto + sidebar destra sticky) === */
.cp-article-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 56px;
  align-items: start;
  max-width: var(--cp-container);
  margin: 0 auto;
  padding-inline: var(--cp-gutter);
}
.cp-article-main { min-width: 0; }
/* dentro il layout il contenuto riempie la colonna: niente centratura a 72ch */
.cp-article-main .wp-block-post-content > p,
.cp-article-main .wp-block-post-content > ul,
.cp-article-main .wp-block-post-content > ol,
.cp-article-main .wp-block-post-content > h2,
.cp-article-main .wp-block-post-content > h3,
.cp-article-main .wp-block-post-content > h4,
.cp-article-main .wp-block-post-content > blockquote,
.cp-article-main .wp-block-post-content > .wp-block-heading,
.cp-article-main .wp-block-post-content > .wp-block-list,
.cp-article-main .wp-block-post-content table {
  max-width: none;
  margin-inline: 0;
}

.cp-article-aside { min-width: 0; }
.cp-article-aside__inner {
  position: sticky;
  top: 96px;
  display: flex;
  flex-direction: column;
  gap: 28px;
}

/* TOC */
.cp-toc {
  border: 1px solid var(--cp-border);
  border-radius: 12px;
  padding: 20px 22px;
}
.cp-toc__title {
  display: block;
  font-family: var(--cp-font-display);
  font-size: 12px; font-weight: 700;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--cp-fg-3);
  margin-bottom: 12px;
}
.cp-toc__list { list-style: none; margin: 0; padding: 0; }
.cp-toc__item { margin: 0 0 8px; line-height: 1.4; }
.cp-toc__item--sub { padding-left: 14px; }
.cp-toc__item a {
  font-size: 14px;
  color: var(--cp-fg-2);
  text-decoration: none;
}
.cp-toc__item a:hover { color: var(--cp-brand-700); }

/* Newsletter box */
.cp-nl {
  background: var(--cp-brand-900);
  color: #fff;
  border-radius: 12px;
  padding: 24px 22px;
}
.cp-nl__eyebrow {
  font-family: var(--cp-font-display);
  font-size: 11px; font-weight: 700;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--cp-brand-300);
}
.cp-nl__title {
  font-family: var(--cp-font-display);
  font-size: 19px; font-weight: 800; line-height: 1.25;
  color: #fff; margin: 8px 0 6px;
}
.cp-nl__sub { font-size: 14px; line-height: 1.5; color: rgba(255,255,255,0.75); margin: 0 0 16px; }
.cp-nl__form { display: flex; flex-direction: column; gap: 10px; }
.cp-nl__form input[type="email"] {
  width: 100%;
  padding: 11px 14px;
  border: 1px solid rgba(255,255,255,0.25);
  border-radius: 8px;
  background: rgba(255,255,255,0.08);
  color: #fff;
  font-size: 15px;
}
.cp-nl__form input[type="email"]::placeholder { color: rgba(255,255,255,0.55); }
.cp-nl__consent { display: flex; gap: 8px; align-items: flex-start; font-size: 12px; color: rgba(255,255,255,0.7); }
.cp-nl__consent a { color: rgba(255,255,255,0.9); }
.cp-nl__msg { font-size: 13px; margin: 0 0 10px; padding: 8px 12px; border-radius: 6px; }
.cp-nl__msg--ok  { background: rgba(255,255,255,0.12); color: #fff; }
.cp-nl__msg--err { background: rgba(220,80,80,0.25); color: #fff; }

/* Articoli correlati */
.cp-related__title, .cp-share__title {
  display: block;
  font-family: var(--cp-font-display);
  font-size: 12px; font-weight: 700;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--cp-fg-3);
  margin-bottom: 14px;
}
.cp-related__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.cp-related__item a {
  display: flex; gap: 12px; align-items: center;
  text-decoration: none; color: var(--cp-brand-900);
}
.cp-related__media { flex: 0 0 auto; width: 56px; height: 56px; border-radius: 8px; overflow: hidden; }
.cp-related__thumb { width: 56px; height: 56px; object-fit: cover; display: block; }
.cp-related__text { font-family: var(--cp-font-display); font-size: 14px; font-weight: 600; line-height: 1.3; }
.cp-related__item a:hover .cp-related__text { color: var(--cp-brand-700); }

/* Share */
.cp-share__links { display: flex; flex-wrap: wrap; gap: 8px; }
.cp-share__btn {
  font-family: var(--cp-font-display);
  font-size: 12px; font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--cp-brand-700);
  background: var(--cp-brand-100);
  padding: 7px 14px;
  border-radius: 8px;
  text-decoration: none;
}
.cp-share__btn:hover { background: var(--cp-brand-200); }

/* responsive: sidebar sotto il contenuto */
@media (max-width: 980px) {
  .cp-article-layout { grid-template-columns: 1fr; gap: 40px; }
  .cp-article-aside__inner { position: static; }
}

/* =============================================================================
   Pagine corso (Management Academy) — hero, specs, learn, curriculum, cert, faq
   + accreditamenti (riusa loghi in assets/img/logos/accreditamenti/)
   ============================================================================= */
.cp-corso-hero {
  background: var(--cp-brand-900);
  color: #fff;
  padding: 72px 0;
}
.cp-corso-hero__grid {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 48px;
  align-items: center;
}
.cp-corso-hero__copy .cp-eb__label { color: var(--cp-brand-300); }
.cp-corso-hero__title {
  font-family: var(--cp-font-display);
  font-weight: 900;
  font-size: clamp(32px, 4.4vw, 52px);
  line-height: 1.08;
  letter-spacing: -0.02em;
  color: #fff;
  margin: 12px 0 20px;
}
.cp-corso-hero__title em { font-style: normal; color: var(--cp-brand-300); }
.cp-corso-hero .cp-lead { color: rgba(255,255,255,0.82); max-width: 60ch; }
.cp-corso-hero__features {
  list-style: none; margin: 24px 0 28px; padding: 0;
  display: grid; grid-template-columns: 1fr 1fr; gap: 10px 24px;
}
.cp-corso-hero__features li {
  position: relative; padding-left: 26px;
  font-size: 15px; color: rgba(255,255,255,0.9); line-height: 1.4;
}
.cp-corso-hero__features li::before {
  content: ""; position: absolute; left: 0; top: 7px;
  width: 14px; height: 8px; border-left: 2px solid var(--cp-brand-300);
  border-bottom: 2px solid var(--cp-brand-300); transform: rotate(-45deg);
}
/* specs box */
.cp-corso-specs {
  background: #fff; border-radius: 14px; overflow: hidden;
  box-shadow: var(--cp-shadow-2);
}
.cp-corso-specs__img { width: 100%; height: auto; display: block; }
.cp-corso-specs__list { margin: 0; padding: 20px 24px 24px; }
.cp-corso-specs__list > div {
  display: flex; justify-content: space-between; gap: 16px;
  padding: 12px 0; border-bottom: 1px solid var(--cp-border);
}
.cp-corso-specs__list > div:last-child { border-bottom: 0; }
.cp-corso-specs__list dt { font-family: var(--cp-font-display); font-weight: 700; font-size: 13px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--cp-fg-3); margin: 0; }
.cp-corso-specs__list dd { margin: 0; font-weight: 600; color: var(--cp-brand-900); text-align: right; }

/* cosa impari */
.cp-corso-learn { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.cp-corso-learn__item { padding: 24px; border: 1px solid var(--cp-border); border-radius: 12px; background: #fff; }
.cp-corso-learn__h { font-family: var(--cp-font-display); font-size: 18px; font-weight: 700; color: var(--cp-brand-900); margin: 0 0 8px; }
.cp-corso-learn__p { font-size: 15px; line-height: 1.6; color: var(--cp-fg-2); margin: 0; }

/* per chi è pensato */
.cp-corso-target { display: grid; grid-template-columns: 1.3fr 0.7fr; gap: 48px; align-items: start; }
.cp-corso-target__copy p { font-size: 17px; line-height: 1.7; color: var(--cp-fg-2); }
.cp-corso-target__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.cp-corso-target__list li {
  position: relative; padding-left: 28px; font-size: 15px; color: var(--cp-fg-1); line-height: 1.4;
}
.cp-corso-target__list li::before {
  content: ""; position: absolute; left: 0; top: 6px;
  width: 14px; height: 8px; border-left: 2px solid var(--cp-brand-700);
  border-bottom: 2px solid var(--cp-brand-700); transform: rotate(-45deg);
}

/* curriculum */
.cp-corso-curriculum { list-style: none; margin: 0; padding: 0; counter-reset: none;
  display: grid; grid-template-columns: 1fr 1fr; gap: 0 32px; }
.cp-corso-curriculum__item { display: flex; gap: 16px; align-items: baseline; padding: 14px 0; border-bottom: 1px solid var(--cp-border); }
.cp-corso-curriculum__num { font-family: var(--cp-font-display); font-weight: 800; font-size: 14px; color: var(--cp-brand-600); flex: 0 0 auto; }
.cp-corso-curriculum__label { font-size: 16px; color: var(--cp-fg-1); }

/* certificazione */
.cp-corso-cert { display: grid; grid-template-columns: 1.4fr 0.6fr; gap: 48px; align-items: center; }
.cp-corso-cert__copy p { font-size: 16px; line-height: 1.7; color: var(--cp-fg-2); }
.cp-corso-cert__facts { list-style: none; margin: 20px 0; padding: 20px 24px; background: #fff; border: 1px solid var(--cp-border); border-radius: 12px; }
.cp-corso-cert__facts li { padding: 8px 0; font-size: 15px; color: var(--cp-fg-1); border-bottom: 1px solid var(--cp-border); }
.cp-corso-cert__facts li:last-child { border-bottom: 0; }
.cp-corso-cert__facts strong { color: var(--cp-brand-900); }
.cp-corso-cert__badge { text-align: center; }
.cp-corso-cert__badge img { max-width: 200px; height: auto; }

/* accreditamenti grid */
.cp-accred-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.cp-accred { padding: 28px 24px; border: 1px solid var(--cp-border); border-radius: 12px; background: #fff; text-align: center; }
.cp-accred__logo { height: 64px; display: flex; align-items: center; justify-content: center; margin-bottom: 16px; }
.cp-accred__logo img { max-height: 56px; max-width: 140px; width: auto; object-fit: contain; }
.cp-accred__logo--multi { gap: 18px; }
.cp-accred__logo--multi img { max-height: 48px; max-width: 110px; }
.cp-accred__name { font-family: var(--cp-font-display); font-size: 15px; font-weight: 700; color: var(--cp-brand-900); margin: 0 0 8px; line-height: 1.3; }
.cp-accred__desc { font-size: 14px; line-height: 1.55; color: var(--cp-fg-2); margin: 0; }
.cp-accred__links {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid var(--cp-border);
}
.cp-accred__source {
  display: inline-flex;
  flex-direction: column;
  gap: 2px;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.35;
  color: var(--cp-brand-700);
  text-decoration: none;
}
.cp-accred__source:hover { color: var(--cp-brand-900); text-decoration: underline; }
.cp-accred__links-lab {
  font-family: var(--cp-font-display);
  font-weight: 700;
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--cp-fg-2);
}
.cp-accred__course {
  display: inline-block;
  font-family: var(--cp-font-display);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--cp-brand-700);
  text-decoration: none;
}
.cp-accred__course:hover { color: var(--cp-brand-900); text-decoration: underline; }

/* FAQ */
.cp-corso-faq { display: flex; flex-direction: column; gap: 0; }
.cp-corso-faq__item { border-bottom: 1px solid var(--cp-border); }
.cp-corso-faq__q {
  font-family: var(--cp-font-display); font-weight: 700; font-size: 17px;
  color: var(--cp-brand-900); padding: 20px 36px 20px 0; cursor: pointer;
  position: relative; list-style: none;
}
.cp-corso-faq__q::-webkit-details-marker { display: none; }
.cp-corso-faq__q::after {
  content: "+"; position: absolute; right: 4px; top: 18px;
  font-size: 22px; font-weight: 400; color: var(--cp-brand-700);
}
.cp-corso-faq__item[open] .cp-corso-faq__q::after { content: "−"; }
.cp-corso-faq__a { padding: 0 0 20px; }
.cp-corso-faq__a p { font-size: 16px; line-height: 1.7; color: var(--cp-fg-2); margin: 0; max-width: 70ch; }

/* fasi (product curriculum) */
.cp-corso-phases { display: flex; flex-direction: column; gap: 16px; }
.cp-corso-phase { display: flex; gap: 20px; align-items: flex-start; padding: 20px 24px; border: 1px solid var(--cp-border); border-radius: 12px; background: #fff; }
.cp-corso-phase__num { font-family: var(--cp-font-display); font-weight: 800; font-size: 22px; color: var(--cp-brand-600); flex: 0 0 auto; line-height: 1.2; }
.cp-corso-phase__h { font-family: var(--cp-font-display); font-size: 18px; font-weight: 700; color: var(--cp-brand-900); margin: 0 0 6px; }
.cp-corso-phase__p { font-size: 15px; line-height: 1.6; color: var(--cp-fg-2); margin: 0; }

/* catalogo corsi (pagine elenco) */
.cp-catalog-hero { background: var(--cp-brand-900); color: #fff; padding: 64px 0; }
.cp-catalog-hero .cp-eb__label { color: var(--cp-brand-300); }
.cp-catalog-hero__title { font-family: var(--cp-font-display); font-weight: 900; font-size: clamp(30px, 4vw, 46px); line-height: 1.1; letter-spacing: -0.02em; color: #fff; margin: 12px 0 18px; max-width: 18ch; }
.cp-catalog-hero__title em { font-style: normal; color: var(--cp-brand-300); }
.cp-catalog-hero p { color: rgba(255,255,255,0.82); font-size: 17px; line-height: 1.7; max-width: 60ch; }
.cp-catalog-group { margin-top: 48px; }
.cp-catalog-group__head { margin-bottom: 24px; }
.cp-catalog-group__title { font-family: var(--cp-font-display); font-weight: 800; font-size: 22px; color: var(--cp-brand-900); margin: 0 0 6px; }
.cp-catalog-group__desc { font-size: 15px; line-height: 1.6; color: var(--cp-fg-2); margin: 0; max-width: 70ch; }
.cp-catalog-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.cp-catalog-card { display: flex; flex-direction: column; padding: 28px; border: 1px solid var(--cp-border); border-radius: 12px; background: #fff; transition: box-shadow var(--cp-dur-base) var(--cp-ease-out); }
.cp-catalog-card:hover { box-shadow: var(--cp-shadow-2); }
.cp-catalog-card__badge { font-family: var(--cp-font-display); font-size: 11px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--cp-brand-700); margin-bottom: 12px; }
.cp-catalog-card__title { font-family: var(--cp-font-display); font-size: 19px; font-weight: 700; color: var(--cp-brand-900); margin: 0 0 10px; line-height: 1.3; }
.cp-catalog-card__desc { font-size: 15px; line-height: 1.6; color: var(--cp-fg-2); margin: 0 0 20px; flex: 1; }
.cp-catalog-card__cta { align-self: flex-start; }

/* responsive corso */
@media (max-width: 900px) {
  .cp-corso-hero__grid,
  .cp-corso-target,
  .cp-corso-cert { grid-template-columns: 1fr; gap: 32px; }
  .cp-corso-learn,
  .cp-accred-grid,
  .cp-catalog-grid { grid-template-columns: 1fr 1fr; }
  .cp-corso-curriculum { grid-template-columns: 1fr; }
  .cp-corso-hero__features { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .cp-corso-learn,
  .cp-accred-grid,
  .cp-catalog-grid { grid-template-columns: 1fr; }
}

/* === Insights — griglia lista articoli === */
.cp-insights-wrap { width: 100%; max-width: var(--cp-container); margin-inline: auto; padding-inline: var(--cp-gutter); }
/* griglia 3 colonne robusta (rinforza il grid layout del query block) */
.cp-insights-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
}
.cp-insights-grid > li,
.cp-insights-grid > .wp-block-post { margin: 0; }

.cp-insight-card {
  display: flex !important;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--cp-border);
  border-radius: 12px;
  overflow: hidden;
  height: 100%;
  transition: box-shadow var(--cp-dur-base) var(--cp-ease-out);
}
.cp-insight-card:hover { box-shadow: var(--cp-shadow-2); }
/* media 16:9 in cima */
.cp-insight-card__media { margin: 0 !important; }
.cp-insight-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* corpo */
.cp-insight-card__body {
  padding: 20px 22px 24px !important;
  display: flex; flex-direction: column; gap: 8px;
  flex: 1;
}
.cp-insight-card__cat {
  font-family: var(--cp-font-display);
  font-weight: 700; font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--cp-brand-700);
}
.cp-insight-card__cat a { color: inherit; text-decoration: none; }
.cp-insight-card__title {
  font-family: var(--cp-font-display);
  font-weight: 700;
  font-size: 19px !important;
  line-height: 1.3;
  letter-spacing: -0.01em;
  color: var(--cp-brand-900);
  margin: 0 !important;
}
.cp-insight-card__title a { color: inherit; text-decoration: none; }
.cp-insight-card__title a:hover { color: var(--cp-brand-700); }
.cp-insight-card__excerpt {
  font-size: 14px; line-height: 1.6; color: var(--cp-fg-2); margin: 0;
}
.cp-insight-card__excerpt p { margin: 0; }
.cp-insight-card__date {
  margin-top: auto;
  font-family: var(--cp-font-display);
  font-weight: 700; font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--cp-fg-3);
}
.cp-insight-card__date time { color: inherit; }
/* paginazione */
.cp-pagination { margin-top: 48px; display: flex; gap: 12px; justify-content: center; align-items: center; }
.cp-pagination .wp-block-query-pagination-numbers,
.cp-pagination a, .cp-pagination .page-numbers {
  font-family: var(--cp-font-display); font-weight: 700; color: var(--cp-brand-700); text-decoration: none;
}
.cp-pagination .page-numbers.current { color: var(--cp-brand-900); }

@media (max-width: 900px) {
  .cp-insights-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
  .cp-insights-grid { grid-template-columns: 1fr; }
}

/* === Thank you page (/grazie/) === */
.cp-grazie { padding: 96px 0; }
.cp-grazie__inner { text-align: center; max-width: 640px; }
.cp-grazie__icon {
  width: 88px; height: 88px; margin: 0 auto 24px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 50%;
  background: var(--cp-brand-100);
  color: var(--cp-brand-700);
}
.cp-grazie .cp-eb__label { display: block; margin-bottom: 12px; }
.cp-grazie__title {
  font-family: var(--cp-font-display);
  font-weight: 900;
  font-size: clamp(30px, 4vw, 44px);
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--cp-brand-900);
  margin: 0 0 18px;
}
.cp-grazie__title em { font-style: normal; color: var(--cp-brand-700); }
.cp-grazie__lead {
  font-size: 18px; line-height: 1.65; color: var(--cp-fg-2);
  margin: 0 auto 32px; max-width: 52ch;
}
.cp-grazie__actions {
  display: flex; gap: 14px; justify-content: center; flex-wrap: wrap;
  margin-bottom: 28px;
}
.cp-grazie__note {
  font-size: 14px; color: var(--cp-fg-3); line-height: 1.6;
  margin: 0 auto; max-width: 48ch;
}
.cp-grazie__note a { color: var(--cp-brand-700); }

/* === Case study meta strip (single) === */
.cp-cs-meta {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  border-top: 1px solid var(--cp-border);
  border-bottom: 1px solid var(--cp-border);
  margin: 32px 0 48px;
}
.cp-cs-meta__item {
  padding: 18px 20px;
  border-right: 1px solid var(--cp-border);
}
.cp-cs-meta__item:last-child { border-right: 0; }
.cp-cs-meta__lab {
  display: block;
  font-family: var(--cp-font-display);
  font-weight: 700;
  font-size: 10.5px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--cp-brand-700);
  margin-bottom: 4px;
}
.cp-cs-meta__val { font-size: 15px; color: var(--cp-ink); }

/* === Hero CTA group === */
.cp-hero__ctas { display: flex; gap: 12px; flex-wrap: wrap; }

/* === Responsive overrides globali === */
@media (max-width: 960px) {
  .cp-hero {
    grid-template-columns: 1fr !important;
    min-height: 0 !important;
  }
  .cp-hero__copy {
    padding: clamp(40px, 8vw, 64px) var(--cp-gutter) clamp(28px, 5vw, 40px) var(--cp-gutter) !important;
    max-width: 100% !important;
    margin-left: 0 !important;
  }
  .cp-hero__image {
    min-height: clamp(220px, 40vh, 360px);
    width: 100%;
  }
  .cp-dual { grid-template-columns: 1fr !important; }
  .cp-courses { grid-template-columns: 1fr !important; }
  .cp-cs-grid { grid-template-columns: 1fr !important; }
  .cp-cs-hero { grid-template-columns: 1fr !important; gap: 18px; padding-left: 18px; }
  .cp-cs-hero__title { font-size: 30px; }
  .cp-cta__inner { grid-template-columns: 1fr !important; }
  .cp-ftr__grid { grid-template-columns: 1fr 1fr !important; gap: 32px !important; }
  .cp-method { grid-template-columns: 1fr !important; }
  .cp-team { grid-template-columns: repeat(2, 1fr) !important; }
  .cp-luciano { grid-template-columns: 1fr !important; }
}
@media (max-width: 560px) {
  .cp-ftr__grid { grid-template-columns: 1fr !important; gap: 28px !important; }
  .cp-team { grid-template-columns: 1fr !important; }
  .cp-hdr__inner { gap: 12px; flex-wrap: wrap; padding: 12px 0; }
  .cp-hdr__logo { height: 32px; }
}

/* === Mobile nav toggle ===
   Su mobile il menu si comprime in un toggle. Pure CSS via :target / checkbox
   sarebbe più "magico" — qui usiamo <details> nativo (semantica + zero JS). */
.cp-mobile-toggle { display: none; }
@media (max-width: 900px) {
  .cp-nav {
    display: none !important;
  }
  .cp-mobile-toggle {
    display: block;
    margin-left: auto;
  }
  .cp-mobile-toggle summary {
    list-style: none;
    cursor: pointer;
    width: 40px; height: 40px;
    display: flex; align-items: center; justify-content: center;
    border: 1px solid var(--cp-border);
    background: #fff;
  }
  .cp-mobile-toggle summary::-webkit-details-marker { display: none; }
  .cp-mobile-toggle summary::before {
    content: "";
    width: 18px; height: 12px;
    background:
      linear-gradient(var(--cp-ink), var(--cp-ink)) top/100% 2px no-repeat,
      linear-gradient(var(--cp-ink), var(--cp-ink)) center/100% 2px no-repeat,
      linear-gradient(var(--cp-ink), var(--cp-ink)) bottom/100% 2px no-repeat;
  }
  .cp-mobile-toggle[open] summary::before {
    background:
      linear-gradient(var(--cp-ink), var(--cp-ink)) center/100% 2px no-repeat;
  }
  .cp-mobile-menu {
    position: absolute;
    top: 100%;
    left: 0; right: 0;
    background: #fff;
    border-top: 1px solid var(--cp-border);
    border-bottom: 1px solid var(--cp-border);
    padding: 8px 0;
    box-shadow: var(--cp-shadow-2);
    z-index: 100;
  }
  .cp-mobile-menu a {
    display: block;
    padding: 14px clamp(16px, 4vw, 32px);
    font-family: var(--cp-font-body);
    font-size: 15px;
    font-weight: 500;
    color: var(--cp-fg-1);
    border-bottom: 1px solid var(--cp-gray-100);
  }
  .cp-mobile-menu a:hover { background: var(--cp-warm-050); color: var(--cp-brand-700); text-decoration: none; }
  .cp-mobile-menu .cp-btn {
    margin: 12px clamp(16px, 4vw, 32px) 16px;
    display: inline-flex;
  }
  .cp-hdr { position: relative; }
}

/* === Contact CTA: layout flex grid (era inline nel mockup) === */
.cp-cta__form {
  display: flex; flex-direction: column; gap: 12px;
}
.cp-cta__form input {
  padding: 12px 14px;
  border: 1px solid rgba(255,255,255,0.2);
  background: rgba(255,255,255,0.05);
  color: #fff;
  font-family: var(--cp-font-body);
  font-size: 14px;
  outline: none;
}
.cp-cta__form input::placeholder { color: rgba(255,255,255,0.55); }
.cp-cta__form input:focus { border-color: var(--cp-brand-400); }

/* === Consulenza: strip settori sotto credenziali === */
.cp-consult-sectors {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  margin-top: 32px;
  padding-top: 28px;
  border-top: 1px solid var(--cp-border);
}
.cp-sectors__label {
  font-family: var(--cp-font-display);
  font-weight: 700;
  font-size: 10.5px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--cp-fg-3);
  white-space: nowrap;
}
.cp-sectors__tags { display: flex; flex-wrap: wrap; gap: 8px; }
.cp-sector-tag {
  font-family: var(--cp-font-body);
  font-size: 13px;
  color: var(--cp-fg-2);
  background: #fff;
  border: 1px solid var(--cp-border);
  padding: 5px 12px;
  border-radius: 2px;
}
@media (max-width: 640px) { .cp-consult-sectors { flex-direction: column; align-items: flex-start; gap: 10px; } }

/* === Consulenza risultati (sezione dark) === */
.cp-result-intro {
  margin-bottom: 56px;
}
.cp-result-intro__body {
  font-size: 17px;
  line-height: 1.65;
  color: rgba(255,255,255,0.68);
  margin-top: 16px;
  max-width: 68ch;
}
.cp-results {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2px;
  background: rgba(255,255,255,0.08);
}
.cp-result {
  background: var(--cp-brand-900);
  padding: 48px 44px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  border-left: 3px solid var(--cp-brand-500);
}
.cp-result__eyebrow {
  font-family: var(--cp-font-display);
  font-weight: 900;
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--cp-brand-300);
}
.cp-result__h {
  font-family: var(--cp-font-display);
  font-weight: 800;
  font-size: clamp(22px, 2.4vw, 28px);
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: #fff;
  margin: 0;
}
.cp-result__p {
  font-size: 15px;
  line-height: 1.65;
  color: rgba(255,255,255,0.72);
  margin: 0;
  flex: 1;
}
.cp-result__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding-top: 20px;
  border-top: 1px solid rgba(255,255,255,0.1);
}
.cp-result__sector,
.cp-result__type {
  font-family: var(--cp-font-display);
  font-weight: 700;
  font-size: 10.5px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: 2px;
}
.cp-result__sector {
  background: rgba(255,255,255,0.1);
  color: rgba(255,255,255,0.8);
}
.cp-result__type {
  background: rgba(var(--cp-brand-400-rgb, 74,144,194),0.18);
  color: var(--cp-brand-300);
}
.cp-result-footnote {
  margin-top: 48px;
  font-size: 14px;
  color: rgba(255,255,255,0.5);
  text-align: right;
}
.cp-result-footnote__link {
  color: var(--cp-brand-300);
  text-decoration: underline;
  text-underline-offset: 3px;
}
@media (max-width: 760px) {
  .cp-results { grid-template-columns: 1fr; }
  .cp-result { padding: 32px 28px; }
}

/* === Coaching: processo 3 step === */
.cp-coaching-process {
  display: grid;
  grid-template-columns: 1fr auto 1fr auto 1fr;
  align-items: start;
  gap: 0;
  margin-bottom: 16px;
}
.cp-cprocess__step {
  background: var(--cp-warm-050);
  border: 1px solid var(--cp-border);
  padding: 36px 32px;
  height: 100%;
}
.cp-cprocess__arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 20px;
  font-size: 24px;
  color: var(--cp-brand-700);
  align-self: center;
  margin-top: 0;
}
.cp-cprocess__num {
  font-family: var(--cp-font-display);
  font-weight: 900;
  font-size: 13px;
  letter-spacing: 0.18em;
  color: var(--cp-brand-700);
  margin-bottom: 14px;
}
.cp-cprocess__h {
  font-family: var(--cp-font-display);
  font-weight: 800;
  font-size: 20px;
  line-height: 1.2;
  color: var(--cp-ink);
  margin: 0 0 12px;
}
.cp-cprocess__p {
  font-size: 14px;
  line-height: 1.6;
  color: var(--cp-fg-2);
  margin: 0;
}
@media (max-width: 760px) {
  .cp-coaching-process {
    grid-template-columns: 1fr;
  }
  .cp-cprocess__arrow { padding: 12px 0; font-size: 20px; transform: rotate(90deg); }
}

/* === Coaching: 3 formati percorso === */
.cp-cformats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border-top: 1px solid var(--cp-border);
  border-left: 1px solid var(--cp-border);
}
.cp-cformat {
  border-right: 1px solid var(--cp-border);
  border-bottom: 1px solid var(--cp-border);
  padding: 40px 36px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  background: #fff;
  position: relative;
}
.cp-cformat--featured {
  background: var(--cp-brand-900);
  border-color: var(--cp-brand-900);
}
.cp-cformat__badge {
  position: absolute;
  top: -1px; right: 28px;
  background: var(--cp-brand-700);
  color: #fff;
  font-family: var(--cp-font-display);
  font-weight: 700;
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 4px 10px;
}
.cp-cformat__dur {
  font-family: var(--cp-font-display);
  font-weight: 900;
  font-size: 13px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--cp-brand-700);
}
.cp-cformat--featured .cp-cformat__dur { color: var(--cp-brand-300); }
.cp-cformat__h {
  font-family: var(--cp-font-display);
  font-weight: 800;
  font-size: 22px;
  line-height: 1.2;
  color: var(--cp-ink);
  margin: 0;
}
.cp-cformat--featured .cp-cformat__h { color: #fff; }
.cp-cformat__p {
  font-size: 14px;
  line-height: 1.6;
  color: var(--cp-fg-2);
  margin: 0;
  flex: 1;
}
.cp-cformat--featured .cp-cformat__p { color: rgba(255,255,255,0.72); }
.cp-cformat__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-top: 16px;
  border-top: 1px solid var(--cp-border);
}
.cp-cformat--featured .cp-cformat__list { border-top-color: rgba(255,255,255,0.15); }
.cp-cformat__list li {
  font-size: 13px;
  line-height: 1.45;
  color: var(--cp-fg-2);
  padding-left: 18px;
  position: relative;
}
.cp-cformat__list li::before {
  content: "";
  position: absolute; left: 0; top: 8px;
  width: 8px; height: 1px;
  background: var(--cp-brand-700);
}
.cp-cformat--featured .cp-cformat__list li { color: rgba(255,255,255,0.65); }
.cp-cformat--featured .cp-cformat__list li::before { background: var(--cp-brand-300); }
@media (max-width: 760px) { .cp-cformats { grid-template-columns: 1fr; } }

/* === Coaching: prova numerica (300+ coachee) === */
.cp-coaching-proof {
  display: grid;
  grid-template-columns: auto 1px 1fr;
  gap: 56px;
  align-items: center;
  margin-top: 72px;
  padding-top: 56px;
  border-top: 1px solid var(--cp-border);
}
.cp-coaching-proof__stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  white-space: nowrap;
}
.cp-coaching-proof__num {
  font-family: var(--cp-font-display);
  font-weight: 900;
  font-size: clamp(64px, 8vw, 96px);
  line-height: 1;
  letter-spacing: -0.03em;
  color: var(--cp-brand-700);
}
.cp-coaching-proof__label {
  font-family: var(--cp-font-display);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--cp-fg-3);
  margin-top: 8px;
  max-width: 160px;
  text-align: center;
  line-height: 1.4;
}
.cp-coaching-proof__divider {
  width: 1px;
  height: 120px;
  background: var(--cp-border);
  align-self: center;
}
.cp-coaching-proof__copy p {
  font-size: 16px;
  line-height: 1.7;
  color: var(--cp-fg-2);
  margin: 0 0 16px;
}
.cp-coaching-proof__copy p:last-child { margin: 0; }
@media (max-width: 760px) {
  .cp-coaching-proof {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .cp-coaching-proof__divider { width: 60px; height: 1px; }
}

/* === Pagina /contatti/ - grid 2 colonne form + info === */
.cp-contact-grid {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 80px;
  align-items: flex-start;
}
@media (max-width: 960px) { .cp-contact-grid { grid-template-columns: 1fr; gap: 48px; } }

/* === Coaching clients strip (marquee su navy) === */
.cp-coaching-clients {
  background: var(--cp-brand-900);
  padding: clamp(40px, 5vw, 64px) 0;
  overflow: hidden;
}
.cp-coaching-clients .cp-eb__label {
  color: var(--cp-brand-300);
}
.cp-marquee-wrap {
  overflow: hidden;
  width: 100%;
  position: relative;
}
.cp-marquee-wrap::before,
.cp-marquee-wrap::after {
  content: "";
  position: absolute;
  top: 0; bottom: 0;
  width: 120px;
  z-index: 2;
  pointer-events: none;
}
.cp-marquee-wrap::before {
  left: 0;
  background: linear-gradient(to right, var(--cp-brand-900) 0%, transparent 100%);
}
.cp-marquee-wrap::after {
  right: 0;
  background: linear-gradient(to left, var(--cp-brand-900) 0%, transparent 100%);
}
.cp-marquee {
  display: flex;
  gap: 28px;
  width: max-content;
  animation: cpMarquee 40s linear infinite;
}
@keyframes cpMarquee {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
.cp-marquee:hover { animation-play-state: paused; }
.cp-marquee__item {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 120px;
  width: 220px;
  flex-shrink: 0;
  background: #fff;
  border-radius: 6px;
  padding: 24px 28px;
  transition: transform var(--cp-dur-base) var(--cp-ease-out);
}
.cp-marquee__item:hover { transform: translateY(-3px); }
.cp-marquee__item img {
  /* Tutti i PNG sono trimmati con padding uniforme, quindi l'altezza
     fissa basta a normalizzare la dimensione ottica. max-width alto
     (180px) per non strozzare i wordmark larghi sotto l'altezza-target. */
  height: 44px !important;
  max-height: 44px !important;
  max-width: 180px !important;
  width: auto;
  object-fit: contain;
  display: block;
}
/* Loghi verticali (marchio sopra + testo sotto): a 44px illeggibili. */
.cp-marquee__item img[alt="Governo Italiano"] {
  height: 64px !important;
  max-height: 64px !important;
}
@media (prefers-reduced-motion: reduce) {
  .cp-marquee { animation: none; }
}

/* =============================================================================
   Article typography — corpo articoli blog (single.html .wp-block-post-content)
   Resa editoriale uniforme per: post vecchi (blocchi Gutenberg .wp-block-heading),
   post recenti (HTML grezzo: <h2>/<p>/<ul> nudi) e post futuri.
   Scope: solo dentro il contenuto articolo, NON tocca i pattern .cp-section.
   ============================================================================= */
.cp-article-main .wp-block-post-content {
  font-family: var(--cp-font-body);
  font-size: 18px;
  line-height: 1.75;
  color: var(--cp-fg-1);
}

/* larghezza di lettura confortevole; le immagini/figure full-bleed restano larghe */
.cp-article-main .wp-block-post-content > p,
.cp-article-main .wp-block-post-content > ul,
.cp-article-main .wp-block-post-content > ol,
.cp-article-main .wp-block-post-content > h2,
.cp-article-main .wp-block-post-content > h3,
.cp-article-main .wp-block-post-content > h4,
.cp-article-main .wp-block-post-content > blockquote,
.cp-article-main .wp-block-post-content > .wp-block-heading,
.cp-article-main .wp-block-post-content > .wp-block-list {
  max-width: 72ch;
  margin-inline: auto;
}

/* paragrafi: ritmo verticale */
.cp-article-main .wp-block-post-content p {
  margin: 0 0 1.4em;
}

/* heading in-articolo: scala ridotta rispetto agli h2/h3 da sezione (40/32px) */
.cp-article-main .wp-block-post-content h2,
.cp-article-main .wp-block-post-content h2.wp-block-heading {
  font-family: var(--cp-font-display);
  font-size: clamp(24px, 2.4vw, 30px);
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -0.01em;
  color: var(--cp-brand-900);
  margin: 2em 0 0.6em;
}
.cp-article-main .wp-block-post-content h3,
.cp-article-main .wp-block-post-content h3.wp-block-heading {
  font-family: var(--cp-font-display);
  font-size: clamp(20px, 1.8vw, 23px);
  font-weight: 700;
  line-height: 1.3;
  color: var(--cp-brand-900);
  margin: 1.6em 0 0.5em;
}
.cp-article-main .wp-block-post-content h4,
.cp-article-main .wp-block-post-content h4.wp-block-heading {
  font-family: var(--cp-font-display);
  font-size: 19px;
  font-weight: 600;
  line-height: 1.35;
  color: var(--cp-brand-900);
  margin: 1.4em 0 0.4em;
}
/* primo heading senza margine extra sopra */
.cp-article-main .wp-block-post-content > h2:first-child,
.cp-article-main .wp-block-post-content > h3:first-child { margin-top: 0; }

/* liste */
.cp-article-main .wp-block-post-content ul,
.cp-article-main .wp-block-post-content ol {
  margin: 0 0 1.4em;
  padding-left: 1.4em;
}
.cp-article-main .wp-block-post-content li { margin: 0 0 0.5em; }
.cp-article-main .wp-block-post-content li > ul,
.cp-article-main .wp-block-post-content li > ol { margin: 0.5em 0 0; }

/* link in-articolo.
   IMPORTANTE: escludere i link-componente (.cp-btn e le CTA __cta dei pattern).
   Le pillar page renderizzano i pattern DENTRO .cp-article-main .wp-block-post-content, quindi
   questa regola (specificità 0,1,1) sovrascriveva il color dei bottoni-link
   (.cp-btn--primary, .cp-bridge__cta, ...) → testo brand-700 su sfondo brand-700
   = blu-su-blu illeggibile. Lo scope :not() lascia gli editorial link, libera i
   componenti che definiscono il proprio colore. */
.cp-article-main .wp-block-post-content a:not(.cp-btn):not([class*="__cta"]) {
  color: var(--cp-brand-700);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.cp-article-main .wp-block-post-content a:not(.cp-btn):not([class*="__cta"]):hover { color: var(--cp-brand-900); }

/* citazioni */
.cp-article-main .wp-block-post-content blockquote {
  margin: 1.6em auto;
  padding: 4px 0 4px 24px;
  border-left: 3px solid var(--cp-brand-700);
  color: var(--cp-fg-2);
  font-style: italic;
}
.cp-article-main .wp-block-post-content blockquote p:last-child { margin-bottom: 0; }

/* immagini e figure: centrate, con respiro; le grandi vanno a tutta colonna */
.cp-article-main .wp-block-post-content figure,
.cp-article-main .wp-block-post-content img {
  margin: 1.8em auto;
  border-radius: 8px;
}
.cp-article-main .wp-block-post-content figure img { margin: 0; }
.cp-article-main .wp-block-post-content figcaption {
  font-size: 14px;
  color: var(--cp-fg-3);
  text-align: center;
  margin-top: 8px;
}

/* tabelle */
.cp-article-main .wp-block-post-content table {
  width: 100%;
  max-width: 72ch;
  margin: 1.6em auto;
  border-collapse: collapse;
  font-size: 16px;
}
.cp-article-main .wp-block-post-content th,
.cp-article-main .wp-block-post-content td {
  border: 1px solid var(--cp-border);
  padding: 10px 14px;
  text-align: left;
  vertical-align: top;
}
.cp-article-main .wp-block-post-content th { background: var(--cp-warm-050); font-weight: 600; }

/* grassetti coerenti */
.cp-article-main .wp-block-post-content strong, .cp-article-main .wp-block-post-content b { font-weight: 600; color: var(--cp-brand-900); }

@media (max-width: 640px) {
  .cp-article-main .wp-block-post-content { font-size: 17px; }
}
