/* =========================================================================
   Polices auto-hébergées — charte loireadd.org (RGPD : aucun appel tiers).
   Titres : Archivo Narrow · Corps + menu : Open Sans. Fichiers : ../fonts/.
   ========================================================================= */
@font-face {
	font-family: 'Archivo Narrow';
	font-style: normal; font-weight: 400; font-display: swap;
	src: url('../fonts/archivo-narrow-regular.woff2') format('woff2'),
	     url('../fonts/archivo-narrow-regular.woff') format('woff');
}
@font-face {
	font-family: 'Archivo Narrow';
	font-style: normal; font-weight: 700; font-display: swap;
	src: url('../fonts/archivo-narrow-bold.woff2') format('woff2'),
	     url('../fonts/archivo-narrow-bold.woff') format('woff');
}
@font-face {
	font-family: 'Open Sans';
	font-style: normal; font-weight: 400 700; font-display: swap;
	src: url('../fonts/open-sans-latin.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: 'Open Sans';
	font-style: normal; font-weight: 400 700; font-display: swap;
	src: url('../fonts/open-sans-latin-ext.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;
}

/**
 * Annuaire Loiréadd 2026 — feuille de styles principale
 * ----------------------------------------------------------------------------
 * Tout le CSS de présentation du site (header, navigation + mégamenus, carte,
 * accueil, footer) vit ici. Les valeurs DYNAMIQUES (couleur de marque, URLs des
 * images de la médiathèque) sont injectées sous forme de variables CSS par le
 * mu-plugin em-theme-branding.php (bloc <style id="em-vars">) :
 *
 *   --em-brand          couleur de marque Loiréadd (#d05756)
 *   --em-header-bg       url() de la bannière de fond du header
 *   --em-ico-accueil     url() du picto de l'entrée de menu « Accueil »
 *   --em-ico-categorie   url() du picto de l'entrée de menu « Catégorie »
 *   --em-ico-lieux       url() du picto de l'entrée de menu « Lieux »
 *
 * Les pictos PAR ITEM des mégamenus (une icône par catégorie / par lieu) restent
 * générés en ligne par PHP (bloc <style id="em-megamenu-icons">) car ils dépendent
 * des IDs d'items de menu, qui sont dynamiques.
 *
 * Voir ARCHITECTURE.md à la racine du thème pour la cartographie complète.
 * ========================================================================== */


/* ==========================================================================
   1. HEADER — bannière de fond + logo par-dessus
   ========================================================================== */
.site-header {
	background-image: var(--em-header-bg);
	background-color: #fff;
	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;
}
.site-header .inside-header {
	min-height: 140px;
	align-items: center;
}


/* ==========================================================================
   2. NAVIGATION — reproduction du menu CityGuide (clair, MAJUSCULES, icônes)
   ========================================================================== */
.main-navigation,
.main-navigation ul ul {
	background-color: #fff;
}
.main-navigation {
	border-bottom: 1px solid #e4e3df;
	box-shadow: 0 2px 6px rgba(0,0,0,.06);
	position: sticky;
	top: 0;
	z-index: 999;
}
/* décalage sous la barre d'admin WordPress (visiteurs connectés uniquement) */
body.admin-bar .main-navigation { top: 32px; }
@media (max-width: 782px) {
	body.admin-bar .main-navigation { top: 46px; }
}
.main-navigation .inside-navigation { position: relative; }

/* Logo Loiréadd dans la barre : visible UNIQUEMENT quand la barre est collée (sticky) */
.em-nav-logo {
	position: absolute;
	left: 16px;
	margin-left: 45px; /* alignement avec le logo de la bannière (non sticky) */
	top: 50%;
	transform: translateY(-50%);
	display: flex;
	align-items: center;
	opacity: 0;
	visibility: hidden;
	transition: opacity .25s ease;
	z-index: 2;
}
.em-nav-logo img { width: 72px; height: 72px; display: block; }
.main-navigation.em-nav-stuck .em-nav-logo { opacity: 1; visibility: visible; }
/* Logo sticky masque sur tablette + smartphone (decision Eric), visible desktop only.
   Raison de fond : logo (~133px) + menu centre (~690px) = ~823px requis sur une ligne,
   impossible sous ~960px sans chevauchement. Seuil desktop : > 1024px. */
@media (max-width: 1024px) { .em-nav-logo { display: none !important; } } /* !important : bat .main-navigation a{display:block} de GeneratePress (specificite 0,1,1, active >=769px) qui rallumait le logo en bande tablette */

.main-navigation .main-nav ul li a,
.main-navigation a,
.menu-toggle {
	color: var(--em-blue);
	text-transform: uppercase;
	font-weight: 600;
	letter-spacing: .02em;
}
.main-navigation .dropdown-menu-toggle { color: #888; }
/* Survol : fond gris léger, texte inchangé (bleu). */
.main-navigation .main-nav ul li:hover > a,
.main-navigation ul ul li:hover > a {
	background-color: rgba(0,0,0,.04);
}
/* Actif (page courante) : texte + picto orange, fond blanc. */
.main-navigation .main-nav ul li[class*="current-menu"] > a {
	background-color: #fff;
	color: var(--em-orange);
}
/* Catégorie & Lieux uniquement (entrées AVEC panneau) : fond BLANC au survol/actif/focus
   => continuité avec le sous-menu. Accueil (sans panneau) garde l'ancien survol gris. */
#menu-item-280:hover > a,
#menu-item-300:hover > a,
#menu-item-280:focus-within > a,
#menu-item-300:focus-within > a,
#menu-item-280[class*="current-menu"] > a,
#menu-item-300[class*="current-menu"] > a {
	background-color: #fff;
}
.main-navigation .main-nav ul li:hover > a .dropdown-menu-toggle,
.main-navigation .main-nav ul li[class*="current-menu"] > a .dropdown-menu-toggle {
	color: currentColor;
}

/* Icônes PNG (importées de la prod) devant les 3 items principaux */
#menu-item-279 > a::before,
#menu-item-280 > a::before,
#menu-item-300 > a::before {
	content: "";
	display: inline-block;
	width: 24px;
	height: 24px;
	margin-right: 9px;
	vertical-align: middle;
	background-color: currentColor;
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
}
#menu-item-279 > a::before { -webkit-mask-image: var(--em-ico-accueil); mask-image: var(--em-ico-accueil); }
#menu-item-280 > a::before { -webkit-mask-image: var(--em-ico-categorie); mask-image: var(--em-ico-categorie); }
#menu-item-300 > a::before { -webkit-mask-image: var(--em-ico-lieux); mask-image: var(--em-ico-lieux); }

/* --- Menu : micro-interactions sobres. Transition douce du fond/texte, leger zoom du picto
   au survol, et soulignement orange anime (apparait au survol/focus, reste sur l'item actif).
   Le picto occupe ::before -> on utilise ::after. Limite aux items de 1er niveau (> ul > li). --- */
.main-navigation .main-nav ul li > a { transition: background-color .25s ease, color .25s ease; }
.main-navigation .main-nav > ul > li > a { position: relative; }
.main-navigation .main-nav > ul > li > a::before { transition: transform .25s ease; }
.main-navigation .main-nav > ul > li:hover > a::before,
.main-navigation .main-nav > ul > li:focus-within > a::before { transform: scale(1.12); }
.main-navigation .main-nav > ul > li > a::after {
	content: "";
	position: absolute;
	left: 16px;
	right: 16px;
	bottom: 8px;
	height: 3px;
	background: var(--em-orange);
	border-radius: 2px;
	transform: scaleX(0);
	transform-origin: center;
	transition: transform .28s ease;
}
.main-navigation .main-nav > ul > li:hover > a::after,
.main-navigation .main-nav > ul > li:focus-within > a::after { transform: scaleX(1); }
/* Appareils tactiles (mobile/tablette) : pas de soulignement (l'effet hover n'a pas de
   sens au toucher et s'affichait mal). Conserve sur desktop a la souris. */
@media (hover: none) {
	.main-navigation .main-nav > ul > li > a::after { display: none; }
}
@media (prefers-reduced-motion: reduce) {
	.main-navigation .main-nav > ul > li > a::after { transition: none !important; }
	.main-navigation .main-nav > ul > li > a::before { transition: none !important; }
	.main-navigation .main-nav > ul > li:hover > a::before,
	.main-navigation .main-nav > ul > li:focus-within > a::before { transform: none !important; }
}


/* ==========================================================================
   3. MÉGAMENUS Catégorie / Lieux — panneau pleine largeur en grille (repro CityGuide)
   ========================================================================== */
/* li en static => le panneau se cale sur toute la largeur de .inside-navigation (1200px centré) */
.main-navigation #menu-item-280,
.main-navigation #menu-item-300 { position: static; }
#menu-item-280 > .sub-menu,
#menu-item-300 > .sub-menu {
	width: 100%;
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 0;
	padding: 6px 0;
	background: #fff;
	box-shadow: 0 10px 22px rgba(0,0,0,.12);
}
#menu-item-280 > .sub-menu > li,
#menu-item-300 > .sub-menu > li {
	width: auto;
	float: none;
	border-right: 1px solid rgba(0,0,0,.06);
	border-bottom: 1px solid rgba(0,0,0,.06);
}
/* pas de séparateur sur la dernière colonne (grille à 5 colonnes) */
#menu-item-280 > .sub-menu > li:nth-child(5n),
#menu-item-300 > .sub-menu > li:nth-child(5n) {
	border-right: 0;
}
/* le retrait du trait sous la dernière rangée est injecté dynamiquement (em-megamenu-icons) */
#menu-item-280 > .sub-menu > li > a,
#menu-item-300 > .sub-menu > li > a {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 11px 16px;
	text-transform: none;
	font-weight: 500;
	letter-spacing: 0;
	color: #444;
	white-space: normal;
	line-height: 1.2;
}
#menu-item-280 > .sub-menu > li > a:hover,
#menu-item-300 > .sub-menu > li > a:hover {
	color: var(--em-blue);
	background: rgba(0,0,0,.035);
}
#menu-item-280 > .sub-menu > li > a::before,
#menu-item-300 > .sub-menu > li > a::before {
	content: "";
	flex: 0 0 auto;
	width: 32px;
	height: 40px;
	margin: 0;
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	/* background-image (un picto par item) injecté par #em-megamenu-icons */
}
/* Affichage du panneau pleine largeur au survol / focus clavier */
.main-navigation #menu-item-280:hover > .sub-menu,
.main-navigation #menu-item-300:hover > .sub-menu,
.main-navigation #menu-item-280:focus-within > .sub-menu,
.main-navigation #menu-item-300:focus-within > .sub-menu {
	left: 0;
	right: auto;
	opacity: 1;
	visibility: visible;
}
/* Repli mobile : on rend la main au menu hamburger GeneratePress (accordéon vertical) */
@media (max-width: 768px) {
	.main-navigation #menu-item-280,
	.main-navigation #menu-item-300 { position: relative; }
	#menu-item-280 > .sub-menu,
	#menu-item-300 > .sub-menu {
		display: block;
		grid-template-columns: none;
		width: auto;
		border-top: 0;
		box-shadow: none;
		background: transparent;
	}
	#menu-item-280 > .sub-menu > li > a,
	#menu-item-300 > .sub-menu > li > a { padding: 10px 20px; }
}


