/**************/
/* RESPONSIVE */
/* Accueil + landing — mobile / tablette */
/**************/

html.noscroll {
	overflow: hidden;
}

/* Mobile : évite le saut de largeur quand la scrollbar disparaît (décalage / halo autour du burger) */
@media (max-width: 991px) {
	html {
		scrollbar-gutter: stable;
	}

	html.noscroll header.main {
		transition: none !important;
	}
}

/* ——— Desktop large : pas de burger ni panneau ——— */
@media (min-width: 992px) {
	.header_burger {
		display: none !important;
	}

	.menu_panel {
		display: none !important;
	}
}

/* ——— ≤991px : burger, menu masqué, mise en page (dimensions en rem ; bordures 1px) ——— */
@media (max-width: 991px) {
	html {
		font-size: 100%;
	}

	body {
		font-size: clamp(0.875rem, 1rem, 1.0625rem);
	}

	h1 {
		font-size: clamp(1.35rem, 1.55rem, 1.85rem);
	}

	h2 {
		font-size: clamp(1.2rem, 1.35rem, 1.55rem);
		margin-bottom: 1rem;
	}

	p {
		font-size: 1rem;
		margin-bottom: 1rem;
	}

	/* Header : z-index fixe + couche GPU locale (moins d’artefacts avec le panneau qui slide) */
	header.main {
		z-index: 1002;
		padding: clamp(0.75rem, 0.9375rem, 1.125rem) clamp(0.5rem, 0.6875rem, 0.875rem) clamp(0.75rem, 0.9375rem, 1.125rem) clamp(0.875rem, 1.125rem, 1.375rem);
		isolation: isolate;
	}

	/* Sticky : pas de flou sur mobile (double backdrop + slide = glitch autour des icônes) */
	header.main.sticky {
		backdrop-filter: none;
		-webkit-backdrop-filter: none;
	}

	header.main.sticky .header_left {
		padding-left: 0;
		border-left-width: 0;
		border-top-width: 0;
		border-left-color: transparent;
		border-top-color: transparent;
	}

	.header_left {
		flex: 1 1 auto;
		min-width: 0;
		gap: clamp(0.625rem, 0.875rem, 1.25rem);
		padding: clamp(0.5rem, 0.6875rem, 0.875rem) 0 clamp(0.5rem, 0.6875rem, 0.875rem) clamp(0.625rem, 0.8125rem, 1rem);
		border-left-width: 1px;
		border-top-width: 1px;
	}

	/* Transition douce bordure + padding quand .sticky s’active (évite le saut sec) */
	header.main .header_left {
		transition:
			padding-left 0.32s ease,
			border-left-width 0.32s ease,
			border-top-width 0.32s ease,
			border-left-color 0.32s ease,
			border-top-color 0.32s ease;
	}

	.header_left .mainmenu {
		display: none !important;
	}

	.header_right {
		display: flex;
		align-items: center;
		justify-content: flex-end;
		flex: 0 0 auto;
		margin-left: auto;
		gap: 0;
		padding: clamp(0.5rem, 0.625rem, 0.75rem) 0 clamp(0.5rem, 0.625rem, 0.75rem) clamp(0.25rem, 0.375rem, 0.5rem);
	}

	.header_right .wpml-ls--header {
		display: none !important;
	}

	/* Icônes : rem uniquement (custom.css utilise le vw pour le corps ; on force des tailles lisibles en mobile) */
	.header_right .icon,
	.header_right a.icon,
	.header_right button.icon {
		font-size: 1.625rem !important;
		padding: 0.5rem !important;
		min-width: 2.75rem;
		min-height: 2.75rem;
		box-sizing: border-box;
	}

	/*
	 * custom.css : `button { transition: all }` anime aussi background-color → flash / "inherit"
	 * pendant l’anim hamburger + ouverture aside. Fond transparent figé + pas de transition sur le bouton.
	 */
	.header_burger.hamburger {
		display: inline-flex !important;
		align-items: center;
		justify-content: center;
		padding: 0.5rem;
		margin: 0 0 0 clamp(0.25rem, 0.375rem, 0.625rem);
		flex-shrink: 0;
		position: relative;
		z-index: 2;
		isolation: isolate;
		-webkit-backface-visibility: hidden;
		backface-visibility: hidden;
		background: transparent !important;
		background-color: transparent !important;
		border: 0;
		box-shadow: none !important;
		outline: none !important;
		color: #fff;
		accent-color: transparent;
		-webkit-tap-highlight-color: transparent;
		touch-action: manipulation;
		transition: none !important;
		-webkit-appearance: none;
		appearance: none;
	}

	.header_burger.hamburger:active,
	.header_burger.hamburger:focus,
	.header_burger.hamburger:focus-visible {
		background: transparent !important;
		background-color: transparent !important;
		box-shadow: none !important;
		outline: none !important;
	}

	/* Burger toujours à 100% d'opacité */
	.hamburger,
	.hamburger:hover,
	.hamburger:focus,
	.hamburger:focus-visible,
	.hamburger.is-active,
	.hamburger.is-active:hover {
		opacity: 1 !important;
		filter: none !important;
	}

	/* Sur mobile, empêcher l'effet "fade" de la lib hamburger après tap */
	.header_burger,
	.header_burger:hover,
	.header_burger:focus,
	.header_burger:focus-visible,
	.header_burger.is-active,
	.header_burger.is-active:hover {
		opacity: 1 !important;
		filter: none !important;
	}

	.header_burger .hamburger-inner,
	.header_burger .hamburger-inner::before,
	.header_burger .hamburger-inner::after {
		background-color: #fff !important;
	}

	.header_burger.is-active .hamburger-inner,
	.header_burger.is-active .hamburger-inner::before,
	.header_burger.is-active .hamburger-inner::after {
		background-color: #fff !important;
	}

	/* Panneau menu plein écran — liens scrollables, barre bas fixe (langue + réseaux) */
	.menu_panel {
		position: fixed;
		inset: 0;
		z-index: 1001;
		display: flex;
		flex-direction: column;
		height: 100vh;
		height: 100dvh;
		max-height: 100vh;
		max-height: 100dvh;
		box-sizing: border-box;
		background: rgba(7, 12, 22, 0.97);
		/* Pas de backdrop-filter : évite les artefacts GPU autour du header / burger pendant le slide */
		padding-top: clamp(6.25rem, 7rem, 8.75rem);
		padding-left: max(2rem, env(safe-area-inset-left, 0px));
		padding-right: max(2rem, env(safe-area-inset-right, 0px));
		padding-bottom: max(clamp(1.5rem, 1.75rem, 2.25rem), env(safe-area-inset-bottom, 0px));
		overflow: hidden;
		transform: translateX(100%);
		transition: transform 0.35s ease, visibility 0s linear 0.35s;
		pointer-events: none;
		visibility: hidden;
	}

	.menu_panel__scroll {
		flex: 1 1 auto;
		min-height: 0;
		overflow-x: hidden;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
	}

	.menu_panel.open {
		transform: translateX(0);
		pointer-events: auto;
		visibility: visible;
		transition: transform 0.35s ease, visibility 0s linear 0s;
	}

	/* Même cause que le burger : transition: all sur <a> + tap highlight = flash bleu primaire */
	.menu_panel a {
		-webkit-tap-highlight-color: transparent;
		tap-highlight-color: transparent;
		accent-color: transparent;
		background-color: transparent;
		box-shadow: none;
		-webkit-touch-callout: none;
		transition: opacity 0.2s ease !important;
	}

	.menu_panel a:active,
	.menu_panel a:focus,
	.menu_panel a:focus-visible {
		color: #fff !important;
		background-color: transparent !important;
		box-shadow: none !important;
	}

	.menu_panel__list {
		list-style: none;
		margin: 0;
		padding: 0;
		display: flex;
		flex-direction: column;
		gap: clamp(0.375rem, 0.5rem, 0.75rem);
	}

	.menu_panel__list a {
		display: block;
		padding: 0.65rem 0;
		color: #fff;
		font-size: clamp(0.95rem, 1.025rem, 1.1rem);
		font-weight: 600;
		text-transform: uppercase;
		letter-spacing: 0.06em;
		border-bottom: 1px solid rgba(255, 255, 255, 0.12);
		text-decoration: none;
	}

	.menu_panel__list a:active {
		opacity: 0.85;
	}

	/* Sous-menu ACF : pas de chevron dans le panneau burger (liste déjà dépliée) */
	.menu_panel__list .has_submenu > a .mainmenu__submenu-chevron {
		display: none !important;
	}

	.menu_panel__list .submenu {
		position: static !important;
		opacity: 1 !important;
		visibility: visible !important;
		transform: none !important;
		top: auto !important;
		left: auto !important;
		min-width: 0 !important;
		margin: 0 0 0.25rem 0 !important;
		padding: 0.15rem 0 0.35rem 0.85rem !important;
		background: transparent !important;
		border: none !important;
		backdrop-filter: none !important;
		box-shadow: none !important;
		list-style: none !important;
	}

	.menu_panel__list .submenu li a {
		font-size: clamp(0.82rem, 0.9rem, 0.98rem) !important;
		font-weight: 500 !important;
		padding: 0.4rem 0 !important;
		border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
		text-transform: none !important;
		letter-spacing: 0.04em !important;
		color: rgba(255, 255, 255, 0.88) !important;
	}

	.menu_panel__list .submenu li:last-child a {
		border-bottom: none !important;
	}

	.menu_panel__bottom {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		justify-content: space-between;
		gap: clamp(1rem, 1.125rem, 1.5rem);
		flex-shrink: 0;
		padding-top: clamp(0.75rem, 0.875rem, 1.25rem);
	}

	.menu_panel__social {
		display: flex;
		align-items: center;
		gap: clamp(0.375rem, 0.5rem, 0.75rem);
		margin: 0;
		padding: 0;
		list-style: none;
	}

	.menu_panel__social_link {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: clamp(2.5rem, 2.625rem, 2.75rem);
		height: clamp(2.5rem, 2.625rem, 2.75rem);
		color: #fff;
		text-decoration: none;
		font-size: clamp(1rem, 1.0625rem, 1.2rem);
		transition: opacity 0.25s ease;
	}

	.menu_panel__social_link i {
		color: inherit;
	}

	.menu_panel__social_link:hover,
	.menu_panel__social_link:active {
		opacity: 0.85;
	}

	.menu_panel__lang {
		margin: 0;
		padding: 0;
		border: none;
	}

	.menu_panel .wpml-ls--panel ul {
		margin: 0;
		padding: 0;
		list-style: none;
	}

	.menu_panel .wpml-ls--panel li a {
		display: inline-block;
		padding: 0.5rem 0;
		color: #fff !important;
		font-size: clamp(1rem, 1.0625rem, 1.15rem);
		font-weight: 600;
		text-transform: uppercase;
		letter-spacing: 0.08em;
		text-decoration: none;
		border-bottom: none;
	}

	.menu_panel .wpml-ls--panel li a:active {
		opacity: 0.85;
	}

	/* Hero accueil — bandeau 75svh, contenu centré verticalement */
	#hero {
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: stretch;
		min-height: 75svh;
		height: 75svh;
		box-sizing: border-box;
	}

	.hero_content {
		position: relative;
		top: auto;
		left: 0;
		right: 0;
		width: 100%;
		max-width: 100%;
		flex-shrink: 0;
		box-sizing: border-box;
		padding: max(1rem, env(safe-area-inset-top, 0px)) max(2rem, env(safe-area-inset-right, 0px)) max(2rem, env(safe-area-inset-bottom, 0px)) max(2rem, env(safe-area-inset-left, 0px));
	}

	.hero_content h1 {
		font-size: clamp(1.35rem, 1.55rem, 1.9rem);
		margin-bottom: clamp(0.85rem, 0.95rem, 1.15rem);
		line-height: 1.22;
	}

	.hero_content p {
		margin: 0 0 clamp(0.35rem, 0.4rem, 0.5rem) 0;
		line-height: 1.5;
		font-size: clamp(0.82rem, 0.9rem, 0.95rem);
		max-width: 36rem;
	}

	.hero_actions {
		flex-direction: column;
		align-items: stretch;
		gap: clamp(0.4rem, 0.45rem, 0.55rem);
		margin-top: clamp(1rem, 1.125rem, 1.35rem);
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
	}

	.hero_actions .btn_halfbordered {
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
		justify-content: center;
		text-align: center;
		padding: 0.45rem 0.7rem;
		min-height: 2.375rem;
		font-size: clamp(0.62rem, 0.68rem, 0.74rem);
		letter-spacing: 0.055em;
		--side-gap: 0.42rem;
	}

	/* Landing hero — marge latérale min. 2rem (safe-area) */
	#hero_inner.hero_inner {
		min-height: clamp(20rem, 75svh, 40rem);
		padding-left: max(2rem, env(safe-area-inset-left, 0px));
		padding-right: max(2rem, env(safe-area-inset-right, 0px));
	}

	.hero_inner__content {
		width: 100%;
		max-width: 100%;
	}

	.hero_inner__content h1 {
		font-size: clamp(1.35rem, 1.55rem, 1.9rem);
	}

	.hero_inner__content p {
		font-size: clamp(0.875rem, 0.95rem, 1.05rem);
		line-height: 1.5;
	}

	.hero_inner__content .about_hero__subtitle,
	.hero_inner__content .about_hero__subtitle p,
	.hero_inner__content .achievements_hero__subtitle,
	.hero_inner__content .achievements_hero__subtitle p {
		font-size: clamp(0.875rem, 0.95rem, 1.05rem);
		line-height: 1.5;
	}

	/* À propos — marge latérale min. 2rem */
	#home_about {
		flex-direction: column;
		padding-top: clamp(2rem, 2.5rem, 3rem);
		padding-bottom: clamp(2rem, 2.5rem, 3rem);
		padding-left: max(2rem, env(safe-area-inset-left, 0px));
		padding-right: max(2rem, env(safe-area-inset-right, 0px));
		gap: clamp(1.5rem, 2rem, 2.5rem);
	}

	.home_about__text,
	.home_about__img {
		width: 100%;
	}

	.home_about__img_frame {
		position: relative;
		--img-corner-border: 0.3125rem;
	}

	/* CTA sur fond bleu — tailles tactiles, pas de vw */
	#home_about .btn_halfbordered_on_blue {
		display: inline-flex;
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
		justify-content: center;
		text-align: center;
		padding: 0.55rem 0.85rem;
		min-height: 2.625rem;
		font-size: clamp(0.65rem, 0.72rem, 0.8rem);
		letter-spacing: 0.055em;
		--side-gap: 0.42rem;
		-webkit-tap-highlight-color: transparent;
	}

	#home_about .btn_halfbordered_on_blue::after {
		--hover-gap: 0.42rem;
	}

	#home_about .credit {
		font-size: clamp(0.7rem, 0.78rem, 0.85rem);
		top: auto;
		margin-top: 1.25rem;
		transform: none;
	}

	/* Projets logos — marge latérale min. 2rem */
	#home_projects {
		padding-top: clamp(1.5rem, 1.75rem, 2.25rem);
		padding-bottom: clamp(1.5rem, 1.75rem, 2.25rem);
		padding-left: max(2rem, env(safe-area-inset-left, 0px));
		padding-right: max(2rem, env(safe-area-inset-right, 0px));
	}

	#home_projects h2 {
		margin-bottom: clamp(0.75rem, 0.875rem, 1.25rem);
	}

	#home .home_projects__points-follow {
		padding-top: clamp(1.5rem, 1.75rem, 2.25rem);
		padding-bottom: clamp(1.5rem, 1.75rem, 2.25rem);
		padding-left: max(2rem, env(safe-area-inset-left, 0px));
		padding-right: max(2rem, env(safe-area-inset-right, 0px));
	}

	.home_projects__points {
		grid-template-columns: 1fr;
		gap: clamp(0.75rem, 0.875rem, 1rem) clamp(0.875rem, 1rem, 1.125rem);
		margin: 0 auto clamp(1.25rem, 1.5rem, 1.75rem);
		padding: 0;
	}

	.home_projects__point {
		gap: clamp(0.75rem, 0.875rem, 1rem);
		padding: clamp(0.875rem, 1rem, 1.125rem) clamp(1rem, 1.125rem, 1.25rem);
	}

	.home_projects__point-icon {
		width: clamp(2.25rem, 2.35rem, 2.5rem);
		height: clamp(2.25rem, 2.35rem, 2.5rem);
		min-width: clamp(2.25rem, 2.35rem, 2.5rem);
		min-height: clamp(2.25rem, 2.35rem, 2.5rem);
		font-size: clamp(0.875rem, 0.9375rem, 1rem);
	}

	.home_projects__point-body {
		gap: 0.25rem;
	}

	.home_projects__point-title {
		font-size: clamp(0.9375rem, 1rem, 1.0625rem);
	}

	.home_projects__point-desc {
		font-size: clamp(0.8125rem, 0.875rem, 0.9375rem);
	}

	.home_projects__point:hover {
		box-shadow: 0 0.25rem 0.75rem rgba(0, 74, 173, 0.08);
	}

	/* Accueil (et blocs .about_stats ailleurs) : chiffres / labels en rem */
	.about_stat {
		gap: 0.375rem;
	}

	.about_stat__num {
		font-size: clamp(1.35rem, 1.6rem, 2rem);
	}

	.about_stat__label {
		font-size: clamp(0.8125rem, 0.9rem, 1rem);
	}

	#landing #home_projects {
		padding-top: clamp(1.5rem, 1.75rem, 2.25rem);
		padding-bottom: 0;
		padding-left: max(2rem, env(safe-area-inset-left, 0px));
		padding-right: max(2rem, env(safe-area-inset-right, 0px));
	}

	.logo_slider__slide {
		padding-left: 0;
		padding-right: 0;
	}

	.logo_slider__slide--label {
		padding-left: 1rem;
		padding-right: 1rem;
	}

	.logo_slider__label {
		font-size: clamp(0.625rem, 0.75rem, 0.875rem);
		max-width: 100%;
	}

	.logo_slider__slide img {
		width: auto;
		max-width: 100%;
		max-height: clamp(4.275rem, 5.25rem, 6.375rem);
		height: auto;
		object-fit: contain;
	}

	.footer_associations {
		padding: clamp(1.25rem, 1.5rem, 2rem) 0;
	}

	.footer_associations .logo_slider__slide {
		padding: 0 1rem;
	}

	.footer_associations .logo_slider__slide img {
		max-height: clamp(2.5rem, 3rem, 3.5rem);
	}

	/* Galerie accueil — hauteur réduite sur mobile */
	#home_gallery {
		height: 50svh;
	}

	/* Galerie plein écran accueil */
	.gallery_arrow {
		z-index: 25;
	}

	.gallery_arrow--prev {
		left: clamp(0.5rem, 0.75rem, 1rem);
	}

	.gallery_arrow--next {
		right: clamp(0.5rem, 0.75rem, 1rem);
	}

	.gallery_arrow i {
		font-size: clamp(2.25rem, 2.75rem, 3.25rem);
	}

	/* Expertises : colonne + slider (titres visibles dans chaque slide) — marge latérale min. 2rem */
	#home_expertise {
		padding-top: clamp(2rem, 2.5rem, 3rem);
		padding-bottom: clamp(2rem, 2.5rem, 3rem);
		padding-left: max(2rem, env(safe-area-inset-left, 0px));
		padding-right: max(2rem, env(safe-area-inset-right, 0px));
		text-align: center;
	}

	#home_expertise h2 {
		margin-bottom: clamp(1.25rem, 2.5rem, 3.75rem);
	}

	.home_expertise__tabs {
		flex-direction: column;
		gap: clamp(1.25rem, 1.5rem, 1.75rem);
	}

	#home_expertise .tabs_nav {
		display: none !important;
	}

	#home_expertise .tabs_content {
		width: 100% !important;
		display: block !important;
	}

	#home_expertise .tabs_content:not(.slick-initialized) .tab {
		display: none;
	}

	#home_expertise .tabs_content:not(.slick-initialized) .tab.is-active {
		display: block;
	}

	.home_expertise__slide_title {
		display: block;
		margin-bottom: 1rem;
		font-size: clamp(0.85rem, 0.925rem, 1rem);
	}

	#home_expertise .tab p {
		margin-bottom: 1rem;
	}

	#home_expertise .tab img {
		display: block;
		margin-left: auto;
		margin-right: auto;
		border-radius: 0.125rem;
	}

	/* Annuler la superposition grille desktop (opacity / grid) quand Slick est actif */
	#home_expertise .tabs_content.slick-initialized .tab {
		opacity: 1 !important;
		visibility: visible !important;
		pointer-events: auto !important;
		position: relative;
		grid-row: auto;
		grid-column: auto;
		z-index: auto;
	}

	/* Slick expertises — masquer les slides voisines pendant la transition */
	.js-home-expertise-slider .slick-list {
		overflow: hidden;
	}

	/* Points centrés ; flèches bords écran — 100vw volontaire (pas d’équivalent rem au bord du viewport) */
	.js-home-expertise-slider .home_expertise__slider_nav {
		position: relative;
		display: flex;
		align-items: center;
		justify-content: center;
		margin-top: 1.25rem;
		width: 100vw;
		max-width: 100vw;
		margin-left: calc(50% - 50vw);
		margin-right: calc(50% - 50vw);
		box-sizing: border-box;
		min-height: 2.75rem;
		padding-left: clamp(2.5rem, 3rem, 3.5rem);
		padding-right: clamp(2.5rem, 3rem, 3.5rem);
	}

	.js-home-expertise-slider .home_expertise__slider_nav .slick-dots {
		position: relative;
		bottom: auto;
		margin: 0;
		padding: 0;
		list-style: none;
		display: flex !important;
		justify-content: center;
		align-items: center;
		gap: 0.5rem;
		flex-wrap: wrap;
		flex: 0 1 auto;
	}

	.js-home-expertise-slider .home_expertise__slider_nav .slick-dots li button {
		width: 0.5rem;
		height: 0.5rem;
		padding: 0;
		border-radius: 50%;
		border: 0;
		background: rgba(0, 74, 173, 0.25);
		font-size: 0;
		cursor: pointer;
	}

	.js-home-expertise-slider .home_expertise__slider_nav .slick-dots li.slick-active button {
		background: var(--color-primary);
	}

	.js-home-expertise-slider .home_expertise__slider_nav .expertise_slick_arrow {
		position: absolute;
		/* Align arrows with the visual center of the image area */
		top: 62%;
		transform: translateY(-50%);
		z-index: 6;
		border: 0;
		background: transparent;
		color: var(--color-primary);
		padding: 0 2rem;
		cursor: pointer;
		font-size: clamp(1.625rem, 1.875rem, 2.25rem);
		line-height: 1;
	}

	.js-home-expertise-slider .home_expertise__slider_nav .expertise_slick_arrow--prev {
		left: max(0.2rem, env(safe-area-inset-left, 0px));
	}

	.js-home-expertise-slider .home_expertise__slider_nav .expertise_slick_arrow--next {
		right: max(0.2rem, env(safe-area-inset-right, 0px));
	}

	.js-home-expertise-slider {
		position: relative;
		padding-left: 0;
		padding-right: 0;
	}

	/* Footer commun */
	.footer_cta {
		flex-direction: column;
		padding-top: clamp(2rem, 2.5rem, 3rem);
		padding-bottom: clamp(2rem, 2.5rem, 3rem);
		padding-left: max(2rem, env(safe-area-inset-left, 0px));
		padding-right: max(2rem, env(safe-area-inset-right, 0px));
		gap: clamp(1.5rem, 1.75rem, 2rem);
	}

	.footer_cta h6 {
		font-size: clamp(1.5rem, 1.75rem, 2rem);
		margin: 0 0 clamp(0.85rem, 1rem, 1.15rem) 0;
	}

	.footer_cta__left {
		text-align: center;
	}

	.footer_cta__right .wpforms-field-container {
		gap: 0 !important;
	}

	.footer_cta__right .wpforms-field-layout-rows {
		gap: 0 !important;
	}

	.footer_cta__right .wpforms-layout-row {
		gap: 0.35rem 0.45rem !important;
	}

	.footer_cta__right .wpforms-layout-column,
	.footer_cta__right .wpforms-layout-column-50 {
		flex: 1 1 100% !important;
		min-width: 100% !important;
	}

	.footer_cta__right input.wpforms-field-medium,
	.footer_cta__right input.wpforms-field-large,
	.footer_cta__right select.wpforms-field-medium,
	.footer_cta__right select.wpforms-field-large,
	.footer_cta__right textarea.wpforms-field-medium,
	.footer_cta__right textarea.wpforms-field-large {
		font-size: 0.875rem !important;
		padding: 0.75rem 1rem !important;
		border-radius: 0 !important;
	}

	.footer_cta__right textarea.wpforms-field-medium,
	.footer_cta__right textarea.wpforms-field-large {
		min-height: 7.5rem !important;
	}

	.footer_cta__right .wpforms-submit-container {
		margin-top: 0.35rem !important;
		justify-content: center !important;
	}

	/* ========== Formulaires — toutes les valeurs en rem ========== */

	/* --- WPForms global (champs) --- */
	.wpforms-container .wpforms-field,
	.wp-core-ui div.wpforms-container .wpforms-field {
		padding: 0.35rem 0 !important;
	}

	/* --- Panneau de soumission (slide-in) --- */
	.submission_panel__sheet {
		box-shadow: -0.5rem 0 2rem rgba(0, 0, 0, 0.22);
	}

	.submission_panel__close {
		top: 0.75rem;
		right: 0.75rem;
		width: 2.5rem;
		height: 2.5rem;
		font-size: 1.25rem;
	}

	.submission_panel__scroll {
		padding: 3rem 1.25rem 1.5rem 1.25rem;
	}

	.submission_panel__title {
		font-size: clamp(1.125rem, 1.25rem, 1.5rem);
		margin: 0 0 0.5rem 0;
		padding-right: 2.5rem;
	}

	.submission_panel__intro {
		font-size: clamp(0.875rem, 0.9375rem, 1rem);
		margin: 0 0 1rem 0;
	}

	/* --- Champs WPForms (panneau + page contact) --- */
	:is(.submission_panel__sheet, .contact_page__submission_match) .wpforms-field-container {
		gap: 0.35rem 0.5rem !important;
	}

	:is(.submission_panel__sheet, .contact_page__submission_match) .wpforms-field-layout-rows {
		gap: 0.35rem !important;
	}

	:is(.submission_panel__sheet, .contact_page__submission_match) .wpforms-layout-row {
		gap: 0.35rem 0.5rem !important;
	}

	:is(.submission_panel__sheet, .contact_page__submission_match) .wpforms-field-label {
		margin: 0 0 0.1875rem 0 !important;
		font-size: 0.8125rem !important;
	}

	:is(.submission_panel__sheet, .contact_page__submission_match) input.wpforms-field-medium,
	:is(.submission_panel__sheet, .contact_page__submission_match) input.wpforms-field-large,
	:is(.submission_panel__sheet, .contact_page__submission_match) select.wpforms-field-medium,
	:is(.submission_panel__sheet, .contact_page__submission_match) select.wpforms-field-large,
	:is(.submission_panel__sheet, .contact_page__submission_match) textarea.wpforms-field-medium,
	:is(.submission_panel__sheet, .contact_page__submission_match) textarea.wpforms-field-large {
		padding: 0.625rem 0.75rem !important;
		font-size: 0.9375rem !important;
	}

	:is(.submission_panel__sheet, .contact_page__submission_match) textarea.wpforms-field-medium,
	:is(.submission_panel__sheet, .contact_page__submission_match) textarea.wpforms-field-large {
		min-height: 6rem !important;
	}

	/* --- Bouton submit (panneau soumission) --- */
	.submission_panel__sheet .wpforms-submit-container {
		margin-top: 0.375rem !important;
	}

	.submission_panel__sheet .wpforms-submit.btn_halfbordered,
	.submission_panel__sheet .wpforms-container button.wpforms-submit.btn_halfbordered {
		padding: 0.65rem 1rem !important;
		min-height: 2.85rem !important;
		font-size: clamp(0.72rem, 0.8rem, 0.9rem) !important;
		--side-gap: 0.42rem;
	}

	.submission_panel__sheet .wpforms-submit.btn_halfbordered::after,
	.submission_panel__sheet .wpforms-container button.wpforms-submit.btn_halfbordered::after {
		--hover-gap: 0.42rem;
	}

	/* --- Bouton submit (footer CTA) --- */
	.footer_cta__right .wpforms-submit.btn_halfbordered,
	.footer_cta__right .wpforms-container button.wpforms-submit.btn_halfbordered {
		display: inline-flex !important;
		align-items: center !important;
		justify-content: center !important;
		width: 100% !important;
		max-width: 18rem !important;
		min-height: 2.875rem !important;
		padding: 0.65rem 1rem !important;
		font-size: clamp(0.72rem, 0.8rem, 0.9rem) !important;
		letter-spacing: 0.055em !important;
		min-width: 10rem !important;
	}

	/* --- Bouton submit (page contact) --- */
	.contact_page__submission_match .wpforms-submit-container {
		margin-top: 0.35rem !important;
		justify-content: center !important;
	}

	.contact_page__submission_match .wpforms-submit.btn_halfbordered,
	.contact_page__submission_match .wpforms-container button.wpforms-submit.btn_halfbordered {
		display: inline-flex !important;
		align-items: center !important;
		justify-content: center !important;
		width: 100% !important;
		max-width: 18rem !important;
		min-height: 2.875rem !important;
		padding: 0.65rem 1rem !important;
		font-size: clamp(0.72rem, 0.8rem, 0.9rem) !important;
		letter-spacing: 0.055em !important;
		min-width: 10rem !important;
		--side-gap: 0.42rem;
	}

	.contact_page__submission_match .wpforms-submit.btn_halfbordered::after,
	.contact_page__submission_match .wpforms-container button.wpforms-submit.btn_halfbordered::after {
		--hover-gap: 0.42rem;
	}

	footer.main.footer_main .footer_inner {
		flex-direction: column;
		align-items: stretch;
		gap: clamp(1rem, 1.25rem, 1.5rem);
		padding-top: clamp(1rem, 1.25rem, 1.5rem);
		padding-bottom: clamp(1rem, 1.25rem, 1.5rem);
		padding-left: max(2rem, env(safe-area-inset-left, 0px));
		padding-right: max(2rem, env(safe-area-inset-right, 0px));
	}

	footer.main.footer_main .footer_bottom {
		padding-left: max(2rem, env(safe-area-inset-left, 0px));
		padding-right: max(2rem, env(safe-area-inset-right, 0px));
	}

	footer.main.footer_main .header_left {
		flex-direction: column;
		align-items: center;
		text-align: center;
		gap: clamp(1rem, 1.125rem, 1.25rem);
		width: 100%;
		padding: 0;
	}

	footer.main.footer_main .header_left .logo {
		display: block;
		width: fit-content;
		max-width: min(12rem, 100%);
		margin-left: auto;
		margin-right: auto;
	}

	footer.main.footer_main .header_left .mainmenu {
		display: none !important;
	}

	footer.main.footer_main .header_right {
		display: none !important;
	}

	/* Bas de pied de page : taille en rem (le flux desktop est en vw dans custom.css) */
	footer.main.footer_main .footer_bottom {
		font-size: clamp(0.9375rem, 1rem, 1.0625rem);
		line-height: 1.5;
	}

	/* ========== Landing — intro 2 colonnes → empilées ========== */
	#landing_intro {
		flex-direction: column;
		gap: clamp(1.5rem, 2rem, 2.5rem);
		padding: clamp(2rem, 2.5rem, 3rem) max(1.25rem, env(safe-area-inset-left, 0px));
	}

	#landing_intro .landing_intro__text,
	#landing_intro .landing_intro__img {
		width: 100%;
	}

	#landing_intro .landing_intro__text {
		font-size: clamp(0.875rem, 0.9375rem, 1rem);
	}

	#landing_intro .landing_intro__text h2 {
		font-size: clamp(1.25rem, 1.5rem, 1.75rem);
		margin: 0 0 0.75rem 0;
	}

	#landing_intro .landing_intro__text .btn_halfbordered {
		margin-top: 1.25rem;
	}

	/* ========== Page Réalisations — toutes les sections en rem ========== */

	/* --- Intro (titre + texte centré) --- */
	.achievements_intro {
		padding: clamp(1.5rem, 2rem, 2.5rem) max(1.25rem, env(safe-area-inset-left, 0px)) clamp(0.5rem, 0.75rem, 1rem);
		max-width: 100%;
	}

	.achievements_intro h2 {
		margin: 0 0 0.5rem 0;
		font-size: clamp(1.25rem, 1.5rem, 1.75rem);
	}

	.achievements_intro p {
		font-size: clamp(0.875rem, 0.9375rem, 1rem);
	}

	.achievements_intro__text {
		margin-top: 0.375rem;
		font-size: clamp(0.875rem, 0.9375rem, 1rem);
	}

	/* --- Sections de galerie (groupes ACF) --- */
	.achievements_gallery_section {
		margin-bottom: clamp(1.5rem, 2rem, 2.5rem);
	}

	.achievements_gallery__section_title {
		margin: 0 0 1rem 0;
		font-size: clamp(1.125rem, 1.25rem, 1.375rem);
	}

	/* --- Grille photos (#gallery) — compléments au @media 992px de custom.css --- */
	#gallery {
		padding: clamp(1.25rem, 1.5rem, 2rem) max(1.25rem, env(safe-area-inset-left, 0px)) clamp(2rem, 2.5rem, 3rem);
	}

	#gallery .gallery_grid {
		gap: clamp(0.875rem, 1.125rem, 1.5rem);
	}

	/* --- Slider galerie (landing) --- */
	#gallery .gallery_slider .slick-slide {
		padding: 0 0.375rem;
	}

	#gallery .gallery_slider .gallery_arrow {
		display: inline-flex !important;
	}

	#gallery .gallery_slider .gallery_arrow--prev {
		left: -0.25rem;
	}

	#gallery .gallery_slider .gallery_arrow--next {
		right: -0.25rem;
	}

	#gallery .gallery_slider .gallery_arrow i {
		font-size: clamp(1.75rem, 2rem, 2.5rem);
	}

	#gallery .gallery_slider .slick-dots {
		display: none !important;
	}

	#gallery > .btn_halfbordered {
		margin-top: 1.5rem;
	}

	#gallery .gallery_item__band {
		padding: 0.625rem 0.75rem 0.75rem;
	}

	#gallery .gallery_item__title {
		margin: 0 0 0.25rem 0;
		font-size: clamp(0.8125rem, 0.875rem, 1rem);
	}

	#gallery .gallery_item__points {
		padding: 0 0 0 0.875rem;
		font-size: clamp(0.75rem, 0.8125rem, 0.875rem);
	}

	#gallery .gallery_item__points li {
		margin: 0 0 0.125rem 0;
	}

	#gallery .gallery_item__desc {
		font-size: 0.8125rem;
	}

	#gallery .gallery_item__media::after {
		top: 0.5rem;
		right: 0.5rem;
		width: 2rem;
		height: 2rem;
		font-size: 0.75rem;
		opacity: 1;
		transform: scale(1);
	}

	/* Lightbox galerie — rem sur ≤991px */
	.gallery_lightbox {
		padding: clamp(1rem, 1.5rem, 3rem);
	}

	.gallery_lightbox__close {
		top: clamp(0.75rem, 1.125rem, 1.75rem);
		right: clamp(0.75rem, 1.125rem, 1.75rem);
		width: clamp(2.5rem, 2.875rem, 3.25rem);
		height: clamp(2.5rem, 2.875rem, 3.25rem);
		font-size: clamp(1.75rem, 1.875rem, 2.25rem);
	}

	.gallery_lightbox__panel {
		max-width: min(100%, 68.75rem);
		gap: clamp(0.625rem, 0.875rem, 1.125rem);
	}

	.gallery_lightbox__img {
		max-height: min(50vh, 32.5rem);
		box-shadow: 0 0.5rem 2rem rgba(0, 0, 0, 0.45);
	}

	.gallery_lightbox__thumb {
		width: 4.5rem;
		height: 3.125rem;
	}

	.gallery_lightbox__thumbs {
		gap: clamp(0.375rem, 0.5rem, 0.625rem);
		padding: clamp(0.25rem, 0.375rem, 0.5rem) 0;
	}

	/* ========== Page Contact — toutes les sections en rem ========== */
	#contact_page.contact_page {
		padding-top: 0;
		padding-bottom: clamp(1.5rem, 2rem, 3rem);
	}

	/* --- Hero content --- */
	#contact_page .hero_inner__content {
		max-width: 100%;
	}

	#contact_page .contact_page__hero_lead {
		font-size: clamp(0.9375rem, 1rem, 1.0625rem) !important;
	}

	/* --- Lead (info + carte) --- */
	#contact_page .contact_page__lead {
		padding-left: max(1.25rem, env(safe-area-inset-left, 0px));
		padding-right: max(1.25rem, env(safe-area-inset-right, 0px));
		padding-top: clamp(1.75rem, 2.25rem, 3rem);
		padding-bottom: clamp(1.75rem, 2.5rem, 3.5rem);
		grid-template-columns: 1fr;
		gap: clamp(1.75rem, 2rem, 2.5rem);
	}

	#contact_page .contact_page__h2 {
		font-size: clamp(1.2rem, 1.35rem, 1.55rem);
		margin: 0 0 1rem 0;
		line-height: 1.2;
	}

	#contact_page .contact_page__brand {
		font-size: clamp(0.8125rem, 0.875rem, 0.9375rem);
		margin: 0 0 0.75rem 0;
	}

	#contact_page .contact_page__direct {
		gap: 0.875rem;
	}

	#contact_page .contact_page__direct_item {
		gap: 0.625rem;
	}

	#contact_page .contact_page__direct_body {
		gap: 0.1875rem;
		font-size: clamp(0.875rem, 0.9375rem, 1rem);
		line-height: 1.45;
	}

	#contact_page .contact_page__label {
		font-size: clamp(0.6875rem, 0.75rem, 0.8125rem);
	}

	#contact_page .contact_page__direct_addr {
		margin-top: 0.25rem;
	}

	#contact_page .contact_page__list {
		gap: 1rem;
	}

	#contact_page .contact_page__list li {
		gap: 0.25rem;
		font-size: clamp(0.875rem, 0.9375rem, 1rem);
	}

	/* --- Carte (map) --- */
	#contact_page .contact_page__map_col {
		gap: 0.5rem;
	}

	#contact_page .contact_page__map,
	#contact_page .contact_page__map.leaflet-container {
		height: min(13rem, 20rem);
		min-height: 13.75rem;
		max-height: none;
	}

	#contact_page .contact_page__map_col--lead .contact_page__map,
	#contact_page .contact_page__map_col--lead .contact_page__map.leaflet-container {
		min-height: 13.75rem;
	}

	/* --- Main (formulaire) --- */
	#contact_page .contact_page__main {
		padding-left: max(1.25rem, env(safe-area-inset-left, 0px));
		padding-right: max(1.25rem, env(safe-area-inset-right, 0px));
		padding-top: clamp(2rem, 2.5rem, 3rem);
		padding-bottom: clamp(2rem, 2.5rem, 3.5rem);
	}

	#contact_page .contact_page__main_stack {
		width: 100%;
		gap: 1.5rem;
	}

	#contact_page .contact_page__lead_text {
		gap: 0.625rem;
	}

	#contact_page .contact_page__lead_tagline {
		font-size: clamp(0.9375rem, 1rem, 1.0625rem);
	}

	#contact_page .contact_page__lead_copy {
		font-size: clamp(0.875rem, 0.9375rem, 1rem);
		line-height: 1.55;
	}

	/* --- Zone de service (fond photo) --- */
	#contact_page .contact_page__service_zone {
		padding-left: max(1.25rem, env(safe-area-inset-left, 0px));
		padding-right: max(1.25rem, env(safe-area-inset-right, 0px));
		padding-top: clamp(2rem, 2.5rem, 3.25rem);
		padding-bottom: clamp(2.5rem, 3rem, 4rem);
	}

	#contact_page .contact_page__service_zone__inner {
		gap: 0.625rem;
	}

	#contact_page .contact_page__service_zone__title {
		margin: 0 0 0.25rem 0 !important;
	}

	#contact_page .contact_page__service_content {
		font-size: clamp(0.875rem, 0.9375rem, 1rem);
		line-height: 1.5;
	}

	#contact_page .contact_page__service_list {
		padding: 0 0 0 1rem;
		font-size: clamp(0.875rem, 0.9375rem, 1rem);
		line-height: 1.5;
	}

	#contact_page .contact_page__service_list li {
		margin: 0 0 0.25rem 0;
	}

	/* Panneau soumission — pleine largeur mobile, champs en colonne */
	.submission_panel__sheet {
		width: 100%;
		max-width: 100%;
	}

	.submission_panel__scroll {
		padding-top: max(3.25rem, env(safe-area-inset-top, 0px));
		padding-left: max(1.25rem, env(safe-area-inset-left, 0px));
		padding-right: max(1.25rem, env(safe-area-inset-right, 0px));
		padding-bottom: max(1.5rem, env(safe-area-inset-bottom, 0px));
	}

	.submission_panel__sheet .wpforms-field-container {
		gap: 0.35rem 0.45rem !important;
	}

	.submission_panel__sheet .wpforms-field-layout-rows {
		gap: 0.35rem !important;
	}

	.submission_panel__sheet .wpforms-layout-row {
		gap: 0.35rem 0.45rem !important;
	}

	.submission_panel__sheet .wpforms-field-container:not(:has(.wpforms-field-layout)) {
		grid-template-columns: 1fr !important;
	}

	.submission_panel__sheet .wpforms-field-container:not(:has(.wpforms-field-layout)) .wpforms-field-select,
	.submission_panel__sheet .wpforms-field-container:not(:has(.wpforms-field-layout)) .wpforms-field-textarea {
		grid-column: auto !important;
	}

	.submission_panel__sheet .wpforms-layout-column,
	.submission_panel__sheet .wpforms-layout-column-50 {
		flex: 1 1 100% !important;
		min-width: 100% !important;
	}

	.submission_panel__sheet input.wpforms-field-medium,
	.submission_panel__sheet input.wpforms-field-large,
	.submission_panel__sheet select.wpforms-field-medium,
	.submission_panel__sheet select.wpforms-field-large,
	.submission_panel__sheet textarea.wpforms-field-medium,
	.submission_panel__sheet textarea.wpforms-field-large {
		font-size: 1rem !important;
		padding: 0.75rem 0.875rem !important;
		border-radius: 0 !important;
	}

	.submission_panel__sheet textarea.wpforms-field-medium,
	.submission_panel__sheet textarea.wpforms-field-large {
		min-height: 7rem !important;
	}

	.submission_panel__sheet .wpforms-submit-container {
		margin-top: 0.35rem !important;
	}

	.submission_panel__sheet .wpforms-submit.btn_halfbordered,
	.submission_panel__sheet .wpforms-container button.wpforms-submit.btn_halfbordered {
		width: 100% !important;
		min-height: 2.85rem !important;
		padding: 0.65rem 1rem !important;
		font-size: clamp(0.72rem, 0.8rem, 0.9rem) !important;
		letter-spacing: 0.055em !important;
	}

	/* ========== Page À propos — toutes les sections en rem ========== */

	#about_page h2.about_section_title {
		font-size: clamp(1.2rem, 1.35rem, 1.55rem);
		margin-top: 0;
		margin-bottom: 1rem;
		line-height: 1.2;
	}

	#about_page .about_section_title {
		font-size: clamp(1.2rem, 1.35rem, 1.55rem);
		margin: 0 0 0.75rem 0;
		line-height: 1.2;
	}

	/* --- Story --- */
	#about_page .about_story {
		padding-left: max(1.25rem, env(safe-area-inset-left, 0px));
		padding-right: max(1.25rem, env(safe-area-inset-right, 0px));
		padding-top: clamp(2rem, 2.5rem, 3.25rem);
		padding-bottom: clamp(2.5rem, 3.25rem, 4.5rem);
	}

	#about_page .about_story__split {
		grid-template-columns: 1fr;
		gap: clamp(1.5rem, 1.75rem, 2.25rem);
	}

	#about_page .about_story__prose p {
		font-size: clamp(0.875rem, 0.9375rem, 1rem);
		line-height: 1.6;
		margin: 0 0 0.75rem 0;
	}

	#about_page .about_story__prose p:last-child {
		margin-bottom: 0;
	}

	/* --- Mission callout --- */
	#about_page .about_mission_callout {
		padding: clamp(1rem, 1.25rem, 1.5rem);
		margin-top: 0;
		height: auto;
	}

	#about_page .about_mission_callout__title {
		font-size: clamp(0.875rem, 0.9375rem, 1rem);
		margin: 0 0 0.5rem 0;
	}

	#about_page .about_mission_callout__text {
		font-size: clamp(0.875rem, 0.9375rem, 1rem);
		line-height: 1.55;
	}

	/* --- Why (pourquoi) --- */
	#about_page .about_why {
		padding-left: max(1.25rem, env(safe-area-inset-left, 0px));
		padding-right: max(1.25rem, env(safe-area-inset-right, 0px));
		padding-top: clamp(2rem, 2.5rem, 3.25rem);
		padding-bottom: clamp(2.5rem, 3.25rem, 4.5rem);
	}

	#about_page .about_why__grid {
		grid-template-columns: 1fr;
		gap: clamp(0.75rem, 0.875rem, 1rem);
	}

	#about_page .about_why__card {
		padding: clamp(0.875rem, 1rem, 1.25rem);
		gap: 0.5rem;
	}

	#about_page .about_why__icon {
		font-size: clamp(1.5rem, 1.75rem, 2rem);
		margin-bottom: 0.25rem;
	}

	#about_page .about_why__card-title {
		font-size: clamp(0.9375rem, 1rem, 1.0625rem);
	}

	#about_page .about_why__card-text {
		font-size: clamp(0.8125rem, 0.875rem, 0.9375rem);
		line-height: 1.5;
	}

	/* --- Values --- */
	#about_page .about_values {
		padding-left: max(1.25rem, env(safe-area-inset-left, 0px));
		padding-right: max(1.25rem, env(safe-area-inset-right, 0px));
		padding-top: clamp(2rem, 2.5rem, 3.25rem);
		padding-bottom: clamp(3rem, 3.75rem, 5.25rem);
	}

	#about_page .about_values__container {
		max-width: 100%;
	}

	#about_page .about_values .about_section_title {
		margin-bottom: clamp(1.125rem, 1.375rem, 1.75rem);
	}

	#about_page .about_values__grid {
		grid-template-columns: 1fr;
		gap: clamp(0.875rem, 1.125rem, 1.375rem);
	}

	#about_page .about_values__item {
		padding: clamp(1rem, 1.125rem, 1.375rem) clamp(1.125rem, 1.25rem, 1.5rem);
		gap: 0.375rem;
	}

	#about_page .about_values__text {
		gap: 0.375rem;
	}

	#about_page .about_values__name {
		font-size: clamp(0.9375rem, 1rem, 1.0625rem);
	}

	#about_page .about_values__desc {
		font-size: clamp(0.8125rem, 0.875rem, 0.9375rem);
		line-height: 1.5;
	}

	/* --- Stats --- */
	#about_page .about_stats {
		padding-left: max(1.25rem, env(safe-area-inset-left, 0px));
		padding-right: max(1.25rem, env(safe-area-inset-right, 0px));
		padding-top: clamp(1.75rem, 2.25rem, 3rem);
		padding-bottom: clamp(1.75rem, 2.25rem, 3rem);
	}

	#about_page .about_stats__inner {
		grid-template-columns: 1fr 1fr;
		gap: clamp(1.25rem, 1.5rem, 2rem);
	}

	#about_page .about_stat {
		gap: 0.375rem;
	}

	#about_page .about_stat__num {
		font-size: clamp(1.35rem, 1.6rem, 2rem);
	}

	#about_page .about_stat__label {
		font-size: clamp(0.8125rem, 0.9rem, 1rem);
	}

	/* --- Mission split (définition + prose) --- */
	#about_page .about_mission_split {
		padding-left: max(1.25rem, env(safe-area-inset-left, 0px));
		padding-right: max(1.25rem, env(safe-area-inset-right, 0px));
		padding-top: clamp(1.75rem, 2.25rem, 3rem);
		padding-bottom: clamp(1.75rem, 2.5rem, 3.5rem);
	}

	#about_page .about_mission_split__grid {
		grid-template-columns: 1fr;
		gap: clamp(1.75rem, 2.25rem, 2.75rem);
	}

	#about_page .about_definition__inner {
		padding: clamp(1rem, 1.25rem, 1.5rem);
	}

	#about_page .about_definition__ipa {
		font-size: clamp(0.875rem, 0.9375rem, 1rem);
		margin: 0 0 0.75rem 0;
	}

	#about_page .about_definition__text {
		font-size: clamp(0.875rem, 0.9375rem, 1rem);
		line-height: 1.55;
		margin: 0 0 0.625rem 0;
	}

	#about_page .about_prose__inner p {
		font-size: clamp(0.875rem, 0.9375rem, 1rem);
		line-height: 1.6;
		margin: 0 0 0.75rem 0;
	}

	#about_page .about_prose__inner p:last-child {
		margin-bottom: 0;
	}

	/* --- Team --- */
	#about_page .about_team {
		padding-left: max(1.25rem, env(safe-area-inset-left, 0px));
		padding-right: max(1.25rem, env(safe-area-inset-right, 0px));
		padding-top: clamp(1.75rem, 2.25rem, 3rem);
		padding-bottom: clamp(1.75rem, 2.5rem, 3.5rem);
	}

	#about_page .about_team__tagline {
		font-size: clamp(0.8125rem, 0.875rem, 0.9375rem);
		margin: 0 0 1.25rem 0;
	}

	#about_page .about_team__grid {
		grid-template-columns: 1fr;
		gap: clamp(0.75rem, 0.875rem, 1.125rem);
	}

	#about_page .about_team__card {
		padding: 0;
		min-height: clamp(4.25rem, 4.75rem, 5rem);
	}

	#about_page .about_team__thumb {
		flex-basis: clamp(3.5rem, 4rem, 4.5rem);
		min-height: clamp(4.25rem, 4.75rem, 5rem);
	}

	#about_page .about_team__text {
		padding: clamp(0.75rem, 0.875rem, 1.125rem) clamp(0.875rem, 1rem, 1.25rem);
		gap: 0.25rem;
	}

	#about_page .about_team__name {
		font-size: clamp(0.9375rem, 1rem, 1.0625rem);
	}

	#about_page .about_team__role {
		font-size: clamp(0.8125rem, 0.875rem, 0.9375rem);
		line-height: 1.4;
	}

	/* --- Split (image + texte) --- */
	#about_page .about_split {
		padding-left: max(1.25rem, env(safe-area-inset-left, 0px));
		padding-right: max(1.25rem, env(safe-area-inset-right, 0px));
		padding-top: clamp(1.75rem, 2.25rem, 3rem);
		padding-bottom: clamp(1.75rem, 2.5rem, 3.5rem);
	}

	#about_page .about_split__grid {
		grid-template-columns: 1fr;
		gap: clamp(1.375rem, 1.75rem, 2.25rem);
	}

	#about_page .about_split__media img {
		min-height: 14rem;
		aspect-ratio: 16 / 10;
	}

	#about_page .about_split__body .about_section_title {
		margin-bottom: clamp(0.625rem, 0.75rem, 1rem);
	}

	#about_page .about_split__body p {
		font-size: clamp(0.875rem, 0.9375rem, 1rem);
		line-height: 1.6;
		margin: 0 0 0.75rem 0;
	}

	#about_page .about_split__body p:last-child {
		margin-bottom: 0;
	}

	/* Page Services — rem (#services_page pour battre les vw de custom.css) */
	#services_page .services_block,
	#services_page .services_process {
		padding-left: max(1.25rem, env(safe-area-inset-left, 0px));
		padding-right: max(1.25rem, env(safe-area-inset-right, 0px));
		padding-top: clamp(1.75rem, 2.25rem, 3rem);
		padding-bottom: clamp(1.75rem, 2.5rem, 3.5rem);
		box-sizing: border-box;
	}

	#services_page .services_process {
		padding-top: clamp(2rem, 2.5rem, 3rem);
		padding-bottom: clamp(2.25rem, 2.75rem, 3.5rem);
		background-image: none;
		background-color: #f4f6f9;
	}

	#services_page .services_process::before {
		display: none;
	}

	#services_page .services_block__grid {
		grid-template-columns: 1fr;
		row-gap: clamp(1.25rem, 1.5rem, 1.75rem);
		column-gap: clamp(1.375rem, 1.75rem, 2.25rem);
		align-items: stretch;
	}

	#services_page .services_block--media-right .services_block__media {
		order: -1;
	}

	#services_page .services_block__media img {
		min-height: 14rem;
		aspect-ratio: 16 / 10;
	}

	#services_page .services_block__inner {
		margin: 0;
		display: flex;
		flex-direction: column;
		gap: 0;
	}

	#services_page .services_block__heading {
		margin: 0 0 1rem 0;
		padding-left: 0.75rem;
		border-left: 3px solid var(--color-primary);
	}

	#services_page .services_block__heading_text {
		display: flex;
		flex-direction: column;
		gap: 0.1875rem;
	}

	#services_page .services_block__title {
		font-size: clamp(1.125rem, 1.25rem, 1.5rem);
		line-height: 1.25;
		margin: 0;
	}

	#services_page .services_block__tagline {
		font-size: clamp(0.8125rem, 0.875rem, 0.9375rem);
		line-height: 1.35;
		margin: 0;
	}

	#services_page .services_block__inner > p:not(.services_block__highlight):not(.services_block__tagline),
	#services_page .services_block__wysiwyg > p:not(.services_block__highlight) {
		font-size: clamp(0.875rem, 0.9375rem, 1rem);
		line-height: 1.6;
		margin: 0 0 0.75rem 0;
	}

	#services_page .services_block__wysiwyg > p:last-child {
		margin-bottom: 0;
	}

	#services_page .services_block__list {
		margin: 0 0 1rem 0;
		padding: 0 0 0 1.125rem;
		font-size: clamp(0.875rem, 0.9375rem, 1rem);
		line-height: 1.55;
	}

	#services_page .services_block__list li {
		margin: 0 0 0.375rem 0;
		padding-left: 0.25rem;
	}

	#services_page .services_block__highlight {
		font-size: clamp(0.875rem, 0.9375rem, 1rem);
		line-height: 1.55;
		margin: 0 0 0.75rem 0;
	}

	#services_page h2.about_section_title {
		font-size: clamp(1.2rem, 1.35rem, 1.55rem);
		margin: 0 0 0.75rem 0;
		line-height: 1.2;
	}

	#services_page .services_process__title {
		margin-bottom: 0.75rem;
		text-align: center;
	}

	#services_page .services_process__description {
		max-width: 100%;
		margin: 0 0 1.25rem;
		font-size: clamp(0.875rem, 0.9375rem, 1rem);
		line-height: 1.6;
		text-align: center;
		color: #444;
	}

	#services_page .services_process__list {
		gap: 0.75rem;
		font-size: clamp(0.875rem, 0.9375rem, 1rem);
		line-height: 1.55;
		counter-reset: process-step;
	}

	#services_page .services_process__list li {
		display: flex;
		align-items: flex-start;
		gap: 0.875rem;
		padding: 1rem;
		margin: 0;
		background: #fff;
		border-radius: 0.375rem;
		box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
		border: 1px solid rgba(0, 0, 0, 0.06);
		flex-wrap: nowrap;
	}

	#services_page .services_process__step {
		flex-shrink: 0;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 2.125rem;
		height: 2.125rem;
		min-width: 2.125rem;
		border-radius: 50%;
		background: var(--color-primary);
		color: #fff;
		font-size: 0.8125rem;
		font-weight: 800;
		line-height: 1;
		margin-top: 0.125rem;
	}

	#services_page .services_process__content {
		display: flex;
		flex-direction: column;
		gap: 0.25rem;
		min-width: 0;
	}

	#services_page .services_process__label {
		font-size: clamp(0.9375rem, 1rem, 1.0625rem);
		font-weight: 700;
		line-height: 1.3;
		color: #111;
	}

	#services_page .services_process__detail {
		display: block;
		font-weight: 400;
		color: #555;
		font-size: clamp(0.8125rem, 0.875rem, 0.9375rem);
		line-height: 1.5;
	}

}

@media (max-width: 520px) {
	.about_stats__inner {
		grid-template-columns: 1fr;
	}

	.about_why__grid {
		grid-template-columns: 1fr;
	}
}
