/* Pages éditoriales — déclinaison du système Accueil / Création validé.
   Chargée après le socle commun. Aucun contenu, ordre Hn, lien ou état JS modifié.
   !important est limité aux interlignes Hn historiquement forcés et aux images
   de fond inline / à la bordure CF7 historiquement forcée par custom.css. */

body.ws24-pages-style-valide #contenu-principal :is(
  .ws24-about-page, .ws24-contact-page, .ws24-legal-page, .ws24-blog-page,
  .ws24-post, .ws24-work-page, .ws24-case-study, .ws24-cocon-static, .ws24-ppf
) {
  font-family: inherit;
  font-feature-settings: normal;
  color: var(--creation-copy);
  background: #fff;
}

body.ws24-pages-style-valide #contenu-principal :is(
  .ws24-about-page, .ws24-contact-page, .ws24-legal-page, .ws24-blog-page,
  .ws24-post, .ws24-work-page, .ws24-case-study, .ws24-cocon-static, .ws24-ppf
) :is(p, li) {
  font-size: var(--creation-copy-size);
  line-height: 1.65;
  font-weight: 400;
  letter-spacing: 0;
}

/* Les tailles suivent la fonction visuelle, jamais le seul niveau de balise. */
body.ws24-pages-style-valide #contenu-principal :is(
  .ws24-about-page__hero h1, .ws24-contact-page__hero h1,
  .ws24-legal-page__hero h1, .ws24-blog-page__hero h1,
  .ws24-work-hero__title, .ws24-case-study__hero h1,
  .ws24-post__title, .ws24-cocon-static .article-title, .ws24-ppf .ppf-title
) {
  font-family: inherit;
  font-size: 65px;
  font-weight: 800;
  line-height: 1.12 !important;
  letter-spacing: 0;
  text-transform: none;
  color: var(--creation-ink);
  text-wrap: balance;
}

body.ws24-pages-style-valide #contenu-principal :is(
  .ws24-about-page__cta h2, .ws24-legal-page__cta h2, .ws24-blog-page__cta h2,
  .ws24-work-method__title, .ws24-work-section-head h2, .ws24-work-proof h2,
  .ws24-work-final-cta h2, .ws24-case-study__section h2,
  .ws24-case-study__cta h2, .ws24-post__cta h2, .ws24-ppf .ppf-final-cta h2,
  .ws24-ppf .ppf-pages-linked__head h2
) {
  font-family: inherit;
  font-size: 48px;
  font-weight: 800;
  line-height: 1.2 !important;
  letter-spacing: 0;
  text-transform: none;
  color: var(--creation-ink);
  margin-bottom: 24px;
  text-wrap: balance;
}

body.ws24-pages-style-valide #contenu-principal :is(
  .ws24-about-page .message-box h2, .ws24-legal-page__article h3,
  .ws24-post__content h2, .entry-content h2,
  .ws24-cocon-static .article-body h2, .ws24-ppf .ppf-body h2
) {
  font-family: inherit;
  font-size: 36px;
  font-weight: 800;
  line-height: 1.25 !important;
  letter-spacing: 0;
  text-transform: none;
  color: var(--creation-ink);
}

body.ws24-pages-style-valide #contenu-principal :is(
  .ws24-about-page__card h4, .ws24-contact-page__coords h4,
  .ws24-contact-page__step h4, .ws24-legal-page__identity-card h4,
  .ws24-legal-page__article h4, .ws24-blog-page__title,
  .ws24-blog-page__empty h2, .ws24-work-method-card h3,
  .ws24-work-proof-card h3, .ws24-work-project__topline h3,
  .ws24-case-study__phase-grid h3, .ws24-case-study__compare-set > h3,
  .ws24-case-study__evidence h3, .ws24-post__content :is(h3,h4),
  .entry-content :is(h3,h4), .ws24-post__toc h2, .ws24-post__side-card h2,
  .ws24-post__related-card h3, .ws24-cocon-static .article-body :is(h3,h4,h5),
  .ws24-cocon-static .sidebar :is(h4,h5), .ws24-cocon-static .diag-banner h4,
  .ws24-ppf .ppf-body :is(h3,h4,h5), .ws24-ppf .ppf-sidebar :is(h2,h3),
  .ws24-ppf .ppf-pages-linked__card h3
) {
  font-family: inherit;
  font-size: 24px;
  font-weight: 800;
  line-height: 1.2 !important;
  letter-spacing: 0;
  text-transform: none;
  color: var(--creation-ink);
}

body.ws24-pages-style-valide #contenu-principal :is(
  .ws24-about-page__hero small, .ws24-contact-page__hero small,
  .ws24-legal-page__hero small, .ws24-blog-page__hero small,
  .ws24-about-page .message-box h4, .ws24-about-page__card > span,
  .ws24-contact-page__step > span, .ws24-work-eyebrow, .ws24-work-section-kicker,
  .ws24-case-study__eyebrow, .ws24-case-study__kicker,
  .ws24-case-study__phase-grid article > span, .ws24-post__badge,
  .ws24-cocon-static .tag-badge, .ws24-ppf .ppf-badge,
  .ws24-ppf .ppf-pages-linked__eyebrow
) {
  font-family: inherit;
  font-size: 13px;
  line-height: 1.5 !important;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #666;
}

/* Heroes clairs : mêmes respiration, largeur et contraste que Création. */
body.ws24-pages-style-valide #contenu-principal :is(
  .ws24-about-page__hero, .ws24-contact-page__hero,
  .ws24-legal-page__hero, .ws24-blog-page__hero, .ws24-post__hero
) {
  /* Ces cinq templates portent une image de fond inline historique. */
  background-image: none !important;
  background-color: #fff;
  padding: 50px 0 40px;
  color: var(--creation-ink);
  background-attachment: scroll;
}

