/*
Theme Name: Atelier
Theme URI: https://www.123projeille.fr/
Author: 1.2.3. Projeille
Description: Thème du site 1.2.3. Projeille : papier calque bleuté, plaques encadrées, charte rouge-vert-bleu. Contenu entièrement modifiable dans l'éditeur de blocs.
Version: 1.0.0
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: atelier
*/

/* ---------- Fond et structure ---------- */
:root {
	--at-encre: #1C2226;
	--at-bleu: #0081B8;
	--at-vert: #A4C400;
	--at-rouge: #BD0926;
	--at-papier: #EAF3F8;
	--at-gris-clair: #F5F6F7;
	--at-gris: #4A555B;
	--at-texte: #2E373C;
	--at-filet: #D3D8DB;
	--at-pale: #B9C2C7;
	--at-mono: "Martian Mono", ui-monospace, monospace;
	--at-titre: "Big Shoulders Display", "Arial Narrow", sans-serif;
	--at-ecart-section: clamp(56px, 7vw, 112px);
}

body {
	background-color: var(--at-papier);
	background-image:
		linear-gradient(rgba(0, 129, 184, 0.10) 1px, transparent 1px),
		linear-gradient(90deg, rgba(0, 129, 184, 0.10) 1px, transparent 1px);
	background-size: 32px 32px;
	border-top: 4px solid var(--at-encre);
	-webkit-font-smoothing: antialiased;
}

.wp-site-blocks { padding-top: 0; padding-bottom: 0; }

.atelier-main .wp-block-post-content > * + * {
	margin-block-start: var(--at-ecart-section);
}
.atelier-main .wp-block-post-content > .alignfull + *,
.atelier-main .wp-block-post-content > * + .alignfull {
	margin-block-start: var(--at-ecart-section);
}
.atelier-main { padding-top: clamp(40px, 5vw, 72px); padding-bottom: var(--at-ecart-section); }
.atelier-main .wp-block-post-content > .alignfull:last-child { margin-bottom: calc(-1 * var(--at-ecart-section)); }

:where(.wp-block-group.is-layout-flex) { gap: 24px; }

a { text-underline-offset: 4px; }
a:where(:not(.wp-element-button)):hover { text-decoration-color: var(--at-rouge); }

:focus-visible { outline: 3px solid var(--at-bleu); outline-offset: 2px; }

/* ---------- En-tête ---------- */
.atelier-entete {
	padding-top: 28px;
	gap: 20px 40px;
	max-width: 1280px;
	margin-inline: auto !important;
	padding-inline: clamp(16px, 4vw, 48px) !important;
	box-sizing: border-box;
}
.atelier-entete .wp-block-site-logo img {
	width: clamp(190px, 22vw, 270px);
	height: auto;
	mix-blend-mode: multiply;
}
.atelier-nav {
	font-family: var(--at-mono);
	font-size: 12px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	gap: 4px 20px;
}
.atelier-nav .wp-block-navigation-item__content,
.atelier-nav .wp-block-navigation-submenu__toggle {
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	border-bottom: 3px solid transparent;
	color: var(--at-encre);
	text-decoration: none;
}
.atelier-nav .wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content,
.atelier-nav .wp-block-navigation-item.current-menu-ancestor > .wp-block-navigation-submenu__toggle {
	border-bottom-color: var(--at-rouge);
}
.atelier-nav .wp-block-navigation__submenu-icon { color: var(--at-bleu); }
.atelier-nav .wp-block-navigation__submenu-container {
	min-width: 290px !important;
	background: #fff !important;
	border: 2px solid var(--at-encre) !important;
	box-shadow: 0 10px 24px rgba(28, 34, 38, 0.16);
	text-transform: none;
	letter-spacing: 0;
	font-family: "Public Sans", sans-serif;
	font-size: 15px;
	padding: 0 !important;
}
.atelier-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	display: flex;
	gap: 10px;
	width: 100%;
	padding: 0 16px !important;
	border-bottom: 0;
	border-top: 1px solid var(--at-filet);
	box-sizing: border-box;
}
.atelier-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content::before {
	content: "";
	flex: 0 0 6px;
	width: 6px;
	height: 6px;
	background: var(--at-bleu);
}
.atelier-nav .wp-block-navigation__submenu-container .lien-page .wp-block-navigation-item__content {
	background: var(--at-encre);
	color: #fff;
	font-weight: 700;
	border-top: 0;
}
.atelier-nav .wp-block-navigation__submenu-container .lien-page .wp-block-navigation-item__content::before { display: none; }
.atelier-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--at-papier); }
.atelier-nav .wp-block-navigation__submenu-container .lien-page .wp-block-navigation-item__content:hover { background: var(--at-texte); }
/* Les deux derniers menus déroulants s'ouvrent vers la gauche */
.atelier-nav > .wp-block-navigation__container > .has-child:nth-last-child(-n+3) > .wp-block-navigation__submenu-container { left: auto; right: 0; }

/* Menu sur téléphone */
.atelier-nav .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--at-papier) !important;
	padding: 24px clamp(16px, 4vw, 48px);
}
.atelier-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	font-size: 14px;
	gap: 6px;
}
.atelier-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	border: 0 !important;
	box-shadow: none;
	background: transparent !important;
	min-width: 0 !important;
}
.atelier-nav .wp-block-navigation__responsive-container-open,
.atelier-nav .wp-block-navigation__responsive-container-close {
	min-width: 44px;
	min-height: 44px;
	justify-content: center;
	border: 2px solid var(--at-encre);
}

