/*
 * Blocs natifs sous le design system (v0.5.0) — titre, paragraphe, liste, image, colonnes, boutons,
 * groupe. Chargée sur les pages au gabarit maison (front) et dans l'éditeur des pages (iframe),
 * cf. includes/editor-lock.php. Rien en dur : tokens de canidelite-design-system.css uniquement.
 *
 * Portée : `:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper)` — (0,2,1), au-dessus du kit
 * Elementor (.elementor-kit-N h2 / a : 0,1,1) et du reset du thème Hello. Les éléments sans classe
 * propre (paragraphe) sont visés par `:not(.cnd *)` : jamais l'intérieur d'un bloc maison, qui garde
 * ses propres règles.
 */

/* ---------- Remise à zéro (test « thème hostile », v0.5.0) ----------
   Liens et images des blocs natifs : même principe que dans canidelite-design-system.css — toute
   propriété qu'un thème pourrait poser sur `body a` / `body img` et que nos règles ne redéclarent pas. */
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) :is(a, img):not(.cnd *) {
	background: transparent;
	border: 0;
	padding: 0;
	margin: 0;
	box-shadow: none;
	text-shadow: none;
	text-transform: inherit;
	letter-spacing: inherit;
	min-width: 0;
	float: none;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) a:not(.cnd *):not(.wp-block-button__link) {
	display: inline;
	width: auto;
	height: auto;
	line-height: inherit;
	text-align: inherit;
	white-space: inherit;
}
/* Largeur : celle du libellé, sauf largeur choisie dans l'éditeur (25 à 100 %, .has-custom-width). */
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-button:not(.has-custom-width) > .wp-block-button__link {
	width: auto;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-button.has-custom-width > .wp-block-button__link {
	width: 100%;
}

/* ---------- Gabarit ---------- */
body.cnd-site { background: var(--ground); }
/* Ancres : la section s'arrête sous la barre d'ancres collée (et la barre d'admin éventuelle). */
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) [id] { scroll-margin-top: calc(var(--wp-admin--admin-bar--height, 0px) + 96px); }

/* ---------- Rythme vertical ----------
   Sections (enfants directs du contenu) : 64 px. Dans une section, une colonne ou un groupe :
   16 px entre deux textes, 24 px avant un bloc, une rangée de colonnes, des boutons ou un H3. */
body.cnd-site .cnd-site-main > *,
.editor-styles-wrapper .is-root-container > *,
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) :where(.is-layout-flow, .is-layout-constrained, .wp-block-column) > * {
	margin-block: 0;
}
body.cnd-site .cnd-site-main > * + *,
.editor-styles-wrapper .is-root-container > * + * {
	margin-block-start: var(--s-8);
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) :where(.is-layout-flow, .is-layout-constrained, .wp-block-column) > * + * {
	margin-block-start: var(--s-4);
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) :where(.is-layout-flow, .is-layout-constrained, .wp-block-column) > * + :is(h3, h4, .wp-block-columns, .wp-block-group, .wp-block-buttons, .wp-block-image, .cnd) {
	margin-block-start: var(--s-5);
}
/* Le contenu passe directement aux blocs : pas de marge propre au conteneur de mise en page. */
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group {
	max-width: none;
}

