/* ═══════════════════════════════════════════════════════════════════════════
   TaziCore — direction « Constellation »
   Compositions propres au thème. Les jetons (couleurs, polices, tailles)
   sont déclarés dans theme.json ; ce fichier les consomme.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Alias de jetons ─────────────────────────────────────────────────────── */
body {
	--tz-fond: var(--wp--preset--color--fond);
	--tz-fond-profond: var(--wp--preset--color--fond-profond);
	--tz-texte: var(--wp--preset--color--texte);
	--tz-texte-2: var(--wp--preset--color--texte-2);
	--tz-texte-3: var(--wp--preset--color--texte-3);
	--tz-discret: var(--wp--preset--color--discret);
	--tz-accent: var(--wp--preset--color--accent);
	--tz-encre: var(--wp--preset--color--encre-accent);

	--tz-surface: rgba(255, 255, 255, 0.024);
	--tz-surface-vive: rgba(255, 255, 255, 0.03);
	--tz-trait: rgba(255, 255, 255, 0.08);
	--tz-trait-doux: rgba(255, 255, 255, 0.06);
	--tz-trait-fort: rgba(255, 255, 255, 0.14);
	--tz-accent-doux: rgba(63, 220, 216, 0.4);

	--tz-mono: var(--wp--preset--font-family--plex-mono);
	--tz-titres: var(--wp--preset--font-family--space-grotesk);

	--tz-large: 1200px;
	--tz-marge: clamp(24px, 4vw, 48px);
	--tz-section-haut: clamp(76px, 8vw, 128px);
	--tz-section-bas: clamp(84px, 9vw, 140px);
	--tz-courbe: cubic-bezier(0.4, 0, 0.2, 1);

	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: clip;
}

html {
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
}

:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 3px;
	border-radius: 3px;
}

::selection {
	background: rgba(63, 220, 216, 0.28);
	color: #fff;
}

/* Le décalage vertical entre blocs de premier niveau est géré par chaque
   composition : pas d'espace parasite entre en-tête, contenu et pied. */
body .wp-site-blocks > * {
	margin-block-start: 0;
}

body .wp-block-post-content > .alignfull {
	margin-block-start: 0;
	margin-block-end: 0;
}

/* Couleurs d'accent des SVG (var() n'est pas fiable dans un attribut SVG). */
.tz-trait-accent { stroke: var(--tz-accent); }
.tz-remplissage-accent { fill: var(--tz-accent); }

/* ── Filets verticaux structurants ──────────────────────────────────────── */
@media (min-width: 1330px) {
	.wp-site-blocks {
		position: relative;
	}

	.wp-site-blocks::before,
	.wp-site-blocks::after {
		content: "";
		position: absolute;
		top: 0;
		bottom: 0;
		width: 1px;
		pointer-events: none;
		background: linear-gradient(180deg, transparent 0%, var(--tz-trait) 3%, var(--tz-trait) 97%, transparent 100%);
	}

	.wp-site-blocks::before { left: calc(50% - (var(--tz-large) / 2)); }
	.wp-site-blocks::after { left: calc(50% + (var(--tz-large) / 2) - 1px); }
}

/* ── Boutons ─────────────────────────────────────────────────────────────── */
.wp-block-button__link,
.wp-element-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 52px;
	text-decoration: none;
	cursor: pointer;
	transition: box-shadow 0.3s var(--tz-courbe), border-color 0.3s var(--tz-courbe), background-color 0.3s var(--tz-courbe), color 0.3s var(--tz-courbe);
}

.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover,
.wp-element-button:not(.wp-block-button__link):hover {
	box-shadow: 0 0 0 1px var(--tz-accent-doux), 0 12px 42px -14px rgba(63, 220, 216, 0.6);
	text-decoration: none;
}

.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent;
	color: var(--tz-texte);
	border: 1px solid var(--tz-trait-fort);
	font-weight: 400;
}

.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: transparent;
	color: var(--tz-texte);
	border-color: rgba(255, 255, 255, 0.3);
	text-decoration: none;
}

/* ── En-tête ─────────────────────────────────────────────────────────────── */
header.wp-block-template-part {
	position: sticky;
	top: 0;
	z-index: 50;
	background: rgba(10, 12, 15, 0.72);
	-webkit-backdrop-filter: blur(16px) saturate(140%);
	backdrop-filter: blur(16px) saturate(140%);
	border-bottom: 1px solid var(--tz-trait-doux);
	transition: background-color 0.3s var(--tz-courbe), border-color 0.3s var(--tz-courbe);
}

header.wp-block-template-part.est-defile {
	background: rgba(10, 12, 15, 0.9);
	border-bottom-color: var(--tz-trait);
}

.admin-bar header.wp-block-template-part {
	top: var(--wp-admin--admin-bar--height, 32px);
}

@media (max-width: 600px) {
	.admin-bar header.wp-block-template-part { top: 0; }
}

.tz-en-tete__barre {
	min-height: 64px;
	gap: 16px;
}

.tz-en-tete__fin {
	gap: clamp(14px, 2vw, 30px);
}

.tz-en-tete__cta {
	display: none;
}

.tz-en-tete__cta .wp-block-button__link {
	min-height: 40px;
	padding: 10px 20px;
	font-size: 13.5px;
	border-radius: 8px;
}