body.ws24-pages-style-valide #contenu-principal :is(
  .ws24-about-page__hero, .ws24-contact-page__hero,
  .ws24-legal-page__hero, .ws24-blog-page__hero, .ws24-post__hero
)::before {
  background: transparent;
}
body.ws24-pages-style-valide #contenu-principal .ws24-post__hero::after { display: none; }

body.ws24-pages-style-valide #contenu-principal :is(
  .ws24-about-page__hero, .ws24-contact-page__hero,
  .ws24-legal-page__hero, .ws24-blog-page__hero
) > .container { max-width: 1216px; }

body.ws24-pages-style-valide #contenu-principal :is(
  .ws24-about-page__hero, .ws24-contact-page__hero,
  .ws24-legal-page__hero, .ws24-blog-page__hero
) h1 { margin: 0 0 24px; }

body.ws24-pages-style-valide #contenu-principal :is(
  .ws24-about-page__hero, .ws24-contact-page__hero,
  .ws24-legal-page__hero, .ws24-blog-page__hero
) p {
  max-width: 800px;
  margin-inline: auto;
  color: #535d6c;
}

body.ws24-pages-style-valide #contenu-principal :is(
  .ws24-about-page__hero, .ws24-contact-page__hero,
  .ws24-legal-page__hero, .ws24-blog-page__hero
) small {
  display: inline-block;
  margin-bottom: 16px;
}

/* Plans et contrastes : les contenus restent dans leurs composants existants. */
body.ws24-pages-style-valide #contenu-principal :is(
  .ws24-about-page__card, .ws24-about-page .post-media,
  .ws24-contact-page__reassurance, .ws24-contact-page__coords,
  .ws24-contact-page__form-card, .ws24-contact-page__step,
  .ws24-legal-page__identity-card, .ws24-legal-page__article,
  .ws24-blog-page__card, .ws24-blog-page__empty,
  .ws24-work-method-card, .ws24-work-project, .ws24-work-proof-card,
  .ws24-case-study__scope, .ws24-case-study__compare-grid figure,
  .ws24-case-study__results-grid article,
  .ws24-post__article, .ws24-post__toc, .ws24-post__side-card,
  .ws24-post__related-card, .ws24-post__visual,
  .ws24-cocon-static :is(.toc,.dossier-card,.related-card),
  .ws24-ppf :is(.ppf-toc,.ppf-sidebar-card,.ppf-related-sidebar,.ppf-pages-linked__card)
) {
  border: 1px solid #edf0f3;
  border-radius: 26px;
  background: #fff;
  box-shadow: var(--creation-shadow);
}

body.ws24-pages-style-valide #contenu-principal :is(
  .ws24-about-page__card, .ws24-contact-page__coords,
  .ws24-contact-page__form-card, .ws24-legal-page__article,
  .ws24-blog-page__card-body, .ws24-blog-page__empty
) { padding: 32px; }

body.ws24-pages-style-valide #contenu-principal :is(
  .ws24-about-page__card, .ws24-about-page .message-box,
  .ws24-contact-page__coords, .ws24-contact-page__step,
  .ws24-legal-page__identity-card, .ws24-legal-page__article,
  .ws24-blog-page__card, .ws24-blog-page__empty,
  .ws24-work-project, .ws24-work-method-card, .ws24-work-proof-card,
  .ws24-case-study__evidence
) :is(p,li) { color: var(--creation-copy); }

body.ws24-pages-style-valide #contenu-principal :is(
  .ws24-about-page__proof, .ws24-about-page .lb,
  .ws24-contact-page__after, .ws24-blog-page__listing,
  .ws24-legal-page .section.lb, .ws24-work-method, .ws24-work-section--alt
) {
  background: #fff;
  box-shadow: inset 0 24px 32px -28px rgb(32 38 46 / .24);
}

body.ws24-pages-style-valide #contenu-principal .ws24-about-page__proof .section-title h3 {
  color: var(--creation-ink);
}
body.ws24-pages-style-valide #contenu-principal .ws24-about-page__card li::before,
body.ws24-pages-style-valide #contenu-principal .ws24-contact-page__reassurance li::before {
  background: var(--creation-green);
}
body.ws24-pages-style-valide #contenu-principal .ws24-about-page__results-row .ws24-about-page__card > span {
  display: block;
  color: var(--creation-ink);
  font-size: 24px;
  line-height: 1.2 !important;
  font-weight: 800;
  letter-spacing: 0;
}

/* Listes et cartes plus longues : pas de colonne écrasée à corps 21. */
body.ws24-pages-style-valide #contenu-principal :is(
  .ws24-about-page__cards-row, .ws24-contact-page__steps,
  .ws24-legal-page__identity-grid, .ws24-blog-page__listing > .container > .row,
  .ws24-post__related > .container > .row
) {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 24px;
  margin-inline: 0;
}
body.ws24-pages-style-valide #contenu-principal .ws24-about-page__proof .ws24-about-page__cards-row {
  grid-template-columns: repeat(2,minmax(0,1fr));
}
body.ws24-pages-style-valide #contenu-principal :is(
  .ws24-about-page__cards-row, .ws24-contact-page__steps,
  .ws24-legal-page__identity-grid, .ws24-blog-page__listing > .container > .row,
  .ws24-post__related > .container > .row
)::before,
body.ws24-pages-style-valide #contenu-principal :is(
  .ws24-about-page__cards-row, .ws24-contact-page__steps,
  .ws24-legal-page__identity-grid, .ws24-blog-page__listing > .container > .row,
  .ws24-post__related > .container > .row
)::after { display: none; }

body.ws24-pages-style-valide #contenu-principal :is(
  .ws24-about-page__cards-row, .ws24-contact-page__steps,
  .ws24-legal-page__identity-grid, .ws24-blog-page__listing > .container > .row,
  .ws24-post__related > .container > .row
) > div {
  float: none;
  width: auto;
  min-width: 0;
  margin: 0;
  padding: 0;
}