/* ---------- Pied de page ---------- */
.atelier-pied {
	border-top: 2px solid var(--at-encre);
	background: var(--at-gris-clair);
}
.atelier-pied .wp-block-site-logo img { width: 200px; height: auto; mix-blend-mode: multiply; }
.atelier-pied p { font-family: var(--at-mono); font-size: 12px; letter-spacing: 0.04em; margin: 0; }
.atelier-pied p a { color: var(--at-encre); }

/* ---------- Titres ---------- */
h1, h2, h3, .is-style-titre {
	font-family: var(--at-titre);
	text-transform: uppercase;
	text-wrap: balance;
}
h1 { font-size: clamp(56px, 9vw, 140px); font-weight: 900; line-height: 0.86; margin: 0; }
h1.is-style-affiche { font-size: clamp(64px, 11vw, 168px); }
h2 { font-size: clamp(38px, 5vw, 68px); font-weight: 900; line-height: 0.92; margin: 0; }
h2.is-style-moyen { font-size: clamp(32px, 4vw, 52px); line-height: 0.95; }
h3 { font-size: clamp(26px, 2.6vw, 34px); font-weight: 800; line-height: 1; margin: 0; }
h2.is-style-sobre, h3.is-style-sobre {
	font-family: "Public Sans", sans-serif;
	text-transform: none;
	font-weight: 700;
	font-size: clamp(22px, 2.4vw, 30px);
	line-height: 1.2;
}
.is-style-accroche {
	font-family: var(--at-titre) !important;
	font-weight: 800;
	font-size: clamp(28px, 3.2vw, 44px) !important;
	line-height: 1.05;
	text-transform: uppercase;
	color: var(--at-bleu);
	margin: 0;
}
.is-style-etiquette {
	font-family: var(--at-mono) !important;
	font-size: 12px !important;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--at-gris);
	margin: 0;
}
.is-style-etiquette strong { color: var(--at-rouge); font-weight: 400; }
.is-style-etiquette.has-text-color { color: inherit; }
.is-style-chapo { font-size: 18px; color: var(--at-texte); max-width: 700px; }
.is-style-chapo + .is-style-chapo { margin-top: 12px; }
.is-style-chiffre {
	font-family: var(--at-titre) !important;
	font-weight: 900;
	font-size: 64px !important;
	line-height: 0.9;
	font-variant-numeric: tabular-nums;
	margin: 0;
}
.is-style-chiffre-moyen {
	font-family: var(--at-titre) !important;
	font-weight: 900;
	font-size: 40px !important;
	line-height: 0.95;
	color: var(--at-bleu);
	margin: 0;
}
.is-style-guillemet {
	font-family: var(--at-titre) !important;
	font-weight: 900;
	font-size: clamp(96px, 12vw, 180px) !important;
	line-height: 0.7;
	color: var(--at-rouge);
	margin: 0;
}
.is-style-texte-lu { font-size: 17px; max-width: 760px; }
.is-style-texte-lu + .is-style-texte-lu { margin-top: 14px; }

/* Registre : petit carré de couleur devant une étiquette */
.is-style-registre {
	display: flex;
	align-items: center;
	gap: 12px;
	font-family: var(--at-mono) !important;
	font-size: 12px !important;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--at-gris) !important;
	margin: 0;
}
.is-style-registre::before {
	content: "";
	width: 14px;
	height: 14px;
	background: currentColor;
	border: 2px solid var(--at-encre);
	flex: 0 0 14px;
	box-sizing: border-box;
}
.is-style-registre.registre-vert::before { background: var(--at-vert); }
.is-style-registre.registre-bleu::before { background: var(--at-bleu); }
.is-style-registre.registre-rouge::before { background: var(--at-rouge); }