@media (min-width: 900px) {
	.tz-en-tete__barre { min-height: 76px; }
	.tz-en-tete__cta { display: flex; }
}

/* Logo */
.tz-logo {
	display: inline-flex;
	align-items: center;
	gap: 11px;
	color: var(--tz-texte);
	text-decoration: none;
}

.tz-logo:hover {
	color: var(--tz-texte);
	text-decoration: none;
}

.tz-logo .tz-marque { flex: none; }

.tz-logo__mot {
	font-family: var(--tz-titres);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

.tz-logo--image img {
	display: block;
	width: auto;
	max-height: 40px;
}

@media (min-width: 900px) {
	.tz-logo__mot { font-size: 15px; }
}

/* Navigation : menu déroulant jusqu'à 900 px, en ligne au-delà. */
.tz-navigation .wp-block-navigation-item__content {
	color: var(--tz-texte-2);
	transition: color 0.25s var(--tz-courbe);
}

.tz-navigation .wp-block-navigation-item__content:hover {
	color: var(--tz-texte);
	text-decoration: none;
}

.tz-navigation .wp-block-navigation__responsive-container-open,
.tz-navigation .wp-block-navigation__responsive-container-close {
	width: 44px;
	height: 44px;
	align-items: center;
	justify-content: center;
	color: var(--tz-texte);
}

@media (min-width: 600px) and (max-width: 899px) {
	.tz-navigation .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}

	.tz-navigation .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
		display: none;
	}
}

.tz-navigation .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--tz-fond);
	color: var(--tz-texte);
	padding: clamp(20px, 5vw, 40px);
}

.tz-navigation .is-menu-open .wp-block-navigation__responsive-container-content {
	align-items: stretch;
	padding-top: 64px;
}

.tz-navigation .is-menu-open .wp-block-navigation__container {
	gap: 0;
	width: 100%;
}

.tz-navigation .is-menu-open .wp-block-navigation-item {
	width: 100%;
	border-bottom: 1px solid var(--tz-trait-doux);
}

.tz-navigation .is-menu-open .wp-block-navigation-item__content {
	display: flex;
	align-items: center;
	min-height: 56px;
	font-family: var(--tz-titres);
	font-size: 20px;
	color: var(--tz-texte);
}

/* ── Surtitre ────────────────────────────────────────────────────────────── */
.is-style-tz-surtitre {
	display: flex;
	align-items: center;
	gap: 12px;
	font-family: var(--tz-mono);
	font-size: 11.5px;
	line-height: 1.4;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--tz-texte-3);
}

.is-style-tz-surtitre::before {
	content: "";
	flex: none;
	width: 26px;
	height: 1px;
	background: var(--tz-accent);
}

.tz-chapeau {
	max-width: 58ch;
	font-size: var(--wp--preset--font-size--chapeau);
	font-weight: 300;
	line-height: 1.7;
	color: var(--tz-texte-2);
}

.tz-note {
	max-width: 380px;
	font-size: 13.5px;
	line-height: 1.7;
	color: var(--tz-discret);
}

/* ── Sections ────────────────────────────────────────────────────────────── */
.is-style-tz-section {
	position: relative;
	padding-block: var(--tz-section-haut) var(--tz-section-bas);
	border-top: 1px solid var(--tz-trait-doux);
}

.tz-teinte {
	background: linear-gradient(180deg, rgba(63, 220, 216, 0.025) 0%, transparent 45%);
}

.is-style-tz-section.alignfull:not(.has-global-padding),
.tz-hero.alignfull:not(.has-global-padding) {
	padding-inline: var(--tz-marge);
}

/* En-tête de section : titre à gauche, aparté aligné en bas à droite. */
.tz-entete {
	margin-bottom: clamp(34px, 4vw, 60px);
	gap: 18px 80px;
}

.tz-entete > * { margin-block: 0; }

.tz-entete__titre { max-width: 620px; }
.tz-entete__titre > * + * { margin-block-start: 20px; }

.tz-entete__aparte {
	max-width: 400px;
	padding-bottom: 6px;
	font-size: 15px;
	line-height: 1.74;
}

.tz-intro {
	max-width: 700px;
	margin-bottom: clamp(40px, 5vw, 84px);
}

/* ── Hero ────────────────────────────────────────────────────────────────── */
.tz-hero {
	position: relative;
	overflow: hidden;
	padding-block: clamp(64px, 7vw, 118px) clamp(80px, 9vw, 136px);
}

.tz-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px);
	background-size: 60px 60px;
	-webkit-mask-image: radial-gradient(72% 58% at 62% 46%, #000 0%, transparent 100%);
	mask-image: radial-gradient(72% 58% at 62% 46%, #000 0%, transparent 100%);
}

.tz-hero::after {
	content: "";
	position: absolute;
	top: 12%;
	right: max(-10%, calc(50% - 700px));
	width: min(660px, 130vw);
	aspect-ratio: 1;
	border-radius: 50%;
	pointer-events: none;
	background: radial-gradient(circle, rgba(63, 220, 216, 0.1) 0%, rgba(63, 220, 216, 0.028) 42%, transparent 70%);
}

.tz-hero > * {
	position: relative;
	z-index: 1;
}

.tz-hero__colonnes {
	gap: clamp(36px, 5vw, 80px);
}

.tz-hero__titre {
	margin-block-end: 0;
}

.tz-hero .wp-block-buttons {
	gap: 12px;
	margin-block-start: 34px;
}

@media (max-width: 599px) {
	.tz-hero .wp-block-buttons { flex-direction: column; align-items: stretch; }
	.tz-hero .wp-block-button,
	.tz-hero .wp-block-button__link { width: 100%; }
}

.tz-hero__note {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-block-start: 30px;
	font-family: var(--tz-mono);
	font-size: 12px;
	letter-spacing: 0.05em;
	color: var(--tz-discret);
}

.tz-hero__note::before {
	content: "";
	flex: none;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--tz-accent);
	box-shadow: 0 0 10px rgba(63, 220, 216, 0.8);
}