body.ws24-pages-style-valide #contenu-principal :is(
  .ws24-about-page__card, .ws24-contact-page__step,
  .ws24-legal-page__identity-card, .ws24-blog-page__card
) { height: 100%; margin-bottom: 0; }

/* Contact : styles seulement, champs et mécanisme CF7 strictement conservés. */
body.ws24-pages-style-valide #contenu-principal .ws24-contact-page__form-card .section-title h3 {
  font-size: 36px;
  line-height: 1.25 !important;
}
body.ws24-pages-style-valide #contenu-principal .ws24-contact-page__form-card :is(input[type="text"],input[type="email"],input[type="tel"],input[type="url"],select,textarea) {
  width: 100%;
  max-width: 100%;
  min-height: 55px;
  padding: 14px 18px;
  border: 1px solid #d9dfe5;
  border-radius: 12px;
  background: #fff;
  color: var(--creation-ink);
  font: inherit;
  font-size: var(--creation-copy-size);
  line-height: 1.5;
  letter-spacing: 0;
}
body.ws24-pages-style-valide #contenu-principal .ws24-contact-page__form-card textarea { min-height: 180px; }
body.ws24-pages-style-valide #contenu-principal .ws24-contact-page__form-card :is(input,select,textarea):focus-visible {
  outline: 2px solid var(--creation-green);
  outline-offset: 3px;
}
body.ws24-pages-style-valide #contenu-principal .ws24-contact-page__form-card .wpcf7-submit {
  /* Le sélecteur historique CF7 impose une bordure olive !important. */
  border-color: var(--creation-yellow) !important;
  border-radius: 999px;
  background: var(--creation-yellow);
  color: var(--creation-ink);
  padding: 12px 24px;
  font: inherit;
  font-size: var(--creation-action-size);
  font-weight: 700;
  line-height: 1.55;
  box-shadow: var(--creation-control-shadow);
}
body.ws24-pages-style-valide #contenu-principal .ws24-contact-page__form-card .wpcf7-submit:hover {
  background: #ffd24c;
  color: var(--creation-ink);
}

/* Informations légales : même système, titres de lecture plus compacts. */
body.ws24-pages-style-valide #contenu-principal .ws24-legal-page__article {
  max-width: 980px;
  margin-inline: auto;
  margin-bottom: 28px;
  overflow-wrap: break-word;
}
body.ws24-pages-style-valide #contenu-principal .ws24-legal-page__identity-card { padding: 28px; }
body.ws24-pages-style-valide #contenu-principal .ws24-legal-page__article h3 { margin-bottom: 24px; }
body.ws24-pages-style-valide #contenu-principal .ws24-legal-page__summary ul { gap: 12px 32px; }
body.ws24-pages-style-valide #contenu-principal .ws24-legal-page__summary a {
  color: var(--creation-ink);
  text-decoration-color: var(--creation-yellow);
}

/* Blog : titre de carte 24 px ; les titres de section gardent le rôle 48 px. */
body.ws24-pages-style-valide #contenu-principal .ws24-blog-page__card { overflow: hidden; }
body.ws24-pages-style-valide #contenu-principal .ws24-blog-page__card-body { padding: 28px; }
body.ws24-pages-style-valide #contenu-principal .ws24-blog-page__title { margin-bottom: 18px; }
body.ws24-pages-style-valide #contenu-principal .ws24-blog-page__title a { color: inherit; }
body.ws24-pages-style-valide #contenu-principal .ws24-blog-page__excerpt {
  display: block;
  overflow: visible;
  -webkit-line-clamp: unset;
  color: var(--creation-copy);
}
body.ws24-pages-style-valide #contenu-principal :is(.ws24-blog-page__fallback,.ws24-post__related-fallback) {
  background: #fff3cb;
  color: var(--creation-ink);
  font-weight: 800;
  letter-spacing: 0;
}
body.ws24-pages-style-valide #contenu-principal .ws24-blog-page__pagination .page-numbers.current {
  color: var(--creation-ink);
  border-color: var(--creation-yellow);
  background: var(--creation-yellow);
}