/* ---------- Plaques ---------- */
.is-style-plaque,
.is-style-plaque-grise,
.is-style-plaque-rivets {
	background: #fff;
	border: 2px solid var(--at-encre);
	position: relative;
}
.is-style-plaque-grise, .is-style-plaque-rivets { background: var(--at-gris-clair); }
.is-style-plaque-rivets {
	background-image:
		radial-gradient(circle at 35% 35%, #fff, #8A949A 70%, transparent 72%),
		radial-gradient(circle at 35% 35%, #fff, #8A949A 70%, transparent 72%),
		radial-gradient(circle at 35% 35%, #fff, #8A949A 70%, transparent 72%),
		radial-gradient(circle at 35% 35%, #fff, #8A949A 70%, transparent 72%);
	background-size: 10px 10px;
	background-repeat: no-repeat;
	background-position: 9px 9px, calc(100% - 9px) 9px, 9px calc(100% - 9px), calc(100% - 9px) calc(100% - 9px);
}
.plaque-corps { padding: 24px clamp(20px, 3vw, 36px) 36px; }
.plaque-corps.is-layout-flow > * + * { margin-block-start: 20px; }

/* Bandeau de titre coloré en tête de plaque */
.is-style-bandeau {
	margin: 0 !important;
	padding: 16px clamp(20px, 3vw, 36px);
	border-bottom: 2px solid var(--at-encre);
	font-size: 28px;
	font-weight: 800;
	line-height: 1;
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 16px;
	flex-wrap: wrap;
}
h3.is-style-bandeau.bandeau-grand { font-size: 34px; padding-top: 18px; padding-bottom: 18px; }
.is-style-bandeau:not(.has-background) { background: var(--at-encre); color: #fff; }
.is-style-bandeau .bandeau-code { font-family: var(--at-mono); font-size: 11px; letter-spacing: 0.08em; font-weight: 400; }
p.is-style-bandeau {
	font-family: var(--at-mono) !important;
	font-size: 11px !important;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	font-weight: 400;
	padding-top: 12px;
	padding-bottom: 12px;
}
.has-vert-background-color.is-style-bandeau { color: var(--at-encre); }

/* Filet coloré en haut d'une carte (repères) */
.is-style-filet-haut { border-top: 10px solid var(--at-encre); }
.is-style-filet-haut.filet-bleu { border-top-color: var(--at-bleu); }
.is-style-filet-haut.filet-vert { border-top-color: var(--at-vert); }
.is-style-filet-haut.filet-rouge { border-top-color: var(--at-rouge); }
.carte-corps { padding: 18px 20px 20px; height: 100%; display: flex; flex-direction: column; gap: 8px; box-sizing: border-box; }
.carte-corps > * { margin: 0 !important; }
.carte-corps .carte-source {
	margin-top: auto !important;
	padding-top: 10px;
	border-top: 1px dashed #8A949A;
	font-family: var(--at-mono);
	font-size: 11px;
	color: var(--at-gris);
}
.carte-corps .carte-libelle { font-size: 15px; line-height: 1.35; font-weight: 500; }
.carte-texte { padding: 14px 20px 18px; font-size: 15px; color: var(--at-texte); margin: 0 !important; }
.carte-titre {
	padding: 16px 20px 12px;
	border-bottom: 2px solid var(--at-encre);
}
.carte-titre > * { margin: 0 !important; }
.carte-titre > * + * { margin-top: 6px !important; }

/* Grilles de cartes */
.grille-cartes { display: grid !important; gap: 20px; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }
.grille-cartes.grille-large { grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 24px; }
.grille-cartes.grille-moyenne { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.grille-cartes.grille-registres { grid-template-columns: repeat(auto-fit, minmax(min(420px, 100%), 1fr)); gap: 32px; }
.grille-cartes > * { margin: 0 !important; }
@media (max-width: 400px) {
	.grille-cartes.grille-large { grid-template-columns: 1fr; }
}

/* Plaque à liste quadrillée (offres) */
.is-style-quadrillage {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
	list-style: none;
	margin: 0;
	padding: 0;
}
.is-style-quadrillage li {
	padding: 16px 22px 16px 42px;
	border-bottom: 1px solid var(--at-filet);
	border-right: 1px solid var(--at-filet);
	font-size: 15px;
	line-height: 1.5;
	position: relative;
	margin: 0;
}
.is-style-quadrillage li::before {
	content: "";
	position: absolute;
	left: 22px;
	top: calc(16px + 0.5em);
	width: 8px;
	height: 8px;
	background: var(--at-bleu);
}
.is-style-quadrillage.puces-rouges li::before { background: var(--at-rouge); }
.is-style-quadrillage.une-colonne { grid-template-columns: 1fr; }
.is-style-quadrillage.une-colonne li { border-right: 0; padding-top: 12px; padding-bottom: 12px; }
.is-style-quadrillage.une-colonne li::before { top: calc(12px + 0.5em); }

/* Puces étiquettes (secteurs, diplômes) */
.is-style-etiquettes {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.is-style-etiquettes li {
	padding: 7px 12px;
	border: 1.5px solid var(--at-encre);
	background: #fff;
	font-family: var(--at-mono);
	font-size: 12px;
	letter-spacing: 0.02em;
	margin: 0;
}
.is-style-etiquettes.etiquettes-fortes li { padding: 8px 14px; border-width: 2px; }
.is-style-etiquettes li.etiquette-verte, .is-style-etiquettes li:has(mark.etiquette-verte) { background: var(--at-vert); }
.is-style-etiquettes li.etiquette-bleue, .is-style-etiquettes li:has(mark.etiquette-bleue) { background: var(--at-bleu); color: #fff; }
.is-style-etiquettes mark { background: none !important; color: inherit !important; }

/* Liste de paragraphes sur fond : puces carrées simples */
.is-style-carres { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 6px; }
.is-style-carres li { padding-left: 18px; position: relative; }
.is-style-carres li::before { content: ""; position: absolute; left: 0; top: 0.55em; width: 8px; height: 8px; background: var(--at-vert); }

/* ---------- Fiche (tableau à deux colonnes) ---------- */
.wp-block-table.is-style-fiche { margin: 0; }
.wp-block-table.is-style-fiche table { border-collapse: collapse; width: 100%; table-layout: auto; }
.wp-block-table.is-style-fiche td {
	border: 0;
	padding: 5px 0;
	vertical-align: top;
	font-size: 15px;
}
.wp-block-table.is-style-fiche td:first-child {
	width: 150px;
	padding-right: 20px;
	padding-top: 8px;
	font-family: var(--at-mono);
	font-size: 11px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--at-gris);
}
.wp-block-table.is-style-fiche.fiche-etroite td:first-child { width: 120px; }
.wp-block-table.is-style-fiche thead, .wp-block-table.is-style-fiche figcaption { display: none; }

/* Liste datée (formation, postes) */
.wp-block-table.is-style-liste-datee { margin: 0; background: #fff; border: 2px solid var(--at-encre); }
.wp-block-table.is-style-liste-datee table { border-collapse: collapse; width: 100%; table-layout: auto; }
.wp-block-table.is-style-liste-datee thead { display: none; }
.wp-block-table.is-style-liste-datee td {
	border: 0;
	border-bottom: 1px solid var(--at-filet);
	padding: 12px 20px;
	vertical-align: baseline;
	font-size: 15px;
}
.wp-block-table.is-style-liste-datee tr:last-child td { border-bottom: 0; }
.wp-block-table.is-style-liste-datee td:first-child {
	width: 90px;
	padding-right: 0;
	font-family: var(--at-mono);
	font-size: 12px;
	white-space: nowrap;
}
@media (max-width: 520px) {
	.wp-block-table.is-style-liste-datee td { display: block; border-bottom: 0; padding: 2px 16px; }
	.wp-block-table.is-style-liste-datee td:first-child { padding-top: 12px; }
	.wp-block-table.is-style-liste-datee td:last-child { padding-bottom: 12px; border-bottom: 1px solid var(--at-filet); }
}

/* ---------- Boutons ---------- */
.wp-block-button .wp-block-button__link {
	font-family: var(--at-mono);
	font-size: 13px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	min-height: 48px;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 0 22px;
	border-radius: 0;
	box-sizing: border-box;
}
.wp-block-button.is-style-contour .wp-block-button__link {
	background: transparent;
	border: 2px solid currentColor;
	color: var(--at-encre);
}
.wp-block-button.is-style-contour.sur-fond-sombre .wp-block-button__link { color: #F2F4F5; }
.wp-block-button.is-style-petit .wp-block-button__link {
	min-height: 44px;
	padding: 0 18px;
	font-size: 12px;
	background: transparent;
	border: 2px solid var(--at-encre);
	color: var(--at-encre);
}
.wp-block-button .wp-block-button__link:hover { filter: brightness(1.15); }
.wp-block-button.is-style-contour .wp-block-button__link:hover,
.wp-block-button.is-style-petit .wp-block-button__link:hover { background: var(--at-encre); color: #fff; filter: none; }
.wp-block-button.is-style-contour.sur-fond-sombre .wp-block-button__link:hover { background: #F2F4F5; color: var(--at-encre); }
.wp-block-button.is-style-plein-vert .wp-block-button__link { background: var(--at-vert); color: var(--at-encre); font-weight: 600; }

.is-style-lien-souligne a, a.is-style-lien-souligne {
	font-family: var(--at-mono);
	font-size: 12px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--at-encre);
	text-decoration: underline;
	text-decoration-color: var(--at-rouge);
	text-decoration-thickness: 2px;
	text-underline-offset: 6px;
}

/* ---------- Image avec repères d'angle ---------- */
.wp-block-image.is-style-cadre-reperes { margin: 0; }
.wp-block-image.is-style-cadre-reperes img {
	width: 100%;
	height: auto;
	box-sizing: border-box;
	padding: 16px 16px 0;
	background:
		linear-gradient(var(--at-encre), var(--at-encre)) top left / 26px 2px,
		linear-gradient(var(--at-encre), var(--at-encre)) top left / 2px 26px,
		linear-gradient(var(--at-encre), var(--at-encre)) top right / 26px 2px,
		linear-gradient(var(--at-encre), var(--at-encre)) top right / 2px 26px,
		linear-gradient(var(--at-encre), var(--at-encre)) bottom left / 26px 2px,
		linear-gradient(var(--at-encre), var(--at-encre)) bottom left / 2px 26px,
		linear-gradient(var(--at-encre), var(--at-encre)) bottom right / 26px 2px,
		linear-gradient(var(--at-encre), var(--at-encre)) bottom right / 2px 26px;
	background-repeat: no-repeat;
}
.wp-block-image figcaption,
.wp-block-image .wp-element-caption {
	font-family: var(--at-mono);
	font-size: 11px;
	letter-spacing: 0.04em;
	color: var(--at-gris);
	text-align: left;
	margin-top: 12px;
}
.wp-block-image.is-style-cadre-reperes figcaption { padding-top: 6px; }
.wp-block-image.is-style-encadre img { border: 2px solid var(--at-encre); }

/* ---------- Bandes sombres ---------- */
.is-style-bande-sombre {
	background: var(--at-encre);
	color: #F2F4F5;
}
.is-style-bande-sombre a:where(:not(.wp-element-button)) { color: #F2F4F5; }
.is-style-bande-sombre .is-style-etiquette { color: var(--at-pale); }
.bande-interieur { padding-block: clamp(56px, 7vw, 96px); }
.bande-compacte { padding: clamp(28px, 4vw, 48px) !important; }

/* Grande citation (accueil) */
.wp-block-quote.is-style-grande-citation {
	border: 0;
	margin: 0;
	padding: 0;
	font-size: clamp(22px, 2.6vw, 34px);
	line-height: 1.35;
	font-weight: 500;
	text-wrap: pretty;
}
.wp-block-quote.is-style-grande-citation p { margin: 0; }
.wp-block-quote.is-style-grande-citation cite {
	display: block;
	margin-top: 24px;
	font-family: var(--at-mono);
	font-size: 12px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--at-pale);
	font-style: normal;
}

/* Témoignages */
.wp-block-quote.is-style-temoignage {
	border: 0;
	border-top: 3px solid var(--at-bleu);
	margin: 0;
	padding: 18px 0 0;
	font-size: 18px;
	line-height: 1.5;
}
.wp-block-quote.is-style-temoignage.temoignage-vert { border-top-color: var(--at-vert); }
.wp-block-quote.is-style-temoignage.temoignage-rouge { border-top-color: var(--at-rouge); }
.wp-block-quote.is-style-temoignage.temoignage-clair { border-top-color: #F2F4F5; }
.wp-block-quote.is-style-temoignage p { margin: 0; }
.wp-block-quote.is-style-temoignage p::before { content: "« "; }
.wp-block-quote.is-style-temoignage p::after { content: " »"; }
.wp-block-quote.is-style-temoignage cite {
	display: block;
	margin-top: 14px;
	font-family: var(--at-mono);
	font-size: 12px;
	font-style: normal;
	color: var(--at-pale);
}
.grille-temoignages { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr)); gap: 36px 48px; }
.grille-temoignages > * { margin: 0 !important; }

/* ---------- Vidéos ---------- */
.wp-block-embed.is-style-ecran { margin: 0; }
.wp-block-embed.is-style-ecran .wp-block-embed__wrapper { border: 2px solid var(--at-encre); background: var(--at-encre); }
.wp-block-embed.is-style-ecran figcaption,
.wp-block-embed figcaption {
	font-family: var(--at-mono);
	font-size: 11px;
	color: var(--at-gris);
	text-align: left;
	margin-top: 10px;
}
.titre-video { font-size: 28px !important; }

/* ---------- Chronologie des missions (rendue par le thème) ---------- */
.atelier-chrono { background: #fff; border: 2px solid var(--at-encre); }
.atelier-chrono__entete {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 24px;
	padding: 12px 24px;
	background: var(--at-encre);
	color: #fff;
	font-family: var(--at-mono);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	align-items: flex-end;
}
.atelier-chrono__col-mission { flex: 0 0 250px; min-width: 0; }
.atelier-chrono__col-barre { flex: 999 1 320px; min-width: 0; position: relative; }
.atelier-chrono__col-fort { flex: 1 1 260px; min-width: 0; }
.atelier-chrono__entete .atelier-chrono__col-barre { height: 16px; }
.atelier-chrono__annee { position: absolute; bottom: 0; }
.atelier-chrono__ligne {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 24px;
	padding: 16px 24px;
	border-top: 1px solid var(--at-filet);
	align-items: center;
}
.atelier-chrono__mission { display: flex; flex-direction: column; gap: 2px; }
.atelier-chrono__entreprise { font-weight: 700; font-size: 16px; line-height: 1.25; }
.atelier-chrono__fonction { font-size: 14px; color: var(--at-texte); line-height: 1.3; }
.atelier-chrono__lieu { font-family: var(--at-mono); font-size: 11px; color: var(--at-gris); }
.atelier-chrono__ligne .atelier-chrono__col-barre {
	height: 30px;
	background-color: #F3F5F6;
	background-image: repeating-linear-gradient(90deg, rgba(28, 34, 38, 0.16) 0 1px, transparent 1px var(--pas, 10%));
}
.atelier-chrono__barre {
	position: absolute;
	top: 6px;
	bottom: 6px;
	min-width: 6px;
	background: var(--at-bleu);
	box-shadow: inset 0 0 0 1px rgba(28, 34, 38, 0.35);
}
.atelier-chrono__duree {
	position: absolute;
	top: 50%;
	font-family: var(--at-mono);
	font-size: 10px;
	white-space: nowrap;
	transform: translateY(-50%);
	margin-left: 8px;
}
.atelier-chrono__duree.a-gauche { transform: translate(calc(-100% - 16px), -50%); }
.atelier-chrono__fort { display: flex; flex-direction: column; gap: 4px; }
.atelier-chrono__resultat { font-size: 14px; font-weight: 500; line-height: 1.35; padding-left: 16px; position: relative; }
.atelier-chrono__resultat::before { content: ""; position: absolute; left: 0; top: 0.45em; width: 8px; height: 8px; background: var(--at-vert); }
.atelier-chrono__activite { font-size: 13px; color: var(--at-gris); padding-left: 16px; }
@media (max-width: 700px) {
	.atelier-chrono__entete .atelier-chrono__col-fort, .atelier-chrono__entete .atelier-chrono__col-mission { display: none; }
	.atelier-chrono__entete .atelier-chrono__col-barre { flex-basis: 100%; }
	.atelier-chrono__col-mission { flex-basis: 100%; }
}
.atelier-entete-section {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-end;
	gap: 12px 32px;
}
.atelier-entete-section > * { margin: 0 !important; }

/* ---------- Frise de carrière ---------- */
.atelier-frise { background: #fff; border: 2px solid var(--at-encre); padding: 20px 24px 24px; display: flex; flex-direction: column; gap: 14px; }
.atelier-frise__rangee { display: flex; flex-wrap: wrap; gap: 6px 20px; align-items: center; }
.atelier-frise__titre { flex: 0 0 210px; min-width: 0; display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 700; line-height: 1.25; }
.atelier-frise__pastille { flex: 0 0 12px; width: 12px; height: 12px; border: 1.5px solid var(--at-encre); box-sizing: border-box; }
.atelier-frise__piste {
	flex: 999 1 320px;
	min-width: 0;
	position: relative;
	height: 40px;
	background-color: #F3F5F6;
	background-image: repeating-linear-gradient(90deg, rgba(28, 34, 38, 0.14) 0 1px, transparent 1px var(--pas, 22.7273%));
}
.atelier-frise__graduations { height: 18px; background: none; font-family: var(--at-mono); font-size: 11px; color: var(--at-gris); }
.atelier-frise__graduations span { position: absolute; bottom: 0; }
.atelier-frise__barre {
	position: absolute;
	top: 6px;
	bottom: 6px;
	min-width: 4px;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.55);
	display: flex;
	align-items: center;
	overflow: hidden;
}
.atelier-frise__barre span { padding-left: 6px; font-family: var(--at-mono); font-size: 10px; white-space: nowrap; }
@media (max-width: 700px) {
	.atelier-frise__titre { flex-basis: 100%; }
	.atelier-frise__vide { display: none; }
}

/* ---------- Coordonnées (page Contact) ---------- */
.carte-contact { text-decoration: none; color: var(--at-encre); display: flex !important; flex-direction: column; }
.carte-contact .carte-corps { gap: 10px; }
.coordonnee {
	font-size: clamp(17px, 1.6vw, 20px) !important;
	font-weight: 700;
	margin: 0;
	display: flex;
	align-items: center;
	gap: 10px;
}
.coordonnee a { color: var(--at-encre); text-decoration: none; }
.coordonnee.coordonnee-mail a { color: var(--at-bleu); text-decoration: underline; text-decoration-thickness: 2px; white-space: nowrap; }
.coordonnee.coordonnee-mail::before {
	content: "";
	flex: 0 0 22px;
	width: 22px;
	height: 16px;
	background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 16'%3E%3Crect x='1' y='1' width='20' height='14' fill='none' stroke='%230081B8' stroke-width='2'/%3E%3Cpath d='M1 1 L11 9 L21 1' fill='none' stroke='%230081B8' stroke-width='2'/%3E%3C/svg%3E");
}
.coordonnee.coordonnee-tel::before {
	content: "";
	flex: 0 0 18px;
	width: 18px;
	height: 20px;
	background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 20'%3E%3Crect x='3' y='1' width='12' height='18' rx='2' fill='none' stroke='%231C2226' stroke-width='2'/%3E%3Cpath d='M7 16 L11 16' stroke='%231C2226' stroke-width='2'/%3E%3C/svg%3E");
}
.grille-contact { display: flex !important; flex-wrap: wrap; gap: 20px; }
.grille-contact > * { flex: 1 1 260px; min-width: 0; margin: 0 !important; }
.grille-contact > .carte-mail { flex: 2 1 400px; }
.grille-contact > .bande-implantation { flex: 1 1 100%; }

/* ---------- Formulaires (Contact Form 7) ---------- */
.formulaire-atelier { background: #fff; border: 2px solid var(--at-encre); padding: clamp(20px, 3vw, 32px); }
.formulaire-atelier .wpcf7-form > p,
.formulaire-atelier .wpcf7-form label { font-family: var(--at-mono); font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; }
.formulaire-atelier .wpcf7-form p { margin: 0 0 16px; }
.formulaire-atelier input[type="text"],
.formulaire-atelier input[type="email"],
.formulaire-atelier input[type="tel"],
.formulaire-atelier textarea {
	width: 100%;
	max-width: 100%;
	min-height: 44px;
	margin-top: 6px;
	border: 1.5px solid var(--at-encre);
	border-radius: 0;
	padding: 8px 12px;
	font: 16px "Public Sans", sans-serif;
	letter-spacing: 0;
	text-transform: none;
	background: var(--at-gris-clair);
	box-sizing: border-box;
}
.formulaire-atelier textarea { min-height: 120px; resize: vertical; }
.formulaire-atelier input[type="submit"] {
	min-height: 48px;
	padding: 0 26px;
	background: var(--at-encre);
	color: #fff;
	border: 0;
	border-radius: 0;
	font-family: var(--at-mono);
	font-size: 13px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	cursor: pointer;
}
.formulaire-atelier .wpcf7-form p:has(a), .formulaire-atelier .wpcf7-form .mention-rgpd {
	font-family: "Public Sans", sans-serif;
	font-size: 13px;
	letter-spacing: 0;
	text-transform: none;
	color: var(--at-gris);
}
.formulaire-atelier .wpcf7-form p a { color: var(--at-encre); }
.coordonnees-mono { font-family: var(--at-mono); font-size: 15px; }
.coordonnees-mono p { margin: 0 0 4px; }
.coordonnees-mono a { color: var(--at-bleu); font-weight: 600; text-decoration-thickness: 2px; white-space: nowrap; }

/* ---------- Sommaire (pages légales) ---------- */
.sommaire-legal { position: sticky; top: 24px; }
.sommaire-legal ul { list-style: none; margin: 0; padding: 0; }
.sommaire-legal li { border-top: 1px solid var(--at-filet); }
.sommaire-legal li a { display: flex; align-items: center; min-height: 40px; padding: 0 20px; color: var(--at-encre); text-decoration: none; font-size: 15px; }
.sommaire-legal li a:hover { background: var(--at-papier); }
.texte-legal h2 { font-size: clamp(28px, 3vw, 40px); margin-top: 40px; }
.texte-legal h2:first-child { margin-top: 0; }
.texte-legal h3 { font-size: 24px; margin-top: 28px; }
.texte-legal p, .texte-legal li { font-size: 16px; max-width: 760px; }

/* ---------- Colonnes : comportement souple ---------- */
.wp-block-columns.colonnes-hero { align-items: flex-end !important; gap: 40px 64px; }
.wp-block-columns.colonnes-texte { gap: 18px 56px; }
@media (max-width: 781px) {
	.wp-block-columns.colonnes-hero > .wp-block-column { flex-basis: 100% !important; }
}
.portrait-hero { max-width: 340px; margin-left: auto !important; }
.portrait-parcours { max-width: 280px; margin-left: auto !important; }
.portrait-parcours img { width: 100%; height: auto; }
.portrait-parcours { max-width: 280px; margin-left: auto; }

/* Ancres : laisser un peu d'air sous le haut de la fenêtre */
[id] { scroll-margin-top: 24px; }

/* Éditeur : lisibilité des styles personnalisés */
.editor-styles-wrapper .atelier-chrono-source,
.editor-styles-wrapper .wp-block-table.is-style-chronologie,
.editor-styles-wrapper .wp-block-table.is-style-frise-carriere { font-size: 13px; background: #fff; }

/* ======================================================================
 * Compléments de mise en page des contenus
 * ==================================================================== */

/* Piles : espacement vertical entre les blocs d'un groupe */
.pile-12 > * + * { margin-block-start: 12px !important; }
.pile-14 > * + * { margin-block-start: 14px !important; }
.pile-20 > * + * { margin-block-start: 20px !important; }
.pile-24 > * + * { margin-block-start: 24px !important; }
.pile-28 > * + * { margin-block-start: 28px !important; }
.pile-32 > * + * { margin-block-start: 32px !important; }
.wp-block-column.is-layout-flow > * + * { margin-block-start: 22px; }
.colonnes-hero .wp-block-column > .is-style-affiche + *,
.colonnes-hero .wp-block-column > h1 + * { margin-block-start: 24px; }

/* Bandeau en tête de plaque */
.bandeau-plaque {
	padding: 16px clamp(20px, 3vw, 36px) !important;
	border-bottom: 2px solid var(--at-encre);
	gap: 8px 16px !important;
	margin: 0 !important;
}
.bandeau-plaque:not(.has-background) { background: var(--at-encre); color: #fff; }
.bandeau-plaque h3 { font-size: 28px; font-weight: 800; line-height: 1; }
.bandeau-plaque.bandeau-grand { padding-top: 18px !important; padding-bottom: 18px !important; }
.bandeau-plaque.bandeau-grand h3 { font-size: clamp(28px, 2.6vw, 34px); }
.bandeau-plaque .bandeau-code { font-family: var(--at-mono); font-size: 11px; letter-spacing: 0.08em; }
.bandeau-plaque.bandeau-mono { padding-top: 12px !important; padding-bottom: 12px !important; }
.bandeau-plaque.bandeau-mono p { font-family: var(--at-mono); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; }
.is-style-plaque > .bandeau-plaque + *, .is-style-plaque-grise > .bandeau-plaque + *, .is-style-plaque-rivets > .bandeau-plaque + * { margin-top: 0 !important; }
.is-style-plaque-rivets > .bandeau-plaque { margin: 0; }
.plaque-corps-serre { padding: 20px !important; }

/* Plaques : pas de marges parasites entre enfants directs */
.is-style-plaque > *, .is-style-plaque-grise > *, .is-style-plaque-rivets > * { margin-block: 0; }
.is-style-plaque-rivets { display: flex; flex-direction: column; }
.is-style-plaque-rivets > .plaque-corps { flex: 1; display: flex; flex-direction: column; gap: 20px; }
.is-style-plaque-rivets > .plaque-corps > * { margin: 0 !important; }
.is-style-plaque-rivets > .plaque-corps > .wp-block-buttons { margin-top: auto !important; }
.texte-filet { color: var(--at-texte); border-top: 1px dashed #8A949A; padding-top: 18px; }

/* Cartes à filet coloré */
.carte-repere { display: flex; flex-direction: column; }
.carte-repere::before {
	content: "";
	display: block;
	height: 8px;
	flex: 0 0 8px;
	background: var(--filet, var(--at-encre));
	border-bottom: 2px solid var(--at-encre);
}
.carte-repere.filet-bleu { --filet: var(--at-bleu); }
.carte-repere.filet-vert { --filet: var(--at-vert); }
.carte-repere.filet-rouge { --filet: var(--at-rouge); }
.carte-repere.filet-encre { --filet: var(--at-encre); }
.carte-repere > .carte-corps { flex: 1; margin: 0 !important; }
.titre-carte { font-size: 28px !important; font-weight: 800 !important; line-height: 1 !important; }
.texte-carte { font-size: 14px; color: var(--at-texte); }
.grille-cartes.grille-domaines { grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr)); }
.grille-domaines .carte-corps { gap: 10px; }
.carte-texte-petit { font-size: 14px; }
.grille-cartes > .is-style-plaque { display: flex; flex-direction: column; }

/* Pied de plaque (offres d'accompagnement) */
.pied-plaque { padding: 16px 22px !important; gap: 12px 32px !important; margin: 0 !important; }
.pied-plaque-texte { flex: 999 1 420px; min-width: 0; }
.pied-plaque-texte > * + * { margin-top: 6px !important; }
.pied-plaque-texte p:first-child { font-size: 15px; }
.liste-mono { font-family: var(--at-mono); font-size: 12px; color: var(--at-gris); line-height: 1.7; }

/* Grande citation en bande sombre */
.citation-rangee { gap: 32px 64px !important; flex-wrap: wrap; }
.citation-rangee > .is-style-guillemet { flex: 0 0 auto; }
.citation-rangee > .wp-block-quote { flex: 999 1 520px; min-width: 0; }

/* Titres de vidéos et petites légendes */
.titre-video {
	font-family: var(--at-titre);
	font-weight: 800;
	font-size: clamp(26px, 2.2vw, 30px);
	text-transform: uppercase;
	line-height: 1;
}
.petite-legende { font-family: var(--at-mono); font-size: 11px; color: var(--at-gris); }
.bloc-video > * + * { margin-block-start: 12px !important; }
.grille-cartes.grille-videos { grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr)); gap: 24px; }

/* Bande « missions depuis » */
.titre-bande {
	font-family: var(--at-titre);
	font-weight: 900;
	font-size: clamp(30px, 3.6vw, 48px);
	text-transform: uppercase;
	line-height: 1;
}
.bande-compacte { gap: 20px 40px !important; }

/* Parcours */
.titre-espace { margin-top: 16px !important; }
.rangee-encarts { display: flex !important; flex-wrap: wrap; gap: 18px; }
.rangee-encarts > * { margin: 0 !important; }
.encart { padding: 16px 20px; flex: 1 1 200px; min-width: 0; }
.encart > * + * { margin-top: 6px !important; }
.encart-large { flex: 2 1 300px; }
.encart-large p:not(.is-style-etiquette) { font-size: 14px; }
.boutons-fin { padding-top: 40px; }
.atelier-main .wp-block-post-content > .boutons-fin { margin-top: 0 !important; }
.carte-texte { padding: 18px 20px 22px; }

/* Réalisations : colonne secteur plus large */
.wp-block-table.liste-secteurs td:first-child { width: 240px; font-size: 12px; letter-spacing: 0.04em; text-transform: uppercase; white-space: normal; }
.wp-block-table.liste-secteurs td { padding: 16px 24px; }

/* Article (Le drame ERP) */
.plaque-article { padding: clamp(20px, 3vw, 36px); }
.plaque-article > * + * { margin-block-start: 32px !important; }
.texte-deux-colonnes { column-width: 340px; column-gap: 48px; column-rule: 1px dashed #8A949A; }
.texte-deux-colonnes > p { margin: 0 0 14px !important; font-size: 16px; break-inside: avoid-column; }

/* Contact */
.colonnes-centre { align-items: center !important; }
.intro-contact p { font-size: 19px; color: var(--at-texte); }
.intro-contact > * + * { margin-top: 4px !important; }
.wp-block-image.photo-contact { max-width: 300px; margin: 0 auto; text-align: center; }
.wp-block-image.photo-contact figcaption { text-align: center; line-height: 1.6; }
.wp-block-image.photo-contact figcaption strong {
	display: block;
	font-family: var(--at-titre);
	font-weight: 800;
	font-size: 30px;
	letter-spacing: 0;
	text-transform: uppercase;
	color: var(--at-encre);
	margin-bottom: 4px;
}
.bande-implantation { padding: 16px 22px !important; gap: 6px 20px !important; border: 2px solid var(--at-encre); }
.bande-implantation .is-style-etiquette { font-size: 11px !important; color: var(--at-pale); }
.grille-contact .carte-corps { padding: 18px 22px 22px; }
.grille-contact .is-style-etiquette { font-size: 11px !important; }

/* Pages légales */
.sommaire-legal .liste-sommaire { list-style: none; margin: 0; padding: 0; }
.sommaire-legal .liste-sommaire li { border-top: 1px solid var(--at-filet); margin: 0; }
.sommaire-legal .liste-sommaire li:first-child { border-top: 0; }
.sommaire-legal .liste-sommaire a { display: flex; align-items: center; min-height: 40px; padding: 4px 20px; color: var(--at-encre); text-decoration: none; font-size: 15px; }
.sommaire-legal .liste-sommaire a:hover { background: var(--at-papier); }
.texte-legal > h2 { margin-top: 40px !important; }
.texte-legal > h2:first-child { margin-top: 0 !important; }
.texte-legal > * + * { margin-top: 14px; }
.texte-legal ul { padding-left: 20px; }
.texte-legal li + li { margin-top: 8px; }
@media (max-width: 781px) { .sommaire-legal { position: static; } }
.atelier-nav .wp-block-navigation__submenu-container { z-index: 50 !important; }

/* Ajustements après essais */
h1, h2, h3 { overflow-wrap: normal; word-break: normal; hyphens: manual; }
.colonnes-hero h1:not(.is-style-affiche) { font-size: clamp(46px, 6.6vw, 110px); }
.atelier-nav, .atelier-nav .wp-block-navigation__container { gap: 4px 18px !important; }
.atelier-entete .wp-block-site-logo img { width: clamp(170px, 17vw, 240px); }
.atelier-entete { flex-wrap: nowrap !important; }
@media (max-width: 1100px) { .atelier-entete { flex-wrap: wrap !important; } }
.atelier-nav { font-size: 11px; letter-spacing: 0.03em; }
.atelier-nav, .atelier-nav .wp-block-navigation__container { gap: 4px 13px !important; }
.atelier-entete .wp-block-site-logo img { width: clamp(160px, 15vw, 210px); }
.atelier-entete { gap: 20px 28px !important; }
@media (max-width: 1100px) { .atelier-nav { font-size: 12px; } }
/* Sous-menus : puce alignée sur la première ligne */
.atelier-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	align-items: flex-start !important;
	padding-top: 11px !important;
	padding-bottom: 11px !important;
	line-height: 1.45;
}
.atelier-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content::before { margin-top: 0.5em; }
/* Menu téléphone : aligné à gauche, lisible */
.atelier-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.atelier-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: flex-start !important; }
.atelier-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { align-items: flex-start !important; width: 100%; }
.atelier-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { width: 100%; padding: 0 0 8px 0 !important; }
.atelier-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size: 15px; }
.atelier-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content { font-size: 13px; min-height: 40px; }
