/* ==========================================================================
   Thème FMRS – styles complémentaires
   Les couleurs, polices et tailles sont déclarées dans theme.json :
   ce fichier gère la mise en page des compositions (hero, cartes, téléphones…).
   Approche « mobile d'abord » : les règles de base visent les petits écrans,
   les @media (min-width: …) ajoutent les ajustements pour les grands écrans.
   ========================================================================== */

/* ---------- Base ---------- */
html { scroll-behavior: smooth; }
body { overflow-x: hidden; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; }

/* Focus clavier bien visible sur fond noir comme sur fond blanc. */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--wp--preset--color--bleu-electrique);
	outline-offset: 3px;
	box-shadow: 0 0 0 6px #fff;
}

/* Texte réservé aux lecteurs d'écran. */
.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

/* Titres en capitales à chasse large (repris du PDF). */
.fmrs-surtitre {
	font-family: var(--wp--preset--font-family--titres);
	font-weight: 700;
	font-size: 0.75rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	line-height: 1.2;
}

/* Sections claires (fond blanc, texte noir), comme les pages « chiffres » du PDF. */
.fmrs-section-claire { background: #fff; color: #000; }
.fmrs-section-claire a { color: #000; }

/* ---------- En-tête du site ---------- */
.fmrs-entete { position: relative; z-index: 20; padding-left: 16px !important; padding-right: 16px !important; }
@media (min-width: 768px) { .fmrs-entete { padding-left: 40px !important; padding-right: 40px !important; } }
.fmrs-marque .wp-block-site-title { margin: 0; }
.fmrs-marque .wp-block-site-logo img { max-height: 48px; width: auto; }
.fmrs-marque:has(.wp-block-site-logo img) .wp-block-site-title { display: none; }

.fmrs-menu { font-family: var(--wp--preset--font-family--titres); }
.fmrs-menu ul { list-style: none; margin: 0; padding: 0; }
.fmrs-menu a {
	display: inline-block;
	padding: 0.75rem 0.25rem;
	min-height: 44px; /* zone tactile confortable */
	color: #fff;
	text-decoration: none;
	text-transform: uppercase;
	font-weight: 600;
	font-size: 0.8125rem;
	letter-spacing: 0.03em;
}
.fmrs-menu a:hover,
.fmrs-menu .current-menu-item > a { text-decoration: underline; text-underline-offset: 6px; }

/* Bouton burger (mobile). */
.fmrs-menu__burger {
	display: inline-flex; align-items: center; justify-content: center;
	width: 48px; height: 48px; padding: 0;
	background: transparent; border: 1px solid #fff; color: #fff; cursor: pointer;
}
.fmrs-menu__barres,
.fmrs-menu__barres::before,
.fmrs-menu__barres::after {
	display: block; width: 22px; height: 2px; background: currentColor; position: relative;
	transition: transform .2s ease, background-color .2s ease;
}
.fmrs-menu__barres::before, .fmrs-menu__barres::after { content: ""; position: absolute; left: 0; }
.fmrs-menu__barres::before { top: -7px; }
.fmrs-menu__barres::after { top: 7px; }
[aria-expanded="true"] .fmrs-menu__barres { background: transparent; }
[aria-expanded="true"] .fmrs-menu__barres::before { transform: translateY(7px) rotate(45deg); }
[aria-expanded="true"] .fmrs-menu__barres::after { transform: translateY(-7px) rotate(-45deg); }

/* Panneau du menu mobile : plein écran sous l'en-tête. */
.fmrs-menu__panneau {
	display: none;
	position: fixed; inset: 80px 0 0 0;
	background: #000; padding: 24px 16px; overflow-y: auto;
}
.fmrs-menu-ouvert .fmrs-menu__panneau { display: block; }
.fmrs-menu-ouvert { overflow: hidden; }
.fmrs-menu__panneau .fmrs-menu__liste a { font-size: 1.375rem; padding: 0.9rem 0; }
.fmrs-menu__panneau .fmrs-menu__liste li { border-bottom: 1px solid #333; }

/* Sélecteur de langue. */
.fmrs-langues { display: flex; gap: 0.5rem; margin-top: 1.5rem !important; }
.fmrs-langues a { border: 1px solid #fff; padding: 0.6rem 0.8rem !important; min-width: 44px; text-align: center; }
.fmrs-langues .current-lang a { background: #fff; color: #000; }

@media (min-width: 1024px) {
	.fmrs-menu__burger { display: none; }
	.fmrs-menu__panneau {
		display: flex !important; align-items: center; gap: 1.5rem;
		position: static; padding: 0; background: none; overflow: visible;
	}
	.fmrs-menu__panneau .fmrs-menu__liste { display: flex; gap: 1.25rem; }
	.fmrs-menu__panneau .fmrs-menu__liste li { border: 0; }
	.fmrs-menu__panneau .fmrs-menu__liste a { font-size: 0.8125rem; padding: 0.75rem 0.25rem; }
	.fmrs-langues { margin-top: 0 !important; }
	.fmrs-langues a { padding: 0.35rem 0.6rem !important; min-height: 0; }
	.fmrs-menu-ouvert { overflow: visible; }
}

/* Menu du pied de page. */
.fmrs-menu--pied-de-page ul { display: flex; flex-wrap: wrap; gap: 0 1.25rem; }
.fmrs-menu--pied-de-page a { font-size: 0.75rem; font-weight: 400; }
.fmrs-pied .wp-block-site-title { font-size: 1.125rem; }

/* ---------- En-tête des pages intérieures ---------- */
.fmrs-entete-page { padding-top: clamp(1.5rem, 4vw, 3rem); padding-bottom: clamp(1rem, 3vw, 2rem); }
.fmrs-entete-page .fmrs-titre-page { margin-top: clamp(2rem, 6vw, 4.5rem); font-weight: 800; overflow-wrap: break-word; hyphens: manual; }
.fmrs-plateformes { color: var(--wp--preset--color--gris-texte); }

/* ---------- Bandeau 3 colonnes (gauche / centre / droite) ---------- */
.fmrs-bandeau {
	display: grid !important;
	grid-template-columns: 1fr 1fr;
	gap: 0.5rem 1rem;
	align-items: start;
}
.fmrs-bandeau > * { margin: 0 !important; }
.fmrs-bandeau > :nth-child(2) { grid-column: 1 / -1; order: 3; text-align: left; }
.fmrs-bandeau > :nth-child(3) { text-align: right; }
@media (min-width: 768px) {
	.fmrs-bandeau { grid-template-columns: 1fr auto 1fr; }
	.fmrs-bandeau > :nth-child(2) { grid-column: auto; order: 0; text-align: center; }
}

/* ---------- Hero (portrait en miroir + dégradé bleu) ---------- */
.fmrs-hero {
	position: relative;
	min-height: min(88vh, 860px);
	display: flex; flex-direction: column; justify-content: center;
	overflow: hidden;
	isolation: isolate;
}
.fmrs-hero__visuels {
	position: absolute !important; inset: 0; z-index: -2;
	display: grid !important; grid-template-columns: 1fr 1fr; gap: 0 !important;
	margin: 0 !important;
}
.fmrs-hero__visuels figure { margin: 0 !important; height: 100%; }
.fmrs-hero__visuels img { width: 100%; height: 100% !important; object-fit: cover; object-position: 72% 30%; } /* garde le visage cadré, même sur mobile */
.fmrs-hero__visuels .fmrs-miroir img { transform: scaleX(-1); }
/* Dégradé du noir vers le bleu électrique en bas. */
.fmrs-hero::after {
	content: ""; position: absolute; inset: 0; z-index: -1;
	background: linear-gradient(180deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.15) 40%, rgba(10,20,168,.6) 78%, #1726F1 100%);
}
/* Le dégradé bleu « déborde » sur la section suivante puis s'estompe vers le noir. */
.fmrs-hero + * {
	margin-block-start: 0 !important; /* collé au hero, sans bande noire */
	background: linear-gradient(180deg, #1726F1 0, rgba(23,38,241,.55) 90px, rgba(10,20,168,.18) 220px, #000 380px);
}
/* Logo dans le hero (image) : taille équivalente au grand titre. */
.fmrs-hero .fmrs-logo-hero { margin: 0 auto !important; width: min(70vw, 560px); }
.fmrs-hero .fmrs-logo-hero img { width: 100%; height: auto; filter: drop-shadow(0 4px 40px rgba(0,0,0,.35)); }
@media (prefers-reduced-motion: no-preference) {
	.fmrs-hero .fmrs-logo-hero { animation: fmrs-apparition .9s ease-out both; }
}
.fmrs-hero .fmrs-bandeau { position: absolute; top: 1.25rem; left: 16px; right: 16px; }
.fmrs-hero h1 {
	text-align: center;
	font-size: var(--wp--preset--font-size--geant);
	font-weight: 800;
	line-height: 0.9;
	margin: 0;
	text-shadow: 0 4px 40px rgba(0,0,0,.35);
}
@media (min-width: 768px) {
	.fmrs-hero .fmrs-bandeau { left: 40px; right: 40px; top: 2rem; }
}

/* ---------- Présentation (texte + portrait) ---------- */
.fmrs-presentation .wp-block-image img { filter: drop-shadow(0 30px 60px rgba(23,38,241,.25)); }
.fmrs-presentation p strong { font-weight: 700; }

/* ---------- Cartes génériques ---------- */
.fmrs-grille {
	display: grid !important;
	grid-template-columns: 1fr;
	gap: 1.25rem !important;
}
@media (min-width: 768px) { .fmrs-grille { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .fmrs-grille--3 { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1280px) { .fmrs-grille--4 { grid-template-columns: repeat(4, 1fr); } }
.fmrs-grille > * { margin: 0 !important; }

/* Carte de compétence : icône dans un carré bleu, titre sur 2 lignes réservées, description.
   Toutes les cartes de la grille ont la même hauteur (lignes de hauteur égale). */
.fmrs-grille--4 { grid-auto-rows: 1fr; }
.fmrs-carte-competence {
	background: var(--wp--preset--color--gris-fonce);
	border: 1px solid #2a2a2a;
	padding: 1.75rem 1.5rem;
	height: 100%;
	display: flex !important; flex-direction: column; gap: .9rem;
	transition: border-color .2s ease, transform .2s ease;
}
.fmrs-carte-competence > * { margin: 0 !important; }
.fmrs-carte-competence:hover { border-color: var(--wp--preset--color--bleu-electrique); transform: translateY(-3px); }
.fmrs-carte-competence__icone {
	width: 52px; height: 52px; display: grid !important; place-items: center;
	background: var(--wp--preset--color--bleu-electrique);
}
.fmrs-carte-competence__icone img { width: 26px; height: 26px; }
.fmrs-carte-competence h3 {
	font-size: 1rem; line-height: 1.2;
	min-height: 2.4em; /* 2 lignes réservées : les descriptions commencent toutes à la même hauteur */
	display: flex; align-items: flex-end;
}
.fmrs-carte-competence p { color: #D6D6D6; font-size: .9375rem; line-height: 1.55; }
.fmrs-carte-competence .fmrs-exemple {
	border-left: 3px solid var(--wp--preset--color--bleu-electrique);
	padding-left: 0.9rem; color: var(--wp--preset--color--gris-texte); font-size: 0.9375rem;
}

/* Tuiles « logo + nom » (plateformes, outils, secteurs). */
.fmrs-tuiles {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)); /* mobile : 2 par ligne, largeurs égales */
	gap: 1rem !important;
}
/* Les tuiles remplissent toujours toute la largeur, sans case vide en bout de ligne. */
@media (min-width: 768px) {
	.fmrs-tuiles { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.fmrs-tuiles--6 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
	.fmrs-tuiles--6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}
@media (min-width: 1280px) {
	.fmrs-tuiles--8 { grid-template-columns: repeat(8, minmax(0, 1fr)); }
	.fmrs-tuiles--8 .fmrs-tuile { padding-inline: .5rem; }
}
.fmrs-tuiles > * { margin: 0 !important; }
.fmrs-tuile {
	background: var(--wp--preset--color--gris-fonce); border: 1px solid #2a2a2a;
	padding: 1.25rem 1rem; text-align: center;
	display: flex !important; flex-direction: column; align-items: center; justify-content: center; gap: .75rem;
}
.fmrs-tuile p { margin: 0 !important; font-size: .9375rem; font-weight: 600; overflow-wrap: break-word; hyphens: manual; }
.fmrs-tuile .fmrs-tuile__logo { margin: 0 !important; }
.fmrs-tuile .fmrs-tuile__logo img { width: 40px; height: 40px; object-fit: contain; }

/* Bloc de chiffre clé : titre sur un coup de pinceau bleu. */
.fmrs-chiffre h3 {
	position: relative; z-index: 0; display: inline-block;
	color: #fff; font-size: 1.0625rem; line-height: 1.05;
	padding: 1rem 1.6rem; margin: .6rem 0 1.6rem 1.2rem;
}
.fmrs-chiffre h3::before {
	/* Le pinceau déborde du texte pour que les titres longs restent toujours sur fond bleu. */
	content: ""; position: absolute; inset: -14% -10%; z-index: -1;
	background: url("../img/pinceau.svg") center / 100% 100% no-repeat;
}
.fmrs-chiffre p {
	font-family: var(--wp--preset--font-family--titres);
	font-weight: 700; text-transform: uppercase; font-size: 0.875rem; line-height: 1.3;
}
.fmrs-chiffre p .fmrs-leger, .fmrs-chiffre p em { font-weight: 400; font-style: normal; }

/* Carte d'étude de cas (générée automatiquement ou insérée à la main). */
.fmrs-cartes-etudes {
	display: grid; grid-template-columns: 1fr; gap: 1.25rem;
}
@media (min-width: 768px) { .fmrs-cartes-etudes { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .fmrs-cartes-etudes { grid-template-columns: repeat(3, 1fr); } }
.fmrs-carte-etude {
	position: relative; display: flex; flex-direction: column;
	background: var(--wp--preset--color--gris-fonce); border: 1px solid #2a2a2a;
	transition: border-color .2s ease, transform .2s ease;
}
.fmrs-carte-etude:hover, .fmrs-carte-etude:focus-within { border-color: var(--wp--preset--color--bleu-secondaire); transform: translateY(-3px); }
.fmrs-carte-etude__visuel {
	aspect-ratio: 4 / 3; overflow: hidden; margin: 0;
	background: radial-gradient(circle at 50% 60%, var(--wp--preset--color--bleu-secondaire) 0 38%, transparent 38.5%);
	display: flex; align-items: flex-end; justify-content: center;
}
.fmrs-carte-etude__visuel img { width: auto; height: 92%; object-fit: contain; }
.fmrs-carte-etude__texte { padding: 1.25rem 1.5rem 1.5rem; }
.fmrs-carte-etude__titre { font-size: 1rem; margin: 0 0 .5rem; }
.fmrs-carte-etude__titre a { text-decoration: none; }
/* Toute la carte est cliquable. */
.fmrs-carte-etude__titre a::after { content: ""; position: absolute; inset: 0; }
.fmrs-carte-etude__extrait { color: var(--wp--preset--color--gris-texte); font-size: .9375rem; margin: 0 0 1rem; }
.fmrs-carte-etude__lien { font-family: var(--wp--preset--font-family--titres); font-size: .75rem; text-transform: uppercase; font-weight: 700; margin: 0; }

/* Carte d'offre. */
.fmrs-carte-offre {
	border: 1px solid #fff; padding: 1.75rem 1.5rem; height: 100%;
	display: flex; flex-direction: column; gap: 1rem;
}
.fmrs-carte-offre h3 { margin: 0; }
.fmrs-carte-offre .fmrs-prix {
	font-family: var(--wp--preset--font-family--titres); font-size: 1.125rem; font-weight: 700; line-height: 1.3;
	margin: 0; padding: .9rem 0; border-top: 1px solid #333; border-bottom: 1px solid #333;
}
.fmrs-carte-offre h3 { font-size: 1.0625rem; line-height: 1.25; }
.fmrs-carte-offre .wp-block-button, .fmrs-carte-offre .wp-block-button__link { width: 100%; text-align: center; }
.fmrs-mentions-offres { color: var(--wp--preset--color--gris-texte); font-size: .9375rem; }
.fmrs-mentions-offres .fmrs-telephone { color: #fff; font-size: 1.125rem; font-weight: 600; }
.fmrs-mentions-offres .fmrs-telephone a { white-space: nowrap; }
.fmrs-carte-offre ul { padding-left: 1.1rem; margin: 0; }
.fmrs-carte-offre .wp-block-buttons { margin-top: auto; }

/* ---------- Étude de cas : téléphones sur cercles bleus ---------- */
.fmrs-telephones {
	position: relative; isolation: isolate;
	display: flex !important; justify-content: center; align-items: center; gap: 16% !important;
	padding: 2rem 0;
}
.fmrs-telephones::before {
	/* Deux grands cercles bleus qui se chevauchent, plus larges que les téléphones (comme dans le PDF). */
	content: ""; position: absolute; z-index: 0; inset: 0 -8%;
	background:
		radial-gradient(circle closest-side, var(--wp--preset--color--bleu-secondaire) 99%, transparent 100%) 0% center / 56% 100% no-repeat,
		radial-gradient(circle closest-side, var(--wp--preset--color--bleu-secondaire) 99%, transparent 100%) 100% center / 56% 100% no-repeat;
}
.fmrs-telephones figure { position: relative; z-index: 1; margin: 0 !important; flex: 0 1 30%; max-width: 210px; }
.fmrs-telephones img {
	display: block; width: 100%; aspect-ratio: 9 / 19; object-fit: cover; object-position: top;
	border: 8px solid #0d0d0d; border-radius: 32px; background: #000;
	box-shadow: 0 0 0 2px #3a3a3a, 0 20px 50px rgba(0,0,0,.5);
}
.fmrs-etiquette-client { text-align: right; }
/* Captures claires (tweets, posts sur fond blanc) : fond blanc dans le téléphone. */
.fmrs-telephones .fmrs-ecran-clair img { background: #fff; object-fit: contain; object-position: center; }
.fmrs-entete-page .fmrs-mission { margin-top: clamp(2rem, 6vw, 4.5rem); margin-bottom: 0; color: var(--wp--preset--color--gris-texte); }
.fmrs-entete-page .fmrs-mission + .fmrs-titre-page { margin-top: .5rem; }
.fmrs-etude h2 { font-size: var(--wp--preset--font-size--moyen); font-weight: 400; margin-top: 2rem; }
.fmrs-etude h2:first-child { margin-top: 0; }

/* Ancre « Publications » : laisse de l'espace au-dessus quand on y arrive par un lien. */
#publications { scroll-margin-top: 2rem; }

/* Section des chiffres clés sur fond blanc. */
.fmrs-section-claire h2 { color: #000; }
.fmrs-section-claire .fmrs-chiffre p { color: #000; }

/* Un seul téléphone : un seul cercle, centré. */
.fmrs-telephones:has(> figure:only-child)::before {
	background: radial-gradient(circle closest-side, var(--wp--preset--color--bleu-secondaire) 99%, transparent 100%) center / 70% 100% no-repeat;
}
.fmrs-telephones > figure:only-child { flex-basis: 40%; }

/* Galerie de visuels supplémentaires (ex. grossiste). */
.fmrs-galerie img { border-radius: 6px; }

/* ---------- Publications (liens vers les posts) ---------- */
.fmrs-publications .wp-block-details summary {
	font-family: var(--wp--preset--font-family--titres); font-weight: 700; text-transform: uppercase;
	cursor: pointer; padding: .5rem 0; min-height: 44px;
}
.fmrs-publications .wp-block-buttons { gap: .5rem; }
.fmrs-publications .wp-block-button__link {
	background: transparent; border: 1px solid #fff; font-size: .75rem; padding: .7rem 1rem;
}
.fmrs-publications .wp-block-button__link:hover { background: #fff; color: #000; }

/* ---------- Bandeau « Me contacter » en bas de page ---------- */
.fmrs-appel-contact {
	background: var(--wp--preset--color--bleu-electrique);
	padding: clamp(2rem, 5vw, 3.5rem) 16px;
	margin-block-start: 0 !important;
}
.fmrs-appel-contact__interieur {
	max-width: 1280px; margin: 0 auto;
	display: flex; flex-wrap: wrap; gap: 1.5rem; align-items: center; justify-content: space-between;
}
.fmrs-appel-contact h2 { margin: 0; font-size: var(--wp--preset--font-size--grand); font-weight: 800; }
.fmrs-appel-contact__texte p { margin: .4rem 0 0; font-size: var(--wp--preset--font-size--moyen); }
.fmrs-appel-contact .wp-block-button__link { background: transparent; border: 2px solid #fff; color: #fff; }
.fmrs-appel-contact .wp-block-button__link:hover { background: #fff; color: var(--wp--preset--color--bleu-electrique); }
.fmrs-appel-contact .fmrs-bouton-plein .wp-block-button__link { background: #fff; color: var(--wp--preset--color--bleu-electrique); }
.fmrs-appel-contact .fmrs-bouton-plein .wp-block-button__link:hover { background: transparent; color: #fff; }
.fmrs-appel-contact__actions { display: flex; flex-direction: column; gap: .75rem; }
.fmrs-appel-contact__note { margin: 0; font-size: .875rem; }
.fmrs-appel-contact__note a { color: #fff; font-weight: 600; text-decoration: underline; text-underline-offset: .2em; }
/* Prix d'appel (accueil, page Offres verrouillée) */
.fmrs-prix-appel, .fmrs-mdp__prix { font-weight: 700; }

/* ---------- Formulaire de mot de passe (page Offres) ---------- */
.fmrs-mdp {
	max-width: 640px; margin: 2rem auto; padding: 2rem 1.5rem;
	border: 1px solid #fff; background: var(--wp--preset--color--gris-fonce);
}
.fmrs-mdp__titre {
	font-family: var(--wp--preset--font-family--titres); font-weight: 700; text-transform: uppercase;
	font-size: 1.375rem; margin-top: 0;
}
.fmrs-mdp__ligne { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; }
.fmrs-mdp__ligne label { width: 100%; font-weight: 600; }
.fmrs-mdp__ligne input[type="password"] {
	flex: 1 1 220px; min-height: 48px; padding: .6rem .9rem;
	font: inherit; background: #000; color: #fff; border: 1px solid #fff; border-radius: 0;
}
.fmrs-mdp button { min-height: 48px; border: 0; cursor: pointer; }

/* ---------- Formulaire de contact (Fluent Forms) ---------- */
.fmrs-formulaire .ff-el-form-control {
	background: #000 !important; color: #fff !important;
	border: 1px solid #fff !important; border-radius: 0 !important; min-height: 48px; font: inherit;
}
.fmrs-formulaire .ff-el-input--label label { color: #fff; font-weight: 600; }
.fmrs-formulaire .ff-btn-submit {
	background: var(--wp--preset--color--bleu-electrique) !important; color: #fff !important;
	border-radius: 0 !important; font-family: var(--wp--preset--font-family--titres) !important;
	text-transform: uppercase; font-weight: 700; min-height: 48px; padding: .9rem 1.6rem !important;
}
.fmrs-formulaire a { color: #fff; }

/* ---------- Mention [À COMPLÉTER] : bien visible pour ne rien oublier ---------- */
.fmrs-a-completer { outline: 2px dashed #ffd400; outline-offset: 4px; }

/* ---------- Animations sobres ---------- */
@media (prefers-reduced-motion: no-preference) {
	.fmrs-hero h1 { animation: fmrs-apparition .9s ease-out both; }
	@keyframes fmrs-apparition { from { transform: translateY(16px); } to { transform: none; } } /* jamais invisible, même si l'animation ne se joue pas */
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* Espacement régulier entre les grandes sections d'une page. */
.wp-block-group.alignwide + .wp-block-group.alignwide { margin-block-start: clamp(2.5rem, 5vw, 4rem); }

/* Tuiles cliquables (secteurs) : toute la tuile est cliquable. */
.fmrs-tuile--lien { position: relative; transition: border-color .2s ease, transform .2s ease; }
.fmrs-tuile--lien a { color: #fff; text-decoration: none; }
.fmrs-tuile--lien a::after { content: ""; position: absolute; inset: 0; }
.fmrs-tuile--lien:hover, .fmrs-tuile--lien:focus-within { border-color: var(--wp--preset--color--bleu-secondaire); transform: translateY(-3px); }
.fmrs-tuile--lien p::after { content: " →"; }
.fmrs-publications details { scroll-margin-top: 2rem; }

/* ---------- Finitions visuelles ---------- */
/* Cartes d'études de cas : capture présentée comme un écran de téléphone, lien toujours aligné en bas. */
.fmrs-carte-etude__visuel img { border: 6px solid #0d0d0d; border-bottom: 0; border-radius: 22px 22px 0 0; box-shadow: 0 0 0 1px #3a3a3a; }
.fmrs-carte-etude__texte { display: flex; flex-direction: column; flex: 1; }
.fmrs-carte-etude__lien { margin-top: auto !important; color: #fff; }
.fmrs-carte-etude__titre { line-height: 1.2; }

/* Chiffres clés : un peu plus d'air entre les lignes. */
.fmrs-chiffre p + p { margin-top: 1.1rem; }
.fmrs-chiffre p { font-size: .9375rem; line-height: 1.35; }

/* Titres de section : léger trait bleu au-dessus, rappel de l'identité. */
.fmrs-contenu .alignwide > h2.wp-block-heading:first-child::before,
.fmrs-section-claire > h2.wp-block-heading::before {
	content: ""; display: block; width: 48px; height: 4px; margin-bottom: 1rem;
	background: var(--wp--preset--color--bleu-electrique);
}

/* Formulaire : messages d'erreur et de confirmation lisibles sur fond noir (contraste AA). */
.fmrs-formulaire .error, .fmrs-formulaire .text-danger { color: #FF8F8F !important; font-size: .875rem !important; margin-top: .35rem; }
.fmrs-formulaire .ff-el-is-error .ff-el-form-control { border-color: #FF8F8F !important; }
.fmrs-formulaire .ff-message-success { background: var(--wp--preset--color--gris-fonce); color: #fff; border: 1px solid var(--wp--preset--color--bleu-secondaire); padding: 1.5rem; }
.fmrs-formulaire .ff-el-input--label .ff-el-is-required.asterisk-right label::after { color: #FF8F8F; }
.fmrs-formulaire .ff_gdpr_field + span, .fmrs-formulaire .ff-el-form-check label { color: #fff; }
.fmrs-portrait-contact img { width: 100%; }
@media (max-width: 781px) {
	/* Mobile : portrait réduit, pour que le formulaire arrive vite à l'écran. */
	.fmrs-portrait-contact img { max-height: 200px; object-fit: cover; object-position: 60% 30%; }
}

/* ==========================================================================
   Page Offres : curseur de durée et grilles de prix
   ========================================================================== */

/* Sans JavaScript : curseur masqué, tableaux complets visibles.
   Avec JavaScript (classe fmrs-js) : curseur visible, tableaux masqués. */
.fmrs-curseur { display: none; }
.fmrs-js .fmrs-curseur { display: block; }
.fmrs-js .fmrs-grille-tarifs { display: none; }
html:not(.fmrs-js) .fmrs-prix-carte, html:not(.fmrs-js) .fmrs-option-prix { display: none; }
.fmrs-grille-tarifs table { width: 100%; border-collapse: collapse; font-size: .9375rem; }
.fmrs-grille-tarifs th, .fmrs-grille-tarifs td { border: 1px solid #333; padding: .6rem .75rem; text-align: left; }

/* --- Curseur --- */
.fmrs-curseur {
	--fmrs-poignee: 44px;                 /* zone tactile confortable */
	--fmrs-centre: calc(var(--fmrs-poignee) / 2 + (100% - var(--fmrs-poignee)) * var(--fmrs-pos, 1));
	max-width: 860px; margin: 2.5rem auto 1.5rem !important; padding: 0 4px;
}
.fmrs-curseur__titre {
	display: block; margin-bottom: 2.6rem;
	font-family: var(--wp--preset--font-family--titres); font-weight: 700; font-size: .8125rem;
	text-transform: uppercase; letter-spacing: .04em; color: var(--wp--preset--color--gris-texte);
}
.fmrs-curseur__piste { position: relative; }
.fmrs-curseur__champ {
	-webkit-appearance: none; appearance: none; display: block;
	width: 100%; height: var(--fmrs-poignee, 44px); margin: 0; background: transparent; cursor: pointer;
	--fmrs-centre: calc(var(--fmrs-poignee, 44px) / 2 + (100% - var(--fmrs-poignee, 44px)) * var(--fmrs-pos, 1));
}
/* Barre : remplie en bleu électrique jusqu'à la poignée. */
.fmrs-curseur__champ::-webkit-slider-runnable-track {
	height: 6px; border-radius: 3px;
	background: linear-gradient(90deg, var(--wp--preset--color--bleu-electrique) 0 var(--fmrs-centre), #333 var(--fmrs-centre) 100%);
}
.fmrs-curseur__champ::-moz-range-track {
	height: 6px; border-radius: 3px;
	background: linear-gradient(90deg, var(--wp--preset--color--bleu-electrique) 0 var(--fmrs-centre), #333 var(--fmrs-centre) 100%);
}
/* Poignée : 44 × 44 px de zone tactile, disque blanc cerclé de bleu. */
.fmrs-curseur__champ::-webkit-slider-thumb {
	-webkit-appearance: none; width: 44px; height: 44px; margin-top: -19px; border: 0; border-radius: 50%;
	background: radial-gradient(circle, #fff 0 9px, var(--wp--preset--color--bleu-electrique) 9.5px 13px, transparent 13.5px);
	transition: transform .15s ease;
}
.fmrs-curseur__champ::-moz-range-thumb {
	width: 44px; height: 44px; border: 0; border-radius: 50%;
	background: radial-gradient(circle, #fff 0 9px, var(--wp--preset--color--bleu-electrique) 9.5px 13px, transparent 13.5px);
}
.fmrs-curseur__champ:active::-webkit-slider-thumb { transform: scale(1.12); }
.fmrs-curseur__champ:focus-visible { outline: none; box-shadow: none; }
.fmrs-curseur__champ:focus-visible::-webkit-slider-thumb { box-shadow: 0 0 0 3px #fff, 0 0 0 6px var(--wp--preset--color--bleu-electrique); }
.fmrs-curseur__champ:focus-visible::-moz-range-thumb { box-shadow: 0 0 0 3px #fff, 0 0 0 6px var(--wp--preset--color--bleu-electrique); }

/* Bulle de remise au-dessus de la poignée. */
.fmrs-curseur__bulle {
	position: absolute; bottom: calc(100% + 2px); left: var(--fmrs-centre); transform: translateX(-50%);
	background: var(--wp--preset--color--bleu-electrique); color: #fff;
	font-family: var(--wp--preset--font-family--titres); font-weight: 700; font-size: .875rem;
	padding: .3rem .6rem; white-space: nowrap; pointer-events: none;
}
.fmrs-curseur__bulle::after {
	content: ""; position: absolute; top: 100%; left: 50%; transform: translateX(-50%);
	border: 6px solid transparent; border-top-color: var(--wp--preset--color--bleu-electrique);
}
.fmrs-curseur__bulle[hidden] { display: none; }

/* Crans et libellés. */
.fmrs-curseur__crans { position: relative; list-style: none; margin: .4rem 0 0; padding: 0; height: 4.2rem; }
.fmrs-curseur__crans li {
	position: absolute; top: 0; left: calc(22px + (100% - 44px) * var(--k)); transform: translateX(-50%);
	text-align: center; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: .45rem;
}
.fmrs-curseur__crans li:first-child { transform: translateX(-22px); align-items: flex-start; text-align: left; }
.fmrs-curseur__crans li:last-child { transform: translateX(calc(-100% + 22px)); align-items: flex-end; text-align: right; }
.fmrs-curseur__libelle {
	font-family: var(--wp--preset--font-family--titres); font-weight: 700; font-size: .75rem;
	text-transform: uppercase; letter-spacing: .03em; color: var(--wp--preset--color--gris-texte); white-space: nowrap;
	transition: color .2s ease;
}
.fmrs-curseur__crans li.est-actif .fmrs-curseur__libelle { color: #fff; }
.fmrs-curseur__badge {
	font-size: .6875rem; font-weight: 600; white-space: nowrap;
	border: 1px solid var(--wp--preset--color--bleu-electrique); color: #fff; padding: .15rem .5rem;
}
@media (max-width: 600px) {
	.fmrs-curseur__libelle { font-size: .625rem; white-space: normal; max-width: 5.5rem; }
}

/* --- Prix dans les cartes --- */
.fmrs-prix-carte { margin: 0 !important; padding: 1rem 0; border-top: 1px solid #333; border-bottom: 1px solid #333; }
.fmrs-prix-mensuel { display: block; font-family: var(--wp--preset--font-family--titres); font-weight: 800; font-size: clamp(1.6rem, 3vw, 2.1rem); line-height: 1.1; font-variant-numeric: tabular-nums; }
.fmrs-prix-total {
	display: block; margin-top: .35rem; color: var(--wp--preset--color--gris-texte); font-size: .9375rem;
	max-height: 2em; overflow: hidden; transition: opacity .3s ease, max-height .3s ease, margin .3s ease;
}
.fmrs-prix-total.est-masque { opacity: 0; max-height: 0; margin-top: 0; }
.fmrs-option-prix .fmrs-montant { font-weight: 700; font-variant-numeric: tabular-nums; }

/* --- Cartes d'offres --- */
.fmrs-tarifs .fmrs-carte-offre { position: relative; background: var(--wp--preset--color--gris-fonce); border-color: #2a2a2a; }
.fmrs-carte-offre.est-recommandee { border: 2px solid var(--wp--preset--color--bleu-electrique); }
.fmrs-badge-recommande {
	position: absolute; top: 0; right: 1.25rem; transform: translateY(-50%); margin: 0 !important;
	background: var(--wp--preset--color--bleu-electrique); color: #fff;
	font-family: var(--wp--preset--font-family--titres); font-weight: 700; font-size: .6875rem; text-transform: uppercase;
	padding: .3rem .7rem; letter-spacing: .04em;
}
.fmrs-carte-offre h3.fmrs-nom-formule { color: #fff; font-size: 1.375rem; letter-spacing: .02em; margin: 0; }
.fmrs-carte-offre .fmrs-objectif { color: var(--wp--preset--color--gris-texte); font-size: .9375rem; line-height: 1.4; margin-top: -.4rem !important; }

/* Curseur placé dans une carte : version compacte, à la largeur de la carte. */
.fmrs-carte-offre .fmrs-curseur { max-width: none; margin: .25rem 0 0 !important; padding: 0; }
.fmrs-carte-offre .fmrs-curseur__titre { margin-bottom: 2.3rem; font-size: .6875rem; }
.fmrs-carte-offre .fmrs-curseur__crans { height: 3.6rem; }
.fmrs-carte-offre .fmrs-curseur__libelle { font-size: .625rem; white-space: normal; max-width: 4.6rem; line-height: 1.2; }
.fmrs-carte-offre .fmrs-curseur__badge { font-size: .625rem; padding: .1rem .4rem; }
.fmrs-carte-offre .fmrs-curseur__bulle { font-size: .75rem; padding: .2rem .45rem; }

/* Ligne « Plus vous vous engagez… » sous les cartes. */
.fmrs-accroche-remises { font-size: var(--wp--preset--font-size--moyen); margin-top: 1.5rem !important; }
.fmrs-carte-offre .wp-block-list { color: #D6D6D6; font-size: .9375rem; display: grid; gap: .35rem; }
.fmrs-tarifs + .fmrs-tarifs { margin-top: clamp(3rem, 7vw, 5rem) !important; }
.fmrs-option, .fmrs-note-offres { color: var(--wp--preset--color--gris-texte); font-size: .9375rem; }
.fmrs-option { border-left: 3px solid var(--wp--preset--color--bleu-electrique); padding-left: 1rem; }
.fmrs-fin-tarifs { color: var(--wp--preset--color--gris-texte); font-size: .875rem; border-top: 1px solid #333; padding-top: 1.25rem; }
/* Cartes de prix : la liste s'étire, prix et bouton restent alignés en bas sur toute la ligne. */
.fmrs-tarifs .fmrs-carte-offre > .wp-block-list { flex-grow: 1; align-content: start; } /* lignes régulières, même quand la liste s'étire */

/* Pages de texte (modèle « page » : mentions légales, confidentialité, CGV) : intertitres plus sobres. */
.page-template-page .wp-block-post-content h2, .page-template-default .wp-block-post-content h2 { font-size: clamp(1.125rem, 2.2vw, 1.375rem); margin-top: 2.5rem; }
.page-template-page .wp-block-post-content, .page-template-default .wp-block-post-content { font-size: 1rem; }

/* Hero sur mobile (option C) : pas de photo, le logo centré sur le dégradé noir → bleu.
   Le portrait apparaît juste en dessous, dans « Qui je suis ». Ordinateur et tablette inchangés. */
@media (max-width: 767px) {
	.fmrs-hero__visuels { display: none !important; }
	.fmrs-hero { min-height: 72vh; min-height: 72svh; }
	.fmrs-hero::after { background: linear-gradient(180deg, #000 0%, #000 35%, rgba(10,20,168,.7) 80%, #1726F1 100%); }
	.fmrs-hero .fmrs-logo-hero { width: min(70vw, 360px); }
}

/* Sélecteur de langue : petit drapeau + code. */
.fmrs-langues a { display: inline-flex !important; align-items: center; gap: .45rem; }
.fmrs-drapeau { width: 20px; height: 14px; object-fit: cover; display: block; box-shadow: 0 0 0 1px rgba(255,255,255,.35); }
.fmrs-langues .current-lang .fmrs-drapeau { box-shadow: 0 0 0 1px rgba(0,0,0,.25); }

/* ==========================================================================
   Blog
   ========================================================================== */
.fmrs-cartes-articles { gap: 1.25rem !important; }
@media (max-width: 1023px) { .fmrs-cartes-articles { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 599px) { .fmrs-cartes-articles { grid-template-columns: 1fr !important; } }
.fmrs-carte-article {
	position: relative; height: 100%;
	background: var(--wp--preset--color--gris-fonce); border: 1px solid #2a2a2a;
	display: flex !important; flex-direction: column; transition: border-color .2s ease, transform .2s ease;
}
.fmrs-carte-article:hover, .fmrs-carte-article:focus-within { border-color: var(--wp--preset--color--bleu-electrique); transform: translateY(-3px); }
.fmrs-carte-article > * { margin: 0 !important; }
.fmrs-carte-article .wp-block-post-featured-image img { width: 100%; object-fit: cover; }
.fmrs-carte-article__date, .fmrs-carte-article__titre, .fmrs-carte-article__extrait { padding-inline: 1.4rem; }
.fmrs-carte-article__date { padding-top: 1.2rem; color: var(--wp--preset--color--gris-texte); font-size: .8125rem; }
.fmrs-carte-article__titre { font-size: 1.0625rem !important; line-height: 1.25; padding-top: .5rem; }
.fmrs-carte-article__titre a { text-decoration: none; }
.fmrs-carte-article__titre a::after { content: ""; position: absolute; inset: 0; } /* carte entièrement cliquable */
.fmrs-carte-article__extrait { color: #D6D6D6; font-size: .9375rem; padding-top: .6rem; padding-bottom: 1.4rem; }
.fmrs-carte-article__extrait .wp-block-post-excerpt__more-text { display: none; }
.fmrs-blog-vide { border: 1px dashed #333; padding: 2rem; text-align: center; color: var(--wp--preset--color--gris-texte); }
.wp-block-query-pagination { margin-top: 2.5rem; font-family: var(--wp--preset--font-family--titres); font-size: .8125rem; text-transform: uppercase; }

/* Article */
.fmrs-article__retour a { color: var(--wp--preset--color--gris-texte); text-decoration: none; }
.fmrs-article__retour a:hover { color: #fff; }
.fmrs-article__date { color: var(--wp--preset--color--gris-texte); font-size: .875rem; margin-top: 2rem !important; }
.fmrs-article__titre { font-size: var(--wp--preset--font-size--tres-grand) !important; text-wrap: balance; }
.fmrs-article .wp-block-post-content { font-size: 1.0625rem; line-height: 1.75; }
.fmrs-article .wp-block-post-content h2 { font-size: var(--wp--preset--font-size--grand); margin-top: 2.5rem; }
.fmrs-article .wp-block-post-content h3 { margin-top: 2rem; }
.fmrs-article .wp-block-post-content blockquote { border-left: 3px solid var(--wp--preset--color--bleu-electrique); padding-left: 1.25rem; margin-left: 0; }

/* Fil Instagram */
.fmrs-instagram { display: grid; gap: 1.5rem; }
.fmrs-instagram__suivre { margin: 0; }
.fmrs-instagram #sb_instagram { padding: 0 !important; }

/* FAQ (accueil) */
.fmrs-faq .wp-block-details summary { font-family: var(--wp--preset--font-family--titres); font-weight: 700; font-size: 1rem; cursor: pointer; padding: .75rem 0; min-height: 44px; }
.fmrs-faq .wp-block-details p { color: #D6D6D6; margin-top: .25rem; }
