/*
 * François Millet — styles du thème.
 * Mesures relevées sur la maquette Figma (frame 2026:290, 1440 px de large).
 * Breakpoints : < 1024 px (hamburger, colonnes empilées), < 768 px (tout centré).
 */

/* Police ---------------------------------------------------------------------------------------- */
@font-face {
	font-family: "Inter";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("../fonts/inter.woff2") format("woff2");
}

/* Charte ---------------------------------------------------------------------------------------- */
:root {
	--bleu: #0827eb;
	--bleu-bord: rgba(8, 39, 235, 0.5);
	--noir: #000;
	--encre: #14171d;
	--anthracite: #1e1e1c;
	--gris: #818897;
	--blanc: #fff;
	--gouttiere: 24px;
	--entete: 39px;
	--rayon: 10px;
}

/* Base ------------------------------------------------------------------------------------------ */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: var(--entete); -webkit-text-size-adjust: 100%; }
.admin-bar { scroll-padding-top: calc(var(--entete) + 32px); }
body {
	margin: 0;
	background: var(--blanc);
	color: var(--encre);
	font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
	font-size: 16px;
	line-height: 1.4;
	-webkit-font-smoothing: antialiased;
}
img, svg { max-width: 100%; height: auto; }
a { color: inherit; }
button { font: inherit; }
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid var(--bleu); outline-offset: 3px; }
.contenu:focus { outline: none; }

.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.lien-evitement {
	position: absolute; left: 12px; top: -60px; z-index: 300;
	padding: 10px 16px; background: var(--blanc); color: var(--bleu); border-radius: 30px;
}
.lien-evitement:focus { top: 8px; }

/* Titres de section : 48 px gras centrés */
.titre-section {
	margin: 0;
	padding: 0 var(--gouttiere);
	font-size: 48px;
	font-weight: 700;
	line-height: 1;
	text-align: center;
	color: var(--encre);
}
.titre-section--clair { color: var(--blanc); line-height: 1.2; letter-spacing: -0.5px; }

/* Boutons --------------------------------------------------------------------------------------- */
.bouton {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 41px;
	padding: 0 13px;
	border: 1px solid transparent;
	border-radius: 30px;
	font-size: 16px;
	line-height: 1.2;
	text-align: center;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.2s, color 0.2s, border-color 0.2s;
}
.bouton--contour { border-color: var(--blanc); border-radius: 20px; color: var(--blanc); background: transparent; }
.bouton--contour:hover, .bouton--contour:focus-visible { background: var(--blanc); color: var(--bleu); }
.bouton--plein { background: var(--blanc); color: var(--bleu); }
.bouton--plein:hover, .bouton--plein:focus-visible { background: var(--noir); border-color: var(--noir); color: var(--blanc); }
.bouton--bleu, .bouton--envoyer {
	min-height: 47px;
	padding: 0 16px;
	border-radius: 60px;
	background: var(--bleu);
	color: var(--blanc);
	font-size: 15px;
	font-weight: 700;
}
.bouton--bleu:hover, .bouton--bleu:focus-visible,
.bouton--envoyer:hover, .bouton--envoyer:focus-visible { background: var(--encre); color: var(--blanc); }

/* En-tête : barre noire de 39 px ------------------------------------------------------------------ */
.entete { position: sticky; top: 0; z-index: 100; background: var(--noir); color: var(--blanc); }
.admin-bar .entete { top: 32px; }
.entete__barre {
	position: relative;
	display: flex;
	align-items: center;
	height: var(--entete);
	padding: 0 26px 0 30px;
}
.entete__logo { display: block; flex: none; line-height: 0; }
.entete__logo svg, .entete__logo img { display: block; width: 188px; height: 26px; }
.entete__nav { position: absolute; left: 50%; top: 0; height: 100%; transform: translateX(-50%); }
.menu-principal { display: flex; align-items: center; gap: 33px; height: 100%; margin: 0; padding: 0; list-style: none; }
.menu-principal a {
	display: block;
	font-size: 14px;
	font-weight: 700;
	line-height: 17px;
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
	text-underline-offset: 5px;
}
.menu-principal a:hover, .menu-principal a:focus-visible, .menu-principal a[aria-current] { text-decoration: underline; text-decoration-thickness: 2px; }
.entete__icones { display: flex; gap: 20px; margin: 0 0 0 auto; padding: 0; list-style: none; }
.entete__icones a { display: block; line-height: 0; transition: opacity 0.2s; }
.entete__icones a:hover, .entete__icones a:focus-visible { opacity: 0.7; }
.entete__icones svg { width: 24px; height: 24px; }

