/*
 * Styles du thème dkhennys, en complément de theme.json (couleurs, polices et espacements
 * viennent uniquement des préréglages de theme.json). Chargée après les styles globaux de
 * WordPress (functions.php) et dans l'éditeur (add_editor_style).
 */
/* Bandeaux pleine largeur : filets bord à bord, contenu limité par les mises en page. */
.wp-site-blocks > header.wp-block-template-part {
	border-bottom: 1px solid var(--wp--preset--color--filet);
}
.wp-site-blocks > footer.wp-block-template-part {
	border-top: 1px solid var(--wp--preset--color--filet);
}

/* En-tête : bouton « Diagnostic express » compact, à côté du menu. */
.dkh-entete-droite {
	gap: var(--wp--preset--spacing--40);
}
.dkh-entete-appel .wp-block-button__link {
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
	white-space: nowrap;
}
.dkh-libelle-court {
	display: none;
}

/* Petits écrans : logo, bouton et menu sur une seule ligne ; libellé court. */
@media (max-width: 599px) {
	header .wp-block-group:has(> .dkh-entete-droite) {
		flex-wrap: nowrap;
	}
	.dkh-entete-droite {
		gap: var(--wp--preset--spacing--20);
	}
	.dkh-entete-droite .dkh-nav-principale {
		order: 2;
	}
	.dkh-libelle-long {
		display: none;
	}
	.dkh-libelle-court {
		display: inline;
	}
	.dkh-entete-appel .wp-block-button__link {
		padding: var(--wp--preset--spacing--10) var(--wp--preset--spacing--20);
	}
}

/* Pied de page : liens légaux et choix de la langue sur une ligne. */
.dkh-pied-bas-droite {
	gap: var(--wp--preset--spacing--40);
	align-items: center;
}
ul.dkh-langues-pied {
	display: flex;
	gap: var(--wp--preset--spacing--20);
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: var(--wp--preset--font-size--petit);
}
.dkh-langues-pied .current-lang a {
	text-decoration-thickness: 2px;
	text-underline-offset: 0.3em;
}
.dkh-langues-pied li:not(.current-lang) a {
	text-decoration: none;
}
.dkh-langues-pied li:not(.current-lang) a:hover {
	text-decoration: underline;
}

/* Page courante dans les menus. */
.wp-block-navigation .current-menu-item > a, .wp-block-navigation a[aria-current='page'] {
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 0.3em;
}

/* Filtre par type : liste en ligne, sans puces. */
.dkh-filtre {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--20) var(--wp--preset--spacing--40);
}

/* Focus visible sur les boutons (menu mobile, sélecteurs). */
:where(button, summary, [role='button']):focus-visible {
	outline: 2px solid var(--wp--preset--color--encre);
	outline-offset: 3px;
}

/* Mouvements réduits sur demande du système. */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* Logo : carré « KD » devant le titre du site (décoratif). */
.wp-block-site-title a {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
}
.wp-block-site-title a::before {
	content: 'KD';
	display: inline-grid;
	place-items: center;
	width: 2.6em;
	height: 2.6em;
	background: var(--wp--preset--color--encre);
	color: var(--wp--preset--color--papier);
	font-size: 0.62em;
	font-weight: 800;
	letter-spacing: -0.02em;
}

/* Surligneur ocre (format Surligner de l'éditeur, couleur de fond Ocre). */
mark.has-ocre-background-color {
	color: inherit;
	padding: 0 0.12em;
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
}

/* Titres de tête de page : longueur de ligne courte. */
:where(.is-layout-flow) > h1 {
	max-width: 22ch;
}

/* Titre de tête en taille « titre-l » (plus long, plus petit) : ligne un peu plus longue. */
:where(.is-layout-flow) > h1.has-titre-l-font-size {
	max-width: 30ch;
}

