/* ==========================================================================
   Ernest — ajustements que theme.json ne sait pas exprimer.
   Charte V3 (9 oct. 2026). Combinaisons texte/fond autorisées (ratio ≥ 4,5) :
   blanc/bleu, sable/bleu, noir/orange, blanc/noir, noir/sable, bleu/blanc,
   bleu/sable, orange/noir, noir/blanc, sable/noir.
   Interdites : orange sur clair, bleu sur noir ou orange, noir sur bleu,
   blanc ou sable sur orange.
   ========================================================================== */

:root {
	--e-bleu: var(--wp--preset--color--bleu);
	--e-orange: var(--wp--preset--color--orange);
	--e-noir: var(--wp--preset--color--noir);
	--e-sable: var(--wp--preset--color--sable);
	--e-blanc: var(--wp--preset--color--blanc);
	--e-filet: color-mix(in srgb, currentColor 30%, transparent);
}

.skip-link.screen-reader-text:focus {
	background: var(--e-noir);
	color: var(--e-blanc);
}

/* En-tête ---------------------------------------------------------------- */
.ernest-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: var(--e-blanc);
}
.admin-bar .ernest-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .ernest-header { top: 0; } }

.ernest-logo { margin: 0; line-height: 0; }
.ernest-logo a { display: inline-block; }
.ernest-logo img { display: block; height: auto; }
.ernest-header .ernest-logo img { width: clamp(150px, 16vw, 200px); }
.ernest-footer .ernest-logo img { width: 190px; }

.ernest-header .wp-block-navigation a { text-decoration: none; }
.ernest-header .wp-block-navigation a:hover { color: var(--e-bleu); }
/* Liste déroulante (bureau) : le menu mobile ouvert a ses propres règles plus bas. */
.ernest-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container {
	border: 1px solid var(--e-noir) !important;
	font-family: var(--wp--preset--font-family--texte);
	font-weight: 400;
	font-size: var(--wp--preset--font-size--s);
	min-width: 16rem !important;
}
.ernest-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container a { padding: 0.55rem 1rem !important; }

/* Menu mobile (sous 600 px, seuil du bloc Navigation) : bouton à droite,
   rubriques alignées à gauche, séparées par un filet. */
@media (max-width: 599px) {
	.ernest-header .wp-block-navigation { order: 2; }
}
.ernest-header .wp-block-navigation__responsive-container.is-menu-open {
	--navigation-layout-justification-setting: flex-start;
	--navigation-layout-justify: flex-start;
	--navigation-layout-align: flex-start;
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30) var(--wp--preset--spacing--50);
}
.ernest-header .is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: 4rem;
	align-items: stretch;
}
.ernest-header .is-menu-open .wp-block-navigation__container {
	align-items: stretch;
	gap: 0 !important;
	width: 100%;
}
.ernest-header .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item {
	align-items: flex-start;
	width: 100%;
	padding-block: 1.1rem;
	border-top: 1px solid var(--e-filet);
}
.ernest-header .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:last-child { border-bottom: 1px solid var(--e-filet); }
.ernest-header .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	font-size: var(--wp--preset--font-size--xl);
	line-height: 1.1;
}
.ernest-header .is-menu-open .wp-block-navigation__submenu-container {
	align-items: flex-start;
	gap: 0;
	padding: 0.5rem 0 0 !important;
	font-family: var(--wp--preset--font-family--texte);
	font-weight: 400;
	font-size: var(--wp--preset--font-size--m);
}
.ernest-header .is-menu-open .wp-block-navigation__submenu-container a { padding: 0.45rem 0 !important; }

/* Boutons : trois variantes conformes à la charte ----------------------- */
.wp-block-button.is-style-bleu .wp-block-button__link { background: var(--e-bleu); color: var(--e-blanc); }
.wp-block-button.is-style-noir .wp-block-button__link { background: var(--e-noir); color: var(--e-blanc); }
.wp-block-button.is-style-bleu .wp-block-button__link:hover,
.wp-block-button.is-style-noir .wp-block-button__link:hover { background: var(--e-orange); color: var(--e-noir); }
/* Sur fond noir, le survol par défaut (noir) disparaîtrait. */
.has-noir-background-color .wp-block-button:not([class*="is-style-"]) .wp-block-button__link:hover { background: var(--e-blanc); color: var(--e-noir); }

