/*
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__bande--clair { background: var(--ivg-bleu-clair); padding-bottom: 18px; }
.ivg-pied__bande--fonce {
	background: var(--ivg-bleu);
	display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px 40px;
	padding: 14px 16px 8px;
}
.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__sous-titre { font-size: 14px; margin: 0 0 18px; }
.ivg-pied__logos {
	display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: center; justify-items: center;
	gap: 20px; max-width: var(--ivg-largeur); margin: 0 auto;
}
.ivg-pied__logos img { display: block; width: auto; max-height: 100px; }
.ivg-pied__carte { display: inline-block; }
.ivg-pied__numero img { width: 236px; max-height: none; }
@media (max-width: 1024px) { .ivg-pied__bande--clair .ivg-pied__logos { display: none; } }

.ivg-pied__menu ul { display: flex; flex-wrap: wrap; justify-content: center; margin: 0; padding: 0; list-style: none; }
.ivg-pied__menu a { display: block; padding: 13px 8px; font-size: 13px; font-weight: 600; text-decoration: none; }
.ivg-pied__menu a:hover { text-decoration: underline; }
.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%; }

/* 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 { grid-template-columns: 1fr 1fr; 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__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
   ========================================================================== */
.ivg-page--simple {
	max-width: 46rem; margin: 0 auto; padding: 48px 24px 80px;
	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: 32px 20px 56px; } }

.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 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: 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); }