.menu-toggle { display: none; }

/* Bandeau ---------------------------------------------------------------------------------------- */
.hero {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 841px;          /* 880 px de la maquette moins la barre de 39 px */
	padding: 40px 0;
	overflow: hidden;
	background: var(--bleu);
	color: var(--blanc);
}
.hero__fond {
	position: absolute; inset: 0;
	width: 100%; height: 100%;
	object-fit: cover; object-position: 50% 67%;
	opacity: 0.2;
	pointer-events: none;
}
.hero__deco { position: absolute; top: -37px; right: -66px; width: 293px; height: auto; pointer-events: none; }
.hero__grille {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) 615px;
	align-items: center;
	gap: 15px;
	width: min(1222px, 100% - 2 * var(--gouttiere));
	margin: 0 auto;
}
.hero__surtitre {
	display: inline-block;
	margin: 0 0 21px;
	padding: 5px 20px;
	border-radius: 70px;
	background: rgba(255, 255, 255, 0.2);
	font-size: 16px;
	line-height: normal;
	text-transform: uppercase;
}
.hero__titre {
	max-width: 592px;
	margin: 0 0 17px;
	font-size: 40px;
	font-weight: 900;
	line-height: normal;
	text-transform: uppercase;
}
.hero__intro { max-width: 434px; margin: 0 0 25px; color: rgba(255, 255, 255, 0.8); line-height: normal; }
.hero__boutons { display: flex; flex-wrap: wrap; gap: 13px; }
.hero__portrait { width: 615px; aspect-ratio: 1; border-radius: 50%; overflow: hidden; }
.hero__portrait img { display: block; width: 100%; height: 100%; object-fit: cover; }

/* Valeurs ---------------------------------------------------------------------------------------- */
.valeurs { position: relative; padding: 106px 0 89px; overflow: clip; }   /* 588 px avec une valeur sur 3 lignes */
/*
 * Soleil à cheval sur Valeurs / Expertise. Chaque section porte une étoile entière (moitié Figma + reflet)
 * centrée sur la frontière : la section coupe sa couleur, et les deux étoiles tournent ensemble (effets.js).
 * Boîte de 520 px, centre de rotation à 260 px ; centre du demi-disque dans les SVG : y 252 (haut), y 1 (bas).
 */
.soleil { position: absolute; width: 598px; height: 520px; pointer-events: none; will-change: transform; }
.soleil img { position: absolute; left: 0; width: 598px; max-width: none; height: 260px; }
.soleil--haut { left: -314px; bottom: -260px; transform-origin: 314px 260px; }
.soleil--haut .soleil__moitie { top: 8px; }
.soleil--haut .soleil__reflet { top: 252px; transform: scaleY(-1); }
.soleil--bas { left: -281px; top: -260px; transform-origin: 281px 260px; }
.soleil--bas .soleil__moitie { top: 259px; }
.soleil--bas .soleil__reflet { top: 1px; transform: scaleY(-1); }
.valeurs__entete, .valeurs__slider { position: relative; }
.valeurs__intro { max-width: 991px; margin: 18px auto 0; padding: 0 var(--gouttiere); line-height: 22.4px; text-align: center; }
.valeurs__slider {
	display: grid;
	grid-template-columns: 19px minmax(0, 1fr) 19px;
	column-gap: 5px;
	align-items: start;
	width: min(1250px, 100% - 2 * var(--gouttiere));
	margin: 16px auto 0;
}
.valeurs__swiper { width: 100%; }
.valeurs__liste { margin: 0; padding: 0; list-style: none; }
/* Sans Swiper (JS absent) : grille lisible */
.valeurs__swiper:not(.swiper-initialized) .valeurs__liste { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 32px 0; }
.valeurs__swiper:not(.swiper-initialized) ~ .valeurs__fleche,
.valeurs__slider:not(:has(.swiper-initialized)) .valeurs__fleche { visibility: hidden; }
.valeur { padding: 55px 12px 0; text-align: center; }
.valeur__icone { display: block; width: 109px; height: 109px; margin: 0 auto; }
.valeur__titre { margin: 31px 0 0; color: var(--noir); font-size: 20px; font-weight: 700; line-height: 20px; text-transform: uppercase; }
.valeur__texte { max-width: 309px; margin: 13px auto 0; color: rgba(0, 0, 0, 0.8); font-size: 14px; line-height: 20px; }
.valeurs__fleche {
	display: grid;
	place-items: center;
	width: 30px;
	height: 30px;
	margin: 113px 0 0 -6px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--bleu);
	cursor: pointer;
	transition: transform 0.2s;
}
.valeurs__fleche svg { width: 20px; height: 17px; }
.valeurs__fleche--prec:hover { transform: translateX(-4px); }
.valeurs__fleche--suiv:hover { transform: translateX(4px); }