/* Constellation */
.tz-constellation {
	display: flex;
	justify-content: center;
}

.tz-constellation__svg {
	display: block;
	width: 100%;
	max-width: 460px;
	height: auto;
}

.tz-constellation__anneau { fill: none; stroke: rgba(255, 255, 255, 0.055); stroke-width: 1; }
.tz-constellation__anneau--pointille { stroke: rgba(255, 255, 255, 0.04); stroke-dasharray: 2 7; }
.tz-constellation__liaisons { fill: none; stroke: rgba(255, 255, 255, 0.11); stroke-width: 1; }
.tz-constellation__route { fill: none; stroke: rgba(63, 220, 216, 0.28); stroke-width: 1.2; }

.tz-constellation__paquet {
	fill: none;
	stroke: var(--tz-accent);
	stroke-width: 1.6;
	stroke-linecap: round;
	stroke-dasharray: 22 340;
	animation: tz-paquet 5.6s cubic-bezier(0.65, 0, 0.35, 1) infinite;
}

.tz-constellation__noeuds circle {
	fill: var(--tz-fond);
	stroke: rgba(255, 255, 255, 0.3);
	stroke-width: 1.1;
}

.tz-constellation__pulsation {
	fill: var(--tz-accent);
	transform-box: fill-box;
	transform-origin: center;
	animation: tz-pulsation 4.2s ease-in-out infinite;
}

.tz-constellation__pulsation--b { animation-delay: 1.4s; }
.tz-constellation__pulsation--c { animation-delay: 2.7s; }

.tz-constellation__halo-coeur { fill: none; stroke: rgba(63, 220, 216, 0.2); stroke-width: 1; }
.tz-constellation__anneau-coeur { fill: none; stroke: var(--tz-accent-doux); stroke-width: 1; }
.tz-constellation__coeur { fill: var(--tz-accent); }

@keyframes tz-paquet {
	0% { stroke-dashoffset: 0; }
	72%, 100% { stroke-dashoffset: -360; }
}

@keyframes tz-pulsation {
	0%, 100% { opacity: 0.3; transform: scale(1); }
	50% { opacity: 1; transform: scale(1.5); }
}

/* ── Cartes ──────────────────────────────────────────────────────────────── */
.is-style-tz-carte {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 28px 26px 30px;
	border: 1px solid var(--tz-trait);
	border-radius: 14px;
	background: var(--tz-surface);
}

.is-style-tz-carte.is-style-tz-carte > * {
	margin-block: 0;
}

.is-style-tz-carte:hover {
	border-color: rgba(63, 220, 216, 0.34);
	background: rgba(63, 220, 216, 0.035);
	transform: translateY(-3px);
}

.tz-carte__haut {
	align-items: flex-start;
}

.is-style-tz-carte .tz-carte__num {
	font-family: var(--tz-mono);
	font-size: 12px;
	letter-spacing: 0.1em;
	color: rgba(63, 220, 216, 0.85);
}

.is-style-tz-carte h3 {
	font-size: var(--wp--preset--font-size--carte);
}

.is-style-tz-carte p:not(.tz-carte__num) {
	font-size: 15px;
	line-height: 1.74;
}

.tz-icone {
	display: inline-flex;
	color: var(--tz-texte-3);
}

@media (min-width: 900px) {
	.is-style-tz-carte {
		gap: 18px;
		padding: 32px 30px 34px;
	}

	.tz-grille-cartes > .is-style-tz-carte {
		min-height: 300px;
	}
}

/* ── Rail de méthode ─────────────────────────────────────────────────────── */
.is-style-tz-rail {
	position: relative;
	display: grid;
	padding-left: 34px;
}

.is-style-tz-rail.is-style-tz-rail > * {
	margin-block: 0;
}

.is-style-tz-rail::before {
	content: "";
	position: absolute;
	left: 6.5px;
	top: 8px;
	bottom: 24px;
	width: 1px;
	background: linear-gradient(180deg, var(--tz-trait-fort) 0%, var(--tz-trait-fort) 88%, transparent 100%);
}

.is-style-tz-etape {
	position: relative;
	padding-bottom: 30px;
}

.is-style-tz-etape:last-child {
	padding-bottom: 0;
}

.is-style-tz-etape.is-style-tz-etape > * {
	margin-block: 0;
}

.is-style-tz-etape::before {
	content: "";
	position: absolute;
	left: -34px;
	top: 3px;
	box-sizing: border-box;
	width: 14px;
	height: 14px;
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 50%;
	background: radial-gradient(circle at center, var(--tz-accent) 0 2.5px, var(--tz-fond) 3px);
}

