/*!
 * Monde du Vélo — thème 2026, aligné sur mondeduvelo.com.
 * Chargé APRÈS site.css : il ne fait que redéfinir l'apparence
 * (couleurs, typographie, en-tête, menu, cartes, pied de page).
 *
 * Palette : bleu nuit #1C154E · vert anis #C6E74F · lavande #EBE7F7
 * Polices  : Work Sans (texte), Poppins (titres)
 */
:root {
  --nuit: #1C154E;
  --nuit-2: #2d2470;
  --anis: #C6E74F;
  --anis-fonce: #b2d23c;
  --lavande: #EBE7F7;
  --lavande-2: #f6f4fc;
  --texte: #1C154E;
  --texte-doux: #454056;
  --gris: #9691A4;
  --bord: #e3e0ee;
  --rayon: 12px;
  --rayon-petit: 8px;
  --ombre: 0 4px 24px rgba(28, 21, 78, .08);
  --ombre-forte: 0 10px 30px rgba(28, 21, 78, .16);
  --largeur: 1180px;
  --titres: 'Poppins', 'Work Sans', Arial, sans-serif;
  --corps: 'Work Sans', Arial, Helvetica, sans-serif;
  /* variables de site.css réutilisées par d'anciens blocs */
  --mdv-bleu: var(--nuit);
  --mdv-vert: var(--anis);
}

/* ------------------------------------------------------------------ */
/* Base                                                                */
/* ------------------------------------------------------------------ */
html { scroll-behavior: smooth; }
body {
  font-family: var(--corps);
  font-size: 16px;
  line-height: 1.6;
  color: var(--texte);
  background: #fff;
  -webkit-font-smoothing: antialiased;
}
a { color: var(--nuit); }
a:hover { color: var(--nuit-2); }
img { max-width: 100%; height: auto; }
h1, h2, h3, h4, .titre_actu { font-family: var(--titres); color: var(--nuit); letter-spacing: -.01em; }
h1, .titre_actu, h1.titre_actu, h2.titre_actu {
  color: var(--nuit); font-family: var(--titres);
  font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.3rem);
  font-weight: 600;
  line-height: 1.2;
  text-transform: none;
  margin: 10px 0 18px;
}
h2 { font-size: 1.35rem; font-weight: 600; line-height: 1.3; text-transform: none; }
h3 { font-size: 1.1rem; font-weight: 600; }
p { color: var(--texte-doux); }
strong, b { color: var(--nuit); }
:focus-visible { outline: 3px solid var(--anis); outline-offset: 2px; }

.mdv-wrap { max-width: var(--largeur); margin: 0 auto; padding: 0 20px; box-sizing: border-box; }
.mdv-evitement { position: absolute; left: -9999px; top: 0; z-index: 9999; background: var(--anis); color: var(--nuit); padding: 10px 16px; border-radius: 0 0 8px 0; font-weight: 600; }
.mdv-evitement:focus { left: 0; }