/* Portfolio et études : les médias et leur ordre restent ceux de l’existant. */
body.ws24-pages-style-valide #contenu-principal .ws24-work-page { padding-top: 0; }
body.ws24-pages-style-valide #contenu-principal :is(.ws24-work-container,.ws24-case-study__container) {
  width: 100%;
  max-width: var(--creation-page-width);
  margin-inline: auto;
  padding-inline: var(--creation-page-gutter);
}
body.ws24-pages-style-valide #contenu-principal :is(.ws24-work-hero,.ws24-case-study__hero) {
  padding: 50px 0 40px;
  background: #fff;
  color: var(--creation-ink);
}
body.ws24-pages-style-valide #contenu-principal :is(.ws24-work-hero__grid,.ws24-case-study__hero-grid) { gap: 48px; }
body.ws24-pages-style-valide #contenu-principal .ws24-work-hero__grid {
  grid-template-columns: minmax(0,1.1fr) minmax(0,.9fr);
}
body.ws24-pages-style-valide #contenu-principal .ws24-work-hero__title { max-width: none; }
body.ws24-pages-style-valide #contenu-principal .ws24-work-title-accent { background: var(--creation-yellow); }
body.ws24-pages-style-valide #contenu-principal :is(.ws24-work-hero__lead,.ws24-case-study__lead) { color: #535d6c; }
body.ws24-pages-style-valide #contenu-principal :is(.ws24-work-shot,.ws24-case-study__compare-grid figure) {
  border-radius: 22px;
  box-shadow: var(--creation-surface-shadow);
}
body.ws24-pages-style-valide #contenu-principal :is(.ws24-work-section,.ws24-work-method,.ws24-work-proof,.ws24-case-study__section) { padding: 88px 0; }
body.ws24-pages-style-valide #contenu-principal .ws24-work-section-head { max-width: 1000px; margin-bottom: 42px; }
body.ws24-pages-style-valide #contenu-principal .ws24-work-project-list { gap: 32px; }
body.ws24-pages-style-valide #contenu-principal .ws24-work-project__body { gap: 20px; }
body.ws24-pages-style-valide #contenu-principal .ws24-work-project__topline { flex-wrap: wrap; }
body.ws24-pages-style-valide #contenu-principal .ws24-work-project__topline h3 { flex: 1 1 230px; }
body.ws24-pages-style-valide #contenu-principal .ws24-work-method-card {
  grid-template-columns: 44px minmax(0,1fr);
  align-items: start;
  padding: 28px;
}
body.ws24-pages-style-valide #contenu-principal :is(.ws24-work-method-card__icon,.ws24-work-proof-card__icon,.ws24-work-final-cta__icon) {
  width: 40px;
  height: 40px;
  background: #fff3cb;
  color: var(--creation-ink);
  border: 1px solid #f3df9f;
  border-radius: 12px;
  font-size: 24px;
}
body.ws24-pages-style-valide #contenu-principal .ws24-work-badge {
  white-space: normal;
  background: #bfe7c9;
  color: var(--creation-ink);
  border-color: transparent;
  border-radius: 7px;
}
body.ws24-pages-style-valide #contenu-principal .ws24-work-tags li { background: #f3f6fa; border-color: #e4e9f0; border-radius: 7px; }
body.ws24-pages-style-valide #contenu-principal .ws24-case-study__scope { color: var(--creation-copy); padding: 32px; }
body.ws24-pages-style-valide #contenu-principal .ws24-case-study__scope-label { color: var(--creation-ink); }
body.ws24-pages-style-valide #contenu-principal .ws24-case-study__metrics { background: var(--creation-yellow); }
body.ws24-pages-style-valide #contenu-principal .ws24-case-study__section--cream { background: #fff8e5; }
body.ws24-pages-style-valide #contenu-principal .ws24-case-study__section--dark { background: var(--creation-ink); color: #fff; }
body.ws24-pages-style-valide #contenu-principal .ws24-case-study__section--dark :is(h2,h3) { color: #fff; }
body.ws24-pages-style-valide #contenu-principal .ws24-case-study__section--dark :is(.ws24-case-study__kicker,.ws24-case-study__phase-grid p) { color: #d5dbe4; }
body.ws24-pages-style-valide #contenu-principal .ws24-case-study__phase-grid article { padding: 28px; border-radius: 26px; }
body.ws24-pages-style-valide #contenu-principal .ws24-case-study__phase-grid article > span { color: var(--creation-yellow); }
body.ws24-pages-style-valide #contenu-principal .ws24-case-study__image-label--after { background: var(--creation-green); }
body.ws24-pages-style-valide #contenu-principal .ws24-case-study__evidence { border-left-color: var(--creation-yellow); background: #fff8e5; border-radius: 0 22px 22px 0; }
body.ws24-pages-style-valide #contenu-principal :is(.ws24-case-study__metrics strong,.ws24-case-study__results-grid strong) {
  font-size: 36px;
  line-height: 1.25;
  font-weight: 800;
  letter-spacing: 0;
  color: var(--creation-ink);
}

/* Articles et guides : largeur de lecture, sommaires et ancres existants. */
body.ws24-pages-style-valide #contenu-principal .ws24-post__hero-inner {
  max-width: var(--creation-page-width);
  padding: 0 var(--creation-page-gutter);
  gap: 48px;
}
body.ws24-pages-style-valide #contenu-principal .ws24-post__excerpt { color: #535d6c; }
body.ws24-pages-style-valide #contenu-principal .ws24-post__visual { backdrop-filter: none; }
body.ws24-pages-style-valide #contenu-principal .ws24-post__visual-media--placeholder { background: #fff3cb; }
body.ws24-pages-style-valide #contenu-principal .ws24-post__visual-media--placeholder span { color: var(--creation-ink); font-weight: 800; letter-spacing: 0; }
body.ws24-pages-style-valide #contenu-principal .ws24-post__badge {
  color: var(--creation-ink);
  border-color: transparent;
  background: #bfe7c9;
}
body.ws24-pages-style-valide #contenu-principal .ws24-post__badge::before { background: var(--creation-green); box-shadow: none; }
body.ws24-pages-style-valide #contenu-principal .ws24-post__main {
  background: #fff;
  margin-top: 0;
  padding: 48px var(--creation-page-gutter) 88px;
}
body.ws24-pages-style-valide #contenu-principal .ws24-post__layout { max-width: 1344px; gap: 32px; grid-template-columns: minmax(0,1fr) 330px; }
body.ws24-pages-style-valide #contenu-principal .ws24-post__content { font-size: var(--creation-copy-size); color: var(--creation-copy); }
body.ws24-pages-style-valide #contenu-principal .ws24-post__content :is(p,li) { color: var(--creation-copy); }
body.ws24-pages-style-valide #contenu-principal .ws24-post__content li::before { color: var(--creation-green); }
body.ws24-pages-style-valide #contenu-principal :is(.ws24-post__side-card--dark,.ws24-cocon-static .diag-card,.ws24-ppf .ppf-sidebar-card) {
  background: #20201e;
  color: #fff;
  border-radius: 26px;
  box-shadow: var(--creation-shadow);
}
body.ws24-pages-style-valide #contenu-principal :is(.ws24-post__side-card--dark,.ws24-cocon-static .diag-card,.ws24-ppf .ppf-sidebar-card) :is(h2,h3,h4) { color: #fff; }
body.ws24-pages-style-valide #contenu-principal :is(.ws24-post__side-card--dark,.ws24-cocon-static .diag-card,.ws24-ppf .ppf-sidebar-card) p { color: #dedcd5; }
body.ws24-pages-style-valide #contenu-principal .ws24-post__sidebar-sticky { top: calc(var(--ws24-header-height,84px) + 24px); }
body.ws24-pages-style-valide #contenu-principal :is(.ws24-post__sidebar-sticky,.ws24-cocon-static .sidebar,.ws24-ppf .ppf-sidebar) {
  max-height: calc(100vh - var(--ws24-header-height,84px) - 48px);
  max-height: calc(100dvh - var(--ws24-header-height,84px) - 48px);
  overflow-y: auto;
  scrollbar-gutter: stable;
}

