/* ================================================================
   INEUF — Extensions dev du Design System v2
   (élements laissés "au développeur" + fidélité maquette homepage)
   Chargé APRÈS ineuf-design-system-v2.css
   ================================================================ */

/* ---- HEADER PHOTO PLEIN-ZONE (homepage) -------------------------
   La maquette superpose topbar + nav + hero sur une photo avec overlay.
   .hero-full--home porte la photo (background-image inline). */
.hero-full--home { position: relative; background-size: cover; background-position: center 42%; }

.hero-full--home .hero { background: transparent !important; }

/* Placeholders image (dev) + zones image en lien cliquable */
.ph { background: #d5d9dc; }
a.program-img, a.news-img { display: block; }
.hero-full--home::before {
  content: ''; position: absolute; inset: 0;
  /* 03/07 : voile uniforme conforme maquette (index.html : rgba(43,55,66,.55)) —
     le degrade laissait le bas de la photo delave, le client ne retrouvait pas le filtre */
  background: rgba(43,55,66,.55);
  z-index: 0;
}
.hero-full--home > * { position: relative; z-index: 1; }




.footer-brand .logo img { height: 92px; }

/* ---- HERO : alignement gauche + conteneur ----------------------- */
.hero { text-align: left; padding-top: 76px; padding-bottom: 60px; }
.hero-inner { max-width: var(--inner); margin: 0 auto; width: 100%; }
/* 03/07 : retour maquette (PDF designer) — titre et recherche CENTRES */
.hero h1 { margin-inline: auto; max-width: 900px; text-align: center; }
.hero .search-box { margin-inline: auto; max-width: var(--hero-w); width: 100%; border-radius: var(--radius-sm); }

/* ---- SELECTS de recherche (laissés "au développeur") ------------ */
.search-filters select {
  flex: 1; min-width: 150px; padding: 14px 38px 14px 18px;
  font-family: var(--font); font-size: 13px; font-weight: 500; color: #56646d;
  background-color: #fff; border: 1px solid #d0d8dc; border-radius: var(--radius-full);
  appearance: none; -webkit-appearance: none; -moz-appearance: none; cursor: pointer;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23ed6c39' stroke-width='3'><polyline points='6 9 12 15 18 9'/></svg>");
  background-repeat: no-repeat; background-position: right 16px center; background-size: 12px;
}
.search-box .btn-search { border-radius: var(--radius-full); }

/* ---- SIDE-ICONS rondes (maquette) ------------------------------- */
.side-icons { right: 18px; gap: 14px; }
.side-icon {
  width: 58px; height: 58px; border-radius: 50% !important;
  border: 1px solid var(--border-mid); border-right: 1px solid var(--border-mid);
  box-shadow: 0 6px 16px rgba(0,0,0,.14);
}
.side-icon img { width: 30px; height: 30px; }

/* ---- STATS : pictos orange sans cercle -------------------------- */
.stat-icon { border: none; width: auto; height: 56px; }
.stat-icon img { width: 56px; height: 56px; }

/* ---- POURQUOI ACHETER : bulles auto-portées --------------------- */
.why-icon { border: none; width: auto; height: 72px; }
.why-icon img { width: 72px; height: 72px; }

/* ---- Pictos cartes / partagés ---- */
.share-btn img { width:14px; height:14px; }
.scroll-top img, .chat-bubble img { width:20px; height:20px; }

/* ================================================================
   POLISH v2 — fidélité maquette (round 2)
   ================================================================ */

/* Hero un peu plus haut pour révéler la photo */
.hero-full--home .hero { padding-top: 88px; padding-bottom: 92px; }



/* Bloc conseillers : photo placeholder un peu plus grande */
.advisors-img { min-height: 360px; }

/* Programmes : bouton "Voir tous" orange + points carrousel */
.programs-section .btn-all { display:inline-flex; align-items:center; justify-content:center;
  background: var(--orange); color:#fff; font-weight:700; font-size:14px; letter-spacing:.3px;
  padding:13px 30px; border-radius: var(--radius-full); border:2px solid var(--orange); }
.programs-section .btn-all:hover { background: var(--orange-dk); border-color: var(--orange-dk); }
.carousel-dots { display:flex; gap:8px; justify-content:center; margin:26px 0 22px; }
.carousel-dots .dot { width:9px; height:9px; border-radius:50%; background:rgba(255,255,255,.45); }
.carousel-dots .dot.active { background:#fff; }
/* petit picto building+heart bas-droite des cartes */
.program-footer { display:flex; align-items:flex-end; justify-content:space-between; }
/* 04/07 : icones en LIGNE (la colonne creusait un grand blanc au-dessus du prix) */
.program-actions { display:flex; flex-direction:row; gap:8px; flex-shrink:0; align-items:center; }
.program-mini-ico { width:46px; height:46px; flex-shrink:0; }
.program-mini-ico img { width:28px; height:28px; }

/* Pourquoi acheter : cartes grises centrées (maquette) */
.why-card { background:#eef1f3; border:none; text-align:center; }
.why-card .why-icon { margin-left:auto; margin-right:auto; }
.why-card h3 { text-align:center; }
.why-card p  { text-align:center; }
.why-card .link-arrow { display:inline-block; }

/* Partenaires : logos nus, plus grands (sans cadre) */
.partners-logos { gap:48px; align-items:center; justify-content:center; flex-wrap:wrap; }
.partner-logo { background:transparent; border:none; box-shadow:none; padding:0; min-width:0; }
.partner-logo img { max-height:62px; max-width:170px; filter:grayscale(1); opacity:.9; }

/* Actualités : carte image hauteur fixe pour les exemples */
.news-img { height:190px; display:block; }

/* ================================================================
   FIX round 3 — retours client (overlay, tailles, couleurs)
   ================================================================ */

/* 03/07 : voile uniforme rgba(43,55,66,.55) conforme maquette index.html — 
   les degrades successifs delavaient la photo ET creaient un reflet bleu/vert sur les lettres */
.hero-full--home { background-position: center 82%; min-height: 680px; }
/* 03/07 : effet lettres du PDF designer = ombre portee douce et marquee */
.hero-full--home .hero h1 { text-shadow: 0 4px 10px rgba(0,0,0,.65), 0 14px 38px rgba(0,0,0,.50); max-width: 1000px; font-size: 52px; }

/* Contenu plus large (proportions maquette 1400px) */
:root { --inner: 1200px; --hero-w: 1000px; }

/* Side-icons : pictos plus grands */
.side-icon { width: 64px; height: 64px; }
.side-icon img { width: 40px; height: 40px; }

/* Stats : plus large + pictos & chiffres plus grands + séparateurs */
.stats-grid { max-width: 1120px !important; }
.stat-icon { border: none; width: auto; height: 70px; }
.stat-icon img { width: 70px; height: 70px; }
.stat-number { font-size: 42px; }
.stat-desc { font-size: 13px; }
.stat-item + .stat-item { border-left: 1px solid var(--border-mid); }
.stats-section .section-title { font-size: 32px; }

/* Titres de section en teal (ton maquette) */
.section-title:not(.section-title--white) { color: var(--teal); }

/* Pourquoi acheter : section BLANCHE, cartes grises (contraste maquette) */
.why-section { background: #ffffff; }
.why-card { background: #eef1f3; border: none; text-align: center; padding: 34px 26px; }
.why-icon { border: none; width: auto; height: 88px; }
.why-icon img { width: 88px; height: 88px; }
.why-card h3 { font-size: 18px; }

/* ================================================================
   FIX round 4 — retours client 2 (hero plus haut, pictos, flottants)
   ================================================================ */

/* Hero : plus haut, photo cadree sur le chemin/cycliste, barre en bas */
.hero-full--home .hero { padding-top: 150px; padding-bottom: 64px; }

/* Side-icons : pictos encore plus grands (remplissent le cercle) */
.side-icon { width: 66px; height: 66px; }
.side-icon img { width: 46px; height: 46px; }

/* Partenaires : logos grands, section-title plus grand */
.partners-section .section-title { font-size: 30px; }
.partners-logos { gap: 56px !important; max-width: var(--inner) !important; }
.partner-logo { width: auto !important; height: auto !important; border: none !important; }
.partner-logo img { max-height: 84px !important; max-width: 210px !important; filter: grayscale(1); opacity: .9; }

/* Flottants bas-droite : remontes + chat conforme (orange, plus grand) */
/* 03/07 : a GAUCHE — sous la colonne d'icones il passait pour un surlignage errant */
.scroll-top { bottom: 28px !important; right: auto !important; left: 24px !important; width: 46px; height: 46px; }
.chat-bubble { bottom: 38px !important; right: 28px !important; width: 56px; height: 56px; }
.chat-bubble img { width: 26px; height: 26px; }
.scroll-top img { width: 20px; height: 20px; }

/* FIX round 4b — partenaires : logos plus grands + EN COULEUR (maquette) */
.partner-logo img {
  height: 56px !important; width: auto !important;
  max-height: none !important; max-width: 240px !important;
  filter: none !important; opacity: 1 !important;
}
.partners-logos { gap: 60px !important; }



/* ================================================================
   HEADER v3 — reconstruction propre (grille : logo sur 2 rangées)
   Remplace les rustines round 5. Markup = <header class="site-header">.
   Aligné exactement sur .hero-inner (max-width --inner + gutter).
   ================================================================ */
.site-header {
  position: relative; z-index: 5;
  width: 100%;
  max-width: calc(var(--hero-w) + 2 * var(--gutter));
  margin: 0 auto;
  padding: 14px var(--gutter) 0;
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: 32px;
  align-items: start;
}
/* Logo géant débordant sur les 2 rangées */
.site-header__logo { display: block; flex-shrink: 0; margin-top: 2px; }
.site-header__logo img { height: 116px; width: auto; display: block; }

.site-header__main { display: flex; flex-direction: column; min-width: 0; }

/* Rangée 1 : recherche (gauche) + liens topbar (droite) */
.site-header__topbar { display: flex; align-items: center; gap: 24px; min-height: 34px; padding-top: 12px; }
.hdr-search { display: flex; align-items: center; gap: 8px; margin-right: auto; }
.hdr-search img { width: 15px; height: 15px; opacity: .9; }
.hdr-search input {
  background: transparent; border: none; border-bottom: 1px solid rgba(255,255,255,.55);
  color: #fff; font-family: var(--font); font-size: 12px; padding: 3px 4px; width: 230px; outline: none;
}
.hdr-search input::placeholder { color: rgba(255,255,255,.6); }

.hdr-toplinks { display: flex; align-items: center; gap: 22px; }
.hdr-toplinks a {
  color: #fff; font-size: 12px; font-weight: 400; white-space: nowrap;
  text-shadow: 0 1px 6px rgba(0,0,0,.35); transition: color var(--t-fast);
}
.hdr-toplinks a:hover { color: var(--orange); }
.hdr-account { display: inline-flex; align-items: center; gap: 6px; color: var(--orange) !important; font-weight: 600; }
.hdr-account img { width: 14px; height: 14px; }

/* Rangée 2 : menu nav aligné à droite */
.site-header__nav { display: flex; justify-content: flex-end; gap: 30px; margin-top: 16px; }
.site-header__nav a {
  color: #fff; font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px;
  white-space: nowrap; padding: 4px 0; border-bottom: 2px solid transparent;
  text-shadow: 0 1px 8px rgba(0,0,0,.45); transition: color var(--t-base), border-color var(--t-base);
}
.site-header__nav a:hover, .site-header__nav a.active { color: var(--orange); border-bottom-color: var(--orange); }

/* ── STICKY NAV (réduit au scroll) : barre blanche, liens teal ── */
.sticky-nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 200;
  background: #fff; box-shadow: 0 2px 14px rgba(0,0,0,.10);
  transform: translateY(-100%); transition: transform .28s ease;
}
.sticky-nav.is-visible { transform: translateY(0); }
.sticky-nav__inner {
  max-width: calc(var(--inner) + 2 * var(--gutter)); margin: 0 auto;
  padding: 8px var(--gutter); display: flex; align-items: center; justify-content: space-between; gap: 24px;
}
.sticky-nav__logo img { height: 44px; width: auto; display: block; }
.sticky-nav__links { display: flex; gap: 30px; }
.sticky-nav__links a {
  color: var(--teal); font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px;
  white-space: nowrap; padding: 4px 0; border-bottom: 2px solid transparent;
  transition: color var(--t-base), border-color var(--t-base);
}
.sticky-nav__links a:hover { color: var(--orange); border-bottom-color: var(--orange); }

/* (override degrade supprime le 03/07 — voile unique defini plus haut) */

/* ================================================================
   PAGE PROGRAMME (fiche) — hero photo + 2 col + sidebar sticky
   ================================================================ */
.hero-full--banner { position: relative; background-size: cover; background-position: center; }
.hero-full--banner::before { content:''; position:absolute; inset:0; background:transparent; z-index:0; }
.hero-full--banner > * { position: relative; z-index: 1; }
.hero-full--banner .hero-banner { background: transparent; min-height: 240px; padding-top: 24px; }
.hero-full--banner .hero-banner__title { text-shadow: 0 2px 14px rgba(0,0,0,.4); }

.breadcrumb-wrap { max-width: var(--inner); margin: 0 auto; padding: 0 var(--gutter); }

.detail-header { align-items: center; gap: 16px; margin-top: 6px; }
.detail-header__title--teal { color: var(--teal); }
.share-btn--inline { position: static; width: 34px; height: 34px; border-radius: 50%;
  background: var(--orange-light); border: none; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.share-btn--inline img { width: 15px; height: 15px; }
.detail-subtitle { text-transform: uppercase; letter-spacing: .5px; font-size: 12px;
  font-weight: 700; color: var(--text-light); margin: -10px 0 20px; }

.detail-gallery { border-radius: var(--radius-sm); overflow: hidden; margin-bottom: 24px;
  background: var(--mid-bg); min-height: 420px; display: flex; align-items: center; justify-content: center; }
.detail-gallery img { width: 100%; height: 420px; object-fit: cover; display: block; }
.detail-gallery--empty { min-height: 360px; }
.detail-gallery--empty::after { content: "Photos à venir"; color: var(--text-light); font-size: 14px; }

.detail-section { margin-bottom: 34px; }
.detail-section__title { color: var(--teal); font-size: 20px; font-weight: 800; margin-bottom: 16px; }
.detail-description { color: var(--text); font-size: 14px; line-height: 1.7; }

.detail-map { border-radius: var(--radius-sm); overflow: hidden; border: 1px solid var(--border); }
.detail-map iframe { width: 100%; height: 360px; border: 0; display: block; }
.detail-map__caption { font-size: 13px; color: var(--text-light); margin-top: 8px; }

/* Sidebar : recherche (selects empilés) + chat */
.sidebar-search select, .sidebar-search .btn-search { width: 100%; }
.sidebar-search select {
  appearance: none; -webkit-appearance: none; -moz-appearance: none; background-color: #fff;
  border: 1px solid #d0d8dc; border-radius: var(--radius-full); padding: 11px 16px;
  font-family: var(--font); font-size: 13px; color: #56646d; margin-bottom: 10px; cursor: pointer;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23ed6c39' stroke-width='3'><polyline points='6 9 12 15 18 9'/></svg>");
  background-repeat: no-repeat; background-position: right 14px center; background-size: 11px;
}
.sidebar-budget { color: #fff; font-size: 12px; margin: 6px 0 14px; }
.sidebar-budget label { font-weight: 600; margin-right: 8px; }
.sidebar-search .budget-slider { width: 100%; margin: 8px 0 4px; }
.sidebar-search .btn-search { border-radius: var(--radius-full); border: none; background: var(--orange);
  color: #fff; font-weight: 700; padding: 12px; cursor: pointer; transition: background var(--t-fast); }
.sidebar-search .btn-search:hover { background: var(--orange-dk); }
.btn-light { background: #fff; color: var(--orange); border: none; border-radius: var(--radius-full);
  font-weight: 700; padding: 11px 20px; width: 100%; cursor: pointer; }

@media (max-width: 900px) {
  .page-layout { grid-template-columns: 1fr; }
  .sidebar { position: static; }
}

/* ================================================================
   LISTING PROGRAMMES (grille) — hero + barre de recherche + grille
   ================================================================ */
.hero-full--listing .hero-banner--listing {
  min-height: 360px; align-items: center; justify-content: center;
  text-align: center; padding-bottom: 36px;
}
.hero-banner__inner { max-width: var(--inner); margin: 0 auto; width: 100%; }
.hero-banner--listing .hero-banner__title { text-align: center; margin: 0 auto 22px; }
.hero-banner--listing .search-box { border-radius: var(--radius-sm); }

.listing-section { background: var(--light-bg); padding: 26px var(--gutter) 60px; }
.listing-toolbar { max-width: var(--inner); margin: 0 auto 22px; display: flex;
  align-items: center; justify-content: space-between; gap: 16px; }
.listing-count { font-size: 14px; color: var(--text-light); font-weight: 600; }
.view-toggle { display: flex; gap: 8px; }
.view-btn { width: 38px; height: 38px; border-radius: 8px; border: 1px solid var(--border);
  background: #fff; display: inline-flex; align-items: center; justify-content: center; cursor: pointer;
  transition: border-color var(--t-fast), background var(--t-fast); }
.view-btn.active { border-color: var(--teal); background: var(--teal-light); }
.view-btn img { width: 18px; height: 18px; }
.listing-grid { gap: 28px; }
.listing-empty { grid-column: 1 / -1; text-align: center; color: var(--text-light); padding: 40px 0; font-size: 15px; }

@media (max-width: 900px) { .listing-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .listing-grid { grid-template-columns: 1fr; } }

/* ================================================================
   PAGE CONTACT — formulaire DS v2 + sidebar
   ================================================================ */
.contact-intro { color: var(--text-light); font-size: 14px; line-height: 1.7; margin-bottom: 26px; max-width: 640px; }
.contact-form .form-grid { display: flex; flex-direction: column; gap: 16px; max-width: 560px; margin-bottom: 16px; }
.contact-form .form-field { display: flex; flex-direction: column; max-width: 560px; }
.contact-form .form-field--full { margin-bottom: 18px; }
.contact-form .form-field--sm select { max-width: 180px; }
.contact-form label { font-size: 12px; font-weight: 700; color: var(--text-light);
  margin-bottom: 6px; text-transform: uppercase; letter-spacing: .4px; }
.contact-form input, .contact-form select, .contact-form textarea {
  width: 100%; border: 1px solid #d0d8dc; border-radius: var(--radius-sm); padding: 11px 14px;
  font-family: var(--font); font-size: 14px; color: var(--text); background: #fff; outline: none;
  transition: border-color var(--t-fast); }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { border-color: var(--teal); }
.contact-form textarea { min-height: 140px; resize: vertical; }
.contact-form select { appearance: none; -webkit-appearance: none; -moz-appearance: none; cursor: pointer;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23ed6c39' stroke-width='3'><polyline points='6 9 12 15 18 9'/></svg>");
  background-repeat: no-repeat; background-position: right 14px center; background-size: 11px; }
.contact-submit-row { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; margin-top: 10px; }
.contact-submit-row .btn-primary { padding: 13px 34px; }

/* ================================================================
   ARTICLE / ACTUALITÉ — DS v2
   ================================================================ */
.article-meta { display: flex; align-items: center; gap: 12px; margin: 4px 0 22px; }
.share-btn-bare { background: none; border: none; padding: 0; cursor: pointer; line-height: 0; }
.share-btn-bare img { width: 18px; height: 18px; display: block; }
.article-readtime { font-size: 12px; font-weight: 700; letter-spacing: .8px; text-transform: uppercase; color: var(--text-light); }
.article-date { font-size: 13px; color: var(--text-light); }
.article-title { color: var(--teal); font-size: 28px; font-weight: 800; line-height: 1.25; margin-bottom: 20px; }
.article-body { font-size: 15px; line-height: 1.8; }
.article-body p { margin-bottom: 16px; }
.article-body h2, .article-body h3 { color: var(--teal); margin: 24px 0 12px; font-size: 19px; }
.article-body ul, .article-body ol { margin: 0 0 16px 22px; }
.article-body li { margin-bottom: 6px; }
.news-pagination { display: flex; justify-content: center; margin-top: 32px; }
.news-pagination .pagination { display: flex; gap: 6px; list-style: none; padding: 0; }
.news-pagination .pagination a, .news-pagination .pagination span {
  display: inline-flex; padding: 7px 12px; border: 1px solid var(--border);
  border-radius: 6px; color: var(--teal); text-decoration: none; font-size: 14px; }
.news-pagination .pagination .current { background: var(--teal); color: #fff; border-color: var(--teal); }

/* ================================================================
   LISTING CARTE — carte Leaflet + liste de cartes
   ================================================================ */
.listing-section--map { padding-bottom: 44px; }
.map-layout { max-width: var(--inner); margin: 0 auto; display: grid;
  grid-template-columns: 1fr 380px; gap: 20px; align-items: stretch; }
.map-pane { height: 620px; border-radius: var(--radius-sm); overflow: hidden; z-index: 0; border: 1px solid var(--border); }
.map-cards { height: 620px; overflow-y: auto; display: flex; flex-direction: column; gap: 14px; padding-right: 4px; }
.map-card { display: flex; gap: 12px; background: #fff; border: 1px solid var(--border);
  border-radius: var(--radius-sm); overflow: hidden; transition: box-shadow var(--t-fast); text-decoration: none; flex-shrink: 0; }
.map-card:hover { box-shadow: var(--shadow-card); }
.map-card__img { width: 130px; flex-shrink: 0; background-color: var(--mid-bg); background-size: cover; background-position: center; align-self: stretch; min-height: 112px; display: block; }
.map-card__info { display: flex; flex-direction: column; justify-content: center; padding: 12px 14px 12px 0; min-width: 0; }
.map-card__name { font-size: 15px; font-weight: 800; color: var(--text); }
.map-card__loc { font-size: 12px; color: var(--text-light); margin: 2px 0 8px; }
.map-card__price { font-size: 19px; font-weight: 900; color: var(--orange-text); }
.ineuf-pin__dot { display: block; width: 22px; height: 22px; background: var(--orange);
  border: 3px solid #fff; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); box-shadow: 0 2px 6px rgba(0,0,0,.3); }
@media (max-width: 900px) { .map-layout { grid-template-columns: 1fr; } .map-pane { height: 380px; } .map-cards { height: auto; max-height: 520px; } }

/* ================================================================
   HEADER CLAIR — pages internes (fidèle maquette)
   Fond blanc full-width, logo couleur, liens topbar gris, nav teal.
   Activé via {% block header_class %}site-header--light{% endblock %}.
   ================================================================ */
.site-header--light { background: #fff; box-shadow: 0 0 0 100vmax #fff; clip-path: inset(0 -100vmax); }
.site-header--light .site-header__logo img { height: 84px; }
.site-header--light .hdr-toplinks a { color: var(--text-light); text-shadow: none; }
.site-header--light .hdr-toplinks a:hover { color: var(--orange-text); }
.site-header--light .hdr-account { color: var(--orange-text) !important; }
.site-header--light .site-header__nav a { color: var(--teal); text-shadow: none; }
.site-header--light .site-header__nav a:hover,
.site-header--light .site-header__nav a.active { color: var(--orange); border-bottom-color: var(--orange); }
.site-header--light .hdr-search input { color: var(--text); border-bottom-color: #c9d2d7; }
.site-header--light .hdr-search input::placeholder { color: var(--text-light); }

/* ---- MOTEUR DE RECHERCHE v2 (onglets goal + autocomplete ville) ---- */
.search-box .search-tabs { display: flex; gap: 6px; margin-bottom: 10px; }
.search-box .search-tab {
  border: 0; background: rgba(255,255,255,.20); color: #fff;
  padding: 7px 20px; border-radius: var(--radius-full);
  font-family: var(--font); font-weight: 600; font-size: 13px;
  cursor: pointer; text-decoration: none; line-height: 1.2;
}
.search-box .search-tab.is-active { background: var(--orange); color: #fff; }
.search-filters .ac-wrap { position: relative; flex: 1; min-width: 150px; display: flex; }
.search-filters .js-city-ac {
  flex: 1; width: 100%; min-width: 0; padding: 14px 18px;
  font-family: var(--font); font-size: 13px; font-weight: 500; color: #56646d;
  background: #fff; border: 1px solid #d0d8dc; border-radius: var(--radius-full);
}
.search-filters .js-city-ac::placeholder { color: #56646d; opacity: 1; }
.ac-list {
  position: absolute; top: calc(100% + 4px); left: 0; right: 0;
  background: #fff; color: #1c3d52; list-style: none; margin: 0; padding: 4px 0;
  border-radius: 10px; box-shadow: 0 10px 28px rgba(0,0,0,.20);
  max-height: 280px; overflow: auto; z-index: 9999;
}
.ac-list[hidden] { display: none; }
.ac-list li { padding: 9px 16px; cursor: pointer; font-size: 14px; }
.ac-list li:hover, .ac-list li.is-active { background: #eef3f5; }

/* ---- Autocomplete ville dans la sidebar des fiches -------------- */
.sidebar-search .ac-wrap { position: relative; width: 100%; display: block; margin-bottom: 8px; }
.sidebar-search .js-city-ac {
  width: 100%; padding: 12px 16px; font-family: var(--font); font-size: 13px;
  color: #56646d; background: #fff; border: 1px solid #d0d8dc; border-radius: var(--radius-full);
}
.sidebar-search .js-city-ac::placeholder { color: #56646d; opacity: 1; }

/* ---- MODALE COMPTE (connexion / inscription) ------------------- */
.modal--account { max-width: 430px; width: 100%; text-align: left; padding: 26px 28px 30px; }
.modal--account .auth-tabs { display: flex; gap: 8px; margin: 4px 0 18px; border-bottom: 1px solid #e3e9ec; }
.modal--account .auth-tab { flex: 1; border: 0; background: none; padding: 10px 0; font-family: var(--font); font-weight: 700; font-size: 15px; color: #9aa7b0; cursor: pointer; border-bottom: 3px solid transparent; }
.modal--account .auth-tab.is-active { color: #1c3d52; border-bottom-color: var(--orange); }
.modal--account .auth-form .form-field { margin-bottom: 12px; display: flex; flex-direction: column; }
.modal--account .auth-form label { font-size: 13px; font-weight: 600; color: #1c3d52; margin-bottom: 5px; }
.modal--account .auth-form input[type=email], .modal--account .auth-form input[type=password],
.modal--account .form-control { width: 100%; padding: 11px 14px; border: 1px solid #d0d8dc; border-radius: 8px; font-family: var(--font); font-size: 14px; margin-bottom: 6px; }
.modal--account .auth-remember { display: flex; align-items: center; gap: 8px; font-size: 13px; color: #56646d; margin: 4px 0 14px; }
.modal--account .auth-submit, .modal--account .btn-primary { width: 100%; border: 0; cursor: pointer; padding: 12px; border-radius: var(--radius-full); font-weight: 700; background: var(--orange); color: #fff; }
.modal--account .auth-forgot { display: block; text-align: center; margin-top: 12px; font-size: 13px; color: #1c6e7e; }
.modal--account .auth-social, .modal--account .pad-bottom-20 { margin-top: 18px; text-align: center; }
.modal--account .auth-or, .modal--account .upper { font-size: 12px; text-transform: uppercase; color: #9aa7b0; margin-bottom: 10px; }
.modal--account .btn-social, .modal--account .facebook-connect, .modal--account .google-connect { display: block; width: 100%; margin: 8px 0; padding: 11px; border-radius: var(--radius-full); text-align: center; font-weight: 600; text-decoration: none; color: #fff; }
.modal--account .btn-social--fb, .modal--account .facebook-connect { background: #1877f2; }
.modal--account .btn-social--gg, .modal--account .google-connect { background: #db4437; }
.modal--account h5 { font-size: 13px; font-weight: 600; color: #1c3d52; margin: 8px 0 4px; }
.modal--account .col-center, .modal--account .col-xs-12, .modal--account .col-sm-8 { width: 100% !important; padding: 0 !important; float: none !important; }
.modal--account hr { border: 0; border-top: 1px solid #e3e9ec; margin: 16px 0; }

/* ---- Favoris (mini-picto carte) -------------------------------- */
.program-mini-ico { display:flex; align-items:center; justify-content:center; background: var(--teal-light); border: 0; cursor: pointer; padding: 0; border-radius: 50%; line-height: 0; transition: background .15s, transform .15s; }
.program-mini-ico:hover { background:#d2e9ee; transform:translateY(-1px); }
.program-mini-ico:hover { background: rgba(237,108,57,.12); }
/* 03/07 : etat favori lisible — l'ancien style (fond orange + icone inversee blanche)
   donnait un donut orange illisible que Anthony prenait pour un bug */
.program-mini-ico.is-fav { background: #fde3d6; box-shadow: inset 0 0 0 2px var(--orange, #e8762d); }

/* ---- Animation favoris (pop au clic) --------------------------- */
@keyframes favPop { 0%{transform:scale(1)} 35%{transform:scale(1.45)} 60%{transform:scale(.88)} 100%{transform:scale(1)} }
.program-mini-ico.pop { animation: favPop .42s ease; }

/* ---- Page Ma sélection : calage + note compte ------------------ */
/* 04/07 : grille standard (les cartes etaient trop etroites) */
.wishlist-page .programs-grid { max-width: var(--inner); margin: 22px auto 0; }
.wishlist-account-note { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
  max-width: 800px; margin: 0 auto; background: var(--teal-light); border:1px solid #cfe6ea; border-radius:12px; padding:16px 20px; }
.wishlist-account-note span { color: var(--text); font-weight: 500; }
@media (max-width:680px){ .wishlist-page .programs-grid { grid-template-columns: 1fr; } }
/* Animation du side-icon favoris (équivalent prod wishlistAnimate) */
@keyframes favBump { 0%{transform:scale(1)} 30%{transform:scale(1.35)} 50%{transform:scale(.9)} 70%{transform:scale(1.18)} 100%{transform:scale(1)} }
.side-icon.fav-bump { animation: favBump .6s ease; }

/* ================================================================
   BLOC A — CTA fiches (sidebar + modales contact/partage/plan)
   ================================================================ */

/* ── Carte CTA sidebar ───────────────────────────────────────── */
.sidebar-cta__lead {
  font-size: .92rem;
  color: var(--text-muted, #5a6b73);
  margin: 0 0 16px;
  line-height: 1.45;
}
.sidebar-cta__btn {
  display: block;
  width: 100%;
  text-align: center;
  margin: 0 0 10px;
  padding: 13px 16px;
  border-radius: 10px;
  font-weight: 600;
  font-size: .98rem;
  cursor: pointer;
  border: none;
}
.sidebar-cta__phone {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 14px 0 6px;
  font-weight: 700;
  font-size: 1.12rem;
  color: var(--teal, #0e8094);
  text-decoration: none;
}
.sidebar-cta__phone img { height: 20px; width: auto; }
.sidebar-cta__contact-link {
  display: block;
  width: 100%;
  margin-top: 8px;
  padding: 4px;
  background: none;
  border: none;
  color: var(--text-muted, #5a6b73);
  font-size: .85rem;
  text-decoration: underline;
  cursor: pointer;
}

/* ── Modales CTA ─────────────────────────────────────────────── */
.modal--cta {
  max-width: 460px;
  width: 92vw;
  max-height: 88vh;
  overflow-y: auto;
  padding: 28px 26px;
}
.modal--cta.modal--wide { max-width: 560px; }
.modal__sub {
  font-size: .9rem;
  color: var(--text-muted, #5a6b73);
  margin: -6px 0 16px;
}
.modal__sub--mt { margin-top: 22px; }

/* ── Formulaires CTA ─────────────────────────────────────────── */
.cta-form .form-field { margin-bottom: 12px; }
.cta-form label {
  display: block;
  font-size: .82rem;
  font-weight: 600;
  margin-bottom: 4px;
  color: var(--text, #1d2b32);
}
.modal--cta input[type="text"],
.modal--cta input[type="tel"],
.modal--cta input[type="email"],
.modal--cta input[type="number"],
.modal--cta select,
.modal--cta textarea {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid #d5dde1;
  border-radius: 8px;
  font-size: .95rem;
  font-family: inherit;
  background: #fff;
  box-sizing: border-box;
}
.modal--cta textarea { min-height: 80px; resize: vertical; }
.modal--cta input:focus,
.modal--cta select:focus,
.modal--cta textarea:focus {
  outline: none;
  border-color: var(--teal, #0e8094);
  box-shadow: 0 0 0 3px rgba(14,128,148,.12);
}
.form-field--inline { display: flex; gap: 10px; align-items: center; }
.form-field--half { display: inline-block; width: calc(50% - 6px); }
.form-field--half:nth-of-type(odd) { margin-right: 8px; }

/* honeypot anti-spam (champ "age"/"name") — toujours masqué */
.cta-honeypot { position: absolute !important; left: -9999px !important; height: 0; overflow: hidden; }

.cta-optin {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  font-size: .8rem;
  color: var(--text-muted, #5a6b73);
  margin: 10px 0;
}
.cta-optin input { margin-top: 3px; }

.cta-form .g-recaptcha { margin: 12px 0; }
.cta-form__submit { width: 100%; margin-top: 6px; }
.cta-form__submit.is-loading { opacity: .6; pointer-events: none; }

.cta-form__msg {
  margin: 10px 0;
  padding: 11px 13px;
  border-radius: 8px;
  font-size: .9rem;
  line-height: 1.4;
}
.cta-form__msg.is-ok  { background: #e6f4ec; color: #1c7a45; border: 1px solid #b7e0c6; }
.cta-form__msg.is-err { background: #fdecec; color: #b3261e; border: 1px solid #f4c4c1; }

/* ── Partage réseaux ─────────────────────────────────────────── */
.share-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-bottom: 6px;
}
.share-net {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 11px 12px;
  border-radius: 9px;
  font-weight: 600;
  font-size: .9rem;
  text-decoration: none;
  color: #fff;
  cursor: pointer;
  border: none;
}
.share-net--wa   { background: #25d366; }
.share-net--fb   { background: #1877f2; }
.share-net--tw   { background: #111; }
.share-net--li   { background: #0a66c2; }
.share-net--mail { background: var(--teal, #0e8094); }
.share-net--copy { background: #eef2f4; color: var(--text, #1d2b32); border: 1px solid #d5dde1; }

/* Plan link dans le tableau des lots */
.lots-table .td-action .js-plan-link { margin-right: 12px; }

/* ── Tri des résultats (toolbar listing) ──────────────────────── */
.listing-sort { display: flex; align-items: center; gap: 8px; margin-right: auto; }
.listing-sort__label { font-size: .85rem; color: var(--text-muted, #5a6b73); }
.listing-sort__select {
  padding: 7px 30px 7px 12px; border: 1px solid #d5dde1; border-radius: 8px;
  background: #fff; font-size: .88rem; font-family: inherit; cursor: pointer;
  appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path d='M2 4l4 4 4-4' fill='none' stroke='%230e8094' stroke-width='1.6'/></svg>");
  background-repeat: no-repeat; background-position: right 10px center;
}
.listing-sort__select:focus { outline: none; border-color: var(--teal, #0e8094); }

/* ================================================================
   ESPACE COMPTE — Mon profil / Mes alertes / Mes documents (DS v2)
   ================================================================ */
.hero-banner--account { display: flex; align-items: center; }

.account-nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  max-width: 1180px;
  margin: 26px auto 18px;
  padding: 0 20px;
  border-bottom: 1px solid #e3e9ec;
}
.account-nav__tab {
  padding: 12px 20px;
  font-weight: 600;
  font-size: .98rem;
  color: var(--text-muted, #5a6b73);
  text-decoration: none;
  border-bottom: 3px solid transparent;
  margin-bottom: -1px;
}
.account-nav__tab:hover { color: var(--teal, #0e8094); }
.account-nav__tab.is-active { color: var(--teal, #0e8094); border-bottom-color: var(--orange, #f08a24); }
.account-nav__logout {
  margin-left: auto;
  font-size: .85rem;
  color: var(--text-muted, #5a6b73);
  text-decoration: underline;
}

.account-grid {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 26px;
  max-width: 1180px;
  margin: 0 auto 50px;
  padding: 0 20px;
}
@media (max-width: 900px) { .account-grid { grid-template-columns: 1fr; } }

.account-card {
  background: #fff;
  border: 1px solid #e3e9ec;
  border-radius: 14px;
  padding: 26px 28px;
  margin-bottom: 22px;
  box-shadow: 0 2px 10px rgba(20,40,50,.04);
}
.account-card--full { max-width: 1180px; margin: 0 auto 50px; }
.account-card__title { font-size: 1.18rem; color: var(--teal, #0e8094); margin: 0 0 18px; font-weight: 700; }
.account-card__sub { color: var(--text-muted, #5a6b73); font-size: .92rem; margin: -10px 0 18px; }

.account-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.account-form-grid .form-field--full { grid-column: 1 / -1; }
@media (max-width: 600px) { .account-form-grid { grid-template-columns: 1fr; } }

.account-page .account-card input[type="text"],
.account-page .account-card input[type="email"],
.account-page .account-card input[type="tel"],
.account-page .account-card input[type="password"],
.account-page .account-card select {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid #d5dde1;
  border-radius: 8px;
  font-size: .95rem;
  font-family: inherit;
  background: #fff;
  box-sizing: border-box;
}
.account-page .account-card input:focus,
.account-page .account-card select:focus {
  outline: none; border-color: var(--teal, #0e8094); box-shadow: 0 0 0 3px rgba(14,128,148,.12);
}
.account-page .account-card label { display:block; font-size:.82rem; font-weight:600; margin-bottom:4px; color: var(--text,#1d2b32); }
.account-submit { margin-top: 18px; min-width: 220px; }

/* Conseiller */
.account-advisor { background:#fff; border:1px solid #e3e9ec; border-radius:14px; padding:24px; position:sticky; top:90px; }
.account-advisor__title { font-weight:700; color: var(--teal,#0e8094); margin:0 0 16px; }
.account-advisor__card { text-align:center; }
.account-advisor__avatar {
  width:72px; height:72px; border-radius:50%; margin:0 auto 12px;
  background: var(--teal,#0e8094); color:#fff; font-weight:700; font-size:1.4rem;
  display:flex; align-items:center; justify-content:center; overflow:hidden;
}
.account-advisor__avatar img { width:100%; height:100%; object-fit:cover; }
.account-advisor__name { font-weight:700; margin:0 0 10px; }
.account-advisor__line { display:flex; align-items:center; justify-content:center; gap:7px; margin:6px 0; color: var(--teal,#0e8094); text-decoration:none; font-size:.95rem; }
.account-advisor__line img { height:18px; }
.account-advisor__empty { color: var(--text-muted,#5a6b73); font-size:.9rem; line-height:1.5; }

/* Tableau alertes */
.account-table .td-action { text-align:right; }
.account-table__del { color:#b3261e; font-weight:600; text-decoration:none; font-size:.9rem; }
.account-table__del:hover { text-decoration:underline; }

/* État vide */
.account-empty { text-align:center; padding:30px 10px; color: var(--text-muted,#5a6b73); }
.account-empty__sub { font-size:.9rem; margin:8px 0 20px; }

/* elFinder dans la carte */
.account-card .elfinder { border-radius:10px; }

/* Carte conseiller centrée */
.account-advisor { text-align: center; }
.account-advisor__title { text-align: center; }

/* ── Bouton "Enregistrer cette recherche" (alerte coeur) ──────── */
.save-alert-btn {
  display: inline-flex; align-items: center; gap: 8px;
  margin-left: 14px; padding: 8px 16px;
  background: #fff; border: 1px solid var(--orange, #f08a24); border-radius: 22px;
  color: var(--orange, #f08a24); font-weight: 600; font-size: .9rem; cursor: pointer;
  transition: background .15s, color .15s;
}
.save-alert-btn:hover { background: var(--orange, #f08a24); color: #fff; }
.save-alert-btn__heart { fill: currentColor; }
.save-alert-btn.is-saved { background: var(--orange, #f08a24); color: #fff; border-color: var(--orange, #f08a24); cursor: default; }
.save-alert-btn:disabled { opacity: .7; }

.alert-toast {
  position: fixed; left: 50%; bottom: 28px; transform: translate(-50%, 20px);
  background: var(--teal, #0e8094); color: #fff; padding: 14px 22px; border-radius: 10px;
  box-shadow: 0 6px 24px rgba(0,0,0,.18); font-size: .95rem; z-index: 9999;
  opacity: 0; transition: opacity .3s, transform .3s; max-width: 90vw; text-align: center;
}
.alert-toast.is-show { opacity: 1; transform: translate(-50%, 0); }

/* ── GED documents ────────────────────────────────────────────── */
.ged-flash { padding: 11px 16px; border-radius: 8px; margin-bottom: 16px; font-size: .92rem; }
.ged-flash--ok { background: #e6f4ec; color: #1c7a45; border: 1px solid #b7e0c6; }
.ged-flash--err { background: #fdecec; color: #b3261e; border: 1px solid #f4c4c1; }
.ged-upload { display: flex; flex-direction: column; gap: 14px; margin-bottom: 26px; }
.ged-drop {
  display: flex; flex-direction: column; align-items: center; gap: 6px;
  padding: 30px 20px; border: 2px dashed #c3d0d6; border-radius: 12px;
  background: #f7fafb; cursor: pointer; text-align: center; transition: border-color .15s, background .15s;
}
.ged-drop:hover { border-color: var(--teal, #0e8094); background: #f0f7f9; }
.ged-drop__icon { height: 34px; opacity: .7; margin-bottom: 4px; }
.ged-drop__text { font-size: .98rem; color: var(--text, #1d2b32); }
.ged-drop__text strong { color: var(--teal, #0e8094); }
.ged-drop__hint { font-size: .8rem; color: var(--text-muted, #5a6b73); }
.ged-drop__input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.ged-upload__btn { align-self: flex-start; min-width: 220px; }
.ged-table .ged-link { color: var(--teal, #0e8094); font-weight: 600; text-decoration: none; margin-right: 14px; }
.ged-table .ged-link:hover { text-decoration: underline; }

/* ── GED upload : drag-over + spinner ─────────────────────────── */
.ged-drop.is-dragover { border-color: var(--orange, #f08a24); background: #fff5ec; }
.ged-loading { display: flex; align-items: center; gap: 10px; color: var(--teal, #0e8094); font-weight: 600; padding: 8px 2px; }
.ged-loading[hidden] { display: none; }
.ged-spinner {
  width: 18px; height: 18px; border: 3px solid #d5e4e8; border-top-color: var(--teal, #0e8094);
  border-radius: 50%; display: inline-block; animation: ged-spin .7s linear infinite;
}
@keyframes ged-spin { to { transform: rotate(360deg); } }

/* ── Alerte (cloche) + header connecté ───────────────────────── */
.save-alert-btn__bell { fill: currentColor; }
.hdr-account--connected { color: var(--teal, #0e8094); font-weight: 700; }
.hdr-account__dot { display:inline-block; width:8px; height:8px; border-radius:50%; background:#2ec16a; margin-right:6px; vertical-align:middle; }
.hdr-bump { animation: hdr-bump .6s ease; }
@keyframes hdr-bump { 0%{transform:scale(1)} 30%{transform:scale(1.18)} 60%{transform:scale(.96)} 100%{transform:scale(1)} }

/* ── Validation inline ───────────────────────────────────────── */
.field-error { display:block; margin-top:4px; color:#b3261e; font-size:.8rem; }
.modal--cta .is-invalid, .account-page .is-invalid, .cta-form .is-invalid { border-color:#e0524b !important; box-shadow:0 0 0 3px rgba(224,82,75,.12) !important; }

/* ── Visuel par défaut ineuf quand pas de photo programme ─────── */
.ph,
.program-img.ph,
.map-card__img.ph {
  background: #d5d9dc url('../img/ineuf-default-program.jpg') center/cover no-repeat !important;
}
.detail-gallery--empty {
  background: url('../img/ineuf-default-program.jpg') center/cover no-repeat;
  min-height: 360px;
}
.detail-gallery--empty::after { content: ""; }

.account-advisor__picto { height:18px; vertical-align:middle; margin-right:6px; opacity:.85; }

.account-advisor__ico { vertical-align:middle; margin-right:5px; }
.account-advisor__line { color: var(--teal,#0e8094); }

/* Accessibilite : lien d'evitement (visible au focus clavier) */
.skip-link{position:absolute;left:-9999px;top:0;z-index:1000;background:var(--teal,#0e8094);color:#fff;padding:10px 16px;border-radius:0 0 8px 0;font-weight:600;text-decoration:none}
.skip-link:focus{left:0}

/* ============ PAGINATION LISTINGS (DS v2 — partial _pagination_v2) ============ */
.pagination { margin-top: 32px; flex-wrap: wrap; }
.pagination__link {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 36px; height: 36px; padding: 0 12px;
  border: 1px solid var(--border); border-radius: var(--radius-sm);
  color: var(--text); text-decoration: none; font-size: var(--fs-14);
  font-weight: 700; background: var(--white); transition: all .15s;
}
.pagination__link:hover { border-color: var(--orange); color: var(--orange-text); }
.pagination__link.is-active { background: var(--orange); border-color: var(--orange); color: var(--white); cursor: default; }
.pagination__link.is-disabled { opacity: .4; pointer-events: none; }
.pagination__nav { font-weight: 800; }
.pagination__ellipsis { display: inline-flex; align-items: flex-end; padding: 0 4px; color: var(--text-muted); }

/* ================= WIDGET CHAT (démo bot) ================= */
.ineuf-chat{position:fixed;right:24px;bottom:96px;width:360px;max-width:calc(100vw - 32px);height:520px;max-height:calc(100vh - 140px);background:var(--white);border-radius:16px;box-shadow:0 12px 40px rgba(11,89,102,.28);display:flex;flex-direction:column;overflow:hidden;z-index:1200;opacity:0;transform:translateY(12px);transition:opacity .2s,transform .2s}
.ineuf-chat.is-open{opacity:1;transform:translateY(0)}
.ineuf-chat__head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 16px;background:var(--teal);color:#fff}
.ineuf-chat__head-info{display:flex;align-items:center;gap:10px}
.ineuf-chat__head-info strong{display:block;font-size:14px;line-height:1.1}
.ineuf-chat__status{font-size:11px;opacity:.85}
.ineuf-chat__avatar{width:36px;height:36px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;color:var(--teal);font-weight:900;overflow:hidden}
.ineuf-chat__avatar img{width:24px;height:24px;object-fit:contain}
.ineuf-chat__close{background:transparent;border:0;color:#fff;font-size:24px;line-height:1;cursor:pointer;padding:0 4px}
.ineuf-chat__body{flex:1;overflow-y:auto;padding:16px;background:var(--light-bg);display:flex;flex-direction:column;gap:10px}
.ineuf-chat__msg{max-width:82%;padding:10px 13px;border-radius:14px;font-size:13.5px;line-height:1.4;word-wrap:break-word}
.ineuf-chat__msg a{color:var(--orange-text);font-weight:700}
.ineuf-chat__msg--bot{align-self:flex-start;background:#fff;color:var(--text);border-bottom-left-radius:4px;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.ineuf-chat__msg--user{align-self:flex-end;background:var(--orange);color:#fff;border-bottom-right-radius:4px}
.ineuf-chat__msg--user a{color:#fff;text-decoration:underline}
.ineuf-chat__typing{display:flex;gap:4px;align-items:center}
.ineuf-chat__typing span{width:7px;height:7px;border-radius:50%;background:var(--text-muted);animation:ineufBlink 1s infinite}
.ineuf-chat__typing span:nth-child(2){animation-delay:.2s}
.ineuf-chat__typing span:nth-child(3){animation-delay:.4s}
@keyframes ineufBlink{0%,60%,100%{opacity:.25}30%{opacity:1}}
.ineuf-chat__quick{display:flex;flex-wrap:wrap;gap:6px;padding:8px 12px;background:var(--light-bg);border-top:1px solid var(--border)}
.ineuf-chat__chip{border:1px solid var(--teal);background:#fff;color:var(--teal);border-radius:18px;padding:6px 12px;font-size:12px;font-weight:700;cursor:pointer;font-family:inherit;transition:all .15s}
.ineuf-chat__chip:hover{background:var(--teal);color:#fff}
.ineuf-chat__input{display:flex;align-items:center;gap:8px;padding:10px 12px;background:#fff;border-top:1px solid var(--border)}
.ineuf-chat__input input{flex:1;border:1px solid var(--border);border-radius:20px;padding:9px 14px;font-size:13px;font-family:inherit;outline:none}
.ineuf-chat__input input:focus{border-color:var(--teal)}
.ineuf-chat__send{width:38px;height:38px;flex:0 0 38px;border:0;border-radius:50%;background:var(--orange);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer}
.ineuf-chat__send:hover{background:var(--orange-dk,#b8480f)}
@media(max-width:480px){.ineuf-chat{right:12px;left:12px;bottom:84px;width:auto;height:70vh}}

/* ============ COMMODITÉS À PROXIMITÉ (OSM) ============ */
.amenities-section .amenities-loading{color:var(--text-light);font-size:13px;padding:10px 0}
.amenities-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px 28px;margin-top:8px}
.amen-cat{break-inside:avoid}
.amen-cat__head{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:800;color:var(--teal-dk,#0a6e6e);margin-bottom:8px;padding-bottom:6px;border-bottom:2px solid var(--light-bg)}
.amen-cat__ico{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--light-bg);color:var(--teal)}
.amen-cat__count{margin-left:auto;font-size:11px;font-weight:700;color:#fff;background:var(--teal);border-radius:10px;padding:1px 8px}
.amen-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:5px 0;font-size:13px;border-bottom:1px solid #f1f4f6}
.amen-row__name{color:var(--text);overflow:hidden;text-overflow:ellipsis}
.amen-row__dist{white-space:nowrap;font-weight:700;color:var(--orange-text);font-size:12px}
.amen-line{display:inline-block;padding:0 5px;border-radius:3px;font-size:10px;font-weight:800;color:#fff;margin-left:3px;line-height:15px;vertical-align:middle}
.amen-note{grid-column:1/-1;font-size:11px;color:var(--text-muted);margin:6px 0 0}
@media(max-width:680px){.amenities-grid{grid-template-columns:1fr}}

/* ============ RESPONSIVE MOBILE (pass 1 — 2026-07) ============ */
.hdr-burger{display:none}
@media (max-width: 860px){
  .site-header__main{display:none;width:100%}
  .hdr-burger{display:flex;flex-direction:column;justify-content:center;gap:5px;position:absolute;top:16px;right:14px;width:44px;height:44px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.35);border-radius:9px;cursor:pointer;z-index:30;padding:0}
  .hdr-burger span{display:block;height:2px;width:22px;margin:0 auto;background:#fff;border-radius:2px;transition:transform .25s, opacity .25s}
  .site-header.is-open .hdr-burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .site-header.is-open .hdr-burger span:nth-child(2){opacity:0}
  .site-header.is-open .hdr-burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .side-icons{display:none}
}
@media (max-width: 700px){
  .hero-banner__title{font-size:34px !important;line-height:1.12}
  .search-box{max-width:100%}
  .search-filters{flex-wrap:wrap}
  .search-filters > *{flex:1 1 45%;min-width:0}
  .search-row2{flex-wrap:wrap;gap:10px}
  .stats-grid{grid-template-columns:repeat(2,1fr);row-gap:24px}
  .programs-grid{grid-template-columns:1fr}
  .detail-header{flex-wrap:wrap;gap:10px}
  .lot-price-block [style*="repeat(4,1fr)"]{grid-template-columns:repeat(2,1fr) !important}
  .amenities-grid{grid-template-columns:1fr}
  .lot-cta-row{flex-direction:column}
  .lot-cta-row .btn-action{width:100%;text-align:center}
  .article-cta-bar{flex-direction:column;gap:10px}
  .article-cta-bar .btn{width:100%;text-align:center}
}

/* ============ RESPONSIVE MOBILE (pass 2 — anti-overflow + clics 2026-07) ============ */
html, body { overflow-x: clip; max-width: 100%; }
*, *::before, *::after { box-sizing: border-box; }
@media (max-width: 900px){
  .why-grid, .news-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 860px){
  /* Le menu burger remplace la barre sticky ; on l'enlève (source d'overflow + recouvrement) */
  .sticky-nav { display: none !important; }
  /* Badge reCAPTCHA v3 : masqué sur mobile pour éviter le débordement horizontal (v3 reste actif) */
  .grecaptcha-badge { display: none !important; }
}
@media (max-width: 700px){
  .why-grid, .news-grid { grid-template-columns: 1fr; }
  .section-inner, .listing-section, .page-layout { max-width: 100%; }
  /* Champs des modales : jamais plus larges que la modale */
  .modal--cta input, .modal--cta select, .modal--cta textarea { max-width: 100%; width: 100%; }
  .modal--cta .form-field { min-width: 0; }
}

/* ============ MOBILE pass 3 — offcanvas (designer ineuf-mobile) + footer + search ============ */
@media (max-width: 860px){
  /* Menu = tiroir gauche (offcanvas) façon index-mobile.html du designer */
  .site-header__main{
    position: fixed; top: 0; left: 0; height: 100vh; height: 100dvh;
    width: 85vw; max-width: 320px; background: var(--hero-bg);
    z-index: 400; transform: translateX(-100%);
    transition: transform .3s cubic-bezier(.4,0,.2,1);
    overflow-y: auto; -webkit-overflow-scrolling: touch;
    display: flex; flex-direction: column; gap: 0;
    padding: 66px 0 24px; box-shadow: 4px 0 24px rgba(0,0,0,.3);
  }
  .site-header.is-open .site-header__main{ transform: translateX(0); }
  .site-header.is-open .site-header__logo{ opacity:0; pointer-events:none; }
  .site-header.is-open::after{ content:''; position: fixed; inset: 0; background: rgba(0,0,0,.5); z-index: 390; }
  .hdr-burger{ z-index: 420; }
  .site-header__topbar{ flex-direction: column; align-items: stretch; gap: 0; padding: 0; min-height: 0; }
  .hdr-search{ margin: 0 20px 10px; }
  .hdr-search input{ width: 100%; border: 1px solid rgba(255,255,255,.35); border-radius: 8px; padding: 9px 10px; }
  .hdr-toplinks{ flex-direction: column; align-items: stretch; gap: 0; }
  .hdr-toplinks a{ padding: 13px 20px; border-bottom: 1px solid rgba(255,255,255,.08); }
  .site-header__nav{ flex-direction: column; gap: 0; margin: 6px 0 0; }
  .site-header__nav a{ padding: 14px 20px; text-align: left; border-bottom: 1px solid rgba(255,255,255,.08); }
}
@media (max-width: 700px){
  .footer-inner{ grid-template-columns: 1fr 1fr; gap: 26px; }
}
@media (max-width: 480px){
  .search-filters{ flex-direction: column; }
  .search-filters > *{ flex: 1 1 auto !important; width: 100%; }
  .footer-inner{ grid-template-columns: 1fr; text-align: center; }
  .footer-brand .footer-socials{ justify-content: center; }
  .section-inner, .listing-section{ padding-left: 16px; padding-right: 16px; }
}

/* FIX CRITIQUE clics : le panneau chat fermé doit être display:none (pas opacity:0),
   sinon il reste dans la couche de hit-test et bloque les clics (bas-droite desktop / tout l'écran mobile). */
.ineuf-chat[hidden]{ display:none !important; }

/* ============ PAGES AUTH (reset / setup mot de passe) — DS v2 ============ */
.auth-card{ max-width: 520px; margin: 0 auto; width: 100%; background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-card); padding: 32px 28px; box-shadow: 0 6px 24px rgba(11,89,102,.06); }
.auth-card .auth-lead{ font-size: 15px; color: var(--text-light); line-height: 1.6; margin-bottom: 18px; }
.auth-card .auth-note{ font-size: 13px; color: var(--text-muted); margin-top: 14px; }
.auth-card .auth-note a, .auth-card a{ color: var(--teal); text-decoration: underline; }
.auth-alert{ background: #fde8e0; border: 1px solid #f6b9a3; color: #b8480f; border-radius: var(--radius-sm); padding: 10px 14px; font-size: 13px; margin-bottom: 16px; }
.auth-form label{ display: block; font-size: 13px; font-weight: 700; color: var(--text); margin: 12px 0 6px; }
.auth-form input{ width: 100%; border: 1.5px solid var(--border); border-radius: var(--radius-sm); padding: 12px 14px; font-family: inherit; font-size: 14px; color: var(--text); outline: none; }
.auth-form input:focus{ border-color: var(--teal); }
.auth-form .form-text, .auth-form .help-text{ font-size: 12px; color: var(--text-muted); margin-top: 4px; }
.auth-form ul li, .auth-form .invalid-feedback{ color: #b8480f; font-size: 12px; }
.auth-submit{ margin-top: 20px; min-width: 160px; }

/* ============ MOBILE pass 4 — correctifs signalés ============ */
@media (max-width: 860px){
  .scroll-top{ display: none !important; }           /* retire la flèche remonter en haut sur mobile */
  .chat-bubble{ width: 48px; height: 48px; }         /* bulle chat plus petite */
  .chat-bubble svg, .chat-bubble img{ width: 20px; height: 20px; }
  /* hero : image stable au drag du slider (pas de background fixed qui saute) */
  .hero-full{ background-attachment: scroll !important; }
}
@media (max-width: 700px){
  .stats-grid{ grid-template-columns: repeat(2, 1fr) !important; }
  /* valeur budget : largeur stable pour éviter le reflow pendant le drag */
  .budget-value, .budget-val-mobile{ min-width: 120px; display: inline-block; text-align: right; }
  .budget-slider{ touch-action: none; }
}

/* FIX stats mobile : la base .stats-grid est display:flex → grid-template-columns était ignoré.
   On force la grille 2x2 sur mobile (et on neutralise le max-width large). */
@media (max-width: 700px){
  .stats-grid{ display: grid !important; grid-template-columns: repeat(2, 1fr) !important; max-width: 100% !important; row-gap: 24px; column-gap: 8px; }
  .stats-grid .stat-item{ flex: none !important; width: auto !important; }
}

/* ============ RETOURS ANTHONY (r62) ============ */
/* Bouton WhatsApp */
.btn-wa{ display:inline-flex; align-items:center; justify-content:center; gap:8px; background:#25D366; color:#fff; border:none; border-radius:var(--radius); padding:11px 16px; font-family:inherit; font-size:14px; font-weight:700; text-decoration:none; transition:background .2s; cursor:pointer; }
.btn-wa:hover{ background:#1da851; color:#fff; }
.btn-wa svg{ flex:none; }

/* Bulle chat + scroll-top : retirer le contour noir (bordure UA du <button>) */
.chat-bubble, .scroll-top{ border:none !important; outline:none; -webkit-tap-highlight-color:transparent; padding:0; }
.chat-bubble:focus, .chat-bubble:focus-visible, .scroll-top:focus{ outline:none; }

/* Modales CTA plus compactes (éviter l'ascenseur interne) */
.modal--cta{ padding:22px 22px; }
.modal--cta .modal__title{ margin-bottom:6px; }
.modal--cta .modal__sub{ margin:0 0 12px; font-size:.86rem; }
.modal--cta .form-field{ margin-bottom:8px; }
.modal--cta .form-field label{ margin-bottom:3px; font-size:12px; }
.modal--cta input, .modal--cta select, .modal--cta textarea{ padding:9px 11px; font-size:13px; }
.modal--cta textarea{ min-height:66px; }
.modal--cta .form-field--inline{ margin-bottom:6px; }

@media (max-width: 700px){
  /* Boutons CTA programme/lot plus gros et lisibles */
  .btn-action{ padding:13px 18px !important; font-size:14px !important; }
  .lot-cta-row{ flex-direction:column; gap:8px; }
  .lot-cta-row .btn-action{ width:100%; }
  .detail-actions .btn, .detail-cta .btn{ padding:13px 18px; font-size:14px; width:100%; }

  /* Fil d'ariane simplifié : Accueil › page courante */
  .breadcrumb{ font-size:11px; flex-wrap:nowrap; align-items:center; }
  .breadcrumb > a:not(:first-of-type){ display:none; }
  .breadcrumb > .breadcrumb__sep{ display:none; }
  .breadcrumb > a:first-of-type::after{ content:' › '; color:var(--text-muted); }
  .breadcrumb__current{ display:inline; white-space:normal; }

  /* modale : occupe la largeur, moins de scroll */
  .modal--cta{ width: 94vw; max-height: 90vh; }
}

/* Anti-blanc : galerie vide ne réserve plus 420px ; nettoyage sauts de ligne début de description */
.detail-gallery:empty{ display:none !important; }
.detail-gallery--empty{ min-height:0 !important; display:none !important; }
.detail-description > br:first-child, .detail-description > p:empty{ display:none; }
.detail-description :first-child{ margin-top:0 !important; }

/* ── Carrousel programmes à la Une (home) — slides de 3, dots fonctionnels ── */
/* 03/07 : plus de bande qui traine — le padding horizontal laissait voir la carte voisine */
.programs-carousel{overflow:hidden;max-width:var(--inner,1120px);margin:0 auto var(--sp-32,32px);padding:4px 0}
.programs-slide{padding:0 4px;box-sizing:border-box}
.programs-track{display:flex;transition:transform .45s cubic-bezier(.4,.0,.2,1);will-change:transform}
/* 04/07 : stretch — les cartes restent alignees quelle que soit la hauteur du contenu */
.programs-slide{flex:0 0 100%;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-20,20px);align-items:stretch}
.programs-slide .program-card,.programs-grid .program-card{height:100%}
.carousel-dots .dot{cursor:pointer;transition:background .2s,transform .2s}
.carousel-dots .dot:hover{background:rgba(255,255,255,.75)}
.carousel-dots .dot.active{transform:scale(1.15)}
@media (max-width:900px){ .programs-slide{grid-template-columns:1fr;gap:16px} }

/* Mention légale reCAPTCHA : affichée seulement quand le badge est masqué (mobile <=860px), ToS Google */
.recaptcha-legal{display:none;max-width:1120px;margin:6px auto 0;padding:0 var(--gutter,20px);font-size:.72rem;line-height:1.5;color:rgba(255,255,255,.6);text-align:center}
.recaptcha-legal a{color:rgba(255,255,255,.8);text-decoration:underline}
@media (max-width:860px){ .recaptcha-legal{display:block} }

/* ---- 02/07 : bannière par défaut des pages internes (maquette IMAGE-PAGE_HEADING) ---- */
.hero-full--banner{ background-image:linear-gradient(rgba(23,54,66,.60),rgba(23,54,66,.38)),url('/img/hero-home-desktop.jpg'); background-size:cover; background-position:center 60%; }

/* ---- 02/07 : accordéons géo DS (Où habiter / investir) ---- */
.geo-accordion{ display:flex; flex-direction:column; gap:14px; margin-bottom:36px; }
.geo-accordion details{ border:1px solid #e6ebef; border-radius:10px; background:#fff; overflow:hidden; }
.geo-accordion summary{ list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px 20px; font-weight:700; }
.geo-accordion summary::-webkit-details-marker{ display:none; }
.geo-region>summary{ background:var(--teal); color:#fff; }
.geo-dpt{ margin:10px 0; }
.geo-dpt>summary{ background:#ecf1f4; color:var(--text); font-size:.95rem; }
.geo-toggle:before{ content:'+'; font-size:1.5rem; line-height:1; font-weight:400; }
details[open]>summary .geo-toggle:before{ content:'\2212'; }
.geo-region__body{ padding:14px 20px; }
.geo-dpt__body{ padding:10px 18px; }
.geo-region__all{ margin:4px 0 10px; }
.geo-region__all a{ color:var(--orange-text); font-weight:700; text-decoration:none; }
.geo-cities{ list-style:none; margin:0; padding:0; columns:2; column-gap:32px; }
.geo-cities li{ padding:4px 0; break-inside:avoid; }
.geo-cities a{ color:var(--text); text-decoration:none; }
.geo-cities a:hover{ color:var(--orange-text); }
@media(max-width:700px){ .geo-cities{ columns:1; } }

/* ---- 02/07 : carrousel actualités home (défilé doux) ---- */
.news-carousel{ overflow:hidden; }
.news-track{ display:flex; transition:transform .9s ease; }
.news-slide{ min-width:100%; }
.news-carousel-dots{ display:flex; justify-content:center; gap:8px; margin-top:22px; }
.news-carousel-dots button{ width:10px; height:10px; border-radius:50%; border:0; background:#c9d6dc; cursor:pointer; padding:0; }
.news-carousel-dots button.active{ background:var(--orange); }

/* ---- 02/07 : bandeau promo (Slider admin) ---- */
.promo-slider{ padding:0; }
.promo-slider .promo-viewport{ overflow:hidden; border-radius:0; }
.promo-track{ display:flex; transition:transform .9s ease; }
.promo-slide{ min-width:100%; display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; gap:8px; min-height:180px; padding:30px 20px; color:#fff; text-decoration:none; background:var(--teal-dk); background-size:cover; background-position:center; }
.promo-slide__title{ font-size:1.6rem; font-weight:800; }
.promo-slide__content{ font-size:1rem; opacity:.92; max-width:760px; }
.promo-slide__content p{ margin:0; }

/* ---- 02/07 : compteur sélection sur side-icons ---- */
.side-icon{ position:relative; }
.side-count{ position:absolute; top:-5px; right:-5px; background:var(--orange); color:#fff; font-size:11px; font-weight:700; border-radius:50%; min-width:18px; height:18px; display:flex; align-items:center; justify-content:center; padding:0 4px; line-height:1; }

/* promo bouton */
.promo-slide__btn{ margin-top:6px; }


/* ---- 02/07 : HERO SLIDESHOW (Slider admin) — fond + titre crossfade ---- */
.hero-full--home { overflow: hidden; }
.hero-full--home > .hero-slides { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.hero-slide-bg { position: absolute; inset: 0; background-size: cover; background-position: center 42%; opacity: 0; transition: opacity 1.1s ease; }
.hero-slide-bg.is-on { opacity: 1; }
.hero-titles { position: relative; }
.hero-alt-title__main {
  font-size: 52px; font-weight: 800; color: var(--white);
  line-height: 1.15; margin: 0 0 14px; max-width: 1000px;
  text-shadow: 0 2px 16px rgba(0,0,0,.30);
}
.hero-alt-title__sub { color: rgba(255,255,255,.92); font-size: 1.05rem; max-width: 720px; margin: 0 0 18px; text-shadow: 0 1px 10px rgba(0,0,0,.35); }
.hero-alt-title__btn { margin-bottom: 26px; display: inline-block; }
.hero-alt-title { animation: heroTitleIn .8s ease; }
h1[data-hero-title] { animation: heroTitleIn .8s ease; }
@keyframes heroTitleIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@media (max-width: 720px) { .hero-alt-title__main { font-size: 30px; } }


/* ---- SEO/perf 02/07 : rendu differe des cartes hors ecran (listings longs) ---- */
.program-card { content-visibility: auto; contain-intrinsic-size: 0 430px; }
/* ---- bloc texte editorial ville (seoCity) ---- */
.seo-city-text { max-width: var(--inner, 1200px); margin: 40px auto 10px; padding: 0 16px; color: var(--text-light, #56646d); font-size: .92rem; line-height: 1.65; }
.seo-city-text h2, .seo-city-text h3 { color: var(--text, #12333f); margin: 18px 0 8px; font-size: 1.05rem; }
.seo-city-text p { margin: 0 0 10px; }


/* ---- 02/07 : popup carte riche (inspiration marketplace, palette DS) ---- */
.ineuf-map-pop .leaflet-popup-content-wrapper{padding:0;border-radius:14px;overflow:hidden;box-shadow:0 12px 34px rgba(0,0,0,.30)}
.ineuf-map-pop .leaflet-popup-content{margin:0;width:300px!important;line-height:1.4}
.ineuf-map-pop .leaflet-popup-tip{background:#0f3d47}
.ineuf-map-popup{width:300px;background:linear-gradient(165deg,#15505e 0%,#0d3540 100%);color:#fff;font-size:12.5px}
.ineuf-map-popup a{color:#fff;text-decoration:none}
.imp-banner{display:block;height:150px;overflow:hidden;background:#0d3540;line-height:0}
.imp-banner img{width:100%;height:100%;object-fit:cover;display:block}
.imp-body{padding:13px 15px 14px}
.imp-title{font-size:14.5px;font-weight:700;line-height:1.2}
.imp-loc{margin-top:3px;font-size:11.5px;color:rgba(255,255,255,.72)}
.imp-deliv{display:inline-flex;gap:5px;margin-top:9px;padding:4px 10px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);border-radius:20px;font-size:11px;color:rgba(255,255,255,.85)}
.imp-deliv b{color:#ffb27d}
.imp-price{margin-top:10px;line-height:1}
.imp-apd{display:block;font-size:9px;text-transform:uppercase;letter-spacing:1.2px;color:rgba(255,255,255,.6);margin-bottom:3px}
.imp-amount{font-size:21px;font-weight:800}
.imp-typos{margin-top:8px;font-size:11.5px;color:rgba(255,255,255,.85)}
.imp-cta{display:inline-block;margin-top:11px;padding:7px 14px;border-radius:8px;background:var(--orange,#e8762d);font-size:12px;font-weight:700}
.ineuf-map-pop .leaflet-popup-content a.imp-cta,.ineuf-map-pop .leaflet-popup-content a.imp-cta:hover{color:#fff}
.ineuf-map-pop .leaflet-popup-content a{color:#fff}
.imp-typos{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}
.imp-chip{display:inline-block;padding:3px 9px;border-radius:7px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.22);font-size:11px;font-weight:600;color:#fff}
/* trou apres nettoyage description : br de tete residuel */
.detail-description > br:first-child{display:none}


/* ---- 02/07 : clusters de pins (carte) — palette DS ---- */
.ineuf-cluster{width:40px;height:40px;border-radius:50%;background:rgba(21,80,94,.92);border:3px solid #fff;box-shadow:0 3px 10px rgba(0,0,0,.3);display:flex;align-items:center;justify-content:center}
.ineuf-cluster span{color:#fff;font-weight:800;font-size:13px;font-family:inherit}
.leaflet-draw-toolbar a{background-color:#fff}

/* ---- 03/07 : confirmation newsletter lisible (boite blanche, texte sombre) ---- */
.footer-newsletter .cta-form__msg.is-ok{background:#fff;color:#14532d;border:1px solid #b7e0c6;font-weight:700;padding:10px 16px;border-radius:9px}
.footer-newsletter .cta-form__msg.is-err{background:#fff;color:#b3261e;border:1px solid #f4c4c1;font-weight:700;padding:10px 16px;border-radius:9px}


/* ---- 03/07 : chips typologies + loi fiscale sur les cartes programme ---- */
.program-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}
.pc-chip{display:inline-block;padding:3px 9px;border-radius:7px;background:rgba(21,80,94,.08);border:1px solid rgba(21,80,94,.22);font-size:11px;font-weight:700;color:#15505e}
.pc-law{display:inline-block;padding:3px 10px;border-radius:20px;background:var(--orange,#e8762d);font-size:10.5px;font-weight:700;color:#fff}


/* ---- 03/07 : cartes alignées (prix toujours en bas) + pastille loi affinée ---- */
.program-card{display:flex;flex-direction:column}
.program-card .program-info{display:flex;flex-direction:column;flex:1 1 auto}
.program-card .program-footer{margin-top:auto;padding-top:8px}
.program-chips{min-height:0;align-items:center}
.program-chips--laws{margin-top:6px}
.pc-law{padding:3px 9px;border-radius:7px;background:#fff3ec;border:1px solid var(--orange,#e8762d);color:var(--orange-text,#c05a1d);font-size:11px;font-weight:700;line-height:1.5}
/* le carrousel home : aucun voisin ne depasse */
.programs-section{overflow:hidden}
.programs-track{width:100%}

/* ---- 03/07 : la ville ressort sur les cartes ---- */
.pc-city{color:var(--teal-dark,#0f3d47);font-weight:800;font-size:1.05em}

/* ---- 03/07 : droit commun en pastille neutre (comme la marketplace) ---- */
.pc-law--common{background:#f1f5f7;border-color:#c3d3d9;color:#56646d}

/* ---- 03/07 : etat dans le comparateur du bouton carte ---- */
.program-mini-ico.is-cmp{background:#e4f3f6;box-shadow:inset 0 0 0 2px var(--teal,#15505e)}


/* ---- 03/07 : metriques cles en tuiles lisibles ---- */
.detail-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;background:transparent;padding:0;border-top:0;border-bottom:0;border:0;margin-top:0}
.detail-metric{background:#f1f6f8;border:1px solid #dce8ec;border-radius:12px;padding:14px 16px;gap:6px}
.detail-metric__label{font-size:10.5px;letter-spacing:.8px}
.detail-metric__value{font-size:17px;line-height:1.25;color:var(--teal-dark,#0f3d47)}
@media (max-width:720px){.detail-metrics{grid-template-columns:repeat(2,1fr)}}

/* ---- 03/07 : bouton wishlist de la fiche en icone pleine (il etait minuscule) ---- */
.share-btn--inline.js-fav{background:transparent;padding:0;border:0}
.share-btn--inline.js-fav img{width:44px;height:44px}
.share-btn--inline.js-fav.is-fav img,.share-btn--inline.js-fav[aria-pressed=true] img{filter:none}
.share-btn--inline.js-fav.is-fav,.share-btn--inline.js-fav[aria-pressed=true]{box-shadow:0 0 0 2px var(--orange,#e8762d);border-radius:50%}
/* 05/07 : comparateur aligne sur wishlist (meme taille/style sur la fiche) */
.share-btn--inline.js-compare{background:transparent;padding:0;border:0;width:44px;height:44px}
.share-btn--inline.js-compare img{width:44px;height:44px}
.share-btn--inline.js-compare.is-cmp{box-shadow:0 0 0 2px var(--teal,#15505e);border-radius:50%}

/* ---- 03/07 : offre promoteur ---- */
.badge--red{background:#e11d48;color:#fff}
.promo-offer{border:2px solid #e11d48;border-radius:14px;background:#fff5f6;padding:18px 20px;margin-bottom:var(--sp-28,28px)}
.promo-offer__tag{display:inline-block;background:#e11d48;color:#fff;font-size:11px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;border-radius:20px;padding:4px 12px;margin-bottom:10px}
.promo-offer__body{color:#7f1d2d;font-weight:600;line-height:1.5}
.promo-offer__body *{color:inherit !important;text-align:left !important;margin:0 0 6px}
.promo-offer__body ul{padding-left:18px}
.promo-offer__until{margin-top:8px;font-size:.85rem;color:#9f3348}

/* ---- 03/07 : bloc prix moyen — champs centres/alignes + respiration au-dessus ---- */
.price-compare{margin-top:18px;align-items:stretch}
.price-compare__item{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;text-align:center}
.price-compare__label{display:flex;align-items:flex-end;justify-content:center;min-height:2.6em;margin-bottom:6px;line-height:1.3}
.price-compare__value{line-height:1.1}

/* ---- 03/07 : champ taux du simulateur (etait un slider casse mal cale) ---- */
.simu-rate{display:inline-flex;align-items:stretch;border:1px solid #cbd5e1;border-radius:9px;overflow:hidden;margin:10px 0 4px;background:#fff}
.simu-rate input{border:0;outline:none;padding:11px 14px;font-size:17px;font-weight:800;width:96px;color:var(--teal-dark,#0f3d47);text-align:center;-moz-appearance:textfield}
.simu-rate input::-webkit-outer-spin-button,.simu-rate input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.simu-rate__unit{display:flex;align-items:center;background:#f1f5f7;padding:0 16px;font-weight:800;color:#56646d;border-left:1px solid #cbd5e1}


/* ---- 03/07 : asterisque champs obligatoires ---- */
.req-star{color:var(--orange,#e8762d);font-weight:800}

/* ---- 03/07 : simulateurs — les champs se touchaient ---- */
body.simulator .form-group{margin-bottom:22px}
body.simulator .form-group label{display:inline-block;margin-bottom:6px}
body.simulator .row [class*='col-']{margin-bottom:6px}
body.simulator .input-group .form-control{padding:10px 12px}

/* ---- 03/07 : candidature nous-rejoindre au format DS ---- */
.apply-form input:not([type=file]):not([type=submit]):not([type=checkbox]),
.apply-form textarea{width:100%;border:1px solid #cbd5e1;border-radius:9px;padding:11px 14px;font:inherit;font-size:.95rem;color:var(--text,#12333f)}
.apply-form input:focus,.apply-form textarea:focus{outline:none;border-color:#0f766e;box-shadow:0 0 0 3px rgba(15,118,110,.15)}
.apply-form textarea{min-height:130px;resize:vertical}
.apply-form input[type=file]{width:100%;padding:10px;border:1px dashed #cbd5e1;border-radius:9px;background:#f8fafc}


/* ---- 04/07 : chat mobile — plein cadre + hauteur dynamique (clavier virtuel) ---- */
@media (max-width: 640px){
  .ineuf-chat{left:10px;right:10px;bottom:10px;width:auto;max-width:none;
    height:min(560px, calc(100dvh - 20px));max-height:calc(100dvh - 20px)}
  .ineuf-chat__input input{font-size:16px} /* evite le zoom iOS au focus */
}


/* ---- 04/07 : diaporama photos des programmes de la ville (hero listing) ---- */
.hero-full--listing{position:relative}
.hero-city-slides{position:absolute;inset:0;z-index:0;overflow:hidden}
.hero-city-slide{position:absolute;inset:0;background-size:cover;background-position:center;
  opacity:0;transition:opacity 1.6s ease}
.hero-city-slide.is-on{opacity:1}
.hero-city-slides::after{content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(23,54,66,.62) 0%,rgba(23,54,66,.45) 100%)}
.hero-full--listing > .site-header,.hero-full--listing > .hero-banner{position:relative;z-index:1}

/* ---- 04/07 : toolbar resultats en mobile (compteur/alerte/tri empiles proprement) ---- */
@media (max-width: 680px){
  .listing-toolbar{flex-wrap:wrap;gap:10px;row-gap:12px}
  .listing-count{flex:1 1 100%;white-space:normal;line-height:1.4}
  .listing-sort{order:2;flex:1 1 55%;margin-right:0;min-width:0}
  .listing-sort__select{flex:1 1 auto;min-width:0;max-width:100%}
  .save-alert-btn{order:3;flex:1 1 100%;justify-content:center;padding:9px 14px}
  .view-toggle{order:1;margin-left:auto}
}


/* ---- 04/07 : titres embarques dans les descriptions CRM — tailles maitrisees ---- */
.detail-description h1,.detail-description h2,.detail-description h3,.detail-description h4{
  font-size:16px;line-height:1.35;margin:18px 0 8px;color:var(--teal-dark,#0f3d47)}
.detail-description h1:first-child,.detail-description h2:first-child,
.detail-description h3:first-child{margin-top:0}


/* ---- 04/07 : tableaux cle/valeur (page lot) — jamais de scroll lateral ---- */
.lots-table--kv{min-width:0 !important}
.lots-table--kv td{white-space:normal;word-break:break-word}
@media (max-width:680px){
  .lots-table--kv td{padding:9px 10px;font-size:13px}
}

/* ---- 04/07 : CTA mis en avant ---- */
.btn-action--primary{background:var(--orange,#e8762d) !important;color:#fff !important;
  border-color:var(--orange,#e8762d) !important;font-weight:800;box-shadow:0 6px 18px rgba(232,118,45,.35)}
.btn-action--primary:hover{filter:brightness(1.06)}
.btn-lot-more{display:inline-block;background:var(--orange,#e8762d);color:#fff !important;font-weight:700;
  font-size:12.5px;padding:7px 14px;border-radius:20px;white-space:nowrap;text-decoration:none}
.btn-lot-more:hover{filter:brightness(1.06);text-decoration:none}
@media (max-width:680px){
  .lot-cta-row{display:flex;flex-direction:column;gap:10px}
  .lot-cta-row .btn-action{width:100%;text-align:center;padding:13px 16px;font-size:15px}
}

/* ---- 04/07 : tableau des lots (page programme) en CARTES sur mobile ---- */
@media (max-width:680px){
  .lots-table{min-width:0}
  .lots-table thead{display:none}
  .lots-table tr{display:grid;grid-template-columns:repeat(3,1fr);gap:4px 10px;
    padding:12px 14px;border-bottom:1px solid #e2e8f0}
  .lots-table tr:hover td{background:transparent}
  .lots-table td{display:block;border:none;padding:2px 0;font-size:13px}
  .lots-table td[data-label]::before{content:attr(data-label);display:block;
    font-size:9.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:#7b8b92}
  .lots-table td.td-price{color:var(--orange-text,#c05a1d);font-weight:800}
  .lots-table .td-action{grid-column:1 / -1;display:flex;align-items:center;gap:14px;margin-top:8px}
  .lots-table .td-action .js-plan-link{margin-right:0}
  /* les tableaux cle/valeur gardent leur affichage 2 colonnes classique */
  .lots-table--kv tr{display:table-row;padding:0;border-bottom:0}
  .lots-table--kv td{display:table-cell;padding:9px 10px;border-bottom:1px solid var(--border,#e2e8f0)}
}


/* ---- 04/07 : burger mobile — ancrage, contraste, menu plein ecran ---- */
@media (max-width: 860px){
  /* ancre le burger au header lui-meme (il derivait selon les pages) */
  .site-header{position:relative}
  /* pastille contrastee : visible sur hero photo COMME sur header blanc */
  .hdr-burger{background:rgba(15,61,71,.80);border-color:rgba(255,255,255,.25)}
  /* menu ouvert = panneau PLEIN ECRAN opaque (fini le chevauchement avec la recherche) */
  .site-header.is-open{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1300;
    background:rgba(13,38,48,.985);overflow:auto;padding:14px 14px 34px}
  .site-header.is-open .hdr-burger{position:fixed;top:16px;right:14px;background:rgba(255,255,255,.16)}
  .site-header.is-open{display:flex;flex-direction:column;align-items:stretch}
  .site-header.is-open .site-header__main{background:transparent;margin-top:10px;padding:8px 2px}
  .site-header.is-open .site-header__logo{position:relative;z-index:1;display:block;margin:4px auto 10px}
}


/* ---- 04/07 : liens selection/comparateur du menu (mobile uniquement) ---- */
.nav-mobile-only{display:none}
@media (max-width:860px){
  .site-header.is-open .nav-mobile-only{display:block;font-weight:700}
  .js-wl-count-menu:not(:empty),.js-cmp-count-menu:not(:empty){display:inline-block;min-width:20px;
    text-align:center;background:var(--orange,#e8762d);color:#fff;border-radius:10px;font-size:11px;padding:1px 6px;margin-left:6px}
}

/* ---- 04/07 : formulaire alerte (espace compte) ---- */
.alert-form-card{margin-top:26px;padding:20px;border:1px solid var(--border,#e2e8f0);border-radius:14px;background:#f8fbfc}
.alert-form-card__title{margin:0 0 14px;font-size:17px;color:var(--teal-dark,#0f3d47)}
.alert-form{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;align-items:end}
.alert-form .form-field label{display:block;font-size:13px;font-weight:600;color:var(--text,#12333f)}
.alert-form input,.alert-form select{width:100%;margin-top:5px;border:1px solid #cbd5e1;border-radius:9px;padding:10px 12px;font:inherit;font-size:.95rem;background:#fff}
.alert-form__actions{grid-column:1/-1;display:flex;gap:12px;align-items:center}
.alert-form__msg{grid-column:1/-1;color:#b42318;font-size:13px}
@media (max-width:680px){.alert-form{grid-template-columns:1fr}}
.js-alert-edit{background:none;border:0;cursor:pointer;padding:0;margin-right:12px}


/* ---- 04/07 : home mobile — le header retrecissait (flex column + margin auto) ---- */
@media (max-width: 860px){
  .hero-full--home > .site-header{width:100%;max-width:none}
}

/* ---- 04/07 : vol vers burger / icone laterale a l'ajout selection-comparateur ---- */
.fly-dot{position:fixed;z-index:2000;width:30px;height:30px;border-radius:50%;
  background:var(--orange,#e8762d);box-shadow:0 3px 14px rgba(232,118,45,.6);
  pointer-events:none;display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:15px;font-weight:800;
  transition:transform 1.25s cubic-bezier(.3,.75,.45,1), opacity 1.25s ease}
.hdr-burger.pop{animation:ineuf-pop .5s ease}
@keyframes ineuf-pop{0%{transform:scale(1)}40%{transform:scale(1.25)}100%{transform:scale(1)}}


/* ---- 04/07 : burger FIXE au scroll (mobile), legere transparence ---- */
@media (max-width: 860px){
  .hdr-burger{position:fixed;top:16px;right:14px;transition:background .25s, opacity .25s}
  .hdr-burger.is-scrolled{background:rgba(15,61,71,.55);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);opacity:.88}
  .hdr-burger.is-scrolled:hover,.hdr-burger.is-scrolled:active{opacity:1;background:rgba(15,61,71,.85)}
}


/* ---- 04/07 : mini-icones selection/comparateur (mobile) — fixes comme le burger ---- */
.mobile-quick{display:none}
@media (max-width: 860px){
  .mobile-quick{display:flex;flex-direction:column;gap:10px;position:fixed;top:72px;right:14px;z-index:1250;
    transition:opacity .25s}
  .mq-btn{position:relative;display:flex;align-items:center;justify-content:center;width:44px;height:44px;
    background:#fff;border-radius:50%;box-shadow:0 3px 12px rgba(11,89,102,.28);
    transition:background .25s, opacity .25s}
  .mq-btn img{width:44px;height:44px;border-radius:50%}
  .mq-btn .side-count{position:absolute;top:-6px;right:-6px;background:var(--orange,#e8762d);color:#fff;
    min-width:18px;height:18px;line-height:18px;text-align:center;border-radius:9px;font-size:11px;font-weight:800;padding:0 4px}
  .mobile-quick.is-scrolled .mq-btn{opacity:.82}
  .mq-btn.pop{animation:ineuf-pop .5s ease}
  /* le panneau menu ouvert passe au-dessus (z 1300) */
}


/* ---- 04/07 : flash orange de la cible a l'arrivee du vol ---- */
.hdr-burger.flash,.mq-btn.flash,.side-icon.flash{background:var(--orange,#e8762d) !important;
  box-shadow:0 0 0 6px rgba(232,118,45,.30) !important;transition:background .2s, box-shadow .2s}


/* ---- 04/07 : pastille du vol avec la vraie icone ---- */
.fly-dot{background:transparent !important;box-shadow:none !important}
.fly-dot img{width:30px;height:30px;border-radius:50%;box-shadow:0 3px 14px rgba(232,118,45,.55)}
/* mini-icone masquee quand liste vide */
.mq-btn.mq-empty{display:none !important}

/* ---- 04/07 : Ma selection — les gutters imbriques ecrasaient les cartes ---- */
.wishlist-page .programs-grid{padding-inline:0;max-width:none}

/* 06/07 : bouton "Chatter maintenant" en contraste sur le fond orange de la sidebar (retour client) */
.sidebar-chat .btn-orange{background:#fff !important;color:#e8762d !important;border:0;font-weight:700;box-shadow:0 3px 10px rgba(0,0,0,.15)}
.sidebar-chat .btn-orange:hover{background:#fff5ee !important;color:#d9691f !important}


/* 07/07 retour client #1 : alignement en-tete/recherche */
/* En-tete et bloc recherche partagent --hero-w : ils restent alignes
   a toutes les tailles et s'elargissent ensemble sur grand ecran. */
@media (min-width: 1600px) { :root { --hero-w: 1200px; } }

/* 07/07 retour client #6 : actus home 4x4 (16) + CTA proeminent */
.news-grid { grid-template-columns: repeat(4, 1fr) !important; }
@media (max-width:1100px){ .news-grid { grid-template-columns: repeat(3, 1fr) !important; } }
@media (max-width:900px){ .news-grid { grid-template-columns: repeat(2, 1fr) !important; } }
@media (max-width:600px){ .news-grid { grid-template-columns: 1fr !important; } }
.news-all-btn { margin-top: 30px; }
.news-all-cta { font-size: 16px; font-weight: 800; padding: 15px 34px; border-radius: 999px; box-shadow: 0 8px 22px rgba(237,108,57,.28); }
.news-all-cta:hover { transform: translateY(-2px); }

/* 07/07 retour client #7 : marquee promoteurs (defilement infini, pause au survol) */
.partners-marquee { overflow: hidden; width: 100%; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.partners-track { display: flex; align-items: center; gap: 64px; width: max-content; animation: partners-scroll 55s linear infinite; will-change: transform; backface-visibility: hidden; transform: translateZ(0); }
.partners-marquee:hover .partners-track { animation-play-state: paused; }
.partners-track .partner-logo { flex: 0 0 auto; background: transparent; border: 0; box-shadow: none; padding: 0; }
.partners-track .partner-logo img { height: 56px !important; width: auto !important; max-width: 240px !important; object-fit: contain; filter: none; opacity: 1; }
@keyframes partners-scroll { from { transform: translate3d(0,0,0); } to { transform: translate3d(-50%,0,0); } }
@media (prefers-reduced-motion: reduce) { .partners-track { animation: none; flex-wrap: wrap; justify-content: center; } }

/* 07/07 retour client : /nous-rejoindre — cadrage haut + banniere plus haute pour ne pas couper les tetes */
body.join-page .hero-full--banner { background-position: center top; }
body.join-page .hero-full--listing { background-position: center top !important; }
body.join-page .hero-full--listing .hero-banner--listing { min-height: 460px; }
@media (max-width:760px){ body.join-page .hero-full--listing .hero-banner--listing { min-height: 380px; } }

/* 07/07 retour client : /contact — visuel couple, cadrage sur les visages */
body.contact-page .hero-full--banner { background-size: cover; background-position: center 25% !important; }
body.contact-page .hero-full--banner .hero-banner { min-height: 460px; }

/* 07/07 retour client : /nous-rejoindre — texte aere + grossi + Raleway + titre engageant */
.join-intro--v2 { font-family: 'Raleway', var(--font); color: var(--text, #0b5966); }
.join-intro__title { font-family: 'Raleway', var(--font); font-size: 32px; font-weight: 800; color: var(--teal); text-align: center; line-height: 1.25; margin: 0 0 32px; }
.join-intro--v2 p { font-size: 17px; line-height: 1.9; margin: 0 0 22px; }
.join-intro--v2 p strong { color: var(--teal-dark, #0f3d47); font-weight: 700; }
@media (max-width:600px){ .join-intro__title { font-size: 25px; } .join-intro--v2 p { font-size: 16px; line-height: 1.85; } }

/* 07/07 retour client : Pourquoi acheter -> diaporama 3x3 */
.why-carousel{overflow:hidden}
.why-track{display:flex;transition:transform .6s ease}
.why-slide{min-width:100%}
.why-dots{display:flex;justify-content:center;gap:9px;margin-top:26px}
.why-dots button{width:10px;height:10px;border-radius:50%;border:0;background:#c9d6dc;cursor:pointer;padding:0;transition:background .2s}
.why-dots button.active{background:var(--orange)}

/* 07/07 : bannière visuel pages statiques (ex Le groupe INEUF) */
body.static-page--hero .hero-full--banner{background-size:cover;background-position:center 18% !important}
body.static-page--hero .hero-full--banner .hero-banner{min-height:560px}

/* ================================================================
   07/07 — retours designer (variable orange-text, padding mobile,
   tailles icones, badge, burger, search-box mobile)
   ================================================================ */
:root { --orange-text: #ed6c39; }               /* etait utilise 21x mais jamais defini */

/* Mobile : padding lateral reduit pour exploiter la largeur */
@media (max-width: 600px) { :root { --gutter: 16px; } }

/* Icones plus grandes (conteneur + image ensemble, sans debordement) */
.side-icon { width: 84px; height: 84px; }
.side-icon img { width: 56px; height: 56px; }
.program-mini-ico { width: 58px; height: 58px; }
.program-mini-ico img { width: 40px; height: 40px; }

/* Badge un peu plus haut */
.badge { padding: 5px 10px; }

/* Barre de recherche : respire en bas sur mobile */
@media (max-width: 860px) { .hero .search-box { padding-bottom: 20px; } }

/* Burger mobile : sans fond ni bordure (juste les 3 traits) */
@media (max-width: 860px) {
  .hdr-burger { background: none !important; border: none !important; }
  .site-header.is-open .hdr-burger { background: none !important; }
  /* 08/07 : halo sombre sur les 3 traits -> visibles sur hero clair (sans cadre) */
  .hdr-burger span { background:#fff; box-shadow:0 0 3px rgba(0,0,0,.9),0 1px 2px rgba(0,0,0,.85); }
}

/* 07/07 : select "Annee de livraison max." tronque sur la barre resultats (etroite) -> padding chevron reduit + select livraison un peu plus large */
.search-filters select { padding: 14px 30px 14px 15px; }
.search-filters select[name="delivery"] { flex-grow: 1.5; min-width: 180px; }
@media (max-width: 700px){ .search-filters select[name="delivery"] { flex-grow: 1; } }

/* ---- 07/07 : specs sur les vignettes programme (livraison / prix m2 / lots dispo) ---- */
.program-specs{display:flex;flex-wrap:wrap;gap:6px 14px;margin:10px 0 2px;
  padding-top:10px;border-top:1px solid #eef2f5;font-size:.79rem;color:#5b6a72;line-height:1.3}
.program-specs .pc-spec{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.program-specs .pc-spec strong{color:#0e3d47;font-weight:800}

/* 07/07 : separateurs entre specs vignette (lisibilite) */
.program-specs{gap:6px 0}
.program-specs .pc-spec:not(:first-child)::before{content:'·';margin:0 11px;color:#c2ccd2;font-weight:800}

/* 08/07 : pages listing actus/dossiers -> visuel de la home en banniere (comme home) */
.news-listing-page .hero-full--banner,
.dossiers-page .hero-full--banner,
.price-page .hero-full--banner,
.account-page .hero-full--banner{
  background-image:url('/img/hero-home-desktop.jpg');
  background-size:cover;background-position:center 60%;
}
.news-listing-page .hero-full--banner .hero-banner,
.dossiers-page .hero-full--banner .hero-banner,
.price-page .hero-full--banner .hero-banner,
.account-page .hero-full--banner .hero-banner{min-height:300px;display:flex;align-items:center}
.news-listing-page .hero-full--banner .hero-banner__title,
.dossiers-page .hero-full--banner .hero-banner__title,
.price-page .hero-full--banner .hero-banner__title,
.account-page .hero-full--banner .hero-banner__title{color:#fff}

/* 08/07 : section Conseillers en mobile -> image plein cadre + voile teal ~50%, texte blanc */
@media (max-width: 760px){
  .advisors-section{ background:#173642; padding:0; }
  .advisors-inner{ grid-template-columns:1fr; position:relative; min-height:0; max-width:none; margin:0; border-radius:0; }
  .advisors-img{ position:absolute; inset:0; height:100%; min-height:0; border-radius:0; overflow:hidden; z-index:0; }
  .advisors-img img{ width:100%; height:100%; object-fit:cover; filter:none; opacity:1; }
  .advisors-img::after{ content:""; position:absolute; inset:0; background:rgba(23,54,66,.52); }
  .advisors-content{ position:relative; z-index:1; padding:48px 24px; }
  .advisors-content h2{ color:#fff; }
  .advisors-content p{ color:rgba(255,255,255,.95); }
  .advisors-availability{ color:rgba(255,255,255,.9) !important; }
}

/* 08/07 : visuel home par defaut sur TOUTES les bannieres (hero-full sauf la home) — couvre guides, annuaire promoteurs, pages CMS sans image, etc. Les pages avec un style inline (image admin/join) l'emportent. */
.hero-full:not(.hero-full--home){
  position:relative;
  background-image:url('/img/hero-home-desktop.jpg');
  background-size:cover; background-position:center 60%;
}
/* voile CLAIR unique pour toutes les bannieres non-home (remplace le ::before fonce) */
.hero-full:not(.hero-full--home)::before{ content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(23,54,66,.40), rgba(23,54,66,.28)); z-index:0; }
.hero-full:not(.hero-full--home) .hero-banner__title{ color:#fff; text-shadow:0 2px 16px rgba(0,0,0,.55); }

/* 08/07 : rendre .hero-banner transparent sur toutes les bannieres (le fond solide recouvrait l'image home) */
.hero-full:not(.hero-full--home) .hero-banner{ background:transparent; min-height:240px; position:relative; z-index:1; }

/* 08/07 : bouton 'Voir toutes les actualites' mobile -> centre, tient dans l'ecran */
@media (max-width: 600px){
  .news-all-btn{ text-align:center; padding:0 16px; }
  .news-all-cta{ display:inline-block; max-width:100%; white-space:normal; text-align:center; line-height:1.3; padding:13px 22px; font-size:14px; }
}

/* 08/07 : formulaire promoteur/partenaire (page /promoteurs) */
.b2b-form{ }
.b2b-alert{ padding:12px 16px; border-radius:10px; margin:0 0 16px; font-weight:600; }
.b2b-alert--ok{ background:#e7f6ec; color:#1a7f3c; border:1px solid #b7e2c4; }
.b2b-alert--err{ background:#fdecec; color:#c0392b; border:1px solid #f4c4c0; }
.promoter-form{ margin-top:18px; }
.pf-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px 20px; }
.promoter-form label{ display:block; font-weight:600; color:#0b5966; font-size:.9rem; }
.promoter-form input,.promoter-form textarea{ display:block; width:100%; margin-top:6px; border:1px solid #cbd5e1; border-radius:9px; padding:11px 13px; font:inherit; font-size:.95rem; color:#12333f; background:#fff; }
.promoter-form input:focus,.promoter-form textarea:focus{ outline:none; border-color:#ed6c39; box-shadow:0 0 0 3px rgba(237,108,57,.15); }
.pf-services{ border:0; padding:0; margin:20px 0 0; }
.pf-services legend{ font-weight:700; color:#0b5966; margin-bottom:12px; padding:0; }
.pf-checks{ display:grid; grid-template-columns:1fr 1fr; gap:16px 28px; }
.promoter-form label.pf-check{ display:flex; flex-direction:row; align-items:center; gap:12px; font-weight:500; color:#334155; cursor:pointer; font-size:.92rem; margin-top:0; }
.promoter-form label.pf-check input{ display:inline-block; width:18px; height:18px; accent-color:#ed6c39; flex:0 0 auto; margin:0; }
.pf-msg{ margin-top:18px; }
.promoter-form .g-recaptcha{ margin:16px 0 0; }
.promoter-form .btn{ margin-top:18px; }
@media (max-width:640px){ .pf-grid,.pf-checks{ grid-template-columns:1fr; } }

/* 08/07 : formulaire promoteur centre */
.b2b-form{ text-align:center; }
.b2b-form .promoter-form{ text-align:left; }
.b2b-form > h2, .b2b-form > p{ text-align:center; }

/* 08/07 : asterisque obligatoire a cote du label (form promoteur) */
.promoter-form label .req-star{ display:inline; }

/* 10/07 : footer collant — supprime la bande blanche sous le footer sur grand ecran (page plus courte que la fenetre) */
body { min-height: 100vh; display: flex; flex-direction: column; }
body > .site-main { flex: 1 0 auto; }
.footer { flex-shrink: 0; }

/* 10/07 : bouton WhatsApp flottant — n'avait AUCUN style, il passait en flux sous le footer (bande blanche). Fixe + rond vert au-dessus de la bulle chat. */
.wa-bubble{ position:fixed; right:30px; bottom:104px; width:52px; height:52px; border-radius:50%; background:#25D366; display:flex; align-items:center; justify-content:center; box-shadow:0 6px 18px rgba(0,0,0,.28); z-index:1000; transition:transform .15s; }
.wa-bubble:hover{ transform:scale(1.06); }
.wa-bubble svg{ width:28px; height:28px; }
@media (max-width:760px){ .wa-bubble{ width:46px; height:46px; right:16px; bottom:92px; } .wa-bubble svg{ width:24px; height:24px; } }

/* 15/07 : alignement des boutons flottants WhatsApp + chat sur un meme axe vertical */
.chat-bubble{ right:24px !important; bottom:24px !important; width:54px !important; height:54px !important; }
.wa-bubble{ right:24px !important; bottom:90px !important; width:54px !important; height:54px !important; left:auto !important; }
@media (max-width:768px){
  .chat-bubble{ right:16px !important; bottom:20px !important; width:50px !important; height:50px !important; }
  .wa-bubble{ right:16px !important; bottom:80px !important; width:50px !important; height:50px !important; }
}

/* 15/07 : badge reCAPTCHA v3 masque PARTOUT (desktop+mobile). Il chevauchait le bouton chat.
   Conforme : la mention legale reCAPTCHA est presente dans le footer (.recaptcha-legal). v3 reste actif. */
.grecaptcha-badge { display: none !important; }