/* ---------- Titres ---------- */
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) :is(h1, h2, h3, h4).wp-block-heading {
	font-family: var(--font-display);
	font-weight: 500;
	font-style: normal;
	letter-spacing: 0;
	text-transform: none;
	text-decoration: none;
	color: var(--ink);
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) h1.wp-block-heading {
	/* v0.17.0 : H1 natif des pages légales (les autres pages portent leur H1 dans le hero). */
	font-size: clamp(27px, 3.2vw, var(--t-h1));
	line-height: 1.15;
	margin-block-end: 0;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) h2.wp-block-heading {
	/* v0.23.1 : 26 px à toutes les largeurs, comme les maquettes (22 px en mobile amincissait le titre
	   et la bande du mot surligné, mesurés dans qa/compare/surlignage/). */
	font-size: var(--t-h2);
	line-height: 1.2;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) h3.wp-block-heading {
	font-size: var(--t-h4);
	line-height: 1.3;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) h4.wp-block-heading {
	font-size: var(--t-body);
	line-height: 1.35;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-heading .cnd-highlight {
	color: inherit;
}

/* ---------- Paragraphes et liens ---------- */
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) p:not(.cnd *) {
	font-family: var(--font-body);
	font-weight: 400;
	font-size: var(--t-body);
	line-height: 1.55;
	color: var(--ink-2);
	max-width: 65ch;
}
/* Liens du texte, des listes et des légendes (figcaption : crédits photo des articles, v0.31.1 ; sans règle
   propre, ils prenaient le survol du thème #909B71, 2,83:1). */
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) :is(p, li, figcaption):not(.cnd *) a {
	font-family: inherit;
	font-weight: 500;
	color: var(--brand-strong);
	text-decoration: underline;
	text-underline-offset: 2px;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) :is(p, li, figcaption):not(.cnd *) a:hover {
	color: var(--ink);
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) :is(p, li, figcaption):not(.cnd *) a:focus-visible {
	outline: 2px solid var(--brand-strong);
	outline-offset: 2px;
	border-radius: 2px;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) :is(p, li):not(.cnd *) strong {
	font-weight: 600;
	color: var(--ink);
}