.is-style-tz-etape .tz-etape__num {
	margin-bottom: 7px;
	font-family: var(--tz-mono);
	font-size: 10.5px;
	letter-spacing: 0.16em;
	color: var(--tz-discret);
}

.is-style-tz-etape h3 {
	margin-bottom: 7px;
	font-size: 18px;
}

.is-style-tz-etape p:not(.tz-etape__num) {
	font-size: 14px;
	line-height: 1.62;
	color: var(--tz-texte-3);
}

@media (min-width: 900px) {
	.is-style-tz-rail {
		grid-template-columns: repeat(6, minmax(0, 1fr));
		padding-left: 0;
	}

	.is-style-tz-rail::before,
	.is-style-tz-rail::after {
		left: 8.33%;
		right: 8.33%;
		top: 43px;
		bottom: auto;
		width: auto;
		height: 1px;
	}

	.is-style-tz-rail::before {
		background: linear-gradient(90deg, transparent 0%, var(--tz-trait-fort) 6%, var(--tz-trait-fort) 94%, transparent 100%);
	}

	/* Point lumineux qui parcourt le rail : le dégradé glisse sur la ligne,
	   indépendamment de sa largeur réelle. */
	.is-style-tz-rail::after {
		content: "";
		position: absolute;
		top: 42px;
		height: 3px;
		background: linear-gradient(90deg, transparent 0%, transparent 4%, var(--tz-accent) 8%, transparent 12%, transparent 100%);
		background-repeat: no-repeat;
		background-size: 300% 100%;
		animation: tz-rail 7.5s linear infinite;
	}

	.is-style-tz-etape {
		display: flex;
		flex-direction: column;
		align-items: center;
		padding: 0 14px;
		text-align: center;
	}

	.is-style-tz-etape::before {
		left: 50%;
		top: 36px;
		transform: translateX(-50%);
	}

	.is-style-tz-etape .tz-etape__num {
		margin-bottom: 58px;
		font-size: 11.5px;
		line-height: 16px;
	}

	.is-style-tz-etape h3 {
		margin-bottom: 12px;
		font-size: 17.5px;
	}

	.is-style-tz-etape p:not(.tz-etape__num) {
		font-size: 13px;
		line-height: 1.6;
	}
}

@keyframes tz-rail {
	from { background-position: -60% 0; }
	to { background-position: 160% 0; }
}

/* ── Colonne + lignes à repère (Pourquoi TaziCore) ──────────────────────── */
.tz-split {
	gap: clamp(30px, 4vw, 100px);
}

.tz-raisons.tz-raisons > * {
	margin-block: 0;
}

.is-style-tz-raison {
	display: grid;
	grid-template-columns: 30px minmax(0, 1fr);
	column-gap: 18px;
	padding: 22px 0;
	border-top: 1px solid var(--tz-trait-doux);
	transition: background-color 0.3s var(--tz-courbe);
}

.is-style-tz-raison:last-child {
	border-bottom: 1px solid var(--tz-trait-doux);
}

.is-style-tz-raison:hover {
	background: rgba(255, 255, 255, 0.018);
}

.is-style-tz-raison::before {
	content: "";
	grid-column: 1;
	grid-row: 1 / span 2;
	box-sizing: border-box;
	width: 20px;
	height: 20px;
	margin-top: 3px;
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: 50%;
	background: radial-gradient(circle at center, var(--tz-accent) 0 3px, transparent 3.5px);
}

.is-style-tz-raison.is-style-tz-raison > * {
	grid-column: 2;
	margin-block: 0;
}

.is-style-tz-raison h3 {
	margin-bottom: 7px;
	font-size: 16.5px;
}

.is-style-tz-raison p {
	font-size: 14.5px;
	line-height: 1.7;
}

@media (min-width: 900px) {
	.is-style-tz-raison {
		grid-template-columns: 34px minmax(0, 1fr);
		column-gap: 22px;
		padding: 28px 16px 28px 0;
	}

	.is-style-tz-raison h3 { font-size: 17.5px; }
}

/* ── Technologies ────────────────────────────────────────────────────────── */
.tz-technos.tz-technos > * {
	margin-block: 0;
}

.is-style-tz-techno {
	padding: 22px 0;
	border-top: 1px solid var(--tz-trait-doux);
}

.is-style-tz-techno:last-child {
	border-bottom: 1px solid var(--tz-trait-doux);
}

.is-style-tz-techno.is-style-tz-techno > * {
	margin-block: 0;
}

.is-style-tz-techno .tz-techno__libelle {
	margin-bottom: 12px;
	font-family: var(--tz-mono);
	font-size: 10.5px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--tz-texte-3);
}

@media (min-width: 900px) {
	.is-style-tz-techno {
		display: grid;
		grid-template-columns: 230px minmax(0, 1fr);
		column-gap: 48px;
		align-items: center;
		padding: 26px 0;
	}

	.is-style-tz-techno .tz-techno__libelle {
		margin-bottom: 0;
		font-size: 11.5px;
	}
}