/* Cartes de réalisation en grille : même hauteur ; l'espace libre va après le résumé (repli). */
.wp-block-post-template.is-layout-grid > li {
	display: flex;
	flex-direction: column;
}
.wp-block-post-template.is-layout-grid > li > .is-style-carte {
	flex: 1;
	display: flex;
	flex-direction: column;
}
.wp-block-post-template.is-layout-grid > li > .is-style-carte > .wp-block-group {
	flex-grow: 1;
}

/* Navigateurs récents : sous-grille, chaque ligne (image, titre et résumé, Type, Secteur, Stack, lien) commence à la même hauteur d'une carte à l'autre. */
@supports (grid-template-rows: subgrid) {
	.wp-block-post-template.is-layout-grid > li {
		display: grid;
		grid-row: span 6;
		grid-template-rows: subgrid;
		row-gap: 0;
	}
	.wp-block-post-template.is-layout-grid > li > .is-style-carte {
		display: grid;
		grid-row: 1 / -1;
		grid-template-rows: subgrid;
		row-gap: 0;
	}
	.wp-block-post-template.is-layout-grid > li > .is-style-carte > * {
		margin: 0;
	}
	/* Lien toujours sur la dernière ligne, même quand des lignes Type/Secteur/Stack manquent. */
	.wp-block-post-template.is-layout-grid > li > .is-style-carte > .wp-block-read-more {
		grid-row: -2 / -1;
	}
	/* Carte compacte : couverture, titre et résumé, lien. */
	.wp-block-post-template.is-layout-grid > li:has(> .dkh-carte-compacte) {
		grid-row: span 3;
	}
}

/* Cartes : couverture moins haute, résumé limité à trois lignes. */
.is-style-carte .wp-block-post-featured-image {
	aspect-ratio: 2 / 1;
}
/* Couverture générée : hauteur selon son contenu (au moins 9rem) ; la sous-grille aligne les
   cartes d'une même rangée. */
.is-style-carte .dkh-couverture {
	aspect-ratio: auto;
	min-height: 9rem;
}
.is-style-carte .wp-block-post-featured-image img {
	aspect-ratio: 2 / 1;
}
.is-style-carte .wp-block-post-excerpt__excerpt {
	display: -webkit-box;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	line-clamp: 3;
}

/* Accents ocre : haut des cartes, trait devant les surtitres (décoratifs). */
.wp-block-group.is-style-carte {
	border-top: 4px solid var(--wp--preset--color--ocre);
}
.is-style-surtitre::before {
	content: '';
	display: inline-block;
	width: 1.5em;
	height: 3px;
	margin-right: 0.6em;
	vertical-align: 0.25em;
	background: var(--wp--preset--color--ocre);
}

/* Section sable directement sous une autre section : pas de filet entre deux fonds différents. */
.is-style-section-sable + .is-style-section, .is-style-section + .is-style-section-sable {
	border-top-color: transparent;
}

/* Texte courant : longueur de ligne lisible. */
:where(.is-layout-flow) > :where(p, ul, ol):not(.has-text-align-center, .wp-block-post-template) {
	max-width: 42rem;
}

/* Cartes de réalisation : lignes Secteur / Stack et lien. */
.is-style-carte > .wp-block-group {
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
}
.is-style-carte .wp-block-post-terms, .is-style-carte .wp-block-read-more {
	display: block;
	width: auto;
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--40);
	border-top: 1px solid var(--wp--preset--color--filet);
	margin: 0;
}
.is-style-carte .wp-block-post-terms__prefix {
	display: inline-block;
	min-width: 6em;
	font-family: var(--wp--preset--font-family--titres);
	font-size: var(--wp--preset--font-size--petit);
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--texte-secondaire);
}
.is-style-carte .wp-block-read-more {
	font-family: var(--wp--preset--font-family--titres);
	font-weight: 600;
	text-decoration: none;
}
.is-style-carte .wp-block-post-featured-image, .is-style-carte .dkh-capture-absente {
	margin: 0;
	border-bottom: 1px solid var(--wp--preset--color--encre);
}
.is-style-emplacement {
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
}