/* ---------- Listes ---------- */
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) :is(ul, ol).wp-block-list {
	margin: 0;
	padding: 0 0 0 1.25em;
	font-family: var(--font-body);
	font-size: var(--t-body);
	line-height: 1.55;
	color: var(--ink-2);
	max-width: 70ch;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-list > li {
	margin: 0;
	padding: 0;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-list > li + li {
	margin-top: var(--s-2);
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-list > li::marker {
	color: var(--brand);
}
/* Coches : repère SVG coloré par masque (couleur = --brand-strong, texte 4,5:1 sur blanc). */
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-list.is-style-cnd-coches {
	list-style: none;
	padding-left: 0;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-list.is-style-cnd-coches > li {
	position: relative;
	padding-left: 26px;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-list.is-style-cnd-coches > li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .2em;
	width: 16px;
	height: 16px;
	background: var(--brand-strong);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8.5 6.5 12 13 4.5'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8.5 6.5 12 13 4.5'/%3E%3C/svg%3E") center / contain no-repeat;
}
/* Deux colonnes (liste « Sont concernés »), une seule sous 720 px. */
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-list.is-style-cnd-deux-colonnes {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--s-2) var(--s-5);
	max-width: none;
	font-size: var(--t-small);
	line-height: 1.5;
	padding-left: 1.1em;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-list.is-style-cnd-deux-colonnes > li + li {
	margin-top: 0;
}
@media (max-width: 719px) {
	:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-list.is-style-cnd-deux-colonnes {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* ---------- Boutons : pilules du design system (principal / contour), 14 px minimum ---------- */
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-buttons {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--s-2);
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-buttons.is-content-justification-center {
	justify-content: center;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-buttons > .wp-block-button {
	margin: 0;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-button > .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--s-2);
	height: auto;
	min-height: 0;
	box-shadow: none;
	font-family: var(--font-body);
	font-weight: 500;
	font-size: var(--t-small);
	line-height: 1.2;
	letter-spacing: 0;
	text-transform: none;
	text-decoration: none;
	text-align: center;
	border-radius: var(--r-pill);
	border: 1px solid transparent;
	padding: 12px 22px;
	margin: 0;
	min-width: 0;
	white-space: normal;
	cursor: pointer;
	transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-button:not(.is-style-cnd-contour) > .wp-block-button__link,
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-button:not(.is-style-cnd-contour) > .wp-block-button__link:focus {
	background: var(--brand-btn);
	color: var(--brand-on);
	border-color: var(--brand-btn-border);
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-button:not(.is-style-cnd-contour) > .wp-block-button__link:hover {
	background: var(--brand-hover);
	color: var(--brand-on);
	border-color: var(--brand-btn-border);
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-button.is-style-cnd-contour > .wp-block-button__link,
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-button.is-style-cnd-contour > .wp-block-button__link:focus {
	background: transparent;
	color: var(--ink);
	border-color: var(--line-2);
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-button.is-style-cnd-contour > .wp-block-button__link:hover {
	background: var(--surface-2);
	color: var(--ink);
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-button > .wp-block-button__link:focus-visible {
	outline: 2px solid var(--brand-strong);
	outline-offset: 2px;
	box-shadow: none;
}

/* ---------- Texte long (v0.17.0, pages légales) ----------
   Largeur de lecture : aucun token de mesure dans docs/tokens.md ; 72ch est une mesure typographique
   (65 à 75 caractères par ligne), pas une valeur de maquette. */
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-lecture {
	max-width: 72ch;
}

/* ---------- Pages légales (v0.39.0, pages légales RGPD) ----------
   Texte en largeur de lecture (72ch, comme cnd-lecture) ; tableaux sur toute la largeur du gabarit. */
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-legal > :not(.wp-block-table) {
	max-width: 72ch;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-legal > h2 {
	margin-top: var(--s-7);
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-legal .cnd-legal-maj {
	font-size: var(--t-small);
	color: var(--ink-3);
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .cnd-legal-action {
	margin: var(--s-4) 0;
}

/* Tableau lisible en mobile (style cnd-tableau) : lignes fines, intitulés en petites capitales ; sous 900 px,
   une carte par ligne, l'intitulé de colonne (data-label, includes/pages-legales.php) devant chaque valeur. */
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-table.is-style-cnd-tableau {
	margin: var(--s-5) 0 var(--s-6);
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-table.is-style-cnd-tableau table {
	width: 100%;
	border-collapse: collapse;
	font-family: var(--font-body);
	font-size: var(--t-small);
	line-height: 1.5;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-table.is-style-cnd-tableau :is(th, td) {
	padding: var(--s-3) var(--s-4) var(--s-3) 0;
	border: 0;
	border-bottom: 1px solid var(--line);
	text-align: left;
	vertical-align: top;
	color: var(--ink-2);
	background: transparent;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-table.is-style-cnd-tableau thead {
	border: 0;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-table.is-style-cnd-tableau th {
	padding-top: 0;
	border-bottom: 1px solid var(--line-2);
	font-size: var(--t-caption);
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--ink-3);
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-table.is-style-cnd-tableau td:first-child {
	font-weight: 500;
	color: var(--ink);
}
@media (max-width: 899px) {
	body.cnd-site .cnd-site-main .wp-block-table.is-style-cnd-tableau :is(table, tbody, tr, td) {
		display: block;
		width: 100%;
	}
	body.cnd-site .cnd-site-main .wp-block-table.is-style-cnd-tableau thead {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
		white-space: nowrap;
	}
	body.cnd-site .cnd-site-main .wp-block-table.is-style-cnd-tableau tr {
		margin: 0 0 var(--s-4);
		padding: var(--s-4);
		border: 1px solid var(--line);
		border-radius: var(--r-md);
		background: var(--surface);
	}
	body.cnd-site .cnd-site-main .wp-block-table.is-style-cnd-tableau td {
		padding: 0;
		border: 0;
	}
	body.cnd-site .cnd-site-main .wp-block-table.is-style-cnd-tableau td + td {
		margin-top: var(--s-3);
	}
	body.cnd-site .cnd-site-main .wp-block-table.is-style-cnd-tableau td[data-label]::before {
		content: attr(data-label);
		display: block;
		margin-bottom: 2px;
		font-size: var(--t-caption);
		font-weight: 500;
		letter-spacing: 0.08em;
		text-transform: uppercase;
		color: var(--ink-3);
	}
	body.cnd-site .cnd-site-main .wp-block-table.is-style-cnd-tableau td:first-child {
		font-size: var(--t-body);
	}
}

/* ---------- Recherche (v0.17.0, page 404) ----------
   Bloc natif core/search sous le design system. La CSS additionnelle du site (hors plugin) pose
   `button { margin-top: 32px !important; display: block; … }` et `input[type=search] { border:
   #dcdfe5 !important; … }` : seules ces deux propriétés exigent un !important ciblé (même exception
   que .cnd button et .cnd-capture-form .cnd-field) ; le reste l'emporte par la spécificité. */
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-search__label {
	display: block;
	margin: 0 0 var(--s-2);
	font-family: var(--font-body);
	font-weight: 500;
	font-size: var(--t-small);
	color: var(--ink);
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-search__inside-wrapper {
	display: flex;
	align-items: stretch;
	gap: var(--s-2);
	max-width: 560px;
	padding: 0;
	border: 0;
	background: transparent;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-search__input {
	flex: 1 1 auto;
	min-width: 0;
	width: auto;
	height: auto;
	margin: 0;
	box-shadow: none;
	border: 1px solid var(--line-2) !important;
	border-radius: var(--r-pill);
	background: var(--surface);
	font-family: var(--font-body);
	font-weight: 400;
	font-size: var(--t-small);
	line-height: 1.2;
	color: var(--ink);
	padding: 12px 18px;
	transition: none;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-search__input:focus-visible {
	outline: 2px solid var(--brand-strong);
	outline-offset: 2px;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-search__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	appearance: none;
	-webkit-appearance: none;
	width: auto;
	height: auto;
	min-height: 0;
	margin: 0 !important;
	box-shadow: none;
	text-shadow: none;
	font-family: var(--font-body);
	font-weight: 500;
	font-size: var(--t-small);
	line-height: 1.2;
	letter-spacing: 0;
	text-transform: none;
	border-radius: var(--r-pill);
	border: 1px solid var(--brand-btn-border);
	background: var(--brand-btn);
	color: var(--brand-on);
	padding: 12px 22px;
	cursor: pointer;
	transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-search__button:hover {
	background: var(--brand-hover);
	border-color: var(--brand-btn-border);
	color: var(--brand-on);
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-search__button:focus-visible {
	outline: 2px solid var(--brand-strong);
	outline-offset: 2px;
}

/* ---------- Image : arrondie par défaut ---------- */
/* Pas de « margin: 0 » : à (0,3,2), il écrasait l'espacement du rythme vertical au-dessus de l'image. */
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) figure.wp-block-image {
	margin-inline: 0;
	margin-bottom: 0;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-image img {
	display: block;
	max-width: 100%;
	height: auto;
	border-radius: var(--r-lg);
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-image figcaption {
	font-family: var(--font-body);
	font-size: var(--t-caption);
	color: var(--ink-3);
	margin: var(--s-2) 0 0;
}

/* ---------- Colonnes ---------- */
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-columns {
	gap: var(--s-6);
	margin-bottom: 0;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-column {
	min-width: 0;
}
/* Image + texte (v0.38.0, recette du 09/11 : « Qu'est-ce que le sport canin ? ») : quand une colonne ne porte
   qu'une image, les autres colonnes (titre et texte) se centrent verticalement sur la rangée, donc sur l'image
   quand elle est plus haute. La colonne image garde sa hauteur. Colonnes côte à côte seulement (782 px, seuil du
   bloc Colonnes) : en mobile, l'empilement ne change pas. Un alignement vertical choisi dans l'éditeur
   (`is-vertically-aligned-*`) et la colonne collante gardent la main. */
@media (min-width: 782px) {
	:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-columns:has(> .wp-block-column > .wp-block-image:only-child) > .wp-block-column:not(:has(> .wp-block-image:only-child)):not([class*="is-vertically-aligned"]):not(.is-style-cnd-collante) {
		align-self: center;
	}
	/* Centrage visible : la marge basse du dernier élément (liste, paragraphe) ne décale plus le texte vers le haut. */
	:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-columns:has(> .wp-block-column > .wp-block-image:only-child) > .wp-block-column:not(:has(> .wp-block-image:only-child)):not([class*="is-vertically-aligned"]):not(.is-style-cnd-collante) > :last-child {
		margin-block-end: 0;
	}
}
/* Colonne collante (encart « En bref » + formulaire) : sous la barre d'ancres collée (≈ 56 px)
   et la barre d'admin éventuelle ; seulement quand les colonnes sont côte à côte. */
@media (min-width: 782px) {
	body.cnd-site .cnd-site-main .wp-block-column.is-style-cnd-collante {
		position: sticky;
		top: calc(var(--wp-admin--admin-bar--height, 0px) + 72px);
		align-self: flex-start;
	}
}

/* ---------- Groupes ---------- */
/* Carte bordée (texte 14 px). */
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-carte {
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--r-md);
	padding: var(--s-5);
}
/* Encadré « Le saviez-vous » : fond teinté ; un premier paragraphe suivi d'un autre sert de surtitre. */
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-encadre {
	background: var(--brand-tint);
	border: 1px solid var(--brand-tint-2);
	border-radius: var(--r-md);
	padding: var(--s-4) var(--s-5);
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-encadre > p:first-child:not(:only-child) {
	font-size: var(--t-caption);
	font-weight: 500;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--brand-strong);
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-encadre > p:first-child:not(:only-child) + * {
	margin-block-start: var(--s-1);
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) :is(.is-style-cnd-carte, .is-style-cnd-encadre, .is-style-cnd-collante) :is(p:not(.cnd *), .wp-block-list) {
	font-size: var(--t-small);
	line-height: 1.5;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) :is(.is-style-cnd-carte, .is-style-cnd-encadre) .wp-block-list > li + li {
	margin-top: var(--s-2);
}
/* ---------- v0.24.0 (maquettes, vague 2) : compositions de section ----------
   Panneau teinté (Sport « Pourquoi ») et carte de section (Sport « Notre approche ») : fond tint ou
   blanc bordé, rayon --r-lg (la maquette met 20 px : arrondi au token DS le plus proche), marge
   intérieure de la maquette (40 px ; 28 × 20 px en mobile). */
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group:is(.is-style-cnd-panneau, .is-style-cnd-carte-section) {
	border-radius: var(--r-lg);
	padding: 40px;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-panneau {
	background: var(--brand-tint);
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-carte-section {
	background: var(--surface);
	border: 1px solid var(--brand-tint-2);
}
/* Carte de section à colonnes (Centre aéré, Juliette) : photo et texte centrés verticalement. */
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-carte-section > .wp-block-columns {
	align-items: center !important; /* v0.38.0 : le cœur force « normal !important » */
	gap: 32px 48px;
}
/* En-tête de section en 2 colonnes : titre (ou colonne titre) à gauche, 420 px au plus ; le reste à
   droite. Repli sur une colonne quand la largeur manque (flex-wrap, comme la maquette). */
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-entete {
	display: flex;
	flex-wrap: wrap;
	gap: var(--s-4) 48px;
	align-items: flex-start;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-entete > * {
	margin: 0;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-entete > :first-child {
	flex: 1 1 260px;
	max-width: 420px;
	min-width: 0;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-entete > :not(:first-child) {
	flex: 2 1 420px;
	min-width: 0;
}
/* v0.38.0 : plus de surtitre en tête de la colonne titre (recette du 09/11). */
/* Liste cochée dans un en-tête 2 colonnes (sous-pages « Pré-requis ») : grille de 240 px, 14 px. */
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-entete > .wp-block-list.is-style-cnd-coches {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 10px var(--s-5);
	font-size: var(--t-small);
	line-height: 1.5;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-entete > .wp-block-list.is-style-cnd-coches > li {
	margin: 0;
}
/* Bandeau d'action teinté (Centre aéré, Dog wash) : phrase à gauche, bouton à droite, en ligne. */
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-bandeau-action {
	display: flex;
	flex-wrap: wrap;
	gap: var(--s-4) var(--s-6);
	align-items: center;
	justify-content: space-between;
	background: var(--brand-tint);
	border-radius: var(--r-lg);
	padding: 40px;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-bandeau-action > * {
	margin: 0;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-bandeau-action > :is(p, h3) {
	flex: 1 1 360px;
	min-width: 0;
	color: var(--ink);
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-bandeau-action > .wp-block-buttons {
	flex: none;
}
@media (max-width: 899px) {
	:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group:is(.is-style-cnd-panneau, .is-style-cnd-carte-section, .is-style-cnd-bandeau-action) {
		padding: 28px 20px;
	}
	:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-bandeau-action > .wp-block-buttons {
		flex: 1 1 100%;
	}
}
/* Infos pratiques (Dog wash) : carte blanche bordée en 2 colonnes ; dans chaque paragraphe, le
   premier <strong> sert d'intitulé (12 px, 600, encre 3) ; horaires en liste à filets. */
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-infos {
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--r-lg);
	padding: 28px;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-infos > .wp-block-columns {
	gap: 18px 24px;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-infos .wp-block-column > * + * {
	margin-block-start: 12px;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-infos :is(p, li) {
	font-size: 15px;
	line-height: 1.5;
	color: var(--ink);
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-infos p > strong:first-child {
	display: block;
	margin-bottom: 4px;
	font-size: var(--t-caption);
	font-weight: 600;
	color: var(--ink-3);
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-infos a {
	font-weight: 500;
	color: var(--brand-strong);
	text-decoration: none;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-infos a:is(:hover, :focus-visible) {
	text-decoration: underline;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-infos .wp-block-list {
	display: flex;
	flex-direction: column;
	gap: 10px;
	list-style: none;
	padding: 0;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-infos .wp-block-list > li {
	margin: 0;
	padding-bottom: 10px;
	border-bottom: 1px solid var(--line);
	font-size: var(--t-small);
	color: var(--ink-3);
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-infos .wp-block-list > li > strong {
	display: block;
	font-size: 13px;
	font-weight: 600;
	color: var(--ink);
}
@media (max-width: 899px) {
	:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-infos { padding: var(--s-5); }
}
/* Haut des landings (maquettes Ads) : photo assombrie sur toute la largeur de l'écran (voile du DS
   --overlay, 55 % ; la maquette met 58 %), accroche en blanc à gauche, formulaire en carte blanche bordée à
   l'univers (2 px, rayon 16, 440 px au plus) à droite. La photo est posée en absolu sous le contenu :
   aucune place à réserver, pas de décalage au chargement. */
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-photo-sombre {
	--hl-a: var(--hl-a-photo);
	position: relative;
	isolation: isolate;
	margin-inline: calc(50% - 50vw);
	padding: 40px max(24px, calc(50vw - 570px)) 48px;
	background: var(--ink);
	color: var(--on-image, #fff);
}
body.cnd-site .cnd-site-main > .wp-block-group.is-style-cnd-photo-sombre:first-child {
	margin-top: calc(-1 * var(--s-5));
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-photo-sombre > .wp-block-image:first-child {
	position: absolute;
	inset: 0;
	z-index: -2;
	margin: 0;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-photo-sombre > .wp-block-image:first-child img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 0;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-photo-sombre::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: var(--overlay);
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-photo-sombre > .wp-block-columns {
	margin-top: 0;
	align-items: stretch;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-photo-sombre > .wp-block-columns > .wp-block-column:first-child {
	align-self: center;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-photo-sombre > .wp-block-columns > .wp-block-column:first-child > :is(h1, p) {
	color: #fff;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-photo-sombre > .wp-block-columns > .wp-block-column:first-child > p {
	color: rgba(255, 255, 255, .9);
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-photo-sombre > .wp-block-columns > .wp-block-column:first-child a:not(.cnd-btn) {
	color: #fff;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-photo-sombre .cnd-capture-form {
	max-width: 440px;
	margin-left: auto;
	padding: var(--s-5);
	border: 2px solid var(--brand);
	border-radius: var(--r-lg);
	background: var(--surface);
	color: var(--ink);
}
@media (max-width: 899px) {
	:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-photo-sombre {
		padding: 32px 16px 40px;
	}
	:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-photo-sombre .cnd-capture-form {
		max-width: none;
		margin-left: 0;
	}
}
/* Pastilles coche (Sport « Notre approche ») : 2 × 2 sur fond teinté, une colonne sous 720 px. */
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-list.is-style-cnd-pastilles {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
	list-style: none;
	padding: 0;
	max-width: none;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-list.is-style-cnd-pastilles > li {
	position: relative;
	margin: 0;
	padding: 12px 14px 12px 40px;
	border-radius: var(--r-sm);
	background: var(--brand-tint);
	font-size: 15px;
	line-height: 1.45;
	color: var(--ink);
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-list.is-style-cnd-pastilles > li::before {
	content: "";
	position: absolute;
	left: 14px;
	top: 14px;
	width: 16px;
	height: 16px;
	background: var(--brand-strong);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8.5 6.5 12 13 4.5'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8.5 6.5 12 13 4.5'/%3E%3C/svg%3E") center / contain no-repeat;
}
@media (max-width: 719px) {
	:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-list.is-style-cnd-pastilles {
		grid-template-columns: minmax(0, 1fr);
	}
}
/* Liens en pilules (v0.28.4, accueil : disciplines sportives, catégories du blog) : une liste de liens
   rendue comme les chips des cartes, à la teinte de l'univers de la page. */
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-list.is-style-cnd-liens-pilules {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
	padding: 0;
	max-width: none;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-list.is-style-cnd-liens-pilules > li {
	display: flex;
	margin: 0;
	padding: 0;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-list.is-style-cnd-liens-pilules > li > a {
	display: inline-flex;
	align-items: center;
	min-height: 36px;
	padding: 8px 14px;
	border-radius: var(--r-pill);
	background: var(--brand-tint);
	color: var(--brand-strong);
	font-family: var(--font-body);
	font-weight: 500;
	font-size: var(--t-small);
	line-height: 1.2;
	text-decoration: none;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-list.is-style-cnd-liens-pilules > li > a:hover {
	text-decoration: underline;
	text-underline-offset: 2px;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-list.is-style-cnd-liens-pilules > li > a:focus-visible {
	outline: 2px solid var(--brand-strong);
	outline-offset: 2px;
}
/* Fond choisi dans la palette des surfaces (seul réglage de couleur ouvert, cf. editor-lock.php) :
   la teinte suit l'univers de la page. */
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.has-background {
	border-radius: var(--r-md);
	padding: var(--s-5);
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .has-surface-background-color { background-color: var(--surface); }
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .has-ground-background-color { background-color: var(--ground); }
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .has-surface-2-background-color { background-color: var(--surface-2); }
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .has-brand-tint-background-color { background-color: var(--brand-tint); }
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .has-brand-tint-2-background-color { background-color: var(--brand-tint-2); }

/* ---------- Politique de cookies (v0.18.0, [cnd_cookies]) ----------
   Le texte de repli s'efface dès que CookieYes a rempli son emplacement. */
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .cnd-cookies .cky-audit-table-element:not(:empty) + .cnd-cookies__repli {
	display: none;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .cnd-cookies .cnd-cookies__repli {
	font-family: var(--font-body);
	font-size: var(--t-small);
	color: var(--ink-3);
	margin: 0 0 var(--s-4);
}

/* Mobile (v0.23.0, maquettes : boutons à 100 % sous 900 px) : chaque bouton prend toute la
   largeur. En fin de feuille : même spécificité que les règles de largeur et de rangée ci-dessus. */
@media (max-width: 899px) {
	body.cnd-site .cnd-site-main .wp-block-buttons > .wp-block-button {
		flex: 1 1 100%;
	}
	body.cnd-site .cnd-site-main .wp-block-buttons > .wp-block-button > .wp-block-button__link {
		width: 100%;
	}
}

/* ---------- v0.33.7 (recette ACACED) ---------- */
/* Carte photo + texte (« Objectifs de la formation ») : carte bordée, colonnes centrées verticalement, texte au
   corps courant (et non 14 px comme dans une carte simple). */
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-carte-media {
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--r-md);
	padding: var(--s-5);
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-carte-media > .wp-block-columns {
	align-items: center !important; /* v0.38.0 : le cœur force « normal !important » */
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-carte-media :is(p:not(.cnd *), .wp-block-list) {
	font-size: var(--t-body);
	line-height: 1.55;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-carte-media .wp-block-image {
	margin: 0;
}
/* Texte sur toute la largeur de la section (phrase sous un tableau). */
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-pleine-largeur p:not(.cnd *) {
	max-width: none;
}
/* Puces homogènes : toutes les lignes au même corps (la liste par défaut passe les suivantes en légende), puce
   ronde de l'univers. */
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-list:is(.is-style-cnd-puces, .is-style-cnd-puces-grille) {
	list-style: none;
	padding-left: 0;
	max-width: none;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-list:is(.is-style-cnd-puces, .is-style-cnd-puces-grille) > li {
	position: relative;
	padding-left: 18px;
	font-size: var(--t-small);
	line-height: 1.5;
	color: var(--ink-2);
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-list:is(.is-style-cnd-puces, .is-style-cnd-puces-grille) > li + li {
	margin-top: var(--s-2);
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-list:is(.is-style-cnd-puces, .is-style-cnd-puces-grille) > li::before {
	content: "";
	position: absolute;
	left: 2px;
	top: .55em;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--brand);
}

/* ---------- v0.33.8 (recette Éducateur) ----------
   Carte à bord vert (« La formation en bref ») : carte blanche, bord brand-tint-2, rayon --r-lg, titre espacé.
   Puces en grille (« Cette formation est faite pour vous si ») : les puces homogènes sur plusieurs colonnes. */
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-carte-marque {
	background: var(--surface);
	border: 1px solid var(--brand-tint-2);
	border-radius: var(--r-lg);
	padding: var(--s-5);
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-carte-marque > :is(h2, h3):first-child {
	margin-block-end: var(--s-4);
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-carte-marque :is(p:not(.cnd *), .wp-block-list) {
	font-size: var(--t-small);
	line-height: 1.5;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-list.is-style-cnd-puces-grille {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
	column-gap: var(--s-5);
	row-gap: var(--s-2);
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-list.is-style-cnd-puces-grille > li + li {
	margin-top: 0;
}

/* ---------- Hub des formations (lot G de la recette, v0.34.3, maquette build/src/hub-formations) ----------
   Titre de section réservé aux lecteurs d'écran (absent de la maquette). Cartes : bouton plein, repères durée et
   tarif en ligne de texte « · », carte ACACED (la 2e) bordée à la couleur de l'univers, « La plus demandée ».
   Bandeau d'action : un groupe de texte (titre et paragraphe empilés) prend la place d'un paragraphe. */
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-heading.cnd-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .is-style-cnd-hub-formations .cnd-image-card:nth-child(2) {
	border: 2px solid var(--brand);
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .is-style-cnd-hub-formations .cnd-image-card__chips {
	gap: 0;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .is-style-cnd-hub-formations .cnd-image-card__chips .cnd-chip {
	padding: 0;
	border: 0;
	background: none;
	color: var(--ink-3);
	font-size: 13px;
	font-weight: 400;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .is-style-cnd-hub-formations .cnd-image-card__chips .cnd-chip + .cnd-chip::before {
	content: "\00a0·\00a0";
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .is-style-cnd-hub-formations .cnd-image-card .cnd-btn,
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .is-style-cnd-hub-formations .cnd-image-card .cnd-btn:focus {
	background: var(--brand-btn);
	color: var(--brand-on);
	border-color: var(--brand-btn-border);
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .is-style-cnd-hub-formations .cnd-image-card .cnd-btn:hover {
	background: var(--brand-hover);
	color: var(--brand-on);
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-bandeau-action > .wp-block-group {
	flex: 1 1 360px;
	min-width: 0;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-bandeau-action > .wp-block-group > * {
	margin: 0;
}
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .wp-block-group.is-style-cnd-bandeau-action > .wp-block-group > * + * {
	margin-top: var(--s-2);
}
/* Surtitre des cartes du hub : capitales espacées à la couleur de l'univers (maquette). */
:is(body.cnd-site .cnd-site-main, .editor-styles-wrapper) .is-style-cnd-hub-formations .cnd-image-card__tag {
	color: var(--brand-strong);
	text-transform: uppercase;
	letter-spacing: .06em;
}