/* Expertise -------------------------------------------------------------------------------------- */
.expertise { position: relative; padding: 127px 0 133px; overflow: clip; background: var(--noir); color: var(--blanc); }
.expertise .titre-section { position: relative; }
.expertise__grille {
	position: relative;
	display: grid;
	grid-template-columns: 250px minmax(0, 1fr);
	column-gap: 77px;
	width: min(1140px, 100% - 2 * var(--gouttiere));
	margin: 86px auto 0;
}
.expertise__onglets {
	display: flex;
	flex-direction: column;
	align-self: start;
	gap: 25px;
	min-height: 196px;
	border-right: 1px solid var(--blanc);
}
.expertise__onglet {
	min-height: 53px;
	padding: 0 12px 0 27px;
	border: 0;
	background: none;
	color: rgba(255, 255, 255, 0.5);
	font-size: 17.6px;
	font-weight: 500;
	line-height: normal;
	text-align: left;
	cursor: pointer;
	transition: color 0.2s;
}
.expertise__onglet:hover { color: var(--blanc); }
.expertise__onglet[aria-selected="true"] { color: var(--bleu); font-weight: 700; box-shadow: inset -2px 0 0 var(--bleu); }
.expertise__panneau { color: rgba(255, 255, 255, 0.8); line-height: 22.4px; }
.expertise__panneau:focus-visible { outline-offset: 8px; }
.expertise__panneau p { margin: 0; }
.expertise__panneau p + p { margin-top: 22.4px; }
.expertise__panneau ul { margin: 0; padding-left: 24px; list-style: disc; }
.expertise__panneau > ul > li + li { margin-top: 22.4px; }
.expertise__panneau ul ul { padding: 0; list-style: none; }
.expertise__panneau ul ul li::before { content: "- "; }
.expertise__panneau a { color: var(--blanc); }
.ancre { position: absolute; }

/* Zone d'intervention ---------------------------------------------------------------------------- */
.zone { padding-top: 76px; }
.zone .titre-section { color: var(--anthracite); }
.intro-pastille {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 11px;
	margin: 32px auto 0;
	padding: 0 var(--gouttiere);
}
.intro-pastille__icone { flex: none; }
.intro-pastille p { max-width: 689px; margin: 0; color: rgba(30, 30, 28, 0.8); line-height: 22.4px; }
.zone__carte {
	width: min(1250px, 100% - 2 * var(--gouttiere));
	height: 500px;
	margin: 39px auto 0;
	border-radius: var(--rayon);
	overflow: hidden;
	isolation: isolate;          /* les calques Leaflet (z-index 400+) restent sous l'en-tête */
	background: #eef0f3;
}
.zone__carte .repere { color: var(--bleu); }
.zone__carte .repere svg { display: block; width: 30px; height: 40px; filter: drop-shadow(0 2px 2px rgba(0, 0, 0, 0.25)); }
.zone__carte .leaflet-popup-content { font: 600 14px/1.4 "Inter", sans-serif; }
.zone__carte .leaflet-tooltip { font: 500 13px/1.3 "Inter", sans-serif; }