body.ws24-pages-style-valide #contenu-principal .ws24-cocon-static {
  --bg: #fff;
  --fg: #151515;
  --fg-muted: #4b4b4b;
  --lime: #fbbc05;
  --lime-hover: #ffd24c;
  --lime-soft: #fff3cb;
  --lime-darkest: #23763a;
  --color-accent: #fbbc05;
  --color-highlight-bg: #fff3cb;
  --color-highlight-fg: #151515;
  --font-sans: "WS24 Interphases Reference", Arial, sans-serif;
}
body.ws24-pages-style-valide #contenu-principal .ws24-ppf {
  --ws24-ppf-bg: #fff;
  --ws24-ppf-surface: #fff;
  --ws24-ppf-soft: #f3f6fa;
  --ws24-ppf-text: #4b4b4b;
  --ws24-ppf-text-strong: #151515;
  --ws24-ppf-muted: #4b4b4b;
  --ws24-ppf-accent: #fbbc05;
  --ws24-ppf-accent-dark: #23763a;
}
body.ws24-pages-style-valide #contenu-principal :is(.ws24-cocon-static .container,.ws24-ppf .ppf-container) {
  max-width: var(--creation-page-width);
  width: 100%;
  padding-inline: var(--creation-page-gutter);
}
body.ws24-pages-style-valide #contenu-principal :is(.ws24-cocon-static .article-header,.ws24-ppf .ppf-header) { padding-block: 50px 40px; background: #fff; }
body.ws24-pages-style-valide #contenu-principal :is(.ws24-cocon-static .article-wrap,.ws24-ppf .ppf-layout) {
  grid-template-columns: minmax(0,1fr) 330px;
  gap: 48px;
}
body.ws24-pages-style-valide #contenu-principal :is(.ws24-cocon-static .article-body,.ws24-ppf .ppf-body) {
  min-width: 0;
  font-size: var(--creation-copy-size);
  line-height: 1.65;
  color: var(--creation-copy);
}
body.ws24-pages-style-valide #contenu-principal :is(.ws24-cocon-static .article-body,.ws24-ppf .ppf-body,.entry-content) p { margin-bottom: 24px; }
body.ws24-pages-style-valide #contenu-principal :is(.ws24-cocon-static .article-body,.ws24-ppf .ppf-body,.entry-content) h2 { margin-top: 44px; margin-bottom: 20px; }
body.ws24-pages-style-valide #contenu-principal :is(.ws24-cocon-static .article-body,.ws24-ppf .ppf-body,.entry-content) h3 { margin-top: 32px; margin-bottom: 16px; }
body.ws24-pages-style-valide #contenu-principal :is(.ws24-cocon-static .article-body,.ws24-ppf .ppf-body,.entry-content) :is(a,strong) { color: var(--creation-ink); }
body.ws24-pages-style-valide #contenu-principal :is(.ws24-cocon-static .tag-badge,.ws24-ppf .ppf-badge) { background: #bfe7c9; color: var(--creation-ink); }
body.ws24-pages-style-valide #contenu-principal .ws24-ppf .ppf-badge::before { background: var(--creation-green); }
body.ws24-pages-style-valide #contenu-principal :is(.ws24-cocon-static .sidebar,.ws24-ppf .ppf-sidebar) { top: calc(var(--ws24-header-height,84px) + 24px); }

body.ws24-pages-style-valide #contenu-principal :is(.ws24-cocon-static .diag-banner,.ws24-ppf .ppf-final-cta) {
  background: #fff;
  color: var(--creation-copy);
  border: 1px solid #f3df9f;
  border-radius: 26px;
  padding: 40px 32px;
  box-shadow: var(--creation-shadow);
}
body.ws24-pages-style-valide #contenu-principal .ws24-ppf .ppf-final-cta {
  display: grid;
  grid-template-columns: minmax(0,1fr);
  justify-items: start;
  gap: 28px;
}
body.ws24-pages-style-valide #contenu-principal :is(.ws24-cocon-static .diag-banner,.ws24-ppf .ppf-final-cta) :is(h2,h4) { color: var(--creation-ink); }
body.ws24-pages-style-valide #contenu-principal :is(.ws24-cocon-static .diag-banner,.ws24-ppf .ppf-final-cta) p { color: var(--creation-copy); }
body.ws24-pages-style-valide #contenu-principal :is(.ws24-cocon-static .dark-callout,.ws24-cocon-static .impact-quote,.ws24-ppf .ppf-proof) {
  background: #20201e;
  color: #fff;
  border-left-color: var(--creation-yellow);
}
body.ws24-pages-style-valide #contenu-principal :is(.ws24-cocon-static .dark-callout,.ws24-cocon-static .impact-quote,.ws24-ppf .ppf-proof) :is(p,strong,a,h3,h4) { color: #fff; }
body.ws24-pages-style-valide #contenu-principal :is(
  .ws24-cocon-static .callout-lime,.ws24-cocon-static .insight-card,
  .ws24-cocon-static .deep-link,.ws24-ppf .ppf-callout,
  .ws24-post__content .ws24-post-note,.ws24-post__content .ws24-post-keypoints,
  .ws24-post__content .ws24-post-gbp,.ws24-post__content .ws24-post-cta
) { background: #fff8e5; border-color: #f3df9f; border-radius: 22px; }
body.ws24-pages-style-valide #contenu-principal .ws24-ppf .ppf-hero__visual svg [fill="#bac63e"] { fill: var(--creation-yellow); }
body.ws24-pages-style-valide #contenu-principal :is(.ws24-cocon-static .price-table,.ws24-ppf .ppf-body table,.ws24-post__content table) {
  display: block;
  overflow-x: auto;
  max-width: 100%;
}
body.ws24-pages-style-valide #contenu-principal :is(.ws24-cocon-static .price-table,.ws24-ppf .ppf-body table,.ws24-post__content table) :is(th,td) {
  font-size: var(--creation-meta-size);
  line-height: 1.55;
  color: var(--creation-copy);
}
body.ws24-pages-style-valide #contenu-principal :is(.ws24-cocon-static .price-table,.ws24-ppf .ppf-body table,.ws24-post__content table) th { background: #fff3cb; color: var(--creation-ink); }