/* Boutons */
.mdv-btn, .bouton, button.bouton, a.button, .button_add, a.button_add, .lien_plus_info .plus_info {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 10px 20px; border: 0; border-radius: var(--rayon-petit);
  font: 600 .95rem/1.2 var(--corps); text-transform: none; text-decoration: none; cursor: pointer;
  background: var(--nuit); color: #fff; transition: background .2s, transform .2s, box-shadow .2s;
}
.mdv-btn:hover, .bouton:hover, a.button:hover, .button_add:hover { background: var(--nuit-2); color: #fff; transform: translateY(-1px); box-shadow: var(--ombre); }
.mdv-btn-lime, a.button, .button_add, a.button_add { background: var(--anis); color: var(--nuit); }
.mdv-btn-lime:hover, a.button:hover, .button_add:hover { background: var(--anis-fonce); color: var(--nuit); }

/* ------------------------------------------------------------------ */
/* Bandeau supérieur                                                    */
/* ------------------------------------------------------------------ */
.mdv-topbar { background: var(--nuit); color: #fff; font-size: .85rem; }
.mdv-topbar .mdv-wrap { display: flex; justify-content: space-between; align-items: center; min-height: 38px; gap: 16px; }
.mdv-topbar ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 22px; align-items: center; }
.mdv-topbar a { color: #fff; text-decoration: none; opacity: .92; }
.mdv-topbar a:hover { color: var(--anis); opacity: 1; }
.mdv-topbar-liens i { color: var(--anis); margin-right: 4px; }
.mdv-social { list-style: none; margin: 0; padding: 0; display: flex; gap: 8px; }
.mdv-social a { display: inline-flex; width: 30px; height: 30px; align-items: center; justify-content: center; border-radius: 6px; background: rgba(255,255,255,.1); color: #fff; }
.mdv-social a:hover, .mdv-social a:focus-visible,
.mdv-topbar .mdv-social a:hover, .mdv-footer .mdv-social a:hover { background: var(--anis); color: var(--nuit); }

/* ------------------------------------------------------------------ */
/* En-tête                                                              */
/* ------------------------------------------------------------------ */
.mdv-header { background: #fff; box-shadow: 0 5px 30px rgba(0,0,0,.08); position: relative; z-index: 50; }
.mdv-header-in { display: flex; align-items: center; gap: 24px; padding-top: 14px; padding-bottom: 14px; }
.mdv-logo img { display: block; height: 56px; width: auto; }
.mdv-recherche { flex: 1; display: flex; align-items: center; max-width: 560px; margin-left: auto; position: relative; }
.mdv-recherche > i { position: absolute; left: 14px; color: var(--gris); }
.mdv-recherche input[type=search] {
  flex: 1; height: 44px; padding: 0 14px 0 38px; border: 1px solid var(--bord); border-right: 0;
  border-radius: var(--rayon-petit) 0 0 var(--rayon-petit); font: 400 1rem var(--corps); color: var(--nuit); background: var(--lavande-2);
}
.mdv-recherche input[type=search]:focus { outline: none; border-color: var(--nuit); background: #fff; }
.mdv-recherche button {
  height: 44px; width: 52px; border: 0; border-radius: 0 var(--rayon-petit) var(--rayon-petit) 0;
  background: var(--nuit); color: #fff; cursor: pointer; font-size: 1rem;
}
.mdv-recherche button:hover { background: var(--nuit-2); }

/* Menu principal (remplace les onglets inclinés) */
.mdv-nav { width: auto; max-width: none; margin: 0; padding: 0; border-top: 1px solid var(--bord); background: #fff; }
.mdv-nav > ul { display: flex; flex-wrap: wrap; gap: 4px; list-style: none; max-width: var(--largeur); margin: 0 auto; padding: 6px 20px; box-sizing: border-box; position: relative; }
.mdv-nav > ul > li { position: static; float: none; margin: 0; padding: 0; display: block; }
.mdv-nav > ul > li > a {
  display: inline-flex; align-items: center; gap: 6px; padding: 10px 16px; border-radius: var(--rayon-petit);
  background: transparent; color: var(--nuit); transform: none; margin: 0;
  font: 600 .98rem var(--corps); text-transform: none; text-decoration: none;
}
.mdv-nav > ul > li > a span { transform: none; display: inline; }
.mdv-nav > ul > li > a:hover,
.mdv-nav > ul > li:hover > a,
.mdv-nav > ul > li:focus-within > a { background: var(--lavande); color: var(--nuit); }
.mdv-nav > ul > li > a.current-menu-item { background: var(--anis); color: var(--nuit); }
.mdv-nav > ul > li > a .fa { font-size: .9em; opacity: .7; }
.mdv-nav .mdv-nav-nouveau { margin-left: auto; }
.mdv-nav .mdv-nav-nouveau > a { background: var(--nuit); color: #fff; }
.mdv-nav .mdv-nav-nouveau > a:hover { background: var(--nuit-2); color: #fff; }

/* Sous-menus (départements) */
.mdv-nav .mdv-dd {
  position: absolute; left: 20px; right: 20px; top: 100%; margin: 0;
  background: #fff; border-radius: 0 0 var(--rayon) var(--rayon); box-shadow: var(--ombre-forte);
  padding: 20px 24px; z-index: 100; border-top: 3px solid var(--anis); box-sizing: border-box;
  /* fermeture retardée : on peut descendre la souris vers le sous-menu sans qu'il disparaisse */
  visibility: hidden; opacity: 0; transform: translateY(6px);
  transition: opacity .15s ease .15s, transform .15s ease .15s, visibility 0s linear .3s;
}
.mdv-nav > ul > li:hover > .mdv-dd, .mdv-nav > ul > li:focus-within > .mdv-dd, .mdv-nav > ul > li.ouvert > .mdv-dd {
  visibility: visible; opacity: 1; transform: none; transition-delay: .05s, .05s, 0s;
}
/* zone « pont » invisible entre l'onglet et le sous-menu */
.mdv-nav > ul > li > .mdv-dd:before { content: ""; position: absolute; left: 0; right: 0; top: -14px; height: 14px; }
.mdv-nav > ul > li.a-petit { position: relative; }
.mdv-nav .mdv-dd-petit { left: 0; right: auto; width: 280px; border-radius: 0 0 var(--rayon) var(--rayon); }
.mdv-nav .mdv-dd-titre { margin: 0 0 12px; font: 600 1rem var(--titres); color: var(--nuit); }
.mdv-nav .mdv-dd-cols { display: grid; grid-template-columns: repeat(6, 1fr); gap: 0 18px; }
.mdv-nav .mdv-dd ul { list-style: none; margin: 0; padding: 0; display: block; border: 0; }
.mdv-nav .mdv-dd li { display: block; float: none; padding: 0; margin: 0; }
.mdv-nav .mdv-dd li:before { content: none; }
.mdv-nav .mdv-dd li a {
  display: block; padding: 3px 0; background: none; transform: none; color: var(--texte-doux);
  font: 400 .85rem/1.35 var(--corps); text-transform: none; text-decoration: none;
}
.mdv-nav .mdv-dd li a:hover { color: var(--nuit); text-decoration: underline; text-decoration-color: var(--anis); text-decoration-thickness: 2px; }
.mdv-nav .mdv-dd-petit li a { padding: 8px 4px; font-size: .95rem; color: var(--nuit); }
.mdv-nav .mdv-dd-pied { display: flex; justify-content: space-between; align-items: center; margin: 16px 0 0; padding-top: 14px; border-top: 1px solid var(--bord); }
.mdv-nav .mdv-dd-pied a:not(.mdv-btn) { font-weight: 600; text-decoration: none; }
.mdv-nav .mdv-dd-pied .mdv-btn { transform: none; padding: 8px 16px; }

/* Menu mobile */
.mdv-header .rmm { background: var(--nuit); }
.mdv-header .rmm-bouton { background: var(--nuit); font-family: var(--corps); text-transform: none; font-size: 1rem; }
.mdv-header .rmm li a { text-transform: none; border-top-color: rgba(255,255,255,.12); }
.mdv-header .rmm li a:hover { background: var(--nuit-2); color: var(--anis); }

/* Message anti-bloqueur de pub */
#fd_header { background: none; height: auto; }
#headerMessage { display: none; max-width: var(--largeur); margin: 14px auto 0; padding: 12px 18px; box-sizing: border-box;
  background: var(--lavande); color: var(--nuit); border-radius: var(--rayon); font-size: .95rem; text-align: center; }

/* ------------------------------------------------------------------ */
/* Mise en page                                                         */
/* ------------------------------------------------------------------ */
#page { max-width: var(--largeur); width: 100%; padding: 0 20px; box-sizing: border-box; background: transparent; }
#contenu { max-width: none; width: auto; background: transparent; }
#pub_header { margin: 16px auto; }
.newsite { display: none; }

/* Fil d'Ariane */
#vs_breadcrumbs { margin: 18px 0 8px; }
#vs_breadcrumbs ul li { font: 500 .78rem var(--corps); letter-spacing: .02em; color: var(--gris); }
#vs_breadcrumbs.mmchevron ul.mmmenu li a { color: var(--gris); }
#vs_breadcrumbs.mmchevron ul.mmmenu li a:hover { color: var(--nuit); }

/* Anciens titres « barre inclinée » → titre de section moderne */
.barre_titre { transform: none; background: none; margin: 30px 0 14px; padding: 0; border-bottom: 2px solid var(--lavande); }
.barre_titre h1, .barre_titre h2, .barre_titre h4, .barre_titre div, a.barre_titre2 {
  background: none; border: 0; padding: 0 0 8px; display: inline-block; position: relative;
  font: 600 1.25rem var(--titres); color: var(--nuit); text-transform: none;
}
.barre_titre h1:after, .barre_titre h2:after, .barre_titre h4:after, a.barre_titre2:after {
  content: ""; position: absolute; left: 0; bottom: -2px; width: 56px; height: 3px; background: var(--anis); border-radius: 2px;
}
.barre_titre h1 span, .barre_titre h2 span, .barre_titre h4 span, a.barre_titre2 span { color: var(--nuit); transform: none; display: inline; }
.barre_titre div { display: none; }

/* Textes d'introduction, résumé « En bref », FAQ */
.intro-rubrique { color: var(--texte-doux); font-size: 1rem; }
.resume-geo { background: var(--lavande); border-left: 4px solid var(--anis); border-radius: var(--rayon); padding: 16px 20px; margin: 10px 0 20px; }
.resume-geo p { margin: 0; color: var(--nuit); }
.resume-geo .maj { color: var(--gris); font-size: .9em; }
.faq-geo { margin: 36px 0 10px; }
.faq-geo h2 { font-size: 1.25rem; margin-bottom: 12px; }
.faq-geo details { background: #fff; border: 1px solid var(--bord); border-radius: var(--rayon); margin: 0 0 10px; padding: 0 18px; box-shadow: var(--ombre); }
.faq-geo summary { cursor: pointer; padding: 14px 0; font-weight: 600; color: var(--nuit); list-style: none; display: flex; justify-content: space-between; gap: 12px; }
.faq-geo summary::-webkit-details-marker { display: none; }
.faq-geo summary:after { content: "+"; font-size: 1.3em; line-height: 1; color: var(--nuit); }
.faq-geo details[open] summary:after { content: "–"; }
.faq-geo details p { margin: 0 0 14px; }

/* Cartes des fiches (magasins, loueurs, clubs) */
.fiche-annuaire {
  background: #fff; border: 1px solid var(--bord); border-radius: var(--rayon); box-shadow: var(--ombre);
  padding: 18px 20px; margin: 0 0 18px; transition: box-shadow .2s, transform .2s;
}
.fiche-annuaire:hover { box-shadow: var(--ombre-forte); transform: translateY(-2px); }
.fiche-annuaire h2 { margin: 0 0 12px; font: 600 1.15rem var(--titres); background: none; border: 0; padding: 0; }
.fiche-annuaire h2 a { color: var(--nuit); text-decoration: none; }
.fiche-annuaire h2 .txt_bleu { display: inline-block; background: var(--anis); color: var(--nuit); font: 600 .72rem var(--corps); text-transform: uppercase; letter-spacing: .03em; padding: 3px 8px; border-radius: 6px; vertical-align: middle; margin-right: 6px; }
.fiche-annuaire .vignette-site { border-radius: var(--rayon-petit); border: 1px solid var(--bord); }
.fiche-annuaire .contenu_detail_mag { color: var(--texte-doux); font-size: .95rem; }
.fiche-annuaire .fiche-actions { font-size: .9rem; }
.fiche-annuaire .fiche-actions .fa { color: var(--anis-fonce); }
.fiche-annuaire .gps { color: var(--gris); font-size: .85rem; }
.lien_plus_info { text-decoration: none; display: inline-block; margin-top: 10px; }
.lien_plus_info .plus_info { padding: 8px 14px; font-size: .85rem; background: var(--nuit); color: #fff; }

/* Fiche détaillée */
.fiche-detail h2, .fiche-detail .txt_bleu { color: var(--nuit); font: 600 1.15rem var(--titres); }
.fiche-bloc { background: var(--lavande-2); border-radius: var(--rayon); padding: 14px 18px; margin: 8px 0 18px; }
.horaires { border-collapse: separate; border-spacing: 0; border: 1px solid var(--bord); border-radius: var(--rayon); overflow: hidden; }
.horaires th, .horaires td { padding: 8px 14px; border-bottom: 1px solid var(--bord); }
.horaires tr:last-child th, .horaires tr:last-child td { border-bottom: 0; }
.horaires th { background: var(--lavande); color: var(--nuit); text-align: left; }
.cadre-carte, #mapcarte, .leaflet-container { border-radius: var(--rayon); overflow: hidden; }
.cadre-carte { border: 1px solid var(--bord); box-shadow: var(--ombre); }

/* Formulaires */
.formulaire input[type=text], .formulaire input[type=email], .formulaire input[type=url], .formulaire input[type=tel],
.formulaire input[type=date], .formulaire input[type=number], .formulaire select, .formulaire textarea {
  border: 1px solid var(--bord); border-radius: var(--rayon-petit); padding: 10px 12px; font: 400 1rem var(--corps); color: var(--nuit); background: #fff;
}
.formulaire input:focus, .formulaire select:focus, .formulaire textarea:focus { border-color: var(--nuit); outline: 2px solid var(--lavande); }
.formulaire fieldset { border: 1px solid var(--bord); border-radius: var(--rayon); }

/* Colonne de droite */
#contenu_d .barre_titre { margin-top: 10px; }
#contenu_d > * { max-width: 100%; }

/* Actualités, agenda : cartes */
.evenement, .lu-presse > *, .liste-defilante li { border-radius: var(--rayon); }
.evenement { background: #fff; border: 1px solid var(--bord); box-shadow: var(--ombre); padding: 14px 18px; margin-bottom: 14px; }
.meta-article { color: var(--gris); font-size: .9rem; }
.texte-article { color: var(--texte-doux); font-size: 1.02rem; line-height: 1.7; }
.chapeau { font-size: 1.1rem; color: var(--nuit); font-weight: 500; }

/* Pagination */
.pagination a, .pagination span, .barre_navigation a, .barre_navigation span {
  border-radius: var(--rayon-petit) !important;
}

/* ------------------------------------------------------------------ */
/* Accueil : bandeau d'accroche et tuiles                               */
/* ------------------------------------------------------------------ */
.mdv-hero {
  margin: 20px 0 0; border-radius: 20px; overflow: hidden; color: #fff; text-align: center;
  background:
    radial-gradient(circle at 85% 20%, rgba(198,231,79,.25), transparent 40%),
    radial-gradient(circle at 10% 90%, rgba(235,231,247,.18), transparent 45%),
    linear-gradient(135deg, #1C154E 0%, #2d2470 60%, #3a2f8a 100%);
}
.mdv-hero-in { padding: 54px 24px 46px; max-width: 820px; margin: 0 auto; }
.mdv-hero h1 { color: #fff; font: 600 clamp(2rem, 1.4rem + 2.4vw, 3rem)/1.1 var(--titres); text-transform: uppercase; margin: 0 0 14px; }
.mdv-hero-ruban { display: inline-block; background: var(--anis); color: var(--nuit); font: 600 clamp(1rem, .9rem + .5vw, 1.3rem) var(--titres); text-transform: uppercase; padding: 8px 22px; border-radius: 6px; margin: 0 0 18px; }
.mdv-hero-texte { color: rgba(255,255,255,.9); font-size: 1.1rem; margin: 0 auto 26px; max-width: 640px; }
.mdv-hero-form { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; background: rgba(255,255,255,.1); padding: 12px; border-radius: var(--rayon); }
.mdv-hero-form select { flex: 1 1 200px; height: 46px; border: 0; border-radius: var(--rayon-petit); padding: 0 12px; font: 500 1rem var(--corps); color: var(--nuit); background: #fff; }
.mdv-hero-form .mdv-btn { height: 46px; padding: 0 24px; margin: 0; }
.mdv-recherche button, .mdv-hero-form button { margin: 0; }
.mdv-tuiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin: 24px 0 10px; }
.mdv-tuile {
  display: flex; align-items: center; gap: 12px; padding: 16px 18px; border-radius: var(--rayon);
  background: var(--anis); color: var(--nuit); text-decoration: none; font-family: var(--corps);
  transition: transform .2s, box-shadow .2s;
}
.mdv-tuile:hover { transform: translateY(-2px); box-shadow: var(--ombre-forte); color: var(--nuit); }
.mdv-tuile > .fa { font-size: 1.3rem; width: 26px; text-align: center; }
.mdv-tuile strong { flex: 1; text-transform: uppercase; font-size: .95rem; letter-spacing: .02em; }
.mdv-tuile span { background: #fff; color: var(--nuit); border-radius: 6px; padding: 2px 9px; font-weight: 600; font-size: .9rem; }
.mdv-tuile-nuit { background: var(--nuit); color: #fff; }
.mdv-tuile-nuit:hover { color: #fff; }
.mdv-tuile-nuit strong { color: #fff; }
.mdv-chiffres-texte { text-align: center; margin: 14px 0 30px; color: var(--texte-doux); }
#col740accueil, #col300accueil { margin-top: 10px; }

/* ------------------------------------------------------------------ */
/* Pied de page                                                         */
/* ------------------------------------------------------------------ */
#bas_page { display: none; }
.mdv-footer { background: var(--nuit); color: #fff; margin-top: 50px; }
.mdv-footer-grille { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 36px; padding-top: 48px; padding-bottom: 36px; }
.mdv-footer-logo img { background: #fff; border-radius: var(--rayon); padding: 8px 12px; height: 56px; width: auto; }
.mdv-footer p { color: rgba(255,255,255,.82); font-size: .95rem; }
.mdv-footer-titre { color: var(--anis) !important; font: 600 1.05rem var(--titres); margin: 0 0 12px; }
.mdv-footer ul { list-style: none; margin: 0; padding: 0; }
.mdv-footer-grille ul li { margin: 0 0 8px; }
.mdv-footer a { color: #fff; text-decoration: none; }
.mdv-footer a:hover { color: var(--anis); }
.mdv-footer .mdv-btn { margin-top: 10px; }
.mdv-footer .mdv-social { margin-top: 16px; }
.mdv-footer-bas { border-top: 1px solid rgba(255,255,255,.12); font-size: .85rem; }
.mdv-footer-bas .mdv-wrap { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px; padding-top: 16px; padding-bottom: 16px; }
.mdv-footer-bas p { margin: 0; }
.mdv-footer-bas ul { display: flex; flex-wrap: wrap; gap: 6px 18px; }
.mdv-footer-bas li { color: rgba(255,255,255,.7); }

/* Haut de page */
.scrollup { bottom: 86px !important; right: 22px !important; width: 46px !important; height: 46px !important; background: var(--anis) !important; color: var(--nuit) !important; border-radius: var(--rayon-petit) !important; box-shadow: var(--ombre-forte); }

/* ------------------------------------------------------------------ */
/* Tablette / mobile                                                    */
/* ------------------------------------------------------------------ */
@media screen and (max-width: 1100px) {
  .mdv-nav .mdv-dd-cols { grid-template-columns: repeat(4, 1fr); }
  .mdv-footer-grille { grid-template-columns: 1fr 1fr; }
}
@media screen and (max-width: 900px) {
  .mdv-tuiles { grid-template-columns: 1fr 1fr; }
  .mdv-hero { border-radius: var(--rayon); }
  .mdv-header-in { flex-wrap: wrap; gap: 12px; }
  .mdv-logo img { height: 46px; }
  .mdv-recherche { order: 3; flex-basis: 100%; max-width: none; margin: 0; }
  .mdv-header .rmm { display: block !important; }
  #page { padding: 0 14px; }
  .mdv-topbar .mdv-social { display: none; }
  .fiche-annuaire { padding: 14px; }
}
@media screen and (max-width: 560px) {
  .mdv-tuiles { grid-template-columns: 1fr; }
  .mdv-footer-grille { grid-template-columns: 1fr; gap: 24px; }
  .mdv-topbar ul { gap: 14px; }
  h1, .titre_actu { font-size: 1.5rem; }
}

/* ------------------------------------------------------------------ */
/* Corrections 24/10                                                    */
/* ------------------------------------------------------------------ */
/* Formulaires (agenda, contact, communiqué) : toute la largeur de la colonne */
.formulaire { max-width: none; width: 100%; box-sizing: border-box; }
.formulaire fieldset { padding: 16px 20px 6px; margin: 0 0 22px; }
.formulaire legend { font: 600 1.05rem var(--titres); color: var(--nuit); padding: 0 8px; }
.formulaire .mdv-btn, .formulaire button[type=submit] { margin-top: 6px; }
@media screen and (min-width: 901px) {
  /* deux champs par ligne quand il y a la place */
  .formulaire fieldset { display: grid; grid-template-columns: 1fr 1fr; gap: 0 22px; }
  .formulaire fieldset > legend, .formulaire fieldset > p:has(textarea), .formulaire fieldset > p:has(.js-editeur),
  .formulaire fieldset > p.pleine, .formulaire fieldset > p:has(input[type=file]), .formulaire fieldset > div { grid-column: 1 / -1; }
}

/* Itinéraire « Se rendre à ce magasin » : étiquette sur sa propre ligne */
.form-itineraire p { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.form-itineraire label { flex: 1 1 100%; margin: 0; font-weight: 600; color: var(--nuit); }
.form-itineraire input[type=text] { flex: 1 1 280px; width: auto; height: 44px; padding: 0 14px; border: 1px solid var(--bord); border-radius: var(--rayon-petit); font: 400 1rem var(--corps); }
.form-itineraire .bouton { height: 44px; margin: 0; }

/* Fiches : bouton sur une seule ligne, plus de séparateur hachuré ni de flèche grise */
.lien_plus_info .plus_info { white-space: nowrap; }
.fiche-annuaire .fiche-actions { min-width: 200px; }
.barre_oblique, .retour-carte { display: none !important; }

/* Images des articles et communiqués : coins arrondis */
.texte-article img, .chapeau img, .fiche-bloc img, .evenement img, .texte-article iframe { border-radius: 10px; max-width: 100%; height: auto; }

/* Partage : une seule ligne (icônes + bouton Google), retour à la ligne sur mobile */
.partage { display: flex; flex-wrap: nowrap; align-items: center; gap: 10px 12px; margin: 28px 0 10px; padding: 14px 18px; background: var(--lavande-2); border-radius: var(--rayon); }
.partage-titre { font: 600 1rem var(--titres); color: var(--nuit); }
.partage ul { list-style: none; display: flex; flex-wrap: nowrap; align-items: center; gap: 6px; margin: 0; padding: 0; }
.partage li { margin: 0; padding: 0; line-height: 0; list-style: none; }
.partage li::before { content: none; }
.partage li a, .partage li button {
  box-sizing: border-box; display: inline-flex; width: 36px; height: 36px; margin: 0; padding: 0; vertical-align: middle;
  align-items: center; justify-content: center; border-radius: 50%; line-height: 1; box-shadow: none;
  background: var(--nuit); color: #fff; border: 0; cursor: pointer; font-size: 1rem; text-decoration: none; transition: transform .15s, background .15s;
}
.partage li a:hover, .partage li button:hover { transform: translateY(-2px); color: #fff; box-shadow: none; }
.partage .partage-facebook { background: #1877F2; }
.partage .partage-x { background: #000; }
.partage .partage-linkedin { background: #0A66C2; }
.partage .partage-whatsapp { background: #25D366; }
.partage .partage-bluesky { background: #1185FE; }
.partage .partage-email, .partage .partage-copier, .partage .partage-natif,
.partage .partage-copier:hover, .partage .partage-natif:hover { background: var(--nuit); }
.partage .partage-copier.copie { background: var(--anis); color: var(--nuit); }
.partage-google {
  margin-left: auto; display: inline-flex; align-items: center; gap: 10px; padding: 7px 14px 7px 8px; border-radius: 999px; white-space: nowrap;
  background: #fff; border: 1px solid var(--bord); color: var(--nuit); font-weight: 500; font-size: .86rem; text-decoration: none; line-height: 1.2;
}
.partage-google:hover { box-shadow: var(--ombre); color: var(--nuit); }
.partage-google .marque { font: 700 .95em var(--titres); letter-spacing: .01em; }
.partage-google .marque small { font-size: .78em; font-weight: 600; margin: 0 1px; }
.partage-google .g-logo { flex: none; display: inline-flex; width: 22px; height: 22px; align-items: center; justify-content: center; border-radius: 50%;
  font: 700 .95rem Arial, sans-serif; color: #fff; background: conic-gradient(#EA4335 0 25%, #FBBC05 0 50%, #34A853 0 75%, #4285F4 0); }
@media screen and (max-width: 900px) { .partage-google { margin-left: 0; white-space: normal; } }
@media screen and (max-width: 420px) { .partage ul { flex-wrap: wrap; } }

/* Offres d'emploi */
.offres-emploi { list-style: none; margin: 10px 0 20px; padding: 0; display: grid; gap: 10px; }
.offres-emploi a { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px; padding: 14px 18px; background: #fff; border: 1px solid var(--bord); border-radius: var(--rayon); box-shadow: var(--ombre); text-decoration: none; transition: transform .15s, box-shadow .15s; }
.offres-emploi a:hover { transform: translateY(-2px); box-shadow: var(--ombre-forte); }
.offre-titre { flex: 1 1 320px; font-weight: 600; color: var(--nuit); }
.offres-emploi time { color: var(--gris); font-size: .88rem; }
.offre-voir { background: var(--anis); color: var(--nuit); padding: 4px 12px; border-radius: 6px; font-weight: 600; font-size: .88rem; }

/* Encarts (régie) */
.mdv-enc { text-align: center; margin: 16px auto; position: relative; }
.mdv-enc img { border-radius: var(--rayon-petit); max-width: 100%; height: auto; display: block; margin: 0 auto; }
.mdv-enc-label { display: block; font-size: .7rem; letter-spacing: .06em; text-transform: uppercase; color: var(--gris); margin-bottom: 4px; }
.mdv-enc-liste { margin: 10px 0 24px; }
#pubdroitfixe { position: sticky; top: 20px; }
.ywLQKzkmFfaD { background: var(--lavande); color: var(--nuit); border-radius: var(--rayon); font-size: 1rem; }
.ywLQKzkmFfaD strong { font-size: 1.1em; }
.ywLQKzkmFfaD a { color: var(--nuit); text-decoration: underline; }

/* Communiqués : cartes avec image à la une */
.badge-cat { display: inline-block; background: var(--anis); color: var(--nuit); font: 600 .75rem/1 var(--titres); letter-spacing: .03em; text-transform: uppercase; padding: 6px 10px; border-radius: 6px; }
.meta-article .badge-cat { margin-right: 8px; vertical-align: 1px; }
.une-article { margin: 14px 0 18px; }
.une-article img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 10px; }
.cartes-articles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; margin: 22px 0; }
.carte-article { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--bord); border-radius: var(--rayon); overflow: hidden; box-shadow: var(--ombre); transition: transform .15s, box-shadow .15s; }
.carte-article:hover { transform: translateY(-3px); box-shadow: var(--ombre-forte); }
.carte-media { display: block; aspect-ratio: 16 / 9; overflow: hidden; background: var(--nuit); }
.carte-media img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 0; transition: transform .3s; }
.carte-article:hover .carte-media img { transform: scale(1.04); }
.carte-corps { display: flex; flex-direction: column; gap: 8px; padding: 16px 18px 18px; align-items: flex-start; }
.carte-titre { margin: 2px 0 0; font: 600 1.08rem/1.35 var(--titres); color: var(--nuit); text-transform: none; letter-spacing: 0; }
.carte-titre a { color: inherit; text-decoration: none; text-transform: none; font: inherit; }
.carte-titre a::after { content: ""; position: absolute; inset: 0; } /* carte entièrement cliquable */
.carte-article { position: relative; }
.carte-titre a:hover { color: var(--nuit); text-decoration: underline; text-decoration-color: var(--anis); text-decoration-thickness: 3px; }
.carte-article time { color: var(--gris); font-size: .85rem; }
.carte-article p { margin: 0; color: #444; font-size: .93rem; line-height: 1.5; }
/* première carte : grande, texte sur l'image */
.carte-une { grid-column: 1 / -1; display: block; min-height: 380px; border: 0; }
.carte-une .carte-media { position: absolute; inset: 0; aspect-ratio: auto; }
.carte-une .carte-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(28,21,78,0) 25%, rgba(28,21,78,.92) 100%); }
.carte-une .carte-corps { position: absolute; left: 0; right: 0; bottom: 0; padding: 26px 28px; color: #fff; }
.carte-une .carte-titre { font-size: 1.55rem; color: #fff; }
.carte-une .carte-titre a:hover { color: #fff; }
.carte-une time, .carte-une p { color: rgba(255,255,255,.88); }
@media screen and (max-width: 700px) {
  .cartes-articles { grid-template-columns: 1fr; gap: 16px; }
  .carte-une { min-height: 320px; }
  .carte-une .carte-corps { padding: 18px; }
  .carte-une .carte-titre { font-size: 1.2rem; }
  .carte-une p { display: none; }
}
/* première carte sans image propre (image par défaut) : image et texte côte à côte */
.carte-une.carte-une-cote { display: grid; grid-template-columns: 1.1fr 1fr; min-height: 0; border: 1px solid var(--bord); }
.carte-une-cote .carte-media { position: static; aspect-ratio: 16 / 9; }
.carte-une-cote .carte-media::after { content: none; }
.carte-une-cote .carte-corps { position: static; color: inherit; justify-content: center; padding: 22px 24px; }
.carte-une-cote .carte-titre, .carte-une-cote .carte-titre a:hover { color: var(--nuit); font-size: 1.3rem; }
.carte-une-cote time { color: var(--gris); }
.carte-une-cote p { color: #444; }
@media screen and (max-width: 700px) { .carte-une.carte-une-cote { grid-template-columns: 1fr; } .carte-une-cote p { display: block; } }

/* ---------- Agenda : liste avec affiche ---------- */
.bandeau-agenda { display: block; width: 100%; height: auto; border-radius: var(--rayon); }
.filtres-agenda { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 14px 22px; position: relative; z-index: 1;
  margin: -46px 22px 22px; padding: 18px 22px; background: var(--nuit); color: #fff; border-radius: var(--rayon); box-shadow: var(--ombre-forte); }
.filtres-agenda .filtres-titre { flex: 1 1 100%; margin: 0; font: 600 1.1rem var(--titres); color: var(--anis); }
.filtres-agenda label { flex: 1 1 240px; display: flex; flex-direction: column; gap: 6px; margin: 0; font-weight: 600; font-size: .92rem; color: #fff; }
.filtres-agenda label span .fa { color: var(--anis); margin-right: 4px; }
.filtres-agenda select { width: 100%; max-width: none; height: 46px; padding: 0 40px 0 14px; border: 0; border-radius: var(--rayon-petit);
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%231C154E' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 14px center;
  -webkit-appearance: none; appearance: none; font: 500 1rem var(--corps); color: var(--nuit); cursor: pointer; }
.filtres-agenda select:focus { outline: 3px solid var(--anis); outline-offset: 1px; }
@media screen and (max-width: 700px) {
  .filtres-agenda { flex-direction: column; align-items: stretch; margin: 12px 0 18px; padding: 16px; }
  .filtres-agenda label { flex: none; }
}

.evt-ligne { display: grid; grid-template-columns: 130px minmax(0, 1fr) auto; gap: 20px; align-items: center;
  margin: 0 0 16px; padding: 14px; background: #fff; border: 1px solid var(--bord); border-radius: var(--rayon); box-shadow: var(--ombre); transition: transform .15s, box-shadow .15s; }
.evt-ligne:hover { transform: translateY(-2px); box-shadow: var(--ombre-forte); }
.evt-affiche { position: relative; display: block; aspect-ratio: 3 / 4; overflow: hidden; border-radius: var(--rayon-petit); background: var(--nuit); isolation: isolate; }
.evt-affiche::before { content: ""; position: absolute; inset: -20px; background: var(--fond) center / cover; filter: blur(14px) brightness(.75); z-index: -1; }
.evt-affiche img { display: block; width: 100%; height: 100%; object-fit: contain; border-radius: 0; }
.evt-infos { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; min-width: 0; }
.evt-infos h2 { margin: 2px 0 2px; font: 600 1.2rem/1.3 var(--titres); text-transform: none; }
.evt-infos h2 a { color: var(--nuit); text-decoration: none; text-transform: none; font: inherit; }
.evt-infos h2 a:hover { text-decoration: underline; text-decoration-color: var(--anis); text-decoration-thickness: 3px; }
.evt-infos p { margin: 0; color: #444; }
.evt-infos .fa { width: 1.1em; color: var(--nuit); }
.evt-nature { font-size: .88rem; color: var(--gris) !important; }
.evt-action .mdv-btn { white-space: nowrap; }
@media screen and (max-width: 760px) {
  .evt-ligne { grid-template-columns: 96px minmax(0, 1fr); gap: 14px; align-items: start; }
  .evt-action { grid-column: 1 / -1; }
  .evt-action .mdv-btn { display: flex; justify-content: center; }
  .evt-infos h2 { font-size: 1.05rem; }
}

/* ---------- Agenda : fiche ---------- */
.evt-services { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; margin: 22px 0 6px; }
.evt-service { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border-radius: var(--rayon); background: var(--anis); color: var(--nuit);
  font: 600 1rem/1.2 var(--titres); text-decoration: none; transition: transform .15s, box-shadow .15s; }
.evt-service .fa { font-size: 1.7rem; width: 1.2em; text-align: center; }
.evt-service:hover { transform: translateY(-2px); box-shadow: var(--ombre); color: var(--nuit); }
.evt-aller { margin: 34px 0 10px; padding: 20px 22px; background: var(--lavande-2); border-radius: var(--rayon); }
.evt-aller h2 { margin-top: 0; }
.evt-aller .form-itineraire p { margin: 0; }
.evt-navigation { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin: 10px 0 20px; }
.mdv-btn-contour { background: #fff; color: var(--nuit); box-shadow: inset 0 0 0 2px var(--nuit); }
.mdv-btn-contour:hover { background: var(--nuit); color: #fff; }
.evenement-affiche img { max-width: 100%; height: auto; border-radius: 10px; }

/* ---------- Blocs de l'accueil : Articles, Événements, listes ---------- */
.acc-section { margin: 64px 0 10px; }
.mdv-chiffres-texte + .acc-section, #col300accueil + .clear + .acc-section { margin-top: 40px; }
.acc-section-tete { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 20px; margin-bottom: 18px; }
.acc-section-tete h2 { margin: 0; font: 700 clamp(1.5rem, 1.2rem + 1vw, 2rem)/1.1 var(--titres); color: var(--nuit); text-transform: none; letter-spacing: -.01em; }
.acc-section-tete h2::after { content: ""; display: block; width: 56px; height: 4px; margin-top: 8px; background: var(--anis); border-radius: 2px; }
.acc-section-tete > a { display: inline-flex; align-items: center; gap: 6px; padding: 8px 16px; border-radius: 999px; background: var(--anis);
  color: var(--nuit); font-weight: 600; font-size: .92rem; text-decoration: none; white-space: nowrap; transition: background .15s, transform .15s; }
.acc-section-tete > a:hover { background: var(--nuit); color: #fff; transform: translateY(-1px); }
.badge-contour { background: #fff; color: var(--nuit); box-shadow: inset 0 0 0 1.5px var(--anis-fonce, #a9c93a); padding: 5px 9px; font-size: .7rem; }

.articles-une { display: grid; grid-template-columns: repeat(var(--n, 4), minmax(0, 1fr)); gap: 22px; }
.art-carte { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.art-media { display: block; width: 100%; aspect-ratio: 3 / 2; overflow: hidden; border-radius: 10px; background: var(--nuit); }
.art-media img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 0; transition: transform .3s; }
.art-carte:hover .art-media img, .art-mini:hover .art-media img { transform: scale(1.05); }
.art-carte h3, .art-mini h3 { margin: 0; font: 600 1.05rem/1.35 var(--titres); text-transform: none; }
.art-carte h3 a, .art-mini h3 a { color: var(--nuit); text-decoration: none; text-transform: none; font: inherit; }
.art-carte h3 a::after, .art-mini h3 a::after { content: ""; position: absolute; inset: 0; }
.art-carte:hover h3 a, .art-mini:hover h3 a { color: var(--nuit-2); text-decoration: underline; text-decoration-color: var(--anis); text-decoration-thickness: 3px; }
.art-carte time { color: var(--gris); font-size: .82rem; }
.articles-compacts { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 20px 26px; margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--bord); }
.art-mini { position: relative; display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 14px; align-items: start; }
.art-mini .art-media { aspect-ratio: 4 / 3; }
.art-mini > div { display: flex; flex-direction: column; align-items: flex-start; gap: 7px; }
.art-mini h3 { font-size: .98rem; }

.evenements-une { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
.evt-carte { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.evt-carte .evt-affiche { width: 100%; aspect-ratio: 4 / 5; border-radius: 10px; }
.evt-carte:hover .evt-affiche img { transform: scale(1.03); }
.evt-carte .evt-affiche img { transition: transform .3s; }
.evt-date { position: absolute; top: 10px; left: 10px; display: flex; flex-direction: column; align-items: center; min-width: 54px; padding: 6px 8px;
  background: var(--anis); color: var(--nuit); border-radius: 8px; font: 600 .78rem/1.1 var(--titres); text-transform: uppercase; box-shadow: var(--ombre); }
.evt-date b { font-size: 1.45rem; line-height: 1; }
.evt-carte h3 { margin: 0; font: 600 1.05rem/1.3 var(--titres); text-transform: none; }
.evt-carte h3 a { color: var(--nuit); text-decoration: none; text-transform: none; font: inherit; }
.evt-carte h3 a::after { content: ""; position: absolute; inset: 0; }
.evt-carte:hover h3 a { text-decoration: underline; text-decoration-color: var(--anis); text-decoration-thickness: 3px; }
.evt-carte p { margin: 0; color: var(--gris); font-size: .9rem; }

.acc-colonnes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; align-items: stretch; }
.acc-colonnes > .acc-section { display: flex; flex-direction: column; }
/* l'actualité défile pour garder la hauteur du bloc emploi */
.acc-defile { flex: 1 1 0; min-height: 420px; contain: size; overflow-y: auto; padding-right: 8px; scrollbar-width: thin; scrollbar-color: var(--anis) var(--lavande-2);
  -webkit-mask-image: linear-gradient(180deg, #000 88%, transparent); mask-image: linear-gradient(180deg, #000 88%, transparent); }
.acc-defile:focus-visible { outline: 2px solid var(--anis); }
.acc-liste { list-style: none; margin: 0; padding: 0; }
.acc-liste li { display: flex; gap: 12px; align-items: baseline; padding: 9px 0; border-bottom: 1px solid var(--bord); line-height: 1.4; }
.acc-liste time { flex: none; min-width: 46px; padding: 2px 6px; border-radius: 5px; background: var(--lavande); color: var(--nuit); font-size: .78rem; font-weight: 600; text-align: center; }
.acc-liste time.jour { background: var(--anis); }
.acc-liste a { color: var(--nuit); text-decoration: none; }
.acc-liste a:hover { text-decoration: underline; text-decoration-color: var(--anis); text-decoration-thickness: 2px; }

@media screen and (max-width: 1000px) {
  .articles-une, .evenements-une { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media screen and (max-width: 640px) {
  .articles-une { gap: 18px; }
  .articles-compacts, .acc-colonnes { grid-template-columns: 1fr; }
  .acc-defile { contain: none; flex: none; min-height: 0; max-height: 420px; }
  .acc-section { margin-top: 48px; }
  .acc-section-tete > a { padding: 6px 12px; font-size: .85rem; }
  .articles-une[style*="--n: 3"] { grid-template-columns: 1fr; }
  .art-mini { grid-template-columns: 110px minmax(0, 1fr); }
  .evenements-une { gap: 14px; }
  .evt-carte h3 { font-size: .95rem; }
}

/* ---------- Pagination ---------- */
.mdv-pagination { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 6px; margin: 24px 0; }
.mdv-pagination .pg-num, .mdv-pagination .pg-fleche { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px;
  border-radius: 50%; font: 500 1rem var(--corps); text-decoration: none; transition: background .15s, color .15s; }
.mdv-pagination .pg-num { background: #fff; color: var(--nuit); box-shadow: 0 1px 3px rgba(28, 21, 78, .08); }
.mdv-pagination a.pg-num:hover { background: var(--lavande); color: var(--nuit); }
.mdv-pagination .pg-actif { background: var(--lavande); font-weight: 700; box-shadow: inset 0 0 0 2px var(--nuit); }
.mdv-pagination .pg-fleche { background: var(--nuit); color: #fff; font-size: 1.15rem; }
.mdv-pagination .pg-fleche:hover { background: var(--anis); color: var(--nuit); }
.mdv-pagination .pg-espace { width: 10px; }
@media screen and (max-width: 520px) {
  .mdv-pagination .pg-num, .mdv-pagination .pg-fleche { width: 34px; height: 34px; font-size: .92rem; }
  .mdv-pagination .pg-espace { width: 2px; }
}

/* ---------- Carte de France (SVG) ---------- */
.carte-france { max-width: 640px; margin: 10px auto 20px; text-align: center; }
.carte-france-svg { display: block; width: 100%; height: auto; }
.carte-france-svg .dep { fill: var(--lavande); stroke: #fff; stroke-width: 1; stroke-linejoin: round; transition: fill .15s; cursor: pointer; }
.carte-france-svg .region-11 .dep, .carte-france-svg .region-53 .dep, .carte-france-svg .region-28 .dep, .carte-france-svg .region-76 .dep,
.carte-france-svg .region-27 .dep, .carte-france-svg .region-93 .dep { fill: #e0daf3; }
.carte-france-svg a:hover .dep, .carte-france-svg a:focus .dep { fill: var(--anis); }
.carte-france-svg a:focus { outline: none; }
.carte-france-svg a:focus-visible .dep { stroke: var(--nuit); stroke-width: 2.5; }
.carte-france figcaption { margin-top: 6px; color: var(--gris); font-size: .9rem; }
.carte-france figcaption small { font-size: .75rem; }
.carte-france figcaption a { color: var(--gris); }
.carte-france-dep { color: var(--nuit); }

/* ---------- Encart « mondeduvelo.com » (magasins, loueurs) ---------- */
.encart-mdv { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 24px; margin: 18px 0 26px; padding: 20px 24px;
  background: var(--nuit); color: #fff; border-radius: var(--rayon); box-shadow: var(--ombre-forte); position: relative; overflow: hidden; }
.encart-mdv::after { content: ""; position: absolute; right: -60px; top: -60px; width: 180px; height: 180px; border-radius: 50%; background: rgba(198, 231, 79, .12); pointer-events: none; }
.encart-mdv-texte { flex: 1 1 380px; position: relative; z-index: 1; }
.encart-mdv-texte p { margin: 0; color: rgba(255,255,255,.9); line-height: 1.5; }
.encart-mdv .encart-mdv-titre { margin-bottom: 6px; font: 600 1.15rem var(--titres); color: var(--anis); }
.encart-mdv .marque { font-family: var(--titres); color: #fff; }
.encart-mdv .marque small { font-size: .78em; color: var(--anis); margin: 0 1px; }
.encart-mdv .mdv-btn { position: relative; z-index: 1; white-space: nowrap; }
.encart-mdv-compact { margin-top: 30px; }
@media screen and (max-width: 600px) { .encart-mdv { padding: 18px; } .encart-mdv .mdv-btn { width: 100%; justify-content: center; white-space: normal; text-align: center; } }

/* ---------- Puzzles : 3 par ligne ---------- */
#puzzle_container { max-width: 100%; }
.puzzle-grille { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px 18px; margin: 16px 0; }
.puzzle-grille > * { display: flex !important; flex-direction: column; align-items: center; gap: 6px; width: auto !important; float: none !important; margin: 0 !important; text-align: center; }
.puzzle-grille img { max-width: 100%; height: auto; border-radius: 8px; }
@media screen and (max-width: 640px) { .puzzle-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ---------- Mobile : marge latérale de 16 px (les blocs arrondis ne touchent plus les bords) ---------- */
@media screen and (max-width: 900px) {
  html body #page { padding-left: 16px !important; padding-right: 16px !important; box-sizing: border-box; }
}
.encart-mdv strong { color: #fff; }

/* ---------- Moteur de recherche ---------- */
.rch-form { margin: 10px 0 18px; padding: 18px 20px; background: var(--lavande); border-radius: var(--rayon); }
.rch-champ { position: relative; display: flex; gap: 10px; }
.rch-champ > .fa { position: absolute; left: 16px; top: 50%; transform: translateY(-50%); color: var(--gris); }
.rch-champ input { flex: 1; min-width: 0; height: 50px; margin: 0; padding: 0 16px 0 44px; border: 1px solid var(--bord); border-radius: var(--rayon-petit); font: 400 1.05rem var(--corps); color: var(--nuit); background: #fff; }
.rch-champ input:focus { outline: 3px solid var(--anis); outline-offset: 0; }
.rch-champ .mdv-btn { height: 50px; margin: 0; }
.rch-filtres { display: flex; flex-wrap: wrap; gap: 10px 18px; margin-top: 12px; }
.rch-filtres label { display: flex; align-items: center; gap: 8px; margin: 0; font-weight: 600; font-size: .9rem; color: var(--nuit); }
.rch-filtres select { height: 38px; padding: 0 10px; border: 1px solid var(--bord); border-radius: var(--rayon-petit); background: #fff; font: 400 .92rem var(--corps); color: var(--nuit); max-width: 260px; }
.rch-onglets { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; }
.rch-onglets a { display: inline-flex; align-items: center; gap: 7px; padding: 7px 14px; border-radius: 999px; background: #fff; border: 1px solid var(--bord); color: var(--nuit); font-weight: 600; font-size: .9rem; text-decoration: none; }
.rch-onglets a span { min-width: 22px; padding: 1px 7px; border-radius: 999px; background: var(--lavande); font-size: .78rem; text-align: center; }
.rch-onglets a:hover { border-color: var(--nuit); }
.rch-onglets a[aria-current] { background: var(--nuit); border-color: var(--nuit); color: #fff; }
.rch-onglets a[aria-current] span { background: var(--anis); color: var(--nuit); }
.rch-onglets a.rch-vide { opacity: .5; }
.rch-total { color: var(--gris); margin: 0 0 10px; }
.rch-resultats { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.rch-res { position: relative; display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 18px; align-items: start; padding: 14px; background: #fff;
  border: 1px solid var(--bord); border-radius: var(--rayon); box-shadow: var(--ombre); transition: transform .15s, box-shadow .15s; }
.rch-res:hover { transform: translateY(-2px); box-shadow: var(--ombre-forte); }
.rch-visuel { position: relative; display: block; aspect-ratio: 3 / 2; border-radius: var(--rayon-petit); overflow: hidden; background: var(--lavande); }
.rch-visuel img { display: block; width: 100%; height: 100%; border-radius: 0; }
.rch-evenement .rch-visuel img { object-fit: contain; background: var(--nuit); }
.rch-icone { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; font-size: 2.2rem; color: var(--nuit); }
.rch-magasin .rch-icone { background: linear-gradient(135deg, #ece8fb, #dcd5f6); }
.rch-location .rch-icone { background: linear-gradient(135deg, #f1f8d8, #e2f0b3); }
.rch-club .rch-icone { background: linear-gradient(135deg, #e5f3fb, #cfe7f5); }
.rch-date { position: absolute; top: 6px; left: 6px; display: flex; flex-direction: column; align-items: center; min-width: 42px; padding: 4px 6px; border-radius: 6px;
  background: var(--anis); color: var(--nuit); font: 600 .68rem/1.1 var(--titres); text-transform: uppercase; }
.rch-date b { font-size: 1.1rem; }
.rch-corps { min-width: 0; }
.rch-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin: 0 0 6px; color: var(--gris); font-size: .85rem; }
.rch-info { font-weight: 600; color: var(--nuit); }
.rch-passe { padding: 2px 8px; border-radius: 999px; background: #eee; color: #666; font-size: .75rem; }
.rch-res h2 { margin: 0 0 6px; font: 600 1.12rem/1.3 var(--titres); text-transform: none; }
.rch-res h2 a { color: var(--nuit); text-decoration: none; text-transform: none; font: inherit; }
.rch-res h2 a::after { content: ""; position: absolute; inset: 0; }
.rch-res:hover h2 a { text-decoration: underline; text-decoration-color: var(--anis); text-decoration-thickness: 3px; }
.rch-extrait { margin: 0; color: #444; font-size: .93rem; line-height: 1.5; }
.rch-res mark, .rch-suggestions mark { background: rgba(198, 231, 79, .55); color: inherit; padding: 0 1px; border-radius: 2px; }
.rch-aucun { padding: 22px 24px; background: var(--lavande-2); border-radius: var(--rayon); }
.rch-aucun-titre { font: 600 1.15rem var(--titres); color: var(--nuit); margin: 0 0 8px; }
.rch-accueil { padding: 6px 2px; }
.rch-exemples a { display: inline-block; margin: 4px 6px 4px 0; padding: 5px 12px; border-radius: 999px; background: var(--lavande); color: var(--nuit); text-decoration: none; font-weight: 500; }
.rch-exemples a:hover { background: var(--anis); }
@media screen and (max-width: 640px) {
  .rch-champ { flex-direction: column; }
  .rch-champ input { flex: none; width: 100%; box-sizing: border-box; }
  .rch-champ > .fa { top: 25px; }
  .rch-res { grid-template-columns: 96px minmax(0, 1fr); gap: 12px; }
  .rch-icone { font-size: 1.6rem; }
  .rch-extrait { display: none; }
  .rch-filtres label { flex: 1 1 100%; flex-direction: column; align-items: stretch; gap: 4px; min-width: 0; }
  .rch-filtres select { width: 100%; max-width: none; }
}

/* Suggestions en direct */
.rch-ancre { position: relative; }
.rch-suggestions { position: absolute; left: 0; right: 0; top: calc(100% + 6px); z-index: 50; list-style: none; margin: 0; padding: 6px; background: #fff;
  border: 1px solid var(--bord); border-radius: var(--rayon); box-shadow: var(--ombre-forte); text-align: left; }
.rch-suggestions li { margin: 0; padding: 0; }
.rch-suggestions a { display: flex; align-items: center; gap: 12px; padding: 8px 10px; border-radius: 8px; color: var(--nuit); text-decoration: none; }
.rch-suggestions a .fa { flex: none; width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; border-radius: 8px; background: var(--lavande); }
.rch-suggestions a span { display: flex; flex-direction: column; min-width: 0; }
.rch-suggestions strong { font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rch-suggestions small { color: var(--gris); font-size: .8rem; }
.rch-suggestions a:hover, .rch-suggestions [aria-selected="true"] a { background: var(--lavande-2); }
.rch-suggestions .rch-sugg-tout a { justify-content: center; font-weight: 600; border-top: 1px solid var(--bord); border-radius: 0 0 8px 8px; }
.rch-suggestions .rch-sugg-vide { padding: 10px; color: var(--gris); font-size: .9rem; }

/* Partage : une ligne sur ordinateur (le bouton Google se réduit si besoin), retour à la ligne sur mobile */
.partage-titre { flex: none; }
.partage ul { flex: none; }
.partage-google { flex: 0 1 auto; min-width: 0; overflow: hidden; }
.partage-google .partage-google-txt { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media screen and (max-width: 900px) {
  .partage { flex-wrap: wrap; }
  .partage-google .partage-google-txt { white-space: normal; }
}
/* Variante compacte en haut d'article / de fiche */
.partage-haut { margin: 6px 0 22px; padding: 10px 16px; }
.partage-haut .partage-titre { font-size: .9rem; }
.partage-haut li a, .partage-haut li button { width: 32px; height: 32px; font-size: .9rem; }
.partage-haut .partage-google { padding: 5px 12px 5px 6px; font-size: .8rem; }
.partage-haut .partage-google .g-logo { width: 20px; height: 20px; font-size: .85rem; }

/* ---------- Liens dans le texte (articles, pages) : bien visibles ---------- */
#contenu_g :is(p, ul:not([class]) > li, ol:not([class]) > li, td, dd, blockquote, .texte-article li) a:not([class]),
.texte-article a:not([class]), .chapeau a:not([class]), .intro-rubrique a:not([class]), .rch-aucun a:not([class]) {
  color: var(--nuit-2); font-weight: 600;
  text-decoration: underline; text-decoration-color: var(--anis-fonce); text-decoration-thickness: 2px; text-underline-offset: 3px;
  transition: background-color .15s, text-decoration-color .15s;
}
#contenu_g :is(p, ul:not([class]) > li, ol:not([class]) > li, td, dd, blockquote, .texte-article li) a:not([class]):hover,
.texte-article a:not([class]):hover, .chapeau a:not([class]):hover, .intro-rubrique a:not([class]):hover, .rch-aucun a:not([class]):hover {
  background-color: rgba(198, 231, 79, .35); text-decoration-color: var(--nuit); border-radius: 2px;
}
/* liens contenant une image (images cliquables) : pas de soulignement */
#contenu_g a:not([class]):has(> img) { text-decoration: none; background: none; }

/* Captcha : bouton « autre image » (la règle générique « button » le rendait blanc sur blanc) */
.mdv-captcha .mdv-captcha-recharger { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; margin: 0; padding: 0;
  border: 1px solid var(--bord); border-radius: var(--rayon-petit); background: #fff; color: var(--nuit); font-size: 1.1rem; box-shadow: none; cursor: pointer; transition: background .15s, transform .3s; }
.mdv-captcha .mdv-captcha-recharger:hover { background: var(--anis); color: var(--nuit); box-shadow: none; }
.mdv-captcha .mdv-captcha-recharger:active .fa { transform: rotate(180deg); }
.mdv-captcha .mdv-captcha-img { border-radius: var(--rayon-petit); border-color: var(--bord); }

/* ---------- Agenda de la colonne de droite ---------- */
.agenda-droite { position: relative; z-index: 2; } /* toujours cliquable, au-dessus d'une éventuelle publicité */
.agenda-mini { list-style: none; margin: 12px 0 8px; padding: 0; display: grid; gap: 8px; }
.agenda-mini li { position: relative; display: flex; gap: 12px; align-items: center; margin: 0; padding: 8px 10px; background: #fff; border: 1px solid var(--bord); border-radius: var(--rayon-petit); transition: box-shadow .15s, transform .15s; }
.agenda-mini li:hover { box-shadow: var(--ombre); transform: translateY(-1px); }
.agenda-mini-date { flex: none; display: flex; flex-direction: column; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 8px;
  background: var(--nuit); color: #fff; font: 600 .68rem/1.1 var(--titres); text-transform: uppercase; }
.agenda-mini-date b { font-size: 1.15rem; color: var(--anis); }
.agenda-mini-texte { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.agenda-mini-texte a { color: var(--nuit); font-weight: 600; font-size: .95rem; line-height: 1.3; text-decoration: none; }
.agenda-mini-texte a::after { content: ""; position: absolute; inset: 0; } /* toute la ligne est cliquable */
.agenda-mini li:hover a { text-decoration: underline; text-decoration-color: var(--anis); text-decoration-thickness: 2px; }
.agenda-mini-texte small { color: var(--gris); font-size: .8rem; }
.agenda-mini-type { display: inline-block; padding: 1px 6px; margin-right: 4px; border-radius: 4px; background: var(--anis); color: var(--nuit); font-weight: 600; font-size: .7rem; text-transform: uppercase; }

/* ---------- Publicités : une annonce vide ou mal dimensionnée ne doit jamais masquer le contenu ---------- */
.mdv-enc { position: relative; z-index: 0; overflow: hidden; max-width: 100%; }
ins.adsbygoogle[data-ad-status="unfilled"] { display: none !important; }
.mdv-enc:has(> ins.adsbygoogle[data-ad-status="unfilled"]) { display: none; }
#contenu_d > *:not(.mdv-enc):not(#pubdroitfixe), #contenu_g > *:not(.mdv-enc) { position: relative; z-index: 1; }

/* ---------- Offres d'emploi : bouton calé à droite ---------- */
.offres-emploi a { padding: 14px 20px; }
.offre-voir { margin-left: auto; flex: none; }

/* ---------- Pagination mobile : 5 pages autour de la page courante, sur une ligne ---------- */
@media screen and (max-width: 600px) {
  .mdv-pagination { flex-wrap: nowrap; gap: 4px; }
  .mdv-pagination .pg-loin, .mdv-pagination .pg-extreme, .mdv-pagination .pg-espace { display: none; }
}

/* ---------- Fiches de l'annuaire (listes par département) ---------- */
.fiche-annuaire { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "tete tete" "contacts boutons" "gps gps"; gap: 14px 22px; align-items: start;
  padding: 18px 20px; margin: 0 0 16px; }
.fiche-annuaire .fiche-tete { grid-area: tete; display: flex; gap: 16px; align-items: center; }
.fiche-annuaire .fiche-vignette { flex: none; }
.fiche-annuaire .fiche-vignette img { display: block; width: 132px; height: 99px; object-fit: cover; border-radius: 10px; border: 1px solid var(--bord); }
.fiche-annuaire .fiche-titre { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }
.fiche-annuaire .fiche-type { display: inline-block; padding: 3px 8px; border-radius: 6px; background: var(--anis); color: var(--nuit); font: 600 .7rem var(--corps); text-transform: uppercase; letter-spacing: .03em; }
.fiche-annuaire h2 { margin: 0; font: 600 1.2rem/1.25 var(--titres); text-transform: none; color: var(--nuit); overflow-wrap: anywhere; }
.fiche-annuaire h2 a { color: var(--nuit); text-decoration: none; text-transform: none; font: inherit; }
.fiche-annuaire h2 a:hover { text-decoration: underline; text-decoration-color: var(--anis); text-decoration-thickness: 3px; }
.fiche-annuaire .fiche-adresse { margin: 0; color: #555; font-size: .92rem; line-height: 1.4; }
.fiche-annuaire .fiche-adresse .fa { color: var(--anis-fonce); margin-right: 3px; }
.fiche-annuaire .fiche-contacts { grid-area: contacts; list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; font-size: .93rem; }
.fiche-annuaire .fiche-contacts li { display: flex; align-items: center; gap: 10px; margin: 0; padding: 0; min-width: 0; overflow-wrap: anywhere; color: #444; }
.fiche-annuaire .fiche-contacts .fa { flex: none; width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--lavande); color: var(--nuit); font-size: .85rem; }
.fiche-annuaire .fiche-contacts a { color: var(--nuit); font-weight: 500; text-decoration: none; }
.fiche-annuaire .fiche-contacts a:hover { text-decoration: underline; text-decoration-color: var(--anis); }
.fiche-annuaire .fiche-boutons { grid-area: boutons; display: grid; grid-template-columns: 1fr; gap: 8px; min-width: 190px; }
.fiche-annuaire .fiche-bouton { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 40px; padding: 8px 14px; border-radius: var(--rayon-petit);
  background: var(--lavande-2); border: 1px solid var(--bord); color: var(--nuit); font-weight: 600; font-size: .88rem; text-decoration: none; white-space: nowrap; transition: background .15s, transform .15s; }
.fiche-annuaire .fiche-bouton:hover { background: var(--lavande); transform: translateY(-1px); color: var(--nuit); }
.fiche-annuaire .fiche-bouton .fa { color: var(--nuit); }
.fiche-annuaire .fiche-plus { background: var(--nuit); border-color: var(--nuit); color: #fff; }
.fiche-annuaire .fiche-plus .fa { color: var(--anis); }
.fiche-annuaire .fiche-plus:hover { background: var(--nuit-2); color: #fff; }
.fiche-annuaire .fiche-appeler { display: none; } /* bouton d'appel : mobile uniquement */
.fiche-annuaire .fiche-gps { grid-area: gps; margin: 0; color: var(--gris); font-size: .78rem; }
.fiche-annuaire + .barre_oblique, .fiche-annuaire ~ .retour-carte { display: none; }

@media screen and (max-width: 700px) {
  .fiche-annuaire { grid-template-columns: 1fr; grid-template-areas: "tete" "contacts" "boutons" "gps"; padding: 14px; gap: 12px; }
  .fiche-annuaire .fiche-tete { align-items: flex-start; gap: 12px; }
  .fiche-annuaire .fiche-vignette img { width: 88px; height: 66px; border-radius: 8px; }
  .fiche-annuaire h2 { font-size: 1.05rem; }
  .fiche-annuaire .fiche-adresse { font-size: .85rem; }
  .fiche-annuaire .fiche-contacts { padding-top: 10px; border-top: 1px solid var(--bord); }
  .fiche-annuaire .fiche-boutons { grid-template-columns: repeat(auto-fit, minmax(92px, 1fr)); min-width: 0; }
  .fiche-annuaire .fiche-appeler { display: flex; background: var(--anis); border-color: var(--anis); }
  .fiche-annuaire .fiche-plus { grid-column: 1 / -1; }
  .fiche-annuaire .fiche-bouton { padding: 8px 10px; white-space: nowrap; text-align: center; }
}
.fiche-annuaire .fiche-contacts li > span { min-width: 0; }
.fiche-annuaire .arobase { vertical-align: -1px; }

/* ---------- Fiche détaillée (magasin, loueur) : même style que les cartes de liste ---------- */
.fiche-detail { display: grid; gap: 16px; margin: 10px 0 20px; }
.fd-carte { background: #fff; border: 1px solid var(--bord); border-radius: var(--rayon); box-shadow: var(--ombre); padding: 18px 20px; }
.fd-titre { display: flex; align-items: center; gap: 10px; margin: 0 0 12px; font: 600 1.08rem var(--titres); color: var(--nuit); text-transform: none; }
.fd-titre .fa { width: 30px; height: 30px; display: inline-flex; align-items: center; justify-content: center; border-radius: 8px; background: var(--anis); color: var(--nuit); font-size: .95rem; }
.fd-texte { color: #444; line-height: 1.6; }
.fd-tete { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 16px 20px; align-items: center; }
.fd-tete .fiche-vignette img { display: block; width: 150px; height: 112px; object-fit: cover; border-radius: 10px; border: 1px solid var(--bord); }
.fd-tete-texte { display: flex; flex-direction: column; align-items: flex-start; gap: 5px; min-width: 0; }
.fiche-detail .fiche-type { display: inline-block; padding: 3px 8px; border-radius: 6px; background: var(--anis); color: var(--nuit); font: 600 .7rem var(--corps); text-transform: uppercase; letter-spacing: .03em; }
.fd-nom { margin: 0; font: 600 1.3rem/1.25 var(--titres); color: var(--nuit); overflow-wrap: anywhere; }
.fiche-detail .fiche-adresse { margin: 0; color: #555; font-size: .92rem; }
.fiche-detail .fiche-adresse .fa { color: var(--anis-fonce); margin-right: 3px; }
.fiche-detail .fiche-contacts { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; font-size: .95rem; }
.fiche-detail .fiche-contacts li { display: flex; align-items: center; gap: 12px; margin: 0; padding: 0; min-width: 0; overflow-wrap: anywhere; color: #444; }
.fiche-detail .fiche-contacts li > span { min-width: 0; }
.fiche-detail .fiche-contacts .fa { flex: none; width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--lavande); color: var(--nuit); }
.fiche-detail .fiche-contacts a { color: var(--nuit); font-weight: 500; text-decoration: none; }
.fiche-detail .fiche-contacts a:hover { text-decoration: underline; text-decoration-color: var(--anis); }
.fiche-detail .fiche-gps { margin: 10px 0 0; color: var(--gris); font-size: .8rem; }
.fiche-detail .fiche-boutons { display: grid; grid-template-columns: 1fr; gap: 8px; min-width: 170px; }
.fiche-detail .fiche-bouton { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 40px; padding: 8px 14px; border-radius: var(--rayon-petit);
  background: var(--lavande-2); border: 1px solid var(--bord); color: var(--nuit); font-weight: 600; font-size: .9rem; text-decoration: none; white-space: nowrap; }
.fiche-detail .fiche-bouton:hover { background: var(--lavande); color: var(--nuit); }
.fiche-detail .fiche-plus { background: var(--nuit); border-color: var(--nuit); color: #fff; }
.fiche-detail .fiche-plus .fa { color: var(--anis); }
.fiche-detail .fiche-plus:hover { background: var(--nuit-2); color: #fff; }
.fiche-detail .fiche-appeler { display: none; }
.fiche-detail .arobase { vertical-align: -1px; }
.fiche-detail .fiche-bloc { margin: 0; padding: 0; background: none; }
.fiche-detail .horaires { width: 100%; border-collapse: collapse; }
.fiche-detail .horaires th, .fiche-detail .horaires td { padding: 7px 8px; border-bottom: 1px solid var(--bord); text-align: left; }
.fiche-detail .horaires th { color: var(--nuit); font-weight: 600; }
.fiche-detail .form-itineraire p { margin: 0 0 12px; }
.fiche-detail .cadre-carte { border-radius: var(--rayon-petit); overflow: hidden; }
@media screen and (max-width: 700px) {
  .fd-carte { padding: 14px; }
  .fd-tete { grid-template-columns: auto minmax(0, 1fr); gap: 12px; }
  .fd-tete .fiche-vignette img { width: 96px; height: 72px; border-radius: 8px; }
  .fd-nom { font-size: 1.1rem; }
  .fiche-detail .fiche-adresse { font-size: .85rem; }
  .fd-boutons { grid-column: 1 / -1; grid-template-columns: repeat(auto-fit, minmax(92px, 1fr)) !important; min-width: 0 !important; }
  .fiche-detail .fiche-appeler { display: flex; background: var(--anis); border-color: var(--anis); }
}
/* Fiche détaillée de l'annuaire (Arfooo) */
.fd-sans-image { display: flex; width: 150px; height: 112px; align-items: center; justify-content: center; border-radius: 10px; background: var(--lavande); color: var(--nuit); font-size: 2.4rem; }
.fiche-detail .fiche-vignette img { display: block; width: 150px; height: 112px; object-fit: cover; border-radius: 10px; border: 1px solid var(--bord); }
.fiche-detail button.fiche-bouton { margin: 0; font-family: inherit; cursor: pointer; box-shadow: none; }
.fiche-detail button.fiche-bouton:hover { box-shadow: none; }
.fd-extras { margin-top: 14px; }
.fd-photos { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 10px; margin-top: 14px; }
.fd-photos img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 8px; }
.fd-titre a { color: inherit; }
@media screen and (max-width: 700px) {
  .fd-sans-image, .fiche-detail .fiche-vignette img { width: 96px; height: 72px; font-size: 1.8rem; }
}
.fiche-detail .fiche-vignette, .fiche-annuaire .fiche-vignette { overflow: hidden; border-radius: 10px; }
.fd-tete .fiche-vignette { width: 150px; height: 112px; }
@media screen and (max-width: 700px) { .fd-tete .fiche-vignette { width: 96px; height: 72px; } }

/* ---------- Vitrine de produits affiliés ([produits …]) ---------- */
.mdv-produits { position: relative; margin: 18px auto; padding: 14px; background: #fff; border: 1px solid var(--bord); border-radius: var(--rayon); box-shadow: var(--ombre); text-align: left; overflow: hidden; }
.mdv-produits-300 { max-width: 300px; }
.mdv-produits-800 { max-width: 800px; }
.mp-tete { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 12px; }
.mp-titre-bloc { font: 600 1rem var(--titres); color: var(--nuit); }
.mp-titre-bloc .fa { color: var(--anis-fonce); margin-right: 4px; }
.mp-tete small { color: var(--gris); font-size: .7rem; text-transform: uppercase; letter-spacing: .04em; white-space: nowrap; }
.mp-pages { display: grid; }
.mp-page { grid-area: 1 / 1; display: grid; gap: 10px; opacity: 0; visibility: hidden; transform: translateX(14px); transition: opacity .45s, transform .45s, visibility .45s; }
.mp-page.actif { opacity: 1; visibility: visible; transform: none; }
.mdv-produits-800 .mp-page { grid-template-columns: repeat(var(--colonnes, 4), minmax(0, 1fr)); }
.mp-produit { display: flex; flex-direction: column; gap: 8px; min-width: 0; padding: 10px; border: 1px solid var(--bord); border-radius: var(--rayon-petit); background: #fff;
  color: var(--nuit); text-decoration: none; transition: transform .15s, box-shadow .15s, border-color .15s; }
.mp-produit:hover { transform: translateY(-2px); box-shadow: var(--ombre); border-color: var(--anis); color: var(--nuit); }
.mp-img { display: flex; align-items: center; justify-content: center; aspect-ratio: 1 / 1; background: #fff; border-radius: 6px; overflow: hidden; }
.mp-img img { width: 100%; height: 100%; object-fit: contain; border-radius: 0; }
.mp-infos { display: flex; flex-direction: column; gap: 4px; min-width: 0; flex: 1; }
.mp-cat { color: var(--gris); font-size: .7rem; text-transform: uppercase; letter-spacing: .03em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mp-nom { font-size: .85rem; font-weight: 600; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.6em; }
.mp-bas { display: flex; align-items: center; justify-content: space-between; gap: 6px; margin-top: auto; }
.mp-prix { font: 700 1.05rem var(--titres); color: var(--nuit); white-space: nowrap; }
.mp-cta { padding: 4px 10px; border-radius: 999px; background: var(--anis); color: var(--nuit); font-weight: 600; font-size: .78rem; white-space: nowrap; }
.mp-produit:hover .mp-cta { background: var(--nuit); color: #fff; }
/* format 300 : produits empilés, vignette à gauche */
.mdv-produits-300 .mp-produit { flex-direction: row; align-items: center; padding: 8px; }
.mdv-produits-300 .mp-img { flex: none; width: 84px; }
.mdv-produits-300 .mp-nom { font-size: .8rem; min-height: 0; }
.mp-points { display: flex; justify-content: center; gap: 6px; margin-top: 10px; }
.mdv-produits .mp-point { width: 9px; height: 9px; margin: 0; padding: 0; border: 0; border-radius: 50%; background: var(--bord); box-shadow: none; cursor: pointer; }
.mdv-produits .mp-point.actif { width: 22px; border-radius: 5px; background: var(--anis-fonce); }
.mdv-produits .mp-point:hover { background: var(--nuit); box-shadow: none; }
@media screen and (max-width: 700px) {
  .mdv-produits-800 .mp-page { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mdv-produits-800 .mp-produit:nth-child(n+5) { display: none; }
}
@media (prefers-reduced-motion: reduce) { .mp-page { transition: none; } }
/* Bannières produits : en-tête compact en 300 px ; sur mobile, les deux formats prennent toute la largeur en liste compacte */
.mdv-produits-300 .mp-tete { flex-direction: column; align-items: flex-start; gap: 2px; }
@media screen and (max-width: 600px) {
  .mdv-produits-300, .mdv-produits-800 { max-width: 100%; }
  .mdv-produits-800 .mp-page { grid-template-columns: 1fr; gap: 8px; }
  .mdv-produits-800 .mp-produit { flex-direction: row; align-items: center; padding: 8px; }
  .mdv-produits-800 .mp-img { flex: none; width: 84px; }
  .mdv-produits-800 .mp-nom { font-size: .8rem; min-height: 0; }
  .mdv-produits-800 .mp-produit:nth-child(n+4) { display: none; }
  .mdv-produits-800 .mp-tete { flex-direction: column; align-items: flex-start; gap: 2px; }
}

/* Produit affilié seul dans un article : [produit id="…"] */
.mdv-produit-seul { max-width: 620px; margin: 22px auto; }
.mdv-produit-seul .mps-lien { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 18px; align-items: center; padding: 14px; background: #fff;
  border: 1px solid var(--bord); border-radius: var(--rayon); box-shadow: var(--ombre); color: var(--nuit); text-decoration: none; transition: transform .15s, box-shadow .15s, border-color .15s; }
.mdv-produit-seul .mps-lien:hover { transform: translateY(-2px); box-shadow: var(--ombre-forte); border-color: var(--anis); color: var(--nuit); background: #fff; }
.mdv-produit-seul .mps-img { display: flex; align-items: center; justify-content: center; aspect-ratio: 1 / 1; background: #fff; border-radius: 8px; overflow: hidden; }
.mdv-produit-seul .mps-img img { width: 100%; height: 100%; object-fit: contain; border-radius: 0; }
.mdv-produit-seul .mps-infos { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.mdv-produit-seul small { color: var(--gris); font-size: .72rem; text-transform: uppercase; letter-spacing: .03em; }
.mdv-produit-seul .mps-nom { font: 600 1.05rem/1.35 var(--titres); }
.mdv-produit-seul .mps-bas { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin-top: 4px; }
.mdv-produit-seul .mp-prix { font-size: 1.3rem; }
.mdv-produit-seul .mps-cta { padding: 8px 14px; border-radius: 999px; background: var(--anis); color: var(--nuit); font-weight: 600; font-size: .88rem; white-space: nowrap; }
.mdv-produit-seul .mps-lien:hover .mps-cta { background: var(--nuit); color: #fff; }
@media screen and (max-width: 600px) {
  .mdv-produit-seul .mps-lien { grid-template-columns: 96px minmax(0, 1fr); gap: 12px; padding: 10px; }
  .mdv-produit-seul .mps-nom { font-size: .95rem; }
  .mdv-produit-seul .mp-prix { font-size: 1.1rem; }
  .mdv-produit-seul .mps-cta { padding: 6px 10px; font-size: .8rem; }
}
/* les liens « produits » ne prennent pas le style des liens de texte */
.texte-article a.mp-produit, .texte-article .mps-lien { font-weight: inherit; text-decoration: none; background: none; }

/* ---------- Colonne de droite pleine hauteur : la colonne « fixe » (#pubdroitfixe) reste visible au défilement ---------- */
@media screen and (min-width: 901px) {
  #contenu:has(> #contenu_d) { display: grid; grid-template-columns: minmax(0, 1fr) 300px; column-gap: 20px; align-items: start; }
  #contenu:has(> #contenu_d) > * { grid-column: 1 / -1; }
  #contenu:has(> #contenu_d) > #contenu_g { grid-column: 1; grid-row: 2; width: auto; float: none; display: block; height: auto; }
  #contenu:has(> #contenu_d) > #contenu_d { grid-column: 2; grid-row: 2; align-self: stretch; width: auto; float: none; margin: 0; display: block; height: auto; }
}
#pubdroitfixe { height: auto; position: sticky; top: 16px; }
@media screen and (max-width: 600px) { .mdv-produits-300 .mp-produit:nth-child(n+5) { display: none; } } /* 4 produits au plus sur mobile */

/* Vitrine de produits pleine largeur ([produits format="large"]) : en-tête et pied de page */
.mdv-produits-large { max-width: 100%; margin: 0 auto; padding: 12px 14px; }
.mdv-produits-large .mp-tete { margin-bottom: 10px; }
.mdv-produits-large .mp-page { grid-template-columns: repeat(var(--colonnes, 5), minmax(0, 1fr)); }
.mdv-produits-large .mp-produit { flex-direction: row; align-items: center; gap: 10px; padding: 8px; }
.mdv-produits-large .mp-img { flex: none; width: 72px; }
.mdv-produits-large .mp-nom { font-size: .8rem; min-height: 0; }
.mdv-produits-large .mp-prix { font-size: .95rem; }
.mdv-produits-large .mp-cta { padding: 3px 8px; font-size: .72rem; }
.mdv-produits-large .mp-points { margin-top: 8px; }
.mdv-produits-large[style*="--colonnes: 6"] .mp-cta { display: none; } /* 6 produits : le prix suffit */
#pub_header:has(.mdv-produits), .pub_footer:has(.mdv-produits) { width: auto; max-width: 1152px; height: auto; padding: 0; overflow: visible; text-align: left; }
.pub_footer:has(.mdv-produits) { margin: 20px auto; }
@media screen and (max-width: 1000px) {
  .mdv-produits-large .mp-page { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .mdv-produits-large .mp-produit:nth-child(n+4) { display: none; }
}
@media screen and (max-width: 600px) {
  .mdv-produits-large { padding: 10px; }
  .mdv-produits-large .mp-tete { flex-direction: column; align-items: flex-start; gap: 2px; }
  .mdv-produits-large .mp-page { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .mdv-produits-large .mp-produit { flex-direction: column; align-items: stretch; gap: 6px; }
  .mdv-produits-large .mp-img { width: 100%; max-height: 80px; }
  .mdv-produits-large .mp-produit:nth-child(n+3) { display: none; }
  .mdv-produits-large .mp-cta { display: none; }
}
