/*
Theme Name:  IVG les adresses
Description: Thème léger d'ivglesadresses.org (REVHO). Remplace MyListing et son thème enfant depuis le chantier du 27/10/2026. L'annuaire vit dans le plugin ivg-annuaire.
Author:      Pixlab pour REVHO
Version:     1.0.0
Requires PHP: 8.1
Text Domain: ivg
*/

/* ==========================================================================
   Polices locales (fichiers dans assets/fonts, aucune requête vers Google)
   ========================================================================== */
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 400; font-display: swap; src: url("assets/fonts/poppins-latin-400-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 400; font-display: swap; src: url("assets/fonts/poppins-latin-ext-400-normal.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Poppins"; font-style: italic; font-weight: 400; font-display: swap; src: url("assets/fonts/poppins-latin-400-italic.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 500; font-display: swap; src: url("assets/fonts/poppins-latin-500-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 500; font-display: swap; src: url("assets/fonts/poppins-latin-ext-500-normal.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 600; font-display: swap; src: url("assets/fonts/poppins-latin-600-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 600; font-display: swap; src: url("assets/fonts/poppins-latin-ext-600-normal.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 700; font-display: swap; src: url("assets/fonts/poppins-latin-700-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 700; font-display: swap; src: url("assets/fonts/poppins-latin-ext-700-normal.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Capriola"; font-style: normal; font-weight: 400; font-display: swap; src: url("assets/fonts/capriola-latin-400-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Capriola"; font-style: normal; font-weight: 400; font-display: swap; src: url("assets/fonts/capriola-latin-ext-400-normal.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

/* ==========================================================================
   Couleurs et mesures (relevées sur le site MyListing + Elementor le 27/10/2026)
   ========================================================================== */
:root {
	--ivg-bleu: #4251A7;
	--ivg-bleu-clair: #7083D9;
	--ivg-bleu-texte: #5E6FD0;
	--ivg-vert: #4BA19C;
	--ivg-vert-fonce: #57988F;
	--ivg-encre: #242429;
	--ivg-gris: #6B6E7A;
	--ivg-ligne: #E3E5EF;
	--ivg-fond: #F4F4F4;
	--ivg-blanc: #FFFFFF;
	--ivg-ombre: 0 2px 10px rgba(30, 35, 64, .08);
	--ivg-rayon: 10px;
	--ivg-largeur: 1140px;
	--ivg-police: "Poppins", system-ui, -apple-system, "Segoe UI", sans-serif;
	--ivg-police-titre-site: "Capriola", "Poppins", sans-serif;
	--ivg-entete: 64px;
}

/* ==========================================================================
   Base
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--ivg-entete) + 16px); }
body {
	margin: 0;
	font-family: var(--ivg-police);
	font-size: 14px;
	line-height: 1.43;
	color: var(--ivg-encre);
	background: var(--ivg-fond);
	-webkit-font-smoothing: antialiased;
}
img, svg, video { max-width: 100%; height: auto; }
a { color: var(--ivg-bleu); }
a:hover { color: var(--ivg-bleu-texte); }
h1, h2, h3, h4, h5, h6 { font-family: var(--ivg-police); line-height: 1.2; margin: 0 0 .6em; color: var(--ivg-encre); }
p { margin: 0 0 1em; }
:focus-visible { outline: 2px solid var(--ivg-bleu); outline-offset: 2px; }
.screen-reader-text, .ivg-sr {
	position: absolute !important; width: 1px; height: 1px; overflow: hidden;
	clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}

/* Lien d'évitement (clavier) */
.ivg-evitement {
	position: absolute; left: 12px; top: -60px; z-index: 100000;
	background: var(--ivg-blanc); color: var(--ivg-bleu); padding: 10px 16px; border-radius: 6px;
	font-weight: 600; text-decoration: none; box-shadow: var(--ivg-ombre);
}
.ivg-evitement:focus { top: 12px; }

/* ==========================================================================
   En-tête (ancien modèle Elementor #5079, et #13497 en vert pour les HDF)
   Barre collante : la sortie d'urgence reste toujours à un geste.
   ========================================================================== */
.ivg-entete {
	position: sticky; top: 0; z-index: 900;
	background: var(--ivg-bleu); color: var(--ivg-blanc);
}
.ivg-entete--hdf { background: var(--ivg-vert); }
body.admin-bar .ivg-entete { top: 32px; }
@media (max-width: 782px) { body.admin-bar .ivg-entete { top: 46px; } }

.ivg-entete__barre {
	position: relative;
	display: flex; align-items: center; justify-content: space-between; gap: 12px;
	min-height: var(--ivg-entete);
	padding: 10px;
}
.ivg-entete__gauche { display: flex; align-items: center; gap: 14px; min-width: 104px; }
.ivg-entete__titre {
	position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
	font-family: var(--ivg-police-titre-site); font-size: 21px; font-weight: 600; line-height: 1;
	color: var(--ivg-blanc); text-decoration: none; white-space: nowrap;
}
.ivg-entete__titre:hover { color: var(--ivg-blanc); }
.ivg-entete--hdf .ivg-entete__titre { font-size: 15px; }
.ivg-entete__sortie {
	display: inline-block;
	font-size: 15px; font-weight: 500; line-height: 18px; white-space: nowrap;
	color: var(--ivg-blanc); text-decoration: none;
	padding: 12px 24px; border: 1px solid var(--ivg-blanc); border-radius: 5px;
	transition: background-color .2s;
}
.ivg-entete__sortie:hover, .ivg-entete__sortie:focus-visible { background: rgba(255, 255, 255, .14); color: var(--ivg-blanc); }

/* Navigation de secours (sans JavaScript) */
.ivg-entete__nav ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 0; margin: 0; padding: 0 10px 10px; list-style: none; }
.ivg-entete__nav a { display: block; padding: 8px 13px; color: var(--ivg-blanc); text-decoration: none; font-weight: 500; }

@media (max-width: 767px) {
	.ivg-entete__barre { min-height: 56px; padding: 8px 10px; }
	.ivg-entete__titre {
		position: static; transform: none; font-size: 20px; flex: 1 1 auto; white-space: normal; line-height: 1.1;
	}
	.ivg-entete--hdf .ivg-entete__titre { font-size: 13px; }
	.ivg-entete__gauche { min-width: 0; }
	.ivg-entete__sortie { font-size: 9px; line-height: 1.2; padding: 10px 8px; }
}

/* Rétraction au défilement sur mobile (classe posée par menu-overlay.js) */
@media (max-width: 1024px) {
	.ivg-entete { transition: transform .25s ease; will-change: transform; }
	.ivg-entete.ivg-header-cachee { transform: translateY(-100%); }
}
@media (prefers-reduced-motion: reduce) { .ivg-entete { transition: none; } }

/* ==========================================================================
   Pied de page (anciens modèles Elementor #4989 et #13489)
   ========================================================================== */
.ivg-pied { color: var(--ivg-blanc); text-align: center; }
.ivg-pied a { color: var(--ivg-blanc); }
.ivg-pied__bande { padding: 10px 16px; }
.ivg-pied__titre { font-size: 22px; font-weight: 600; line-height: 1.43; margin: 0 0 10px; }
.ivg-pied__titre a { text-decoration: none; }
.ivg-pied__reseaux { display: flex; gap: 22px; margin: 0; padding: 0; list-style: none; }
.ivg-pied__reseaux a { display: block; width: 33px; height: 33px; }
.ivg-pied__reseaux svg { width: 100%; height: 100%; }

/* Général (refait le 27/10/2026) : présentation à gauche, numéro vert en carte à droite */
.ivg-pied__haut { background: var(--ivg-bleu-clair); padding: 40px 16px; text-align: left; }
.ivg-pied__grille {
	max-width: var(--ivg-largeur); margin: 0 auto;
	display: grid; grid-template-columns: 1fr auto; gap: 28px 56px; align-items: center;
}
.ivg-pied__haut .ivg-pied__titre { font-size: 24px; line-height: 1.3; margin: 0 0 6px; }
.ivg-pied__sous-titre { font-size: 14px; line-height: 1.6; margin: 0 0 22px; opacity: .92; }
.ivg-pied__logos { display: flex; flex-wrap: wrap; gap: 14px; }
.ivg-pied__carte {
	display: flex; align-items: center; justify-content: center;
	height: 76px; padding: 10px 18px; background: var(--ivg-blanc); border-radius: var(--ivg-rayon);
	box-shadow: 0 2px 10px rgba(30, 35, 64, .12); transition: transform .15s ease;
}
.ivg-pied__carte:hover { transform: translateY(-2px); }
.ivg-pied__carte img { display: block; width: auto; max-height: 100%; }

.ivg-pied a.ivg-pied__numero {
	display: block; text-align: center; text-decoration: none; color: var(--ivg-bleu);
	background: var(--ivg-blanc); border-radius: 14px; padding: 22px 34px 20px;
	box-shadow: 0 8px 28px rgba(30, 35, 64, .22);
}
.ivg-pied__numero-sur { display: block; margin: 0 0 8px; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.ivg-pied__numero-num {
	display: flex; align-items: center; justify-content: center; gap: 12px;
	font-size: 40px; font-weight: 700; line-height: 1; white-space: nowrap;
}
.ivg-pied__numero-num svg { width: 30px; height: 30px; flex: none; }
.ivg-pied__numero-sous { display: block; margin: 12px 0 0; font-size: 13px; color: var(--ivg-gris); }
.ivg-pied__numero-sous b { display: inline-block; margin-right: 6px; padding: 2px 10px; border-radius: 99px; background: #E5F3EC; color: #1F7A4D; font-weight: 600; }

.ivg-pied__bas { background: var(--ivg-bleu); padding: 0 16px; }
.ivg-pied__bas-grille {
	max-width: var(--ivg-largeur); min-height: 60px; margin: 0 auto;
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 24px;
}
.ivg-pied__menu ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 0 22px; margin: 0; padding: 0; list-style: none; }
.ivg-pied__menu a { display: block; padding: 18px 0; font-size: 13px; font-weight: 500; text-decoration: none; opacity: .9; }
.ivg-pied__menu a:hover { opacity: 1; text-decoration: underline; }
.ivg-pied__droite { display: flex; align-items: center; gap: 20px; }
.ivg-pied__connexion a, .ivg-pied__connexion .xoo-el-login-tgr {
	font-size: 12px; color: rgba(255, 255, 255, .65); text-decoration: none; cursor: pointer;
}
.ivg-pied__connexion a:hover, .ivg-pied__connexion .xoo-el-login-tgr:hover { color: var(--ivg-blanc); text-decoration: underline; }
.ivg-pied__bas .ivg-pied__reseaux a {
	display: flex; align-items: center; justify-content: center; width: 34px; height: 34px;
	border-radius: 50%; background: rgba(255, 255, 255, .12);
}
.ivg-pied__bas .ivg-pied__reseaux a:hover { background: rgba(255, 255, 255, .22); }
.ivg-pied__bas .ivg-pied__reseaux svg { width: 18px; height: 18px; }

/* Téléphone : le numéro vert passe en premier */
@media (max-width: 760px) {
	.ivg-pied__haut { padding: 28px 16px 32px; text-align: center; }
	.ivg-pied__grille { grid-template-columns: 1fr; }
	.ivg-pied a.ivg-pied__numero { order: -1; padding: 18px 16px; }
	.ivg-pied__numero-num { font-size: 32px; }
	.ivg-pied__logos { justify-content: center; }
	.ivg-pied__carte { height: 64px; }
	.ivg-pied__bas-grille { flex-direction: column; padding: 10px 0 18px; }
	.ivg-pied__menu ul { gap: 0 16px; }
	.ivg-pied__menu a { padding: 8px 0; }
}

/* Hauts-de-France */
.ivg-pied--hdf .ivg-pied__bande { background: var(--ivg-vert); padding: 30px 16px 20px; }
.ivg-pied--hdf .ivg-pied__titre { font-size: 20px; }
.ivg-pied__logos--hdf { display: grid; grid-template-columns: 1fr 1fr; align-items: center; justify-items: stretch; max-width: 1140px; margin: 20px auto; }
.ivg-pied__logos--hdf a:first-child { justify-self: start; }
.ivg-pied__logos--hdf a:last-child { justify-self: end; }
.ivg-pied__logos--hdf img { display: block; width: auto; }
.ivg-pied__logo-orehane { max-height: 52px; }
.ivg-pied__logo-ars-hdf { max-height: 52px; }
.ivg-pied--hdf .ivg-pied__reseaux { justify-content: center; margin: 10px 0 30px; }
.ivg-pied--hdf .ivg-pied__reseaux a { width: 36px; height: 36px; }
.ivg-pied__mentions { margin: 0; font-size: 15px; font-weight: 600; }
.ivg-pied__mentions a { text-decoration: none; }

/* Lien de connexion discret (inc/connexion-pied.php) */
.ivg-connexion-pied { background: var(--ivg-bleu); text-align: center; padding: 0 16px 18px; }
.ivg-connexion-pied a, .ivg-connexion-pied .xoo-el-login-tgr {
	display: inline-block; font-size: 11px; line-height: 1.4; color: rgba(255, 255, 255, .6);
	text-decoration: none; cursor: pointer;
}
.ivg-connexion-pied a:hover, .ivg-connexion-pied .xoo-el-login-tgr:hover { color: var(--ivg-blanc); text-decoration: underline; }

/* ==========================================================================
   Pages
   ========================================================================== */
/* Mêmes marges sous l'en-tête et au-dessus du pied sur toutes les pages (Fred, 27/10). */
:root { --ivg-marge-haut: 40px; --ivg-marge-bas: 64px; }
@media (max-width: 640px) { :root { --ivg-marge-haut: 28px; --ivg-marge-bas: 48px; } }
.ivg-page--simple {
	max-width: 46rem; margin: 0 auto; padding: var(--ivg-marge-haut) 24px var(--ivg-marge-bas);
	font-size: 15px; line-height: 1.6;
}
.ivg-page--simple > *:first-child { margin-top: 0; }
.ivg-page__titre { font-size: 28px; margin-bottom: 1.2em; line-height: 1.2; }
.ivg-page--simple h2[id] { scroll-margin-top: 100px; }
.ivg-page--simple h2, .ivg-page--simple h3 { margin-top: 2em; }
.ivg-page--simple ul, .ivg-page--simple ol { padding-left: 1.4em; margin-bottom: 1.2em; }
.ivg-page--simple li { margin-bottom: .4em; }
@media (max-width: 640px) { .ivg-page--simple { padding-left: 20px; padding-right: 20px; } }

/* Page « Pourquoi cet annuaire ? » (scripts/creer-page-pourquoi.php) et son lien sur l'accueil. */
.ivg-chapeau { font-size: 17px; line-height: 1.55; }
.ivg-garanties { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 1.6em 0 2.2em; }
.ivg-garanties > div {
	background: var(--ivg-blanc); border-radius: var(--ivg-rayon); box-shadow: var(--ivg-ombre);
	padding: 22px 20px; text-align: center;
}
.ivg-garanties__icone {
	display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px;
	border-radius: 50%; background: #E9EBF7; color: var(--ivg-bleu); margin-bottom: 12px;
}
.ivg-page--simple .ivg-garanties h2 { font-size: 17px; margin: 0 0 .4em; }
.ivg-garanties p { margin: 0; font-size: 14px; line-height: 1.5; color: var(--ivg-gris); }
@media (max-width: 760px) { .ivg-garanties { grid-template-columns: 1fr; } }
.ivg-chiffres { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 1.5em 0 2em; }
.ivg-chiffres > div {
	background: var(--ivg-blanc); border: 1px solid var(--ivg-ligne); border-radius: var(--ivg-rayon);
	padding: 16px; text-align: center; color: var(--ivg-gris); font-size: 14px; line-height: 1.4;
}
.ivg-chiffres strong { display: block; font-size: 24px; line-height: 1.2; color: var(--ivg-bleu); margin-bottom: 4px; }
@media (max-width: 640px) { .ivg-chiffres { grid-template-columns: 1fr; } }
.ivg-encadre {
	background: var(--ivg-blanc); border-left: 4px solid var(--ivg-vert); border-radius: var(--ivg-rayon);
	padding: 20px 24px; margin-top: 2.5em;
}
.ivg-encadre h2 { margin-top: 0; }
.ivg-accueil-pourquoi { margin-top: 10px; font-size: 15px; font-weight: 500; }
.ivg-accueil-pourquoi a { color: var(--ivg-bleu); }
.ivg-accueil-pourquoi a span { text-decoration: underline; text-underline-offset: 3px; }

/* Accueil : texte d'en-tête et mention ORÉHANE sous la recherche (scripts/accueil-orehane.php). */
.ivg-accueil-titre { font-size: 25px; line-height: 1.4; }
.ivg-accueil-orehane {
	display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 6px 10px;
	width: 100%; align-self: stretch; box-sizing: border-box;
	margin: 28px 0 0; color: var(--ivg-blanc); font-size: 17px; line-height: 1.45; text-align: center;
}
.ivg-accueil-orehane strong { font-weight: 600; }
/* Lien vers l'annuaire Hauts-de-France (Fred, 28/10) : blanc sur le bandeau, souligné au survol. */
.ivg-accueil-orehane a { display: inline-flex; align-items: center; gap: 10px; color: inherit; text-decoration: none; }
.ivg-accueil-orehane a svg { flex: none; }
.ivg-accueil-orehane a span { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.ivg-accueil-orehane a:hover span, .ivg-accueil-orehane a:focus-visible span { text-decoration-thickness: 2px; }
.ivg-accueil-orehane a:focus-visible { outline: 2px solid var(--ivg-blanc); outline-offset: 4px; border-radius: 2px; }
@media (max-width: 640px) {
	.ivg-accueil-titre { font-size: 20px; }
	.ivg-accueil-orehane { font-size: 15px; margin: 20px 0 10px; }
}

.ivg-bouton {
	display: inline-block; padding: 12px 24px; border-radius: 6px;
	background: var(--ivg-bleu); color: var(--ivg-blanc); font-weight: 600; text-decoration: none;
}
.ivg-bouton:hover { background: var(--ivg-bleu-texte); color: var(--ivg-blanc); }

/* Pages refaites (scripts/refaire-pages.php) : plis, chiffres clés, vidéos, boutons. */
.ivg-page--simple .wp-block-details {
	background: var(--ivg-blanc); border: 1px solid var(--ivg-ligne); border-radius: var(--ivg-rayon);
	margin: 0 0 10px; padding: 0;
}
.ivg-page--simple .wp-block-details summary {
	position: relative; list-style: none; cursor: pointer;
	padding: 16px 52px 16px 20px; font-weight: 600; font-size: 16px; line-height: 1.4; color: var(--ivg-encre);
}
.ivg-page--simple .wp-block-details summary::-webkit-details-marker { display: none; }
.ivg-page--simple .wp-block-details summary::after {
	content: ""; position: absolute; right: 22px; top: 22px; width: 9px; height: 9px;
	border-right: 2px solid var(--ivg-bleu); border-bottom: 2px solid var(--ivg-bleu);
	transform: rotate(45deg); transition: transform .15s;
}
.ivg-page--simple .wp-block-details[open] summary::after { transform: rotate(-135deg); top: 26px; }
.ivg-page--simple .wp-block-details summary:hover { color: var(--ivg-bleu); }
.ivg-page--simple .wp-block-details[open] summary { border-bottom: 1px solid var(--ivg-ligne); margin-bottom: 16px; }
.ivg-page--simple .wp-block-details > :not(summary) { margin-left: 20px; margin-right: 20px; }
.ivg-page--simple .wp-block-details > :last-child { margin-bottom: 20px; }
.ivg-page--simple .wp-block-details h3 { font-size: 16px; margin-top: 1.4em; }
.ivg-pli__note { display: block; margin-top: 2px; font-size: 14px; font-weight: 400; color: var(--ivg-gris); }
.ivg-page--simple h2 + .wp-block-details { margin-top: 0; }
.ivg-page--simple h2.wp-block-heading { font-size: 20px; }
.ivg-chiffre-cle {
	display: inline-block; padding: 4px 14px; border-radius: 999px;
	background: #E9EBF7; color: var(--ivg-bleu); font-size: 14px;
}
.ivg-video { position: relative; aspect-ratio: 16 / 9; margin: 1.2em 0; border-radius: 8px; overflow: hidden; background: #000; }
.ivg-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.ivg-plaquette { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 1.2em 0; }
.ivg-plaquette img { display: block; width: 100%; height: auto; border: 1px solid var(--ivg-ligne); border-radius: 6px; background: var(--ivg-blanc); }
@media (max-width: 640px) { .ivg-plaquette { grid-template-columns: 1fr; } }
.ivg-page--simple .wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; margin: 1.5em 0; }
.ivg-page--simple .wp-block-button__link {
	display: inline-block; padding: 12px 24px; border-radius: 6px; font-size: 15px; font-weight: 600;
	background: var(--ivg-bleu); color: var(--ivg-blanc); text-decoration: none;
}
.ivg-page--simple .wp-block-button__link:hover { background: var(--ivg-bleu-texte); color: var(--ivg-blanc); }
.ivg-bouton--contour { background: transparent; color: var(--ivg-bleu); box-shadow: inset 0 0 0 2px var(--ivg-bleu); }
.ivg-bouton--contour:hover { background: var(--ivg-bleu); color: var(--ivg-blanc); }

/* Démarche de mise à jour d'une fiche (étapes numérotées, encadré « Vous avez déjà un code ? »). */
.ivg-etapes { list-style: none; counter-reset: etape; padding: 0 !important; margin: 1.6em 0; }
.ivg-etapes li {
	counter-increment: etape; position: relative; margin: 0 0 14px; padding: 16px 20px 16px 64px;
	background: var(--ivg-blanc); border: 1px solid var(--ivg-ligne); border-radius: var(--ivg-rayon);
}
.ivg-etapes li::before {
	content: counter(etape); position: absolute; left: 18px; top: 14px; width: 32px; height: 32px;
	border-radius: 50%; background: var(--ivg-bleu); color: var(--ivg-blanc);
	display: flex; align-items: center; justify-content: center; font-weight: 600; font-size: 15px;
}
.ivg-encadre--code { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 20px; margin: 0 0 2em; }
.ivg-encadre--code p { margin: 0; }
.ivg-page--simple .is-style-outline .wp-block-button__link { background: transparent; color: var(--ivg-bleu); box-shadow: inset 0 0 0 2px var(--ivg-bleu); }
.ivg-page--simple .is-style-outline .wp-block-button__link:hover { background: var(--ivg-bleu); color: var(--ivg-blanc); }

/* Accueil : encadré « Professionnels » (remplace les 4 sections « Formulaire d'inscription »). */
.ivg-pros { max-width: var(--ivg-largeur); margin: 30px auto; }
.ivg-pros__boite {
	display: grid; grid-template-columns: 1fr auto; gap: 24px 40px; align-items: center;
	background: var(--ivg-blanc); border-radius: 20px; box-shadow: var(--ivg-ombre); padding: 32px 40px;
}
.ivg-pros h2 { font-size: 22px; color: var(--ivg-bleu); margin: 0 0 .4em; }
.ivg-pros p { margin: 0; font-size: 15px; line-height: 1.55; color: var(--ivg-encre); }
.ivg-pros__actions { display: flex; flex-direction: column; gap: 10px; }
.ivg-pros__actions .ivg-bouton { text-align: center; padding: 12px 22px; }
.ivg-pros__actions { min-width: 340px; }
@media (max-width: 900px) { .ivg-pros__actions { min-width: 0; } }
@media (max-width: 900px) {
	.ivg-pros { padding: 0 20px; }
	.ivg-pros__boite { grid-template-columns: 1fr; padding: 24px; }
}

/* ==========================================================================
   Pages converties depuis Elementor : structure commune.
   Les couleurs, fonds, marges et tailles propres à chaque élément sont dans
   la méta `_ivg_css` de la page (générée par scripts/convertir-elementor.php).
   ========================================================================== */
.ivg-page--large { padding: var(--ivg-marge-haut) 0 var(--ivg-marge-bas); }
/* Explore : la recherche et la carte occupent l'écran, sans marge. */
.page-id-4675 .ivg-page--large { padding: 0; }
/* Accueil et Hauts-de-France : leurs sections portent déjà 20 à 30 px de marge chacune. */
.page-id-2631 .ivg-page--large { padding: 20px 0 4px; }
.page-id-28 .ivg-page--large { padding: 30px 0 0; }
/* Page large qui ne contient qu'un bloc de lecture (référencement, mon compte) : la marge est dans le bloc. */
.ivg-page--large:has(.ivg-page--simple, .ivg-referencer) { padding: 0; }
.ivg-page--large > *:first-child { margin-top: 0; }
.ivg-page--large p:last-child { margin-bottom: 0; }

/* Section : bande pleine largeur, contenu centré à 1140px (boîte Elementor). */
.ivg-el-section { position: relative; margin: 0; }
.ivg-el-section > .ivg-el-boite { display: flex; margin: 0 auto; max-width: var(--ivg-largeur); position: relative; }
.ivg-el-section.ivg-el-pleine > .ivg-el-boite { max-width: none; }
.ivg-el-colonne { position: relative; display: flex; min-height: 1px; min-width: 0; }
.ivg-el-colonne > .ivg-el-pile { display: flex; flex-wrap: wrap; align-content: flex-start; width: 100%; padding: 10px; position: relative; }
.ivg-el-widget { position: relative; width: 100%; }
.ivg-el-widget:not(:last-child) { margin-bottom: 20px; }
.ivg-el-widget img { vertical-align: middle; }
.ivg-el-image { text-align: center; }
.ivg-el-titre { margin: 0; padding: 0; line-height: 1; font-weight: 600; font-size: 1.85rem; color: #6EC1E4; }
.ivg-el-titre a { color: inherit; text-decoration: none; }
.ivg-el-text-editor { color: #7A7A7A; }
.ivg-page--large a { text-decoration: none; }
.ivg-el-bouton {
	display: inline-block; font-size: 15px; font-weight: 500; line-height: 1; padding: 12px 24px;
	border-radius: 3px; color: #fff; background: #61CE70; text-decoration: none; text-align: center;
	transition: all .3s;
}
.ivg-el-bouton:hover { opacity: .92; }
.ivg-el-reseaux { display: flex; flex-wrap: wrap; gap: 5px; justify-content: center; }
.ivg-el-reseaux a { display: inline-flex; width: 50px; height: 50px; align-items: center; justify-content: center; color: #fff; background: #69727d; border-radius: 50%; }
.ivg-el-reseaux svg { width: 50%; height: 50%; }

/* Accordéon et onglets (devenus des <details>) */
.ivg-el-accordeon details { border: 1px solid #d5d8dc; border-bottom: 0; }
.ivg-el-accordeon details:last-child { border-bottom: 1px solid #d5d8dc; }
.ivg-el-accordeon summary { cursor: pointer; padding: 15px 20px; font-weight: 600; list-style-position: inside; }
.ivg-el-accordeon .ivg-el-accordeon__texte { padding: 15px 20px; border-top: 1px solid #d5d8dc; }

/* Visibilité par écran (réglages « masquer sur bureau / tablette / mobile ») */
@media (min-width: 1025px) { .ivg-cache-bureau { display: none !important; } }
@media (min-width: 768px) and (max-width: 1024px) { .ivg-cache-tablette { display: none !important; } }
@media (max-width: 767px) {
	.ivg-cache-mobile { display: none !important; }
	.ivg-el-section > .ivg-el-boite { flex-wrap: wrap; }
	.ivg-el-colonne { width: 100% !important; }
}

/* Éléments WordPress courants */
.alignwide { max-width: var(--ivg-largeur); margin-left: auto; margin-right: auto; }
.alignfull { width: 100%; }
.wp-block-image figcaption { font-size: 13px; color: var(--ivg-gris); }