/* Métadonnées et contenu auxiliaire — même échelle 18 / 17 que l’accueil. */
body.ws24-pages-style-valide #contenu-principal :is(
  .ws24-legal-page__hero-meta, .ws24-legal-page__hero-meta span,
  .ws24-blog-page__meta, .ws24-blog-page__meta span, .ws24-blog-page__pagination,
  .ws24-work-badge, .ws24-work-tags li, .ws24-case-study__scope dd,
  .ws24-case-study__scope dt, .ws24-case-study__metric-note,
  .ws24-case-study__metrics span, .ws24-case-study__results-grid span,
  .ws24-case-study__compare-grid figcaption, .ws24-case-study__image-label,
  .ws24-post__meta, .ws24-post__visual small, .ws24-post__sidebar :is(p,li,a,small),
  .ws24-post__toc--mobile li, .ws24-post__related-date,
  .ws24-cocon-static .breadcrumbs, .ws24-cocon-static .back-link,
  .ws24-cocon-static .sidebar :is(p,li,a), .ws24-cocon-static .related-card p,
  .ws24-ppf .ppf-breadcrumbs, .ws24-ppf .ppf-meta,
  .ws24-ppf .ppf-sidebar :is(p,li,a), .ws24-ppf .ppf-pages-linked__more
) {
  font-family: inherit;
  font-size: var(--creation-meta-size);
  font-weight: 400;
  line-height: 1.55;
  letter-spacing: 0;
}
body.ws24-pages-style-valide #contenu-principal :is(
  .ws24-post__meta, .ws24-post__visual small, .ws24-post__toc-list a,
  .ws24-post__recent-copy strong, .ws24-cocon-static .toc a,
  .ws24-ppf .ppf-toc a
) { color: var(--creation-copy); }
body.ws24-pages-style-valide #contenu-principal .ws24-post__recent-copy strong { font-size: var(--creation-meta-size); font-weight: 700; letter-spacing: 0; }

/* Passe UX : couleurs contextuelles des informations auxiliaires.
   Les wrappers rendent ces règles prioritaires sur les groupes de rôles :is,
   sans modifier leur police, taille, poids, approche ou interligne. */
body.ws24-pages-style-valide #contenu-principal .ws24-legal-page .ws24-legal-page__hero-meta span,
body.ws24-pages-style-valide #contenu-principal .ws24-legal-page .ws24-legal-page__cta .big-tagline > small,
body.ws24-pages-style-valide #contenu-principal .ws24-contact-page .ws24-contact-page__form-card > p {
  color: var(--creation-copy);
}
body.ws24-pages-style-valide #contenu-principal .ws24-case-study .ws24-case-study__scope dt {
  color: var(--creation-ink);
}
body.ws24-pages-style-valide #contenu-principal .ws24-case-study .ws24-case-study__scope dd {
  color: var(--creation-copy);
}
body.ws24-pages-style-valide #contenu-principal .ws24-case-study .ws24-case-study__scope dl > div {
  grid-template-columns: minmax(112px, max-content) minmax(0, 1fr);
}
body.ws24-pages-style-valide #contenu-principal .ws24-case-study .ws24-case-study__section--dark :is(h2,h3) {
  color: #fff;
}
body.ws24-pages-style-valide #contenu-principal .ws24-case-study .ws24-case-study__section--dark .ws24-case-study__phase-grid article > span {
  color: var(--creation-yellow);
}
body.ws24-pages-style-valide #contenu-principal :is(
  .ws24-cocon-static span.tag-badge,
  .ws24-ppf span.ppf-badge,
  .ws24-post span.ws24-post__badge
) {
  color: var(--creation-ink);
}
body.ws24-pages-style-valide #contenu-principal .ws24-cocon-static .insight-card .insight-num {
  color: var(--creation-green);
}
body.ws24-pages-style-valide #contenu-principal .ws24-ppf .ppf-compare span,
body.ws24-pages-style-valide #contenu-principal .ws24-ppf .ppf-deep-link > span {
  color: var(--creation-copy);
}

/* Les cartes suivent la place nécessaire au texte validé. Trois colonnes
   restent possibles sur une zone large ; elles se recomposent avant de serrer
   les mots. Les expressions sans espace gardent un repli de sécurité. */
body.ws24-pages-style-valide #contenu-principal .ws24-cocon-static .insight-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 290px), 1fr));
}
body.ws24-pages-style-valide #contenu-principal .ws24-cocon-static :is(.insight-card, .step-content) > p {
  overflow-wrap: anywhere;
}