/* ==========================================================================
   4. PAGES — titres, accueil, fiches
   ========================================================================== */
/* Home : masquer le titre "Accueil" au-dessus de la carte */
body.home .entry-header,
body.home .page-hero { display: none; }
body.home h2 { color: var(--em-brand); }

/* Fiche : carte hero pleine largeur sous le header ; image à la une masquée */
.em-fiche-hero { margin: 0 0 24px; }
.single-gd_place .featured-image,
.single-gd_place .page-header-image-single { display: none; }


/* ==========================================================================
   5. ACCUEIL — barre de stats, carte plein écran, recherche flottante, onglets
   (shortcodes [em_stats] et [em_cat_lieu_tabs] dans em-home.php)
   ========================================================================== */
.em-stats {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0;
	margin: 0 0 30px;
	border: 1px solid #eee;
	border-radius: 8px;
	overflow: hidden;
	background: #fafafa;
}
.em-stat { flex: 1 1 150px; text-align: center; padding: 18px 10px; border-right: 1px solid #eee; }
.em-stat:last-child { border-right: 0; }
.em-stat-num { display: block; font-size: 34px; font-weight: 700; color: var(--em-brand); line-height: 1; }
.em-stat-label { display: block; margin-top: 4px; color: #555; font-size: 14px; text-transform: uppercase; letter-spacing: .04em; }

.em-home-map { margin-bottom: 0; }
.em-home-map.alignfull { width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }

/* clip (pas hidden) : empêche le scroll horizontal SANS casser position:sticky du menu */
html, body { overflow-x: clip; }

/* Carte démarre juste sous le menu (retrait des espacements hauts du thème) */
body.home .site-main { margin-top: 0; }
body.home .inside-article { padding-top: 0; }
body.home .entry-content { margin-top: 0; }

/* Padding du conteneur de contenu : 40px -> 20px en DESKTOP (demande Eric 2026-06-23).
   Cible >=769px uniquement -> le mobile reste a 30px (GeneratePress), ce qui preserve le
   calcul du slider mobile (base sur 2x30px de padding .inside-article). */
@media (min-width: 769px) {
	.separate-containers .inside-article { padding: 20px; }
}

/* Encart de recherche flottant qui chevauche le bas de la carte : translucide à 50%,
   opaque à l'interaction. Partagé entre la home (.em-home-search) et toutes les pages
   à carte héro (.em-hero-search, injecté par generate_after_header). */
.em-home-search,
.em-hero-search {
	position: relative;
	z-index: 5;
	max-width: 760px;
	margin: -72px auto 34px;
	background: rgba(255,255,255,.5);
	padding: 20px 22px;
	border-radius: 12px;
	box-shadow: 0 8px 28px rgba(0,0,0,.18);
	transition: background .25s ease, box-shadow .25s ease;
}
.em-home-search:hover,
.em-home-search:focus-within,
.em-hero-search:hover,
.em-hero-search:focus-within {
	background: rgba(255,255,255,1);
	box-shadow: 0 10px 32px rgba(0,0,0,.24);
}
@media (max-width: 600px) {
	.em-home-search,
	.em-hero-search { margin: -40px 12px 28px; padding: 16px; }
}

/* Carte hero des pages de resultats (archives/recherche/lieux) masquee sur mobile + tablette
   portrait (sans interet sur petit ecran, absente en prod ; demande Eric 2026-06-24). Le moteur
   global reste mais ne flotte plus sur une carte absente : marge negative neutralisee + fond opaque.

   2026-10-03 (go Eric) : la carte de la HOME (.em-home-map) suit la meme regle. Mesure du
   03/10 : elle etait l element LCP en mobile (premier ecran entier), rien ne se peignait avant
   sa premiere tuile OpenStreetMap. Masquee, le navigateur ne telecharge plus aucune tuile
   (verifie sur /domaines/ depuis juin) et le moteur de recherche devient le premier ecran.
   Desktop inchange. Reversible : retirer .em-home-map et .em-home-search de ce bloc. */
@media (max-width: 768px) {
	.em-fiche-hero,
	.em-home-map { display: none; }
	.em-hero-search,
	.em-home-search { margin-top: 14px; background: #fff; box-shadow: 0 2px 10px rgba(0,0,0,.08); }
}
.em-home-slider { margin: 0 auto 36px; }

.em-tabnav { display: flex; gap: 4px; border-bottom: 2px solid var(--em-brand); margin-bottom: 18px; }
.em-tab { background: #eee; border: 0; padding: 12px 26px; font-size: 16px; cursor: pointer; border-radius: 6px 6px 0 0; color: #444; }
.em-tab.is-active { background: var(--em-orange); color: #fff; }
.em-grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
}
.em-grid > li { display: flex; max-width: 100%; }
.em-grid a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	max-width: 100%;
	padding: 13px 18px;
	background: #f7f7f7;
	border: 1px solid #eee;
	border-radius: 6px;
	text-decoration: none;
	color: #333;
	transition: .15s;
}
.em-grid a:hover { background: var(--em-orange); color: #fff; border-color: var(--em-orange); }
.em-grid-count {
	background: rgba(0,0,0,.08);
	border-radius: 12px;
	padding: 1px 9px;
	font-size: 13px;
	min-width: 26px;
	text-align: center;
	white-space: nowrap;
	flex: 0 0 auto;
	margin-left: 8px;
}
.em-grid-name { margin-right: auto; }
.em-grid a:hover .em-grid-count { background: rgba(255,255,255,.25); }


/* ==========================================================================
   6. CARTE — bouton « Réinitialiser la vue » (logique dans em-map-clustering.php)
   ========================================================================== */
.em-map-reset a { display: flex !important; align-items: center; justify-content: center; color: #444; }
.em-map-reset a:hover { color: #2e93c9; }
.em-map-reset svg { display: block; }


/* ==========================================================================
   7. FOOTER — 3 colonnes + menu légal (injecté par em-theme-branding.php)
   ========================================================================== */
.em-footer { background: #2b2b2b; color: #ddd; padding: 40px 20px 10px; font-size: 15px; }
.em-footer a { color: #fff; text-decoration: none; }
.em-footer a:hover { color: var(--em-orange); text-decoration: none; }
.em-footer-cols { display: flex; flex-wrap: wrap; gap: 30px; max-width: 1100px; margin: 0 auto; }
.em-fcol { flex: 1 1 260px; }
.em-fcol .em-fcol-title {
	color: var(--em-brand);
	font-size: 18px;
	margin: 0 0 14px;
	border-bottom: 2px solid var(--em-brand);
	padding-bottom: 6px;
}
.em-fcol ul { list-style: none; margin: 0; padding: 0; }
.em-fcol li { margin: 0 0 8px; }
.em-fcol-logo img { max-width: 144px; height: auto; }
.em-fcol-logo .em-fb-card { display: inline-block; margin-top: 10px; }
.em-fcol-logo .em-fb-card img { display: block; width: 100%; max-width: 333px; height: auto; border-radius: 6px; }
.em-footer-signal { max-width: 1200px; margin: 24px auto 0; padding: 12px 16px; border: 1px solid #444; text-align: center; }
.em-footer-signal p { margin: 0; }
.em-footer-signal a { font-weight: 600; }
.em-footer-legal { max-width: 1200px; margin: 24px auto 0; border-top: 1px solid #444; padding-top: 12px; }
.em-footer-legal ul {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 6px 18px;
	margin: 0;
	padding: 0;
	font-size: 15px;
}
.em-footer-legal a { color: #bbb; }
.em-footer-legal a:hover { color: var(--em-orange); }


/* ==========================================================================
   8. FICHE (single gd_place) — mise en forme éditoriale (inspirée de la prod)
   --------------------------------------------------------------------------
   Le contenu de description est balisé en <h2>/<ul> ; on lui applique le rendu
   « prod » : titres de section bleus avec filet horizontal, listes à puces
   fléchées bleues, confort de lecture, et bloc contact épuré.
   ========================================================================== */

/* Bleu de marque secondaire (Loiréadd) — constante, aussi utilisée par la carte. */
:root { --em-blue: #4daee3; }

/* --- Fil d'Ariane sous le titre (Accueil › domaine › titre) --- */
.single-gd_place .em-breadcrumb {
	margin: 0 0 18px;
	font-size: 14px;
	color: #777;
}
.single-gd_place .em-breadcrumb a {
	color: var(--em-blue);
	text-decoration: none;
}
.single-gd_place .em-breadcrumb a:hover { text-decoration: underline; }
.single-gd_place .em-breadcrumb .em-bc-sep { margin: 0 4px; color: #bbb; }
.single-gd_place .em-breadcrumb .em-bc-current { color: #777; }

/* --- Image / logo de la structure : ne pas étirer plein écran (souvent un petit
   logo basse résolution) — cadré, centré, sans déformation ni pixellisation --- */
.single-gd_place .geodir-image-container,
.single-gd_place .geodir-post-images,
.single-gd_place .geodir-images {
	max-width: 460px;
	margin: 0 auto 10px;
}
.single-gd_place .geodir-image-container .embed-item-cover-xy,
.single-gd_place .geodir-image-container img {
	object-fit: contain !important;
	max-height: 300px;
	background: #fff;
}

/* Logos des cartes (archives + slider) : object-fit contain au lieu du cover d AyeCode UI
   (pas de rognage des logos), comme la fiche. Selecteur .geodir-post … (0,3,0) > le
   .bsui .embed-item-cover-xy d AUI (0,2,0) -> pas besoin de !important. Fond blanc pour des
   bandes propres (l image a deja sa hauteur via .ratio, donc pas de height non plus). */
.geodir-post .geodir-image-container .embed-item-cover-xy,
.geodir-post .geodir-image-container img {
	object-fit: contain;
	background: #fff;
}

/* --- Titres de section : bleu + filet horizontal qui prolonge le titre --- */
/* couvre « Domaines d'intervention », « Localisation » (gabarit) ET les titres de
   la description (Missions, Public, Équipe… dans .geodir-field-post_content). */
.single-gd_place .entry-content h2,
.single-gd_place .geodir-field-post_content h3,
.single-gd_place .geodir-field-post_content h4 {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 30px 0 14px;
	color: var(--em-blue);
	font-weight: 700;
	line-height: 1.3;
}
.single-gd_place .entry-content h2::after,
.single-gd_place .geodir-field-post_content h3::after,
.single-gd_place .geodir-field-post_content h4::after {
	content: "";
	flex: 1 1 auto;
	height: 1px;
	background: linear-gradient(to right, rgba(77,174,227,.45), rgba(77,174,227,0));
}

/* --- « Domaines d'intervention » : catégories en pastilles sous le titre --- */
.single-gd_place .geodir_post_taxomomies { margin-top: 4px; margin-bottom: 28px !important; } /* !important : bat Bootstrap .mb-2 */
.single-gd_place .geodir-category a {
	display: inline-block;
	margin: 0 7px 7px 0;
	padding: 5px 13px;
	background: #fff !important;
	color: var(--em-blue) !important;
	border: 1px solid var(--em-blue) !important;
	border-radius: 16px;
	font-size: 14px;
	line-height: 1.3;
	text-decoration: none;
	transition: background .15s, color .15s, border-color .15s;
}
.single-gd_place .geodir-category a:hover {
	background: var(--em-orange) !important;
	color: #fff !important;
	border-color: var(--em-orange) !important;
}

/* --- Rangée 2 colonnes : logo | coordonnées + horaires --- */
.single-gd_place .em-fiche-cols {
	gap: 34px;
	align-items: center;
	margin: 6px 0 26px;
}
@media (max-width: 781px) {
	.single-gd_place .em-fiche-cols { gap: 14px; }
}

/* --- Confort de lecture de la description --- */
.single-gd_place .geodir-field-post_content {
	color: #444;
	font-size: 16px;
	line-height: 1.65;
}
.single-gd_place .geodir-field-post_content p { margin: 0 0 14px; }
.single-gd_place .geodir-field-post_content strong { color: #333; }

/* --- Listes à puces fléchées bleues (repro prod) --- */
.single-gd_place .geodir-field-post_content ul {
	list-style: none;
	margin: 0 0 16px;
	padding: 0;
}
.single-gd_place .geodir-field-post_content ul li {
	position: relative;
	padding-left: 30px;
	margin: 9px 0;
	line-height: 1.5;
}
.single-gd_place .geodir-field-post_content ul li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .15em;
	width: 19px;
	height: 19px;
	border-radius: 50%;
	background: var(--em-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.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 5l7 7-7 7'/%3E%3C/svg%3E") center / 10px 10px no-repeat;
}

/* --- Bloc contact (adresse / téléphone / e-mail / site / horaires) : lignes épurées --- */
.single-gd_place .geodir_post_meta.geodir-field-address,
.single-gd_place .geodir_post_meta.geodir-field-phone,
.single-gd_place .geodir_post_meta.geodir-field-phone2,
.single-gd_place .geodir_post_meta.geodir-field-email,
.single-gd_place .geodir_post_meta.geodir-field-website,
.single-gd_place .geodir_post_meta.geodir-field-business_hours {
	padding: 10px 2px;
	border-bottom: 1px solid #efeeea;
	margin: 0;
}
.single-gd_place .geodir_post_meta .geodir_post_meta_icon,
.single-gd_place .geodir_post_meta .geodir_post_meta_icon i {
	color: var(--em-blue);
	min-width: 22px;
}
.single-gd_place .geodir_post_meta .geodir_post_meta_title {
	color: #555;
	font-weight: 600;
}

/* --- Onglets (Présentation / Photos / Avis) --- */
.single-gd_place .geodir-tabs-head .nav-link,
.single-gd_place .geodir-tabs-head li a {
	color: #666;
	font-weight: 600;
}
.single-gd_place .geodir-tabs-head .nav-link.active,
.single-gd_place .geodir-tabs-head li a.active,
.single-gd_place .geodir-tabs-head li.active a {
	color: var(--em-blue);
	border-bottom: 2px solid var(--em-blue);
}

/* =========================================================================
   Retouches brief 2026-06-21 (slider accueil + barre de résultats recherche)
   ========================================================================= */

/* --- Slider « Dernières structures enregistrées » --- */
.em-home-slider-title {
	margin: 8px auto 18px;
	font-size: 26px;
}

/* Transition plus douce du carrousel Bootstrap (défaut .6s un peu sec). */
.em-home-slider .carousel-item {
	transition: transform .8s ease-in-out;
}

/* Flèches de navigation (rendues par GeoDirectory : .carousel-control-prev/next).
   Rendues bien visibles : pastille ronde à la couleur de marque. */
.em-home-slider .carousel-control-prev,
.em-home-slider .carousel-control-next {
	width: 40px;
	height: 40px;
	top: 50%;
	transform: translateY(-50%);
	background: var(--em-brand);
	border-radius: 50%;
	opacity: .9;
	box-shadow: 0 2px 8px rgba(0,0,0,.2);
	display: flex;
	align-items: center;
	justify-content: center;
}
.em-home-slider .carousel-control-prev:hover,
.em-home-slider .carousel-control-next:hover {
	opacity: 1;
}
.em-home-slider .carousel-control-prev i,
.em-home-slider .carousel-control-next i,
.em-home-slider .carousel-control-prev .carousel-control-prev-icon,
.em-home-slider .carousel-control-next .carousel-control-next-icon {
	color: #fff;
	filter: invert(1);
}

/* --- Barre de filtre des archives, rendue sous le titre H1 (en flux ;
       le moteur de recherche global occupe la zone hero). --- */
.em-loc-filter {
	max-width: 760px;
	margin: 14px auto 50px;
	padding: 12px 18px;
	background: #f4f8fb;
	border: 1px solid #e1ebf2;
	border-radius: 10px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	text-align: left;
}
.em-results-count {
	font-size: 18px;
	font-weight: 700;
	color: var(--em-orange);
}
.em-results-filter-wrap {
	font-size: 15px;
	color: #444;
	display: flex;
	align-items: center;
	gap: 8px;
	min-width: 0;
}
.em-results-filter {
	padding: 8px 12px;
	border: 1px solid #ccc;
	border-radius: 8px;
	font-size: 15px;
	background: #fff;
	cursor: pointer;
	max-width: 100%;
	min-width: 0;
}
@media (max-width: 600px) {
	.em-loc-filter { margin: 4px 0 24px; padding: 12px 14px; }
	/* le bloc filtre prend toute la largeur ; le select remplit la ligne sous le label
	   (ou retombe dessous) au lieu de deborder de la carte. */
	.em-results-filter-wrap { width: 100%; flex-wrap: wrap; }
	.em-results-filter { flex: 1 1 180px; }
}

/* Archives : le gabarit GeoDirectory rend deja un [gd_search] dans le contenu ; on le masque
   pour ne garder que le moteur flottant en hero (coherence home / fiches). Reversible. */
.em-gd-archive .entry-content .wp-block-geodirectory-geodir-widget-search,
.geodir-page-search .entry-content .wp-block-geodirectory-geodir-widget-search { display: none; }

/* =========================================================================
   Grille « Choisissez un domaine ou un lieu » : picto + résumé au survol
   (brief 2026-06-21, complément). Pictos via em_category_icon_id()/em_lieu_icon_id() ;
   résumé = description du terme (data-em-tip).
   ========================================================================= */
.em-grid-main {
	display: flex;
	align-items: center;
	gap: 9px;
	min-width: 0;
}
.em-grid-ico {
	width: 26px;
	height: 26px;
	object-fit: contain;
	flex: 0 0 auto;
}
.em-grid-name { margin-right: 0; }

/* Tooltip de résumé au survol/focus (uniquement si data-em-tip présent). */
.em-grid a[data-em-tip] { position: relative; }
.em-grid a[data-em-tip]::after {
	content: attr(data-em-tip);
	position: absolute;
	left: 50%;
	bottom: calc(100% + 9px);
	transform: translateX(-50%);
	width: max-content;
	max-width: 260px;
	white-space: normal;
	text-align: left;
	background: #2b2b2b;
	color: #fff;
	font-size: 13px;
	line-height: 1.35;
	padding: 8px 11px;
	border-radius: 8px;
	box-shadow: 0 6px 20px rgba(0,0,0,.25);
	opacity: 0;
	visibility: hidden;
	transition: opacity .15s ease;
	z-index: 20;
	pointer-events: none;
}
.em-grid a[data-em-tip]::before {
	content: "";
	position: absolute;
	left: 50%;
	bottom: calc(100% + 3px);
	transform: translateX(-50%);
	border: 6px solid transparent;
	border-top-color: #2b2b2b;
	opacity: 0;
	visibility: hidden;
	transition: opacity .15s ease;
	z-index: 20;
	pointer-events: none;
}
.em-grid a[data-em-tip]:hover::after,
.em-grid a[data-em-tip]:focus::after,
.em-grid a[data-em-tip]:hover::before,
.em-grid a[data-em-tip]:focus::before {
	opacity: 1;
	visibility: visible;
}

/* En-tête des archives GeoDirectory (domaines/lieux/CPT) : titre H1 + résumé, centrés. */
.em-gd-archive .entry-header { text-align: center; }
.em-gd-archive .entry-title { text-align: center; }
.em-archive-desc {
	max-width: 720px;
	margin: 0 auto 20px;
	color: #555;
	font-size: 17px;
	line-height: 1.2;
}

/* Fil d'Ariane des archives (domaines/lieux/CPT) : SOUS le titre H1, centré. */
.em-gd-archive .em-breadcrumb {
	text-align: center;
	margin: 0 0 6px;
	font-size: 14px;
	color: #777;
}
.em-gd-archive .em-breadcrumb a { color: var(--em-blue); text-decoration: none; }
.em-gd-archive .em-breadcrumb a:hover { text-decoration: underline; }
.em-gd-archive .em-breadcrumb .em-bc-sep { margin: 0 4px; color: #bbb; }
.em-gd-archive .em-breadcrumb .em-bc-current { color: #777; }

/* Archives (Domaines / Lieux) : 2 cartes par ligne sur TABLETTE uniquement (demande Eric 2026-06-23).
   GeoDirectory rend la grille en row-cols-md-3 (3 colonnes >=768px) ; on force 2 colonnes (50%)
   sur la bande tablette 768-1024px. Desktop (>1024px) garde 3 colonnes ; <768px gere par
   row-cols-sm-2 / row-cols-1. Scope .em-gd-archive (gd_placecategory + gd_place_secteur + CPT). */
@media (min-width: 768px) and (max-width: 1024px) {
	.em-gd-archive .geodir-listing-posts > .col { flex: 0 0 auto; width: 50%; max-width: 50%; }
}

/* Bouton « Itinéraire vers … » (Google Maps, nouvel onglet) sous la carte de localisation. */
.em-itineraire-wrap { text-align: center; margin: 16px 0 0; }
.em-itineraire {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 12px 22px;
	background: var(--em-blue);
	color: #fff;
	border-radius: 8px;
	text-decoration: none;
	font-weight: 600;
	font-size: 16px;
	box-shadow: 0 2px 8px rgba(0,0,0,.15);
}
.em-itineraire:hover,
.em-itineraire:focus { background: var(--em-orange); color: #fff; }
.em-itineraire i { font-size: 1.05em; }

/* Moteur de recherche sur une fiche SANS carte hero (services nationaux sans coords) :
   en flux normal au lieu de chevaucher une carte absente. */
.em-hero-search--flat {
	margin-top: 24px;
	background: #fff;
	box-shadow: 0 2px 10px rgba(0,0,0,.08);
}
@media (max-width: 600px) {
	.em-hero-search--flat { margin-top: 14px; }
}


/* =========================================================================
   Application de la charte typographique (après GeneratePress).
   ========================================================================= */
body, button, input, select, textarea {
	font-family: 'Open Sans', -apple-system, system-ui, "Segoe UI", Helvetica, Arial, sans-serif;
}
h1, h2, h3, h4, h5, h6,
.bsui h1, .bsui h2, .bsui h3, .bsui h4, .bsui h5, .bsui h6,
.bsui .h1, .bsui .h2, .bsui .h3, .bsui .h4, .bsui .h5, .bsui .h6, /* classes Bootstrap (ex. titres de carte <h2 class=h5>) : AyeCode UI les style en classe (0,2,0) > notre regle element ; on charge apres -> Archivo l emporte sans !important */
.entry-title, .em-fcol-title, .em-home-slider-title {
	font-family: 'Archivo Narrow', "Arial Narrow", system-ui, sans-serif;
}

/* Espace titre « Localisation » → carte : annule les <p> vides (artefacts wpautop) et
   la marge haute du widget carte (gabarit page #11, shortcode em_localisation). */
.single-gd_place .geodir-wgt-map { margin-top: 0; }
.single-gd_place .geodir-wgt-map p { margin: 0; padding: 0; }

/* Échelle de titres (charte) — h1 bleu+gras, h2 32 / h3 25 / h4 20 px.
   `.bsui …` pour battre AyeCode UI (qui scope ses tailles sous .bsui). */
h1, h1.entry-title { color: var(--em-orange); font-weight: 700; }
h2, .bsui h2 { font-size: 32px; font-weight: 700; }
h3, .bsui h3 { font-size: 25px; font-weight: 700; }
h4, .bsui h4 { font-size: 20px; font-weight: 700; }

/* Titres de carte (listings GeoDirectory = .geodir-entry-title.h5) : 26px (demande Eric).
   Cible la taille .h5 d AyeCode UI (1.25rem = 20px) via une specificite superieure (0,3,0),
   donc sans !important. La police Archivo vient deja de la regle ci-dessus (.bsui .h5). */
.bsui .geodir-entry-title.h5 { font-size: 26px; line-height: 1.2; }

/* Titre de carte AU-DESSUS de l image + centre (demande Eric 2026-06-23). Le titre est imbrique
   dans .card-body (sous l image) ; .card-body{display:contents} promeut titre + description au
   niveau flex de .card (flex-column), puis order:-1 remonte le titre avant l image. On re-applique
   le padding perdu de .card-body et on laisse la description grandir (flex:1) -> pied de carte en bas. */
.em-gd-archive .geodir-post .card-body { display: contents; }
.em-gd-archive .geodir-post .geodir-post-title { order: -1; padding: 8px 8px 0; margin: 0 0 16px 0; text-align: center; }
.em-gd-archive .geodir-post .geodir-post-content-container { flex: 1 1 auto; padding: 15px 8px 0 12px; }
.em-gd-archive .geodir-post .geodir-post-content-container, .em-home-slider .geodir-post .geodir-post-content-container { font-size: 15px; }

/* --- Habillage des cartes de listing (archives + slider d'accueil). Code Éric, scopé
   .geodir-post pour ne PAS toucher la fiche detail (qui a aussi .card / .geodir-image-container).
   Carte fond bleu pale -> blanc au survol ; image sur bande blanche bordee qui passe en
   bleu assombri au survol. Coins carres sur toutes les cartes du site. --- */
.bsui .card { --bs-card-border-radius: 0; --bs-card-inner-border-radius: 0; }
.geodir-post .card { background-color: #f4f8fb !important; transition: all .3s ease-in-out; }
.geodir-post .card:hover { background-color: #fff !important; transition: all .5s ease-out; }
.geodir-post .geodir-image-container {
	padding: 10px 0;
	background-color: #fff !important;
	border-top: 1px solid #efecf3;
	border-bottom: 1px solid #efecf3;
	transition: all .3s ease-in-out;
}
.geodir-post .embed-has-action:hover img,
.geodir-post .geodir-image-container:hover {
	background-color: #4daee3 !important;
	filter: brightness(50%);
	transition: all .3s ease-in-out;
}
.geodir-post .card-footer.p-2 { background-color: #fff; min-height: 45px; }
.geodir-post .geodir-post-rating.bsui { display: none; }
.bsui .dropdown-toggle:not(.dropdown-toggle-split)::after { margin-right: 1rem; }

/* =========================================================================
   Micro-interactions / effets (sobres). Regroupes ici pour pouvoir ajuster ou
   retirer effet par effet. Le bloc prefers-reduced-motion (fin) coupe tout si
   l'utilisateur a demande la reduction des animations au niveau systeme.
   ========================================================================= */

/* 1. Cartes de listing (archives + slider) : ombre legere, elevation au survol. */
.geodir-post .card { box-shadow: 0 1px 3px rgba(20,50,90,.06); }
.geodir-post .card:hover { transform: translateY(-5px); box-shadow: 0 14px 30px rgba(20,60,110,.16); }

/* 2. Logo de la carte : leger zoom au survol de la carte, clippe dans le cadre. */
.geodir-post .card .geodir-image-container { overflow: hidden; }
.geodir-post .card .geodir-image-container img { transition: transform .45s ease, filter .3s ease, background-color .3s ease; }
.geodir-post .card:hover .geodir-image-container img { transform: scale(1.06); }

/* 3. Tuiles « Domaines / Lieux » : transition douce + petite elevation (en plus du passage orange). */
.em-grid a { transition: background .25s ease, color .25s ease, border-color .25s ease, transform .25s ease, box-shadow .25s ease; }
.em-grid a:hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(210,90,30,.22); }

/* 4. Onglets : transition + survol des onglets inactifs. */
.em-tab { transition: background .2s ease, color .2s ease, transform .2s ease; }
.em-tab:not(.is-active):hover { background: #e2e2e2; transform: translateY(-1px); }

/* 5. Bouton de recherche : transition + leger relief au survol. */
.geodir_submit_search.btn { transition: transform .2s ease, box-shadow .2s ease, filter .2s ease; }
.geodir_submit_search.btn:hover { transform: translateY(-1px); box-shadow: 0 6px 16px rgba(30,115,190,.3); filter: brightness(1.05); }

/* 6. Defilement doux des ancres. */
html { scroll-behavior: smooth; }

/* 7. Respect de prefers-reduced-motion : on neutralise transitions et transforms. */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.geodir-post .card, .geodir-post .card:hover,
	.geodir-post .card .geodir-image-container img, .geodir-post .card:hover .geodir-image-container img,
	.em-grid a, .em-grid a:hover,
	.em-tab, .em-tab:not(.is-active):hover,
	.geodir_submit_search.btn, .geodir_submit_search.btn:hover {
		transition: none !important;
		transform: none !important;
	}
}

/* Carrousel d'images de fiche : flèches visibles (pastille bleue), masquées si 1 seule
   image (les contrôles cliquables sont rendus par GeoDirectory même à 1 image). */
.single-gd_place .geodir-image-wrapper .carousel-control-prev,
.single-gd_place .geodir-image-wrapper .carousel-control-next {
	width: 34px;
	height: 34px;
	top: 50%;
	transform: translateY(-50%);
	background: var(--em-blue);
	border-radius: 50%;
	opacity: .85;
	transition: opacity .15s;
}
.single-gd_place .geodir-image-wrapper .carousel-control-prev { left: 8px; }
.single-gd_place .geodir-image-wrapper .carousel-control-next { right: 8px; }
.single-gd_place .geodir-image-wrapper .carousel-control-prev:hover,
.single-gd_place .geodir-image-wrapper .carousel-control-next:hover { opacity: 1; }
.single-gd_place .geodir-image-wrapper .carousel-control-prev-icon,
.single-gd_place .geodir-image-wrapper .carousel-control-next-icon {
	width: 1rem;
	height: 1rem;
}
/* Une seule image : pas de flèches ni de zones cliquables. */
.single-gd_place .geodir-image-wrapper:has(.geodir-images-n-1) .carousel-control-prev,
.single-gd_place .geodir-image-wrapper:has(.geodir-images-n-1) .carousel-control-next {
	display: none;
}

/* Fond de page blanc (remplace var(--base-2) de GeneratePress). */
body { background-color: #fff; }

/* Pas de marge haute du contenu (remplace le margin-top de GeneratePress). */
.separate-containers .site-main { margin-top: 0; }

/* Rapproche le contenu (et donc le fil d'Ariane) du titre — remplace le margin-top:2em
   de GeneratePress sur .entry-content:not(:first-child). */
.entry-content:not(:first-child) {
	margin-top: 0.2em;
}

/* Taille du menu principal (1er niveau) — n'affecte pas le méga-menu. */
.main-navigation .main-nav > ul > li > a { font-size: 1rem; }

/* Slider « Dernières structures » — défilement continu maison (marquee). */
.em-marquee { position: relative; padding: 0 12px; }
.em-marquee-viewport { overflow: hidden; }
.em-marquee-viewport .geodir-listings,
.em-marquee-viewport .geodir_locations { margin: 0; overflow: visible; }
.em-marquee-viewport .geodir-widget-posts {
	display: flex !important;
	flex-wrap: nowrap !important;
	align-items: flex-start !important; /* hauteurs naturelles : pas d'etirement -> pas de vide sous l'extrait */
	width: max-content;
	margin: 0;
}
.em-marquee-viewport .col {
	flex: 0 0 380px !important;
	width: 380px !important;
	max-width: 380px !important;
	margin: 0;
}

/* Mobile : la carte figee a 350px depasse le viewport etroit du slider
   (viewport = 100vw - 60px padding .inside-article - 24px padding .em-marquee).
   On la rend relative au viewport : une carte entiere + ~32px d apercu de la
   suivante, a toutes les largeurs de telephone. Reversible : retirer ce bloc. */
@media (max-width: 600px) {
	.em-marquee-viewport .col {
		flex: 0 0 calc(100vw - 116px) !important;
		width: calc(100vw - 116px) !important;
		max-width: calc(100vw - 116px) !important;
	}
}
.em-marquee-nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 6;
	width: 42px;
	height: 42px;
	border: 0;
	border-radius: 50%;
	background: var(--em-blue);
	cursor: pointer;
	opacity: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background .15s, opacity .15s;
}
.em-marquee-nav:hover { opacity: 1; background: var(--em-orange); }
.em-marquee-prev { left: -2px; }
.em-marquee-next { right: -2px; }
.em-marquee-nav svg { width: 22px; height: 22px; display: block; }

/* Badge new des cartes masque pour le moment - reversible : retirer cette regle */
.gd-badge-meta .gd-badge.ab-top-right { display: none !important; }

/* Descriptions non justifiees (demande Eric 2026-06-23) : GeoDirectory pose .text-justify sur
   le champ post_content (cartes) via AyeCode UI -> rivieres disgracieuses. On rebascule a gauche.
   Selecteur 1 cran plus specifique que `.bsui .text-justify{...!important}` d AUI pour l emporter. */
body .bsui .text-justify { text-align: left !important; }

/* le <button> a un padding par defaut qui ecrasait le chevron SVG en flex */
.em-marquee-nav { padding: 0; }

/* Barre de copyright sous le footer : meme habillage que le footer */
.site-footer .site-info { background: #2b2b2b; color: #ddd; border-top: 1px solid #444; }
.site-footer .site-info p { color: #ddd; }
.site-footer .site-info a { color: #fff; text-decoration: none; }
.site-footer .site-info a:hover { color: var(--em-orange); text-decoration: none; }

/* Picto e-mail devant l'item Contact du menu principal */
#menu-item-353 > a::before {
	content: ""; display: inline-block; width: 24px; height: 24px; margin-right: 9px;
	vertical-align: middle; background-color: currentColor;
	-webkit-mask-size: contain; mask-size: contain;
	-webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
	-webkit-mask-position: center; mask-position: center;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Cpath%20d='M20%204H4c-1.1%200-1.99.9-1.99%202L2%2018c0%201.1.9%202%202%202h16c1.1%200%202-.9%202-2V6c0-1.1-.9-2-2-2zm0%204l-8%205-8-5V6l8%205%208-5v2z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Cpath%20d='M20%204H4c-1.1%200-1.99.9-1.99%202L2%2018c0%201.1.9%202%202%202h16c1.1%200%202-.9%202-2V6c0-1.1-.9-2-2-2zm0%204l-8%205-8-5V6l8%205%208-5v2z'/%3E%3C/svg%3E");
}

/* Badge categorie (bas-gauche) des cartes masque : la categorie par defaut na pas de sens ici */
.gd-badge-meta .gd-badge.ab-bottom-left { display: none !important; }

/* =========================================================================
   Carte (OSM / Leaflet) : popup « gd-bubble » repensee compacte + marqueurs.
   Scope .leaflet-popup => carte OSM uniquement. !important assume : on bat le CSS
   inline et le gabarit d'origine (titre en surimpression rouge/gradient).
   ========================================================================= */

/* Popup : coins arrondis, ombre douce, image a fleur de bord. */
.leaflet-popup-content-wrapper {
	border-radius: 12px;
	box-shadow: 0 12px 30px rgba(20,60,110,.25);
	padding: 0;
	overflow: hidden;
}
.leaflet-popup-content { margin: 0; width: 230px !important; }
.leaflet-popup-content .gd-bubble,
.leaflet-popup-content .gd-bubble-inside,
.leaflet-popup-content .geodir-bubble_desc {
	max-width: none !important;
	width: auto !important;
	height: auto !important;
	box-sizing: border-box;
	padding: 0;
	overflow: visible;
}
.leaflet-popup-content .geodir-bubble_desc { padding-bottom: 10px !important; }

/* Image : bandeau compact, logo CONTENU (pas de rognage) sur fond blanc. */
.leaflet-popup-content .geodir-bubble_image,
.leaflet-popup-content .geodir-bubble_image li { margin: 0; padding: 0; width: 100%; list-style: none; }
.leaflet-popup-content .geodir-bubble_image img {
	width: 100%;
	height: 96px;
	object-fit: contain;
	background: #fff;
	display: block;
	border-radius: 0;
}

/* Titre : on neutralise la surimpression rouge/gradient d'origine -> ligne lisible sous l'image. */
.leaflet-popup-content .geodir-post-title { position: static !important; }
.leaflet-popup-content .geodir-post-title h1,
.leaflet-popup-content .geodir-post-title h2,
.leaflet-popup-content .geodir-post-title h3,
.leaflet-popup-content .geodir-post-title h4 {
	position: static !important;
	background: none !important;
	color: var(--em-blue) !important;
	white-space: normal !important;
	width: auto !important;
	padding: 10px 12px 2px !important;
	margin: 0 !important;
	font-size: 15px !important;
	line-height: 1.25 !important;
	text-overflow: clip !important;
	overflow: visible !important;
}
.leaflet-popup-content .geodir-post-title a { color: var(--em-blue) !important; font-weight: 700; }

/* Meta / adresse : compact, gris ; on masque la note (coherent avec les cartes). */
.leaflet-popup-content .geodir-bubble-meta-top { padding: 0 12px; }
.leaflet-popup-content .geodir-bubble-meta-side .geodir_post_meta {
	padding: 3px 12px !important;
	font-size: 13px;
	color: #555;
	border: 0 !important;
	background: transparent !important;
}
.leaflet-popup-content .geodir-post-rating { display: none !important; }
/* Titre en double : le bloc « mapbubble » re-affiche le champ Titre (avec icone « — »)
   avant l'adresse. Le titre etant deja en tete de bulle, on masque ce champ ; on garde
   adresse et telephone. */
.leaflet-popup-content .geodir-output-location .geodir-field-post_title { display: none !important; }

/* Bouton fermer : pastille discrete, orange au survol. */
.leaflet-popup-close-button {
	width: 26px !important;
	height: 26px !important;
	font: 700 18px/24px sans-serif !important;
	color: #fff !important;
	background: rgba(0,0,0,.4) !important;
	border-radius: 50%;
	top: 6px !important;
	right: 6px !important;
	z-index: 20;
	transition: background .2s ease;
}
.leaflet-popup-close-button:hover { background: var(--em-orange) !important; }

/* Marqueurs : ombre + leger eclat au survol. PAS de transform (Leaflet l'utilise
   en inline pour positionner le marqueur) -> on anime uniquement le filter. */
.leaflet-marker-icon { transition: filter .18s ease; }
.leaflet-marker-icon:hover { filter: drop-shadow(0 3px 5px rgba(0,0,0,.5)) brightness(1.08); }

@media (prefers-reduced-motion: reduce) {
	.leaflet-marker-icon, .leaflet-marker-icon:hover { transition: none !important; }
	.leaflet-popup-close-button { transition: none !important; }
}

/* Adresse sur une seule ligne (rue, CP, ville) : on masque le <br> et on espace les segments.
   Code Éric, global (bulle carte + fiche). */
.geodir-field-address br {
	display: none;
}
.geodir-field-address [itemprop="streetAddress"]::after,
.geodir-field-address [itemprop="postalCode"]::after {
	content: " ";
}