.is-style-tz-puces {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.is-style-tz-puces li {
	display: inline-flex;
	align-items: center;
	min-height: 36px;
	margin: 0;
	padding: 0 16px;
	border: 1px solid rgba(255, 255, 255, 0.11);
	border-radius: 999px;
	font-family: var(--tz-mono);
	font-size: 12.5px;
	color: #c6cdd6;
	transition: border-color 0.3s var(--tz-courbe), color 0.3s var(--tz-courbe);
}

.is-style-tz-puces li:hover {
	border-color: rgba(63, 220, 216, 0.42);
	color: var(--tz-texte);
}

@media (min-width: 900px) {
	.is-style-tz-puces { gap: 10px; }
}

/* ── À propos ────────────────────────────────────────────────────────────── */
.tz-a-propos {
	max-width: 68ch;
}

.tz-a-propos > * + * {
	margin-block-start: 18px;
}

.tz-a-propos h2 {
	margin-block: 20px 28px;
}

.tz-mention-statut {
	font-size: 15px;
	color: var(--tz-texte-3);
}

/* ── Contact ─────────────────────────────────────────────────────────────── */
.tz-contact-colonnes {
	gap: clamp(34px, 4vw, 60px);
}

.tz-contact__titre {
	font-size: clamp(32px, 3.4vw, 46px);
	letter-spacing: -0.03em;
}

.is-style-tz-verre {
	padding: 26px 22px 24px;
	border: 1px solid rgba(255, 255, 255, 0.09);
	border-radius: 18px;
	background: rgba(255, 255, 255, 0.028);
	-webkit-backdrop-filter: blur(18px);
	backdrop-filter: blur(18px);
	box-shadow: 0 40px 90px -40px rgba(0, 0, 0, 0.9);
}

@media (min-width: 900px) {
	.is-style-tz-verre { padding: 42px 40px 40px; }
}

/* Formulaire — balisage rendu par le module wp-content/mu-plugins/tazicore. */
.tz-form-statut {
	margin: 0 0 20px;
	padding: 14px 16px;
	border: 1px solid var(--tz-trait);
	border-radius: 10px;
	font-size: 14px;
	line-height: 1.6;
	color: var(--tz-texte-2);
}

.tz-form-statut[hidden] { display: none; }
.tz-form-statut.est-ok { border-color: var(--tz-accent-doux); background: rgba(63, 220, 216, 0.06); color: var(--tz-texte); }
.tz-form-statut.est-erreur { border-color: rgba(255, 138, 128, 0.45); background: rgba(255, 138, 128, 0.06); color: #ffc9c2; }

.tz-form { margin: 0; }

.tz-form__rangee {
	display: grid;
	gap: 18px;
	margin: 0 0 18px;
}

@media (min-width: 620px) {
	.tz-form__rangee {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 20px;
	}
}

.tz-champ { margin: 0 0 18px; }
.tz-form__rangee .tz-champ { margin: 0; }

.tz-libelle {
	display: block;
	margin-bottom: 9px;
	font-family: var(--tz-mono);
	font-size: 10.5px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--tz-texte-3);
}

.tz-requis { color: var(--tz-accent); }

.tz-indice {
	font-family: var(--wp--preset--font-family--plex-sans);
	font-size: 11px;
	letter-spacing: 0;
	text-transform: none;
	color: var(--tz-discret);
}

.tz-saisie {
	display: block;
	box-sizing: border-box;
	width: 100%;
	min-height: 48px;
	margin: 0;
	padding: 12px 16px;
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 10px;
	background: var(--tz-surface-vive);
	color: var(--tz-texte);
	font-family: inherit;
	font-size: 15px;
	line-height: 1.5;
	-webkit-appearance: none;
	appearance: none;
	transition: border-color 0.25s var(--tz-courbe), background-color 0.25s var(--tz-courbe), box-shadow 0.25s var(--tz-courbe);
}

.tz-saisie::placeholder { color: var(--tz-discret); opacity: 1; }
.tz-saisie:hover { border-color: rgba(255, 255, 255, 0.16); }

.tz-saisie:focus-visible {
	border-color: var(--tz-accent-doux);
	background: rgba(63, 220, 216, 0.04);
	outline: none;
	box-shadow: 0 0 0 3px rgba(63, 220, 216, 0.14);
}

.tz-saisie[aria-invalid="true"] { border-color: rgba(255, 138, 128, 0.55); }

textarea.tz-saisie {
	min-height: 132px;
	resize: vertical;
}

.tz-liste-deroulante {
	position: relative;
	display: block;
}

.tz-liste-deroulante .tz-icone-svg {
	position: absolute;
	top: 50%;
	right: 16px;
	transform: translateY(-50%);
	color: var(--tz-texte-3);
	pointer-events: none;
}

.tz-liste-deroulante select { padding-right: 44px; }
.tz-liste-deroulante select:invalid { color: var(--tz-discret); }
.tz-liste-deroulante option { background: var(--tz-fond-profond); color: var(--tz-texte); }

.tz-consentement {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin: 22px 0 6px;
}

.tz-consentement label {
	font-size: 13px;
	line-height: 1.62;
	color: var(--tz-texte-3);
}

.tz-case {
	flex: none;
	width: 20px;
	height: 20px;
	margin: 1px 0 0;
	accent-color: var(--tz-accent);
}

.tz-erreur {
	display: none;
	margin-top: 7px;
	font-size: 12.5px;
	line-height: 1.5;
	color: #ffc9c2;
}

.tz-erreur.est-visible { display: block; }

.tz-pot-de-miel {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.tz-turnstile {
	min-height: 65px;
	margin: 20px 0 4px;
}

.tz-form__envoi {
	width: 100%;
	min-height: 54px;
	margin-top: 20px;
}

.tz-form__envoi[disabled] {
	opacity: 0.55;
	cursor: progress;
}

.tz-form__minimisation {
	margin: 16px 0 0;
	text-align: center;
	font-size: 12px;
	line-height: 1.6;
	color: var(--tz-discret);
}

/* ── Pied de page ────────────────────────────────────────────────────────── */
footer.wp-block-template-part {
	background: var(--tz-fond-profond);
	border-top: 1px solid var(--tz-trait);
}

.tz-pied {
	padding-block: clamp(56px, 6vw, 96px) 32px;
}

.tz-pied__colonnes {
	gap: 32px 60px;
}

.tz-pied__slogan {
	max-width: 300px;
	font-size: 13.5px;
	line-height: 1.7;
	color: var(--tz-texte-3);
}

.tz-pied__titre {
	margin-bottom: 18px;
	font-family: var(--tz-mono);
	font-size: 10.5px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--tz-discret);
}

.tz-pied .wp-block-navigation__container { gap: 12px; }

.tz-pied .wp-block-navigation-item__content {
	font-size: 14px;
	color: var(--tz-texte-2);
	transition: color 0.25s var(--tz-courbe);
}

.tz-pied .wp-block-navigation-item__content:hover {
	color: var(--tz-texte);
	text-decoration: none;
}

.tz-pied__bas {
	margin-top: 40px;
	padding-top: 22px;
	border-top: 1px solid var(--tz-trait-doux);
	gap: 10px 24px;
}

.tz-pied__bas > * { margin: 0; }

.tz-pied__copyright {
	font-size: 12.5px;
	color: var(--tz-discret);
}

.tz-pied__mention {
	font-family: var(--tz-mono);
	font-size: 10.5px;
	letter-spacing: 0.08em;
	color: var(--tz-discret);
}

.tz-reseaux {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 22px 0 0;
	padding: 0;
	list-style: none;
}

.tz-reseaux__lien {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border: 1px solid var(--tz-trait);
	border-radius: 10px;
	color: var(--tz-texte-2);
	transition: color 0.25s var(--tz-courbe), border-color 0.25s var(--tz-courbe);
}

.tz-reseaux__lien:hover {
	color: var(--tz-texte);
	border-color: var(--tz-accent-doux);
	text-decoration: none;
}

/* ── Blog : en-têtes et liste ────────────────────────────────────────────── */
.tz-entete-page {
	padding-block: clamp(56px, 7vw, 104px) clamp(32px, 4vw, 56px);
}

.tz-entete-page > * + * { margin-block-start: 20px; }

.tz-entete-page .wp-block-query-title,
.tz-entete-page h1 {
	font-size: clamp(34px, 4vw, 52px);
}

.tz-liste-articles {
	padding-bottom: var(--tz-section-bas);
}

.tz-liste-articles .wp-block-post-template {
	gap: 24px;
}

.is-style-tz-carte.tz-carte-article {
	gap: 0;
	padding: 0;
	overflow: hidden;
}

.tz-carte-article .wp-block-post-featured-image {
	margin: 0;
	border-bottom: 1px solid var(--tz-trait-doux);
}

.tz-carte-article .wp-block-post-featured-image img {
	display: block;
	width: 100%;
	object-fit: cover;
}

/* Carte sans image à la une : image du site à la place (inc/blocs.php). */
.tz-image-defaut img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

/* Page d'accueil : derniers articles et alertes officielles (patterns/derniers-articles.php). */
.tz-actualites-grille {
	display: grid;
	gap: 32px;
	margin-block-start: 48px;
}

@media (min-width: 1100px) {
	.tz-actualites-grille {
		grid-template-columns: minmax(0, 2fr) minmax(300px, 1fr);
		align-items: start;
	}
}

.tz-derniers-articles .wp-block-post-template { gap: 24px; }

/* Le plus récent en grand, les deux suivants côte à côte. */
@media (min-width: 700px) {
	.tz-derniers-articles .wp-block-post-template > li:first-child { grid-column: 1 / -1; }
	.tz-derniers-articles .wp-block-post-template > li:first-child .tz-carte-article__titre { font-size: clamp(22px, 2.2vw, 28px); }
}

.tz-actualites {
	padding: 24px 26px;
	border: 1px solid var(--tz-trait);
	border-radius: 14px;
	background: var(--tz-surface);
}

.tz-actualites__titre {
	margin: 0;
	font-family: var(--tz-mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--tz-texte-3);
}

.tz-actualites__liste {
	display: flex;
	flex-direction: column;
	margin: 18px 0 0;
	padding: 0;
	list-style: none;
}

.tz-actualites__element {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 14px 0;
	border-top: 1px solid var(--tz-trait-doux);
}

.tz-actualites__element:first-child {
	padding-top: 0;
	border-top: 0;
}

.tz-actualites__meta {
	font-family: var(--tz-mono);
	font-size: 11.5px;
	letter-spacing: 0.04em;
	color: var(--tz-discret);
}

.tz-actualites__element--alerte .tz-actualites__meta { color: var(--tz-accent); }

.tz-actualites__liste a {
	font-size: 15px;
	line-height: 1.45;
	color: var(--tz-texte);
	text-decoration: none;
}

.tz-actualites__liste a:hover,
.tz-actualites__liste a:focus-visible {
	text-decoration: underline;
	text-decoration-color: var(--tz-accent-doux);
	text-underline-offset: 3px;
}

.tz-actualites__note {
	margin: 16px 0 0;
	font-size: 12.5px;
	color: var(--tz-discret);
}

/* Mention sous une couverture créée par IA (mu-plugin, couvertures.php). */
.tz-couverture-mention {
	margin: 8px 0 0;
	font-size: 0.8125rem;
	color: var(--wp--preset--color--texte-3);
	text-align: right;
}

.tz-carte-article__corps {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 24px 26px 28px;
}

.tz-carte-article__corps.tz-carte-article__corps > * { margin: 0; }

.tz-carte-article__titre {
	font-size: var(--wp--preset--font-size--carte);
	line-height: 1.3;
}

.tz-carte-article__titre a {
	color: var(--tz-texte);
	text-decoration: none;
}

.tz-carte-article__titre a:hover {
	color: var(--tz-accent);
	text-decoration: none;
}

.tz-aucun-article {
	padding: 32px 0;
	color: var(--tz-texte-3);
}

.wp-block-query-pagination {
	margin-top: clamp(40px, 5vw, 64px);
	padding-top: 24px;
	border-top: 1px solid var(--tz-trait-doux);
}

.wp-block-query-pagination a { color: var(--tz-texte-2); }
.wp-block-query-pagination a:hover { color: var(--tz-texte); }
.wp-block-query-pagination .page-numbers.current { color: var(--tz-accent); }

/* ── Article ─────────────────────────────────────────────────────────────── */
.tz-article {
	padding-bottom: var(--tz-section-bas);
}

.tz-article__entete {
	padding-block: clamp(48px, 6vw, 88px) 32px;
}

.tz-article__entete > * + * { margin-block-start: 18px; }

.tz-article__titre {
	font-size: clamp(32px, 3.8vw, 50px);
	line-height: 1.1;
}

.tz-article__categories a {
	display: inline-flex;
	align-items: center;
	min-height: 28px;
	padding: 0 12px;
	border: 1px solid var(--tz-accent-doux);
	border-radius: 999px;
	font-family: var(--tz-mono);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--tz-accent);
	text-decoration: none;
}