/* Actions : gabarit de bouton et corps validés, URLs intactes. */
body.ws24-pages-style-valide #contenu-principal :is(
  .ws24-work-btn, .ws24-case-study__button, .ws24-cocon-static .btn-cta,
  .ws24-ppf .ppf-button--primary
) {
  min-height: 54px;
  border: 1px solid var(--creation-yellow);
  border-radius: 999px;
  padding: 12px 24px;
  background: var(--creation-yellow);
  color: var(--creation-ink);
  box-shadow: var(--creation-control-shadow);
}
body.ws24-pages-style-valide #contenu-principal :is(
  .ws24-work-btn, .ws24-work-link-action, .ws24-work-project__link,
  .ws24-case-study__button, .ws24-case-study__text-link,
  .ws24-blog-page__link, .ws24-post__side-card .btn,
  .ws24-post__cta .btn, .ws24-cocon-static .btn, .ws24-ppf .ppf-button
) {
  font-family: inherit;
  font-size: var(--creation-action-size);
  font-weight: 700;
  line-height: 1.55;
  letter-spacing: 0;
  text-transform: none;
  white-space: normal;
}
body.ws24-pages-style-valide #contenu-principal :is(.ws24-work-link-action,.ws24-work-project__link,.ws24-case-study__text-link,.ws24-blog-page__link) { color: var(--creation-ink); }
body.ws24-pages-style-valide #contenu-principal :is(.ws24-work-btn,.ws24-case-study__button,.ws24-cocon-static .btn-cta,.ws24-ppf .ppf-button--primary):hover {
  background: #ffd24c;
  border-color: #ffd24c;
  color: var(--creation-ink);
}

/* Appels finaux : section jaune et plan blanc homologues à l’accueil. */
body.ws24-pages-style-valide #contenu-principal :is(
  .ws24-about-page__cta, .ws24-legal-page__cta, .ws24-blog-page__cta,
  .ws24-work-final-cta, .ws24-case-study__cta, .ws24-post__cta
) {
  /* Neutralise uniquement les fonds inline des trois anciens CTA parallax. */
  background-image: none !important;
  background-color: var(--creation-yellow);
  padding: 72px 32px;
  color: var(--creation-ink);
  box-shadow: inset 0 24px 32px -28px rgb(32 38 46 / .3);
}
body.ws24-pages-style-valide #contenu-principal :is(
  .ws24-about-page__cta > .container, .ws24-legal-page__cta > .container,
  .ws24-blog-page__cta > .container, .ws24-work-final-cta__inner,
  .ws24-case-study__cta-inner, .ws24-post__cta-inner
) {
  max-width: 1160px;
  width: 100%;
  margin-inline: auto;
  padding: 62px 36px;
  background: #fff;
  border: 1px solid #fff;
  border-radius: 36px;
  box-shadow: var(--creation-shadow);
}
body.ws24-pages-style-valide #contenu-principal :is(
  .ws24-work-final-cta__inner, .ws24-case-study__cta-inner, .ws24-post__cta-inner
) { grid-template-columns: minmax(0,1fr); justify-items: start; gap: 28px; }
body.ws24-pages-style-valide #contenu-principal :is(
  .ws24-about-page__cta, .ws24-legal-page__cta, .ws24-blog-page__cta,
  .ws24-work-final-cta, .ws24-case-study__cta, .ws24-post__cta
) :is(p,.lead) { color: var(--creation-copy); }
body.ws24-pages-style-valide #contenu-principal :is(
  .ws24-about-page__cta, .ws24-legal-page__cta, .ws24-blog-page__cta,
  .ws24-work-final-cta, .ws24-case-study__cta, .ws24-post__cta
) :is(.btn,.ws24-work-btn,.ws24-case-study__button) {
  background: #191919;
  border-color: #191919;
  color: #fff;
  border-radius: 999px;
  padding: 12px 24px;
  box-shadow: 0 1px 0 #050505, 0 8px 16px -8px rgb(0 0 0 / .28), inset 0 1px 0 rgb(255 255 255 / .14);
}

/* Même rôle d'action finale sur les pages éditoriales, sans déplacement. */
body.ws24-pages-style-valide #contenu-principal :is(
  .ws24-about-page__cta, .ws24-legal-page__cta, .ws24-blog-page__cta,
  .ws24-work-final-cta, .ws24-case-study__cta, .ws24-post__cta
) :is(.btn,.ws24-work-btn,.ws24-case-study__button):is(:hover, :focus-visible) {
  background: #292929;
  border-color: #292929;
  color: #fff;
  transform: none;
}
body.ws24-pages-style-valide #contenu-principal :is(
  .ws24-about-page__cta, .ws24-legal-page__cta, .ws24-blog-page__cta,
  .ws24-work-final-cta, .ws24-case-study__cta, .ws24-post__cta
) :is(.btn,.ws24-work-btn,.ws24-case-study__button):focus-visible {
  outline: 3px solid #191919 !important; /* Le thème historique force outline:none !important. */
  outline-offset: 5px;
}
/* Le thème historique force ce texte sombre avec !important. */
body.ws24-pages-style-valide #contenu-principal .ws24-case-study__cta .ws24-case-study__button {
  color: #fff !important;
}

@media (max-width:1099px) {
  body.ws24-pages-style-valide #contenu-principal :is(
    .ws24-about-page__cards-row,.ws24-legal-page__identity-grid,
    .ws24-blog-page__listing > .container > .row,.ws24-post__related > .container > .row,
    .ws24-work-method__grid,.ws24-work-proof__grid
  ) { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body.ws24-pages-style-valide #contenu-principal :is(
    .ws24-work-hero__grid,.ws24-case-study__hero-grid,.ws24-case-study__two-columns,
    .ws24-post__hero-inner,.ws24-post__layout,.ws24-cocon-static .article-wrap,.ws24-ppf .ppf-layout
  ) { grid-template-columns: minmax(0,1fr); }
  body.ws24-pages-style-valide #contenu-principal .ws24-work-hero__visual { max-width: 760px; width: 100%; }
  body.ws24-pages-style-valide #contenu-principal .ws24-post__hero-copy { max-width: none; }
  body.ws24-pages-style-valide #contenu-principal :is(.ws24-post__sidebar-sticky,.ws24-cocon-static .sidebar,.ws24-ppf .ppf-sidebar) {
    position: static;
    top: auto;
    max-height: none;
    overflow: visible;
  }
}