/* Flèche décorative après « Lire l'étude de cas ». */
.is-style-carte .wp-block-read-more::after {
	content: '→';
	float: right;
}

/* Première section d'une page composée : pas de filet au-dessus de l'en-tête de page. */
.wp-block-post-content > .is-style-section:first-child {
	border-top: 0;
}

/* Sélecteur de langue du menu : petit, langue courante soulignée. */
.wp-block-navigation .lang-item a {
	font-size: var(--wp--preset--font-size--petit);
}
.wp-block-navigation .current-lang > a {
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 0.3em;
}

/* FR | EN : codes rapprochés et séparés par un trait (masqué pour les lecteurs d'écran). */
.wp-block-navigation__responsive-container:not(.is-menu-open) .lang-item + .lang-item {
	margin-inline-start: calc(var(--wp--preset--spacing--20) - var(--wp--style--block-gap, 2em));
}
.wp-block-navigation__responsive-container:not(.is-menu-open) .lang-item + .lang-item::before,
.dkh-langues-pied li + li::before {
	content: "|" / "";
	margin-inline-end: var(--wp--preset--spacing--20);
	color: var(--wp--preset--color--texte-secondaire);
}

/* Réalisation sans image : zone hachurée « Capture du projet ». */
.dkh-capture-absente {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 16 / 9;
	background: repeating-linear-gradient(135deg, transparent 0 10px, var(--wp--preset--color--filet) 10px 11px);
	font-size: var(--wp--preset--font-size--petit);
	color: var(--wp--preset--color--texte-secondaire);
}

/* Cartes : survol et focus sobres (légère élévation) ; aucun mouvement si prefers-reduced-motion. */
.wp-block-group.is-style-carte {
	transition: transform 0.15s ease-out, box-shadow 0.15s ease-out;
}
.wp-block-post-template .is-style-carte:hover, .wp-block-post-template .is-style-carte:focus-within {
	transform: translateY(-3px);
	box-shadow: var(--wp--preset--shadow--douce);
}
.is-style-carte .wp-block-post-title a {
	text-decoration: none;
}
.is-style-carte:hover .wp-block-post-title a, .is-style-carte .wp-block-post-title a:focus-visible {
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 0.2em;
}

/* Navigation entre études de cas. */
.dkh-nav-projets {
	gap: var(--wp--preset--spacing--40);
}
.dkh-nav-projets .post-navigation-link-previous, .dkh-nav-projets .post-navigation-link-next {
	font-family: var(--wp--preset--font-family--titres);
	font-weight: 600;
}

/* Bandeau « Outils que j'intègre ». */
.dkh-outils {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--20);
	margin: 0;
	padding: 0;
	list-style: none;
	max-width: none !important;
}
.dkh-outils li {
	padding: var(--wp--preset--spacing--10) var(--wp--preset--spacing--30);
	border: 1px solid var(--wp--preset--color--contour);
	background: var(--wp--preset--color--papier);
	font-size: var(--wp--preset--font-size--petit);
	font-weight: 600;
}