/* Surtitre --------------------------------------------------------------- */
.is-style-surtitre {
	font-family: var(--wp--preset--font-family--titre);
	font-weight: 700;
	font-size: var(--wp--preset--font-size--s);
	text-transform: uppercase;
	letter-spacing: 0.02em;
	line-height: 1.3;
}

/* Étiquette surlignée (domaines) ----------------------------------------- */
.wp-block-heading.is-style-etiquette {
	display: inline;
	font-size: var(--wp--preset--font-size--l);
	padding: 0.05em 0.3em;
	box-decoration-break: clone;
	-webkit-box-decoration-break: clone;
	background: var(--e-bleu);
	color: var(--e-blanc);
}
.wp-block-heading.is-style-etiquette.has-orange-background-color,
.wp-block-heading.is-style-etiquette.has-sable-background-color,
.wp-block-heading.is-style-etiquette.has-blanc-background-color { color: var(--e-noir); }
.wp-block-heading.is-style-etiquette.has-noir-background-color { color: var(--e-blanc); }
.wp-block-heading.is-style-etiquette a { text-decoration: none; }
.wp-block-heading.is-style-etiquette a:hover { text-decoration: underline; }

/* Phrase surlignée ------------------------------------------------------- */
.is-style-surligne {
	font-family: var(--wp--preset--font-family--titre);
	font-weight: 700;
	font-size: var(--wp--preset--font-size--xl);
	line-height: 1.25;
}
.is-style-surligne mark {
	background: var(--e-sable);
	color: var(--e-noir);
	padding: 0 0.2em;
	box-decoration-break: clone;
	-webkit-box-decoration-break: clone;
}

/* Item numéroté « 01 ___ Titre » ---------------------------------------- */
.is-style-item-numerote {
	display: grid;
	grid-template-columns: auto 1fr;
	column-gap: 0.75rem;
	align-items: baseline;
	padding-block: 1.5rem;
	border-top: 1px solid var(--e-filet);
}
.is-style-item-numerote > * { margin: 0 !important; }
.is-style-item-numerote > .ernest-num {
	font-size: var(--wp--preset--font-size--xs);
	display: flex;
	align-items: center;
	gap: 0.5rem;
	grid-row: 1;
}
.is-style-item-numerote > .ernest-num::after {
	content: "";
	width: 1.6rem;
	height: 1px;
	background: currentColor;
}
.is-style-item-numerote > :not(.ernest-num) { grid-column: 2; }
.is-style-item-numerote > .wp-block-heading { grid-row: 1; }
.is-style-item-numerote > p:not(.ernest-num) { margin-top: 0.5rem !important; }

/* Média avec tuiles flottantes ----------------------------------------- */
.ernest-media {
	position: relative;
	isolation: isolate;
}
.ernest-media > .wp-block-image:not(.is-style-tuile) { margin: 0; }
.ernest-media > .wp-block-image:not(.is-style-tuile) img {
	width: 100%;
	height: auto;
	display: block;
	filter: grayscale(1);
}
.ernest-media > .is-style-tuile {
	position: absolute;
	margin: 0 !important;
	width: clamp(2.75rem, 6vw, 3.75rem);
	z-index: 2;
}
.is-style-tuile img { display: block; width: 100%; height: auto; }
.ernest-media > .wp-block-image.ernest-couleur img,
.ernest-media > .wp-block-image.ernest-composition img { filter: none; }

.tuile-pos-1 { top: 52%; left: -5%; }
.tuile-pos-2 { top: 40%; left: 3%; }
.tuile-pos-3 { bottom: 4%; right: 4%; }
.tuile-pos-4 { bottom: -5%; right: -5%; }
.tuile-pos-5 { top: 6%; right: -5%; }
.tuile-pos-6 { top: -7%; right: 18%; }
.tuile-pos-7 { bottom: 8%; left: -6%; }
.tuile-pos-8 { bottom: -18%; right: 22%; }