.tz-article__categories .wp-block-post-terms__separator { display: none; }

.tz-article__meta {
	gap: 8px 18px;
}

.tz-article__meta > * { margin: 0; }

.tz-temps-lecture {
	font-family: var(--tz-mono);
	font-size: 11.5px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--tz-texte-3);
}

.tz-temps-lecture::before {
	content: "·";
	margin-right: 18px;
	color: var(--tz-discret);
}

.tz-article__image img {
	border: 1px solid var(--tz-trait);
	border-radius: 14px;
}

.tz-article__contenu {
	margin-block-start: clamp(32px, 4vw, 56px);
	font-size: 17px;
	line-height: 1.78;
}

.tz-article__contenu :where(p, li) { color: var(--tz-texte-2); }
.tz-article__contenu :where(strong) { color: var(--tz-texte); font-weight: 600; }

.tz-article__contenu :where(h2) {
	margin-block-start: 2.2em;
	font-size: var(--wp--preset--font-size--sous-titre);
}

.tz-article__contenu :where(h3) {
	margin-block-start: 1.8em;
}

.tz-article__contenu :where(p a, li a) {
	text-decoration: underline;
	text-decoration-color: rgba(63, 220, 216, 0.45);
	text-underline-offset: 3px;
}

.tz-article__contenu :where(img) {
	border-radius: 10px;
}

