/*
 * Fresh Clean 77 — feuille de style unique (front et éditeur).
 *
 * Les couleurs, tailles de police, largeurs et ombres de référence viennent de
 * theme.json (variables --wp--preset--* et --wp--custom--*).
 *
 * Points de rupture :
 *   > 1100 px      desktop (navigation horizontale)
 *   >= 782 px      desktop et tablette (colonnes côte à côte)
 *   <= 1280 px     desktop compact (resserrement de l'en-tête et du hero)
 *   <= 1100 px     tablette (menu burger, grilles 2 colonnes)
 *   782–1100 px    tablette uniquement (grilles qui disparaissent à l'empilement natif des colonnes)
 *   <= 781 px      tablette étroite et mobile (colonnes empilées, sliders, bandeau défilant)
 *   601–781 px     tablette étroite uniquement (« tablette bis »)
 *   <= 600 px      mobile
 *   <= 430 px      petit mobile
 *
 * `!important` n'est utilisé que pour surclasser une contrainte posée par
 * WordPress : style en ligne d'un bloc, classe utilitaire de couleur, de fond ou
 * de taille (has-*), marges automatiques des mises en page « constrained »,
 * règles !important du CSS des blocs Colonnes, Navigation et Couverture, ou
 * marges et espacements imposés par le canevas de l'éditeur.
 *
 * Sommaire
 *   1. Variables et base
 *   2. Mise en page globale
 *   3. Accessibilité
 *   4. En-tête : topbar, barre principale, navigation
 *   5. Hero
 *   6. Services rapides
 *   7. Comparateur avant / après
 *   8. Avantages
 *   9. Prestations
 *  10. Tarifs
 *  11. Processus
 *  12. Zone d'intervention
 *  13. CTA contact
 *  14. Témoignages
 *  15. Pied de page
 *  16. Page Contact / Demande de devis (dont formulaire Forminator)
 *  17. Pages Prestation (modèle : Nettoyage de canapés)
 *  18. Pages juridiques (mentions légales ; confidentialité, cookies, CGV à venir)
 *  19. Interactions et animations
 *  20. Responsive
 */

/* ==========================================================================
   1. Variables et base
   ========================================================================== */

:root {
	--fc-topbar-height: 36px;
	--fc-sticky-height: 92px;
	/* Pictogrammes de contact (trait bleu glacier) : topbar et pied de page. */
	--fc-icon-location: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238ee4ff' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21.5s7-6.5 7-12.2a7 7 0 1 0-14 0c0 5.7 7 12.2 7 12.2Z'/%3E%3Ccircle cx='12' cy='9.3' r='2.5'/%3E%3C/svg%3E");
	--fc-icon-phone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238ee4ff' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21.5 16.6v2.9a1.9 1.9 0 0 1-2.1 1.9 18.8 18.8 0 0 1-8.2-2.9 18.5 18.5 0 0 1-5.7-5.7A18.8 18.8 0 0 1 2.6 4.6 1.9 1.9 0 0 1 4.5 2.5h2.9a1.9 1.9 0 0 1 1.9 1.6c.1.9.4 1.8.7 2.7a1.9 1.9 0 0 1-.4 2L8.3 10a15.2 15.2 0 0 0 5.7 5.7l1.2-1.2a1.9 1.9 0 0 1 2-.4c.9.3 1.8.6 2.7.7a1.9 1.9 0 0 1 1.6 1.8Z'/%3E%3C/svg%3E");
	--fc-icon-email: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238ee4ff' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2.5'/%3E%3Cpath d='m3.5 7.5 8.5 6 8.5-6'/%3E%3C/svg%3E");
	--fc-icon-facebook: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238ee4ff' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16.5 4.5h-2.6A3.4 3.4 0 0 0 10.5 7.9v2.6H8V14h2.5v6.5H14V14h2.4l.5-3.5H14V8.3c0-.5.4-.9.9-.9h1.6V4.5Z'/%3E%3C/svg%3E");
	--fc-icon-instagram: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238ee4ff' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='4' width='16' height='16' rx='4.6'/%3E%3Ccircle cx='12' cy='12' r='3.6'/%3E%3Ccircle cx='16.9' cy='7.1' r='.4' fill='%238ee4ff'/%3E%3C/svg%3E");
	--fc-icon-tiktok: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238ee4ff' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13.5 4.5v10.2a3.3 3.3 0 1 1-3.3-3.3'/%3E%3Cpath d='M13.5 4.5c.4 2.3 1.9 3.8 4.3 4.1'/%3E%3C/svg%3E");
}

html {
	scroll-behavior: smooth;
}

body {
	/* `clip` (et non `hidden`) : coupe le débordement sans casser le sticky. */
	overflow-x: clip;
}

:where(.wp-site-blocks) {
	padding: 0;
}

:where(.wp-site-blocks > *) {
	margin-block-start: 0;
}

.wp-site-blocks {
	background: var(--wp--preset--color--white);
}

/* ==========================================================================
   2. Mise en page globale
   ========================================================================== */

/* Spécificité nulle : chaque section de l'accueil définit son propre rythme vertical. */
:where(.fc-section) {
	padding-block: clamp(3.75rem, 6vw, 5.5rem);
}

.fc-section > .alignwide,
.fc-footer > .alignwide,
.fc-cta > .alignwide,
.fc-assurance > .alignwide,
.fc-quote-cta-section > .alignwide {
	margin-inline: auto;
	max-width: var(--wp--custom--layout--section);
	width: min(100%, var(--wp--custom--layout--section));
}

.fc-section h2 {
	/* Valeur fixe : le preset x-large est recalculé en typographie fluide par WordPress. */
	font-size: clamp(2.125rem, 2.8vw, 2.625rem) !important;
}

.fc-section h3,
.fc-footer h3 {
	font-size: clamp(1.15rem, 1.6vw, 1.5rem);
	font-weight: 700;
}

.fc-eyebrow {
	color: var(--wp--preset--color--blue);
	font-size: 0.8rem;
	font-weight: 800;
	letter-spacing: 0.09em;
	line-height: 1.35;
	text-transform: uppercase;
}

.fc-offerings-section .fc-eyebrow::before,
.fc-pricing .fc-eyebrow::before,
.fc-process-section .fc-eyebrow::before,
.fc-service-area .fc-eyebrow::before,
.fc-testimonials-section .fc-eyebrow::before {
	background: #36a918;
	border-radius: 2px;
	content: "";
	display: block;
	height: 3px;
	margin-bottom: 0.65rem;
	width: 31px;
}

.fc-process-section .fc-eyebrow::before,
.fc-testimonials-section .fc-eyebrow::before {
	margin-inline: auto;
}

.fc-lead {
	font-size: clamp(1.05rem, 1.45vw, 1.2rem);
	line-height: 1.7;
}

.fc-section .fc-lead {
	font-size: clamp(1rem, 1.25vw, 1.125rem);
}

/* Boutons : couleur, rayon, typographie et ombre viennent de theme.json. */
.wp-block-button__link {
	min-height: 48px;
	transition: transform 200ms ease, box-shadow 200ms ease, background-color 200ms ease;
}

.wp-block-button__link:hover {
	transform: translateY(-2px);
}