/* Bloc de texte avec tuiles : réserver la place des tuiles à droite. */
.ernest-marge-tuiles { padding-right: clamp(0rem, 6vw, 4.5rem); }
@media (max-width: 781px) {
	.ernest-media > .is-style-tuile { width: 2.6rem; }
	.tuile-pos-1, .tuile-pos-7 { left: 2%; }
	.tuile-pos-2 { top: 30%; left: 2%; }
	.tuile-pos-1 { top: 48%; }
	.tuile-pos-4, .tuile-pos-5 { right: 2%; }
	.tuile-pos-3 { bottom: 14%; }
}

/* En-tête mobile : logo plus compact, bouton sur une ligne. */
.ernest-header .wp-block-button__link { white-space: nowrap; }
@media (max-width: 600px) {
	.ernest-header .ernest-logo img { width: 130px; }
	.ernest-header .wp-block-button__link { padding: 0.45rem 0.75rem; font-size: 1rem !important; }
}

/* Cartes des piliers ---------------------------------------------------- */
.ernest-pilier {
	border-radius: 6px;
	height: 100%;
	display: flex;
	flex-direction: column;
}
.ernest-pilier > .wp-block-buttons { margin-top: auto !important; padding-top: 1.5rem; }
.ernest-pilier .ernest-icone { width: 3.5rem; margin: 0 0 0.5rem; }
.ernest-pilier .ernest-icone img { display: block; width: 100%; height: auto; }

/* Domaines d'intervention : anneau -------------------------------------- */
.ernest-anneau { max-width: 360px; margin-inline: auto; }
.ernest-anneau svg { width: 100%; height: auto; display: block; }
.ernest-domaine { padding-bottom: 1.25rem; border-bottom: 1px solid var(--e-noir); }
.ernest-domaine p { margin-top: 0.75rem; }
.ernest-domaines-droite { text-align: right; }
@media (max-width: 781px) {
	.ernest-domaines-droite { text-align: left; }
	.ernest-anneau { max-width: 260px; }
}

/* Chiffres clés --------------------------------------------------------- */
.ernest-chiffre .ernest-valeur {
	font-family: var(--wp--preset--font-family--titre);
	font-weight: 700;
	font-size: var(--wp--preset--font-size--chiffre);
	line-height: 1;
	margin: 0;
}
.ernest-chiffre { padding-bottom: 1.75rem; border-bottom: 1px solid var(--e-filet); }
.ernest-chiffre:last-child { border-bottom: 0; }

/* Emplacement photo provisoire ----------------------------------------- */
.ernest-emplacement {
	border: 1px solid var(--e-noir);
	min-height: 18rem;
	display: grid;
	place-items: center;
	text-align: center;
}

/* FAQ ------------------------------------------------------------------- */
.ernest-faq { counter-reset: faq; }
.ernest-faq .wp-block-details {
	border-bottom: 1px solid var(--e-noir);
	padding-block: 1.25rem;
	margin: 0;
}
.ernest-faq .wp-block-details:first-of-type { border-top: 1px solid var(--e-noir); }
.ernest-faq .wp-block-details summary {
	font-family: var(--wp--preset--font-family--titre);
	font-weight: 700;
	font-size: var(--wp--preset--font-size--l);
	color: var(--e-bleu);
	cursor: pointer;
	list-style: none;
	display: grid;
	grid-template-columns: 4.5rem 1fr auto;
	align-items: baseline;
}
.ernest-faq .wp-block-details summary::-webkit-details-marker { display: none; }
.ernest-faq .wp-block-details summary::before {
	content: counter(faq, decimal-leading-zero);
	counter-increment: faq;
	font-family: var(--wp--preset--font-family--texte);
	font-weight: 400;
	font-size: var(--wp--preset--font-size--xs);
	border-bottom: 1px solid currentColor;
	width: fit-content;
	padding-right: 1.6rem;
}
.ernest-faq .wp-block-details summary::after {
	content: "+";
	font-family: var(--wp--preset--font-family--texte);
	font-weight: 400;
	font-size: 1.5rem;
	line-height: 1;
	padding-left: 1rem;
}
.ernest-faq .wp-block-details[open] summary::after { content: "–"; }
.ernest-faq .wp-block-details > :not(summary) { margin-left: 4.5rem; margin-top: 0.75rem; }
@media (max-width: 600px) {
	.ernest-faq .wp-block-details summary { grid-template-columns: 3rem 1fr auto; }
	.ernest-faq .wp-block-details > :not(summary) { margin-left: 0; }
}