.tz-article__contenu .wp-block-quote {
	margin-inline: 0;
	padding-left: 24px;
	border-left: 1px solid var(--tz-trait-fort);
	font-style: italic;
	color: var(--tz-texte);
}

.tz-article__contenu .wp-block-quote p { color: var(--tz-texte); }

.tz-article__contenu :where(code):not(pre code) {
	padding: 2px 6px;
	border: 1px solid var(--tz-trait);
	border-radius: 5px;
	background: var(--wp--preset--color--surface);
	font-family: var(--tz-mono);
	font-size: 0.88em;
	color: var(--tz-texte);
}

.tz-article__contenu .wp-block-table table {
	border-collapse: collapse;
	font-size: 15px;
}

.tz-article__contenu .wp-block-table :where(th, td) {
	padding: 10px 14px;
	border: 1px solid var(--tz-trait);
}

.tz-article__contenu .wp-block-table th {
	font-family: var(--tz-mono);
	font-size: 12px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--tz-texte-3);
}

/* Partage */
.tz-partage {
	margin-block-start: 56px;
	padding-top: 28px;
	border-top: 1px solid var(--tz-trait-doux);
}

.tz-partage__titre {
	margin: 0;
	font-family: var(--tz-mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--tz-texte-3);
}

.tz-partage__liste {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 16px 0 0;
	padding: 0;
	list-style: none;
}

.tz-partage__liste li { margin: 0; }
.tz-partage__liste li[hidden] { display: none; }

