/* ==========================================================================
   Gazelle Développement — « L'élan maîtrisé »
   Charte : marine #1B2A47 · or #B08D3F · or clair #D4B36A · crème #FAF8F4
   Toutes les animations respectent « réduire les animations » (classe
   html.gz-mouvement posée seulement si le visiteur ne l'a pas demandé).
   ========================================================================== */

:root {
	--gz-marine: var(--wp--preset--color--marine, #1B2A47);
	--gz-marine-profond: var(--wp--preset--color--marine-profond, #16233D);
	--gz-or: var(--wp--preset--color--or, #B08D3F);
	--gz-or-clair: var(--wp--preset--color--or-clair, #D4B36A);
	--gz-gris: var(--wp--preset--color--gris, #4A5160);
	--gz-creme: var(--wp--preset--color--creme, #FAF8F4);
	--gz-filet: rgba(27, 42, 71, 0.14);
	--gz-filet-sombre: rgba(250, 248, 244, 0.18);
	--gz-texte-sombre: rgba(250, 248, 244, 0.86);
	--gz-piqure: var(--gz-or);
	--gz-titre: 300;
	--gz-courbe: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 120' preserveAspectRatio='none'%3E%3Cpath d='M0 116 C 330 78, 760 22, 1200 0 C 790 36, 350 92, 0 116 Z' fill='%23B08D3F'/%3E%3C/svg%3E");
	--gz-courbe-marine: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 120'%3E%3Cpath d='M0 116 C 330 78, 760 22, 1200 0 C 790 36, 350 92, 0 116 Z' fill='%231B2A47'/%3E%3C/svg%3E");
	--gz-courbe-methode: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1280 160' preserveAspectRatio='none'%3E%3Cpath d='M0 150 C 360 140, 820 70, 1280 6 C 830 80, 370 150, 0 158 Z' fill='%23B08D3F'/%3E%3C/svg%3E");
	--gz-ease: cubic-bezier(.2, .7, .2, 1);
	--gz-hauteur-entete: 88px;
	scroll-padding-top: calc(var(--gz-hauteur-entete) + 16px);
}

html { -webkit-text-size-adjust: 100%; }
body { font-feature-settings: "kern"; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
img { height: auto; max-width: 100%; }

/* Focus toujours visible (WCAG 2.4.7 / 2.4.11) */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 2px solid var(--gz-marine);
	outline-offset: 3px;
}
.gz-fond-marine :focus-visible,
.gz-pied :focus-visible { outline-color: var(--gz-or-clair); }

.screen-reader-text:not(:focus) {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important;
}

/* Papier d'art : grain très léger sur les fonds clairs */
.gz-fond-blanc,
.gz-fond-creme,
.gz-ouverture {
	background-image: url(../img/grain.webp);
	background-size: 360px 360px;
}
.gz-fond-blanc { background-color: #fff; }
.gz-fond-creme { background-color: var(--gz-creme); }
.gz-fond-marine { background-color: var(--gz-marine); color: var(--gz-creme); }
.gz-fond-marine :where(h1, h2, h3, a) { color: var(--gz-creme); }
.gz-fond-marine.gz-section :where(p, li) { color: var(--gz-texte-sombre); }

/* ==========================================================================
   En-tête
   ========================================================================== */
.gz-zone-entete {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 50;
}
.gz-entete.gz-entete {
	height: var(--gz-hauteur-entete);
	box-sizing: border-box;
	padding-inline: var(--wp--style--root--padding-left, 5rem);
	gap: 3rem;
	flex-wrap: nowrap;
	justify-content: space-between;
	align-items: center;
	background: rgba(255, 255, 255, 0.96);
	border-bottom: 1px solid rgba(27, 42, 71, 0.1);
	margin: 0;
}
.gz-entete__marque { display: block; width: 52px; height: 52px; flex-shrink: 0; }
.gz-entete__marque img { display: block; width: 52px; height: 52px; }
.gz-entete .gz-nav { flex-grow: 1; justify-content: center; }
.gz-entete .gz-nav .wp-block-navigation__container { gap: 2.125rem; }
.gz-entete .gz-nav .wp-block-navigation-item__content {
	font-size: 0.875rem;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--gz-marine);
	padding: 12px 0;
	background-image: linear-gradient(var(--gz-or), var(--gz-or));
	background-repeat: no-repeat;
	background-position: 0 100%;
	background-size: 0 1px;
	transition: background-size .4s var(--gz-ease);
}
.gz-entete .gz-nav .wp-block-navigation-item__content:hover,
.gz-entete .gz-nav .wp-block-navigation-item__content:focus-visible { background-size: 100% 1px; }
.gz-entete__action { flex-shrink: 0; margin: 0 !important; }
.gz-entete__action .wp-block-button__link { padding: 0.875rem 1.5rem; font-size: 0.875rem; }

/* Menu mobile (surcouche du bloc Navigation) */
.gz-nav .wp-block-navigation__responsive-container.is-menu-open {
	background: #fff;
	color: var(--gz-marine);
	padding: 2rem 1.5rem;
}
.gz-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-size: 1.25rem;
	letter-spacing: 0.08em;
	padding: 0.75rem 0;
}
.gz-nav .wp-block-navigation__responsive-container-open,
.gz-nav .wp-block-navigation__responsive-container-close {
	width: 44px; height: 44px; align-items: center; justify-content: center;
	border: 1px solid rgba(27, 42, 71, 0.3); border-radius: 2px; color: var(--gz-marine);
}

/* ==========================================================================
   Sections et grille éditoriale (repère 25 % · contenu 75 %)
   ========================================================================== */
.gz-section {
	position: relative;
	overflow: clip;
	padding-top: clamp(4.5rem, 10vw, 9.375rem);
	padding-bottom: clamp(4.5rem, 10vw, 9.375rem);
	margin-block: 0 !important;
}
.gz-section.gz-section > * + * { margin-block-start: clamp(3rem, 6vw, 4.5rem); }
.gz-grille { column-gap: 1.5rem; margin-block: 0; }
.gz-grille > .wp-block-column > * { margin-block: 0; }
.gz-grille > .wp-block-column > * + * { margin-block-start: 2.25rem; }
.gz-grille > .wp-block-column > p + p,
.gz-grille > .wp-block-column > .is-style-reponse + p { margin-block-start: 1.5rem; }
.gz-deux-colonnes { column-gap: 3rem; }
.gz-deux-colonnes p { margin: 0; }

.gz-section :where(p) { color: var(--gz-gris); }
.gz-section :where(h2) { font-weight: var(--gz-titre); margin: 0; }
.gz-section :where(h3) { margin: 0; color: var(--gz-marine); }
.gz-section strong { color: var(--gz-marine); font-weight: 500; }
.gz-fond-marine strong { color: var(--gz-creme); }

/* Repère de bloc, avec point sellier */
.is-style-reperes {
	font-size: 0.875rem;
	line-height: 1.5;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: var(--gz-gris) !important;
	margin: 0;
}
.is-style-reperes::after {
	content: "";
	display: block;
	width: 96px;
	height: 1.5px;
	margin-top: 14px;
	background: repeating-linear-gradient(90deg, var(--gz-piqure) 0 7px, transparent 7px 12px);
}
.gz-fond-marine { --gz-piqure: var(--gz-or-clair); }
.gz-fond-marine .is-style-reperes { color: var(--gz-or-clair) !important; }

.gz-surtitre {
	display: flex;
	align-items: center;
	gap: 18px;
	font-size: 0.875rem;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: var(--gz-gris);
	margin: 0;
}
.gz-surtitre::before {
	content: "";
	flex: 0 0 64px;
	height: 1.5px;
	background: repeating-linear-gradient(90deg, var(--gz-or) 0 7px, transparent 7px 12px);
}

/* Titres */
.gz-h1 {
	font-size: var(--wp--preset--font-size--titre-1);
	font-weight: var(--gz-titre);
	line-height: 1.04;
	letter-spacing: -0.025em;
	color: var(--gz-marine);
	margin-top: 2.5rem;
	margin-bottom: 0;
	text-wrap: balance;
}
.gz-h1 em { font-style: italic; font-weight: 300; }
.gz-h1__sous {
	display: block;
	margin-top: 1.75rem;
	font-size: clamp(1.25rem, 2.2vw, 1.625rem);
	line-height: 1.35;
	font-weight: 400;
	letter-spacing: -0.005em;
}
.gz-h1::after {
	content: "";
	display: block;
	width: min(820px, 88%);
	aspect-ratio: 10 / 1;
	margin-top: 1.25rem;
	background: var(--gz-courbe) no-repeat left center / 100% 100%;
}
.gz-h1--page { font-size: clamp(2.5rem, 6vw, 4.5rem); }
.gz-h1--page::after { width: min(520px, 80%); }
.gz-h1--legal { font-size: clamp(2.25rem, 4.5vw, 3.25rem); }
.gz-h1--legal::after { display: none; }

.gz-valeurs__titre em,
.gz-fond-marine h2 em { color: var(--gz-or-clair); font-style: italic; font-weight: 300; }

/* Textes éditoriaux */
.is-style-chapeau {
	font-size: var(--wp--preset--font-size--chapeau);
	font-weight: 300;
	line-height: 1.75;
	color: var(--gz-marine) !important;
}
.gz-ouverture .is-style-chapeau { color: var(--gz-gris) !important; }
.gz-fond-marine .is-style-chapeau { color: var(--gz-texte-sombre) !important; }
.is-style-reponse {
	font-size: var(--wp--preset--font-size--reponse);
	font-weight: 300;
	line-height: 1.6;
	color: var(--gz-marine) !important;
	padding-left: 28px;
	border-left: 1px solid var(--gz-or);
}
.is-style-source { font-size: 0.875rem !important; line-height: 1.5; color: var(--gz-gris); }
.gz-fond-marine .is-style-source { color: var(--gz-texte-sombre); }
.gz-mention { font-size: 0.875rem !important; color: var(--gz-gris); margin: 0.875rem 0 0; }
.gz-numero { font-size: 2.5rem; font-weight: 300; line-height: 1; color: var(--gz-or) !important; margin: 0; }

/* Boutons */
.wp-block-buttons { gap: 1.25rem 2.25rem; align-items: center; }
.wp-block-button__link { transition: background-color .3s ease, color .3s ease; text-decoration: none; }
.gz-fond-marine .wp-block-button:not(.is-style-lien) .wp-block-button__link:hover,
.gz-fond-marine .wp-block-button:not(.is-style-lien) .wp-block-button__link:focus-visible { background: var(--gz-creme); color: var(--gz-marine); }
.wp-block-button.is-style-lien .wp-block-button__link {
	background: none;
	color: var(--gz-marine);
	padding: 1.125rem 0;
	border-radius: 0;
	display: inline-flex;
	align-items: center;
	gap: 14px;
	background-image: linear-gradient(currentColor, currentColor);
	background-repeat: no-repeat;
	background-position: 0 calc(100% - 12px);
	background-size: 100% 1px;
	transition: background-size .45s var(--gz-ease);
}
.wp-block-button.is-style-lien .wp-block-button__link::after {
	content: "→";
	font-weight: 300;
	transition: transform .35s var(--gz-ease);
}
.wp-block-button.is-style-lien .wp-block-button__link:hover { background-size: 0 1px; background-position: 100% calc(100% - 12px); }
.wp-block-button.is-style-lien .wp-block-button__link:hover::after { transform: translateX(6px); }
.gz-fond-marine .wp-block-button.is-style-lien .wp-block-button__link { color: var(--gz-creme); }

/* Signature du fondateur */
.gz-signature {
	display: flex;
	align-items: center;
	gap: 18px;
	padding-top: 28px;
	margin-top: 2rem;
	border-top: 1px solid var(--gz-filet);
	max-width: 36rem;
}
.gz-signature p { margin: 0; font-size: 0.9375rem; line-height: 1.55; color: var(--gz-gris); }
.gz-signature__nom { color: var(--gz-marine); font-weight: 500; }
.gz-signature__photo { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.gz-signature a { color: var(--gz-marine); }

/* Portrait (page Qui sommes-nous) */
.gz-portrait { display: flex; flex-direction: column; gap: 14px; }
.gz-portrait__photo { width: min(320px, 100%); aspect-ratio: 4 / 5; object-fit: cover; border-radius: 2px; }
.gz-portrait__lien { margin: 0; font-size: 0.9375rem; }
.gz-portrait__lien a { color: var(--gz-marine); }

/* ==========================================================================
   Étude au fusain en filigrane
   ========================================================================== */
.gz-ouverture::before,
.gz-avec-fusain::before {
	content: "";
	position: absolute;
	pointer-events: none;
	z-index: 0;
	background-repeat: no-repeat;
	background-size: contain;
}
.gz-ouverture > *,
.gz-avec-fusain > * { position: relative; z-index: 1; }

.gz-ouverture::before {
	right: -120px;
	top: 40px;
	width: min(1000px, 72vw);
	aspect-ratio: 1100 / 749;
	background-image: url(../img/fusain-marine-1100.webp);
	opacity: .38;
}
.gz-ouverture--page::before { opacity: .26; width: min(820px, 60vw); top: 20px; }
.gz-constat.gz-avec-fusain::before,
#constat.gz-avec-fusain::before {
	left: -200px;
	bottom: -60px;
	width: 900px;
	aspect-ratio: 1100 / 749;
	background-image: url(../img/fusain-marine-1100.webp);
	transform: scaleX(-1);
	opacity: .30;
}
.gz-valeurs.gz-avec-fusain::before {
	left: 50%;
	top: 20px;
	width: 1300px;
	margin-left: -600px;
	aspect-ratio: 1100 / 749;
	background-image: url(../img/fusain-creme-1100.webp);
	opacity: .19;
}
.gz-contact.gz-avec-fusain::before {
	left: -240px;
	top: 420px;
	width: 1000px;
	aspect-ratio: 1100 / 749;
	background-image: url(../img/fusain-creme-1100.webp);
	opacity: .17;
}

/* ==========================================================================
   1. Ouverture
   ========================================================================== */
.gz-ouverture {
	padding-top: clamp(3rem, 7vw, 6rem);
	padding-bottom: clamp(2.5rem, 4vw, 3.5rem);
}
.gz-ouverture.gz-section > * + * { margin-block-start: 0; }
.gz-ouverture--courte { padding-bottom: clamp(3rem, 7vw, 6rem); }
.gz-ouverture__bas { margin-top: 2.5rem !important; }
.gz-ouverture__bas .wp-block-buttons { margin-top: 2.25rem; }
.gz-ouverture--page .wp-block-columns { margin-top: 2.5rem !important; }

.gz-bandeau {
	margin-top: clamp(3.5rem, 7vw, 5.5rem) !important;
	gap: 0 !important;
	border-top: 1px solid var(--gz-filet);
	border-bottom: 1px solid var(--gz-filet);
	background: rgba(255, 255, 255, 0.7);
}
.gz-bandeau > .wp-block-column {
	display: flex;
	align-items: baseline;
	gap: 20px;
	padding: 38px 40px;
}
.gz-bandeau > .wp-block-column:first-child { padding-left: 0; }
.gz-bandeau > .wp-block-column + .wp-block-column { border-left: 1px solid var(--gz-filet); }
.gz-bandeau p { margin: 0; font-size: 1rem; line-height: 1.5; color: var(--gz-marine); }
.gz-bandeau .is-style-chiffre { font-size: clamp(2.75rem, 5vw, 3.625rem); color: var(--gz-or); }

/* Chiffre clé (décompte) */
.is-style-chiffre {
	font-weight: 300;
	line-height: 1;
	letter-spacing: -0.03em;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
	color: var(--gz-marine);
	margin: 0;
}
.gz-unite { font-size: 0.46em; letter-spacing: 0; }

/* ==========================================================================
   3. Constat
   ========================================================================== */
.gz-chiffres { column-gap: 2.5rem; row-gap: 3rem; }
.gz-chiffre-carte { border-top: 1px solid var(--gz-marine); padding-top: 28px; }
.gz-chiffre-carte > * { margin: 0; }
.gz-chiffre-carte > * + * { margin-top: 18px; }
.gz-chiffre-carte .is-style-chiffre { font-size: clamp(3.5rem, 6vw, 4.75rem); }
.gz-chiffre-carte h3 { font-size: 1.0625rem; font-weight: 500; }
.gz-chiffre-carte p { font-size: 1rem; line-height: 1.7; }

.gz-citation { max-width: 50rem; margin-inline: auto !important; text-align: center; }
.gz-citation::before {
	content: "";
	display: block;
	width: 220px;
	height: 22px;
	margin: 0 auto 28px;
	background: var(--gz-courbe-marine) no-repeat center / contain;
}
.gz-citation p { margin: 0; }
.gz-citation p + p { margin-top: 28px; }
.gz-citation__texte { font-size: clamp(1.5rem, 2.6vw, 2rem) !important; line-height: 1.45; font-weight: 300; color: var(--gz-marine) !important; }

/* ==========================================================================
   Cartes (modules, formats)
   ========================================================================== */
.gz-cartes { column-gap: 1.5rem; row-gap: 1.5rem; }
.gz-cartes > .wp-block-column { display: flex; }
.is-style-carte {
	display: flex;
	flex-direction: column;
	gap: 18px;
	width: 100%;
	box-sizing: border-box;
	padding: 40px 36px;
	background: #fff;
	border: 1px solid var(--gz-filet);
	transition: border-color .35s ease, transform .35s var(--gz-ease);
}
.is-style-carte > * { margin: 0 !important; }
.is-style-carte:hover { border-color: var(--gz-or); transform: translateY(-4px); }
.is-style-carte h3 { font-size: 1.375rem; font-weight: 500; }
.is-style-carte p { font-size: 1rem; line-height: 1.75; }
.gz-carte__pied {
	margin-top: auto !important;
	padding-top: 18px;
	border-top: 1px solid var(--gz-filet);
	font-style: italic;
	font-weight: 300;
	color: var(--gz-marine) !important;
}

/* Encart surpiqué (point sellier) */
.is-style-encart {
	position: relative;
	padding: 48px 56px;
	background: var(--gz-creme);
}
.gz-fond-creme .is-style-encart { background: #fff; }
.is-style-encart > * { margin: 0; position: relative; }
.is-style-encart > * + * { margin-top: 16px; }
.is-style-encart::before {
	content: "";
	position: absolute;
	inset: 10px;
	pointer-events: none;
	background:
		repeating-linear-gradient(90deg, var(--gz-piqure) 0 7px, transparent 7px 12px) top left / 100% 1.5px no-repeat,
		repeating-linear-gradient(90deg, var(--gz-piqure) 0 7px, transparent 7px 12px) bottom left / 100% 1.5px no-repeat,
		repeating-linear-gradient(180deg, var(--gz-piqure) 0 7px, transparent 7px 12px) top left / 1.5px 100% no-repeat,
		repeating-linear-gradient(180deg, var(--gz-piqure) 0 7px, transparent 7px 12px) top right / 1.5px 100% no-repeat;
}
.gz-encart__titre { font-size: 0.875rem !important; font-weight: 500; letter-spacing: 0.24em; text-transform: uppercase; color: var(--gz-marine) !important; }
.gz-encart--sombre { background: transparent; border: 1px solid rgba(212, 179, 106, 0.55); padding: 64px 72px; max-width: 54rem; margin-inline: auto !important; }
.gz-encart__accroche { font-size: clamp(1.375rem, 2.4vw, 1.75rem) !important; line-height: 1.45; font-weight: 300; font-style: italic; color: var(--gz-or-clair) !important; }

/* ==========================================================================
   Tableaux (comparatif, territoires, fiches)
   ========================================================================== */
.is-style-gazelle { margin: 0; overflow: visible; }
.is-style-gazelle table { width: 100%; border-collapse: collapse; font-size: 1.0625rem; line-height: 1.6; color: var(--gz-marine); }
.is-style-gazelle thead { border: 0; }
.is-style-gazelle th {
	text-align: left;
	padding: 0 32px 22px 0;
	font-size: 0.875rem;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--gz-gris);
	border: 0;
}
.is-style-gazelle td {
	padding: 24px 32px 24px 0;
	vertical-align: top;
	border: 0;
	border-top: 1px solid var(--gz-filet);
	color: var(--gz-gris);
}
.is-style-gazelle tbody tr:last-child td { border-bottom: 1px solid var(--gz-filet); }
.is-style-gazelle td:first-child { font-weight: 500; color: var(--gz-marine); }
.is-style-gazelle tbody tr { transition: background-color .3s ease; }
.is-style-gazelle tbody tr:hover { background-color: rgba(176, 141, 63, 0.05); }

.gz-comparatif th:first-child { width: 28%; }
.gz-comparatif th:nth-child(2), .gz-comparatif td:nth-child(2) { padding-left: 32px; }
.gz-comparatif th:nth-child(3) { background: #fff; border-top: 2px solid var(--gz-or); padding: 28px 32px 22px; color: var(--gz-marine); }
.gz-comparatif td:nth-child(3) { background: #fff; padding-left: 32px; color: var(--gz-marine); }
.gz-territoires th:first-child { width: 36%; }
.gz-territoires td:first-child { font-weight: 400; color: var(--gz-gris); }
.gz-territoires td:first-child br { display: none; }
.gz-territoires td:first-child strong { display: block; font-size: 1.375rem; font-weight: 400; color: var(--gz-marine); }
.gz-fiche th:first-child, .gz-fiche td:first-child { width: 30%; }

/* ==========================================================================
   6. Secteurs
   ========================================================================== */
.gz-secteurs { column-gap: 4rem; row-gap: 4rem; }
.gz-secteurs + .gz-secteurs { margin-top: 4rem !important; }
.gz-secteur { border-top: 1px solid var(--gz-marine); padding-top: 32px; }
.gz-secteur > * { margin: 0; }
.gz-secteur > * + * { margin-top: 16px; }
.gz-secteur h3 { font-size: 1.5rem; font-weight: 400; line-height: 1.35; }
.gz-secteur p { font-size: 1.0625rem; }

/* ==========================================================================
   8. Valeurs (fond marine)
   ========================================================================== */
.gz-valeurs { padding-top: clamp(5rem, 11vw, 10.625rem); padding-bottom: clamp(5rem, 11vw, 10.625rem); }
.gz-valeurs > .is-style-reperes,
.gz-valeurs > .gz-valeurs__titre,
.gz-valeurs > .is-style-chapeau { text-align: center; margin-inline: auto !important; }
.gz-valeurs > .is-style-reperes::after { margin-inline: auto; width: 120px; }
.gz-valeurs.gz-section > .gz-valeurs__titre { margin-top: 2rem; max-width: 16em; font-size: clamp(2.25rem, 5vw, 4.125rem); line-height: 1.1; letter-spacing: -0.02em; }
.gz-valeurs.gz-section > .is-style-chapeau { margin-top: 2rem; max-width: 48rem; }
.gz-valeurs__liste {
	list-style: none;
	counter-reset: valeur;
	padding: 0;
	max-width: 67rem;
	margin-inline: auto !important;
}
.gz-valeurs__liste li {
	counter-increment: valeur;
	display: grid;
	grid-template-columns: 96px 260px minmax(0, 1fr);
	column-gap: 32px;
	align-items: baseline;
	padding: 34px 0;
	border-top: 1px solid var(--gz-filet-sombre);
	font-size: 1.0625rem;
	line-height: 1.75;
	color: var(--gz-texte-sombre);
}
.gz-valeurs__liste li:last-child { border-bottom: 1px solid var(--gz-filet-sombre); }
.gz-valeurs__liste li::before { content: counter(valeur, upper-roman); font-size: 2.25rem; font-weight: 300; color: var(--gz-or-clair); }
.gz-valeurs__liste li strong { font-size: 1.5rem; font-weight: 500; line-height: 1.35; color: var(--gz-creme); }

/* ==========================================================================
   9. Méthode — les cinq phases sur le fil d'or
   ========================================================================== */
.gz-phases { position: relative; column-gap: 2rem; padding-top: 180px; }
.gz-phases::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 160px;
	background: var(--gz-courbe-methode) no-repeat 0 0 / 100% 100%;
	clip-path: inset(0 0 0 0);
}
.gz-phase > * { margin: 0; }
.gz-phase > * + * { margin-top: 16px; }
.gz-phase .gz-numero { font-size: 3rem; }
.gz-phase h3 { font-size: 1.375rem; font-weight: 500; }
.gz-phase p { font-size: 1rem; line-height: 1.7; }
.gz-livrable { padding-top: 16px; border-top: 1px solid var(--gz-filet); color: var(--gz-marine) !important; }
.gz-livrable__titre { display: block; margin-bottom: 6px; font-size: 0.8125rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gz-gris); }
.gz-liste-pilotage { padding-left: 1.25rem; }
.gz-liste-pilotage li { margin-bottom: 1rem; }

/* ==========================================================================
   11. Questions (bloc Détails)
   ========================================================================== */
.wp-block-details {
	border-top: 1px solid rgba(27, 42, 71, 0.16);
	padding: 26px 0;
	margin: 0 !important;
}
.gz-grille .wp-block-details + .wp-block-details { margin-top: 0 !important; }
.wp-block-details:last-of-type { border-bottom: 1px solid rgba(27, 42, 71, 0.16); }
.wp-block-details summary {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 24px;
	min-height: 44px;
	list-style: none;
	cursor: pointer;
	font-size: 1.3125rem;
	line-height: 1.4;
	color: var(--gz-marine);
}
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after {
	content: "+";
	flex: 0 0 28px;
	text-align: center;
	font-size: 1.75rem;
	font-weight: 300;
	color: var(--gz-or);
	transition: transform .35s var(--gz-ease);
}
.wp-block-details[open] summary::after { transform: rotate(45deg); }
.wp-block-details > p { margin: 16px 0 0; max-width: 48rem; font-size: 1.125rem; }

/* ==========================================================================
   12. Contact (fond marine)
   ========================================================================== */
.gz-contact { padding-top: clamp(5rem, 11vw, 10rem); }
.gz-contact__colonnes { column-gap: clamp(2rem, 6vw, 6rem); align-items: flex-start !important; }
.gz-contact__texte { position: sticky; top: calc(var(--gz-hauteur-entete) + 48px); }
.gz-contact__texte > * + * { margin-top: 2rem !important; }
.gz-contact h2 { font-size: clamp(2.5rem, 5vw, 3.875rem); line-height: 1.08; letter-spacing: -0.02em; }
.gz-contact__coordonnees { position: relative; padding-top: 3.25rem; font-size: 1.0625rem; line-height: 1.9; }
.gz-contact__coordonnees::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 300px;
	height: 30px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 120'%3E%3Cpath d='M0 116 C 330 78, 760 22, 1200 0 C 790 36, 350 92, 0 116 Z' fill='%23D4B36A'/%3E%3C/svg%3E") no-repeat left / contain;
}
.gz-contact__coordonnees a { color: var(--gz-creme); }

/* ==========================================================================
   Pied de page
   ========================================================================== */
.gz-pied {
	background: var(--gz-marine-profond);
	color: var(--gz-texte-sombre);
	padding: clamp(4rem, 8vw, 6.875rem) var(--wp--style--root--padding-right, 5rem) 3rem var(--wp--style--root--padding-left, 5rem);
	margin: 0;
}
.gz-pied p, .gz-pied li { color: var(--gz-texte-sombre); font-size: 1rem; line-height: 1.7; margin: 0; }
.gz-pied a { color: var(--gz-creme); }
.gz-pied__colonnes { column-gap: 3rem; row-gap: 3rem; max-width: 1280px; margin-inline: auto !important; }
.gz-pied__colonnes .wp-block-column > * + * { margin-top: 1.25rem; }
.gz-pied__logo { display: block; width: 170px; height: auto; }
.gz-pied__signature { font-size: 1.375rem !important; font-weight: 300; font-style: italic; color: var(--gz-or-clair) !important; }
.gz-pied__titre { font-size: 0.8125rem !important; font-weight: 500; letter-spacing: 0.24em; text-transform: uppercase; color: var(--gz-or-clair) !important; }
.gz-pied__liste { list-style: none; padding: 0; }
.gz-pied__liste li + li { margin-top: 0.5rem; }
.gz-pied__bas {
	max-width: 1280px;
	margin: 5.5rem auto 0 !important;
	padding-top: 2rem;
	border-top: 1px solid rgba(250, 248, 244, 0.16);
	justify-content: space-between;
	gap: 1rem 2rem;
}
.gz-pied__bas p { font-size: 0.875rem; color: rgba(250, 248, 244, 0.78); }
.gz-reseaux { margin-top: 1.5rem !important; }
.gz-reseaux .wp-social-link {
	background: transparent !important;
	color: var(--gz-creme) !important;
	border: 1px solid rgba(250, 248, 244, 0.35);
	width: 44px;
	height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.gz-reseaux .wp-social-link a { padding: 0; display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }
.gz-reseaux .wp-social-link svg { width: 18px; height: 18px; }

/* Pages de texte et pages légales */
.gz-legal .gz-texte-legal,
.gz-legal > .gz-surtitre,
.gz-legal > .gz-h1 { max-width: 820px; margin-inline: auto !important; width: 100%; }
.gz-texte-legal h2 { font-size: clamp(1.5rem, 2.5vw, 1.875rem); font-weight: 400; margin-top: 3rem; }
.gz-texte-legal > * + * { margin-top: 1.25rem; }

/* ==========================================================================
   Animations (uniquement si le visiteur n'a pas demandé à les réduire)
   ========================================================================== */
@keyframes gz-apparait { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@keyframes gz-monte { from { opacity: 0; transform: translateY(42px); } to { opacity: 1; transform: none; } }
@keyframes gz-trace { from { clip-path: inset(0 100% 0 0); opacity: 0; } 20% { opacity: var(--gz-fo, 1); } to { clip-path: inset(0 0 0 0); opacity: var(--gz-fo, 1); } }
@keyframes gz-trace-simple { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0 0 0 0); } }
@keyframes gz-derive { from { translate: 0 50px; } to { translate: 0 -50px; } }

.gz-mouvement .gz-ouverture > .gz-surtitre { animation: gz-apparait 1s var(--gz-ease) both; }
.gz-mouvement .gz-ouverture > .gz-h1 { animation: gz-monte 1.2s var(--gz-ease) .15s both; }
.gz-mouvement .gz-ouverture > .gz-h1::after { animation: gz-trace-simple 1.4s cubic-bezier(.45, 0, .2, 1) .7s both; }
.gz-mouvement .gz-ouverture > .gz-ouverture__bas,
.gz-mouvement .gz-ouverture > .is-style-chapeau,
.gz-mouvement .gz-ouverture > .wp-block-columns:not(.gz-bandeau) { animation: gz-apparait 1s var(--gz-ease) .7s both; }
.gz-mouvement .gz-ouverture > .gz-bandeau { animation: gz-apparait 1s var(--gz-ease) .9s both; }
.gz-mouvement .gz-ouverture::before { --gz-fo: .38; animation: gz-trace 2.6s cubic-bezier(.45, 0, .2, 1) .2s both; }
.gz-mouvement .gz-ouverture--page::before { --gz-fo: .26; }

/* Apparition des blocs au défilement (classe posée par le script) */
.gz-mouvement .gz-rv { opacity: 0; transform: translateY(16px); transition: opacity .9s var(--gz-ease), transform .9s var(--gz-ease); }
.gz-mouvement .gz-rv.gz-vu { opacity: 1; transform: none; }

/* Cartes en cascade : l'une après l'autre */
.gz-mouvement .is-style-cascade:not(.gz-vu) > .wp-block-column { opacity: 0; }
.gz-mouvement .is-style-cascade.gz-vu > .wp-block-column { animation: gz-apparait 1.1s var(--gz-ease) backwards; }
.gz-mouvement .is-style-cascade.gz-vu > .wp-block-column:nth-child(2) { animation-delay: .4s; }
.gz-mouvement .is-style-cascade.gz-vu > .wp-block-column:nth-child(3) { animation-delay: .8s; }
.gz-mouvement .is-style-cascade.gz-vu > .wp-block-column:nth-child(4) { animation-delay: 1.2s; }
.gz-mouvement .is-style-cascade.gz-vu > .wp-block-column:nth-child(5) { animation-delay: 1.6s; }

/* Méthode : le fil d'or se trace et révèle chaque phase à son passage */
.gz-mouvement .gz-phases:not(.gz-vu)::before { clip-path: inset(0 100% 0 0); }
.gz-mouvement .gz-phases.gz-vu::before { transition: clip-path 2s linear; }
.gz-mouvement .gz-phases > .wp-block-column { transition: opacity 1s var(--gz-ease), transform 1s var(--gz-ease); }
.gz-mouvement .gz-phases:not(.gz-vu) > .wp-block-column { opacity: 0; transform: translateY(28px); }
.gz-mouvement .gz-phases.gz-vu > .wp-block-column:nth-child(1) { transition-delay: .1s; }
.gz-mouvement .gz-phases.gz-vu > .wp-block-column:nth-child(2) { transition-delay: .5s; }
.gz-mouvement .gz-phases.gz-vu > .wp-block-column:nth-child(3) { transition-delay: .9s; }
.gz-mouvement .gz-phases.gz-vu > .wp-block-column:nth-child(4) { transition-delay: 1.3s; }
.gz-mouvement .gz-phases.gz-vu > .wp-block-column:nth-child(5) { transition-delay: 1.7s; }

/* Chiffres en cours de décompte : fondu de pâle à plein */
.gz-cpt { transition: opacity 1.4s ease; }
.gz-cpt.gz-cpt--attente { opacity: .3; }

/* Profondeur : les filigranes glissent plus lentement que le texte */
@supports (animation-timeline: view()) {
	.gz-mouvement .gz-avec-fusain { view-timeline-name: --gz-section; }
	.gz-mouvement .gz-avec-fusain::before { animation: gz-derive linear both; animation-timeline: --gz-section; animation-range: cover 0% cover 100%; }
}

/* ==========================================================================
   Tablette et mobile
   ========================================================================== */
@media (max-width: 1100px) {
	.gz-entete .gz-nav .wp-block-navigation__container { gap: 1.25rem; }
	.gz-entete .gz-nav .wp-block-navigation-item__content { letter-spacing: 0.08em; font-size: 0.8125rem; }
	.gz-valeurs__liste li { grid-template-columns: 72px 200px minmax(0, 1fr); }
}

@media (max-width: 781px) {
	:root { --gz-hauteur-entete: 68px; }
	.gz-entete.gz-entete { gap: 12px; padding-inline: 16px; }
	.gz-entete__marque, .gz-entete__marque img { width: 44px; height: 44px; }
	.gz-entete .gz-nav { order: 3; flex-grow: 0; }
	.gz-entete__action { flex-grow: 1; order: 2; }
	.gz-entete__action .wp-block-button { width: 100%; }
	.gz-entete__action .wp-block-button__link { width: 100%; padding: 0.75rem 1rem; }

	.gz-vide { display: none; }
	.gz-grille > .wp-block-column:first-child { margin-bottom: 1.5rem; }

	.gz-ouverture::before {
		background-image: url(../img/fusain-marine-560.webp);
		width: 130vw;
		right: -45vw;
		top: 110px;
		opacity: .28;
	}
	.gz-mouvement .gz-ouverture::before { --gz-fo: .28; }
	.gz-h1 { margin-top: 1.75rem; }
	.gz-bandeau { background: transparent; border-bottom: 0; }
	.gz-bandeau > .wp-block-column { padding: 20px 0 !important; border-left: 0 !important; border-bottom: 1px solid var(--gz-filet); }
	.gz-bandeau .is-style-chiffre { min-width: 5.25rem; font-size: 2.375rem; }

	.gz-constat.gz-avec-fusain::before, #constat.gz-avec-fusain::before { width: 520px; left: -160px; }
	.gz-valeurs.gz-avec-fusain::before { width: 640px; margin-left: -320px; }
	.gz-contact.gz-avec-fusain::before { width: 560px; top: auto; bottom: 40px; }

	.is-style-carte { padding: 32px 26px; }
	.is-style-encart { padding: 36px 30px; }
	.gz-encart--sombre { padding: 40px 30px; }

	.gz-valeurs__liste li { grid-template-columns: 48px minmax(0, 1fr); row-gap: 8px; }
	.gz-valeurs__liste li::before { grid-row: span 2; font-size: 1.75rem; }

	.gz-phases { padding-top: 0; }
	.gz-phases::before { display: none; }
	.gz-phase { padding-left: 20px; border-left: 1px solid var(--gz-or); }

	.gz-contact__texte { position: static; }

	/* Tableaux : chaque ligne devient une fiche empilée (libellés ajoutés par le script) */
	.is-style-gazelle thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
	.is-style-gazelle table, .is-style-gazelle tbody, .is-style-gazelle tr, .is-style-gazelle td { display: block; width: 100% !important; }
	.is-style-gazelle tr { border-top: 1px solid var(--gz-filet); padding: 20px 0; }
	.is-style-gazelle tbody tr:last-child td { border-bottom: 0; }
	.is-style-gazelle tbody tr:last-child { border-bottom: 1px solid var(--gz-filet); }
	.is-style-gazelle td { border: 0; padding: 4px 0 !important; background: none !important; }
	.is-style-gazelle td[data-label]:not(:first-child)::before {
		content: attr(data-label);
		display: block;
		margin-top: 10px;
		font-size: 0.75rem;
		letter-spacing: 0.2em;
		text-transform: uppercase;
		color: var(--gz-gris);
	}
	.gz-comparatif td:nth-child(3) { padding: 12px 14px !important; background: #fff !important; border-left: 2px solid var(--gz-or) !important; margin-top: 10px; }
	.gz-pied__bas { flex-direction: column; }
}

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

/* Impression : sobre et lisible */
@media print {
	.gz-zone-entete, .gz-ouverture::before, .gz-avec-fusain::before, .wp-block-buttons { display: none !important; }
	.gz-fond-marine { background: #fff; color: #000; }
	.gz-fond-marine :where(h2, h3, p, li, strong) { color: #000 !important; }
}