/* Pied de page ---------------------------------------------------------- */
.ernest-footer a { text-decoration: none; }
.ernest-footer a:hover { text-decoration: underline; }
.ernest-footer .wp-block-heading { margin-bottom: 0.5rem; }
.ernest-footer ul { list-style: none; padding: 0; margin: 0; }
.ernest-footer li + li { margin-top: 0.35rem; }
.ernest-mentions { font-size: var(--wp--preset--font-size--xs); }

/* Recrutement ----------------------------------------------------------- */
.ernest-annonces > li { border-top: 1px solid var(--e-noir); }
.ernest-annonces > li:last-child { border-bottom: 1px solid var(--e-noir); }
.ernest-annonce-ligne { padding-block: 1.5rem; }
.ernest-annonce-ligne .wp-block-post-title a { text-decoration: none; }
.ernest-annonce-ligne .wp-block-post-title a:hover { color: var(--e-bleu); }
.ernest-annonce-ligne p { margin: 0; }
.ernest-lien-fleche {
	font-family: var(--wp--preset--font-family--titre);
	font-weight: 700;
	font-size: 1.125rem;
	text-decoration: none;
}
.ernest-lien-fleche::after { content: " →"; }

@media (prefers-reduced-motion: reduce) {
	* { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}

/* Bandeau d'annonce sous l'en-tête (communiqué de lancement). Lien orange : texte orange uniquement sur fond noir. */
.ernest-bandeau { padding-block: 0.75rem; }
.wp-site-blocks > .ernest-bandeau, .wp-site-blocks > .ernest-bandeau + * { margin-block-start: 0; }
.ernest-bandeau p { margin: 0; }
.ernest-bandeau a { color: var(--e-orange); text-underline-offset: 3px; margin-left: 0.5rem; white-space: nowrap; }
.ernest-bandeau a:hover { color: var(--e-blanc); }

/* Pages intérieures : fiches compétences et portraits ------------------- */
.ernest-chapo { max-width: 40rem; }
.ernest-prestations { list-style: none; padding: 0; margin: 0; }
.ernest-prestations li { padding-block: 1rem; border-top: 1px solid var(--e-filet); margin: 0; }
.ernest-prestations li:last-child { border-bottom: 1px solid var(--e-filet); }
.ernest-prestations strong { font-family: var(--wp--preset--font-family--titre); }
.ernest-referents h3 a, .ernest-referents h2 a { color: inherit; text-decoration: none; }
.ernest-referents h3 a:hover, .ernest-referents h2 a:hover { text-decoration: underline; text-underline-offset: 4px; }
.ernest-referents p { margin-top: 0.5rem; }
.ernest-referents .ernest-linkedin { margin-top: 0.25rem; }
.ernest-portrait-vignette img, .ernest-portrait-photo img { width: 100%; height: auto; display: block; border-radius: 6px; }
.ernest-portrait-vignette { max-width: 16rem; margin: 0 0 0.75rem; }
.ernest-portrait-photo { position: sticky; top: 6rem; margin: 0; }
.ernest-portrait-qualite { margin-top: 0.75rem; }
.ernest-portrait .wp-block-column > p + p { margin-top: 1rem; }
.ernest-portrait .wp-block-buttons { margin-top: 2rem; }
.ernest-etape > .ernest-num { font-family: var(--wp--preset--font-family--titre); font-weight: 700; white-space: nowrap; }
.ernest-etape > .ernest-num::after { display: none; }
.ernest-etape { grid-template-columns: 7rem 1fr; }
.ernest-etiquettes .is-style-etiquette { font-size: var(--wp--preset--font-size--m); }
@media (max-width: 781px) {
	.ernest-portrait-photo { position: static; max-width: 18rem; }
	.ernest-etape { grid-template-columns: 1fr; }
	.ernest-etape > :not(.ernest-num) { grid-column: 1; }
}

/* Pages intérieures : même base que la home retenue (rythme, titres, boutons). */
.ernest-page-interieure {
	--r-1: 0.75rem; --r-2: 1.5rem; --r-3: clamp(1.75rem, 3vw, 2.5rem); --r-4: clamp(2.5rem, 5vw, 4rem);
	--m-ease-out: cubic-bezier(0.23, 1, 0.32, 1);
}
.ernest-page-interieure main h2 { font-size: clamp(2.125rem, 3.4vw, 3rem); }
.ernest-page-interieure main .is-style-surtitre + h1,
.ernest-page-interieure main .is-style-surtitre + h2 { margin-top: var(--r-1); }
.ernest-page-interieure main h1 + p { margin-top: var(--r-2); max-width: 36rem; }
.ernest-page-interieure main h2 + .wp-block-columns,
.ernest-page-interieure main h2 + .wp-block-group { margin-top: var(--r-4) !important; }
.ernest-page-interieure .wp-element-button { transition: transform 160ms var(--m-ease-out), background-color 150ms ease, color 150ms ease; }
.ernest-page-interieure .wp-element-button:active { transform: scale(0.97); }

/* Mosaïque de tuiles de la charte (illustration des fiches). */
.ernest-mosaique {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(0.6rem, 1.6vw, 1.1rem);
	max-width: 26rem;
	margin-inline: auto;
	transform: rotate(-4deg);
}
.ernest-mosaique > * { margin: 0 !important; aspect-ratio: 1; }
.ernest-mosaique__tuile img { display: block; width: 100%; height: auto; filter: drop-shadow(0 10px 24px rgb(0 0 0 / 0.12)); }
@media (prefers-reduced-motion: no-preference) {
	.ernest-mosaique__tuile { animation: mosaique-poser 600ms var(--m-ease-out, cubic-bezier(0.23, 1, 0.32, 1)) both; }
	.ernest-mosaique__tuile:nth-child(2) { animation-delay: 60ms; }
	.ernest-mosaique__tuile:nth-child(3) { animation-delay: 120ms; }
	.ernest-mosaique__tuile:nth-child(4) { animation-delay: 180ms; }
	.ernest-mosaique__tuile:nth-child(5) { animation-delay: 240ms; }
	.ernest-mosaique__tuile:nth-child(6) { animation-delay: 300ms; }
	.ernest-mosaique__tuile:nth-child(7) { animation-delay: 360ms; }
	.ernest-mosaique__tuile:nth-child(8) { animation-delay: 420ms; }
	.ernest-mosaique__tuile:nth-child(9) { animation-delay: 480ms; }
}
@keyframes mosaique-poser {
	from { opacity: 0; transform: translateY(14px) scale(0.94); }
	to { opacity: 1; transform: none; }
}

/* Cartes « Ce que nous faisons ». */
.ernest-prestations { gap: var(--wp--preset--spacing--30); }
.ernest-prestation { border-radius: 6px; height: 100%; }
.ernest-prestation .ernest-icone { width: 3rem; margin: 0 0 var(--r-2); }
.ernest-prestation .ernest-icone img { display: block; width: 100%; height: auto; }
.ernest-prestation h3 { margin: 0; }
.ernest-prestation p { margin-top: var(--r-1); }

/* Déclencheurs : trois colonnes numérotées sur fond noir. */
.ernest-declencheurs .ernest-num {
	font-size: var(--wp--preset--font-size--xs);
	display: flex; align-items: center; gap: 0.5rem; margin: 0 0 var(--r-2);
}
.ernest-declencheurs .ernest-num::after { content: ""; width: 1.6rem; height: 1px; background: currentColor; }
.ernest-declencheurs h3 { margin: 0; }
.ernest-declencheurs p:not(.ernest-num) { margin-top: var(--r-1); }
@media (max-width: 781px) {
	.ernest-mosaique { max-width: 18rem; transform: none; }
}

/* Photos d'ambiance (équipe, expertises, contact) ---------------------- */
.ernest-ambiance img { width: 100%; height: auto; display: block; filter: grayscale(1); border-radius: 6px; }
.ernest-ambiance { margin-bottom: 0; }