.tz-partage__lien {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	padding: 0 14px;
	border: 1px solid var(--tz-trait);
	border-radius: 10px;
	background: transparent;
	color: var(--tz-texte-2);
	font-family: inherit;
	font-size: 13.5px;
	text-decoration: none;
	cursor: pointer;
	transition: color 0.25s var(--tz-courbe), border-color 0.25s var(--tz-courbe);
}

.tz-partage__lien:hover {
	color: var(--tz-texte);
	border-color: var(--tz-accent-doux);
	text-decoration: none;
}

/* Sources de l'article (veille) */
.tz-sources {
	margin-block-start: 48px;
	padding: 22px 24px;
	border: 1px solid var(--tz-trait);
	border-radius: 14px;
	background: var(--tz-surface);
}

.tz-sources__titre {
	margin: 0;
	font-family: var(--tz-mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--tz-texte-3);
}

.tz-sources__liste {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 14px 0 0;
	padding-left: 20px;
	font-size: 14.5px;
	line-height: 1.6;
	color: var(--tz-texte-3);
}

.tz-sources__liste a {
	color: var(--tz-texte-2);
	text-decoration: underline;
	text-decoration-color: rgba(63, 220, 216, 0.45);
	text-underline-offset: 3px;
	overflow-wrap: anywhere;
}

.tz-sources__liste a:hover { color: var(--tz-texte); }

.tz-sources__domaine {
	margin-left: 8px;
	font-family: var(--tz-mono);
	font-size: 11.5px;
	color: var(--tz-discret);
}

/* Bandeau d'appel à l'action */
.tz-cta {
	margin-block-start: clamp(56px, 7vw, 96px);
	padding: clamp(28px, 4vw, 48px);
	border: 1px solid var(--tz-trait);
	border-radius: 18px;
	background: linear-gradient(135deg, rgba(63, 220, 216, 0.06) 0%, transparent 60%);
}

.tz-cta > * + * { margin-block-start: 16px; }

.tz-cta h2 {
	font-size: var(--wp--preset--font-size--sous-titre);
}

.tz-cta .wp-block-buttons { margin-block-start: 24px; }

/* ── Pages simples et pages légales ──────────────────────────────────────── */
.tz-page {
	padding-block: clamp(56px, 7vw, 104px) clamp(64px, 8vw, 120px);
}

.tz-page__titre {
	font-size: clamp(30px, 3.4vw, 46px);
	letter-spacing: -0.03em;
}

.tz-page .wp-block-post-content {
	margin-block-start: clamp(28px, 3vw, 44px);
}

.tz-page .wp-block-post-content :where(h2) {
	margin-block-start: 2.2em;
	font-size: clamp(20px, 2vw, 24px);
}

.tz-page .wp-block-post-content :where(p, li) {
	font-size: 15.5px;
	line-height: 1.78;
}

.tz-a-completer {
	padding: 1px 8px;
	border: 1px dashed rgba(255, 255, 255, 0.28);
	border-radius: 999px;
	font-family: var(--tz-mono);
	font-size: 0.8em;
	color: var(--tz-texte);
	white-space: nowrap;
}

/* Recherche */
.wp-block-search__input {
	min-height: 48px;
	padding: 0 16px;
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 10px;
	background: var(--tz-surface-vive);
	color: var(--tz-texte);
	font-family: inherit;
	font-size: 15px;
}

.wp-block-search__input:focus-visible {
	border-color: var(--tz-accent-doux);
	outline: none;
	box-shadow: 0 0 0 3px rgba(63, 220, 216, 0.14);
}

.wp-block-search__button {
	min-height: 48px;
	margin-left: 10px;
}

/* ── Éditeur ─────────────────────────────────────────────────────────────── */
.tz-apercu-editeur {
	margin: 0;
	padding: 12px 14px;
	border: 1px dashed rgba(255, 255, 255, 0.22);
	border-radius: 8px;
	font-family: var(--tz-mono);
	font-size: 12px;
	color: var(--tz-texte-3);
}

/* ── Apparition discrète au défilement ───────────────────────────────────── */
.is-style-tz-carte,
.is-style-tz-etape,
.is-style-tz-raison,
.is-style-tz-techno {
	transition:
		opacity 0.6s var(--tz-courbe),
		transform 0.6s var(--tz-courbe),
		border-color 0.35s var(--tz-courbe),
		background-color 0.35s var(--tz-courbe);
}

.tz-js :is(.is-style-tz-carte, .is-style-tz-etape, .is-style-tz-raison, .is-style-tz-techno):not(.est-visible) {
	opacity: 0;
	transform: translateY(14px);
}

/* ── Mouvement réduit ────────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }

	*,
	*::before,
	*::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
		scroll-behavior: auto !important;
	}

	.tz-js :is(.is-style-tz-carte, .is-style-tz-etape, .is-style-tz-raison, .is-style-tz-techno):not(.est-visible) {
		opacity: 1;
		transform: none;
	}
}

/* ── Impression ──────────────────────────────────────────────────────────── */
@media print {
	header.wp-block-template-part,
	footer.wp-block-template-part,
	.tz-constellation,
	.tz-partage,
	.tz-cta,
	.is-style-tz-verre {
		display: none !important;
	}

	body { background: #fff; color: #000; }
	.wp-site-blocks::before,
	.wp-site-blocks::after,
	.tz-hero::before,
	.tz-hero::after { display: none; }
}