/* Contact ---------------------------------------------------------------------------------------- */
.contact { position: relative; padding: 107px 0 155px; overflow: clip; }   /* le trait ne déborde jamais sur le pied */
.contact .titre-section { position: relative; }
.contact__grille {
	position: relative;
	display: grid;
	grid-template-columns: 532px 575px;
	justify-content: space-between;
	align-items: start;
	width: min(1176px, 100% - 2 * var(--gouttiere));
	margin: 72px auto 0;
}
/* Trait de la maquette rattaché au formulaire, prolongé à gauche jusqu'au bord de l'écran (SVG élargi de 1400 px) */
.contact__deco { position: absolute; left: -1582px; bottom: -36px;   /* fin du trait sur le bas du formulaire */
	 width: 2192px; height: 212px; max-width: none; pointer-events: none; }
.contact__sous-titre { margin: 0; color: var(--noir); font-size: 24px; font-weight: 700; line-height: 24px; }
.intro-pastille--contact { justify-content: flex-start; gap: 0; margin: 38px 0 0; padding: 0; }
.intro-pastille--contact p { margin-left: -8px; color: rgba(0, 0, 0, 0.8); }
.encarts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 22px; margin: 49px 0 0; padding: 0; list-style: none; }
.encarts li { display: flex; }
.encart {
	display: flex;
	flex: 1;
	align-items: center;
	gap: 21px;
	min-height: 92px;
	padding: 12px 16px 12px 20px;
	border: 1px solid var(--bleu-bord);
	border-radius: var(--rayon);
	color: var(--bleu);
	text-decoration: none;
	transition: border-color 0.2s, background-color 0.2s;
}
a.encart:hover, a.encart:focus-visible { border-color: var(--bleu); background: rgba(8, 39, 235, 0.04); }
.encart__icone { flex: none; width: 24px; height: 24px; }
.encart__libelle {
	display: block;
	margin-bottom: 2px;
	color: rgba(129, 136, 151, 0.35);
	font-size: 11.2px;
	font-weight: 500;
	line-height: normal;
	letter-spacing: 0.3px;
	text-transform: uppercase;
}
.encart__valeur { display: block; color: var(--gris); font-size: 12px; font-weight: 700; line-height: normal; }