/* Sur un écran très étroit, le numéro précède le texte au lieu de lui prendre
   une colonne. L'ordre de lecture et les tailles restent ceux de l'existant. */
@media (max-width:420px) {
  body.ws24-pages-style-valide #contenu-principal .ws24-cocon-static .step-item {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width:767px) {
  /* Les mots longs doivent rester lisibles sans réduire la taille validée. */
  body.ws24-pages-style-valide #contenu-principal :is(.ws24-about-page__hero,.ws24-legal-page__hero) h1,
  body.ws24-pages-style-valide #contenu-principal :is(.ws24-post__title,.ws24-cocon-static .article-title,.ws24-ppf .ppf-title) {
    overflow-wrap: anywhere;
    hyphens: auto;
  }
  body.ws24-pages-style-valide #contenu-principal :is(
    .ws24-about-page__hero h1,.ws24-contact-page__hero h1,
    .ws24-legal-page__hero h1,.ws24-blog-page__hero h1,.ws24-work-hero__title,
    .ws24-case-study__hero h1,.ws24-post__title,
    .ws24-cocon-static .article-title,.ws24-ppf .ppf-title
  ) { font-size: 46px; }
  body.ws24-pages-style-valide #contenu-principal :is(
    .ws24-about-page__cta h2,.ws24-legal-page__cta h2,.ws24-blog-page__cta h2,
    .ws24-work-method__title,.ws24-work-section-head h2,.ws24-work-proof h2,
    .ws24-work-final-cta h2,.ws24-case-study__section h2,.ws24-case-study__cta h2,
    .ws24-post__cta h2,.ws24-ppf .ppf-final-cta h2,.ws24-ppf .ppf-pages-linked__head h2
  ) { font-size: 36px; }
  body.ws24-pages-style-valide #contenu-principal :is(
    .ws24-about-page .message-box h2,.ws24-legal-page__article h3,
    .ws24-contact-page__form-card .section-title h3,
    .ws24-post__content h2,.entry-content h2,
    .ws24-cocon-static .article-body h2,.ws24-ppf .ppf-body h2
  ) { font-size: 32px; }
  body.ws24-pages-style-valide #contenu-principal :is(
    .ws24-about-page__card h4,.ws24-contact-page__coords h4,.ws24-contact-page__step h4,
    .ws24-legal-page__identity-card h4,.ws24-legal-page__article h4,.ws24-blog-page__title,
    .ws24-blog-page__empty h2,.ws24-work-method-card h3,.ws24-work-proof-card h3,
    .ws24-work-project__topline h3,.ws24-case-study__phase-grid h3,
    .ws24-case-study__compare-set > h3,.ws24-case-study__evidence h3,
    .ws24-post__content :is(h3,h4),.entry-content :is(h3,h4),
    .ws24-post__related-card h3,.ws24-cocon-static .article-body :is(h3,h4,h5),
    .ws24-ppf .ppf-body :is(h3,h4,h5),.ws24-ppf .ppf-pages-linked__card h3
  ) { font-size: 25px; line-height: 1.3 !important; }
  body.ws24-pages-style-valide #contenu-principal :is(
    .ws24-about-page__hero,.ws24-contact-page__hero,.ws24-legal-page__hero,
    .ws24-blog-page__hero,.ws24-post__hero,.ws24-work-hero,.ws24-case-study__hero,
    .ws24-cocon-static .article-header,.ws24-ppf .ppf-header
  ) { padding: 30px 0 32px; }
  body.ws24-pages-style-valide #contenu-principal :is(
    .ws24-about-page__cards-row,.ws24-about-page__proof .ws24-about-page__cards-row,
    .ws24-contact-page__steps,.ws24-legal-page__identity-grid,
    .ws24-blog-page__listing > .container > .row,.ws24-post__related > .container > .row,
    .ws24-work-method__grid,.ws24-work-proof__grid,
    .ws24-case-study__phase-grid,.ws24-case-study__compare-grid,.ws24-case-study__results-grid
  ) { grid-template-columns: minmax(0,1fr); gap: 20px; }
  body.ws24-pages-style-valide #contenu-principal :is(
    .ws24-about-page__card,.ws24-contact-page__coords,.ws24-contact-page__form-card,
    .ws24-legal-page__identity-card,.ws24-legal-page__article,.ws24-blog-page__card-body,
    .ws24-case-study__scope,.ws24-post__article
  ) { padding: 24px 20px; border-radius: 22px; }
  body.ws24-pages-style-valide #contenu-principal :is(
    .ws24-work-section,.ws24-work-method,.ws24-work-proof,.ws24-case-study__section
  ) { padding: 58px 0; }
  body.ws24-pages-style-valide #contenu-principal .ws24-work-project__topline h3 { flex-basis: auto; }
  body.ws24-pages-style-valide #contenu-principal .ws24-post__main { padding: 28px 20px 58px; }
  body.ws24-pages-style-valide #contenu-principal :is(
    .ws24-about-page__cta,.ws24-legal-page__cta,.ws24-blog-page__cta,
    .ws24-work-final-cta,.ws24-case-study__cta,.ws24-post__cta
  ) { padding: 48px 20px; }
  body.ws24-pages-style-valide #contenu-principal :is(
    .ws24-about-page__cta > .container,.ws24-legal-page__cta > .container,
    .ws24-blog-page__cta > .container,.ws24-work-final-cta__inner,
    .ws24-case-study__cta-inner,.ws24-post__cta-inner
  ) { padding: 40px 22px; border-radius: 28px; }
}