/* Couverture générée d'une réalisation sans image : type, nom, outils ; tailles relatives à la couverture. */
.dkh-couverture {
	container-type: inline-size;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 0.5rem;
	aspect-ratio: 16 / 9;
	padding: clamp(1rem, 6cqi, 3rem);
	box-sizing: border-box;
	overflow: hidden;
}
.dkh-couverture--sable {
	background: var(--wp--preset--color--sable);
	color: var(--wp--preset--color--encre);
}
.dkh-couverture--encre {
	background: var(--wp--preset--color--encre);
	color: var(--wp--preset--color--papier);
}
.dkh-couverture--ocre {
	background: var(--wp--preset--color--ocre);
	color: var(--wp--preset--color--encre);
}
.dkh-couverture__type, .dkh-couverture__outils {
	font-family: var(--wp--preset--font-family--titres);
	font-size: clamp(0.7rem, 3.4cqi, 1rem);
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.dkh-couverture__type::before {
	content: '';
	display: inline-block;
	width: 1.5em;
	height: 3px;
	margin-right: 0.6em;
	vertical-align: 0.25em;
	background: var(--wp--preset--color--ocre);
}
.dkh-couverture--ocre .dkh-couverture__type::before {
	background: var(--wp--preset--color--encre);
}
.dkh-couverture__titre {
	font-family: var(--wp--preset--font-family--titres);
	font-size: clamp(1.6rem, 11cqi, 5rem);
	font-weight: 800;
	line-height: 1;
	letter-spacing: -0.02em;
	overflow-wrap: anywhere;
}
.dkh-couverture__outils {
	opacity: 0.85;
	font-weight: 500;
	letter-spacing: 0.04em;
	text-transform: none;
}
.is-style-carte .dkh-couverture {
	border-bottom: 1px solid var(--wp--preset--color--encre);
}

/* Fil d'Ariane des études de cas : « Réalisations / Titre ». */
.dkh-fil-ariane {
	gap: 0.4em;
}
.dkh-fil-ariane > .wp-block-post-title::before {
	content: '/';
	margin-right: 0.4em;
	color: var(--wp--preset--color--texte-secondaire);
}

/* Versions successives d'une étude de cas. */
.dkh-version {
	padding-block: var(--wp--preset--spacing--20);
	border-top: 1px solid var(--wp--preset--color--filet);
}

/* Section de la liste des réalisations. */
.dkh-section-liste {
	padding-bottom: var(--wp--preset--spacing--70);
}

/* Étude de cas : titres de section plus petits que les titres de page. */
.single-dkh_realisation .wp-block-post-content h2 {
	font-size: var(--wp--preset--font-size--titre-m);
}
.single-dkh_realisation .wp-block-post-content h3 {
	font-size: var(--wp--preset--font-size--chapo);
}

/* Textes posés sur les zones hachurées : fond uni pour la lisibilité. */
.dkh-capture-absente span, .is-style-emplacement p {
	background: var(--wp--preset--color--papier);
	padding: 0.2em 0.6em;
}

/* À propos : parcours en frise (trait ocre, une pastille par étape). */
.dkh-frise {
	border-inline-start: 2px solid var(--wp--preset--color--ocre);
	padding-inline-start: var(--wp--preset--spacing--50);
}
.dkh-frise-etape {
	position: relative;
}
.dkh-frise-etape + .dkh-frise-etape {
	margin-block-start: var(--wp--preset--spacing--60);
}
.dkh-frise-etape::before {
	content: "";
	position: absolute;
	top: 0.2em;
	inset-inline-start: calc(-1 * var(--wp--preset--spacing--50) - 1px);
	width: 0.875rem;
	height: 0.875rem;
	border: 3px solid var(--wp--preset--color--ocre);
	border-radius: 50%;
	background: var(--wp--preset--color--papier);
	transform: translateX(-50%);
}
.dkh-frise-etape > .is-style-surtitre::before {
	display: none;
}
.dkh-frise-etape > h3 {
	margin-block-start: var(--wp--preset--spacing--10);
}
@media (min-width: 782px) {
	.dkh-colonne-collante > * {
		position: sticky;
		top: var(--wp--preset--spacing--50);
	}
}

/* À propos : faits clés de l'encart « Aujourd'hui ». */
ul.dkh-faits {
	display: grid;
	gap: var(--wp--preset--spacing--30);
	margin: 0;
	padding: 0;
	list-style: none;
}
.dkh-faits li {
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
	border-inline-start: 4px solid var(--wp--preset--color--ocre);
	background: var(--wp--preset--color--papier);
	color: var(--wp--preset--color--texte-secondaire);
}
.dkh-faits strong {
	display: block;
	color: var(--wp--preset--color--encre);
	font-family: var(--wp--preset--font-family--titres);
	font-size: var(--wp--preset--font-size--chapo);
}

/* Questions fréquentes : blocs Détails ouverts un par un, signe + / – à droite. */
.dkh-faq > .wp-block-details {
	margin: 0;
	border-block-end: 1px solid var(--wp--preset--color--filet);
}
.dkh-faq > .wp-block-details:first-child {
	border-block-start: 1px solid var(--wp--preset--color--filet);
}
.dkh-faq summary {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: var(--wp--preset--spacing--30);
	padding-block: var(--wp--preset--spacing--30);
	font-family: var(--wp--preset--font-family--titres);
	font-weight: 600;
	list-style: none;
	cursor: pointer;
}
.dkh-faq summary::-webkit-details-marker {
	display: none;
}
.dkh-faq summary::after {
	content: "+" / "";
	flex: none;
	font-size: var(--wp--preset--font-size--chapo);
	line-height: 1;
}
.dkh-faq details[open] > summary::after {
	content: "–" / "";
}
.dkh-faq summary:hover {
	text-decoration: underline;
	text-underline-offset: 0.3em;
}
.dkh-faq details > :not(summary) {
	max-width: 65ch;
	margin-block: 0 var(--wp--preset--spacing--30);
}

/*
 * Mode sombre : les couleurs de la palette sont redéfinies avec leurs équivalents sombres
 * (settings.custom.sombre de theme.json). Suit le réglage du système, sauf choix explicite du
 * visiteur (bouton de l'en-tête : data-theme="clair" ou "sombre" sur <html>).
 * La bande « Section forte » (appel final) est une île sombre dans le mode clair.
 */
:root {
	color-scheme: light;
}
:root[data-theme="sombre"],
.is-style-section-forte {
	--wp--preset--color--encre: var(--wp--custom--sombre--encre);
	--wp--preset--color--papier: var(--wp--custom--sombre--papier);
	--wp--preset--color--sable: var(--wp--custom--sombre--sable);
	--wp--preset--color--ocre: var(--wp--custom--sombre--ocre);
	--wp--preset--color--succes: var(--wp--custom--sombre--succes);
	--wp--preset--color--alerte: var(--wp--custom--sombre--alerte);
	--wp--preset--color--erreur: var(--wp--custom--sombre--erreur);
	--wp--preset--color--texte-secondaire: var(--wp--custom--sombre--texte-secondaire);
	--wp--preset--color--contour: var(--wp--custom--sombre--contour);
	--wp--preset--color--filet: var(--wp--custom--sombre--filet);
	--wp--preset--color--encre-survol: var(--wp--custom--sombre--encre-survol);
	--wp--preset--color--papier-survol: var(--wp--custom--sombre--papier-survol);
	--wp--custom--ombre: var(--wp--custom--sombre--ombre);
	color-scheme: dark;
}
@media (prefers-color-scheme: dark) {
	:root:not([data-theme="clair"]) {
		--wp--preset--color--encre: var(--wp--custom--sombre--encre);
		--wp--preset--color--papier: var(--wp--custom--sombre--papier);
		--wp--preset--color--sable: var(--wp--custom--sombre--sable);
		--wp--preset--color--ocre: var(--wp--custom--sombre--ocre);
		--wp--preset--color--succes: var(--wp--custom--sombre--succes);
		--wp--preset--color--alerte: var(--wp--custom--sombre--alerte);
		--wp--preset--color--erreur: var(--wp--custom--sombre--erreur);
		--wp--preset--color--texte-secondaire: var(--wp--custom--sombre--texte-secondaire);
		--wp--preset--color--contour: var(--wp--custom--sombre--contour);
		--wp--preset--color--filet: var(--wp--custom--sombre--filet);
		--wp--preset--color--encre-survol: var(--wp--custom--sombre--encre-survol);
		--wp--preset--color--papier-survol: var(--wp--custom--sombre--papier-survol);
		--wp--custom--ombre: var(--wp--custom--sombre--ombre);
		color-scheme: dark;
	}
}
.is-style-section-forte {
	background: var(--wp--preset--color--papier);
	color: var(--wp--preset--color--encre);
}
:root[data-theme="sombre"] :is(.is-style-section-forte, .dkh-couverture:not(.dkh-couverture--ocre)) {
	background: var(--wp--preset--color--sable);
	color: var(--wp--preset--color--encre);
}
@media (prefers-color-scheme: dark) {
	:root:not([data-theme="clair"]) :is(.is-style-section-forte, .dkh-couverture:not(.dkh-couverture--ocre)) {
		background: var(--wp--preset--color--sable);
		color: var(--wp--preset--color--encre);
	}
}
.is-style-section-forte :is(h1, h2, h3, h4) {
	color: inherit;
}

/* Texte posé sur l'ocre : toujours foncé, dans les deux modes (contraste 8,8:1). */
mark.has-ocre-background-color,
.has-ocre-background-color,
.dkh-couverture--ocre {
	color: var(--wp--custom--sur-ocre);
}

/* Bouton « Accent » (règle 60-30-10 : l'ocre est réservé à l'action principale). */
.wp-block-button.is-style-accent .wp-block-button__link:hover,
.wp-block-button.is-style-accent .wp-block-button__link:focus-visible {
	background: color-mix(in srgb, var(--wp--preset--color--ocre) 82%, var(--wp--custom--sur-ocre));
	border-color: color-mix(in srgb, var(--wp--preset--color--ocre) 82%, var(--wp--custom--sur-ocre));
	color: var(--wp--custom--sur-ocre);
}
.wp-block-button.is-style-accent .wp-block-button__link:focus-visible {
	outline: 2px solid var(--wp--preset--color--encre);
	outline-offset: 3px;
}

/* Bascule clair / sombre de l'en-tête (affichée par JavaScript seulement). */
.dkh-mode {
	display: inline-grid;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	padding: 0;
	border: 1px solid var(--wp--preset--color--contour);
	border-radius: 50%;
	background: transparent;
	color: var(--wp--preset--color--encre);
	cursor: pointer;
}
.dkh-mode[hidden] {
	display: none;
}
.dkh-mode:hover {
	background: var(--wp--preset--color--papier-survol);
}
.dkh-mode:focus-visible {
	outline: 2px solid var(--wp--preset--color--encre);
	outline-offset: 3px;
}
.dkh-mode svg {
	width: 1.25rem;
	height: 1.25rem;
}
.dkh-mode[aria-pressed="true"] .dkh-mode__lune,
.dkh-mode[aria-pressed="false"] .dkh-mode__soleil {
	display: none;
}

/* Typographie : coupures de lignes équilibrées dans les titres, pas de mot seul en fin de
   paragraphe, crénage des polices activé. */
body {
	font-kerning: normal;
	text-rendering: optimizeLegibility;
}
h1, h2, h3, h4, .wp-block-details summary {
	text-wrap: balance;
}
p, li, figcaption {
	text-wrap: pretty;
}
h1 {
	letter-spacing: -0.02em;
}
blockquote {
	hanging-punctuation: first;
}

/* Surtitre long (plus de cinq mots) : casse normale, plus lisible que les capitales. */
.is-style-surtitre.dkh-casse-normale {
	letter-spacing: 0.01em;
	text-transform: none;
}

/* Petits écrans : la bascule quitte l'en-tête (le nom tient sur une ligne) et reste dans le pied
   de page, à côté du choix de la langue. */
@media (max-width: 599px) {
	header .dkh-mode {
		display: none;
	}
}
@media (min-width: 600px) {
	footer .dkh-mode {
		display: none;
	}
}

/* Page terminée par une bande pleine largeur (ex. appel final sombre) : la bande touche le pied
   de page, sans l'espace que WordPress place entre les blocs de premier niveau. */
.wp-site-blocks > main:has(> .entry-content > .alignfull:last-child) + footer.wp-block-template-part {
	margin-block-start: 0;
}

/* Cartes d'offres (Services) et « Essayez avant de décider » (accueil) : même hauteur, marges
   intérieures ; offre recommandée en ocre ; boutons des cartes alignés en bas. */
.wp-block-columns:has(> .wp-block-column > :is(.dkh-offre, .dkh-essai)) > .wp-block-column {
	display: flex;
}
.dkh-offre,
.dkh-essai {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: var(--wp--preset--spacing--20);
	padding: var(--wp--preset--spacing--40);
}
:is(.dkh-offre, .dkh-essai) > * {
	margin: 0;
}
.dkh-essai > .wp-block-buttons {
	margin-top: auto;
	padding-top: var(--wp--preset--spacing--20);
}
.dkh-offre > .has-titre-m-font-size {
	font-family: var(--wp--preset--font-family--titres);
	font-weight: 800;
	line-height: 1.2;
}
.dkh-offre > ul {
	padding-inline-start: 1.1em;
}
.dkh-offre.dkh-offre--recommandee {
	border: 2px solid var(--wp--preset--color--ocre);
	box-shadow: var(--wp--preset--shadow--douce);
}
.is-style-carte .dkh-couverture {
	padding: clamp(0.75rem, 5cqi, 2rem);
}
.is-style-carte .dkh-couverture__titre {
	font-size: clamp(1.1rem, 7.5cqi, 2.4rem);
}

/* Étude de cas : couverture générée moins haute (la page commence par le titre et le résumé). */
.dkh-couverture.dkh-couverture-etude {
	aspect-ratio: auto;
	min-height: clamp(11rem, 18vw, 16rem);
	padding: clamp(1.25rem, 3cqi, 2.25rem) clamp(1.25rem, 4cqi, 3rem);
}
.dkh-couverture-etude .dkh-couverture__titre {
	font-size: clamp(1.6rem, 5cqi, 3rem);
}

/* Pages composées : les bandes pleine largeur se touchent (pas d'espace blanc entre deux fonds). */
.wp-block-post-content > .alignfull + .alignfull {
	margin-block-start: 0;
}

/* En-tête des pages intérieures (Services, Réalisations, À propos, Contact, Démo…) : plus compact
   que celui de l'accueil. */
body:not(.home) .wp-block-post-content > .is-style-section:first-child {
	padding-top: var(--wp--preset--spacing--60);
	padding-bottom: var(--wp--preset--spacing--60);
}
body:not(.home) .wp-block-post-content > .is-style-section:first-child h1 {
	font-size: var(--wp--preset--font-size--titre-l);
}
/* !important : les classes de taille de WordPress (has-*-font-size) sont elles-mêmes en !important. */
body:not(.home) .wp-block-post-content > .is-style-section:first-child .has-chapo-font-size {
	font-size: var(--wp--preset--font-size--texte) !important;
}

/* Services : ligne de réassurance sous les boutons ; étapes numérotées. */
.dkh-reassurance {
	color: var(--wp--preset--color--texte-secondaire);
}
ol.dkh-etapes {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
	gap: var(--wp--preset--spacing--40);
	max-width: none;
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: etape;
}
ol.dkh-etapes > li {
	counter-increment: etape;
	padding-top: var(--wp--preset--spacing--30);
	border-top: 2px solid var(--wp--preset--color--ocre);
}
ol.dkh-etapes > li::before {
	content: counter(etape, decimal-leading-zero) / "";
	display: block;
	margin-bottom: var(--wp--preset--spacing--10);
	color: var(--wp--preset--color--texte-secondaire);
	font-family: var(--wp--preset--font-family--titres);
	font-size: var(--wp--preset--font-size--petit);
	font-weight: 600;
}

/* Accueil : en-tête resserré pour tenir dans la hauteur de l'écran. */
.home .wp-block-post-content > .is-style-section:first-child {
	padding-top: var(--wp--preset--spacing--60);
	padding-bottom: var(--wp--preset--spacing--60);
}