/* CTA verts : dégradé surclassant la classe utilitaire de fond. */
.fc-hero .has-green-background-color,
.fc-service-hero .has-green-background-color,
.fc-contact-links .has-green-background-color {
	background: linear-gradient(180deg, #92da00 0%, #3caf00 55%, #168d00 100%) !important;
}

/* CTA bleus : dégradé surclassant la classe utilitaire de fond. */
.fc-header-cta .wp-element-button,
.fc-pricing > .wp-block-columns .wp-element-button {
	background: linear-gradient(180deg, #159dea 0%, #0065c3 100%) !important;
}

.wp-block-button__link.has-green-background-color,
.fc-hero .wp-block-button__link {
	box-shadow: 0 6px 16px rgba(34, 125, 0, 0.18);
}

.wp-block-button__link.has-blue-background-color,
.fc-header-cta .wp-block-button__link,
.fc-pricing .wp-block-button__link {
	box-shadow: 0 6px 16px rgba(0, 74, 150, 0.18);
}

/* CTA de l'en-tête : compact ; « Demander un devis gratuit » au-delà de 1280 px,
   « Devis gratuit » en dessous. */
.fc-header-cta .wp-block-button__link {
	font-size: 0.95rem;
	padding: 0.8rem 1.45rem;
	white-space: nowrap;
}

.fc-header-cta .fc-cta-short {
	display: none;
}

/* ==========================================================================
   3. Accessibilité
   ========================================================================== */

:where(a, button, input, textarea, select, .wp-element-button):focus-visible {
	outline: 3px solid var(--wp--preset--color--blue);
	outline-offset: 3px;
}

/* Ancres : juste sous l'en-tête collé. --fc-anchor-offset (site.js) mesure l'en-tête réel, moins le
   décalage que WordPress applique déjà pour la barre d'administration (scroll-padding-top). */
#prestations,
#tarifs,
#zone-intervention,
#contact,
#demande-de-devis {
	scroll-margin-top: calc(var(--fc-anchor-offset, var(--fc-sticky-height)) + 12px);
}

/* ==========================================================================
   4. En-tête
   ========================================================================== */

/* La partie de modèle colle une hauteur de topbar au-dessus du viewport :
   la topbar défile, la barre principale reste visible. */
header.wp-block-template-part {
	position: sticky;
	top: calc(var(--wp-admin--admin-bar--height, 0px) - var(--fc-topbar-height));
	z-index: 100;
}

.fc-header {
	position: relative;
	z-index: 20;
}

/* --- Topbar --- */

.fc-topbar {
	background-color: var(--wp--custom--color--navy-deep) !important;
	box-sizing: border-box;
	display: flex;
	font-size: 0.8rem;
	font-weight: 600;
	height: var(--fc-topbar-height);
	letter-spacing: 0.01em;
	padding-block: 0 !important;
}

.fc-topbar p {
	margin: 0;
}

.fc-topbar a,
.fc-topbar a:hover {
	color: var(--wp--preset--color--white);
	text-decoration: none;
}

.fc-topbar .alignwide,
.fc-topbar .alignwide > .wp-block-group {
	align-items: center;
}

.fc-topbar > .alignwide,
.fc-topbar-ticker > .alignwide {
	width: 100%;
}

/* Le bandeau défilant (JS) n'est actif que sous 782 px. */
.fc-topbar-ticker {
	display: contents;
}

.fc-topbar-copy {
	display: none;
}

.fc-topbar-location,
.fc-topbar-phone a,
.fc-topbar-email a {
	align-items: center;
	display: inline-flex;
	gap: 0.5rem;
	line-height: 1.25;
}

.fc-topbar-location::before,
.fc-topbar-phone a::before,
.fc-topbar-email a::before {
	background: var(--fc-icon-location) center / contain no-repeat;
	content: "";
	flex: 0 0 15px;
	height: 15px;
}

.fc-topbar-phone a::before {
	background-image: var(--fc-icon-phone);
}

.fc-topbar-email a::before {
	background-image: var(--fc-icon-email);
}

.fc-topbar-phone,
.fc-topbar-email {
	white-space: nowrap;
}

/* --- Barre principale --- */

.fc-header-main {
	box-shadow: inset 0 -1px 0 rgba(6, 60, 117, 0.08), 0 10px 24px -16px rgba(6, 60, 117, 0.28);
	min-height: var(--fc-sticky-height);
	padding-block: 0.4rem !important;
}

.fc-header-row {
	align-items: center;
	gap: clamp(0.8rem, 2vw, 2rem);
	/* Rangée à la hauteur de la barre (moins son padding) : logo, navigation et CTA centrés. */
	min-height: calc(var(--fc-sticky-height) - 0.8rem);
}

.fc-header .fc-brand-logo,
.fc-footer .fc-brand-logo {
	margin: 0;
}

/* Lien du logo en bloc : pas d'espace de ligne sous l'image. */
.fc-header .fc-brand-logo a {
	display: block;
}

/* Logo légèrement réduit : marge régulière au-dessus et au-dessous dans la barre. */
.fc-header .fc-brand-logo img {
	display: block;
	height: auto;
	max-width: 166px;
}

/* --- Navigation principale (états communs desktop et menu mobile) --- */

.fc-main-nav {
	min-width: 0;
}

.fc-main-nav .wp-block-navigation__container {
	align-items: center;
}

.fc-main-nav .wp-block-navigation-item__content {
	position: relative;
	text-decoration: none;
	transition: color 200ms ease;
}

/* Le lien « Devis gratuit » n'existe que dans le menu mobile ; sur desktop, le bouton le remplace. */
.fc-main-nav .fc-nav-quote {
	display: none;
}

/* Page courante en gras, sur desktop comme dans le menu mobile. */
.fc-main-nav .current-menu-item > .wp-block-navigation-item__content,
body.home .fc-main-nav .fc-nav-home > .wp-block-navigation-item__content {
	font-weight: 800;
}

/* Éléments du menu mobile injectés par site.js. */
.fc-main-nav .fc-menu-brand,
.fc-main-nav .fc-menu-footer {
	display: none;
}

/* ==========================================================================
   5. Hero
   ========================================================================== */

.fc-hero {
	min-height: clamp(540px, 43vw, 640px) !important;
	overflow: hidden;
	position: relative;
}

.fc-hero .wp-block-cover__image-background {
	object-position: center center;
}

.fc-hero .wp-block-cover__inner-container {
	width: 100%;
}

.fc-hero-content {
	margin-inline: auto;
	max-width: var(--wp--custom--layout--section);
	padding-block: clamp(3.5rem, 7vw, 6rem);
	width: min(100%, var(--wp--custom--layout--section));
}

.fc-hero-content > * {
	margin-left: 0;
	margin-right: auto;
	max-width: 460px;
}

.fc-hero h1 {
	line-height: 0.98;
	margin-block: 1rem 1.25rem;
	text-shadow: 0 2px 20px rgba(0, 23, 49, 0.16);
}

.fc-hero p {
	color: var(--wp--preset--color--white);
}

.fc-hero-accent {
	color: var(--wp--custom--color--accent);
}

.fc-hero .fc-lead {
	font-size: clamp(1.08rem, 1.35vw, 1.22rem);
	line-height: 1.45;
	max-width: 400px;
}

.fc-hero .fc-checks {
	align-items: flex-start;
	gap: 0.55rem;
	margin-top: 1.5rem;
}

.fc-checks p {
	margin: 0;
}

.fc-hero .fc-checks p {
	font-size: 1.02rem;
	font-weight: 700;
}

.fc-hero .fc-checks span,
.fc-page-hero .fc-checks span {
	align-items: center;
	background: var(--wp--preset--color--white);
	border-radius: 50%;
	color: var(--wp--preset--color--blue);
	display: inline-flex;
	height: 1.5rem;
	justify-content: center;
	margin-right: 0.55rem;
	width: 1.5rem;
}

/* ==========================================================================
   6. Services rapides
   ========================================================================== */

.fc-services-overlap {
	margin-bottom: 0;
	margin-top: -50px !important;
	padding-inline: clamp(1rem, 3vw, 2rem);
	position: relative;
	z-index: 5;
}

/* Carte flottante légèrement plus étroite que les sections pour souligner le chevauchement du hero. */
.fc-services-overlap > .fc-services-panel {
	box-shadow: 0 12px 28px rgba(6, 60, 117, 0.11);
	margin-inline: auto;
	max-width: var(--wp--custom--layout--panel);
	width: min(100%, var(--wp--custom--layout--panel));
}

.fc-services-panel .wp-block-columns {
	display: flex;
	flex-wrap: nowrap;
	width: 100%;
}

.fc-services-panel .wp-block-column {
	min-width: 0;
}

.fc-quick-service {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
	justify-content: center;
	min-height: 126px;
	padding: 0.4rem 1.1rem;
	position: relative;
	transition: transform 220ms ease;
}

.fc-quick-service:focus-within {
	outline: 3px solid var(--wp--preset--color--blue);
	outline-offset: 3px;
}

.fc-service-icon {
	align-items: center;
	border-radius: 50%;
	display: flex;
	height: 78px;
	justify-content: center;
	margin: 0 auto;
	width: 78px;
}

.fc-service-icon img {
	height: 76px;
	object-fit: contain;
	width: 76px !important;
}

.fc-quick-service img {
	transition: transform 240ms ease;
}

.fc-quick-service h3 {
	font-size: 0.86rem;
	font-weight: 800;
	margin: 0;
	text-transform: uppercase;
}

.fc-quick-service a {
	color: var(--wp--preset--color--navy);
	text-decoration: none;
}

/* Lien étiré : toute la carte est cliquable. */
.fc-quick-service h3 a {
	align-items: center;
	display: inline-flex;
	justify-content: center;
	min-height: 44px;
}

.fc-quick-service h3 a::before {
	content: "";
	inset: 0;
	position: absolute;
}

/* Sliders (services et avis) : la mise en défilement est définie sous 782 px. */
.fc-slider-shell {
	position: relative;
}

.fc-slider-controls {
	display: none;
}

/* ==========================================================================
   7. Comparateur avant / après
   ========================================================================== */

.fc-before-after {
	padding-block: 2.25rem 1rem;
}

.fc-before-after .fc-lead {
	margin-top: 0.45rem;
}

.fc-comparison-labels {
	color: var(--wp--preset--color--navy);
	display: flex;
	font-size: 0.86rem;
	font-weight: 650;
	margin: 1.5rem auto 0 !important;
	max-width: var(--wp--custom--layout--media) !important;
	width: min(100%, var(--wp--custom--layout--media));
}

.fc-comparison-labels p {
	flex: 1 1 50%;
	margin: 0;
	min-width: 0;
}

.fc-comparison-labels p:last-child {
	text-align: right;
}

.fc-comparison {
	--fc-compare: 50%;
	aspect-ratio: 2.55 / 1;
	border-radius: 16px;
	box-shadow: 0 18px 45px rgba(6, 60, 117, 0.13);
	margin: 1.5rem auto 0;
	max-width: var(--wp--custom--layout--media) !important;
	overflow: hidden;
	position: relative;
	touch-action: pan-y;
	user-select: none;
	width: min(100%, var(--wp--custom--layout--media));
}

.fc-comparison-labels + .fc-comparison {
	margin-top: 0.45rem !important;
}

.fc-comparison .fc-comparison-image {
	height: 100%;
	inset: 0;
	margin: 0;
	position: absolute;
	width: 100%;
}

.fc-comparison .fc-comparison-image img {
	aspect-ratio: auto;
	display: block;
	height: 100%;
	margin: 0;
	object-fit: cover;
	object-position: center 40%;
	pointer-events: none;
	width: 100%;
}

.fc-comparison-before-image {
	clip-path: inset(0 calc(100% - var(--fc-compare)) 0 0);
	z-index: 1;
}

.fc-comparison-ui {
	inset: 0;
	position: absolute;
	z-index: 5;
}

.fc-comparison > .fc-comparison-ui {
	height: 100%;
	margin: 0;
	max-width: none;
	width: 100%;
}

.fc-comparison-range {
	cursor: ew-resize;
	height: 100%;
	inset: 0;
	margin: 0;
	opacity: 0;
	position: absolute;
	touch-action: pan-y;
	width: 100%;
}

.fc-comparison-divider {
	background: var(--wp--preset--color--white);
	bottom: 0;
	box-shadow: 0 0 8px rgba(0, 35, 75, 0.28);
	height: 100%;
	left: var(--fc-compare);
	pointer-events: none;
	position: absolute;
	top: 0;
	transform: translateX(-50%);
	width: 3px;
	z-index: 1;
}

/* Au toucher, seul le glissement depuis la poignée déplace le curseur. */
.fc-comparison-handle {
	align-items: center;
	background: var(--wp--preset--color--white);
	border-radius: 50%;
	box-shadow: 0 3px 16px rgba(0, 35, 75, 0.25);
	color: var(--wp--custom--color--blue-strong);
	cursor: ew-resize;
	display: flex;
	font-family: Arial, sans-serif;
	font-size: 1.55rem;
	font-weight: 800;
	height: 54px;
	justify-content: center;
	left: var(--fc-compare);
	letter-spacing: -0.12em;
	line-height: 1;
	margin: 0;
	padding-right: 0.12em;
	position: absolute;
	top: 50%;
	touch-action: none;
	transform: translate(-50%, -50%);
	width: 54px;
	z-index: 2;
}

.fc-comparison:focus-within .fc-comparison-handle {
	outline: 3px solid var(--wp--preset--color--navy);
	outline-offset: 3px;
}

.fc-comparison-help {
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
	height: 1px;
	overflow: hidden;
	position: absolute;
	white-space: nowrap;
	width: 1px;
}

/* Compatibilité : pages enregistrées avec les anciens badges Avant/Après. */
.fc-comparison > .fc-comparison-before,
.fc-comparison > .fc-comparison-after {
	display: none;
}

/* ==========================================================================
   8. Avantages
   ========================================================================== */

.fc-benefits-section {
	background: linear-gradient(135deg, var(--wp--preset--color--white) 15%, var(--wp--custom--color--surface) 100%) !important;
	padding-block: 2.15rem 2.7rem;
}

.fc-benefits-section .fc-eyebrow,
.fc-benefits-section h2 br {
	display: none;
}

.fc-benefits {
	gap: 0.7rem !important;
	margin-top: 1.4rem !important;
}

.fc-benefits > .wp-block-column {
	min-width: 0;
}

.fc-benefits .fc-card {
	background: rgba(255, 255, 255, 0.72) !important;
	border: 1px solid var(--wp--custom--color--line);
	border-radius: 16px;
	box-shadow: 0 5px 18px rgba(5, 61, 110, 0.045);
	height: 100%;
	padding: 1.15rem 0.9rem !important;
	transition: transform 300ms ease, box-shadow 300ms ease, background-color 300ms ease;
}

.fc-benefit-icon {
	margin: 0 auto 0.45rem !important;
	transition: transform 300ms ease;
	width: 100px;
}

.fc-benefit-icon img {
	display: block;
	transition: transform 240ms ease;
	width: 100%;
}

.fc-benefits h3 {
	font-size: 1.12rem !important;
	margin: 0.4rem 0;
}

.fc-benefits .fc-card p {
	color: var(--wp--custom--color--muted-strong);
	font-size: 0.91rem;
	font-weight: 500;
	line-height: 1.48;
}

/* ==========================================================================
   9. Prestations
   ========================================================================== */

.fc-offerings-section {
	background: linear-gradient(135deg, #effaff 0%, #e8f7fc 100%) !important;
	padding-block: clamp(2rem, 3.5vw, 3.4rem);
}

.fc-offerings-section .wp-block-columns,
.fc-pricing .wp-block-columns {
	gap: 1rem;
}

/* Carte entièrement cliquable : le titre, seul lien de la carte, s'étire sur toute sa
   surface (image comprise). Photo et dégradé passent sous le titre (z-index négatifs dans
   la carte isolée), le titre reste dans le flux, en bas. */
.fc-offering-card {
	border: 1px solid rgba(4, 48, 87, 0.1);
	border-radius: 16px;
	box-shadow: 0 12px 32px rgba(6, 60, 117, 0.13);
	display: flex;
	flex-direction: column;
	height: clamp(180px, 16vw, 225px);
	isolation: isolate;
	justify-content: flex-end;
	overflow: hidden;
	padding: 0;
	position: relative;
	transition: transform 220ms ease, box-shadow 220ms ease;
}

.fc-offering-card::after {
	background: linear-gradient(180deg, rgba(2, 27, 53, 0) 35%, rgba(2, 27, 53, 0.15) 58%, rgba(2, 27, 53, 0.82) 100%);
	content: "";
	inset: 0;
	pointer-events: none;
	position: absolute;
	transition: background 300ms ease;
	z-index: -1;
}

.fc-offering-card > figure.wp-block-image {
	height: 100%;
	inset: 0;
	margin: 0;
	max-width: none;
	position: absolute;
	width: 100%;
	z-index: -1;
}

.fc-offering-card > figure.wp-block-image img {
	/* Indispensable dans l'éditeur, où la hauteur du conteneur n'est pas définie. */
	aspect-ratio: 1.85 / 1;
	border-radius: inherit;
	display: block;
	height: 100%;
	max-width: none;
	object-fit: cover;
	transition: transform 300ms ease;
	width: 100%;
}

.fc-offering-card h3 {
	box-sizing: border-box;
	color: var(--wp--preset--color--white);
	font-size: 1.13rem !important;
	margin: 0;
	max-width: none;
	padding: 0.8rem 0.85rem !important;
	text-shadow: 0 1px 5px rgba(0, 0, 0, 0.35);
	width: 100%;
}

.fc-offering-link {
	align-items: center;
	color: inherit;
	display: flex;
	gap: 0.5rem;
	justify-content: space-between;
	text-decoration: none;
}

.fc-offering-link::before {
	border-radius: inherit;
	content: "";
	inset: 0;
	position: absolute;
}

/* Focus clavier : contour sur toute la carte ; sans :has(), contour natif du lien. */
.fc-offering-card:has(.fc-offering-link:focus-visible) {
	outline: 3px solid var(--wp--preset--color--blue);
	outline-offset: 3px;
}

@supports selector(:has(a)) {
	.fc-offering-link:focus-visible {
		outline: none;
	}
}

/* Indice visuel (décoratif) : la carte entière est le lien. */
.fc-card-arrow {
	align-items: center;
	background: var(--wp--preset--color--white);
	border-radius: 50%;
	box-shadow: 0 3px 10px rgba(0, 33, 70, 0.25);
	color: var(--wp--custom--color--blue-strong);
	display: inline-flex;
	flex: 0 0 38px;
	font-size: 1.1rem;
	font-weight: 800;
	height: 38px;
	justify-content: center;
	line-height: 1;
	text-decoration: none;
	text-shadow: none;
	transition: transform 280ms ease, background-color 280ms ease;
	width: 38px;
}

/* ==========================================================================
   10. Tarifs
   ========================================================================== */

.fc-pricing {
	background: linear-gradient(130deg, var(--wp--preset--color--white) 0%, #f5fbfe 47%, #eaf7fc 100%) !important;
	padding-block: clamp(2rem, 3.5vw, 3.4rem);
}

/* Grille de 6 colonnes : trois cartes simples (2 colonnes chacune), puis deux cartes
   larges (3 colonnes) pour le tapis à deux tarifs et les tissus d'ameublement sur devis. */
.fc-price-grid {
	display: grid;
	gap: 0.75rem;
	grid-template-columns: repeat(6, minmax(0, 1fr));
}

.fc-price-grid > .fc-price-card {
	grid-column: span 2;
	margin: 0 !important;
}

.fc-price-grid > .fc-price-wide {
	grid-column: span 3;
}

.fc-price-grid .fc-price-card {
	align-items: center;
	border: 1px solid var(--wp--custom--color--line);
	border-radius: 16px;
	box-shadow: 0 8px 20px rgba(6, 60, 117, 0.07);
	display: flex;
	flex-direction: column;
	min-height: 190px;
	padding: 1rem 0.55rem !important;
	text-align: center;
	transition: transform 280ms ease, box-shadow 280ms ease, border-color 280ms ease;
}

.fc-price-card > * + * {
	margin-block-start: 0.2rem !important;
}

/* Cartes larges : la ligne des prix reste alignée en bas des deux cartes. */
.fc-price-wide > :last-child {
	margin-block-start: auto !important;
}

.fc-price-icon {
	margin: 0 auto 0.4rem !important;
	width: 70px;
}

.fc-price-icon img {
	display: block;
	height: 65px;
	object-fit: contain;
	transition: transform 280ms ease, box-shadow 280ms ease, border-color 280ms ease;
	width: 70px;
}

.fc-price-grid h3 {
	color: var(--wp--preset--color--navy);
	font-size: 1rem;
	font-weight: 800;
	margin-bottom: 0.35rem;
}

.fc-price-from {
	color: var(--wp--custom--color--muted);
	font-size: 0.7rem;
	font-weight: 500;
	margin: 0;
}

/* La couleur vient de la classe has-dark-green-color du bloc. */
.fc-price {
	font-size: clamp(2rem, 2.65vw, 2.5rem);
	font-weight: 800;
	line-height: 1;
	margin-top: 0.15rem;
}

/* Tapis : deux tarifs côte à côte, séparés d'un filet. */
.fc-price-options {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin-inline: auto;
	max-width: 24rem;
	padding-top: 0.15rem;
	width: 100%;
}

/* Prix en bas de chaque option : « Sur devis » (sans « à partir de ») reste aligné sur l'autre prix. */
.fc-price-options > .fc-price-option {
	display: flex;
	flex-direction: column;
	margin: 0;
	padding-inline: 0.5rem;
}

.fc-price-options .fc-price-option > .fc-price:last-child {
	margin-top: auto;
}

.fc-price-options > .fc-price-option + .fc-price-option {
	border-left: 1px solid var(--wp--custom--color--line);
}

.fc-price-options .fc-price-option > * {
	margin-block: 0;
}

.fc-price-options .fc-price-option > .fc-price {
	margin-top: 0.15rem;
}

.fc-price-label {
	color: var(--wp--preset--color--navy);
	font-size: 0.85rem;
	font-weight: 700;
	line-height: 1.3;
}

/* Tissus d'ameublement : exemples discrets sous le titre, valeur « Sur devis » au poids d'un prix. */
.fc-price-note {
	color: var(--wp--custom--color--muted);
	font-size: 0.78rem;
	line-height: 1.35;
	margin: 0;
	padding-bottom: 0.45rem;
}

/* ==========================================================================
   11. Processus
   ========================================================================== */

.fc-process-section {
	padding-block: 2.4rem 2.7rem;
}

.fc-process-grid {
	margin-top: 1.3rem !important;
	position: relative;
}

.fc-process-grid::before {
	border-top: 2px dashed #76c9ee;
	content: "";
	left: 12%;
	position: absolute;
	right: 12%;
	top: 51px;
	z-index: 0;
}

.fc-process-grid > .wp-block-column {
	position: relative;
	z-index: 1;
}

.fc-process-grid .fc-step {
	background: transparent !important;
	height: 100%;
	padding: 0 1rem !important;
	text-align: center;
	transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.fc-process-icon {
	margin: 0 auto 0.6rem !important;
	width: 108px;
}

.fc-process-icon img {
	display: block;
	width: 100% !important;
}

.fc-process-grid h3 {
	color: var(--wp--preset--color--navy);
	font-size: 1.05rem !important;
	font-weight: 800;
	margin: 0.3rem 0;
}

.fc-process-grid p {
	color: var(--wp--custom--color--muted);
	font-size: 0.92rem;
	font-weight: 500;
	line-height: 1.4;
}

/* ==========================================================================
   12. Zone d'intervention
   ========================================================================== */

.fc-service-area {
	margin-block-end: 0;
	min-height: 0;
	padding-block: 1.5rem;
}

.fc-service-area .wp-block-cover__inner-container {
	width: 100%;
}

.fc-service-area .wp-block-columns {
	gap: clamp(2rem, 5vw, 5rem);
	justify-content: space-between;
	margin-inline: auto;
	max-width: var(--wp--custom--layout--section);
	padding: 0;
}

.fc-service-area .wp-block-column:first-child {
	background: rgba(255, 255, 255, 0.91);
	border: 1px solid rgba(255, 255, 255, 0.8);
	border-radius: 17px;
	box-shadow: 0 8px 24px rgba(0, 32, 71, 0.17);
	flex-basis: 40% !important;
	max-width: 465px;
	padding: 1rem 1.35rem;
}

.fc-service-area .wp-block-column:first-child > * + * {
	margin-block-start: 0.45rem;
}

.fc-service-area .wp-block-column:first-child :is(h2, p, li) {
	color: var(--wp--preset--color--navy);
}

.fc-service-area h2 {
	font-size: clamp(1.65rem, 2.1vw, 2rem) !important;
	line-height: 1.12;
}

.fc-service-area .fc-lead {
	font-size: 0.92rem;
	line-height: 1.4;
}

.fc-zone-list {
	column-gap: 2rem;
	columns: 2;
}

.fc-service-area .fc-zone-list {
	font-size: 0.88rem;
	line-height: 1.3;
	margin-bottom: 0.3rem;
}

.fc-service-area .has-small-font-size {
	font-size: 0.72rem !important;
	line-height: 1.35;
}

.fc-map-visual {
	margin: 0 0 0 auto;
	max-width: 330px;
}

.fc-map-visual img {
	height: auto;
	object-fit: contain;
}

/* ==========================================================================
   13. CTA contact
   ========================================================================== */

.fc-cta {
	background: linear-gradient(90deg, #042f5d 0%, var(--wp--preset--color--navy) 70%, #075fa6 100%) !important;
	padding-block: 0.85rem;
}

.fc-service-area + .fc-cta {
	margin-block-start: 0;
}

.fc-cta h2 {
	margin: 0;
}

.fc-cta > .alignwide {
	align-items: center;
	gap: 1rem 2rem;
}

.fc-cta-intro {
	align-items: center;
	column-gap: 1.3rem;
	display: grid;
	grid-template-columns: 54px minmax(0, 1fr);
	padding-right: 1rem;
}

.fc-cta-intro::before {
	background: var(--wp--custom--color--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' fill='none'%3E%3Cpath d='M6 8.5h20v13H13l-6 4v-4H6V8.5Z' stroke='%230679cf' stroke-width='2.3' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M11 14.5h10M11 18h7' stroke='%230679cf' stroke-width='2.1' stroke-linecap='round'/%3E%3C/svg%3E") center / 32px 32px no-repeat;
	border: 2px solid rgba(255, 255, 255, 0.75);
	border-radius: 50%;
	box-shadow: 0 2px 8px rgba(0, 24, 53, 0.18);
	content: "";
	grid-column: 1;
	grid-row: 1 / 3;
	height: 54px;
	width: 54px;
}

.fc-cta-intro .fc-eyebrow,
.fc-cta-intro h2 {
	grid-column: 2;
	margin: 0 !important;
}

.fc-cta-intro .fc-eyebrow {
	align-self: end;
	grid-row: 1;
}

.fc-cta-intro h2 {
	align-self: start;
	font-size: clamp(1.05rem, 1.45vw, 1.3rem) !important;
	grid-row: 2;
}

.fc-contact-links {
	flex-wrap: wrap;
	gap: 0.75rem;
}

.fc-contact-links .wp-block-button__link {
	box-sizing: border-box;
	font-size: 0.85rem;
	min-height: 42px;
	overflow-wrap: anywhere;
	padding: 0.65rem 1rem;
}

/* Pictogrammes fins devant les libellés des boutons. */
.fc-contact-phone .wp-block-button__link::before,
.fc-contact-email .wp-block-button__link::before,
.fc-button-quote .wp-block-button__link::before {
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
	display: inline-block;
	height: 22px;
	margin-right: 0.45rem;
	vertical-align: -5px;
	width: 22px;
}

.fc-contact-phone .wp-block-button__link::before,
.fc-quote-detail--phone::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 3H5a2 2 0 0 0-2 2c0 8.8 7.2 16 16 16a2 2 0 0 0 2-2v-2l-5-3-2 2a14 14 0 0 1-6-6l2-2-3-5Z'/%3E%3C/svg%3E");
}

.fc-contact-email .wp-block-button__link::before,
.fc-quote-detail--email::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E");
}

/* Avion en papier (pages Prestation) ; téléphone bleu sur les boutons blancs. */
.fc-button-quote .wp-block-button__link::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 3 3 10.5l7 2.6 2.6 7.4L21 3Z'/%3E%3Cpath d='m10 13.1 4.6-4.6'/%3E%3C/svg%3E");
	height: 20px;
	vertical-align: -4px;
	width: 20px;
}

.fc-contact-phone .has-white-background-color::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23006cb5' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 3H5a2 2 0 0 0-2 2c0 8.8 7.2 16 16 16a2 2 0 0 0 2-2v-2l-5-3-2 2a14 14 0 0 1-6-6l2-2-3-5Z'/%3E%3C/svg%3E");
}

/* ==========================================================================
   14. Témoignages
   ========================================================================== */

.fc-testimonials-section {
	padding-block: 2rem 2.5rem;
}

.fc-testimonials-section .wp-block-columns {
	margin-top: 1.3rem !important;
}

.fc-testimonial {
	border: 1px solid rgba(7, 136, 209, 0.12);
	box-shadow: var(--wp--preset--shadow--card);
	height: 100%;
	transition: transform 240ms ease, box-shadow 240ms ease;
}

.fc-testimonial p:not(.fc-stars) {
	font-weight: 500;
}

.fc-stars {
	color: #f5a623;
	font-size: 1.05rem;
	letter-spacing: 0.12em;
}

/* ==========================================================================
   15. Pied de page
   ========================================================================== */

/* Quatre colonnes sur la grille du site (marque, navigation, services, contact), puis une
   ligne légale séparée par un filet. Espacements portés par le CSS (aucun style en ligne). */
.fc-footer {
	background: linear-gradient(120deg, #032a52, var(--wp--preset--color--navy) 70%, #074579) !important;
	padding-block: clamp(3rem, 5vw, 4.5rem) 1.6rem;
	position: relative;
}

.fc-footer a {
	color: inherit;
	overflow-wrap: anywhere;
}

.fc-footer :is(p, li, a) {
	font-size: clamp(0.9rem, 1vw, 0.97rem);
	font-weight: 500;
	line-height: 1.6;
}

.fc-footer .fc-footer-grid {
	display: grid;
	gap: 2.5rem clamp(2rem, 4vw, 4.5rem);
	grid-template-columns: minmax(0, 1.35fr) minmax(0, 0.85fr) minmax(0, 1fr) minmax(0, 1.15fr);
	margin-bottom: 0;
}

.fc-footer-grid > .wp-block-column {
	margin: 0;
	min-width: 0;
	width: auto;
}

/* Titres de colonne : blancs, soulignés d'un trait vert court (comme les sur-titres). */
.fc-footer .fc-footer-title {
	color: var(--wp--preset--color--white);
	font-size: 1.05rem;
	font-weight: 750;
	letter-spacing: 0.01em;
	line-height: 1.3;
	margin: 0.2rem 0 1.25rem;
	padding-bottom: 0.75rem;
	position: relative;
}

.fc-footer .fc-footer-title::after {
	background: #6bc947;
	border-radius: 2px;
	bottom: 0;
	content: "";
	height: 2px;
	left: 0;
	position: absolute;
	width: 28px;
}

.fc-footer .fc-brand-logo img {
	height: auto;
	max-width: 200px;
}

.fc-footer .fc-footer-description {
	color: var(--wp--custom--color--ice-pale);
	margin-top: 1.25rem;
	max-width: 36ch;
}

.fc-footer .fc-footer-tagline {
	color: var(--wp--custom--color--ice);
	font-size: 0.9rem;
	font-weight: 700;
	margin-top: 0.75rem;
}

/* Liens de navigation et de services : même rythme, survol vers le blanc. */
.fc-footer .wp-block-navigation-item__content,
.fc-footer-list li {
	color: var(--wp--custom--color--ice-pale);
	text-decoration: none;
}

.fc-footer .wp-block-navigation-item__content,
.fc-footer a:not(.wp-block-button__link) {
	transition: color 200ms ease, transform 200ms ease;
}

.fc-footer .wp-block-navigation__container {
	align-items: flex-start;
	gap: 0.6rem;
}

.fc-footer .fc-footer-list {
	display: grid;
	gap: 0.6rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.fc-footer-list a {
	display: inline-block;
	text-decoration: none;
}

/* Coordonnées : pictogramme dans une pastille, valeur en blanc. */
.fc-footer .fc-footer-contact {
	align-items: center;
	color: var(--wp--preset--color--white);
	display: flex;
	gap: 0.8rem;
	margin: 0 0 0.85rem;
}

.fc-footer-contact::before {
	background: rgba(255, 255, 255, 0.07) var(--fc-icon-phone) center / 17px no-repeat;
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: 50%;
	content: "";
	flex: 0 0 36px;
	height: 36px;
}

.fc-footer-email::before {
	background-image: var(--fc-icon-email);
}

.fc-footer-location::before {
	background-image: var(--fc-icon-location);
}

/* Réseaux sociaux : petit titre et trois pastilles rondes sur une ligne, secondaires. */
.fc-footer-social {
	margin: 0.2rem 0 0;
}

.fc-footer .fc-footer-social-label {
	color: rgba(227, 243, 251, 0.7);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	line-height: 1.2;
	margin: 0 0 0.55rem;
	text-transform: uppercase;
}

.fc-footer .fc-footer-social-links {
	display: flex;
	flex-wrap: nowrap;
	gap: 0.6rem;
	margin: 0;
}

.fc-social-link {
	background: rgba(255, 255, 255, 0.07) var(--fc-icon-facebook) center / 18px no-repeat;
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: 50%;
	box-sizing: border-box;
	display: inline-block;
	flex: 0 0 36px;
	height: 36px;
	transition: background-color 180ms ease, border-color 180ms ease;
	width: 36px;
}

.fc-social-facebook {
	background-size: 20px;
}

.fc-social-instagram {
	background-image: var(--fc-icon-instagram);
}

.fc-social-tiktok {
	background-image: var(--fc-icon-tiktok);
}

.fc-social-link:hover {
	background-color: rgba(255, 255, 255, 0.14);
	border-color: rgba(255, 255, 255, 0.32);
}

.fc-social-link:focus-visible {
	outline: 2px solid var(--wp--custom--color--ice-strong);
	outline-offset: 3px;
}

.fc-footer-contact a {
	font-weight: 650;
	text-decoration: none;
}

.fc-footer .fc-footer-cta {
	margin-top: 1.35rem;
}

/* Ligne légale : copyright, liens et promesse sur une ligne au-delà de 1280 px. */
.fc-footer .fc-footer-meta {
	align-items: center;
	border-top: 1px solid rgba(255, 255, 255, 0.14);
	display: grid;
	gap: 0.75rem 2rem;
	grid-template-columns: auto minmax(0, 1fr) auto;
	margin-top: clamp(2.5rem, 4vw, 3.5rem);
	padding-top: 1.5rem;
}

.fc-footer-meta :is(p, a) {
	font-size: 0.8rem !important;
	line-height: 1.45;
}

.fc-footer-meta p {
	margin: 0;
}

.fc-footer-copyright {
	color: var(--wp--custom--color--ice-pale);
}

.fc-footer-legal {
	gap: 0.25rem 1.25rem !important;
}

.fc-footer-legal p {
	margin: 0;
}

.fc-footer-legal a {
	color: var(--wp--custom--color--ice-pale);
	display: inline-block;
	padding-block: 0.25rem;
	text-decoration: none;
	text-underline-offset: 3px;
}

.fc-footer-legal a:hover {
	color: var(--wp--preset--color--white);
	text-decoration: underline;
}

.fc-footer-meta .fc-footer-promise {
	align-items: center;
	gap: 0.4rem;
	justify-self: end;
}

.fc-footer-promise p,
.fc-footer-green-leaf {
	margin: 0;
}

.fc-footer-green-leaf {
	width: 24px;
}

/* Crédit du site : dans la ligne du copyright, atténué, insécable (passe à la ligne d'un bloc). */
.fc-footer-credit {
	color: rgba(227, 243, 251, 0.72);
	white-space: nowrap;
}

.fc-footer-credit a {
	border-radius: 3px;
	color: var(--wp--custom--color--ice-pale);
	text-decoration: none;
	text-underline-offset: 3px;
	transition: color 180ms ease;
}

.fc-footer-credit a:hover {
	color: var(--wp--preset--color--white);
	text-decoration: underline;
}

.fc-footer-credit a:focus-visible {
	outline: 2px solid var(--wp--custom--color--ice-strong);
	outline-offset: 2px;
}

.fc-footer-leaf {
	bottom: 3rem;
	margin: 0 !important;
	opacity: 0.28;
	position: absolute;
	right: 3vw;
	width: 165px;
}

/* ==========================================================================
   16. Page Contact / Demande de devis
   ========================================================================== */

/* --- Hero court : carte à la largeur des sections du site (comme le CTA final).
   La photo (hero-contact-devis) porte déjà un dégradé bleu à gauche : le voile
   ne fait que le compléter sous le texte. L'image se remplace depuis l'éditeur ;
   le dégradé de fond reste lisible même sans image. --- */

.wp-block-cover.fc-page-hero {
	background: var(--wp--preset--gradient--hero-blue);
	border-radius: 22px;
	box-sizing: border-box;
	margin: clamp(1rem, 2.5vw, 2rem) auto 0;
	max-width: none;
	min-height: clamp(360px, 30vw, 440px);
	overflow: hidden;
	padding: 0 clamp(1.25rem, 4vw, 3.5rem);
	width: min(100% - var(--wp--style--root--padding-left, 1rem) - var(--wp--style--root--padding-right, 1rem), var(--wp--custom--layout--section));
}

.wp-block-cover.fc-page-hero::before {
	background: linear-gradient(90deg, rgba(3, 34, 70, 0.72) 0%, rgba(5, 48, 96, 0.7) 36%, rgba(6, 60, 117, 0.3) 58%, rgba(6, 60, 117, 0) 76%);
	content: "";
	inset: 0;
	pointer-events: none;
	position: absolute;
	z-index: 1;
}

/* Haut de la photo conservé (têtes) ; personnes à droite, hors de la colonne de texte. */
.fc-page-hero .wp-block-cover__image-background {
	object-position: 100% 0%;
}

.fc-page-hero .wp-block-cover__inner-container {
	position: relative;
	width: 100%;
	z-index: 2;
}

.fc-page-hero-content {
	box-sizing: border-box;
	max-width: none;
	padding-block: clamp(2.5rem, 4.5vw, 3.75rem);
	width: 100%;
}

.fc-page-hero-content > * {
	max-width: 620px;
}

.fc-page-hero h1 {
	font-size: clamp(2.15rem, 1.4rem + 3vw, 3.5rem);
	line-height: 1.02;
	margin-block: 0 1rem;
	text-shadow: 0 2px 20px rgba(0, 23, 49, 0.16);
}

.fc-page-hero .fc-lead {
	color: var(--wp--custom--color--ice-pale);
	font-size: clamp(1rem, 1.3vw, 1.15rem);
	line-height: 1.55;
	margin: 0;
	max-width: 54ch;
}

.fc-page-hero .fc-checks {
	align-items: flex-start;
	flex-direction: column;
	gap: 0.5rem;
	margin-top: 1.4rem;
}

.fc-page-hero .fc-checks p {
	color: var(--wp--preset--color--white);
	font-size: 0.98rem;
	font-weight: 700;
}

/* --- Zone principale : formulaire (≈ 65 %) et colonne de réassurance (≈ 35 %) --- */

/* Les sections de la page s'enchaînent sans l'espacement de flux du contenu. */
.fc-page-hero + .fc-quote-section,
.fc-quote-section + .fc-assurance,
.fc-assurance + .fc-faq-section,
.fc-faq-section + .fc-quote-cta-section {
	margin-block-start: 0;
}

.fc-quote-section {
	background: linear-gradient(180deg, var(--wp--custom--color--surface) 0%, var(--wp--preset--color--white) 100%);
	padding-block: clamp(1.75rem, 3.5vw, 2.75rem) clamp(2.25rem, 4vw, 3rem);
}

.fc-quote-layout {
	align-items: flex-start;
	gap: clamp(1.5rem, 2.2vw, 2rem);
}

.fc-quote-layout > .wp-block-column {
	min-width: 0;
}

.fc-quote-card,
.fc-quote-panel {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--custom--color--line);
	border-radius: 20px;
	box-shadow: var(--wp--preset--shadow--soft);
	box-sizing: border-box;
}

.fc-quote-card {
	padding: clamp(1.35rem, 3vw, 2.25rem);
}

.fc-quote-panel {
	padding: clamp(1.35rem, 2.2vw, 1.85rem);
}

.fc-quote-card-header {
	align-items: center;
	border-bottom: 1px solid var(--wp--custom--color--line);
	column-gap: 1rem;
	display: grid;
	grid-template-columns: 56px minmax(0, 1fr);
	margin-bottom: 1.35rem;
	padding-bottom: 1.15rem;
}

.fc-quote-card-header::before {
	background: var(--wp--preset--color--sky) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230679cf' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='4' width='14' height='17' rx='2'/%3E%3Cpath d='M9 4V3h6v1M8.5 10h7M8.5 13.5h7M8.5 17h4'/%3E%3C/svg%3E") center / 28px 28px no-repeat;
	border-radius: 50%;
	content: "";
	grid-column: 1;
	grid-row: 1 / 3;
	height: 56px;
	width: 56px;
}

.fc-quote-card-header > * {
	grid-column: 2;
	margin: 0 !important;
}

/* Spécificité renforcée : prime sur la taille des titres de section, y compris sous 600 px. */
.fc-quote-section .fc-quote-card-header h2 {
	font-size: clamp(1.5rem, 2.2vw, 1.95rem) !important;
}

.fc-quote-card-header p {
	color: var(--wp--custom--color--muted);
	font-size: 0.98rem;
	margin-top: 0.3rem !important;
}

.fc-quote-section .fc-quote-panel h2 {
	font-size: clamp(1.2rem, 1.6vw, 1.4rem) !important;
	margin: 0;
}

.fc-quote-panel-intro {
	color: var(--wp--custom--color--muted);
	font-size: 0.95rem;
	margin-top: 0.35rem !important;
}

/* Paragraphe de repli, masqué dès que Forminator rend le formulaire qui le précède. */
.fc-quote-form-fallback {
	background: var(--wp--custom--color--surface);
	border: 1px dashed #b9dcef;
	border-radius: 14px;
	color: var(--wp--custom--color--muted-strong);
	margin: 0;
	padding: 1.25rem;
}

.fc-quote-form-fallback a {
	font-weight: 700;
	overflow-wrap: anywhere;
}

.fc-quote-form-fallback a[href^="tel:"] {
	white-space: nowrap;
}

.fc-quote-form > .forminator-custom-form ~ .fc-quote-form-fallback {
	display: none;
}

/* --- Étapes « Comment ça se passe ? » --- */

.fc-quote-steps {
	counter-reset: fc-quote-step;
	list-style: none;
	margin: 1.35rem 0 0;
	padding: 0;
}

.fc-quote-steps > li {
	color: var(--wp--custom--color--muted);
	counter-increment: fc-quote-step;
	font-size: 0.92rem;
	line-height: 1.5;
	min-height: 2.4rem;
	padding-left: 3.25rem;
	position: relative;
}

.fc-quote-steps > li + li {
	margin-top: 1.15rem;
}

.fc-quote-steps > li::before {
	align-items: center;
	background: linear-gradient(180deg, #159dea 0%, #0065c3 100%);
	border-radius: 50%;
	box-shadow: 0 4px 12px rgba(0, 74, 150, 0.2);
	color: var(--wp--preset--color--white);
	content: counter(fc-quote-step);
	display: flex;
	font-size: 1rem;
	font-weight: 800;
	height: 2.35rem;
	justify-content: center;
	left: 0;
	position: absolute;
	top: 0;
	width: 2.35rem;
}

.fc-quote-steps > li:not(:last-child)::after {
	border-left: 2px dashed #afdff4;
	bottom: -0.95rem;
	content: "";
	left: calc(1.175rem - 1px);
	position: absolute;
	top: 2.65rem;
}

.fc-quote-steps strong {
	color: var(--wp--preset--color--navy);
	display: block;
	font-size: 1rem;
	font-weight: 800;
	margin-bottom: 0.15rem;
}

/* --- Coordonnées --- */

.fc-quote-detail {
	align-items: center;
	color: var(--wp--preset--color--navy);
	display: flex;
	font-size: 0.95rem;
	font-weight: 700;
	gap: 0.8rem;
	margin: 0.85rem 0 0 !important;
	min-width: 0;
	overflow-wrap: anywhere;
}

.fc-quote-detail::before {
	background-color: var(--wp--preset--color--blue);
	background-position: center;
	background-repeat: no-repeat;
	background-size: 20px 20px;
	border-radius: 50%;
	content: "";
	flex: 0 0 42px;
	height: 42px;
}

.fc-quote-detail--phone::before {
	background-color: var(--wp--preset--color--green);
}

.fc-quote-detail--area::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 24' fill='none'%3E%3Cpath d='M10 22s7-8.2 7-14A7 7 0 1 0 3 8c0 5.8 7 14 7 14Z' stroke='%23fff' stroke-width='2' stroke-linejoin='round'/%3E%3Ccircle cx='10' cy='8' r='2.4' stroke='%23fff' stroke-width='2'/%3E%3C/svg%3E");
}

.fc-quote-detail a {
	align-items: center;
	color: inherit;
	display: inline-flex;
	min-height: 44px;
	min-width: 0;
	text-decoration: none;
}

.fc-quote-detail a:hover {
	color: var(--wp--preset--color--blue);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.fc-quote-detail--phone a {
	font-size: clamp(1.35rem, 2vw, 1.6rem);
	font-weight: 800;
	letter-spacing: 0.01em;
	white-space: nowrap;
}

.fc-quote-tip {
	background: var(--wp--preset--color--sky);
	border: 1px solid var(--wp--custom--color--line);
	border-radius: 14px;
	margin-top: 1.35rem !important;
	padding: 1rem 1.1rem 1rem 3.5rem;
	position: relative;
}

.fc-quote-tip::before {
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230679cf' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 18h6M10 21h4M12 3a6 6 0 0 0-3.5 10.9c.6.5 1 1.2 1 2.1h5c0-.9.4-1.6 1-2.1A6 6 0 0 0 12 3Z'/%3E%3C/svg%3E") center / contain no-repeat;
	content: "";
	height: 26px;
	left: 1.1rem;
	position: absolute;
	top: 1rem;
	width: 26px;
}

.fc-quote-tip > * {
	margin: 0 !important;
}

.fc-quote-tip h3 {
	color: var(--wp--custom--color--blue-strong);
	font-size: 1rem !important;
	font-weight: 800;
}

.fc-quote-tip p {
	color: var(--wp--custom--color--muted-strong);
	font-size: 0.9rem;
	line-height: 1.5;
	margin-top: 0.25rem !important;
}

/* --- Bande de réassurance --- */

.fc-assurance {
	background: linear-gradient(135deg, #effaff 0%, #e8f7fc 100%);
	padding-block: clamp(1.75rem, 3vw, 2.5rem);
}

.fc-assurance-grid {
	gap: 1rem 2rem;
	margin-block: 0;
}

.fc-assurance-item {
	align-items: center;
	column-gap: 0.9rem;
	display: grid;
	grid-template-columns: 56px minmax(0, 1fr);
}

.fc-assurance-item::before {
	background-color: var(--wp--preset--color--white);
	background-position: center;
	background-repeat: no-repeat;
	background-size: 28px 28px;
	border: 1px solid var(--wp--custom--color--line);
	border-radius: 50%;
	box-shadow: 0 5px 14px rgba(5, 61, 110, 0.08);
	content: "";
	grid-column: 1;
	grid-row: 1 / 3;
	height: 56px;
	width: 56px;
}

.fc-assurance-item--home::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230679cf' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11 12 4l9 7'/%3E%3Cpath d='M5.5 9.5V20h13V9.5M10 20v-5h4v5'/%3E%3C/svg%3E");
}

.fc-assurance-item--tools::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230679cf' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3c3 3.6 5 6.4 5 9a5 5 0 0 1-10 0c0-2.6 2-5.4 5-9Z'/%3E%3Cpath d='M10 13.5a2 2 0 0 0 2 2'/%3E%3C/svg%3E");
}

.fc-assurance-item--time::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230679cf' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8.5'/%3E%3Cpath d='M12 7.5V12l3 2'/%3E%3C/svg%3E");
}

.fc-assurance-item p {
	color: var(--wp--custom--color--muted-strong);
	font-size: 0.92rem;
	grid-column: 2;
	line-height: 1.4;
	margin: 0;
}

.fc-assurance-item .fc-assurance-title {
	align-self: end;
	color: var(--wp--preset--color--navy);
	font-size: 1.02rem;
	font-weight: 800;
}

.fc-assurance-item .fc-assurance-title + p {
	align-self: start;
}

/* --- FAQ : blocs Détails natifs (accordéon accessible sans JavaScript) --- */

.fc-faq-section {
	padding-block: clamp(2.5rem, 4.5vw, 3.5rem);
}

.fc-faq-section .fc-faq-list {
	display: grid;
	gap: 0.75rem;
	margin-top: clamp(1.5rem, 3vw, 2.25rem);
}

.fc-faq-list > .fc-faq-item {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--custom--color--line);
	border-radius: 14px;
	box-shadow: 0 5px 18px rgba(5, 61, 110, 0.05);
	margin: 0;
	transition: border-color 200ms ease, box-shadow 200ms ease;
}

.fc-faq-item[open] {
	border-color: #bee5f5;
	box-shadow: 0 10px 24px rgba(6, 60, 117, 0.08);
}

.fc-faq-item summary {
	align-items: center;
	border-radius: 14px;
	box-sizing: border-box;
	color: var(--wp--preset--color--navy);
	cursor: pointer;
	display: flex;
	font-size: 1.02rem;
	font-weight: 800;
	gap: 1rem;
	justify-content: space-between;
	line-height: 1.35;
	list-style: none;
	min-height: 56px;
	padding: 0.9rem 1.25rem;
}

.fc-faq-item summary::-webkit-details-marker {
	display: none;
}

.fc-faq-item summary::after {
	align-items: center;
	background: var(--wp--preset--color--sky);
	border-radius: 50%;
	color: var(--wp--custom--color--blue-strong);
	content: "+";
	content: "+" / "";
	display: inline-flex;
	flex: 0 0 30px;
	font-size: 1.25rem;
	font-weight: 700;
	height: 30px;
	justify-content: center;
	line-height: 1;
	transition: transform 200ms ease;
}

.fc-faq-item[open] summary::after {
	transform: rotate(45deg);
}

.fc-faq-item summary:hover {
	color: var(--wp--custom--color--blue-strong);
}

.fc-faq-item summary:focus-visible {
	outline: 3px solid var(--wp--preset--color--blue);
	outline-offset: -3px;
}

.fc-faq-item > :not(summary) {
	color: var(--wp--custom--color--muted-strong);
	font-size: 0.95rem;
	margin: 0;
	padding: 0 1.25rem 1.15rem;
}

/* --- CTA final --- */

.fc-quote-cta-section {
	padding-block: 0 clamp(2.5rem, 4.5vw, 4rem);
}

.fc-quote-cta {
	align-items: center;
	background: linear-gradient(120deg, #042f5d 0%, var(--wp--preset--color--navy) 60%, #075fa6 100%);
	border-radius: 22px;
	box-shadow: 0 18px 40px rgba(6, 60, 117, 0.18);
	box-sizing: border-box;
	display: flex;
	flex-wrap: wrap;
	gap: 1.25rem 2rem;
	justify-content: space-between;
	padding: clamp(1.75rem, 3.5vw, 2.75rem) clamp(1.5rem, 4vw, 3.25rem);
}

.fc-quote-cta-intro {
	flex: 1 1 420px;
	min-width: 0;
}

.fc-quote-cta-intro h2 {
	font-size: clamp(1.6rem, 2.4vw, 2.1rem);
	margin: 0;
}

.fc-quote-cta-intro p {
	color: var(--wp--custom--color--ice-pale);
	margin: 0.5rem 0 0 !important;
	max-width: 56ch;
}

.fc-quote-cta .fc-contact-links .wp-block-button__link {
	font-size: 1rem;
	min-height: 52px;
	padding: 0.85rem 1.5rem;
}

.fc-quote-cta-button .wp-block-button__link {
	box-shadow: 0 6px 16px rgba(0, 20, 50, 0.25);
}

/* --- Formulaire Forminator ---
   Le formulaire reste administré dans Forminator (shortcode du groupe
   .fc-quote-form). Portée limitée à la carte #demande-de-devis : l'ID du
   préfixe surclasse, sans !important, la feuille propre à chaque formulaire
   que Forminator génère avec des sélecteurs à ID (#forminator-module-N).
   Seules les classes du balisage Forminator sont ciblées. */

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form {
	/* Densité : champs de 44 px (46 px et texte de 16 px sur mobile, voir <= 781 px). */
	--fc-field-h: 44px;
	--fc-field-pad: 0.5rem 0.85rem;
	--fc-field-font: 0.95rem;
	--fc-choice-h: 44px;
	--fc-row-gap: 18px;
	margin: 0;
}

/* Écart entre les lignes du formulaire (Forminator : 30 px au-delà de 782 px, 20 px sinon). */
#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form[data-grid="open"] .forminator-row:not(:last-child) {
	margin-bottom: var(--fc-row-gap);
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form :is(.forminator-label, .forminator-input, .forminator-textarea, .forminator-description, .forminator-error-message, .forminator-checkbox-label, .forminator-radio-label, .forminator-consent__label, .forminator-multi-upload-message, .forminator-file-upload, .forminator-button, .forminator-response-message) {
	font-family: inherit;
	letter-spacing: normal;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-label {
	color: var(--wp--preset--color--navy);
	font-size: 0.875rem;
	font-weight: 700;
	line-height: 1.3;
	margin-bottom: 0.3rem;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-required {
	color: #b42f2f;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-description {
	color: var(--wp--custom--color--muted);
	font-size: 0.85rem;
	line-height: 1.45;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-label + .forminator-description {
	margin: -0.2rem 0 0.6rem;
}

/* Champs texte, email, téléphone, zone de texte et liste déroulante (Select2). */
#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form :is(.forminator-input, .forminator-textarea, .select2-selection--single) {
	background-color: var(--wp--preset--color--white);
	/* Bleu-gris léger, contraste 3:1 sur fond blanc (contour de champ, WCAG 1.4.11). */
	border: 1px solid #7b98af;
	border-radius: 11px;
	box-shadow: none;
	color: var(--wp--preset--color--dark);
	font-size: var(--fc-field-font);
	font-weight: 500;
	line-height: 1.35;
	min-height: var(--fc-field-h);
	padding: var(--fc-field-pad);
	transition: border-color 180ms ease, box-shadow 180ms ease;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-textarea {
	height: 6.25rem;
	/* Forminator pose min-height: 140px en style en ligne sur la zone de texte : seule une
	   déclaration prioritaire le surclasse (unique exception du formulaire, limitée à cette
	   propriété). */
	min-height: 5.5rem !important;
	resize: vertical;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .select2-selection--single {
	align-items: center;
	display: flex;
	padding-right: 2.75rem;
	position: relative;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .select2-selection--single .select2-selection__rendered {
	color: inherit;
	padding: 0;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .select2-selection--single .select2-selection__arrow {
	color: var(--wp--preset--color--blue);
	position: absolute;
	right: 1rem;
	top: 50%;
	transform: translateY(-50%);
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form :is(.forminator-input, .forminator-textarea)::placeholder {
	color: #5d7890;
	opacity: 1;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-field :is(.forminator-input, .forminator-textarea, .select2-selection--single):hover {
	border-color: #4f86ad;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-field :is(.forminator-input, .forminator-textarea):focus,
#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-field :is(.select2-container--focus, .select2-container--open) .select2-selection--single {
	border-color: var(--wp--preset--color--blue);
	box-shadow: 0 0 0 1px var(--wp--preset--color--blue), 0 0 0 5px rgba(7, 136, 209, 0.16);
	outline: none;
}

/* Erreurs : bordure rouge et message texte avec pictogramme (pas uniquement la couleur). */
#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-field.forminator-has_error :is(.forminator-input, .forminator-textarea, .select2-selection--single) {
	border-color: #b42f2f;
	box-shadow: 0 0 0 3px rgba(180, 47, 47, 0.1);
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-error-message {
	background: none;
	color: #b42f2f;
	font-size: 0.82rem;
	font-weight: 700;
	line-height: 1.4;
	margin-top: 0.3rem;
	padding: 0 0 0 1.4rem;
	position: relative;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-error-message::before {
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b42f2f' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7.5v5.5M12 16.5v.01'/%3E%3C/svg%3E") center / contain no-repeat;
	content: "";
	height: 1rem;
	left: 0;
	position: absolute;
	top: 0.1rem;
	width: 1rem;
}

/* Cartes de choix : prestations (cases à cocher avec image) et préférence de contact (radios).
   L'input natif reste dans le DOM, masqué visuellement par Forminator ; toute la carte est cliquable. */
#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-field:has(> .forminator-checkbox),
#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-field:has(> .forminator-radio:not(.forminator-has_image)) {
	display: grid;
	gap: 0.6rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-field:has(> .forminator-checkbox) > :not(label),
#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-field:has(> .forminator-radio:not(.forminator-has_image)) > :not(label) {
	grid-column: 1 / -1;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form :is(.forminator-checkbox:not(.forminator-consent), .forminator-radio:not(.forminator-has_image)) {
	align-items: center;
	background: var(--wp--preset--color--white);
	border: 1px solid #b9dcef;
	border-radius: 12px;
	box-sizing: border-box;
	cursor: pointer;
	display: flex;
	gap: 0.7rem;
	margin: 0;
	min-height: var(--fc-choice-h);
	min-width: 0;
	padding: 0.45rem 0.8rem;
	pointer-events: auto;
	position: relative;
	transition: border-color 180ms ease, background-color 180ms ease, box-shadow 180ms ease;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form :is(.forminator-checkbox:not(.forminator-consent), .forminator-radio:not(.forminator-has_image)):hover {
	background: var(--wp--custom--color--surface);
	border-color: #6fb3dd;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form :is(.forminator-checkbox:not(.forminator-consent), .forminator-radio:not(.forminator-has_image)):has(input:checked) {
	background: var(--wp--preset--color--sky);
	border-color: var(--wp--preset--color--blue);
	box-shadow: inset 0 0 0 1px var(--wp--preset--color--blue);
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form :is(.forminator-checkbox, .forminator-radio):has(input:focus-visible) {
	outline: 3px solid var(--wp--preset--color--blue);
	outline-offset: 2px;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form :is(.forminator-checkbox-label, .forminator-radio-label) {
	color: var(--wp--preset--color--navy);
	flex: 1 1 auto;
	font-size: 0.95rem;
	font-weight: 700;
	hyphens: manual;
	line-height: 1.25;
	margin: 0;
	min-width: 0;
	overflow-wrap: normal;
	word-break: normal;
}

/* Prestations : image à gauche, badge de sélection en haut à droite. */
#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-checkbox.forminator-has_image {
	gap: 0.65rem;
	min-height: 66px;
	padding-right: 1.6rem;
}

/* Conteneur de l'image transparent (Forminator lui donne un fond et une bordure) :
   l'image fournie dans Forminator s'affiche entière, sans carte interne. */
#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-checkbox.forminator-has_image .forminator-checkbox-image {
	background: none;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	flex: 0 0 46px;
	height: 46px;
	margin: 0;
	order: 1;
	padding: 0;
	position: static;
	width: 46px;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-checkbox.forminator-has_image .forminator-checkbox-image > * {
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	display: block;
	height: 100%;
	object-fit: contain;
	width: 100%;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-checkbox.forminator-has_image .forminator-checkbox-label {
	font-size: 0.9rem;
	order: 2;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-checkbox.forminator-has_image .forminator-checkbox-box {
	background: var(--wp--preset--color--blue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 14px 14px no-repeat;
	border: 2px solid var(--wp--preset--color--white);
	border-radius: 50%;
	box-shadow: 0 2px 6px rgba(6, 60, 117, 0.25);
	height: 24px;
	margin: 0;
	opacity: 0;
	position: absolute;
	right: 0.45rem;
	top: 0.45rem;
	transform: scale(0.6);
	transition: opacity 160ms ease, transform 160ms ease;
	width: 24px;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-checkbox.forminator-has_image input:checked + .forminator-checkbox-box {
	opacity: 1;
	transform: none;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-checkbox .forminator-checkbox-box::before {
	content: none;
}

/* Préférence de contact : icône à gauche, puce de sélection à droite.
   Icône déduite du libellé (téléphone, e-mail), trois points sinon. */
#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-radio:not(.forminator-has_image)::before {
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%230788d1'%3E%3Ccircle cx='5' cy='12' r='2.2'/%3E%3Ccircle cx='12' cy='12' r='2.2'/%3E%3Ccircle cx='19' cy='12' r='2.2'/%3E%3C/svg%3E") center / contain no-repeat;
	content: "";
	flex: 0 0 20px;
	height: 20px;
	order: 1;
	width: 20px;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-radio:not(.forminator-has_image)[title*="phone" i]::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230788d1' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6.6 3.5h2.8l1.4 4.2-2 1.3a12 12 0 0 0 6.2 6.2l1.3-2 4.2 1.4v2.8a2 2 0 0 1-2.1 2A16.5 16.5 0 0 1 4.6 5.6a2 2 0 0 1 2-2.1Z'/%3E%3C/svg%3E");
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-radio:not(.forminator-has_image)[title*="mail" i]::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230788d1' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5.5' width='18' height='13' rx='2'/%3E%3Cpath d='m4 7 8 6 8-6'/%3E%3C/svg%3E");
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-radio:not(.forminator-has_image) .forminator-radio-label {
	order: 2;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-radio:not(.forminator-has_image) .forminator-radio-bullet {
	background: var(--wp--preset--color--white);
	border: 2px solid #7b98af;
	height: 20px;
	margin: 0;
	order: 3;
	width: 20px;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-radio input:checked + .forminator-radio-bullet {
	border-color: var(--wp--preset--color--blue);
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-radio .forminator-radio-bullet::before {
	background: var(--wp--preset--color--blue);
	height: 10px;
	width: 10px;
}

/* Cases à cocher sans image (cartes compactes) et consentement (sans carte) : case visible. */
#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-checkbox:not(.forminator-has_image) .forminator-checkbox-box {
	background: var(--wp--preset--color--white) center / 14px 14px no-repeat;
	border: 2px solid #7b98af;
	border-radius: 6px;
	flex: 0 0 22px;
	margin: 0;
	height: 22px;
	width: 22px;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-checkbox:not(.forminator-has_image) input:checked + .forminator-checkbox-box {
	background-color: var(--wp--preset--color--blue);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E");
	border-color: var(--wp--preset--color--blue);
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-checkbox__wrapper {
	align-items: flex-start;
	gap: 0.7rem;
}

/* Zone de clic de 44 px autour de la case de consentement, sans changer son rendu. */
#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-consent {
	cursor: pointer;
	margin: -11px;
	padding: 11px;
	pointer-events: auto;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-consent__label {
	color: var(--wp--custom--color--muted-strong);
	flex: 1 1 auto;
	font-size: 0.9rem;
	/* Première ligne (22 px) à la hauteur de la case. */
	line-height: 22px;
	margin: 0;
	min-width: 0;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-consent__label > * {
	margin: 0;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-consent__label > * + * {
	margin-top: 0.5rem;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-consent__label a {
	color: var(--wp--custom--color--blue-strong);
	font-weight: 700;
	text-decoration: underline;
}

/* Envoi de photos : envoi multiple (glisser-déposer) ou fichier unique. */
#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form :is(.forminator-multi-upload, .forminator-file-upload) {
	align-items: center;
	background: var(--wp--custom--color--surface);
	border: 2px dashed #8ccbec;
	border-radius: 12px;
	box-sizing: border-box;
	color: var(--wp--custom--color--muted-strong);
	cursor: pointer;
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	justify-content: center;
	min-height: 96px;
	padding: 0.85rem 1.1rem;
	text-align: center;
	transition: border-color 180ms ease, background-color 180ms ease;
	width: 100%;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form :is(.forminator-multi-upload, .forminator-file-upload):hover {
	background: var(--wp--preset--color--sky);
	border-color: var(--wp--preset--color--blue);
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form :is(.forminator-multi-upload, .forminator-file-upload):focus-within {
	outline: 3px solid var(--wp--preset--color--blue);
	outline-offset: 3px;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-multi-upload-message [class*="forminator-icon-"],
#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-file-upload::before {
	background: var(--wp--preset--color--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230788d1' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 16V4M7 9l5-5 5 5M4 16v3a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1v-3'/%3E%3C/svg%3E") center / 21px 21px no-repeat;
	border-radius: 50%;
	box-shadow: 0 4px 12px rgba(6, 60, 117, 0.1);
	content: "";
	display: block;
	height: 40px;
	margin: 0 auto;
	width: 40px;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-multi-upload-message [class*="forminator-icon-"]::before {
	content: none;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-multi-upload-message {
	align-items: center;
	display: flex;
	gap: 0.75rem;
	justify-content: center;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-multi-upload-message p {
	color: var(--wp--custom--color--muted-strong);
	font-size: 0.92rem;
	font-weight: 600;
	line-height: 1.45;
	margin: 0;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-multi-upload-message p a {
	color: var(--wp--custom--color--blue-strong);
	font-weight: 800;
	text-decoration: underline;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-file-upload > span {
	color: var(--wp--custom--color--muted);
	font-size: 0.88rem;
	margin: 0;
	max-width: 100%;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-file-upload .forminator-button {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--blue);
	border-radius: 999px;
	color: var(--wp--custom--color--blue-strong);
	font-size: 0.95rem;
	font-weight: 800;
	margin: 0;
	min-height: 44px;
	padding: 0.6rem 1.25rem;
	width: auto;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-multi-upload.forminator-dragover {
	background: var(--wp--preset--color--sky);
	border-color: var(--wp--preset--color--blue);
	border-style: solid;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-uploaded-files {
	display: grid;
	gap: 0.5rem;
	margin-top: 0.75rem;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-uploaded-files .forminator-uploaded-file {
	background: var(--wp--preset--color--white);
	border: 1px solid #d3e8f4;
	border-radius: 10px;
	margin: 0;
	padding: 0.55rem 0.75rem;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-uploaded-files .forminator-uploaded-file--text {
	color: var(--wp--preset--color--navy);
	font-size: 0.9rem;
	font-weight: 600;
}

/* Bouton d'envoi. */
#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-button-submit {
	align-items: center;
	background: linear-gradient(180deg, #92da00 0%, #3caf00 55%, #168d00 100%);
	border: 0;
	border-radius: 999px;
	box-shadow: 0 6px 16px rgba(34, 125, 0, 0.18);
	color: var(--wp--preset--color--white);
	display: flex;
	font-size: 1.05rem;
	font-weight: 800;
	gap: 0.6rem;
	justify-content: center;
	line-height: 1.2;
	/* CTA aligné à gauche, sans traverser toute la carte : 560 px au plus (600 px en
	   tablette, pleine largeur sur mobile, <= 600 px). */
	margin: 0.25rem 0 0;
	min-height: 50px;
	padding: 0.75rem 2rem;
	transition: transform 200ms ease, filter 200ms ease, box-shadow 200ms ease;
	width: min(100%, 560px);
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-button-submit::after {
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 3 10 14M21 3l-7 18-4-7-7-4 18-7Z'/%3E%3C/svg%3E") center / contain no-repeat;
	content: "";
	flex: 0 0 18px;
	height: 18px;
	width: 18px;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-button-submit:hover {
	background: linear-gradient(180deg, #6fc000 0%, var(--wp--preset--color--dark-green) 100%);
	box-shadow: 0 10px 24px rgba(34, 125, 0, 0.22);
	color: var(--wp--preset--color--white);
	transform: translateY(-2px);
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-button-submit:focus-visible {
	outline: 3px solid var(--wp--preset--color--navy);
	outline-offset: 3px;
}

/* Envoi en cours ou bouton désactivé : texte conservé, rendu atténué. */
#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-button-submit:is(.forminator-button-onload, .forminator-onload, :disabled) {
	cursor: progress;
	filter: saturate(0.55);
	opacity: 0.8;
	transform: none;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-response-message {
	border-radius: 12px;
	font-size: 0.95rem;
	line-height: 1.5;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-response-message.forminator-error {
	background: #fff3f2;
	border: 1px solid #efc4bf;
	color: #8c2a22;
	font-weight: 600;
	padding: 0.85rem 1.1rem;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-response-message.forminator-success {
	background: #f0faea;
	border: 1px solid #bfe3ad;
	color: #1f6b10;
	font-weight: 600;
	padding: 0.85rem 1.1rem;
}

/* --- Formulaire : listes déroulantes Select2, groupes conditionnels et répétitions ---
   Forminator 1.40 rend chaque liste avec Select2 : le <select> natif reste dans le DOM
   (masqué, accessible) et un combobox Select2 l'affiche ; le menu ouvert est ajouté en fin
   de <body> (.forminator-select-dropdown.forminator-custom-form-12). Les sélecteurs
   reprennent la chaîne de style-40.css pour la surclasser (spécificité supérieure). */

/* Liste fermée : même identité que les champs texte. */
#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-select2 + .forminator-select .selection .select2-selection--single[role="combobox"] {
	background-color: var(--wp--preset--color--white);
	border-color: #7b98af;
	cursor: pointer;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-select2 + .forminator-select .selection .select2-selection--single[role="combobox"]:hover {
	background-color: var(--wp--preset--color--white);
	border-color: #4f86ad;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-select2 + .forminator-select .selection .select2-selection--single[role="combobox"] .select2-selection__rendered {
	color: var(--wp--preset--color--dark);
	font-size: var(--fc-field-font);
	font-weight: 500;
	line-height: 1.35;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-select2 + .forminator-select .selection .select2-selection--single[role="combobox"] .select2-selection__placeholder {
	color: #5d7890;
	font-weight: 500;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-select2 + .forminator-select .selection .select2-selection--single[role="combobox"] .select2-selection__arrow,
#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-select2 + .forminator-select .selection .select2-selection--single[role="combobox"]:hover .select2-selection__arrow {
	color: var(--wp--preset--color--blue);
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-select2 + .forminator-select.select2-container--open .selection .select2-selection--single[role="combobox"] {
	background-color: var(--wp--preset--color--white);
	border-color: var(--wp--preset--color--blue);
	box-shadow: 0 0 0 1px var(--wp--preset--color--blue), 0 0 0 5px rgba(7, 136, 209, 0.16);
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-field.forminator-has_error .forminator-select2 + .forminator-select .selection .select2-selection--single[role="combobox"] {
	border-color: #b42f2f;
}

/* Menu ouvert : panneau blanc, options confortables, survol bleu très clair, option choisie
   marquée par une coche (pas seulement par la couleur). */
.forminator-select-dropdown-container--open .forminator-select-dropdown.forminator-custom-form-12.forminator-dropdown--default {
	background-color: var(--wp--preset--color--white);
	border: 1px solid #b6daef;
	border-radius: 12px;
	box-shadow: 0 16px 34px rgba(6, 60, 117, 0.14);
	overflow: hidden;
	padding: 0.35rem;
}

.forminator-select-dropdown-container--open .forminator-select-dropdown.forminator-custom-form-12.forminator-dropdown--default.forminator-select-dropdown--below {
	margin-top: 0.4rem;
}

.forminator-select-dropdown-container--open .forminator-select-dropdown.forminator-custom-form-12.forminator-dropdown--default.forminator-select-dropdown--above {
	margin-top: -0.4rem;
}

.forminator-select-dropdown-container--open .forminator-select-dropdown.forminator-custom-form-12.forminator-dropdown--default .select2-results .select2-results__options {
	max-height: 336px;
	overflow-y: auto;
}

.forminator-select-dropdown-container--open .forminator-select-dropdown.forminator-custom-form-12.forminator-dropdown--default .select2-results .select2-results__options .select2-results__option {
	border-radius: 8px;
	color: var(--wp--preset--color--dark);
	font-family: inherit;
	font-size: 0.95rem;
	font-weight: 500;
	line-height: 1.35;
	padding: 0.65rem 2.25rem 0.65rem 0.8rem;
	position: relative;
}

.forminator-select-dropdown-container--open .forminator-select-dropdown.forminator-custom-form-12.forminator-dropdown--default .select2-results .select2-results__options .select2-results__option:not(.select2-results__option--selected).select2-results__option--highlighted {
	background-color: var(--wp--preset--color--sky);
	color: var(--wp--preset--color--navy);
}

.forminator-select-dropdown-container--open .forminator-select-dropdown.forminator-custom-form-12.forminator-dropdown--default .select2-results .select2-results__options .select2-results__option.select2-results__option--selected {
	background-color: #dcf0fb;
	color: var(--wp--preset--color--navy);
	font-weight: 700;
}

.forminator-select-dropdown-container--open .forminator-select-dropdown.forminator-custom-form-12.forminator-dropdown--default .select2-results .select2-results__options .select2-results__option.select2-results__option--selected::after {
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23006cb5' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / contain no-repeat;
	content: "";
	height: 16px;
	position: absolute;
	right: 0.8rem;
	top: 50%;
	transform: translateY(-50%);
	width: 16px;
}

/* Groupe conditionnel (une prestation) : bloc de configuration à bordure douce, titre marqué
   d'un trait bleu ; pas de fond gris plein. */
#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-field-group {
	background: linear-gradient(180deg, #f6fbfe 0, var(--wp--preset--color--white) 5.5rem);
	border: 1px solid #d3e8f4;
	border-radius: 14px;
	box-sizing: border-box;
	padding: 0.8rem 1rem 0.95rem;
}

/* Au-delà de 781 px, la grille de Forminator a une gouttière de 15 px : le bloc s'aligne sur
   les champs voisins au lieu de déborder dans la gouttière. */
@media (min-width: 782px) {
	#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-row > .forminator-field-group {
		margin-inline: 15px;
	}
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-field-group > .forminator-repeater-label {
	align-items: center;
	color: var(--wp--preset--color--navy);
	display: flex;
	font-size: 0.95rem;
	font-weight: 800;
	gap: 0.55rem;
	margin: 0;
	padding-bottom: 0.55rem;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-field-group > .forminator-repeater-label::before {
	background: var(--wp--preset--color--blue);
	border-radius: 2px;
	content: "";
	flex: 0 0 4px;
	height: 1.1em;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-repeater-field {
	background: none;
	box-shadow: none;
	container: fc-quote-group / inline-size;
	margin: 0;
	padding: 0;
}

/* Une répétition (un objet) : champs, puis ligne d'actions en pied de l'objet (« Retirer » à
   droite ; « Ajouter » à gauche, sur la dernière copie seulement). L'ordre visuel suit
   l'ordre du DOM, donc celui de la tabulation. */
#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-repeater-field .forminator-grouped-fields {
	border: 0;
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
	margin: 0;
	padding: 0;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-repeater-field .forminator-grouped-fields + .forminator-grouped-fields {
	border-top: 1px dashed #b9d7ea;
	margin-top: 0.75rem;
	padding-top: 0.75rem;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-repeater-field .forminator-grouped-fields > .forminator-row {
	margin: 0;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-repeater-field .forminator-grouped-fields > .forminator-action-buttons {
	display: block;
	margin: 0;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-repeater-field .forminator-grouped-fields > .forminator-action-buttons > .forminator-col {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem 0.75rem;
	padding: 0;
	width: 100%;
}

/* Champs d'un objet : Type et Matière larges, Quantité plus étroite (40 / 40 / 20) ; deux
   champs : 70 / 30. La grille suit la largeur réelle du groupe (requêtes de conteneur). */
#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-repeater-field .forminator-grouped-fields > .forminator-row:not(.forminator-action-buttons) {
	display: grid;
	gap: 0.6rem 0.85rem;
	grid-template-columns: minmax(0, 2fr) minmax(0, 2fr) minmax(0, 1fr);
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-repeater-field .forminator-grouped-fields > .forminator-row:has(> .forminator-col-6):not(.forminator-action-buttons) {
	grid-template-columns: minmax(0, 7fr) minmax(0, 3fr);
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-repeater-field .forminator-grouped-fields > .forminator-row:not(.forminator-action-buttons) > .forminator-col {
	margin: 0;
	max-width: none;
	min-width: 0;
	padding: 0;
	width: auto;
}

@container fc-quote-group (max-width: 660px) {
	#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-repeater-field .forminator-grouped-fields > .forminator-row:not(.forminator-action-buttons) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-repeater-field .forminator-grouped-fields > .forminator-row:has(> .forminator-col-6):not(.forminator-action-buttons) {
		grid-template-columns: minmax(0, 7fr) minmax(0, 3fr);
	}
}

@container fc-quote-group (max-width: 520px) {
	#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-repeater-field .forminator-grouped-fields > .forminator-row:not(.forminator-action-buttons),
	#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-repeater-field .forminator-grouped-fields > .forminator-row:has(> .forminator-col-6):not(.forminator-action-buttons) {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Boutons Ajouter / Retirer (<input type="button"> de Forminator : symbole en image de fond). */
#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-repeater-field .forminator-repeater-action-button {
	background: var(--wp--preset--color--sky) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23006cb5' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") 0.7rem center / 14px 14px no-repeat;
	border: 1px solid #b6daef;
	border-radius: 10px;
	color: var(--wp--preset--color--navy);
	cursor: pointer;
	font-family: inherit;
	font-size: 0.8125rem;
	font-weight: 650;
	line-height: 1.2;
	margin: 0;
	min-height: var(--fc-action-h, 34px);
	padding: 0.35rem 0.8rem 0.35rem 1.95rem;
	transition: background-color 180ms ease, border-color 180ms ease;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-repeater-field .forminator-repeater-action-button:hover {
	background-color: #dcf0fb;
	border-color: var(--wp--preset--color--blue);
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-repeater-field .forminator-repeater-action-button:focus-visible {
	outline: 3px solid var(--wp--preset--color--blue);
	outline-offset: 2px;
}

/* « Ajouter » une seule fois, après la dernière copie. Forminator fixe son display en style
   en ligne : le bouton des copies précédentes est retiré de l'affichage et du parcours clavier
   par visibility (il ajouterait de toute façon une copie au même groupe). */
#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-repeater-field .forminator-grouped-fields:not(:last-child) .forminator-repeater-add {
	position: absolute;
	visibility: hidden;
}

/* Première copie suivie d'autres : rien à y afficher (pas de « Retirer », « Ajouter » en fin
   de liste), sa ligne d'actions ne crée pas d'espace vide. */
#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-repeater-field .forminator-grouped-fields:first-child:not(:last-child) > .forminator-action-buttons {
	display: none;
}

/* « Retirer » : en pied de l'objet concerné, à droite, rouge brique discret. */
#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-repeater-field .forminator-repeater-action-button.forminator-repeater-remove {
	background-color: #fff4f3;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a33a2f' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M5 12h14'/%3E%3C/svg%3E");
	border-color: #efc4bf;
	color: #9c2f25;
	margin-left: auto;
}

#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-repeater-field .forminator-repeater-action-button.forminator-repeater-remove:hover {
	background-color: #ffe9e6;
	border-color: #c9584c;
}


/* ==========================================================================
   17. Pages Prestation (modèle : Nettoyage de canapés)
   ========================================================================== */

/* Classes génériques fc-service-* : une future prestation ne change que ses
   textes, images et icônes. Fond de page blanc ; seules la bande des bénéfices
   (pleine largeur) et la carte des types (arrondie) sont en bleu très clair. */
.fc-service-page > .wp-block-group {
	margin-block: 0;
}

/* Rythme vertical unique : chaque section après la bande des bénéfices ouvre par le
   même espace ; seul le CTA final le répète en bas avant le pied de page. */
.fc-service-page {
	--fc-service-gap: clamp(3rem, 5vw, 4.5rem);
}

/* Sur-titres en bleu foncé : contraste AA aussi sur le bleu très clair. */
.fc-service-page .fc-eyebrow {
	color: var(--wp--custom--color--blue-strong);
}

/* --- Icônes : SVG en ligne décoratifs, pastille bleu très clair --- */

.fc-service-picto {
	align-items: center;
	background: var(--wp--preset--color--sky);
	border-radius: 50%;
	box-sizing: border-box;
	color: var(--wp--custom--color--blue-strong);
	display: inline-flex;
	flex: 0 0 auto;
	height: 52px;
	justify-content: center;
	width: 52px;
}

.fc-service-picto svg {
	display: block;
	height: 26px;
	width: 26px;
}

.fc-service-picto--small {
	height: 44px;
	width: 44px;
}

.fc-service-picto--small svg {
	height: 22px;
	width: 22px;
}

.fc-service-picto--large {
	height: 76px;
	width: 76px;
}

.fc-service-picto--large svg {
	height: 34px;
	width: 34px;
}

/* --- Hero : carte à la largeur de la grille, comme le hero de la page Contact (même
   largeur, même rayon, même marge sous l'en-tête). Texte à gauche, photo à droite : la
   photo est ancrée au bord droit de la carte et sa zone blanche de gauche (fondu prévu
   pour le texte) se fond dans le fond blanc de la carte, un voile blanc adoucissant le
   bord. Le badge et la flèche font partie de l'image. Côte à côte dès 960 px, empilé
   (texte puis photo bord à bord de la carte) en dessous. La section elle-même est la
   carte : une page enregistrée avant la 1.11.0 prend le nouveau rendu sans être modifiée. --- */

.fc-service-page {
	--fc-service-radius: 22px;
}

/* Spécificité renforcée : prime sur les marges du groupe de page et le padding global. */
.fc-service-page > .fc-service-hero {
	/* Colonne de texte (en % de la zone utile), largeur de la photo (en % de la carte),
	   cadrage horizontal de la photo (badge et sujet du côté droit). */
	--fc-hero-text: 46%;
	--fc-hero-media: 60%;
	--fc-hero-focus: 100%;
	background:
		radial-gradient(52% 85% at 0% 0%, #eef8fe 0%, rgba(238, 248, 254, 0) 72%),
		var(--wp--preset--color--white);
	border: 1px solid var(--wp--custom--color--line);
	border-radius: var(--fc-service-radius);
	box-shadow: 0 18px 44px rgba(6, 60, 117, 0.07);
	box-sizing: border-box;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	isolation: isolate;
	margin: clamp(1rem, 2.5vw, 2rem) auto 0;
	max-width: none;
	min-height: clamp(460px, 36vw, 530px);
	overflow: hidden;
	padding: 0;
	position: relative;
	width: min(100% - var(--wp--style--root--padding-left, 1rem) - var(--wp--style--root--padding-right, 1rem), var(--wp--custom--layout--section));
}

/* Toute la largeur de la carte (les marges automatiques de la mise en page « constrained »
   n'ont ainsi aucun effet) ; la colonne de texte est bornée par ses enfants. */
.fc-service-hero > .fc-service-hero-content {
	align-self: center;
	box-sizing: border-box;
	max-width: none;
	padding: clamp(2.25rem, 4vw, 3.5rem) clamp(1.5rem, 4vw, 3.5rem);
	position: relative;
	width: 100%;
	z-index: 1;
}

.fc-service-hero-content > * {
	margin-block: 0;
	max-width: var(--fc-hero-text);
}

/* Fil d'Ariane discret : Accueil › prestation. */
.fc-service-trail ol {
	color: var(--wp--custom--color--muted);
	display: flex;
	flex-wrap: wrap;
	font-size: 0.85rem;
	gap: 0.15rem 0.45rem;
	line-height: 1.4;
	list-style: none;
	margin: 0 0 clamp(0.9rem, 1.6vw, 1.25rem);
	padding: 0;
}

.fc-service-trail li + li::before {
	color: #8fb0c6;
	content: "›";
	margin-right: 0.45rem;
}

.fc-service-trail a {
	color: inherit;
	text-decoration: none;
	text-underline-offset: 0.2em;
}

.fc-service-trail a:hover,
.fc-service-trail a:focus-visible {
	color: var(--wp--custom--color--blue-strong);
	text-decoration: underline;
}

.fc-service-trail [aria-current] {
	color: var(--wp--preset--color--navy);
	font-weight: 600;
}

/* Taille fluide multipliée par --fc-hero-title-scale (1 par défaut) : un titre plus long
   que celui de Canapé (fc-service-title--long, page Matelas) garde ses trois lignes. */
.fc-service-hero h1 {
	font-size: calc(clamp(1.85rem, 0.9rem + 3.2vw, 3.25rem) * var(--fc-hero-title-scale, 1));
	letter-spacing: -0.01em;
	line-height: 1.08;
	margin-block: 0 1.1rem;
	/* Trois lignes imposées par le texte : le titre peut déborder un peu sur le fondu blanc. */
	max-width: none;
}

/* « Nettoyage de / matelas à domicile / en Seine-et-Marne (77) » : environ 14 % plus long. */
.fc-service-hero h1.fc-service-title--long {
	--fc-hero-title-scale: 0.88;
}

/* Bleu de la marque (et non le cyan du hero de l'accueil) : contraste suffisant sur blanc. */
.fc-service-hero .fc-hero-accent {
	color: var(--wp--preset--color--blue);
}

.fc-service-hero .fc-lead {
	color: var(--wp--custom--color--muted-strong);
	font-size: clamp(1rem, 1.25vw, 1.1rem);
	line-height: 1.62;
	margin: 0;
}

.fc-service-hero .fc-lead,
.fc-service-hero-actions {
	max-width: min(var(--fc-hero-text), 31rem);
}

.fc-service-hero-actions {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 1rem 1.5rem;
	margin-top: clamp(1.5rem, 2.4vw, 2rem) !important;
}

.fc-service-hero-actions > *,
.fc-service-response > * {
	margin: 0;
}

.fc-service-response {
	align-items: center;
	display: flex;
	gap: 0.75rem;
}

.fc-service-response p {
	color: var(--wp--custom--color--muted);
	font-size: 0.92rem;
	line-height: 1.35;
}

.fc-service-response strong {
	color: var(--wp--preset--color--navy);
	font-weight: 800;
}

/* Photo ancrée à droite, sur toute la hauteur de la carte (position absolue : les marges
   automatiques de la mise en page ne la recentrent pas). Aucun arrondi propre : seule la
   carte est arrondie. */
.fc-service-hero > .fc-service-hero-media {
	bottom: 0;
	margin: 0;
	max-width: none;
	position: absolute;
	right: 0;
	top: 0;
	width: var(--fc-hero-media);
	z-index: 0;
}

/* Spécificité renforcée : prime sur la hauteur automatique du bloc Image. 2 px de plus en
   hauteur : la dernière ligne de la photo Canapé (liseré clair) sort du cadre. */
.fc-service-hero > .fc-service-hero-media img {
	display: block;
	height: calc(100% + 2px);
	object-fit: cover;
	object-position: var(--fc-hero-focus) 0%;
	width: 100%;
}

/* Fusion douce : le bord gauche de la photo se fond dans le blanc de la carte. */
.fc-service-hero > .fc-service-hero-media::after {
	background: linear-gradient(90deg, var(--wp--preset--color--white) 0%, rgba(255, 255, 255, 0.85) 8%, rgba(255, 255, 255, 0.4) 20%, rgba(255, 255, 255, 0) 32%);
	content: "";
	inset: 0;
	pointer-events: none;
	position: absolute;
}

/* Petits laptops et tablettes paysage : colonne de texte plus large, photo cadrée un peu
   plus à gauche (badge entier, loin du texte), fondu plus marqué sous la fin du texte. */
@media (min-width: 960px) and (max-width: 1100px) {
	.fc-service-page > .fc-service-hero {
		--fc-hero-text: 50%;
		--fc-hero-media: 56%;
		--fc-hero-focus: 90%;
		min-height: 440px;
	}

	.fc-service-hero > .fc-service-hero-media::after {
		background: linear-gradient(90deg, var(--wp--preset--color--white) 0%, rgba(255, 255, 255, 0.9) 10%, rgba(255, 255, 255, 0.5) 22%, rgba(255, 255, 255, 0) 34%);
	}

	.fc-service-hero h1 {
		font-size: calc(clamp(2.1rem, 0.6rem + 3vw, 2.5rem) * var(--fc-hero-title-scale, 1));
	}

	.fc-service-hero .fc-lead {
		font-size: 0.98rem;
	}

	.fc-service-hero-actions {
		gap: 0.85rem 1.1rem;
	}
}

/* Empilé (< 960 px) : texte, puis photo sur toute la largeur de la carte, le haut de la
   photo fondu dans le blanc du texte. Plus étroit, le côte à côte rognerait la photo
   panoramique en bandeau vertical et collerait le badge au texte. */
@media (max-width: 959px) {
	.fc-service-page > .fc-service-hero {
		--fc-hero-text: 100%;
		--fc-hero-focus: 100%;
		min-height: 0;
	}

	.fc-service-hero > .fc-service-hero-content {
		padding: clamp(1.75rem, 5vw, 2.5rem) clamp(1.25rem, 5vw, 2.5rem) clamp(1.25rem, 3vw, 1.75rem);
	}

	.fc-service-hero .fc-lead,
	.fc-service-hero-actions {
		max-width: 36rem;
	}

	.fc-service-hero > .fc-service-hero-media {
		aspect-ratio: 1.8 / 1;
		position: relative;
		width: 100%;
	}

	.fc-service-hero > .fc-service-hero-media::after {
		background: linear-gradient(180deg, var(--wp--preset--color--white) 0%, rgba(255, 255, 255, 0.55) 9%, rgba(255, 255, 255, 0) 24%);
	}
}

/* Mobile : photo plus haute (≈ 50 % de l'image, 41 % sous 431 px) centrée sur le sujet et le badge. */
@media (max-width: 600px) {
	.fc-service-page > .fc-service-hero {
		--fc-hero-focus: 90%;
		border-radius: 18px;
	}

	.fc-service-hero > .fc-service-hero-media {
		aspect-ratio: 1.45 / 1;
	}

	.fc-service-hero-actions .wp-block-buttons,
	.fc-service-hero-actions .wp-block-button,
	.fc-service-hero-actions .wp-block-button__link {
		width: 100%;
	}

	.fc-service-hero-actions .wp-block-button__link {
		box-sizing: border-box;
		justify-content: center;
	}
}

/* Petit mobile : photo encore plus haute, texte du badge lisible. */
@media (max-width: 430px) {
	.fc-service-hero > .fc-service-hero-media {
		aspect-ratio: 1.2 / 1;
	}
}

/* Fauteuil : cartouche de la photo plus haut (4 à 20 % de sa hauteur) et plus à gauche
   (dès 63 % de sa largeur) que sur Canapé et Matelas. Côte à côte compact : photo plus
   large et cadrée un peu plus à gauche, le cartouche sort du voile sans couper le fauteuil.
   Empilé : fondu du haut raccourci, le cartouche reste net. */
@media (min-width: 960px) and (max-width: 1100px) {
	.fc-service-page--fauteuils > .fc-service-hero {
		--fc-hero-media: 62%;
		--fc-hero-focus: 91%;
	}
}

/* Fauteuil : sujets presque carrés (et non panoramiques comme les canapés et matelas) :
   cadre des cartes de types un peu plus haut, fauteuils lisibles et à la même échelle. */
.fc-service-page--fauteuils .fc-service-card .fc-service-card-media {
	aspect-ratio: 16 / 9;
	max-width: 240px;
}

@media (max-width: 959px) {
	.fc-service-page--fauteuils .fc-service-hero > .fc-service-hero-media::after {
		background: linear-gradient(180deg, var(--wp--preset--color--white) 0%, rgba(255, 255, 255, 0.4) 2.5%, rgba(255, 255, 255, 0) 6%);
	}
}

/* Tapis : cartouche de la photo plus à gauche (dès 59 % de sa largeur) que sur les autres
   pages. Côte à côte compact jusqu’à 1085 px (les CTA du hero passent sur deux lignes, la
   carte est plus haute et la photo plus large) : photo élargie et cadrée plus à gauche, le
   cartouche sort du voile et s'éloigne du texte ; la flèche et le tapis restent entiers.
   De 1086 à 1100 px (carte moins haute), le cadrage commun suffit et masque la vague de
   l’image. */
@media (min-width: 960px) and (max-width: 1085px) {
	.fc-service-page--tapis > .fc-service-hero {
		--fc-hero-media: 62%;
		--fc-hero-focus: 80%;
	}
}

/* Tapis et Tissus d’ameublement : les types sont des photos de scène 4 : 3 (et non des
   détourages) : elles remplissent leur cadre, entières, avec un arrondi propre à la carte. */
.fc-service-page--tapis .fc-service-card .fc-service-card-media,
.fc-service-page--tissus .fc-service-card .fc-service-card-media {
	aspect-ratio: 4 / 3;
	border-radius: 12px;
	max-width: none;
	overflow: hidden;
}

.fc-service-page--tapis .fc-service-card-media img,
.fc-service-page--tissus .fc-service-card-media img {
	object-fit: cover;
	object-position: center;
}

/* Tissus d’ameublement : photos avant / après en portrait (chaise entière) : comparateur carré
   plutôt que 4 : 3, qui couperait le dossier ou les pieds. */
.fc-service-page--tissus .fc-service-intro .fc-comparison {
	aspect-ratio: 1 / 1;
}

/* --- Bénéfices : carte bleu très clair contenue dans la grille, détachée du hero --- */

.fc-service-page > .fc-service-benefits {
	background: none;
	margin-top: clamp(2rem, 4vw, 3.25rem);
	padding-block: 0;
}

/* Quatre colonnes égales ; deux sous 1101 px, une seule sous 601 px. */
.fc-service-benefits-grid {
	background: var(--wp--preset--color--sky);
	border: 1px solid var(--wp--custom--color--line);
	border-radius: var(--fc-service-radius);
	box-shadow: 0 10px 28px rgba(6, 60, 117, 0.05);
	box-sizing: border-box;
	display: grid;
	gap: 1.25rem clamp(1.25rem, 2.5vw, 2.25rem);
	grid-template-columns: repeat(4, minmax(0, 1fr));
	padding: clamp(1.4rem, 2.4vw, 1.9rem) clamp(1.25rem, 3vw, 2.5rem);
}

.fc-service-benefits-grid > *,
.fc-service-cards > *,
.fc-service-steps > * {
	margin: 0;
}

.fc-service-benefit {
	align-items: center;
	display: flex;
	gap: 0.95rem;
}

.fc-service-benefit .fc-service-picto {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--custom--color--line);
	box-shadow: 0 5px 14px rgba(5, 61, 110, 0.07);
	height: 56px;
	width: 56px;
}

.fc-service-benefit .fc-service-picto svg {
	height: 26px;
	width: 26px;
}

.fc-service-benefit p {
	color: var(--wp--preset--color--navy);
	font-size: 0.95rem;
	font-weight: 700;
	line-height: 1.4;
	margin: 0;
	max-width: 22ch;
}

@media (max-width: 1100px) {
	.fc-service-benefits-grid {
		gap: 1.25rem 2rem;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.fc-service-benefit p {
		max-width: 28ch;
	}
}

@media (max-width: 600px) {
	.fc-service-benefits-grid {
		border-radius: 18px;
		gap: 0;
		grid-template-columns: minmax(0, 1fr);
		padding: 0.5rem 1.25rem;
	}

	/* Une ligne par bénéfice, séparées par un filet discret. */
	.fc-service-benefit {
		padding-block: 0.85rem;
	}

	.fc-service-benefit + .fc-service-benefit {
		border-top: 1px solid rgba(0, 108, 181, 0.1);
	}

	.fc-service-benefit .fc-service-picto {
		height: 48px;
		width: 48px;
	}

	.fc-service-benefit .fc-service-picto svg {
		height: 23px;
		width: 23px;
	}

	.fc-service-benefit p {
		font-size: 0.93rem;
		max-width: none;
	}
}

/* --- Avant / après et argumentaire --- */

.fc-service-intro {
	padding-block: var(--fc-service-gap) 0;
}

.fc-service-intro .fc-service-intro-grid {
	gap: clamp(2rem, 5vw, 4.5rem);
	margin-block: 0;
}

/* Lignes de lecture confortables dans la colonne de texte. */
.fc-service-intro-text > * {
	max-width: 600px;
}

/* Comparateur de l'accueil (même JS) au format des photos, à la largeur de la colonne. */
.fc-service-intro .fc-comparison {
	aspect-ratio: 4 / 3;
	border-radius: var(--fc-service-radius);
	margin: 0;
	width: 100%;
}

.fc-service-intro .fc-comparison .fc-comparison-image img {
	object-position: center;
}

.fc-comparison-tag {
	border-radius: 999px;
	bottom: 1rem;
	color: var(--wp--preset--color--white);
	font-size: 0.85rem;
	font-weight: 750;
	line-height: 1;
	padding: 0.55rem 1rem;
	pointer-events: none;
	position: absolute;
}

.fc-comparison-tag--before {
	background: rgba(16, 42, 67, 0.78);
	left: 1rem;
}

.fc-comparison-tag--after {
	background: var(--wp--custom--color--blue-strong);
	right: 1rem;
}

.fc-service-intro-text > * {
	margin-block: 0;
}

.fc-service-intro-text h2 {
	margin-top: 0.6rem;
}

.fc-service-intro-text h2 + p {
	color: var(--wp--custom--color--muted);
	margin-top: 1.1rem;
}

.fc-service-checks {
	display: grid;
	gap: 0.85rem;
	list-style: none;
	margin-top: 1.5rem;
	padding: 0;
}

.fc-service-checks li {
	color: var(--wp--preset--color--dark);
	font-weight: 600;
	line-height: 1.5;
	min-height: 1.6rem;
	padding-left: 2.4rem;
	position: relative;
}

.fc-service-checks li::before {
	background: var(--wp--custom--color--blue-strong) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12.5 4 4 8-9'/%3E%3C/svg%3E") center / 14px 14px no-repeat;
	border-radius: 50%;
	content: "";
	height: 1.6rem;
	left: 0;
	position: absolute;
	top: 0;
	width: 1.6rem;
}

/* --- Types : carte bleu très clair à la largeur de la grille --- */

.fc-service-types {
	padding-block: var(--fc-service-gap) 0;
}

.fc-service-panel {
	background: var(--wp--preset--color--sky);
	border: 1px solid var(--wp--custom--color--line);
	border-radius: var(--fc-service-radius);
	box-sizing: border-box;
	padding: clamp(2rem, 4vw, 3rem) clamp(1rem, 2.5vw, 1.75rem);
}

.fc-service-panel > .fc-eyebrow,
.fc-service-process > .fc-eyebrow,
.fc-service-faq > .fc-eyebrow {
	margin-bottom: 0;
}

.fc-service-panel > h2,
.fc-service-process > h2 {
	margin-top: 0.6rem;
}

.fc-service-panel > .fc-lead,
.fc-service-process > .fc-lead {
	color: var(--wp--custom--color--muted);
	margin-top: 0.85rem;
	max-width: 760px;
}

.fc-service-cards {
	display: grid;
	gap: 1.25rem;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin-top: clamp(1.75rem, 3vw, 2.5rem);
}

.fc-service-card {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--custom--color--line);
	border-radius: 18px;
	box-shadow: var(--wp--preset--shadow--card);
	box-sizing: border-box;
	padding: 1.6rem 1.25rem 1.5rem;
	text-align: center;
	transition: transform 240ms ease, box-shadow 240ms ease;
}

.fc-service-card > * {
	margin-block: 0;
}

/* Images détourées (WebP avec transparence) : aucun fond ni bordure, contenues et centrées. */
.fc-service-card .fc-service-card-media {
	aspect-ratio: 12 / 5;
	margin: 0 auto 1.1rem;
	max-width: 260px;
}

/* Pieds des canapés sur une même ligne, quelle que soit la forme. */
.fc-service-card-media img {
	display: block;
	height: 100%;
	object-fit: contain;
	object-position: center bottom;
	width: 100%;
}

.fc-section .fc-service-card h3 {
	color: var(--wp--preset--color--navy);
	font-size: 1.05rem;
	font-weight: 800;
	line-height: 1.3;
}

.fc-service-card p {
	color: var(--wp--custom--color--muted);
	font-size: 0.9rem;
	line-height: 1.5;
	margin-top: 0.4rem;
}

/* --- Avantages (page Matelas) : même carte bleu très clair et mêmes cartes que les
   types, sur cinq colonnes, pictogramme à la place de l'image. Sous 1101 px, rangées
   centrées (3 + 2, puis 2 + 2 + 1) : aucune carte orpheline étirée. --- */

.fc-service-advantages {
	padding-block: var(--fc-service-gap) 0;
}

.fc-service-cards.fc-service-cards--advantages {
	--fc-cards-gap: 1.25rem;
	gap: var(--fc-cards-gap);
	grid-template-columns: repeat(5, minmax(0, 1fr));
}

.fc-service-card > .fc-service-picto {
	margin-bottom: 1rem;
}

/* --- Méthode : étapes numérotées (compteur CSS), flèches entre les étapes --- */

.fc-service-process {
	padding-block: var(--fc-service-gap) 0;
}

/* Grille de 1360 px conservée ; les étapes sont resserrées à l'intérieur. */
.fc-service-steps {
	--fc-step-gap: clamp(1.5rem, 3vw, 2.5rem);
	--fc-step-icon: 88px;
	box-sizing: border-box;
	counter-reset: fc-service-step;
	display: grid;
	gap: 2rem var(--fc-step-gap);
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin-top: clamp(2rem, 3.5vw, 2.75rem);
	padding-inline: clamp(0rem, 16vw - 8rem, 7.5rem);
}

.fc-service-step {
	counter-increment: fc-service-step;
	position: relative;
	text-align: center;
}

.fc-service-step > * {
	margin-block: 0;
}

.fc-service-step::before {
	align-items: center;
	background: linear-gradient(180deg, #159dea 0%, #0065c3 100%);
	border: 3px solid var(--wp--preset--color--white);
	border-radius: 50%;
	box-shadow: 0 6px 14px rgba(0, 74, 150, 0.28);
	color: var(--wp--preset--color--white);
	content: counter(fc-service-step);
	display: flex;
	font-size: 1rem;
	font-weight: 800;
	height: 36px;
	justify-content: center;
	left: calc(50% - var(--fc-step-icon) / 2 - 12px);
	position: absolute;
	top: -8px;
	width: 36px;
	z-index: 1;
}

/* Liaison : trait pointillé et chevron, d'une pastille à la suivante. */
.fc-service-step:not(:last-child)::after {
	background:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 14' fill='none' stroke='%230788d1' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m2 2 5 5-5 5'/%3E%3C/svg%3E") right center / 8px 12px no-repeat,
		repeating-linear-gradient(90deg, #5fb8e8 0 7px, transparent 7px 12px) left center / calc(100% - 10px) 2px no-repeat;
	content: "";
	height: 14px;
	left: calc(50% + var(--fc-step-icon) / 2 + 12px);
	position: absolute;
	top: calc(var(--fc-step-icon) / 2 - 7px);
	width: calc(100% + var(--fc-step-gap) - var(--fc-step-icon) - 24px);
}

.fc-service-step .fc-service-picto {
	border: 1px solid #cbe7f6;
	box-shadow: 0 10px 22px rgba(6, 60, 117, 0.08);
	height: var(--fc-step-icon);
	margin-bottom: 1.3rem;
	width: var(--fc-step-icon);
}

.fc-service-step .fc-service-picto svg {
	height: 40px;
	stroke-width: 2;
	width: 40px;
}

.fc-section .fc-service-step h3 {
	color: var(--wp--preset--color--navy);
	font-size: 1.15rem;
	font-weight: 800;
	line-height: 1.3;
}

.fc-service-step p {
	color: var(--wp--custom--color--muted-strong);
	font-size: 0.95rem;
	line-height: 1.55;
	margin: 0.45rem auto 0;
	max-width: 25ch;
}

/* --- FAQ et CTA final : composants de la page Contact (fc-faq-*, fc-quote-cta) --- */

.fc-service-faq {
	padding-block: var(--fc-service-gap) 0;
}

.fc-service-faq > h2 {
	margin-top: 0.6rem;
}

.fc-service-cta {
	padding-block: var(--fc-service-gap);
}

/* ==========================================================================
   18. Pages juridiques (mentions légales ; confidentialité, cookies, CGV à venir)
   ========================================================================== */

/* Famille fc-legal-* commune aux pages juridiques : hero compact sur bleu très clair,
   sommaire (carte collante à côté du texte au-delà de 1100 px, au-dessus en dessous),
   sections ouvertes par un pictogramme et un H2, cartes légères, colonne de lecture
   limitée. Une nouvelle page juridique ne change que son contenu. */

.fc-legal-page {
	--fc-legal-gap: clamp(2.5rem, 4vw, 3.5rem);
	/* Largeur éditoriale commune du hero et du corps, plus étroite que la grille du site :
	   760 px sur une colonne, 1120 px avec le sommaire latéral (au-delà de 1100 px). */
	--fc-legal-width: 760px;
	--fc-legal-toc-width: 284px;
}

/* --- Hero : sur-titre, H1 et introduction, sans photo ni fil d'Ariane --- */

.fc-legal-hero {
	background: radial-gradient(circle at 88% 15%, rgba(7, 136, 209, 0.08), transparent 45%), linear-gradient(135deg, #f4faff 0%, #e8f6fd 100%);
	border-bottom: 1px solid var(--wp--custom--color--line);
	padding-block: clamp(2.5rem, 5vw, 4rem);
}

.fc-legal-hero > .fc-legal-hero-content {
	max-width: var(--fc-legal-width);
}

.fc-legal-hero-content {
	align-items: start;
	column-gap: 1.5rem;
	display: grid;
	grid-template-columns: 64px minmax(0, 1fr);
}

.fc-legal-hero-content > * {
	grid-column: 2;
	margin-block: 0;
	max-width: 720px;
}

.fc-legal-hero-content > .fc-legal-icon {
	grid-column: 1;
	grid-row: 1 / span 3;
}

/* Bleu foncé (contraste AA sur le bleu très clair) et trait vert court. */
.fc-legal-hero .fc-eyebrow {
	color: var(--wp--custom--color--blue-strong);
}

.fc-legal-hero .fc-eyebrow::before {
	background: #36a918;
	border-radius: 2px;
	content: "";
	display: block;
	height: 3px;
	margin-bottom: 0.65rem;
	width: 31px;
}

.fc-legal-hero h1 {
	color: var(--wp--preset--color--navy);
	font-size: clamp(2.25rem, 1.6rem + 2.4vw, 3.25rem);
	line-height: 1.1;
	margin-top: 0.6rem;
}

.fc-legal-hero .fc-lead {
	color: var(--wp--custom--color--muted-strong);
	font-size: clamp(1rem, 1.2vw, 1.125rem);
	margin-top: 0.85rem;
	max-width: 60ch;
}

/* Date de mise à jour des politiques : discrète, fixe (pas de date dynamique). */
.fc-legal-hero .fc-legal-updated {
	color: var(--wp--custom--color--muted);
	font-size: 0.875rem;
	font-weight: 600;
	margin-top: 0.75rem;
}

/* --- Pictogrammes : SVG en ligne décoratifs dans une pastille bleu très clair --- */

.fc-legal-icon {
	align-items: center;
	background: var(--wp--preset--color--sky);
	border: 1px solid #cbe7f6;
	border-radius: 14px;
	box-sizing: border-box;
	color: var(--wp--preset--color--blue);
	display: inline-flex;
	height: 48px;
	justify-content: center;
	width: 48px;
}

.fc-legal-icon svg {
	height: 24px;
	width: 24px;
}

.fc-legal-icon--hero {
	background: var(--wp--preset--color--white);
	border-radius: 18px;
	box-shadow: 0 10px 24px rgba(6, 60, 117, 0.08);
	height: 64px;
	width: 64px;
}

.fc-legal-icon--hero svg {
	height: 32px;
	width: 32px;
}

/* --- Corps : sommaire et colonne de lecture --- */

.fc-legal-body {
	padding-block: var(--fc-legal-gap) clamp(3.5rem, 6vw, 5rem);
}

/* Le corps suit directement le hero (pas d'espacement de flux de WordPress en plus). */
.fc-legal-page > .fc-legal-body {
	margin-top: 0;
}

.fc-legal-body > .fc-legal-layout {
	max-width: var(--fc-legal-width);
}

.fc-legal-layout {
	display: grid;
	gap: var(--fc-legal-gap);
	grid-template-columns: minmax(0, 1fr);
}

.fc-legal-toc {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--custom--color--line);
	border-radius: 18px;
	box-shadow: 0 10px 26px rgba(6, 60, 117, 0.06);
	box-sizing: border-box;
	padding: 1.25rem 1rem 0.85rem;
}

.fc-legal-toc-title {
	border-bottom: 1px solid var(--wp--custom--color--line);
	color: var(--wp--preset--color--navy);
	font-size: 0.82rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	margin: 0 0.6rem 0.5rem;
	padding-bottom: 0.75rem;
	text-transform: uppercase;
}

.fc-legal-toc-list {
	counter-reset: fc-legal-toc;
	list-style: none;
	margin: 0;
	padding: 0;
}

.fc-legal-toc-list li {
	counter-increment: fc-legal-toc;
	margin: 0;
}

.fc-legal-toc-list a {
	align-items: center;
	border-radius: 10px;
	color: #1f3b5a;
	display: flex;
	font-size: 0.95rem;
	font-weight: 600;
	gap: 0.7rem;
	line-height: 1.3;
	min-height: 44px;
	padding: 0.3rem 0.6rem;
	text-decoration: none;
	transition: background-color 200ms ease, color 200ms ease;
}

/* Sommaire repliable (tablette et mobile) : bouton ajouté par site.js. Sans JavaScript,
   la liste reste visible ; au-delà de 1100 px, le bouton n'existe pas visuellement. */
.fc-legal-toc-toggle {
	align-items: center;
	background: var(--wp--preset--color--white);
	border: 1px solid #cfe6f3;
	border-radius: 14px;
	box-shadow: 0 6px 18px rgba(6, 60, 117, 0.06);
	box-sizing: border-box;
	color: var(--wp--preset--color--navy);
	cursor: pointer;
	display: none;
	font: inherit;
	font-size: 1rem;
	font-weight: 750;
	gap: 0.75rem;
	margin: 0;
	min-height: 54px;
	padding: 0.7rem 1rem 0.7rem 1.15rem;
	text-align: left;
	transition: border-color 200ms ease, background-color 200ms ease;
	width: 100%;
}

.fc-legal-toc-toggle:hover {
	background: var(--wp--custom--color--surface);
	border-color: #a9d6ee;
}

.fc-legal-toc-count {
	color: var(--wp--custom--color--muted);
	font-size: 0.85rem;
	font-weight: 600;
	margin-left: auto;
}

.fc-legal-toc-chevron {
	color: var(--wp--preset--color--blue);
	flex: 0 0 22px;
	height: 22px;
	transition: transform 200ms ease;
	width: 22px;
}

.fc-legal-toc.is-open .fc-legal-toc-chevron {
	transform: rotate(180deg);
}

/* Numéro décoratif : la liste ordonnée porte déjà la numérotation. */
.fc-legal-toc-list a::before {
	color: var(--wp--custom--color--blue-strong);
	content: counter(fc-legal-toc, decimal-leading-zero);
	content: counter(fc-legal-toc, decimal-leading-zero) / "";
	flex: 0 0 1.6rem;
	font-size: 0.8rem;
	font-variant-numeric: tabular-nums;
	font-weight: 800;
}

.fc-legal-toc-list a:hover {
	background: var(--wp--preset--color--sky);
	color: var(--wp--custom--color--blue-strong);
}

.fc-legal-content {
	min-width: 0;
}

/* --- Sections : pictogramme et H2 sur une ligne, contenu aligné sur le titre --- */

.fc-legal-section {
	border-top: 1px solid var(--wp--custom--color--line);
	column-gap: 1.1rem;
	display: grid;
	grid-template-columns: 48px minmax(0, 1fr);
	padding-block: 2.25rem;
	scroll-margin-top: calc(var(--fc-sticky-height) + var(--wp-admin--admin-bar--height, 0px) + 20px);
}

.fc-legal-section:first-child {
	border-top: 0;
	padding-top: 0;
}

.fc-legal-section > * {
	grid-column: 2;
	margin-block: 0;
}

.fc-legal-section > .fc-legal-icon {
	grid-column: 1;
	grid-row: 1;
}

.fc-legal-section > h2 {
	align-self: center;
	grid-row: 1;
}

.fc-legal-section > :not(.fc-legal-icon, h2) {
	margin-top: 1rem;
}

.fc-legal-section > .fc-legal-link {
	margin-top: 0.4rem;
}

.fc-legal-section h2 {
	color: var(--wp--preset--color--navy);
	font-size: clamp(1.35rem, 1.1rem + 0.9vw, 1.7rem);
	font-weight: 800;
	line-height: 1.25;
}

.fc-legal-section h3 {
	color: var(--wp--preset--color--navy);
	font-size: 1.1rem;
	font-weight: 800;
	line-height: 1.3;
}

.fc-legal-section > h3 {
	margin-top: 1.75rem;
}

.fc-legal-section p {
	line-height: 1.7;
	max-width: 70ch;
}

/* Liens du texte en bleu foncé (contraste AA sur blanc), soulignés. */
.fc-legal-section a {
	color: var(--wp--custom--color--blue-strong);
	text-underline-offset: 3px;
}

/* --- Cartes et fiches : lignes « libellé / valeur » faciles à parcourir --- */

.fc-legal-card,
.fc-legal-facts--sheet,
.fc-legal-placeholder {
	background: linear-gradient(180deg, #f8fcff 0%, var(--wp--preset--color--white) 100%);
	border: 1px solid var(--wp--custom--color--line);
	border-radius: 18px;
	box-shadow: 0 10px 26px rgba(6, 60, 117, 0.05);
	box-sizing: border-box;
	padding: 0.5rem clamp(1.15rem, 2.5vw, 1.75rem);
}

.fc-legal-card {
	padding-top: clamp(1.15rem, 2.5vw, 1.5rem);
}

.fc-legal-card > .fc-legal-facts {
	margin: 0;
}

.fc-legal-card-title {
	align-items: center;
	border-bottom: 1px solid var(--wp--custom--color--line);
	color: var(--wp--preset--color--navy);
	display: flex;
	font-size: 1.2rem;
	font-weight: 800;
	gap: 0.65rem;
	margin: 0;
	padding-bottom: 0.9rem;
}

.fc-legal-card-title::before {
	background: #36a918;
	border-radius: 2px;
	content: "";
	flex: 0 0 4px;
	height: 1.1em;
}

.fc-legal-facts {
	column-gap: 2rem;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.fc-legal-facts > p {
	border-top: 1px solid #e6f1f8;
	color: var(--wp--preset--color--dark);
	font-weight: 600;
	line-height: 1.5;
	margin: 0;
	padding-block: 0.85rem;
}

.fc-legal-facts > p:nth-child(-n + 2) {
	border-top: 0;
}

.fc-legal-facts strong,
.fc-legal-contact strong {
	color: var(--wp--custom--color--muted);
	display: block;
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	margin-bottom: 0.2rem;
	text-transform: uppercase;
}

/* Informations à compléter : cadre pointillé ambré, repérable avant la mise en ligne. */
.fc-legal-placeholder {
	background: #fffaf0;
	border: 1px dashed #e0b45c;
	box-shadow: none;
	grid-template-columns: minmax(0, 1fr);
}

.fc-legal-placeholder > p:nth-child(2) {
	border-top: 1px solid #f3e3c2;
}

.fc-legal-placeholder > p + p {
	border-top-color: #f3e3c2;
}

/* Fiche sur une colonne (bases légales, durées, cookies de l'administration). */
.fc-legal-facts--single {
	grid-template-columns: minmax(0, 1fr);
}

.fc-legal-facts--single > p:nth-child(2) {
	border-top: 1px solid #e6f1f8;
}

/* Libellés longs (phrases) : casse normale, couleur marine. */
.fc-legal-facts--single > p > strong:first-child {
	color: var(--wp--preset--color--navy);
	font-size: 0.95rem;
	letter-spacing: 0;
	margin-bottom: 0.3rem;
	text-transform: none;
}

.fc-legal-facts strong code,
.fc-legal-card-title code {
	background: var(--wp--preset--color--sky);
	border-radius: 6px;
	color: var(--wp--preset--color--navy);
	font-size: 0.9em;
	overflow-wrap: anywhere;
	padding: 0.1em 0.4em;
	text-transform: none;
}

/* Petites cartes côte à côte (catégories de données, prestataires). */
.fc-legal-grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.fc-legal-grid > .fc-legal-card {
	padding: 1.15rem 1.25rem 1.25rem;
}

.fc-legal-card > h3 {
	font-size: 1.05rem;
	margin: 0 0 0.6rem;
}

.fc-legal-card > p {
	margin: 0;
}

/* Listes : puces bleues discrètes. */
.fc-legal-section ul.wp-block-list {
	display: grid;
	gap: 0.45rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.fc-legal-section ul.wp-block-list > li {
	line-height: 1.6;
	padding-left: 1.2rem;
	position: relative;
}

.fc-legal-section ul.wp-block-list > li::before {
	background: var(--wp--preset--color--blue);
	border-radius: 50%;
	content: "";
	height: 6px;
	left: 0.2rem;
	position: absolute;
	top: 0.68em;
	width: 6px;
}

.fc-legal-list > li strong {
	color: var(--wp--preset--color--navy);
}

/* Conseil : encart léger à filet vert. */
.fc-legal-section > .fc-legal-note {
	background: #f3fbef;
	border-left: 3px solid #36a918;
	border-radius: 0 12px 12px 0;
	color: var(--wp--preset--color--dark);
	padding: 0.85rem 1.1rem;
}

.fc-legal-note strong {
	color: #2c7a12;
	display: block;
	font-size: 0.8rem;
	letter-spacing: 0.04em;
	margin-bottom: 0.15rem;
	text-transform: uppercase;
}

/* Encart « Important » (rétractation, exécution anticipée, paiement) : filet bleu. */
.fc-legal-section > .fc-legal-important {
	background: var(--wp--preset--color--sky);
	border-left: 3px solid var(--wp--preset--color--blue);
	border-radius: 0 12px 12px 0;
	color: var(--wp--preset--color--dark);
	max-width: none;
	padding: 0.9rem 1.15rem;
}

.fc-legal-important strong {
	color: var(--wp--preset--color--navy);
	display: block;
	margin-bottom: 0.2rem;
}

/* Point à valider avant publication (version de travail) : ambré, pointillé, impossible à
   manquer. Le validateur les compte ; ils doivent disparaître avant publication définitive. */
.fc-legal-validate {
	background: #fff6e5;
	border: 1px dashed #d99a2b;
	border-radius: 12px;
	color: #5c3d00;
	max-width: none;
	padding: 0.8rem 1.1rem;
}

.fc-legal-validate strong {
	color: #8a4b00;
	display: block;
	font-size: 0.8rem;
	letter-spacing: 0.06em;
	margin-bottom: 0.2rem;
	text-transform: uppercase;
}

/* Étapes numérotées (devis → contrat → rendez-vous). */
.fc-legal-section ol.fc-legal-steps {
	counter-reset: fc-legal-step;
	display: grid;
	gap: 0.6rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.fc-legal-steps > li {
	counter-increment: fc-legal-step;
	line-height: 1.6;
	min-height: 32px;
	padding-left: 2.6rem;
	position: relative;
}

.fc-legal-steps > li::before {
	align-items: center;
	background: var(--wp--preset--color--sky);
	border: 1px solid #cbe7f6;
	border-radius: 50%;
	color: var(--wp--custom--color--blue-strong);
	content: counter(fc-legal-step);
	display: flex;
	font-size: 0.85rem;
	font-weight: 800;
	height: 28px;
	justify-content: center;
	left: 0;
	position: absolute;
	top: -0.05rem;
	width: 28px;
}

/* Formulaire de rétractation : lignes à compléter. */
.fc-legal-form > p {
	margin: 0;
	max-width: none;
	padding-block: 0.55rem;
}

.fc-legal-form > p > strong:first-child {
	color: var(--wp--preset--color--navy);
	display: block;
}

.fc-legal-form > .fc-legal-form-line {
	border-bottom: 1px dashed #b7d3e4;
	color: var(--wp--preset--color--dark);
	font-weight: 600;
	padding-top: 1rem;
}

/* --- Coordonnées : lignes entièrement cliquables, pictogrammes partagés (--fc-icon-*) --- */

.fc-legal-contact {
	display: grid;
	gap: 0.75rem;
	grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
}

.fc-legal-contact > p {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--custom--color--line);
	border-radius: 14px;
	box-sizing: border-box;
	color: var(--wp--preset--color--dark);
	font-weight: 600;
	line-height: 1.45;
	margin: 0;
	min-height: 64px;
	overflow-wrap: anywhere;
	padding: 0.8rem 1rem 0.8rem 4.1rem;
	position: relative;
	transition: border-color 200ms ease, box-shadow 200ms ease;
}

.fc-legal-contact > p::before {
	background: var(--wp--preset--color--sky);
	border-radius: 50%;
	content: "";
	height: 42px;
	left: 0.9rem;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 42px;
}

.fc-legal-contact > p::after {
	background-color: var(--wp--preset--color--blue);
	content: "";
	height: 19px;
	left: calc(0.9rem + 11.5px);
	-webkit-mask: var(--fc-icon-phone) center / contain no-repeat;
	mask: var(--fc-icon-phone) center / contain no-repeat;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 19px;
}

.fc-legal-contact > .fc-legal-contact-email::after {
	-webkit-mask-image: var(--fc-icon-email);
	mask-image: var(--fc-icon-email);
}

.fc-legal-contact > .fc-legal-contact-address::after {
	-webkit-mask-image: var(--fc-icon-location);
	mask-image: var(--fc-icon-location);
}

.fc-legal-contact a {
	color: var(--wp--custom--color--blue-strong);
	font-weight: 700;
	text-decoration: none;
	text-underline-offset: 3px;
}

/* Lien étiré : toute la ligne est cliquable. */
.fc-legal-contact a::before {
	border-radius: 14px;
	content: "";
	inset: 0;
	position: absolute;
	z-index: 1;
}

.fc-legal-contact > p:has(a:hover) {
	border-color: #a9d6ee;
	box-shadow: 0 8px 20px rgba(6, 60, 117, 0.08);
}

.fc-legal-contact a:hover {
	text-decoration: underline;
}

/* --- Liens vers les autres pages juridiques --- */

.fc-legal-link a {
	color: var(--wp--custom--color--blue-strong);
	display: inline-block;
	font-weight: 700;
	padding-block: 0.6rem;
	text-decoration: none;
	text-underline-offset: 3px;
}

/* Flèche collée au dernier mot, même si le lien passe sur deux lignes. */
.fc-legal-link a::after {
	content: "\a0→";
	content: "\a0→" / "";
	display: inline-block;
	transition: transform 200ms ease;
}

.fc-legal-link a:hover {
	text-decoration: underline;
}

.fc-legal-link a:hover::after {
	transform: translateX(3px);
}

/* --- Encart final : question sur le site ou les données, CTA secondaire --- */

.fc-legal-help {
	align-items: center;
	background: linear-gradient(135deg, #f1f9fe 0%, #e6f5fc 100%);
	border: 1px solid #cfe8f5;
	border-radius: 20px;
	box-sizing: border-box;
	column-gap: 2rem;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	margin-top: 1rem;
	padding: clamp(1.5rem, 3vw, 2.25rem);
	row-gap: 0.45rem;
}

.fc-legal-help > * {
	grid-column: 1;
	margin: 0;
}

.fc-legal-help > .wp-block-buttons {
	grid-column: 2;
	grid-row: 1 / span 2;
}

.fc-legal-help h2 {
	color: var(--wp--preset--color--navy);
	font-size: clamp(1.2rem, 1rem + 0.8vw, 1.45rem);
	font-weight: 800;
	line-height: 1.3;
}

.fc-legal-help p a {
	color: var(--wp--custom--color--blue-strong);
	font-weight: 700;
	overflow-wrap: anywhere;
	text-underline-offset: 3px;
}

.fc-legal-help-button .wp-block-button__link {
	background: var(--wp--preset--color--white);
	border: 2px solid var(--wp--preset--color--blue);
	box-shadow: none;
	color: var(--wp--custom--color--blue-strong);
	padding: 0.75rem 1.5rem;
}

.fc-legal-help-button .wp-block-button__link:hover {
	background: var(--wp--preset--color--sky);
	color: var(--wp--custom--color--blue-strong);
}

/* ==========================================================================
   19. Interactions et animations
   ========================================================================== */

/* Survol (tous pointeurs ; neutralisé plus bas pour les écrans tactiles). */
.fc-quick-service:hover {
	transform: translateY(-3px);
}

.fc-quick-service:hover img,
.fc-benefits .fc-card:hover img {
	transform: scale(1.045);
}

.fc-price-card:hover,
.fc-testimonial:hover {
	box-shadow: 0 16px 36px rgba(6, 60, 117, 0.15);
	transform: translateY(-4px);
}

.fc-offering-card:hover,
.fc-offering-card:has(.fc-offering-link:focus-visible) {
	box-shadow: 0 18px 38px rgba(6, 60, 117, 0.2);
	transform: translateY(-3px);
}

.fc-offering-card:hover img {
	transform: scale(1.02);
}

/* L'ombre de base des cartes de prix reste prioritaire au survol tactile. */
.fc-price-grid .fc-price-card:hover {
	box-shadow: 0 8px 20px rgba(6, 60, 117, 0.07);
}

@media (hover: hover) and (pointer: fine) {
	.fc-benefits .fc-card:hover {
		background: var(--wp--preset--color--white) !important;
		box-shadow: 0 11px 25px rgba(5, 61, 110, 0.1);
		transform: translateY(-4px);
	}

	.fc-benefits .fc-card:hover .fc-benefit-icon {
		transform: scale(1.06);
	}

	.fc-offering-card:hover::after {
		background: linear-gradient(180deg, rgba(2, 27, 53, 0) 31%, rgba(2, 27, 53, 0.2) 54%, rgba(2, 27, 53, 0.88) 100%);
	}

	.fc-offering-card:hover .fc-card-arrow,
	.fc-offering-card:has(.fc-offering-link:focus-visible) .fc-card-arrow {
		transform: translateX(3px);
	}

	/* Pages Prestation : soulèvement discret des cartes de types. */
	.fc-service-card:hover {
		box-shadow: 0 12px 26px rgba(6, 60, 117, 0.11);
		transform: translateY(-3px);
	}

	.fc-price-grid .fc-price-card:hover {
		border-color: #bee5f5;
		box-shadow: 0 14px 28px rgba(6, 60, 117, 0.13);
	}

	.fc-price-card:hover .fc-price-icon img {
		transform: scale(1.06);
	}

	.fc-footer .wp-block-navigation-item__content:hover,
	.fc-footer .wp-block-navigation-item__content:focus-visible,
	.fc-footer-list a:hover,
	.fc-footer-list a:focus-visible {
		color: var(--wp--preset--color--white);
		transform: translateX(3px);
	}

	.fc-footer-contact a:hover {
		color: var(--wp--custom--color--ice-strong);
	}

	.wp-block-button__link:hover {
		filter: brightness(1.07);
	}

	/* CTA de l'en-tête et de l'accueil : même renforcement d'ombre au survol, à la teinte du bouton. */
	.fc-header-cta .wp-block-button__link:hover,
	.fc-pricing .wp-block-button__link:hover {
		box-shadow: 0 10px 22px rgba(0, 74, 150, 0.26);
	}

	.fc-hero .wp-block-button__link:hover {
		box-shadow: 0 10px 22px rgba(34, 125, 0, 0.26);
	}

	/* Barre de défilement de la page aux couleurs du thème. */
	@supports (-moz-appearance: none) {
		html {
			scrollbar-color: var(--wp--preset--color--blue) #eef6fa;
			scrollbar-width: thin;
		}
	}

	html::-webkit-scrollbar,
	body::-webkit-scrollbar {
		width: 8px;
	}

	html::-webkit-scrollbar-track,
	body::-webkit-scrollbar-track {
		background: #eef6fa;
	}

	html::-webkit-scrollbar-thumb,
	body::-webkit-scrollbar-thumb {
		background: var(--wp--preset--color--blue);
		border: 1px solid #eef6fa;
		border-radius: 999px;
	}

	html::-webkit-scrollbar-thumb:hover,
	body::-webkit-scrollbar-thumb:hover {
		background: #066fae;
	}
}

@media (hover: none) {
	.fc-quick-service:hover,
	.fc-offering-card:hover,
	.fc-price-card:hover,
	.fc-testimonial:hover,
	.fc-benefits .fc-card:hover,
	.fc-quick-service:hover img,
	.fc-offering-card:hover img,
	.fc-price-card:hover img {
		transform: none;
	}
}

/* Apparition au défilement (classes posées par site.js). */
.fc-motion-ready .fc-reveal {
	transition: opacity 640ms ease, transform 640ms ease;
}

.fc-motion-ready .fc-benefits .fc-card.fc-reveal {
	transition-property: opacity, transform, box-shadow, background-color;
}

/* Carte de prestation apparue : survol court (et non la durée de l'apparition). */
.fc-motion-ready .fc-offering-card.fc-reveal.fc-visible {
	transition: transform 220ms ease, box-shadow 220ms ease;
}

.fc-motion-ready .fc-reveal:not(.fc-visible) {
	opacity: 0;
	transform: translateY(20px);
}

.fc-motion-ready .fc-benefits .wp-block-column:nth-child(2) .fc-reveal,
.fc-motion-ready .fc-offerings-section .wp-block-column > .wp-block-columns:first-child > .wp-block-column:nth-child(2) .fc-reveal,
.fc-motion-ready .fc-price-grid > .fc-reveal:nth-child(2),
.fc-motion-ready .fc-process-grid > .wp-block-column:nth-child(2) .fc-reveal,
.fc-motion-ready .fc-testimonials-section .wp-block-column:nth-child(2) .fc-reveal {
	transition-delay: 70ms;
}

.fc-motion-ready .fc-benefits .wp-block-column:nth-child(3) .fc-reveal,
.fc-motion-ready .fc-offerings-section .wp-block-column > .wp-block-columns:nth-child(2) > .wp-block-column:first-child .fc-reveal,
.fc-motion-ready .fc-price-grid > .fc-reveal:nth-child(3),
.fc-motion-ready .fc-process-grid > .wp-block-column:nth-child(3) .fc-reveal,
.fc-motion-ready .fc-testimonials-section .wp-block-column:nth-child(3) .fc-reveal {
	transition-delay: 140ms;
}

.fc-motion-ready .fc-benefits .wp-block-column:nth-child(4) .fc-reveal,
.fc-motion-ready .fc-offerings-section .wp-block-column > .wp-block-columns:nth-child(2) > .wp-block-column:nth-child(2) .fc-reveal,
.fc-motion-ready .fc-price-grid > .fc-reveal:nth-child(4),
.fc-motion-ready .fc-price-grid > .fc-reveal:nth-child(5),
.fc-motion-ready .fc-process-grid > .wp-block-column:nth-child(4) .fc-reveal {
	transition-delay: 210ms;
}

@keyframes fc-menu-enter {
	from { opacity: 0; transform: translateX(12px); }
	to { opacity: 1; transform: translateX(0); }
}

@keyframes fc-topbar-loop {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}

/* Mouvement réduit : aucune transition, animation ni défilement doux. */
@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation: none !important;
		scroll-behavior: auto !important;
		transition: none !important;
	}

	.fc-motion-ready .fc-reveal,
	.fc-motion-ready .fc-reveal:not(.fc-visible) {
		opacity: 1;
		transform: none;
	}

	.fc-offering-card,
	.fc-price-card,
	.fc-testimonial,
	.fc-quick-service,
	.wp-block-button__link,
	#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-button-submit,
	.fc-quick-service img,
	.fc-benefits .fc-card img,
	.fc-service-card {
		transform: none !important;
	}

	.fc-topbar-ticker > .fc-topbar-copy {
		display: none !important;
	}

	.fc-topbar {
		overflow-x: auto !important;
		scrollbar-width: none;
	}

	.fc-topbar::-webkit-scrollbar {
		display: none;
	}
}

/* ==========================================================================
   20. Responsive
   ========================================================================== */

/* --- Desktop : navigation horizontale (> 1100 px) --- */

@media (min-width: 1101px) {
	/* Liens : zone interactive confortable (padding plutôt qu'écart entre les liens), même
	   rythme visuel qu'auparavant entre les libellés. */
	.fc-main-nav .wp-block-navigation__container {
		gap: 0.2rem;
	}

	.fc-main-nav .wp-block-navigation-item__content {
		border-radius: 10px;
		color: #1f3b5a;
		font-weight: 600;
		letter-spacing: 0.01em;
		padding: 0.65rem 0.6rem;
		transition: color 180ms ease;
	}

	.fc-main-nav .wp-block-navigation-item__content:hover {
		color: var(--wp--custom--color--blue-strong);
	}

	/* Indicateur : court trait arrondi centré sous le libellé. Survol : amorce discrète
	   (moitié de la largeur, atténuée) ; page courante : trait complet. */
	.fc-main-nav .wp-block-navigation-item__content::after {
		background: linear-gradient(90deg, #159dea 0%, #0065c3 100%);
		border-radius: 3px;
		bottom: 0.3rem;
		content: "";
		height: 3px;
		left: 50%;
		margin-left: -9px;
		opacity: 0;
		position: absolute;
		transform: scaleX(0);
		transform-origin: center;
		transition: transform 200ms cubic-bezier(0.2, 0.7, 0.2, 1), opacity 200ms ease;
		width: 18px;
	}

	.fc-main-nav .wp-block-navigation-item__content:hover::after {
		opacity: 0.5;
		transform: scaleX(0.5);
	}

	.fc-main-nav .current-menu-item > .wp-block-navigation-item__content::after,
	body.home .fc-main-nav .fc-nav-home > .wp-block-navigation-item__content::after {
		opacity: 1;
		transform: scaleX(1);
	}

	.fc-main-nav .current-menu-item > .wp-block-navigation-item__content,
	body.home .fc-main-nav .fc-nav-home > .wp-block-navigation-item__content {
		color: var(--wp--custom--color--blue-strong);
		font-weight: 700;
	}

	/* Focus clavier : anneau arrondi autour de la zone du lien, détaché du texte. */
	.fc-main-nav .wp-block-navigation-item__content:focus-visible {
		outline: 2px solid var(--wp--preset--color--blue);
		outline-offset: 2px;
	}

	/* Pages juridiques : sommaire collant sous l'en-tête, à gauche de la colonne de lecture. */
	.fc-legal-page {
		--fc-legal-width: 1120px;
	}

	.fc-legal-layout {
		grid-template-columns: var(--fc-legal-toc-width) minmax(0, 1fr);
	}

	/* Lignes compactes (souris) : le sommaire tient dans un écran de 768 px de haut ; sur
	   un écran plus bas, il ne dépasse pas la fenêtre. */
	.fc-legal-toc {
		align-self: start;
		max-height: calc(100vh - var(--fc-sticky-height) - var(--wp-admin--admin-bar--height, 0px) - 48px);
		overflow-y: auto;
		position: sticky;
		scrollbar-width: thin;
		top: calc(var(--fc-sticky-height) + var(--wp-admin--admin-bar--height, 0px) + 24px);
	}

	.fc-legal-toc-list a {
		font-size: 0.9rem;
		line-height: 1.25;
		min-height: 34px;
		padding-block: 0.2rem;
	}

	/* Contact : colonne de droite sticky (l'ensemble, pas chaque carte). Sous le header
	   sticky si elle tient dans la fenêtre ; sinon elle défile puis se fixe par le bas,
	   sans défilement interne. --fc-aside-height est mesurée par site.js ; tant qu'elle
	   est absente, la colonne reste dans le flux. */
	.fc-quote-layout > .fc-quote-aside {
		align-self: flex-start;
	}

	.fc-quote-layout > .fc-quote-aside.fc-is-sticky {
		position: sticky;
		top: min(calc(var(--fc-sticky-height) + var(--wp-admin--admin-bar--height, 0px) + 28px), calc(100vh - var(--fc-aside-height) - 24px));
	}
}

/* --- Desktop et tablette (>= 782 px) : séparateurs entre les services rapides --- */

@media (min-width: 782px) {
	.fc-services-panel .wp-block-column:not(:last-child) .fc-quick-service {
		border-right: 1px solid var(--wp--custom--color--line);
	}

	.fc-topbar-email {
		border-left: 1px solid rgba(255, 255, 255, 0.2);
		padding-left: 1.25rem;
	}
}

/* --- Desktop compact (<= 1280 px) --- */

@media (max-width: 1280px) {
	.fc-header-row {
		gap: 1rem;
	}

	.fc-header-cta .fc-cta-long {
		display: none;
	}

	.fc-header-cta .fc-cta-short {
		display: inline;
	}

	.fc-main-nav .wp-block-navigation-item__content {
		font-size: 0.89rem;
	}

	.fc-hero-content {
		padding-inline: 3rem;
	}

	.fc-footer .fc-footer-grid {
		column-gap: 2rem;
	}

	.fc-footer .fc-footer-meta {
		grid-template-columns: minmax(0, 1fr) auto;
	}

	.fc-footer-legal {
		grid-column: 1 / -1;
		grid-row: 2;
	}

	.fc-footer-meta .fc-footer-promise {
		grid-column: 2;
		grid-row: 1;
	}
}

/* --- Tablette (<= 1100 px) : menu burger --- */

@media (max-width: 1100px) {
	.fc-header .fc-header-cta {
		display: none;
	}

	.fc-main-nav {
		flex: 0 0 auto;
		margin-left: auto;
	}

	/* Force le menu replié que le bloc Navigation n'active nativement que sous 600 px. */
	.fc-main-nav .wp-block-navigation__responsive-container:not(.is-menu-open) {
		display: none;
	}

	/* Burger : carré arrondi bleu très pâle, deux traits navy épais dessinés en CSS (les traits
	   du SVG natif ne font que 1,5 px). */
	.fc-main-nav .wp-block-navigation__responsive-container-open {
		align-items: center;
		background: #f2f9fd;
		border: 1px solid #b9dcf0;
		border-radius: 13px;
		box-shadow: 0 2px 8px rgba(6, 60, 117, 0.07);
		color: var(--wp--preset--color--navy);
		display: flex;
		height: 46px;
		justify-content: center;
		margin-left: auto;
		position: relative;
		transition: background-color 180ms ease, border-color 180ms ease, transform 180ms ease;
		width: 46px;
	}

	.fc-main-nav .wp-block-navigation__responsive-container-open svg {
		display: none;
	}

	.fc-main-nav .wp-block-navigation__responsive-container-open::before {
		background: var(--wp--custom--color--navy-deep);
		border-radius: 2px;
		box-shadow: 0 7px 0 var(--wp--custom--color--navy-deep);
		content: "";
		height: 2.5px;
		left: 50%;
		position: absolute;
		top: calc(50% - 4.75px);
		transform: translateX(-50%);
		width: 20px;
	}

	.fc-main-nav .wp-block-navigation__responsive-container-open:hover {
		background: #e3f1fa;
		border-color: #8fc6e6;
		transform: translateY(-1px);
	}

	.fc-main-nav .wp-block-navigation__responsive-container-open:focus-visible {
		outline: 2px solid var(--wp--custom--color--blue-strong);
		outline-offset: 2px;
	}

	/* Menu ouvert : panneau bleu marine à droite (plein écran <= 430 px). Hauteur réelle de l'écran
	   (100dvh, 100vh en repli) ; le panneau ne défile que si son contenu dépasse vraiment. */
	.fc-main-nav .wp-block-navigation__responsive-container.is-menu-open {
		--fc-menu-pad-top: max(1.4rem, calc(env(safe-area-inset-top) + 0.75rem));
		--fc-menu-pad-x: clamp(1rem, 4.5vw, 1.4rem);
		animation: fc-menu-enter 200ms cubic-bezier(0.2, 0.7, 0.2, 1) both;
		background: linear-gradient(180deg, var(--wp--custom--color--navy-deep) 0%, #063d74 100%) !important;
		bottom: 0;
		box-shadow: -18px 0 45px rgba(1, 26, 57, 0.23);
		box-sizing: border-box;
		display: block;
		height: 100vh;
		height: 100dvh;
		left: auto;
		max-width: 100vw;
		overflow-x: hidden;
		overflow-y: auto;
		overscroll-behavior: contain;
		padding: var(--fc-menu-pad-top) var(--fc-menu-pad-x) max(1rem, calc(env(safe-area-inset-bottom) + 0.75rem));
		position: fixed;
		right: 0;
		scrollbar-color: rgba(255, 255, 255, 0.28) transparent;
		scrollbar-width: thin;
		top: 0;
		width: min(430px, 100vw);
	}

	/* Fermer : même famille que le burger (carré arrondi de 46 px, X épais), centré sur le logo. */
	.fc-main-nav .wp-block-navigation__responsive-container-close {
		align-items: center;
		background: rgba(167, 220, 246, 0.1);
		border: 1px solid rgba(167, 220, 246, 0.24);
		border-radius: 13px;
		color: var(--wp--preset--color--white);
		display: flex;
		height: 46px;
		justify-content: center;
		position: absolute;
		right: 0;
		top: 4px;
		transition: background-color 180ms ease, border-color 180ms ease;
		width: 46px;
	}

	.fc-main-nav .wp-block-navigation__responsive-container-close svg {
		display: none;
	}

	.fc-main-nav .wp-block-navigation__responsive-container-close::before,
	.fc-main-nav .wp-block-navigation__responsive-container-close::after {
		background: currentColor;
		border-radius: 2px;
		content: "";
		height: 2.5px;
		left: 50%;
		position: absolute;
		top: 50%;
		width: 18px;
	}

	.fc-main-nav .wp-block-navigation__responsive-container-close::before {
		transform: translate(-50%, -50%) rotate(45deg);
	}

	.fc-main-nav .wp-block-navigation__responsive-container-close::after {
		transform: translate(-50%, -50%) rotate(-45deg);
	}

	.fc-main-nav .wp-block-navigation__responsive-container-close:hover {
		background: rgba(167, 220, 246, 0.18);
		border-color: rgba(167, 220, 246, 0.4);
	}

	.fc-main-nav .wp-block-navigation__responsive-container-close:focus-visible {
		outline: 2px solid var(--wp--custom--color--ice-strong);
		outline-offset: 2px;
	}

	/* Sous 601 px, la barre d'administration défile avec la page : le menu plein écran passe au-dessus
	   d'elle, sans la marge que WordPress lui réserve. Il est ainsi identique connecté ou non, en haut
	   de page comme après une ancre. (L'en-tête collant crée le contexte d'empilement du menu.)
	   Au-delà, la barre reste fixe et visible : le menu se place dessous, comme prévu par WordPress. */
	@media (max-width: 600px) {
		html.has-modal-open header.wp-block-template-part {
			z-index: 100000;
		}

		html.has-modal-open .admin-bar .fc-main-nav .is-menu-open .wp-block-navigation__responsive-dialog {
			margin-top: 0;
		}
	}

	.fc-main-nav .is-menu-open .wp-block-navigation__responsive-dialog {
		position: relative;
	}

	.fc-main-nav .is-menu-open .wp-block-navigation__responsive-container-content {
		align-items: stretch;
		box-sizing: border-box;
		display: flex;
		flex-direction: column;
		justify-content: flex-start;
		padding: 0 !important;
		width: 100%;
	}

	.fc-main-nav .is-menu-open .fc-menu-brand {
		align-items: center;
		display: flex;
		flex: 0 0 auto;
		height: 54px;
		margin-bottom: 1.35rem;
		max-width: calc(100% - 62px);
	}

	.fc-menu-brand a {
		align-items: center;
		border-radius: 6px;
		display: inline-flex;
	}

	.fc-menu-brand img {
		display: block;
		height: auto;
		max-height: 54px;
		max-width: 160px;
		width: auto !important;
	}

	/* Navigation principale : typographie et rythme, sans séparateurs ni flèches. */
	.fc-main-nav .is-menu-open .wp-block-navigation__container {
		align-items: stretch !important;
		flex: 0 0 auto;
		flex-direction: column;
		gap: 0 !important;
		margin: 0;
		width: 100%;
	}

	.fc-main-nav .is-menu-open .wp-block-navigation-item {
		width: 100%;
	}

	.fc-main-nav .is-menu-open .wp-block-navigation-item__content {
		align-items: center;
		background: none;
		border-radius: 8px;
		box-sizing: border-box;
		color: rgba(255, 255, 255, 0.86);
		display: flex;
		font-size: 1.14rem;
		font-weight: 600;
		letter-spacing: 0.005em;
		line-height: 1.25;
		min-height: 50px;
		transition: color 180ms ease;
		width: 100%;
	}

	/* Retrait identique pour chaque entrée (place de l'indicateur actif) ; le bloc Navigation
	   remet ce padding à 0 avec un sélecteur plus spécifique. */
	.fc-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item:not(.fc-nav-quote) > .wp-block-navigation-item__content {
		padding: 0.55rem 0.5rem 0.55rem 1.1rem;
	}

	.fc-main-nav .is-menu-open .wp-block-navigation-item__content:active {
		color: var(--wp--preset--color--white);
	}

	/* Focus clavier seulement (jamais au toucher) : anneau discret, distinct de l'état actif. */
	.fc-main-nav .is-menu-open .wp-block-navigation-item__content:focus-visible {
		outline: 2px solid var(--wp--custom--color--ice-strong);
		outline-offset: -2px;
	}

	/* Élément actif (page courante, ou section visible via le scrollspy de site.js) : texte blanc et
	   court trait vert à gauche, sans fond. */
	body:not(.fc-scrollspy-ready) .fc-main-nav .is-menu-open .current-menu-item:not(.fc-nav-quote) > .wp-block-navigation-item__content,
	body.home:not(.fc-scrollspy-ready) .fc-main-nav .is-menu-open .fc-nav-home > .wp-block-navigation-item__content,
	body.fc-scrollspy-ready .fc-main-nav .is-menu-open .fc-scrollspy-current:not(.fc-nav-quote) > .wp-block-navigation-item__content {
		color: var(--wp--preset--color--white);
		font-weight: 700;
	}

	body:not(.fc-scrollspy-ready) .fc-main-nav .is-menu-open .current-menu-item:not(.fc-nav-quote) > .wp-block-navigation-item__content::before,
	body.home:not(.fc-scrollspy-ready) .fc-main-nav .is-menu-open .fc-nav-home > .wp-block-navigation-item__content::before,
	body.fc-scrollspy-ready .fc-main-nav .is-menu-open .fc-scrollspy-current:not(.fc-nav-quote) > .wp-block-navigation-item__content::before {
		background: #8ddc2c;
		border-radius: 2px;
		content: "";
		height: 14px;
		left: 0.15rem;
		position: absolute;
		top: 50%;
		transform: translateY(-50%);
		width: 2.5px;
	}

	/* CTA devis : vert Fresh Clean, presque pleine largeur, flèche des autres CTA. */
	.fc-main-nav .is-menu-open .fc-nav-quote {
		display: flex;
		margin-top: 1.25rem;
	}

	.fc-main-nav .is-menu-open .fc-nav-quote > .wp-block-navigation-item__content {
		background: linear-gradient(180deg, #90da16, #43b900);
		border-radius: 12px;
		box-shadow: 0 8px 18px rgba(1, 26, 57, 0.28);
		color: var(--wp--custom--color--navy-deep);
		font-size: 1rem;
		font-weight: 800;
		justify-content: center;
		min-height: 50px;
		text-align: center;
		transition: filter 180ms ease, box-shadow 180ms ease, transform 180ms ease;
	}

	.fc-main-nav .is-menu-open .fc-nav-quote > .wp-block-navigation-item__content::after {
		content: "\00a0 →";
		white-space: pre;
	}

	.fc-main-nav .is-menu-open .fc-nav-quote > .wp-block-navigation-item__content:hover {
		background: linear-gradient(180deg, #90da16, #43b900);
		box-shadow: 0 10px 22px rgba(1, 26, 57, 0.34);
		color: var(--wp--custom--color--navy-deep);
		filter: brightness(1.06);
	}

	.fc-main-nav .is-menu-open .fc-nav-quote > .wp-block-navigation-item__content:active {
		transform: translateY(1px);
	}

	.fc-main-nav .is-menu-open .fc-nav-quote > .wp-block-navigation-item__content:focus-visible {
		outline: 2px solid var(--wp--preset--color--white);
		outline-offset: 3px;
	}

	/* Informations pratiques (injectées par site.js), séparées du CTA par l'espace seul. */
	.fc-main-nav .is-menu-open .fc-menu-footer {
		background: rgba(167, 220, 246, 0.07);
		border-radius: 16px;
		display: block;
		margin-top: 1.6rem;
		padding: 0.9rem 1rem 0.55rem;
	}

	.fc-menu-footer-label {
		color: var(--wp--custom--color--ice-strong);
		font-size: 0.7rem;
		font-weight: 800;
		letter-spacing: 0.14em;
		line-height: 1.2;
		margin: 0 0 0.2rem;
		text-transform: uppercase;
	}

	.fc-menu-location {
		align-items: flex-start;
		color: var(--wp--custom--color--ice-pale);
		display: flex;
		font-size: 0.86rem;
		gap: 0.6rem;
		line-height: 1.45;
		margin: 0.2rem 0 0.2rem;
	}

	.fc-menu-location::before,
	.fc-menu-contact::before {
		background: var(--fc-icon-location) center / contain no-repeat;
		content: "";
		flex: 0 0 16px;
		height: 16px;
		margin-top: 0.1rem;
	}

	/* Une coordonnée par ligne, quelle que soit la largeur du panneau. */
	.fc-menu-contact {
		align-items: center;
		border-radius: 6px;
		color: var(--wp--preset--color--white);
		display: flex;
		font-size: 0.92rem;
		font-weight: 600;
		gap: 0.6rem;
		max-width: 100%;
		min-height: 40px;
		overflow-wrap: anywhere;
		text-decoration: none;
		transition: color 180ms ease;
		width: fit-content;
	}

	.fc-menu-contact::before {
		margin-top: 0;
	}

	.fc-menu-phone::before {
		background-image: var(--fc-icon-phone);
	}

	.fc-menu-email::before {
		background-image: var(--fc-icon-email);
	}

	.fc-menu-contact:hover {
		color: #a6e54b;
	}

	.fc-menu-contact:focus-visible,
	.fc-menu-brand a:focus-visible {
		outline: 2px solid var(--wp--custom--color--ice-strong);
		outline-offset: 3px;
	}

	.fc-cta > .alignwide {
		justify-content: center;
	}

	.fc-cta-intro {
		margin-inline: auto;
	}

	/* Pied de page : deux colonnes, marque et contact (avec le CTA) au premier rang. */
	.fc-footer .fc-footer-grid {
		gap: 2.5rem 2.5rem;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.fc-footer-brand-col {
		order: -2;
	}

	.fc-footer-contact-col {
		order: -1;
	}

	/* Contact : formulaire pleine largeur, réassurance en dessous. */
	.wp-block-columns.fc-quote-layout {
		flex-wrap: wrap !important;
	}

	.fc-quote-layout > .wp-block-column {
		flex-basis: 100% !important;
	}

	.fc-service-cards.fc-service-cards--advantages {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
	}

	.fc-service-cards--advantages > .fc-service-card {
		flex: 0 1 calc((100% - 2 * var(--fc-cards-gap)) / 3);
	}

	/* Pages juridiques : sommaire au-dessus du texte, sur deux colonnes ; avec site.js, il
	   devient un bouton « Sommaire de la page » qui ouvre la liste dans un panneau. */
	.fc-legal-body {
		padding-top: 1.5rem;
	}

	.fc-legal-toc-list {
		column-gap: 1rem;
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-button-submit {
		width: min(100%, 600px);
	}

	.fc-legal-toc.fc-legal-toc--enhanced {
		background: none;
		border: 0;
		box-shadow: none;
		padding: 0;
	}

	.fc-legal-toc--enhanced .fc-legal-toc-toggle {
		display: flex;
	}

	.fc-legal-toc--enhanced .fc-legal-toc-title,
	.fc-legal-toc--enhanced:not(.is-open) .fc-legal-toc-list {
		display: none;
	}

	.fc-legal-toc--enhanced .fc-legal-toc-list {
		background: var(--wp--preset--color--white);
		border: 1px solid var(--wp--custom--color--line);
		border-radius: 14px;
		box-shadow: 0 12px 28px rgba(6, 60, 117, 0.08);
		margin-top: 0.5rem;
		padding: 0.5rem;
	}
}

/* --- Tablette uniquement (782–1100 px) : au-dessous, les colonnes s'empilent nativement --- */

@media (min-width: 782px) and (max-width: 1100px) {
	/* Contact : colonne de texte du hero limitée à 460 px et voile calé sur elle
	   (en px : dense sous le texte, fondu ensuite), quelle que soit la largeur de la carte. */
	.wp-block-cover.fc-page-hero::before {
		background: linear-gradient(90deg, rgba(3, 34, 70, 0.78) 0, rgba(5, 48, 96, 0.76) 530px, rgba(6, 60, 117, 0.3) 680px, rgba(6, 60, 117, 0) 820px);
	}

	.fc-page-hero .fc-page-hero-content > * {
		max-width: 460px;
	}

	.fc-benefits-section .fc-benefits {
		display: grid;
		gap: 1rem !important;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.fc-benefits > .wp-block-column {
		margin: 0;
		width: auto;
	}

	.fc-service-area .wp-block-column:first-child {
		flex-basis: 48% !important;
	}

	.fc-service-area .wp-block-column:last-child {
		flex-basis: 45% !important;
	}

	/* Contact : les deux cartes de réassurance côte à côte sous le formulaire. */
	.fc-quote-aside {
		align-items: start;
		display: grid;
		gap: 1.25rem;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.fc-quote-aside > .fc-quote-panel {
		margin: 0;
	}
}

/* --- Tablette étroite et mobile (<= 781 px) --- */

@media (max-width: 781px) {
	:root {
		--fc-topbar-height: 31px;
		--fc-sticky-height: 76px;
	}

	:where(.fc-section) {
		padding-block: 3.5rem;
	}

	/* Topbar : bandeau défilant (deux copies pour une boucle continue). */
	.fc-topbar {
		overflow: hidden;
	}

	.fc-topbar-ticker {
		animation: fc-topbar-loop 26s linear infinite;
		display: flex;
		flex: 0 0 auto;
		width: max-content;
		will-change: transform;
	}

	.fc-topbar-copy {
		display: flex;
	}

	.fc-topbar > .alignwide,
	.fc-topbar-ticker > .alignwide {
		display: flex;
		flex-wrap: nowrap;
		gap: 1.5rem;
		justify-content: flex-start;
		max-width: none;
		min-width: max-content;
		padding-inline: 1rem;
		white-space: nowrap;
		width: max-content;
	}

	.fc-topbar > .alignwide {
		overflow-x: auto;
		overflow-y: hidden;
		scrollbar-width: none;
	}

	.fc-topbar > .alignwide::-webkit-scrollbar {
		display: none;
	}

	.fc-topbar-ticker > .alignwide {
		flex: 0 0 auto;
		margin: 0;
		overflow: visible;
	}

	.fc-topbar > .alignwide > .wp-block-group,
	.fc-topbar-ticker > .alignwide > .wp-block-group {
		display: contents;
	}

	.fc-topbar-location,
	.fc-topbar-email,
	.fc-topbar-phone {
		flex: 0 0 auto;
		margin: 0;
		scroll-snap-align: start;
	}

	.fc-topbar-phone {
		font-size: 0.78rem !important;
		order: 1;
	}

	.fc-topbar-location {
		order: 2;
	}

	.fc-topbar-email {
		order: 3;
	}

	.fc-topbar:focus-within .fc-topbar-ticker {
		animation: none;
		transform: translateX(0);
	}

	.fc-header-main {
		padding-block: 0.3rem !important;
	}

	.fc-header-row {
		margin-inline: auto;
		min-height: calc(var(--fc-sticky-height) - 0.6rem);
		width: 100%;
	}

	.fc-header .fc-brand-logo img {
		max-width: 140px;
	}

	/* Hero : texte à gauche sur un voile sombre lisible. */
	.fc-hero {
		min-height: 580px !important;
		text-align: left;
	}

	.fc-hero .wp-block-cover__background.has-background-dim-0 {
		background: linear-gradient(90deg, rgba(1, 23, 49, 0.92) 0%, rgba(2, 29, 61, 0.84) 32%, rgba(2, 35, 73, 0.38) 64%, rgba(2, 35, 73, 0.08) 100%);
		opacity: 1 !important;
		z-index: 1;
	}

	.fc-hero .wp-block-cover__image-background {
		object-position: 62% center;
		z-index: 0;
	}

	.fc-hero .wp-block-cover__inner-container {
		position: relative;
		z-index: 2;
	}

	.fc-hero-content {
		padding: 3rem 1.25rem 5rem !important;
	}

	.fc-hero h1 {
		font-size: clamp(2.35rem, 7.6vw, 3.2rem) !important;
		line-height: 1.01;
	}

	.fc-hero .fc-lead {
		font-size: 1rem;
		font-weight: 500;
		max-width: 36ch;
	}

	.fc-hero .fc-checks {
		gap: 0.4rem;
		justify-content: flex-start;
	}

	.fc-hero .fc-checks p {
		font-size: 0.91rem;
	}

	.fc-hero .wp-block-buttons {
		justify-content: flex-start;
	}

	/* Services : slider horizontal. */
	.fc-services-overlap {
		margin-top: -38px !important;
	}

	.fc-services-panel {
		overflow: hidden;
		padding: 0.55rem !important;
	}

	.fc-services-panel .fc-slider-shell .wp-block-columns {
		flex-wrap: nowrap !important;
		gap: 0.55rem;
		justify-content: flex-start;
		margin: 0;
		padding: 0.25rem 0 0.35rem;
		scroll-padding-inline: 0;
	}

	.wp-site-blocks .fc-services-panel .fc-slider-shell .wp-block-columns > .wp-block-column {
		box-sizing: border-box;
		flex: 0 0 calc(40% - 4px) !important;
		margin: 0;
		max-width: calc(40% - 4px);
		min-width: 0;
		scroll-snap-align: start;
		scroll-snap-stop: always;
		width: calc(40% - 4px);
	}

	.fc-services-panel .fc-quick-service {
		background: var(--wp--custom--color--surface);
		border: 1px solid var(--wp--custom--color--line);
		border-radius: 14px;
		box-sizing: border-box;
		height: 100%;
		min-height: 144px;
		padding: 0.85rem 0.4rem;
	}

	.fc-services-panel .fc-service-icon {
		height: 80px;
		margin: 0 auto 0.35rem !important;
		width: 80px;
	}

	.fc-services-panel .fc-service-icon img {
		height: 76px;
		width: 76px;
	}

	.fc-services-panel .fc-quick-service h3 {
		font-size: 0.88rem;
		line-height: 1.2;
		margin: 0 !important;
	}

	/* Comportement commun des deux sliders. */
	.fc-slider-shell .wp-block-columns {
		overflow-x: auto;
		overflow-y: hidden;
		overscroll-behavior-x: contain;
		scroll-behavior: smooth;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
		-webkit-overflow-scrolling: touch;
	}

	.fc-slider-shell .wp-block-columns::-webkit-scrollbar {
		display: none;
	}

	.fc-slider-shell::before,
	.fc-slider-shell::after {
		bottom: 0;
		content: "";
		display: block;
		pointer-events: none;
		position: absolute;
		top: 0;
		width: 18px;
		z-index: 2;
	}

	.fc-slider-shell::before {
		background: linear-gradient(90deg, rgba(255, 255, 255, 0.74), transparent);
		left: 0;
	}

	.fc-slider-shell::after {
		background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.74));
		right: 0;
	}

	.fc-slider-shell.is-at-start::before,
	.fc-slider-shell.is-at-end::after {
		display: none;
	}

	.fc-slider-shell .fc-slider-controls {
		display: block;
		inset: 0;
		margin: 0;
		padding: 0;
		pointer-events: none;
		position: absolute;
		z-index: 3;
	}

	.fc-slider-shell .fc-slider-controls button {
		align-items: center;
		background: rgba(255, 255, 255, 0.87);
		border: 1px solid rgba(154, 205, 232, 0.85);
		border-radius: 50%;
		box-shadow: 0 3px 10px rgba(4, 46, 85, 0.2);
		color: var(--wp--custom--color--blue-strong);
		cursor: pointer;
		display: inline-flex;
		font-size: 1.45rem;
		height: 32px;
		justify-content: center;
		line-height: 1;
		padding: 0 0 0.12rem;
		pointer-events: auto;
		position: absolute;
		top: 50%;
		transform: translateY(-50%);
		transition: transform 220ms ease, background-color 220ms ease, box-shadow 220ms ease;
		width: 32px;
	}

	.fc-slider-shell .fc-slider-controls .fc-slider-prev {
		left: -8px;
	}

	.fc-slider-shell .fc-slider-controls .fc-slider-next {
		right: -8px;
	}

	.fc-slider-shell .fc-slider-controls button:disabled {
		cursor: default;
		opacity: 0;
		pointer-events: none;
		visibility: hidden;
	}

	.fc-slider-shell .fc-slider-controls button:not(:disabled):hover {
		background: var(--wp--preset--color--white);
		box-shadow: 0 5px 13px rgba(4, 46, 85, 0.24);
	}

	.fc-slider-shell .fc-slider-controls .fc-slider-next:not(:disabled):hover {
		transform: translate(2px, -50%);
	}

	.fc-slider-shell .fc-slider-controls .fc-slider-prev:not(:disabled):hover {
		transform: translate(-2px, -50%);
	}

	.fc-slider-shell .fc-slider-controls button:focus-visible {
		outline: 2px solid var(--wp--preset--color--blue);
		outline-offset: 2px;
	}

	/* Comparateur et avantages. */
	.fc-comparison {
		aspect-ratio: 2.15 / 1;
	}

	.fc-benefits-section {
		padding-block: 1.9rem 2.25rem;
	}

	.fc-benefits-section h2 br {
		display: initial;
	}

	.fc-benefits-section .fc-benefits {
		display: grid;
		gap: 0.65rem !important;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		margin-top: 1.1rem !important;
	}

	.fc-benefits > .wp-block-column {
		margin: 0;
		width: auto;
	}

	.fc-benefits .fc-card {
		padding: 0.85rem 0.65rem !important;
	}

	.fc-benefit-icon,
	.fc-benefit-icon img {
		width: 75px;
	}

	.fc-benefits h3 {
		font-size: 1rem !important;
		line-height: 1.25;
	}

	.fc-benefits .fc-card p {
		font-size: 0.84rem;
		line-height: 1.4;
	}

	/* Prestations et tarifs : grilles de cartes 2 colonnes. */
	.fc-offerings-section,
	.fc-pricing {
		padding-block: 2.5rem;
	}

	.fc-offerings-section .wp-block-column > .wp-block-columns {
		display: grid;
		gap: 0.75rem;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.fc-offerings-section .wp-block-column > .wp-block-columns > .wp-block-column {
		margin: 0;
		width: auto;
	}

	.fc-offerings-section .fc-card-arrow {
		background: transparent;
		box-shadow: none;
		flex: 0 0 42px;
		font-size: 1.28rem;
		height: 42px;
		isolation: isolate;
		position: relative;
		width: 42px;
	}

	.fc-offerings-section .fc-card-arrow::before {
		background: var(--wp--preset--color--white);
		border-radius: 50%;
		box-shadow: 0 3px 10px rgba(0, 33, 70, 0.25);
		content: "";
		inset: 5px;
		position: absolute;
		z-index: -1;
	}

	/* Processus : la ligne pointillée horizontale disparaît. */
	.fc-process-grid::before {
		display: none;
	}

	.fc-process-grid > .wp-block-column {
		margin: 0;
		min-width: 0;
	}

	.fc-process-grid .fc-step > * {
		margin: 0 !important;
	}

	/* Zone d'intervention : carte puis plan empilés. */
	.fc-service-area {
		display: block;
		padding: 1.5rem 1rem;
	}

	.fc-service-area .wp-block-cover__inner-container {
		display: block;
	}

	.fc-service-area .wp-block-columns {
		align-items: center !important;
		flex-direction: column;
		gap: 1.2rem;
		margin-block: 0;
	}

	.fc-service-area .wp-block-columns > .wp-block-column {
		flex-basis: auto !important;
		width: 100%;
	}

	.fc-service-area .wp-block-column:first-child {
		background: var(--wp--preset--color--white);
		box-sizing: border-box;
		max-width: 560px;
		overflow: visible;
		padding: 1.2rem;
	}

	.fc-map-visual {
		margin-inline: auto !important;
		max-width: 230px;
	}

	/* CTA : intro puis boutons pleine largeur. */
	.fc-cta {
		padding-block: 1.25rem;
		text-align: center;
	}

	.fc-cta > .alignwide {
		align-items: stretch;
		flex-direction: column;
		gap: 0.95rem;
	}

	.fc-cta-intro {
		margin-inline: 0;
		padding-right: 0;
		text-align: left;
		width: 100%;
	}

	.fc-contact-links {
		align-items: stretch;
		flex-direction: column;
		width: 100%;
	}

	.fc-contact-links .wp-block-button,
	.fc-contact-links .wp-block-button__link {
		width: 100%;
	}

	/* Témoignages : slider horizontal. */
	.fc-testimonials-section {
		padding-block: 2.2rem 2.4rem;
	}

	.fc-testimonials-section .fc-slider-shell {
		margin-top: var(--wp--preset--spacing--50);
	}

	.fc-testimonials-section .fc-slider-shell .wp-block-columns {
		flex-wrap: nowrap !important;
		gap: 0.75rem;
		margin-top: 0 !important;
		padding: 0.25rem 1rem 0.3rem;
		scroll-padding-inline: 1rem;
	}

	.wp-site-blocks .fc-testimonials-section .wp-block-columns > .wp-block-column {
		box-sizing: border-box;
		flex: 0 0 44% !important;
		margin: 0;
		max-width: 44%;
		min-width: 0;
		scroll-snap-align: start;
		scroll-snap-stop: always;
		width: 44%;
	}

	.fc-testimonial {
		padding: 1rem 1.1rem !important;
	}

	.fc-testimonial > * + * {
		margin-block-start: 0.55rem !important;
	}

	/* Pied de page : grille 2 colonnes, cibles tactiles de 32 px au moins. */
	.fc-footer {
		padding: 2.75rem 1.1rem 1.5rem !important;
	}

	.fc-footer .fc-footer-grid {
		gap: 2rem 1.5rem;
	}

	.fc-footer .fc-brand-logo img {
		max-width: 190px;
	}

	.fc-footer .fc-footer-title {
		margin-bottom: 1rem;
	}

	.fc-footer .wp-block-navigation__container,
	.fc-footer .fc-footer-list {
		gap: 0.2rem;
	}

	.fc-footer .wp-block-navigation-item__content,
	.fc-footer-list li {
		align-items: center;
		display: flex;
		min-height: 34px;
	}

	.fc-footer .wp-block-buttons {
		justify-content: flex-start;
	}

	.fc-footer .fc-footer-meta {
		align-items: start;
		gap: 0.6rem;
		grid-template-columns: 1fr;
		margin-top: 2.25rem;
	}

	.fc-footer-legal {
		grid-column: 1;
	}

	.fc-footer-meta .fc-footer-promise {
		grid-column: 1;
		grid-row: auto;
		justify-self: start;
	}


	.fc-footer-leaf {
		display: none;
	}

	/* Formulaire de devis : 46 px, texte de 16 px (évite le zoom iOS), boutons d'action 40 px. */
	#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form {
		--fc-action-h: 40px;
		--fc-choice-h: 46px;
		--fc-field-font: 1rem;
		--fc-field-h: 46px;
		--fc-row-gap: 14px;
	}

	#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form[data-grid="open"] .forminator-col:not(:last-child) {
		margin-bottom: var(--fc-row-gap);
	}

	/* Pages juridiques : fiches et petites cartes sur une colonne. */
	.fc-legal-facts,
	.fc-legal-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.fc-legal-facts > p:nth-child(2) {
		border-top: 1px solid #e6f1f8;
	}

	.fc-legal-placeholder > p:nth-child(2) {
		border-top-color: #f3e3c2;
	}

	/* Contact : hero compact, voile renforcé, réassurances empilées. */
	.wp-block-cover.fc-page-hero {
		min-height: 0;
	}

	.wp-block-cover.fc-page-hero::before {
		background: linear-gradient(90deg, rgba(1, 23, 49, 0.93) 0%, rgba(2, 29, 61, 0.85) 55%, rgba(2, 35, 73, 0.45) 100%);
	}

	/* Décalage fixe (et non en %) : le visage du conseiller reste juste à droite
	   de la colonne de texte (400 px) quelle que soit la largeur de la carte. */
	.fc-page-hero .wp-block-cover__image-background {
		object-position: -170px 0%;
	}

	.fc-page-hero-content {
		padding-block: 2.25rem 2.5rem;
	}

	.fc-page-hero .fc-checks {
		gap: 0.45rem;
		margin-top: 1.2rem;
	}

	.fc-page-hero .fc-checks p {
		font-size: 0.92rem;
	}

	.fc-quote-section {
		padding-block: 1.75rem 2.5rem;
	}

	.fc-quote-card-header {
		margin-bottom: 1.35rem;
		padding-bottom: 1.2rem;
	}

	.fc-assurance-grid {
		gap: 1rem;
		margin-inline: auto;
		max-width: 520px;
	}

	.fc-quote-cta-section {
		padding-bottom: 2.5rem;
	}

	.fc-quote-cta {
		align-items: stretch;
		flex-direction: column;
	}

	.fc-quote-cta-intro {
		flex-basis: auto;
	}

	/* Prestation : grilles sur deux colonnes, flèches de la méthode retirées. */
	.fc-service-intro .fc-service-intro-grid {
		gap: 2rem;
	}

	.fc-service-cards,
	.fc-service-steps {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.fc-service-steps {
		row-gap: 2.25rem;
	}

	.fc-service-cards--advantages > .fc-service-card {
		flex-basis: calc((100% - var(--fc-cards-gap)) / 2);
	}

	.fc-service-step:not(:last-child)::after {
		display: none;
	}

	/* Même espace avant le pied de page qu'entre les sections. */
	.fc-service-cta {
		padding-bottom: var(--fc-service-gap);
	}
}

@media (max-width: 781px) and (hover: hover) {
	.fc-topbar:hover .fc-topbar-ticker {
		animation-play-state: paused;
	}
}

/* --- Tablette étroite uniquement (601–781 px) : étapes en cartes 2 colonnes --- */

/* Colonne de texte étroite : le titre des tarifs passe à la ligne naturellement. */
@media (min-width: 782px) and (max-width: 880px) {
	.fc-pricing h2 br {
		display: none;
	}

	/* Le bouton et sa flèche tiennent sur une ligne dans la colonne étroite. */
	.fc-pricing .wp-block-button__link {
		font-size: 0.9rem;
		padding-inline: 1.15rem;
		white-space: nowrap;
	}
}

@media (min-width: 601px) and (max-width: 781px) {
	/* Contact : texte du hero à gauche, personnes visibles à droite. */
	.fc-page-hero .fc-page-hero-content > * {
		max-width: 400px;
	}

	.fc-process-section {
		padding-block: 2.2rem 2.4rem;
	}

	.fc-process-section .fc-process-grid {
		display: grid;
		gap: 0.85rem;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.fc-process-grid .fc-step {
		align-items: center;
		background: var(--wp--custom--color--surface) !important;
		border: 1px solid var(--wp--custom--color--line);
		border-radius: 15px;
		box-shadow: 0 5px 18px rgba(5, 61, 110, 0.06);
		box-sizing: border-box;
		column-gap: 0.7rem;
		display: grid;
		grid-template-columns: 66px minmax(0, 1fr);
		grid-template-rows: auto auto;
		min-height: 132px;
		padding: 0.9rem !important;
		text-align: left;
	}

	.fc-process-grid .fc-process-icon {
		grid-column: 1;
		grid-row: 1 / 3;
		width: 66px;
	}

	.fc-process-grid h3 {
		align-self: end;
		font-size: 0.96rem !important;
		grid-column: 2;
		grid-row: 1;
	}

	.fc-process-grid p {
		align-self: start;
		font-size: 0.82rem;
		grid-column: 2;
		grid-row: 2;
		line-height: 1.4;
	}
}

/* --- Mobile (<= 600 px) --- */

@media (max-width: 600px) {
	/* La barre d'administration n'est plus fixe sous 601 px (elle défile) : l'en-tête
	   collant s'aligne sur le haut de la fenêtre, sans vide de 46 px au-dessus. */
	.admin-bar header.wp-block-template-part {
		top: calc(-1 * var(--fc-topbar-height));
	}

	/* Pages juridiques : une colonne ; le contenu des sections passe sous le pictogramme. */
	.fc-legal-hero-content {
		grid-template-columns: minmax(0, 1fr);
		row-gap: 0;
	}

	.fc-legal-hero-content > *,
	.fc-legal-hero-content > .fc-legal-icon {
		grid-column: 1;
		grid-row: auto;
	}

	.fc-legal-hero-content > .fc-legal-icon {
		margin-bottom: 1.1rem;
	}

	.fc-legal-icon--hero {
		border-radius: 16px;
		height: 56px;
		width: 56px;
	}

	.fc-legal-icon--hero svg {
		height: 28px;
		width: 28px;
	}

	.fc-legal-toc-list {
		grid-template-columns: minmax(0, 1fr);
	}

	.fc-legal-section {
		column-gap: 0.85rem;
		grid-template-columns: 44px minmax(0, 1fr);
		padding-block: 1.9rem;
	}

	.fc-legal-section > .fc-legal-icon {
		border-radius: 12px;
		height: 44px;
		width: 44px;
	}

	.fc-legal-section > :not(.fc-legal-icon, h2) {
		grid-column: 1 / -1;
	}

	.fc-legal-help {
		grid-template-columns: minmax(0, 1fr);
	}

	.fc-legal-help > .wp-block-buttons {
		grid-column: 1;
		grid-row: auto;
		margin-top: 0.75rem;
	}

	.fc-section h2 {
		font-size: clamp(1.75rem, 7vw, 2.125rem) !important;
	}

	.fc-hero {
		min-height: 550px !important;
	}

	.fc-hero .wp-block-cover__background.has-background-dim-0 {
		background: linear-gradient(90deg, rgba(1, 23, 49, 0.94) 0%, rgba(2, 29, 61, 0.82) 52%, rgba(2, 35, 73, 0.22) 100%) !important;
	}

	.fc-hero h1 {
		font-size: clamp(2.2rem, 9vw, 2.9rem) !important;
	}

	.fc-hero .fc-lead {
		max-width: 30ch;
	}

	.fc-hero .wp-block-button__link {
		font-size: 0.91rem;
	}

	.fc-comparison {
		aspect-ratio: 1.8 / 1;
	}

	.fc-comparison .fc-comparison-image img {
		object-position: center 41%;
	}

	.fc-comparison-handle {
		height: 44px;
		width: 44px;
	}

	/* Colonnes dépliées : rythme commun du texte et des cartes ; bouton des tarifs après les cartes. */
	.fc-offerings-section > .wp-block-columns > .wp-block-column,
	.fc-pricing > .wp-block-columns > .wp-block-column {
		display: contents;
	}

	.fc-offerings-section > .wp-block-columns > .wp-block-column:nth-child(2) > .wp-block-columns,
	.fc-pricing > .wp-block-columns > .wp-block-column:nth-child(2) > .fc-price-grid {
		order: 1;
		width: 100%;
	}

	.fc-pricing > .wp-block-columns > .wp-block-column:first-child > .wp-block-buttons {
		order: 2;
	}

	/* Sur-titre, titre et texte gardent chacun leur ligne (colonne dépliée). */
	.fc-pricing > .wp-block-columns > .wp-block-column:first-child > * {
		width: 100%;
	}

	.fc-offerings-section .wp-block-column > .wp-block-columns,
	.fc-pricing .fc-price-grid {
		gap: 0.7rem;
	}

	/* Deuxième rangée de cartes : même écart qu'entre deux cartes (0,7 rem), l'écart de 1 rem
	   des colonnes dépliées s'ajoutant à sa marge. */
	.fc-offerings-section .wp-block-column > .wp-block-columns + .wp-block-columns {
		margin-top: calc(0.7rem - 1rem);
	}

	.fc-offering-card {
		height: 160px;
	}

	.fc-offering-card h3 {
		font-size: 0.9rem !important;
		padding: 0.45rem 0.55rem !important;
	}

	.fc-price-grid .fc-price-card {
		min-height: 168px;
		padding: 0.75rem 0.35rem !important;
	}

	.fc-price {
		font-size: 1.85rem;
	}

	/* Cartes larges sur toute la largeur, sous les trois cartes simples. */
	.fc-price-grid > .fc-price-wide {
		grid-column: 1 / -1;
		min-height: 0;
	}

	/* Processus : liste verticale reliée par un pointillé. */
	.fc-process-section {
		padding-block: 2.35rem;
	}

	.fc-process-section .fc-process-grid {
		display: grid;
		gap: 0;
		grid-template-columns: 1fr;
		margin-top: 1rem !important;
	}

	.fc-process-grid::before {
		border-left: 2px dashed #afdff4;
		border-top: 0;
		bottom: 40px;
		display: block;
		left: 37px;
		right: auto;
		top: 39px;
		width: 0;
	}

	.fc-process-grid .fc-step {
		align-items: center;
		column-gap: 0.85rem;
		display: grid;
		grid-template-columns: 74px minmax(0, 1fr);
		padding: 0.55rem 0 !important;
		text-align: left;
	}

	.fc-process-icon {
		grid-column: 1;
		grid-row: 1 / 3;
		width: 74px;
	}

	.fc-process-grid h3 {
		align-self: end;
		font-size: 0.98rem !important;
		grid-column: 2;
		grid-row: 1;
	}

	.fc-process-grid p {
		align-self: start;
		font-size: 0.85rem;
		grid-column: 2;
		grid-row: 2;
		line-height: 1.35;
	}

	.fc-service-area h2 {
		font-size: 1.55rem !important;
	}

	.fc-service-area .fc-zone-list {
		font-size: 0.84rem;
		line-height: 1.45;
	}

	.fc-map-visual {
		max-width: 200px;
	}

	.fc-contact-phone .wp-block-button__link::before,
	.fc-contact-email .wp-block-button__link::before {
		height: 19px;
		vertical-align: -4px;
		width: 19px;
	}

	.wp-site-blocks .fc-testimonials-section .wp-block-columns > .wp-block-column {
		flex-basis: 82% !important;
		max-width: 82%;
		width: 82%;
	}

	.fc-footer .fc-footer-grid {
		gap: 0;
		grid-template-columns: 1fr;
	}

	.fc-footer-grid > .wp-block-column {
		border-bottom: 1px solid rgba(255, 255, 255, 0.14);
		padding: 1.5rem 0;
	}

	.fc-footer-grid > .fc-footer-brand-col {
		padding-top: 0;
	}

	.fc-footer .fc-footer-title {
		margin-bottom: 0.85rem;
	}

	.fc-footer .fc-footer-meta {
		border-top: 0;
		margin-top: 0.5rem;
	}

	.fc-footer-legal {
		column-gap: 0.8rem !important;
		row-gap: 0.1rem !important;
	}

	/* Contact : cartes resserrées, envoi pleine largeur. */
	.fc-quote-card {
		padding: 1.35rem 1.1rem;
	}

	.fc-quote-panel {
		padding: 1.25rem 1.1rem;
	}

	.fc-quote-card-header {
		grid-template-columns: 46px minmax(0, 1fr);
	}

	.fc-quote-card-header::before {
		background-size: 24px 24px;
		height: 46px;
		width: 46px;
	}

	#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-field:has(> .forminator-checkbox.forminator-has_image) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-button-submit {
		font-size: 1rem;
		padding: 0.9rem 1.25rem;
		width: 100%;
	}

	#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-field:has(> .forminator-checkbox:not(.forminator-has_image)),
	#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-field:has(> .forminator-radio:not(.forminator-has_image)) {
		grid-template-columns: minmax(0, 1fr);
	}

	.fc-faq-item summary {
		font-size: 0.96rem;
		padding: 0.85rem 1rem;
	}

	.fc-faq-item > :not(summary) {
		font-size: 0.92rem;
		padding: 0 1rem 1rem;
	}

	.wp-block-cover.fc-page-hero,
	.fc-quote-cta {
		border-radius: 18px;
	}

	/* Contact : le texte couvre toute la carte ; cadrage sur le canapé, aucun visage sous le texte. */
	.fc-page-hero .wp-block-cover__image-background {
		object-position: 0% 50%;
	}

	.wp-block-cover.fc-page-hero::before {
		background: linear-gradient(90deg, rgba(1, 23, 49, 0.9) 0%, rgba(2, 29, 61, 0.86) 60%, rgba(2, 35, 73, 0.72) 100%);
	}

	.fc-quote-cta {
		padding: 1.5rem 1.15rem;
	}

	/* Prestation : comparateur et cartes compacts. */
	.fc-comparison-tag {
		bottom: 0.65rem;
		font-size: 0.78rem;
		padding: 0.45rem 0.8rem;
	}

	.fc-comparison-tag--before {
		left: 0.65rem;
	}

	.fc-comparison-tag--after {
		right: 0.65rem;
	}

	.fc-service-panel {
		border-radius: 18px;
		padding-inline: 0.75rem;
	}

	.fc-service-cards {
		gap: 0.75rem;
	}

	.fc-service-cards.fc-service-cards--advantages {
		--fc-cards-gap: 0.75rem;
	}

	.fc-service-card {
		border-radius: 14px;
		padding: 1rem 0.6rem 1.1rem;
	}

	.fc-service-card p {
		font-size: 0.84rem;
	}

	.fc-service-steps {
		column-gap: 1rem;
	}

	.fc-service-step p {
		font-size: 0.86rem;
	}
}

/* --- Petit mobile (<= 430 px) --- */

@media (max-width: 430px) {
	.fc-price-icon,
	.fc-price-icon img {
		width: 58px;
	}

	.fc-price-icon img {
		height: 54px;
	}

	.fc-cta-intro {
		grid-template-columns: 46px minmax(0, 1fr);
	}

	.fc-cta-intro::before {
		height: 46px;
		width: 46px;
	}

	.fc-main-nav .wp-block-navigation__responsive-container.is-menu-open {
		width: 100vw;
	}

	.fc-hero-content {
		padding: 2.8rem 1.1rem 5rem !important;
	}

	.fc-hero .fc-checks p {
		font-size: 0.86rem;
	}

	.fc-hero .wp-block-button,
	.fc-hero .wp-block-button__link {
		width: 100%;
	}

	.fc-services-panel {
		border-radius: 18px !important;
	}

	.fc-benefits .fc-card {
		padding: 0.75rem 0.5rem !important;
	}

	.fc-benefit-icon,
	.fc-benefit-icon img {
		width: 68px !important;
	}

	.fc-benefits h3 {
		font-size: 0.92rem !important;
	}

	.fc-benefits .fc-card p {
		font-size: 0.81rem;
	}

	.fc-offering-card {
		height: 148px;
	}

	.fc-price-grid .fc-price-card {
		min-height: 160px;
	}

	.fc-price {
		font-size: 1.7rem;
	}

	.fc-contact-links .wp-block-button__link {
		font-size: 0.8rem;
	}

	.fc-page-hero .fc-checks p {
		font-size: 0.86rem;
	}

	.fc-quote-card,
	.fc-quote-panel {
		border-radius: 16px;
	}

	.fc-quote-steps > li {
		padding-left: 3rem;
	}

	.fc-quote-detail--phone a {
		font-size: 1.3rem;
	}

	.fc-quote-tip {
		padding: 0.9rem 0.95rem 0.95rem 3.1rem;
	}

	.fc-quote-tip::before {
		left: 0.9rem;
	}

	/* Petit mobile : prestations en 2 colonnes, image au-dessus du libellé. */
	#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-checkbox.forminator-has_image {
		flex-direction: column;
		gap: 0.35rem;
		padding: 0.6rem 0.55rem;
		text-align: center;
	}

	#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-checkbox.forminator-has_image .forminator-checkbox-image {
		flex-basis: auto;
		height: 44px;
		width: 44px;
	}

	#demande-de-devis .fc-quote-form .forminator-ui.forminator-custom-form .forminator-checkbox.forminator-has_image .forminator-checkbox-label {
		flex: 0 1 auto;
		font-size: 0.9rem;
	}
}

/* Écrans tactiles : le curseur du comparateur se déplace depuis sa poignée uniquement. */
@media (pointer: coarse) {
	.fc-comparison-range {
		pointer-events: none;
	}
}