/* Formulaire (Gravity Forms, thème « gravity-theme ») */
.contact__form {
	position: relative;
	z-index: 1;
	min-height: 767px;
	padding: 74px 50px 52px;
	border: 1px solid var(--bleu-bord);
	border-radius: var(--rayon);
	background: var(--blanc);
}
.contact__form .gform_wrapper.gravity-theme .gform_fields { grid-column-gap: 8px; grid-row-gap: 16px; }
.contact__form .gform_wrapper.gravity-theme .gfield_label:not(.gform-field-label--type-inline) { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
.contact__form .gform_wrapper.gravity-theme .gform_required_legend { display: none; }
.contact__form .gform_wrapper.gravity-theme input[type="text"],
.contact__form .gform_wrapper.gravity-theme input[type="email"],
.contact__form .gform_wrapper.gravity-theme input[type="tel"],
.contact__form .gform_wrapper.gravity-theme select,
.contact__form .gform_wrapper.gravity-theme textarea {
	width: 100%;
	height: 50px;
	padding: 0 15px;
	border: 1px solid rgba(0, 0, 0, 0.1);
	border-radius: var(--rayon);
	background: rgba(255, 255, 255, 0.5);
	color: var(--encre);
	font: 400 16px/1.2 "Inter", sans-serif;
	box-shadow: none;
}
.contact__form .gform_wrapper.gravity-theme textarea { height: 221px; padding: 15px; resize: vertical; }
.contact__form .gform_wrapper.gravity-theme select {
	appearance: none;
	padding-right: 48px;
	background: rgba(255, 255, 255, 0.5) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='12' viewBox='0 0 20 12'%3E%3Cpath d='M18.95 1.05 10.18 10.14 1.05 1.32' fill='none' stroke='%237D7D7D' stroke-width='2.1' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 17px center / 17px auto;
	cursor: pointer;
}
.contact__form .gform_wrapper.gravity-theme select:invalid,
.contact__form .gform_wrapper.gravity-theme select.gf_placeholder { color: #757575; }
.contact__form ::placeholder { color: #757575; opacity: 1; }
.contact__form .gform_wrapper.gravity-theme input:focus,
.contact__form .gform_wrapper.gravity-theme select:focus,
.contact__form .gform_wrapper.gravity-theme textarea:focus { border-color: var(--bleu); outline: none; box-shadow: 0 0 0 3px rgba(8, 39, 235, 0.15); }
.contact__form .gform_wrapper.gravity-theme .ginput_container_consent { display: flex; align-items: flex-start; gap: 8px; }
.contact__form .gform_wrapper.gravity-theme .ginput_container_consent input { width: 13px; height: 13px; margin: 3px 0 0 4px; accent-color: var(--bleu); }
.contact__form .gform_wrapper.gravity-theme .gfield_consent_label { color: var(--gris); font-size: 16px; line-height: normal; }
.contact__form .gform_wrapper.gravity-theme .gfield_required { color: #c02b0a; font-size: 13px; }
/* Indicateur réglé sur « (Nécessaire) » dans Gravity Forms : la maquette montre un astérisque */
.contact__form .gform_wrapper.gravity-theme .gfield_required_text { font-size: 0; }
.contact__form .gform_wrapper.gravity-theme .gfield_required_text::after { content: "*"; font-size: 13px; }
.contact__form .gform_wrapper.gravity-theme .gfield_consent_description {
	max-height: 75px;
	margin-top: 12px;
	padding: 6px 8px;
	overflow: auto;
	border: 1px solid rgba(132, 132, 132, 0.25);
	color: var(--gris);
	font-size: 13px;
	line-height: normal;
}
.contact__form .gform_wrapper.gravity-theme .gform_footer { margin: 22px 0 0; padding: 0; }
.contact__form .gform_wrapper.gravity-theme .gform_validation_errors { margin-bottom: 16px; border-radius: var(--rayon); }
.contact__form .gform_wrapper.gravity-theme .validation_message { font-size: 13px; }
.contact__form .gform_confirmation_message { color: var(--encre); font-size: 18px; line-height: 1.5; }

/* Pied de page ----------------------------------------------------------------------------------- */
.pied { padding: 65px 0 16px; background: var(--encre); color: var(--blanc); }
/* Maquette : logo à 108 px, menu jusqu'à 1345 px (bloc de 1250 décalé de 13 px) */
.pied__grille, .pied__bas { width: min(1250px, 100% - 2 * var(--gouttiere)); margin: 0 auto; padding-left: 13px; }
.pied__grille { display: grid; grid-template-columns: minmax(0, 660fr) minmax(0, 409fr) 168px; align-items: start; }
.pied__logo { display: block; width: max-content; max-width: 100%; line-height: 0; }
/* Logo de l'en-tête agrandi : celui du pied de la maquette a perdu le « I » de COMMISSAIRE */
.pied__logo svg, .pied__logo img { display: block; width: 403px; height: auto; }
.pied__contact { display: flex; flex-direction: column; gap: 9px; margin: -1px 0 0; padding: 0; list-style: none; }
.pied__contact a, .menu-mobile__contact a { display: inline-flex; align-items: center; gap: 13px; font-size: 16px; line-height: normal; text-decoration: none; }
.pied__contact a:hover, .pied__contact a:focus-visible { text-decoration: underline; }
.pied__contact svg { flex: none; width: 16px; height: 16px; color: var(--bleu); }
.pied__titre { margin: -1px 0 9px; font-size: 13px; font-weight: 700; line-height: 13px; letter-spacing: 1px; text-transform: uppercase; }
.pied__menu ul { margin: 0; padding: 0; list-style: none; }
.pied__menu a { font-size: 15.2px; line-height: 25.2px; text-decoration: none; }
.pied__menu a:hover, .pied__menu a:focus-visible { text-decoration: underline; }
.pied__bas { display: flex; flex-wrap: wrap; align-items: center; margin-top: 32px; font-size: 12px; line-height: normal; }
.pied__bas > span:has(+ .pied__legal)::after { content: "\00a0-\00a0"; }
.pied__legal { display: flex; flex-wrap: wrap; margin: 0; padding: 0; list-style: none; }
.pied__legal li + li::before { content: "\00a0|\00a0"; }
.pied__legal a { text-decoration: none; }
.pied__legal a:hover, .pied__legal a:focus-visible { text-decoration: underline; }

/* Pages intérieures ------------------------------------------------------------------------------ */
.page-simple { width: min(860px, 100% - 2 * var(--gouttiere)); margin: 0 auto; padding: 96px 0 120px; }
.page-simple .titre-section { margin-bottom: 48px; padding: 0; }
.page-simple__contenu { line-height: 1.6; }
.page-simple__contenu h2 { margin: 2em 0 0.6em; font-size: 24px; }
.page-simple__contenu a { color: var(--bleu); }
.page-simple--404 { text-align: center; }

/* ================================================================================================
 * Écrans larges : la maquette fait 1440 px, le contenu reste centré à ces largeurs.
 * ================================================================================================ */

/* Ordinateur étroit : le bandeau garde ses deux colonnes, la photo réduit */
@media (max-width: 1279px) {
	.hero__grille { grid-template-columns: minmax(0, 1fr) minmax(0, 46%); }
	.hero__portrait { width: 100%; }
	.contact__grille { grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr); gap: 48px; }
	.expertise__grille { column-gap: 48px; }
}

/* ================================================================================================
 * < 1024 px : hamburger + panneau plein écran, colonnes empilées
 * ================================================================================================ */
@media (max-width: 1023px) {
	.entete__nav { display: none; }
	.entete__icones { margin-right: 20px; }
	.menu-toggle {
		display: grid;
		place-items: center;
		width: 32px;
		height: 32px;
		margin-right: -4px;
		padding: 0;
		border: 0;
		background: none;
		color: var(--blanc);
		cursor: pointer;
	}
	.menu-toggle__barres, .menu-toggle__barres::before, .menu-toggle__barres::after {
		display: block; width: 22px; height: 2px; border-radius: 2px; background: currentColor; transition: transform 0.2s, background-color 0.2s;
	}
	.menu-toggle__barres { position: relative; }
	.menu-toggle__barres::before, .menu-toggle__barres::after { content: ""; position: absolute; left: 0; }
	.menu-toggle__barres::before { top: -7px; }
	.menu-toggle__barres::after { top: 7px; }
	.menu-toggle[aria-expanded="true"] .menu-toggle__barres { background: transparent; }
	.menu-toggle[aria-expanded="true"] .menu-toggle__barres::before { transform: translateY(7px) rotate(45deg); }
	.menu-toggle[aria-expanded="true"] .menu-toggle__barres::after { transform: translateY(-7px) rotate(-45deg); }

	.menu-mobile {
		position: fixed;
		inset: var(--entete) 0 0;
		z-index: 99;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 40px;
		padding: 32px var(--gouttiere) 48px;
		overflow-y: auto;
		background: var(--noir);
		text-align: center;
	}
	.admin-bar .menu-mobile { top: calc(var(--entete) + 32px); }
	.menu-mobile__liens { display: flex; flex-direction: column; gap: 22px; margin: 0; padding: 0; list-style: none; }
	.menu-mobile__liens a { font-size: 22px; font-weight: 700; text-transform: uppercase; text-decoration: none; }
	.menu-mobile__liens a:hover, .menu-mobile__liens a:focus-visible { color: #8d9bff; }
	.menu-mobile__contact { display: flex; flex-direction: column; align-items: center; gap: 12px; margin: 0; padding: 0; list-style: none; }
	.menu-mobile__contact svg { width: 18px; height: 18px; color: #8d9bff; }
	html.menu-ouvert { overflow: hidden; }

	.hero { min-height: 0; padding: 72px 0 80px; }
	.hero__grille { grid-template-columns: 1fr; gap: 48px; }
	.hero__portrait { width: min(440px, 100%); justify-self: center; }

	.valeurs { padding: 88px 0 96px; }
	.soleil { display: none; }

	.expertise { padding: 96px 0 104px; }
	.expertise__grille { grid-template-columns: 1fr; row-gap: 40px; margin-top: 56px; }
	.expertise__onglets { flex-direction: row; justify-content: center; gap: 8px; min-height: 0; border-right: 0; border-bottom: 1px solid var(--blanc); }
	.expertise__onglet { min-height: 0; padding: 12px 16px; text-align: center; }
	.expertise__onglet br { display: none; }
	.expertise__onglet[aria-selected="true"] { box-shadow: inset 0 -2px 0 var(--bleu); }

	.contact { padding-bottom: 96px; }
	.contact__grille { grid-template-columns: 1fr; gap: 48px; max-width: 640px; margin-top: 56px; }
	.contact__deco { display: none; }
	.contact__form { min-height: 0; }

	.pied__grille { grid-template-columns: 1fr 1fr; row-gap: 40px; }
	.pied__logo { grid-column: 1 / -1; }
}

@media (max-width: 782px) {
	.admin-bar .entete { top: 46px; }
	.admin-bar .menu-mobile { top: calc(var(--entete) + 46px); }
}
@media (max-width: 600px) {
	.admin-bar .entete { top: 0; }
	.admin-bar .menu-mobile { top: var(--entete); }
}

/* ================================================================================================
 * < 768 px : tout est centré
 * ================================================================================================ */
@media (max-width: 767px) {
	:root { --gouttiere: 20px; }
	.titre-section { font-size: 32px; }
	.titre-section--clair { line-height: 1.15; }

	.entete__barre { padding: 0 16px; }
	.entete__logo svg, .entete__logo img { width: 166px; height: auto; }
	.entete__icones { display: none; }
	.menu-toggle { margin-left: auto; }   /* icônes masquées : le hamburger reste calé à droite */

	.hero { padding: 56px 0 64px; text-align: center; }
	.hero__surtitre { font-size: 14px; padding: 6px 16px; }
	.hero__titre { margin-left: auto; margin-right: auto; font-size: 27px; }
	.hero__intro { margin-left: auto; margin-right: auto; }
	.hero__intro br { display: none; }   /* retours de la maquette pensés pour 434 px */
	.hero__boutons { flex-direction: column; align-items: center; }
	.hero__portrait { width: min(320px, 100%); }
	.hero__deco { width: 180px; right: -60px; top: -40px; }

	.valeurs { padding: 64px 0 72px; }
	.valeurs__slider { grid-template-columns: 1fr 1fr; row-gap: 24px; }
	.valeurs__swiper { grid-column: 1 / -1; grid-row: 1; }
	.valeurs__fleche { grid-row: 2; margin: 0; }
	.valeurs__fleche--prec { justify-self: end; margin-right: 12px; }
	.valeurs__fleche--suiv { justify-self: start; margin-left: 12px; }
	.valeur { padding-top: 32px; }

	.expertise { padding: 64px 0 72px; }
	.expertise__grille { margin-top: 40px; }
	.expertise__onglet { font-size: 16px; padding: 10px 8px; }
	/* Liste longue : alignée à gauche (exception à la règle « tout centré », demandée par le client) */
	.expertise__panneau { text-align: left; }
	.expertise__panneau ul { padding-left: 20px; }

	.zone { padding-top: 64px; }
	.intro-pastille { flex-direction: column; text-align: center; }
	.zone__carte { height: 380px; margin-top: 32px; }

	.contact { padding: 72px 0 72px; }
	.contact__infos { text-align: center; }
	.intro-pastille--contact { justify-content: center; gap: 12px; }
	.intro-pastille--contact p { margin-left: 0; }
	.encarts { grid-template-columns: 1fr; gap: 12px; margin-top: 40px; }
	.encart { flex-direction: column; justify-content: center; gap: 8px; padding: 16px; text-align: center; }
	.contact__form { padding: 32px 20px; }
	.contact__form .gform_wrapper.gravity-theme .gform_footer { justify-content: center; }

	.pied { padding-top: 48px; text-align: center; }
	.pied__grille { grid-template-columns: 1fr; justify-items: center; row-gap: 32px; }
	.pied__logo svg, .pied__logo img { width: min(300px, 100%); }
	.pied__contact { align-items: center; }
	.pied__bas { justify-content: center; text-align: center; margin-top: 40px; }
	.pied__legal { justify-content: center; }
}
