/* ============================================================
   ImmoVendu — Components (SOURCE DE VÉRITÉ)
   Aucune valeur en dur : tout passe par var(--xxx) de tokens.css.
   Ne jamais éditer assets/css/components.css à la main.
   ============================================================ */

/* --- Reset minimal --- */
*, *::before, *::after { box-sizing: border-box; }
/* Le kit Elementor pose overflow-x:hidden sur html ET body, ce qui casse
   position:sticky (header). clip clippe sans créer de scroll container. */
html, body { overflow-x: clip !important; }
body {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--body);
  color: var(--ink);
  background: var(--paper);
  line-height: 1.5; /* prod (kit Elementor) : 20px/30px */
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }

/* --- Typo --- */
h1 { font-size: var(--h1); line-height: var(--h1-lh); font-weight: 700; margin: 0 0 var(--space-4); }
h2 { font-size: var(--h2); line-height: var(--h2-lh); font-weight: 700; margin: 0 0 15px; } /* gap widgets prod : 15px */
/* Règle typo 25/07 (Cédric : « de la cohérence, on arrête le design à la pièce ») :
   H2 = style home (45/700, --h2) sur tout le site : pages contenu, listing, articles, légal */
h3 { font-size: var(--h3); line-height: var(--h3-lh); font-weight: 600; margin: 0 0 var(--space-3); }
.title-special { font-family: var(--font-accent); font-size: var(--title-special); font-weight: 400; }
.eyebrow { font-family: var(--font-accent); font-size: var(--special); color: var(--accent); display: inline-block; }
.titre-orange { color: var(--accent); }
.titre-blanc { color: var(--paper); }
blockquote { font-size: var(--quote); font-weight: 600; line-height: 1.2; }

/* --- Layout --- */
/* Iso kit prod (e-con-boxed) : CONTENU max 1650px + padding 4vw autour
   (le max-width inclut les gutters car box-sizing:border-box). */
.container { max-width: calc(var(--container) + 2 * var(--gutter)); margin-inline: auto; padding-inline: var(--gutter); }
.container--narrow { max-width: var(--container-narrow); }
.section-padding { padding-block: var(--section-pad); }
/* Uniquement les wrappers <section> : les enfants .section-xxx__yyy ne doivent PAS repeindre le fond */
section[class^="section-"] { background: var(--bg, transparent); color: var(--color, inherit); }

/* --- Boutons --- */
.btn {
  display: inline-block;
  font-size: var(--cta-size);
  font-weight: 500;
  text-transform: uppercase;
  text-decoration: none;
  /* prod (kit Elementor) : h 40px = lh 24 + padding 5/15 + border 3px, radius 50px */
  padding: 5px 15px;
  line-height: 24px;
  border-radius: 50px;
  border: 3px solid transparent;
  cursor: pointer;
  transition: background var(--transition), color var(--transition), border-color var(--transition);
}
/* Prod : tous les boutons (bdt-advanced-button) portent une flèche → à droite du texte */
.btn::after {
  content: "";
  display: inline-block;
  width: 14px; height: 13px;
  margin-left: 8px;
  vertical-align: -1px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'><path d='M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z'/></svg>") no-repeat center / contain;
          mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'><path d='M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z'/></svg>") no-repeat center / contain;
}
.btn-primary { background: var(--accent); color: var(--cream); border-color: var(--accent); }
.btn-primary:hover { background: transparent; color: var(--accent); border-color: var(--accent); }
.btn--sm { padding: 10px 22px; font-size: calc(var(--cta-size) - 1px); }
.btn-outline { border-color: var(--ink); color: var(--ink); background: transparent; }
.btn-outline:hover { background: var(--ink); color: var(--paper); }
/* Bandeau CTA sur fond navy — bouton secondaire prod (mesuré) : fond crème,
   texte ORANGE, bordure crème ; hover inversé */
.section-cta.has-bg-ink .btn-outline { background: var(--cream); color: var(--accent); border-color: var(--cream); }
.section-cta.has-bg-ink .btn-outline:hover { background: transparent; color: var(--cream); }

/* --- Logo (maison + wordmark) : couleur via currentColor --- */
.iv-logo { display: inline-flex; align-items: center; gap: 8px; text-decoration: none; color: #fff; }
.iv-logo__icon { width: 38px; height: auto; flex: 0 0 auto; }
.iv-logo__text { font-family: var(--font-body); font-weight: 700; font-size: 26px; line-height: 1; text-transform: uppercase; letter-spacing: 0.01em; }
.iv-logo__lottie { display: block; width: 214px; height: 46px; flex: 0 0 auto; overflow: visible; }
.iv-logo__lottie svg { display: block; width: 100% !important; height: 100% !important; }
.iv-logo__lottie--mobile, .site-header__mobile-search { display: none; }

/* --- Header (barre orange, sticky) iso prod --- */
.site-header { position: fixed; top: 0; left: 0; right: 0; width: 100%; z-index: 100; background: var(--accent); }
/* Header full-width (pas boxé) : contenu sur toute la largeur, juste un padding latéral */
.site-header__inner.container { max-width: none; }
.site-header__inner { display: flex; align-items: center; gap: var(--space-5); padding-block: 14px; }
.site-header__logo { color: #fff; }
.site-header__nav { margin-left: auto; }
.site-header__menu { display: flex; gap: var(--space-5); list-style: none; margin: 0; padding: 0; }
.site-header__menu li { list-style: none; margin: 0; padding: 0; }
.site-header__menu li::marker { content: ""; }
.site-header__menu a {
  color: #fff; font-family: var(--font-body); font-weight: 600; font-size: 16px;
  text-transform: uppercase; text-decoration: none; transition: opacity var(--transition);
}
.site-header__menu a:hover { opacity: 0.75; }
.site-header__actions { display: flex; align-items: center; gap: 12px; }
.header-cta {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 11px 22px; border-radius: var(--r-pill);
  font-family: var(--font-body); font-weight: 600; font-size: 14px;
  text-transform: uppercase; text-decoration: none; white-space: nowrap;
  transition: background var(--transition), color var(--transition);
}
.header-cta svg { width: 17px; height: 17px; flex: 0 0 auto; }
.header-cta--light { background: #fff; color: var(--accent); }
.header-cta--light:hover { background: var(--ink); color: #fff; }
.header-cta--dark { background: var(--ink); color: #fff; }
.header-cta--dark:hover { background: #fff; color: var(--ink); }
.header-burger {
  display: inline-flex; flex-direction: column; gap: 5px;
  background: none; border: 0; padding: var(--space-2); cursor: pointer;
}
.header-burger span { width: 28px; height: 3px; background: #fff; border-radius: 2px; transition: transform var(--transition), opacity var(--transition); }
/* Géométrie desktop mesurée sur la production Elementor (1440 px) :
   barre 111 px, navigation 20/20 avec zones cliquables 46 px et CTA 40 px. */
@media (min-width: 1101px) {
  .site-header__inner { height: 111px; padding: 28.8px 4vw 14.4px; }
  .iv-logo__lottie { width: 239px; height: 51px; transform: translateY(-10px); }
  .site-header__menu { gap: 0; }
  .site-header__menu a { display: block; padding: 13px 20px; font-size: 20px; line-height: 20px; white-space: nowrap; }
  .site-header__nav { transform: translateX(15.5px); }
  .site-header__actions { gap: 15px; transform: translate(-10px, 3.5px); }
  .header-cta { min-height: 40px; padding: 5px 18.5px; font-size: 16px; line-height: 24px; }
  .header-burger { padding: 13.5px 9.6px; transform: translateX(-34.2px); }
  .header-burger span { width: 34px; }
  .home .site-header { position: fixed; left: 0; right: 0; width: 100%; }
}
/* Écran scindé (~1280px, 32" divisé en 2) : la prod tasse la barre au lieu de déborder —
   menu en colonne, CTA sur 2 lignes, burger toujours visible. Overflow mesuré sous ~1505px. */
@media (min-width: 1101px) and (max-width: 1500px) {
  .site-header__inner { gap: 10px; }
  /* Répartition prod : menu collé au logo (prod @1278 : menu à 10px du logo),
     l'espace libre vit entre le menu et les CTA, burger toujours à droite. */
  .site-header__nav { flex: 0 1 auto; min-width: 0; margin-left: 0; transform: none; }
  .site-header__actions { margin-left: auto; }
  .site-header__menu { flex-wrap: wrap; }
  .header-cta { white-space: normal; text-align: center; flex: 0 1 auto; }
  /* le translateX(-34px) plein écran collerait le burger au dernier CTA ;
     écart prod @1278 : 15px entre « Estimer mon bien » et le burger */
  .header-burger { flex: 0 0 auto; transform: none; margin-left: 5px; }
}
/* Burger ouvert : croix ink (iso prod) */
.header-burger[aria-expanded="true"] span { background: var(--ink); }
.header-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.header-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.header-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }
@media (max-width: 1100px) {
  .site-header__nav, .site-header__actions { display: none; }
  .site-header { position: fixed; left: 0; right: 0; width: 100%; height: 111px; }
  .site-header__inner { position: relative; height: 111px; padding: 0 15.6px; }
  .iv-logo.site-header__logo { position: absolute; left: 50%; top: 34.4px; transform: translateX(calc(-50% - 5.375px)); }
  .iv-logo__lottie--desktop { display: none; }
  .iv-logo__lottie--mobile { display: block; width: 45px; height: 59px; }
  .site-header__mobile-search { position: absolute; display: grid; place-items: center; left: 15.6px; top: 38.9px; width: 42px; height: 42px; color: var(--cream); }
  .site-header__mobile-search svg { display: block; width: 42px; height: 42px; }
  .header-burger { position: absolute; right: 15.6px; top: 33.15px; width: 52.5px; height: 52.5px; margin: 0; padding: 8.75px; gap: 5px; justify-content: center; }
  .header-burger span { width: 35px; }
  .home .section-hero-search { min-height: 100vh; padding: 4vw 4vw calc(4vw + 28.5px); }
  .home .hero-search__content { display: flex; flex-direction: column; align-items: center; width: 92vw; max-width: none; transform: translate(-4vw, -3.25px); }
  .home .hero-search__content h1 { order: 1; width: 100%; line-height: 1.1; }
  .home .hero-search__sub { order: 2; width: 100%; }
  .home .hero-search__reviews { order: 0; margin: 0 0 19.5px; }
  .home .hero-search__form { order: 3; }
  .home .hero-search__form .filter-container { transform: translateY(15px); }
}

/* --- Panneau navigation (burger) — iso prod : overlay orange plein écran sous le header,
   liens Poppins 700 35px crème, baseline Caveat 25, photo équipe détourée en bas à droite. --- */
.nav-panel {
  position: absolute; left: 0; right: 0; top: 100%;
  height: calc(100vh - 125px); /* prod : bande de page visible ~53px en bas (header 72) */
  background: var(--accent); color: var(--cream);
  border-top: 3px solid var(--ink); /* ligne noire entre header et menu */
  overflow: hidden; z-index: 99;
}
.nav-panel__nav { position: relative; z-index: 2; padding-top: 30px; }
/* Panneau non boxe : contenu quasi full width comme la prod (retrait fixe 4vw+4vw, pas de centrage 1650) */
.nav-panel__nav.container { max-width: none; }
.nav-panel__deco { display: block; position: relative; left: -80px; top: 30px; width: 42px; height: 34px; margin-left: 4vw; filter: brightness(0) invert(1); overflow: hidden; transform: rotate(-90deg); }
.nav-panel__deco svg { width: 100% !important; height: 100% !important; display: block; }
.nav-panel__list, .nav-panel__list li { list-style: none; }
/* Le kit pose un ::before 3trait-blanc.svg sur li.menu-item-13361 (geometrie prod) :
   mal ancre dans notre DOM -> notre .nav-panel__deco le remplace. */
.nav-panel__list li > a::before { content: none !important; }
.nav-panel__list li > a { padding-left: 0 !important; } /* le kit met padding-left:30px sur le 1er item */
.nav-panel__list { margin: 0; padding: 0 0 0 4vw; display: flex; flex-direction: column; gap: 29px; }
.nav-panel__list a { font-size: 35px; line-height: 1; font-weight: 700; color: var(--cream); text-decoration: none; transition: color var(--transition); }
.nav-panel__list a:hover { color: var(--ink); }
.nav-panel__list li:last-child a { font-family: var(--font-accent); font-size: 25px; font-weight: 700; margin-top: -20px; display: inline-block; } /* prod : Caveat 25 bold */
.nav-panel__team { position: absolute; right: 45px; bottom: 0; z-index: 1; width: min(780px, 48vw); height: auto; pointer-events: none; } /* prod : groupe ~740-800px */

/* --- Footer (barre orange) iso prod --- */
.site-footer { background: var(--accent); color: var(--ink); }
.site-footer__inner.container { max-width: none; }
.site-footer__inner {
  display: grid; grid-template-columns: 1.7fr 1fr 1fr 1fr; gap: var(--space-6);
  padding-block: var(--space-6) var(--space-5); align-items: start;
}
.iv-logo--footer { color: var(--ink); margin-bottom: var(--space-3); }
.site-footer__logo { width: 220px; height: auto; display: block; } /* prod : logo-footer.webp rendu 220px */
.site-footer__baseline { font-size: 16px; line-height: 1.5; margin: 0; max-width: 42ch; }
.site-footer__title {
  font-family: var(--font-accent); font-weight: 400; color: var(--ink);
  font-size: 28px; line-height: 1; margin: 0 0 var(--space-3);
  display: inline-block; padding-bottom: 6px;
  /* retour Cédric 23/07 : soulignement blanc, pleine largeur du titre */
  background-image: linear-gradient(#fff, #fff); background-repeat: no-repeat;
  background-position: left bottom; background-size: 100% 3px;
}
.site-footer__menu, .site-footer__contact { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.site-footer__menu li, .site-footer__contact li { list-style: none; margin: 0; padding: 0; font-size: 16px; line-height: 1.5; } /* prod : adresse/horaires 16px */
.site-footer__menu li::marker, .site-footer__contact li::marker { content: ""; }
.site-footer__menu a, .site-footer__contact a { color: var(--ink); text-decoration: none; font-size: 16px; transition: opacity var(--transition); }
.site-footer__menu a:hover, .site-footer__contact a:hover { opacity: 0.7; }
.site-footer__social { display: flex; gap: 12px; margin-top: var(--space-3); }
.site-footer__social a { color: var(--ink); display: inline-flex; }
.site-footer__social svg { width: 30px; height: 30px; }
.site-footer__bottom { border-top: 1px solid rgba(18, 39, 47, 0.18); }
.site-footer__bottom .container { padding-block: 16px; }
.site-footer__bottom p { margin: 0; font-size: 14px; color: var(--ink); }
@media (max-width: 992px) {
  .site-footer__inner { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
  .site-footer__inner { grid-template-columns: 1fr; }
}

/* --- Archive / cards génériques --- */
.archive-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: var(--space-5); }
.archive-card__media img { border-radius: var(--r-md); }
.archive-card__title a { text-decoration: none; }

/* --- Entry content (blog) --- */
.entry-content { font-size: var(--body-seo); }
.entry-content a { color: var(--accent); }

/* --- 404 --- */
.error-404 { text-align: center; }

/* --- Sections flexibles --- */
.section-intro { max-width: 60ch; }
[class^="section-"].section-hero,
.section-hero { position: relative; padding-block: var(--section-pad); }
.section-hero__bg { position: absolute; inset: 0; background-size: cover; background-position: center; }
.section-hero[data-has-image="true"] { color: var(--paper); }
.section-hero[data-has-image="true"] .section-hero__bg::after { content: ""; position: absolute; inset: 0; background: rgba(18, 39, 47, 0.55); }
.section-hero__inner { position: relative; }
.section-hero__sub { font-size: var(--body); max-width: 55ch; }
.section-hero .btn { margin-top: var(--space-4); margin-right: var(--space-3); }

.section-content { padding-block: var(--section-pad); position: relative; overflow: hidden; }
.section-content__inner { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gap); align-items: stretch; } /* prod : gap 15 */
.section-content__inner.is-image-left .section-content__media { order: -1; }
/* Iso prod : grand radius 250 sur le coin top intérieur (vers le texte). Image stretchée à la hauteur du texte adjacent.
   Cassini 0c1ca83 : border-radius 250 30 30 30 (image à droite, gros coin top-gauche). */
.section-content__media {
  position: relative;
  min-height: 249px;
  border-radius: 250px 30px 30px 30px;
  overflow: hidden;
  box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.5);
}
/* Image en absolute → remplit la cellule étirée à la hauteur de la colonne texte (ne dépasse jamais). */
.section-content__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center center; display: block; border-radius: inherit; }
.section-content__inner.is-image-left .section-content__media { border-radius: 30px 250px 30px 30px; }

/* Aside : image secondaire + bulle bleue (S4 Acheter)
   Layout iso prod : image portrait à droite avec bulle bleue absolute en bas-gauche qui chevauche.
*/
.section-content__aside {
  position: relative;
  display: grid; grid-template-columns: 1fr 380px; gap: var(--space-5);
  margin-top: calc(-1 * var(--space-5)); align-items: end;
}
.section-content__aside .section-content__secondary {
  position: relative;
  grid-column: 2;
  margin-left: auto;
  width: 100%;
}
/* Image secondaire = personne détourée (PNG transparent) : aucun cadre, ombre ni crop. */
.section-content__secondary {
  display: flex; justify-content: flex-end; align-items: flex-end;
}
.section-content__secondary img { width: auto; max-width: 100%; max-height: 520px; height: auto; object-fit: contain; display: block; }

/* === Variante split (S4 Acheter) : 2 colonnes ===
   col1 = heading + body + bouton + image ; col2 = texte secondaire OU personne + bulle + flèche.
   Iso prod : la section globale a padding-bottom 0 et les 2 blocs ne sont séparés que de ~15px
   → effet "une seule section". */
.section-content--split { padding-block: var(--section-pad); position: relative; overflow: visible; }
/* Section A (image en colonne 1 = Thomas) : padding-bas réduit pour coller à la section B.
   (Vendre a son image en colonne 2 → garde le padding standard.) */
.section-content--split:has(.section-content__split-col--main .section-content__split-media) { padding-bottom: var(--space-3); }
/* Section B (avec personne Laurence) : padding-haut réduit + bas 0 (Laurence collée à la section suivante) */
.section-content--split:has(.section-content__person) { padding-top: var(--space-3); padding-bottom: 0; }
.section-content__split { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gap); align-items: stretch; } /* prod : gap 15 */
.section-content__split-col { min-width: 0; }
.section-content__split-col--aside { display: flex; flex-direction: column; }
.section-content__split .section-content__body { font-size: 18px; line-height: 1.5; }
.section-content__body p { margin: 0 0 15px; }
.section-content__body p:last-child { margin-bottom: 0; }
/* Image principale (Thomas) : pleine largeur de colonne, hauteur 10vh (iso prod), radius signature + ombre */
.section-content__split-media { margin-top: 15px; }
.section-content__split-media img {
  width: 100%; height: 10vh; object-fit: cover; object-position: center; display: block;
  border-radius: 30px 200px 30px 30px;
  box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.3);
}
/* Colonne personne (Laurence) : image 297px collée en bas-droite, bulle en haut, flèche au milieu-droit */
.section-content__person { position: relative; flex: 1 1 auto; min-height: 560px; }
.section-content__person .section-content__secondary {
  position: absolute; right: 0; bottom: 0; z-index: 1;
  display: flex; justify-content: flex-end; align-items: flex-end;
}
.section-content__person .section-content__secondary img { width: 297px; max-width: 100%; max-height: none; height: auto; }
/* Bulle BD : encart bleu en haut, élargie ; queue sur le côté DROIT pointant vers la bouche de la personne */
/* Ancre bulle + flèche : un seul repère absolu — la flèche suit la bulle à
   toute largeur de fenêtre, tout en restant peinte DERRIÈRE elle.
   Proportions PROD (chat-cta) : top 11 %, largeur 51 % de la colonne → la
   bulle rétrécit avec la fenêtre (responsive), plafonnée à 415px plein écran. */
.section-content__person .content-bubble-anchor {
  position: absolute; left: 5%; top: 11%; z-index: 3; /* prod mesurée : left 5 %, top 11 % */
  width: 51%; min-width: 300px; max-width: 415px;
}
.section-content__person .content-bubble { position: relative; z-index: 2; width: 100%; max-width: none; margin: 0; }
.section-content__person .content-bubble::after {
  content: ""; position: absolute; right: -16px; top: calc(38% + 50px);
  border-width: 11px 0 11px 20px; border-style: solid;
  border-color: transparent transparent transparent var(--ink);
}
/* Flèche orange décorative (SVG fleche_3, ratio 174/64) : tournée 90° anti-horaire.
   Rendue DANS .content-bubble (24/07) : ancrée sous la bulle, elle la suit
   quelle que soit la largeur de fenêtre (avant : calée sur la colonne, elle
   passait derrière la bulle). */
.section-content__person-arrow {
  position: absolute; left: -25px; top: calc(20% + 165px); z-index: 2;
  width: 200px; max-width: 60%; aspect-ratio: 174 / 64; pointer-events: none;
  transform: rotate(-90deg);
}
/* Valeurs prod mesurées en live (24/07, viewport 1278) : flèche 174px, 45px
   sous la bulle, rotation -64°, décalée à gauche de la bulle (-12px colonne). */
.content-bubble-anchor .section-content__person-arrow {
  left: calc(-10% - 12px); top: calc(100% + 45px);
  width: 174px; max-width: none; z-index: 1;
  transform: rotate(-64deg);
}
.section-content__person-arrow svg { width: 100%; height: 100%; display: block; }
@media (max-width: 992px) {
  .section-content__split { grid-template-columns: 1fr; }
  .section-content--split:has(.section-content__person) { padding-bottom: 0; }
  .section-content__person { min-height: 480px; }
  .section-content__person .content-bubble-anchor { position: static; width: 100%; min-width: 0; max-width: 100%; margin-bottom: var(--space-3); }
  .section-content__person .content-bubble::after { display: none; }
  .section-content__person-arrow { display: none; }
}
.section-content__aside .content-bubble {
  position: absolute;
  right: 300px; bottom: 24px;
  z-index: 2;
}
@media (max-width: 992px) {
  .section-content__aside .content-bubble { position: static; margin: var(--space-3) auto 0; }
}
.content-bubble {
  background: var(--ink); color: var(--paper);
  border-radius: 30px 100px 30px 30px;
  padding: 20px 24px;
  text-align: center;
  max-width: 260px;
  box-shadow: 0 12px 40px rgba(18, 39, 47, 0.18);
}
.content-bubble__lottie { width: 48px; height: 48px; margin: 0 auto 4px; }
.content-bubble__text { font-size: 16px; margin: 0 0 var(--space-3); line-height: 1.45; color: var(--paper); }
.content-bubble__cta { margin-top: 4px; padding: 8px 18px; font-size: 13px; }
.section-content__deco {
  position: absolute; pointer-events: none;
  right: clamp(0px, 6vw, 100px); top: 30%;
  width: clamp(80px, 9vw, 140px); aspect-ratio: 1 / 1; z-index: 1;
}
@media (max-width: 992px) {
  .section-content__aside { grid-template-columns: 1fr; }
  .section-content__aside .content-bubble,
  .section-content__aside .section-content__secondary { grid-column: 1; }
  .content-bubble { max-width: 100%; margin-left: 0; }
  .section-content__deco { display: none; }
}
.section-content__text h2 { margin-top: 0; }
/* Body iso prod : Poppins 18 400 (global-typo 3cb3fb3) */
.section-content__body { font-size: 18px; font-weight: 400; line-height: 1.5; }
/* H3 iso prod : Caveat 25 400 (global-typo 2426f17) avec soulignement dessiné orange (ep_notation underline) */
.section-content__body h3 {
  margin-top: var(--space-5); margin-bottom: var(--space-3);
  font-family: var(--font-accent); font-weight: 400;
  font-size: 25px; line-height: 1.1;
  color: inherit;
  display: table; padding-bottom: 10px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 12' preserveAspectRatio='none'%3E%3Cpath d='M3 8c34-6 70-7 104-4 18 1 38 5 90-1' stroke='%23FFA301' stroke-width='3' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: left bottom; background-size: 100% 7px;
}
.section-content__body h3:first-child { margin-top: var(--space-4); }
/* Iso prod : h3 = couleur du texte du contexte (ink sur cream, cream sur ink), soulignement orange */
.section-content.has-bg-cream .section-content__body h3 { color: var(--ink); }
.section-content.has-bg-ink .section-content__body h3 { color: var(--cream); }
/* Sous-titres "Partie 1/2" : Caveat avec numéro entouré (ep_notation circle). Le numéro est ciblé via <b>/<strong>. */
.section-content__body .sous-titre,
.section-content__body p.sous-titre {
  font-family: var(--font-accent); font-weight: 400;
  font-size: 25px; line-height: 1.1;
  margin: var(--space-4) 0 var(--space-2);
}
.section-content.has-bg-cream .section-content__body .sous-titre { color: var(--accent); }
.section-content.has-bg-ink .section-content__body .sous-titre { color: var(--cream); }
/* Numéro de "Partie 1/2" entouré d'un trait de crayon orange (ellipse dessinée main) */
.section-content__body .sous-titre b,
.section-content__body .sous-titre strong,
.section-content__body .sous-titre .sous-title-underline {
  font-weight: inherit; position: relative; display: inline-block;
  padding: 4px 14px; margin: 0 2px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 54' fill='none'%3E%3Cpath d='M34 4 C52 3 61 16 57 30 C53 44 35 51 20 47 C6 43 3 28 8 16 C12 7 24 3 37 6' stroke='%23FFA301' stroke-width='2.5' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: center; background-size: 100% 100%;
}
.section-content__body ul { margin: var(--space-3) 0; padding-left: 1.25em; }
.section-content__body li { margin-bottom: var(--space-2); }
.section-content__body p { margin: 0 0 var(--space-3); }
.section-content__inner.is-text-only { display: block; }
.section-content__inner.is-text-only .section-content__body { columns: 2; column-gap: var(--space-6); margin-top: var(--space-4); }
.section-content__inner.is-text-only .section-content__body > * { break-inside: avoid-column; }
.section-content__inner.is-text-only .section-content__body h3 { break-after: avoid; }

/* Variante compacte (iso prod S4 Acheter / S5a Vendre) :
   - 2 colonnes équilibrées (heading + body en 2 cols sur toute la largeur)
   - image en bannière courte (10-14vh), max-width 93%, radius 30/200/30/30 (gros coin top-droit), shadow.
   - position image_position=left → image en haut-gauche (S4) ; image_position=right → image en bas-droite (S5a). */
.section-content__inner.is-image-compact {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-areas:
    "heading"
    "body"
    "cta"
    "image";
  row-gap: var(--space-4);
  align-items: start;
}
.section-content__inner.is-image-compact.is-image-left {
  grid-template-areas:
    "image"
    "heading"
    "body"
    "cta";
}
.section-content__inner.is-image-compact.is-image-left .section-content__media { text-align: left; }
.section-content__inner.is-image-compact.is-image-left .section-content__media img { height: auto; max-height: 240px; max-width: 60%; min-height: 0; box-shadow: 0 6px 20px rgba(0, 0, 0, 0.25); }
.section-content__inner.is-image-compact .section-content__text { display: contents; }
.section-content__inner.is-image-compact h2 { grid-area: heading; margin: 0; align-self: start; }
.section-content__inner.is-image-compact .section-content__body { grid-area: body; columns: 2; column-gap: var(--space-6); margin-top: 0; }
.section-content__inner.is-image-compact .section-content__body > * { break-inside: avoid-column; }
.section-content__inner.is-image-compact .section-content__body h3 { break-after: avoid; }
.section-content__inner.is-image-compact .section-cta-row { grid-area: cta; margin: 0; }
.section-content__inner.is-image-compact .section-content__media {
  grid-area: image;
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  text-align: right;
}
.section-content__inner.is-image-compact .section-content__media img {
  display: inline-block;
  max-width: 93%;
  width: auto;
  height: 14vh;
  min-height: 150px;
  object-fit: cover; object-position: center center;
  border-radius: 30px 200px 30px 30px;
  box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.5);
}
@media (max-width: 992px) {
  .section-content__inner.is-image-compact .section-content__body { columns: 1; }
  .section-content__inner.is-image-compact .section-content__media img { max-width: 100%; height: auto; }
}
@media (max-width: 992px) {
  .section-content__inner { grid-template-columns: 1fr; }
  .section-content__media,
  .section-content__inner.is-image-left .section-content__media { border-radius: 30px 120px 30px 30px; }
  .section-content__inner.is-image-left .section-content__media { order: 0; }
  .section-content__inner.is-text-only .section-content__body { columns: 1; }
}
/* Option ACF « Image sur mobile : Masquer » : cache images principales/secondaires, jamais bulles ni lotties */
@media (max-width: 767px) {
  .section-content.is-image-mobile-hidden .section-content__media,
  .section-content.is-image-mobile-hidden .section-content__split-media,
  .section-content.is-image-mobile-hidden .section-content__secondary { display: none; }
}

.section-cards { padding-block: var(--section-pad); position: relative; }
.section-cards .section-intro { max-width: none; margin-inline: auto; text-align: center; } /* prod : intro pleine largeur */
.section-cards .section-intro p { margin: 0 0 var(--space-3); }
.cards-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: var(--space-5); margin-top: 15px; align-items: stretch; }
.cards-conclusion {
  margin-top: var(--space-5);
  background: var(--paper); color: var(--ink);
  border-radius: var(--r-md);
  box-shadow: var(--shadow);
  padding: var(--space-5) var(--space-6);
  font-size: var(--body-seo); line-height: 1.55;
}
.cards-conclusion p { margin: 0 0 var(--space-3); }
.cards-conclusion p:last-child { margin-bottom: 0; }
.section-cards.has-bg-accent .cards-conclusion { background: var(--paper); color: var(--ink); }
/* Flèche déco DigiPass : pointe vers la dernière carte (droite), au-dessus de la grille */
.section-cards { position: relative; }
.section-cards__deco {
  position: absolute; pointer-events: none; background: transparent !important;
  right: clamp(0px, 3vw, 60px);
  bottom: var(--space-6);
  width: clamp(140px, 16vw, 240px); aspect-ratio: 174 / 64; z-index: 5;
}
.section-cards__deco svg { width: 100%; height: 100%; display: block; }
.section-cards.is-intro-left .section-intro { max-width: 70%; }
/* Wrapper de la grille : repère de la flèche DigiPass (prod : conteneur d5c2637) */
.cards-grid-wrap { position: relative; max-width: 91%; margin-inline: auto; }
.cards-grid-wrap .cards-grid { max-width: none; }
.section-cards.is-intro-left .section-cards__deco {
  /* Variante DigiPass, valeurs prod mesurées sur le widget 53e2acc : ancrée
     au bas du wrapper d5c2637 (bottom 37px), right -174px, 162×80px.
     La transformation appartient au contenu, pas au repère positionné. */
  top: auto; bottom: 37px;
  left: auto; right: -174px;
  width: 162px; height: 80px; aspect-ratio: auto;
  transform: none;
}
.section-cards.is-intro-left .section-cards__deco svg {
  transform: rotate(-142deg) scaleY(-1);
  transform-origin: center;
}
@media (max-width: 992px) { .section-cards__deco { display: none; } }
/* Variante : titre + intro alignés à gauche pleine largeur (DigiPass) */
.section-cards.is-intro-left h2,
.section-cards.is-intro-left .section-intro { text-align: left; max-width: none; margin-inline: 0; }
.section-cards.is-intro-left .section-intro { font-size: var(--body-seo); }
/* Cartes radius uniforme (option iso prod DigiPass: 30/30/30/30) */
.section-cards.is-cards-uniform-radius .card { border-radius: 30px; }
.section-cards__cta { margin-top: 15px; text-align: center; }
/* Grille cards : 4-wide à desktop, 2x2 tablette, 1x4 mobile (iso prod : 91% conteneur) */
.section-cards .cards-grid { gap: 30px; max-width: 91%; margin-inline: auto; grid-template-columns: 1fr; }
@media (min-width: 768px) { .section-cards .cards-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1200px) { .section-cards .cards-grid { grid-template-columns: repeat(4, 1fr); } }
/* 4 cartes = grille 2x2 (prod : types de biens /biens/) — heuristique legacy, seulement si colonnes en auto */
@media (min-width: 992px) { .section-cards:not(.is-grid-2):not(.is-grid-4) .cards-grid:has(.card:nth-child(4):last-child) { grid-template-columns: repeat(2, 1fr); max-width: 78%; } }
/* 4 cards sombres uniformes (prod /biens/ 2x2) — sauf is-grid-4 (home estimation : derniere card blanche texte navy, prod 23f4186) */
.section-cards.has-bg-accent:not(.is-grid-4) .cards-grid:has(.card:nth-child(4):last-child) .card:last-child { background: var(--ink); color: var(--paper); }
.section-cards.has-bg-accent:not(.is-grid-4) .cards-grid:has(.card:nth-child(4):last-child) .card:last-child .card__body { color: var(--paper); }
/* Réglages génériques du layout cards (selects ACF tab Style : grid_columns / content_width / content_align) */
@media (min-width: 1200px) { .section-cards.is-grid-2 .cards-grid { grid-template-columns: repeat(2, 1fr); } }
.section-cards.is-content-narrow .cards-grid,
.section-cards.is-content-narrow .cards-conclusion,
.section-cards.is-content-narrow .cards-accent-box { max-width: 78%; }
.section-cards.is-content-left .cards-grid,
.section-cards.is-content-left .cards-conclusion,
.section-cards.is-content-left .cards-accent-box { margin-left: 0; margin-right: auto; }
/* Colonnes explicites : le wrapper ne réduit plus (sinon double 91% wrap x grid) ; largeur pilotée par .cards-grid seul */
.section-cards.is-grid-2 .cards-grid-wrap,
.section-cards.is-grid-4 .cards-grid-wrap { max-width: none; margin-inline: 0; }
/* DigiPass prod : d5c2637 part du bord gauche du container et mesure 91 % ;
   la grille remplit ce wrapper. Ce repère est indispensable au right:-174px
   de la flèche et évite qu'elle élargisse la page. */
.section-cards.is-intro-left { overflow-x: clip; }
.section-cards.is-intro-left .cards-grid-wrap { max-width: 91%; margin-left: 0; margin-right: auto; }
.section-cards.is-intro-left .cards-grid-wrap .cards-grid { max-width: none; margin-inline: 0; }
/* box sous la grille alignee sur les cards (prod : af1fdd2 et 1fb6eda freres a 91%) */
.section-cards.is-intro-left .cards-conclusion,
.section-cards.is-intro-left .cards-accent-box { max-width: 91%; margin-left: 0; margin-right: auto; }
/* Densité compacte (select ACF density) : padding prod 12.58 @1243px ; gap 0 car la marge lottie 15px assure seule l'espacement icône→texte */
.section-cards.is-density-compact .card { padding: clamp(12px, 1vw, 17px); gap: 0; }
.section-cards.is-density-compact .cards-accent-box { padding: clamp(12px, 1vw, 17px); }
/* Conclusion card iso prod : bg cream, radius 30 uniforme, width 91%, padding 1vw, text centré */
.cards-conclusion { max-width: 91%; margin: var(--space-5) auto 0; border-radius: 30px; text-align: center; padding: clamp(20px, 1vw, 40px); }
/* Bloc final orange dans la section cartes (iso prod DigiPass 1f56e3d) : même largeur 91% que la grille,
   bg accent, radius 30, texte ink 18 centré, bouton bordure ink 3px / texte cream / radius 50. */
.cards-accent-box {
  max-width: 91%; margin: 30px auto 0;
  background: var(--accent); color: var(--ink);
  border-radius: 30px;
  padding: clamp(28px, 3vw, 48px) clamp(24px, 4vw, 70px);
  text-align: center;
}
.cards-accent-box__text { font-size: 18px; line-height: 1.5; color: var(--ink); }
.cards-accent-box__text p { margin: 0 0 var(--space-3); }
.cards-accent-box__text p:last-child { margin-bottom: 0; }
.cards-accent-box__cta {
  display: inline-block; margin-top: 15px;
  background: var(--ink); color: var(--cream);
  border: 3px solid var(--ink); border-radius: 50px;
  padding: 5px 15px; line-height: 24px; font-weight: 500;
  font-size: var(--cta-size); text-decoration: none;
  transition: background var(--transition), color var(--transition);
}
.cards-accent-box__cta:hover { background: transparent; color: var(--ink); }
/* encadre conclusion CREME quand la section est deja orange (prod /biens/) */
.section-cards.has-bg-accent .cards-accent-box { background: var(--paper); }
.card { display: flex; flex-direction: column; align-items: center; text-align: center; gap: var(--space-2); background: var(--paper); color: var(--ink); border-radius: 30px 100px 30px 30px; box-shadow: var(--shadow); padding: 17px; } /* prod : padding 16.5px */
.card__icon { width: 64px; height: 64px; object-fit: contain; margin-bottom: var(--space-3); }
.card__lottie { width: 80px; height: 80px; margin: 0 auto 15px; display: flex; align-items: center; justify-content: center; overflow: visible; }
/* Prod : icônes plus grandes (~130px) sur les cartes de la section estimation (fond orange) */
.section-cards.has-bg-accent .card__lottie { width: 130px; height: 130px; }
.card__title { font-family: var(--font-accent); font-weight: 400; color: var(--accent); font-size: var(--special); margin: 0; }
.card__body { font-size: var(--body-seo); line-height: 1.5; margin: 0; } /* prod : 18px/27px */
/* Cartes sur fond orange (estimation) : navy contrastées, dernière carte (CTA) blanche */
.section-cards.has-bg-accent .card { background: var(--ink); color: var(--paper); }
.section-cards.has-bg-accent .card .card__body { color: var(--paper); }
.section-cards.has-bg-accent .card:last-child { background: var(--paper); color: var(--ink); }
.section-cards.has-bg-accent .card:last-child .card__body { color: var(--ink); }
.card__link { margin-top: auto; align-self: center; display: inline-block; padding: 10px 26px; background: var(--accent); color: var(--cream); border: 3px solid var(--accent); border-radius: var(--r-pill); font-family: var(--font-body); font-weight: 600; text-transform: uppercase; font-size: 15px; text-decoration: none; transition: background var(--transition), color var(--transition); }
.card__link:hover { background: transparent; color: var(--accent); }

.section-gallery { padding-block: var(--section-pad); }
.gallery-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: var(--gap); margin-top: var(--space-5); }
.gallery-grid__item { margin: 0; }
.gallery-grid__item img { border-radius: var(--r-sm); width: 100%; height: 100%; object-fit: cover; }

.section-process { padding-block: var(--section-pad); }
.process-grid { display: grid; grid-template-columns: repeat(var(--cols, 3), 1fr); gap: var(--space-5); list-style: none; margin: var(--space-5) 0 0; padding: 0; counter-reset: step; }
.process-step__num {
  white-space: nowrap;
  display: inline-grid; place-items: center;
  width: 52px; height: 52px; border-radius: var(--r-pill);
  background: var(--accent); color: var(--ink);
  font-weight: 700; font-size: 22px; margin-bottom: var(--space-3);
}
@media (max-width: 992px) { .process-grid { grid-template-columns: 1fr; } }

.section-faq { padding-block: var(--section-pad); }
.faq-list { margin-top: var(--space-5); display: grid; gap: var(--space-3); }
.faq-list--grid { grid-template-columns: 1fr 1fr; }
.faq-item { background: var(--cream); border-radius: var(--r-sm); padding: var(--space-3) var(--space-4); }
.faq-item__question { font-weight: 600; cursor: pointer; }
.faq-item__answer { padding-top: var(--space-3); font-size: var(--body-seo); }
@media (max-width: 992px) { .faq-list--grid { grid-template-columns: 1fr; } }

.section-testimonials { padding-block: var(--section-pad); }
.testimonials-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: var(--space-5); margin-top: var(--space-5); }
.testimonial { margin: 0; background: var(--paper); border-radius: var(--r-md); box-shadow: var(--shadow); padding: var(--space-5); }
.testimonial__body { font-size: var(--body-seo); font-weight: 400; line-height: 1.6; }
.testimonial__author { font-family: var(--font-accent); font-size: var(--special); font-style: normal; color: var(--accent); }

.section-cta { padding-block: var(--section-pad); }
.section-cta__inner { text-align: center; margin-inline: auto; } /* prod : pleine largeur */
/* Titre de CTA en script Caveat 45/45 (option heading_style=script, ex. « Vendez rapidement » du pré-footer) */
.section-cta.is-script-heading .section-cta__inner > h2 { font-family: var(--font-accent); font-size: 45px; line-height: 45px; font-weight: 400; } /* Caveat : pas encore de règle actée (l'alerte listing reste à 35, scopée) */
.section-cta__body { font-size: var(--body); margin-top: var(--space-3); }
.section-cta__actions { display: flex; gap: var(--space-3); justify-content: center; flex-wrap: wrap; margin-top: 15px; }
/* CTA sur fond orange : texte ink, boutons inversés (ink solide) */
.section-cta.has-bg-accent { color: var(--ink); }
.section-cta.has-bg-accent .section-cta__body { color: var(--ink); }
.section-cta.has-bg-accent .btn-primary {
  background: var(--ink); border-color: var(--ink); color: var(--cream);
}
.section-cta.has-bg-accent .btn-primary:hover {
  background: transparent; color: var(--ink); border-color: var(--ink);
}
.section-cta.has-bg-accent .btn-outline { border-color: var(--ink); color: var(--ink); }
.section-cta.has-bg-accent .btn-outline:hover { background: var(--ink); color: var(--cream); }
/* Bloc orange arrondi iso prod (DigiPass bloc_final 1f56e3d) : container 91% radius 30 sur fond sombre,
   texte ink centré 18px, bouton bordure ink 3px / texte cream / radius 50. */
.section-cta.is-accent-box { background: var(--ink); padding-block: clamp(0px, 2vw, 30px) var(--section-pad); }
.section-cta.is-accent-box .section-cta__inner {
  max-width: 91%;
  background: var(--accent); color: var(--ink);
  border-radius: 30px;
  padding: clamp(28px, 3vw, 48px) clamp(24px, 4vw, 70px);
}
.section-cta.is-accent-box .section-cta__body { color: var(--ink); margin-top: 0; }
.section-cta.is-accent-box .section-cta__actions { margin-top: var(--space-4); }
.section-cta.is-accent-box .btn {
  background: transparent; color: var(--cream);
  border: 3px solid var(--ink); border-radius: 50px;
  padding: 6px 22px; text-transform: none; font-weight: 500;
}
.section-cta.is-accent-box .btn:hover { background: var(--ink); color: var(--cream); border-color: var(--ink); }
.notation-underline { position: relative; white-space: nowrap; }
.notation-underline::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0.02em; height: 0.18em; background: var(--accent); border-radius: 2px; z-index: -1; }
/* Boutons sur fond sombre (sections has-color-paper) */
.has-color-paper .btn-outline { border-color: var(--cream); color: var(--cream); }
.has-color-paper .btn-outline:hover { background: var(--cream); color: var(--ink); }

.section-team { padding-block: var(--section-pad); }
.team-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: var(--space-5); margin-top: var(--space-5); }
.team-member__photo img { border-radius: var(--r-md); }
.team-member__role { color: var(--gray); font-size: var(--body-seo); }

.section-richtext { padding-block: var(--section-pad); }

/* --- Hero search (home) — iso prod : 100vh, photo + overlay, contenu centré, personnages ancrés en bas ---
   Prod : header Elementor hors flux (recouvre le hero) → ici le header sticky (72px)
   est en flux, donc le hero fait 100vh - 72px pour que la page garde la même hauteur. */
.section-hero-search {
  position: relative; display: flex; flex-direction: column; justify-content: center;
  /* padding-bottom majoré : recale le groupe centré sur les positions prod
     (le moteur en float ne compte pas dans la hauteur du bloc centré) */
  min-height: calc(100vh - 72px); padding: 4vw 4vw calc(4vw + 86px);
  /* clip horizontal seulement (flèche lottie à -130px) : les volets du moteur
     doivent pouvoir déborder sous le hero, au-dessus de la section suivante */
  overflow-x: clip; z-index: 2;
}
.hero-search__bg { position: absolute; inset: 0; background-size: cover; background-position: center; }
.section-hero-search[data-has-image="true"] { color: var(--paper); }
.section-hero-search[data-has-image="true"] .hero-search__bg::after { content: ""; position: absolute; inset: 0; background: rgba(18, 39, 47, 0.6); }
.hero-search__inner { position: relative; z-index: 2; display: flex; justify-content: center; }
.hero-search__content { text-align: center; max-width: 1300px; }
.lottie-before-char {
  display: inline-block; width: 45px; height: 45px; vertical-align: middle;
  transform: scaleX(-1) translate(125%, -100%); margin-right: -1em; pointer-events: none;
}
@media (max-width: 1024px) { .lottie-before-char { width: 35px; height: 35px; transform: scaleX(-1) translate(90%, -105%); margin-right: -0.8em; } }
@media (max-width: 767px) { .lottie-before-char { width: 28px; height: 28px; transform: scaleX(-1) translate(110%, -100%); margin-right: -1em; } }
/* Prod : 65px / line-height 55px au-dessus de 1450px (Elementor desktop) */
.hero-search__content h1 { font-size: clamp(38px, 3.94vw, 65px); line-height: 0.85; font-weight: 700; margin: 0; }
@media (min-width: 1101px) {
  .home .section-hero-search { min-height: 100vh; padding: 4vw 4vw calc(4vw + 15px); }
  .home .hero-search__content { width: 77.28vw; max-width: 1113px; }
  .home .hero-search__content h1 { font-size: 65px; line-height: 55px; }
  .home .hero-search__form .filter-container { transform: translateY(-6px); }
}
.hero-search__sub { font-size: var(--body); max-width: 60ch; margin: 15px auto 0; }
.hero-search__char { position: absolute; bottom: 0; z-index: 1; height: auto; }
.hero-search__char--left { left: 0; width: 17vw; }
.hero-search__char--right { right: 0; width: 19vw; }
.hero-search__form { margin-top: 0; } /* le margin-top:50px vient de .apimo-filters (CSS prod) */
.hero-search__reviews {
  display: inline-flex; align-items: center; gap: 10px; margin-top: 15px;
  color: var(--paper); text-decoration: none; font-size: 16px;
}
.hero-search__stars { color: #ffd700; font-size: 17px; line-height: 1; }
.hero-search__reviews-logo { height: 21px; width: auto; }
.hero-search__reviews-label { text-decoration: underline; }
@media (max-width: 991px) {
  .hero-search__char--right { display: none; }
  .hero-search__char--left { width: 30vw; }
}

/* --- Sliders communs --- */
.swiper { margin-top: 15px; padding-bottom: var(--space-6); } /* gap widgets prod : 15px */
/* Prod : pas de gouttière, les flèches sont en overlay sur les cartes.
   Pas de dots non plus (slick-dots masqués en prod) → pas d'espace réservé. */
/* .swiper.xxx : spécificité > .swiper de swiper-bundle (chargé après, padding:0) */
/* Flip quartiers : la perspective gonfle la carte (~±40px verticaux) pendant la
   rotation et l'overflow hidden du swiper la coupait → respiration dans le
   padding-box (l'overflow clippe au padding-box), compensée en marges. */
.swiper.iv-quartiers-swiper { padding-top: 48px; padding-bottom: 48px; margin-top: -40px; margin-bottom: -48px; }
.swiper.iv-properties-swiper { padding-top: 8px; padding-bottom: 90px; } /* prod : ~90px sous les cartes avant le CTA */
.iv-quartiers-swiper .swiper-pagination, .iv-properties-swiper .swiper-pagination { display: none; }
.swiper-pagination-bullet-active { background: var(--accent); }
.swiper-button-prev, .swiper-button-next { color: var(--ink); }
.swiper-button-prev::after, .swiper-button-next::after { font-size: 28px; }

/* Flèches quartiers : fond orange, icône crème, radius 10px, ombre (iso prod) */
.iv-quartiers-swiper .swiper-button-prev,
.iv-quartiers-swiper .swiper-button-next {
  top: 50%; transform: translateY(-50%); width: 60px; height: 60px; margin: 0;
  background: var(--accent); color: var(--cream); border: 0; border-radius: 10px;
  box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.5); transition: background var(--transition), color var(--transition);
}
.iv-quartiers-swiper .swiper-button-prev { left: 8px; }
.iv-quartiers-swiper .swiper-button-next { right: 8px; }
.iv-quartiers-swiper .swiper-button-prev:hover,
.iv-quartiers-swiper .swiper-button-next:hover { background: var(--cream); color: var(--accent); }
.iv-quartiers-swiper .swiper-button-prev::after,
.iv-quartiers-swiper .swiper-button-next::after { font-size: 22px; font-weight: 800; }

/* Flèches biens : même traitement orange, dans la gouttière */
.iv-properties-swiper .swiper-button-prev,
.iv-properties-swiper .swiper-button-next {
  top: 50%; transform: translateY(-50%); width: 52px; height: 52px; margin: 0;
  background: var(--accent); color: var(--cream); border: 0; border-radius: 10px;
  box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.25); transition: background var(--transition), color var(--transition);
}
.iv-properties-swiper .swiper-button-prev { left: 6px; }
.iv-properties-swiper .swiper-button-next { right: 6px; }
.iv-properties-swiper .swiper-button-prev:hover,
.iv-properties-swiper .swiper-button-next:hover { background: var(--ink); color: var(--cream); }
.iv-properties-swiper .swiper-button-prev::after,
.iv-properties-swiper .swiper-button-next::after { font-size: 20px; font-weight: 800; }
.section-cta-row { text-align: center; margin-top: 15px; }
.section-cta-row--left { text-align: left; }

/* --- Slider de biens (cartes iso prod : corps bleu nuit, ImmoVendu) ---
   Source de vérité : prod-child-style.css l.328-411 + .apimo_agreement l.1225.
   Image 326px radius 30/200/0/0 ; corps #12272F radius 0/0/30/30 ;
   badge Exclusivité orange (98x31, radius 30) absolute top 310px ;
   titre Poppins 600 25/30 cream ; prix Poppins 700 40/60 cream + scribble zg_orange.svg ;
   meta Poppins 400 18/20 cream, icône accent.
*/
.section-properties-slider { padding-block: var(--section-pad); }
.section-properties-slider h2, .section-properties-slider .section-intro { text-align: center; }
.section-properties-slider .section-intro { max-width: none; margin-inline: auto; } /* prod : intro pleine largeur */
.property-card {
  position: relative;
  display: flex; flex-direction: column; height: 100%;
  background: transparent;
  text-decoration: none; color: var(--cream);
}
.property-card__media {
  position: relative; height: 326px; overflow: hidden; background: #eee;
  border-radius: 30px 200px 0 0;
}
.property-card__media img { width: 100%; height: 326px; object-fit: cover; display: block; }
/* Badges (Exclusivité / Nouveau) chevauchant la limite image / corps */
.property-card__badges {
  position: absolute; top: 310px; left: 0; z-index: 3;
  display: flex; gap: 10px;
}
.property-card__badge {
  background: var(--accent); color: var(--cream);
  border-radius: 30px;
  font-family: var(--font-body); font-weight: 400;
  font-size: 15px; line-height: 31px; height: 31px;
  min-width: 98px; padding: 0 14px; text-align: center;
  margin-left: 20px;
}
.property-card__badge--new { background: var(--cream); color: var(--accent); }
.property-card__body {
  position: relative;
  flex: 1 1 auto;
  background: var(--ink);
  border-radius: 0 0 30px 30px;
  padding: 28px 25px 30px;
  display: flex; flex-direction: column; gap: 6px;
}
.property-card__title {
  font-family: var(--font-body); font-weight: 500;
  font-size: 25px; line-height: 30px; color: var(--cream); margin: 0 0 6px;
  overflow: hidden;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
}
.property-card__price {
  font-family: var(--font-body); font-weight: 700;
  font-size: 40px; line-height: 60px; color: var(--cream); margin: 0;
  background-image: url("../images/zg_orange.svg");
  background-repeat: no-repeat; background-position: center bottom; background-size: contain;
  width: max-content; min-width: 260px; max-width: 100%;
  padding: 0 20px 30px; text-align: center;
}
.property-card__specs {
  display: flex; flex-wrap: wrap; gap: 8px 24px; list-style: none; margin: 6px 0 0; padding: 0;
}
.property-card__specs li {
  display: flex; align-items: center; gap: 6px;
  font-family: var(--font-body); font-weight: 400;
  font-size: 18px; line-height: 20px; color: var(--cream);
}
.property-card__spec-icon { display: inline-flex; }
.property-card__spec-icon svg { width: 22px; height: auto; display: block; fill: var(--accent); }
.property-card__ref { display: none; }

/* --- Listing de biens (page /biens/, quartiers, archives) ---
   Grille 3 colonnes iso archive prod (apimo_style_archive view_1 desktop=3),
   cartes = même composant property-card que le slider home.
*/
.section-properties-listing { padding-block: var(--section-pad); }
.section-properties-listing .section-heading,
.section-properties-listing .section-intro { text-align: center; }
.section-properties-listing .section-intro { max-width: none; } /* prod : intro pleine largeur 1650 */
.iv-listing-caveat { font-family: var(--font-body); font-size: 10px; font-weight: 500; color: var(--ink); text-align: center; margin: 8px 0 0; } /* sous-ligne prod (Poppins 10px navy) */
.section-properties-listing .section-intro { max-width: 72ch; margin-inline: auto; }
.properties-listing .filter-container { margin-bottom: 48px; }
.properties-grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 40px 30px;
  margin-top: 40px;
}
@media (max-width: 1024px) { .properties-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px)  { .properties-grid { grid-template-columns: 1fr; } }
.property-card__badge--sold { background: var(--ink); color: var(--cream); }
.properties-pagination { margin-top: 106px; height: 200px; display: flex; align-items: center; justify-content: center; text-align: center; }
.properties-pagination .page-numbers {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 44px; height: 44px; padding: 0 12px; margin: 0 4px;
  border: 1px solid var(--ink); border-radius: 30px;
  font-family: var(--font-body); font-size: 18px; color: var(--ink);
  text-decoration: none; transition: all .2s ease;
}
.properties-pagination .page-numbers.current,
.properties-pagination .page-numbers:hover { background: var(--accent); border-color: var(--accent); color: var(--cream); }
.properties-pagination .page-numbers.dots { border: none; }
.properties-pagination__next { position: relative; display: block; width: 202px; height: 40px; color: transparent; text-decoration: none; overflow: visible; }
.properties-pagination__spinner { position: absolute; left: 50%; top: 50%; width: 96px; height: 96px; transform: translate(-50%, -50%); }
.properties-pagination__spinner i {
  position: absolute; left: 39px; top: 0; width: 18px; height: 18px;
  border-radius: 50%; background: var(--ink); opacity: calc(.25 + var(--i) * .09);
  transform-origin: 9px 48px; transform: rotate(calc(var(--i) * 45deg));
}
.properties-pagination__next:hover .properties-pagination__spinner,
.properties-pagination__next:focus-visible .properties-pagination__spinner { animation: iv-pagination-spin 1s linear infinite; }
@keyframes iv-pagination-spin { to { transform: translate(-50%, -50%) rotate(360deg); } }
.properties-empty { text-align: center; padding: 64px 0; }
.properties-empty p { font-size: 20px; max-width: 56ch; margin: 0 auto 24px; }

/* Le panneau "plus de filtres" custom a été remplacé par la modale prod
   (#popin_advanced_search, styles dans apimo-legacy.css). */

/* --- Pages quartier / archives biens --- */
.page-quartier { padding: 40px 0 var(--section-pad); }
.breadcrumb-container { margin-bottom: 24px; }
.breadcrumb {
  display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 0; padding: 0;
  font-family: var(--font-body); font-size: 14px; color: var(--ink);
}
.breadcrumb li::after { content: "|"; margin: 0 6px; color: inherit; } /* séparateur UNIQUE iso-prod, tout le site */
.breadcrumb li:last-child::after { content: none; }
.breadcrumb-item a { color: inherit; text-decoration: none; }
.breadcrumb-item a:hover { color: var(--accent); }
.quartier-title {
  display: flex; align-items: center; gap: 16px;
  font-size: clamp(28px, 3.2vw, 40px); line-height: 1.25;
  margin: 0 0 36px;
}
.quartier-title__deco { width: 60px; height: 60px; flex: 0 0 auto; }
.quartier-content {
  display: grid; grid-template-columns: 1fr 1.4fr; gap: 48px; align-items: center;
  margin-top: var(--section-pad);
}
@media (max-width: 900px) { .quartier-content { grid-template-columns: 1fr; } }
.quartier-content__image img {
  width: 100%; height: auto; display: block;
  border-radius: 30px 100px 30px 30px;
}
.quartier-content__text { font-size: 18px; line-height: 1.7; }

/* Liens dans les sections à fond sombre/orange : hériter la couleur du texte
   (sinon liens navy invisibles sur navy — vu sur les pages quartier migrées). */
.has-color-paper a:not(.btn):not(.card__link) { color: inherit; text-decoration: underline; }
.has-color-paper a:not(.btn):not(.card__link):hover { color: var(--accent); }
.has-bg-accent a:not(.btn) { color: var(--ink); text-decoration: underline; }

/* Bloc factuel GEO (fiche bien) + date de mise à jour */
.iv-facts {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 4px 24px; margin: 14px 0 4px; font-size: 14px;
}
.iv-facts > div { display: flex; justify-content: space-between; gap: 10px; border-bottom: 1px dotted #d9d2c0; padding: 3px 0; }
.iv-facts dt { color: #6a6a6a; }
.iv-facts dd { margin: 0; font-weight: 600; }
.iv-updated-at { font-size: 12.5px; color: #8a8a8a; margin: 4px 0 10px; }

/* --- Fiche bien (single-property) --- */
.single-property-page { padding: 40px 0 var(--section-pad); }
.iv-property-top {
  display: grid; grid-template-columns: 1.5fr 1fr; gap: 48px;
  align-items: start; margin-bottom: 56px;
}
/* Indispensable : sans min-width:0, la largeur intrinsèque des slides Swiper
   fait exploser la colonne fr (relayout en boucle → scintillement + freeze). */
.iv-property-top > * { min-width: 0; }
@media (max-width: 1024px) { .iv-property-top { grid-template-columns: 1fr; } }
.iv-property-gallery { position: relative; }
.iv-property-exclusive {
  position: absolute; z-index: 5; top: 20px; left: 20px;
  background: var(--accent); color: var(--cream);
  border-radius: 30px; padding: 6px 18px;
  font-family: var(--font-body); font-weight: 600; font-size: 15px;
}
.iv-gallery-main { border-radius: 30px 100px 30px 30px; overflow: hidden; }
.iv-gallery-main .swiper-slide img { width: 100%; height: 520px; object-fit: cover; display: block; }
.iv-gallery-main .swiper-button-prev, .iv-gallery-main .swiper-button-next { color: var(--cream); }
.iv-gallery-thumbs { margin-top: 14px; }
.iv-gallery-thumbs .swiper-slide { width: 110px; cursor: pointer; opacity: .55; transition: opacity .2s; }
.iv-gallery-thumbs .swiper-slide-thumb-active, .iv-gallery-thumbs .swiper-slide:hover { opacity: 1; }
.iv-gallery-thumbs img { width: 110px; height: 74px; object-fit: cover; border-radius: 12px; display: block; }

.iv-property-title { font-size: clamp(26px, 2.6vw, 34px); line-height: 1.25; margin: 0 0 10px; }
.iv-property-address { color: #6a6a6a; margin: 0 0 4px; }
.iv-property-ref { color: #6a6a6a; font-size: 14px; margin: 0 0 12px; }
.iv-property-price.Pro-d-price {
  display: block; font-family: var(--font-body); font-weight: 700;
  font-size: 40px; line-height: 1.3; color: var(--ink);
  background-image: url("../images/zg_orange.svg");
  background-repeat: no-repeat; background-position: left bottom; background-size: 220px auto;
  padding: 0 0 22px; margin: 0 0 18px;
}
.iv-property-specs {
  display: flex; flex-wrap: wrap; gap: 10px 26px;
  list-style: none; margin: 0 0 18px; padding: 18px 0;
  border-top: 1px solid #e5e0d3; border-bottom: 1px solid #e5e0d3;
  font-size: 17px;
}
.iv-property-specs strong { color: var(--accent); font-size: 22px; margin-right: 4px; }
.iv-property-services { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0 0 22px; padding: 0; }
.iv-property-services li {
  background: var(--cream); color: var(--ink);
  border-radius: 30px; padding: 5px 14px; font-size: 14px;
}
.iv-property-cta { display: flex; flex-wrap: wrap; gap: 12px; }

.iv-property-description, .iv-property-details, .iv-property-rooms,
.iv-property-energy, .iv-property-map, .iv-property-agent { margin-bottom: 56px; }
.single-property-page h2 { font-size: 28px; margin: 0 0 20px; }
.iv-property-subtitle { font-weight: 600; font-size: 19px; }
.iv-details-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px 32px; margin: 0;
}
@media (max-width: 900px) { .iv-details-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .iv-details-grid { grid-template-columns: 1fr; } }
.iv-details-item {
  display: flex; justify-content: space-between; gap: 12px;
  padding: 10px 0; border-bottom: 1px solid #e5e0d3;
}
.iv-details-item dt { color: #6a6a6a; }
.iv-details-item dd { margin: 0; font-weight: 600; text-align: right; }

.iv-rooms-list { list-style: none; margin: 0; padding: 0; columns: 2; column-gap: 48px; }
@media (max-width: 700px) { .iv-rooms-list { columns: 1; } }
.iv-rooms-list li {
  display: flex; justify-content: space-between; gap: 12px;
  padding: 9px 0; border-bottom: 1px dashed #e5e0d3;
  break-inside: avoid;
}
.iv-room-area { font-weight: 600; }

.iv-energy-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
@media (max-width: 900px) { .iv-energy-grid { grid-template-columns: 1fr; } }
.iv-energy-block h3 { font-size: 17px; margin: 0 0 12px; }
.iv-energy-scale { display: flex; flex-direction: column; gap: 4px; }
.iv-energy-step {
  display: flex; align-items: center; gap: 12px;
  color: #fff; font-weight: 700; font-size: 14px;
  padding: 4px 10px; border-radius: 4px; width: 36px;
  transition: width .2s;
}
.iv-energy-step em { font-style: normal; font-weight: 600; white-space: nowrap; }
.iv-energy-step.is-active { width: min(100%, 340px); outline: 3px solid var(--ink); }
.iv-energy-dpe .iv-energy-step--a { background: #319834; }
.iv-energy-dpe .iv-energy-step--b { background: #33cc31; }
.iv-energy-dpe .iv-energy-step--c { background: #cbfc34; color: #333; }
.iv-energy-dpe .iv-energy-step--c.is-active { color: #333; }
.iv-energy-dpe .iv-energy-step--d { background: #fbfe06; color: #333; }
.iv-energy-dpe .iv-energy-step--e { background: #fbcc05; color: #333; }
.iv-energy-dpe .iv-energy-step--f { background: #fc9935; }
.iv-energy-dpe .iv-energy-step--g { background: #fc0205; }
.iv-energy-ges .iv-energy-step--a { background: #f2eff4; color: #333; }
.iv-energy-ges .iv-energy-step--b { background: #dfc1f7; color: #333; }
.iv-energy-ges .iv-energy-step--c { background: #d6aaf4; color: #333; }
.iv-energy-ges .iv-energy-step--d { background: #cc93f2; color: #333; }
.iv-energy-ges .iv-energy-step--e { background: #bb72ee; }
.iv-energy-ges .iv-energy-step--f { background: #a94ceb; }
.iv-energy-ges .iv-energy-step--g { background: #8b1ae1; }
.iv-energy-costs { margin-top: 18px; font-size: 16px; }

/* Version compacte dans la colonne info de la fiche (sous les frais de notaire) */
#apimo_property_info .iv-property-energy { margin: 28px 0 0; }
#apimo_property_info .iv-property-energy .apimo_title_h2 { font-size: 26px; line-height: 34px; padding: 0 14px 20px; }
#apimo_property_info .iv-energy-grid { grid-template-columns: 1fr 1fr; gap: 20px; }
#apimo_property_info .iv-energy-block h3 { font-size: 14px; margin-bottom: 8px; }
#apimo_property_info .iv-energy-step { font-size: 11px; padding: 2px 8px; width: 28px; }
#apimo_property_info .iv-energy-step em { font-size: 10px; }
#apimo_property_info .iv-energy-step.is-active { width: 100%; outline-width: 2px; }

.iv-property-map iframe { border-radius: 30px; }

.iv-property-agent {
  display: flex; align-items: center; gap: 28px;
  background: var(--ink); color: var(--cream);
  border-radius: 30px 100px 30px 30px; padding: 32px 36px;
}
@media (max-width: 640px) { .iv-property-agent { flex-direction: column; text-align: center; } }
.iv-agent-photo { width: 110px; height: 110px; object-fit: cover; border-radius: 50%; }
.iv-agent-intro { font-family: var(--font-accent, 'Caveat'); font-size: 22px; color: var(--accent); margin: 0; }
.iv-agent-name { font-size: 24px; font-weight: 600; margin: 4px 0 14px; }
.iv-agent-actions { display: flex; flex-wrap: wrap; gap: 12px; }

.iv-property-similar { margin-top: var(--section-pad); }
.iv-property-similar h2 { text-align: center; }

/* --- Hero 50/50 (texte | image bord à bord) — ex. Qui sommes-nous ---
   La SECTION n'a aucun padding (l'image touche le header et les bords) ;
   seule la colonne texte est paddée. */
.section-hero--split {
  display: grid; grid-template-columns: 1fr 1.05fr;
  align-items: stretch; min-height: 560px;
  padding: 0 !important; margin: 0;
}
@media (max-width: 900px) { .section-hero--split { grid-template-columns: 1fr; min-height: 0; } }
.section-hero__split-text {
  display: flex; flex-direction: column; justify-content: center;
  padding: 44px 3vw 44px 4vw; max-width: 820px;
}
.section-hero__split-text .breadcrumb-container { margin-bottom: 16px; }
.section-hero__split-text h1 {
  position: relative;
  font-size: clamp(28px, 2.6vw, 38px); line-height: 1.3; margin: 0 0 22px;
}
.section-hero__split-text h1 .accent { color: var(--accent); }
.section-hero__title-deco { position: absolute; left: -46px; top: -8px; width: 38px; height: 38px; transform: rotate(270deg); }
.section-hero__split-text .section-hero__sub p { margin: 0 0 16px; }
.section-hero__split-media { overflow: hidden; }
.section-hero__split-media img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Section orange QSN : « ImmoVendu : » en crème dans le H2 */
.text-cream { color: var(--cream); }
/* H3 manuscrit de la section orange : souligné d'un trait DESSINÉ grossier blanc (retour 28/07) */
.has-bg-accent .section-content__body h3 {
  font-family: var(--font-accent, 'Caveat'); font-weight: 400;
  font-size: 35px; line-height: 44px;
  text-decoration: none; display: table; padding-bottom: 8px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 12' preserveAspectRatio='none'%3E%3Cpath d='M3 8c34-6 70-7 104-4 18 1 38 5 90-1' stroke='%23FFFBF1' stroke-width='3' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: left bottom; background-size: 100% 8px;
}
/* Photo de la colonne 2 : 250px de haut, cadrée */
.has-bg-accent.section-content--split .section-content__split-col--aside .section-content__split-media img {
  height: 250px; width: 100%; object-fit: cover;
}

/* Section orange QSN : colonne 2 = photo D'ABORD puis texte + bouton dessous (iso prod) */
.has-bg-accent.section-content--split .section-content__split-col--aside { display: flex; flex-direction: column; }
.has-bg-accent.section-content--split .section-content__split-col--aside .section-content__split-media { order: -1; margin-bottom: 24px; }



/* --- Équipe : carrousel bios riches (Qui sommes-nous) ---
   Pas de padding bas : les photos détourées touchent le bord inférieur. */
.section-team-bios { padding-block: var(--section-pad) 0; }
.section-team-bios__title { font-size: clamp(26px, 2.4vw, 34px); margin: 0 0 28px; }
.section-team-bios__title .accent { color: var(--accent); }
/* Spécificité > .swiper-slide (display:block du CSS Swiper chargé après) */
.iv-team-bios-swiper .swiper-slide.team-bio {
  display: grid; grid-template-columns: 1.2fr 1fr; gap: 48px; align-items: start;
}
@media (max-width: 900px) { .iv-team-bios-swiper .swiper-slide.team-bio { grid-template-columns: 1fr; } }
/* CTA sur fond orange : bouton noir (iso prod) */
.has-bg-accent .btn-primary { background: var(--ink); color: var(--cream); margin-top: 20px; }
.team-bio__name { font-size: 26px; margin: 0 0 18px; }
.team-bio__body h4, .team-bio__body h5 {
  font-family: var(--font-accent, 'Caveat'); font-weight: 400;
  font-size: 35px; line-height: 44px; color: var(--ink); margin: 24px 0 8px;
  display: table; padding-bottom: 6px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 12' preserveAspectRatio='none'%3E%3Cpath d='M3 8c34-6 70-7 104-4 18 1 38 5 90-1' stroke='%23FFA301' stroke-width='3' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: left bottom; background-size: 100% 8px; /* trait dessine GROSSIER (retour 28/07) */
  text-decoration-thickness: 3px; text-underline-offset: 7px;
}
.team-bio__text { padding-bottom: var(--section-pad); }
.team-bio__body p { margin: 0 0 14px; line-height: 1.7; }
.team-bio__photo {
  position: relative;
  display: flex; justify-content: flex-end; align-items: flex-end;
  align-self: stretch;
  padding-right: 4%;
}
.team-bio__photo img { max-width: 100%; max-height: 620px; display: block; }
/* Bulle navy sur la photo (sigle lottie + texte), iso prod */
.team-bio__bubble {
  position: absolute; left: calc(50% - 345px); top: 480px; /* +150px (retour 28/07) */
  width: 280px; min-height: 167px; padding: 14px 22px 20px; /* moins large (338 avant) */
  background: var(--ink); color: var(--cream);
  border-radius: 30px 100px 30px 30px;
  font-family: var(--font-body); font-size: 18px; font-style: italic;
  line-height: 1.45; text-align: center;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  z-index: 3;
}
.team-bio__bubble p { margin: 0; }
/* Flèche lottie sous la bulle : orange, tournée à -90°, animée à chaque slide */
.team-bio__bubble-arrow {
  position: absolute; top: calc(100% + 8px); right: 300px;
  width: 174px; height: 64px; pointer-events: none;
  transform: rotate(-90deg); transform-origin: top right;
}
.team-bio__bubble-arrow svg path[fill] { fill: var(--accent); }
.team-bio__bubble-arrow.is-animating { animation: iv-arrow-in .7s ease-out both; }
@keyframes iv-arrow-in {
  from { opacity: 0; transform: rotate(-90deg) translateX(-16px); }
  to   { opacity: 1; transform: rotate(-90deg) translateX(0); }
}
/* Queue de bulle BD, pointée vers la tête du personnage */
.team-bio__bubble::after {
  content: ''; position: absolute;
  right: -13px; top: 58%;
  border: 14px solid transparent;
  border-left-color: var(--ink);
  border-right-width: 0;
}
.team-bio__bubble-lottie { width: 62px; height: 72px; margin-bottom: 4px; }
@media (max-width: 900px) { .team-bio__bubble { position: static; width: auto; margin-bottom: 16px; border-radius: 20px; } }
.iv-team-bios-swiper { position: relative; }
.iv-team-bios-swiper .team-bio__nav {
  position: absolute; top: 0; left: min(48%, 460px); z-index: 5;
  display: flex; gap: 8px;
}
.iv-team-bios-swiper .swiper-button-prev,
.iv-team-bios-swiper .swiper-button-next {
  position: static; width: 34px; height: 34px; margin: 0;
  background: var(--accent); color: var(--cream); border: none; border-radius: 8px; cursor: pointer;
}
.iv-team-bios-swiper .swiper-button-prev::after,
.iv-team-bios-swiper .swiper-button-next::after { font-size: 14px; font-weight: 700; }

/* --- Quartiers (flip cards) --- */
.section-quartiers { padding-block: var(--section-pad); }
/* Prod : titre et intro centrés, intro pleine largeur sur une ligne */
.section-quartiers h2, .section-quartiers .section-intro { text-align: center; }
.section-quartiers .section-intro { max-width: none; margin-inline: auto; }
.quartier-card { perspective: 1000px; }
.quartier-card__inner {
  position: relative; height: 580px; /* prod : cartes quartier 368×580 */
  transform-style: preserve-3d; -webkit-transform-style: preserve-3d;
  transition: transform 0.6s ease-out; will-change: transform;
}
.quartier-card:hover .quartier-card__inner,
.quartier-card:focus-within .quartier-card__inner { transform: rotateY(180deg); }
.quartier-card__front, .quartier-card__back {
  position: absolute; inset: 0;
  backface-visibility: hidden; -webkit-backface-visibility: hidden;
  border-radius: 30px 100px 30px 30px;
  display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center;
  overflow: hidden;
}
.quartier-card__front {
  background: var(--ink) center / cover no-repeat;
  transform: translateZ(0);
}
.quartier-card__front::before { content: ""; position: absolute; inset: 0; background: #12272F61; border-radius: inherit; backface-visibility: hidden; -webkit-backface-visibility: hidden; }
.quartier-card__front > * { position: relative; z-index: 1; }
.quartier-card__label { font-family: var(--font-body); color: var(--cream); font-weight: 600; font-size: 22px; line-height: 45px; }
.quartier-card__front h3 { font-family: var(--font-accent); font-weight: 400; color: var(--cream); font-size: 40px; line-height: 30px; margin: 0; }
.quartier-card__back { background: var(--accent); color: var(--ink); transform: rotateY(180deg) translateZ(0); padding: var(--space-5); gap: 14px; }
.quartier-card__back h3 { font-family: var(--font-accent); font-weight: 400; color: var(--ink); font-size: var(--title-special); line-height: 1.05; margin: 0; }
.quartier-card__back p { font-family: var(--font-body); font-weight: 400; color: var(--ink); font-size: 18px; margin: 0; }
.quartier-card__back .card__link { align-self: center; margin-top: 4px; padding: 5px 15px; background: var(--ink); color: var(--cream); border: 3px solid var(--ink); border-radius: 30px; font-family: var(--font-body); font-weight: 500; text-transform: uppercase; font-size: 16px; text-decoration: none; transition: background var(--transition), color var(--transition); }
.quartier-card__back .card__link:hover { background: transparent; color: var(--ink); }

/* --- Team slider --- */
.section-team-slider { padding-block: var(--section-pad) 0; } /* prod : la photo touche le bas de la section */
.section-team-slider__inner { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-6); align-items: center; }
.section-team-slider__intro { position: relative; }
.section-team-slider__intro .btn { margin-top: var(--space-4); }
.section-team-slider__arrow { position: absolute; right: -12px; bottom: 38px; width: 212px; transform: rotate(-39deg); transform-origin: bottom right; pointer-events: none; z-index: 1; }
.section-team-slider__carousel { min-width: 0; }
/* Iso prod : slide 744 = bulle (379, à 127px du haut) à gauche + photo (360) collée en bas à droite */
.section-team-slider .team-slide { position: relative; display: flex; justify-content: flex-end; align-items: flex-end; padding-bottom: 0; min-height: 600px; }
.team-slide__photo img { width: 360px; max-width: 100%; height: auto; display: block; border-radius: var(--r-md); }
/* Bulle team iso prod (24/07) : flex colonne gap 15, padding 20 uniforme,
   soulignement du nom fin (1px dessiné, façon RoughNotation prod) */
/* prod : 51 % de la slide (292 à 573, 379 à 744) ; top mesuré prod = 54px à
   viewport 1278 et 127px à pleine largeur → interpolation vw bornée */
.team-slide__card { position: absolute; left: 0; top: clamp(20px, 24vw - 253px, 127px); width: 51%; z-index: 20; background: var(--ink); color: var(--cream); padding: 20px; border-radius: 30px 100px 30px 30px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 15px; }
.team-slide__icon { width: 62px; margin: 0; }
.team-slide__name { font-family: var(--font-accent); color: var(--cream); margin: 0; padding-bottom: 8px; width: fit-content; font-size: var(--title-special); font-weight: 400; line-height: 1.5; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 8' preserveAspectRatio='none'%3E%3Cpath d='M2 5c50-3 130-3.5 196-1' stroke='%23FFA301' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: center bottom; background-size: 100% 5px; }
.team-slide__bio { font-size: var(--body-seo); color: var(--cream); }
/* padding-left compensé : la flèche prev (left:-15px) débordait du swiper et
   son overflow hidden la coupait — le clip se fait au padding-box */
.swiper.iv-team-swiper { padding: 0 0 0 18px; margin-left: -18px; }
/* Prod : flèches 35px à mi-hauteur, de part et d'autre de la bulle */
.iv-team-swiper .swiper-button-prev, .iv-team-swiper .swiper-button-next { top: 218px; bottom: auto; width: 35px; height: 35px; margin: 0; background: var(--accent); color: var(--cream); border: 0; border-radius: 5px; z-index: 21; /* au-dessus de la bulle (20) */ }
/* référentiel décalé de 18px par le padding compensé du swiper */
.iv-team-swiper .swiper-button-prev { left: 3px; right: auto; }
.iv-team-swiper .swiper-button-next { left: calc(51% - 13px); right: auto; } /* suit le bord droit de la bulle (51 %) */
.iv-team-swiper .swiper-button-prev::after, .iv-team-swiper .swiper-button-next::after { font-size: 16px; font-weight: 800; }
.iv-team-swiper .swiper-pagination { display: none; } /* prod : pas de dots */
@media (max-width: 992px) { .section-team-slider__inner { grid-template-columns: 1fr; } .section-team-slider__arrow { display: none; } }

/* --- Lottie cards --- */
.card__lottie svg { width: 100% !important; height: 100% !important; display: block; }

@media (max-width: 992px) {
  .section-content__inner { grid-template-columns: 1fr; }
  .section-content__inner.is-image-left .section-content__media { order: 0; }
}


/* --- Pré-footer global : chiffres clés + newsletter (ex-footer Elementor) --- */
.site-prefooter { background: var(--ink); color: var(--cream); padding: 56px 0 0; }
/* Prod mesurée (24/07) : titre Poppins 400 25px, chiffres 45px, labels Caveat 25px
   soulignés orange (RoughNotation underline 2px → trait SVG fin) */
.site-prefooter__title { text-align: center; font-size: 25px; font-weight: 400; margin: 0 0 36px; color: var(--cream); }
.site-prefooter__counters {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px;
  max-width: 900px; margin: 0 auto 48px; text-align: center;
}
@media (max-width: 700px) { .site-prefooter__counters { grid-template-columns: 1fr; } }
.site-prefooter__number {
  display: block; font-family: var(--font-body); font-weight: 700;
  font-size: 45px; color: var(--accent); font-variant-numeric: tabular-nums;
}
.site-prefooter__label {
  font-family: var(--font-accent, 'Caveat'); font-size: 25px; color: var(--cream);
  display: inline-block; padding-bottom: 6px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 8' preserveAspectRatio='none'%3E%3Cpath d='M2 5c50-3 130-3.5 196-1' stroke='%23FFA301' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: center bottom; background-size: 100% 5px;
}
/* Bandeau photo : titre en haut, à cheval sur la transition navy → footer orange */
.site-prefooter__newsletter {
  position: relative; z-index: 3;
  background-color: var(--ink);
  background-size: cover; background-position: center 65%;
  border-radius: 20px; padding: 36px 48px;
  min-height: 430px;
  text-align: center;
  margin-bottom: -215px;
  overflow: hidden;
}
/* Retour Cédric 23/07 : voile dégradé transparent → noir vers le bas (lisibilité) */
.site-prefooter__newsletter::before {
  content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.78) 100%);
}
.site-prefooter__nl-title, .site-prefooter__nl-sub, .site-prefooter__nl-form { position: relative; z-index: 1; }
.site-prefooter__nl-sub { color: #fff; font-size: 18px; margin: 12px auto 0; text-shadow: 0 1px 14px rgba(18, 39, 47, .5); }
.site-prefooter__nl-title {
  color: #fff; font-size: clamp(22px, 2.4vw, 32px);
  max-width: 34ch; margin: 0 auto;
  text-shadow: 0 1px 14px rgba(18, 39, 47, .5);
}
.site-prefooter__nl-title .text-accent { color: var(--accent); }
/* Le footer laisse la place à la moitié basse du bandeau */
.site-footer { padding-top: 250px !important; }
.site-footer__bottom-inner { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; }
.site-footer__bottom-links a { color: inherit; text-decoration: none; }
.site-footer__bottom-links a:hover { text-decoration: underline; }

/* --- Section contact / confirmation (photo + carte formulaire ou merci) — iso prod /nous-contacter/ --- */
.section-contact-split {
  position: relative; display: flex; align-items: center;
  min-height: calc(100vh - 72px); padding: 4vw 0; overflow: hidden;
  color: var(--paper);
}
.contact-split__bg { position: absolute; inset: 0; background-size: cover; background-position: center; }
/* Fil d'ariane des LP sur fond photo — prod mesurée : lien crème #FFFBF1,
   page courante orange #FFA301, 12px (le gris legacy #777E80 est illisible ici) */
.section-contact-split .breadcrumb li,
.section-contact-split .breadcrumb a { color: var(--cream); }
.section-contact-split .breadcrumb li:last-child { color: var(--accent); }
/* le markup LP contient déjà le séparateur « | » (iso prod) : pas de « › » en plus */
.section-contact-split .breadcrumb-item + .breadcrumb-item::before { content: none; }
/* Carte Google Maps bord à bord (prod : section e-con-full pleine largeur, sans padding) */
.iv-map-fullbleed { margin-inline: calc(50% - 50vw); }
.page-id-13358 .section-html { padding-block: 0; }

/* Fil d'ariane du hero standard — prod LP estimation en ligne : centré,
   tout orange 12px, séparateur « | » (::after du 1er item en prod) */
.section-hero .breadcrumb { justify-content: center; margin-bottom: 14px; }
.section-hero .breadcrumb li, .section-hero .breadcrumb a { color: #777E80; font-size: 12px; } /* gris legacy + courante orange (prod 732/13356/listing) */
.section-hero .breadcrumb li.active { color: var(--accent); }
/* Exception 13346 (LP estimation en ligne, validee) : tout orange */
.page-id-13346 .section-hero .breadcrumb li, .page-id-13346 .section-hero .breadcrumb a { color: var(--accent); }
.section-hero .breadcrumb-item + .breadcrumb-item::before { content: none; }
/* séparateur | désormais GLOBAL (.breadcrumb li::after) — override héros supprimé, uniformisation 26/07 */

/* Estimation en ligne (13346) : la prod n'affiche pas le bloc titre + compteurs
   (footer « Vendre » : CTA Vendez rapidement + newsletter directement) */
.page-id-13346 .site-prefooter__title, .page-id-13346 .site-prefooter__counters { display: none; }
/* Flèche déco sous la carte du widget (prod : lottie fleche_3_orange 194px,
   rotation -38°, 233px à gauche du bouton RDV et 138px sous son haut) */
.page-id-13346 .section-html .container p:has(> a.btn) { position: relative; }
/* place pour la fleche sous le bouton (prod : ~200px de creme sous le bouton RDV) */
.page-id-13346 .section-html { padding-bottom: 180px; }
.page-id-13346 .section-html .container p:has(> a.btn)::before {
  content: ""; position: absolute; pointer-events: none;
  left: calc(50% - 445px); top: 138px;
  width: 194px; aspect-ratio: 174 / 64;
  background: url('../images/fleche_3_orange.svg') no-repeat center / contain;
  transform: rotate(-38deg);
}
@media (max-width: 767px) { .page-id-13346 .section-html .container p:has(> a.btn)::before { display: none; } }
.contact-split__bg::after { content: ""; position: absolute; inset: 0; background: rgba(18, 39, 47, 0.68); }
.contact-split__inner {
  position: relative; z-index: 2; width: 100%;
  display: grid; grid-template-columns: 1fr 640px; gap: 60px; align-items: center;
}
.contact-split__title { font-size: 45px; line-height: 55px; font-weight: 700; margin: 0 0 15px; position: relative; }
.contact-split__title-deco { position: absolute; left: -46px; top: -18px; width: 42px; height: 34px; transform: rotate(-90deg); }
.contact-split__body { font-size: var(--body); }
.contact-split__cta { margin-top: 15px; }
.contact-split__coords { list-style: none; margin: 25px 0 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.contact-split__coords li { display: flex; align-items: center; gap: 12px; font-size: 18px; list-style: none; }
/* Prod mesurée 24/07 : liens NON soulignés (spécificité > .has-color-paper a),
   icônes = glyphe orange dans un carré outline orange (fond transparent) */
.section-contact-split .contact-split__coords a:not(.btn) { color: inherit; text-decoration: none; }
.contact-split__ico { display: inline-flex; width: 32px; height: 32px; align-items: center; justify-content: center; background: transparent; border: 2px solid var(--accent); border-radius: 8px; color: var(--accent); flex: 0 0 auto; }
.contact-split__ico svg { width: 18px; height: 18px; }
.contact-split__social { display: flex; align-items: center; gap: 14px; margin-top: 25px; }
/* Prod : Caveat 25px + trait orange fin (RoughNotation) ; icônes sociales crème ~28px */
.contact-split__social-label {
  font-family: var(--font-accent); font-size: 25px; text-decoration: none; margin-right: 4px;
  display: inline-block; padding-bottom: 6px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 8' preserveAspectRatio='none'%3E%3Cpath d='M2 5c50-3 130-3.5 196-1' stroke='%23FFA301' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: left bottom; background-size: 100% 5px;
}
.contact-split__social a { color: var(--paper); display: inline-flex; }
.contact-split__social svg { width: 28px; height: 28px; }
.contact-split__reviews { display: inline-flex; align-items: center; gap: 10px; margin-top: 22px; color: var(--paper); text-decoration: none; font-size: 16px; }
img.contact-split__reviews-ico { height: 21px; width: auto; } /* prod : logo OS webp 21px (comme le hero home) */
.contact-split__social-logo { height: 30px; width: auto; } /* prod : glyphe OS 30px dans la rangée sociale */
.contact-split__stars { color: #ffd700; font-size: 17px; line-height: 1; }
.contact-split__reviews-label { text-decoration: underline; }
/* Carte crème */
.contact-split__card {
  background: var(--cream); color: var(--ink);
  border-radius: 30px; padding: clamp(24px, 2.6vw, 44px);
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.25);
}
.contact-split__card--embed { padding: 12px; }
.contact-split__card--embed iframe { display: block; width: 100%; border-radius: 20px; }
.contact-split__card-sigle { width: 74px; height: 74px; margin: 0 auto 8px; }
.contact-split__card-title { font-family: var(--font-accent); font-size: 35px; line-height: 1.1; font-weight: 700; text-align: center; margin: 0 0 15px; }
.contact-split__card-body { font-size: 18px; line-height: 1.5; text-align: center; }
.contact-split__card > .btn { display: block; width: fit-content; margin: 20px auto 0; }
@media (max-width: 1100px) {
  .contact-split__inner { grid-template-columns: 1fr; gap: 40px; }
}

/* --- Socle formulaires JetFormBuilder (iso carte GHL prod) --- */
.jet-form-builder { font-family: var(--font-body); }
.jet-form-builder__field-wrap input.jet-form-builder__field,
.jet-form-builder__field-wrap select.jet-form-builder__field,
.jet-form-builder__field-wrap textarea.jet-form-builder__field {
  width: 100%; background: #fff; color: var(--ink);
  border: 1.5px solid var(--accent); border-radius: 8px;
  padding: 10px 14px; font-family: var(--font-body); font-size: 15px; line-height: 1.4;
  transition: border-color var(--transition), box-shadow var(--transition);
}
.jet-form-builder__field-wrap .jet-form-builder__field:focus { outline: none; border-color: var(--ink); box-shadow: 0 0 0 3px rgba(255, 163, 1, 0.25); }
.jet-form-builder__field-wrap textarea.jet-form-builder__field { min-height: 96px; resize: vertical; }
.jet-form-builder__label { font-size: 14px; font-weight: 500; color: var(--ink); margin-bottom: 6px; display: block; }
.jet-form-builder__required { color: var(--accent); }
.jet-form-builder-row { margin-bottom: 14px; }
.jet-form-builder .wp-block-columns { gap: 14px; margin-bottom: 0; }
/* Checkboxes (vous êtes / consentement) */
.jet-form-builder__field-label.for-checkbox { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; line-height: 1.45; }
.jet-form-builder__field-label.for-checkbox input[type="checkbox"] { width: 16px; height: 16px; margin-top: 2px; accent-color: var(--accent); flex: 0 0 auto; }
/* Groupe de checkboxes en ligne (Vous êtes : Propriétaire / Locataire) */
.field-type-checkbox-field .checkboxes-wrap { display: flex; flex-wrap: wrap; gap: 8px 28px; }
.iv-form-gdpr .jet-form-builder__field-label.for-checkbox { font-weight: 600; }
.iv-form-gdpr .jet-form-builder__desc, .jet-form-builder__desc { font-size: 13px; color: var(--ink); font-weight: 400; }
.jet-form-builder__desc a { color: #1a6ecc; text-decoration: underline; }
/* Submit : bouton orange pleine largeur (iso carte GHL) */
.jet-form-builder__action-button, .jet-form-builder__submit {
  display: block; width: 100%; background: var(--accent); color: var(--cream);
  border: 3px solid var(--accent); border-radius: 50px;
  font-family: var(--font-body); font-size: 17px; font-weight: 500; line-height: 24px;
  padding: 7px 15px; cursor: pointer;
  transition: background var(--transition), color var(--transition);
}
.jet-form-builder__action-button:hover, .jet-form-builder__submit:hover { background: var(--ink); border-color: var(--ink); color: var(--cream); }
/* Messages de validation / succès */
.jet-form-builder-message--error, .jet-form-builder__field-error { color: #cf0000; font-size: 13px; margin-top: 4px; }
.jet-form-builder-message--success { background: var(--accent-soft, #fff3d6); border-radius: 8px; padding: 14px 18px; font-size: 16px; margin-top: 12px; }

/* Newsletter dans le bandeau pré-footer (iso embed GHL prod : centré, compact) */
.site-prefooter__nl-form { max-width: 760px; margin: 20px auto 0; }
.site-prefooter__nl-form .jet-form-builder__field-wrap input.jet-form-builder__field { background: #fff; border-color: #fff; }
.site-prefooter__nl-form .jet-form-builder__field-label.for-checkbox { color: #fff; font-size: 13px; text-shadow: 0 1px 3px rgba(0, 0, 0, 0.6); font-weight: 400; }
.site-prefooter__nl-form .jet-form-builder__desc { color: #fff; text-shadow: 0 1px 3px rgba(0, 0, 0, 0.6); }
.site-prefooter__nl-form .jet-form-builder__desc a { color: #fff; }
/* Retour Cédric 23/07 (iso prod) : email → bouton pleine largeur → consentement
   (checkbox + texte) sous le bouton, aligné à gauche comme une 1re colonne. */
.site-prefooter__nl-form .jet-form-builder { display: flex; flex-direction: column; }
.site-prefooter__nl-form .jet-form-builder-row.field-type-submit-field { order: 1; }
.site-prefooter__nl-form .jet-form-builder-row.field-type-checkbox-field { order: 2; text-align: left; margin-top: 14px; }
.site-prefooter__nl-form .jet-form-builder__action-button { width: 100%; margin: 12px 0 0; padding: 5px 40px; display: block; }

/* Popin contact fiche bien : ajustements du form JFB dans la popin prod */
.popin_contact_title_deco { width: 60px; height: 60px; } /* position/rotation gerees par apimo-legacy (.popin_contact_title_bien .popin_contact_title_deco : absolute, left -60, top -26, rotate -114deg, iso prod) */
.iv-popin-form { position: relative; }
.iv-popin-form .jet-form-builder { max-width: none; }
.iv-popin-form .jet-form-builder-row { margin-bottom: 12px; }
.iv-popin-form .jet-form-builder__action-button { width: max-content; max-width: 100%; margin-left: auto; margin-right: 0; }
/* Champs popup : radius uniforme (legacy posait 30px sur #email/#message, 8px ailleurs) */
#popin_contact .jet-form-builder__field-wrap input.jet-form-builder__field:not([type=checkbox]),
#popin_contact .jet-form-builder__field-wrap textarea.jet-form-builder__field { border-radius: 30px; }
/* Bouton submit : fleche blanche comme les autres CTA du site */
#popin_contact .jet-form-builder__action-button::after { content: ''; display: inline-block; width: 16px; height: 14px; margin-left: 10px; vertical-align: middle; background: url('/wp-content/themes/immovendu/assets/images/fleche_blanche.svg') no-repeat center / contain; }
.apimo_send_form_contact_deco { position: absolute; right: 360px; bottom: -8px; width: 96px; height: 110px; pointer-events: none; }
/* Popin sur fond navy : consentement lisible en crème */
#popin_contact .jet-form-builder__field-label.for-checkbox,
#popin_contact .jet-form-builder__desc,
#popin_contact .jet-form-builder__desc a { color: var(--cream); }
@media (max-width: 767px) { .apimo_send_form_contact_deco { display: none; } }

/* Widget avis (Trustindex) dans la colonne texte : aligné à gauche + espacé du texte */
.contact-split__embed { margin-top: 28px; text-align: left; }
.contact-split__embed .ti-widget { margin-left: 0 !important; margin-right: auto !important; text-align: left !important; }

/* --- Bandeau chiffres clés (LP vendre) : même style que les compteurs du pré-footer --- */
.section-stats { padding-block: clamp(30px, 3vw, 55px); }
.section-stats__inner { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; text-align: center; }
.section-stats__number { display: block; font-size: 45px; line-height: 1.1; font-weight: 700; color: var(--accent); }
/* prod : Caveat 35 + soulignement DESSINÉ orange (ep_notation underline RoughNotation,
   stroke 1px, .chiffre-texte) — pas une ligne droite */
.section-stats__label {
  font-family: var(--font-accent); font-size: 35px; text-decoration: none;
  display: inline-block; padding-bottom: 8px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 8' preserveAspectRatio='none'%3E%3Cpath d='M2 5c50-3 130-3.5 196-1' stroke='%23FFA301' stroke-width='1.8' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: center bottom; background-size: 100% 6px;
}
@media (max-width: 767px) { .section-stats__inner { grid-template-columns: 1fr; gap: 18px; } }

/* --- Comparatif 2 cartes (LP vendre) --- */
.section-comparison { padding-block: var(--section-pad); position: relative; }
.section-comparison__heading, .section-comparison__intro { text-align: center; }
.section-comparison__intro { max-width: none; margin-inline: auto; }
.section-comparison__row {
  /* prod : carte traditionnelle en hauteur auto, centrée face à la carte ImmoVendu */
  position: relative; display: grid; grid-template-columns: 1fr 1fr;
  gap: 30px; max-width: 1000px; margin: 25px 0 0 auto; align-items: center;
}
.section-comparison__person {
  /* prod : background-image 400px bottom-left de la section — la tête ne doit
     jamais atteindre le titre ; cadre borné + contain ancré bas-gauche */
  position: absolute; left: calc(-100% * 0.55); top: -70px; bottom: -66px;
  width: 420px; max-width: 38vw; height: calc(100% + 136px);
  object-fit: contain; object-position: left bottom;
  z-index: 0; pointer-events: none; /* derrière les cartes, comme le background prod */
}
.comparison-card {
  /* prod : padding 16.5/33/33, items Poppins 20 */
  position: relative; background: var(--cream); color: var(--ink);
  border-radius: 30px; padding: 16.5px 33px 33px;
}
.comparison-card__lottie { position: absolute; top: 12px; right: 16px; width: 54px; height: 54px; }
/* Sigle centré au-dessus du titre de la carte « Avec ImmoVendu » (prod : 64x80, top 17, centré) */
.comparison-card--accent .comparison-card__lottie { top: 17px; right: auto; left: 50%; transform: translateX(-50%); width: 64px; height: 80px; }
.comparison-card__title { font-family: var(--font-accent); font-weight: 700; font-size: 30px; line-height: 1.2; margin: 0 0 14px; text-align: center; }
/* prod : titre de la carte traditionnelle en Poppins 600 (seule la carte ImmoVendu est manuscrite) */
.comparison-card--plain .comparison-card__title { font-family: var(--font-body); font-weight: 600; line-height: 49px; } /* prod : 30/49 */
.comparison-card__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.comparison-card__list li { list-style: none; position: relative; padding: 9px 0 9px 32px; font-size: 16px; line-height: 24px; } /* prod : 16/24, items 43px (icon-list) */
.comparison-card--plain .comparison-card__list li::before { content: "✕"; position: absolute; left: 2px; top: 9px; color: var(--ink); font-weight: 700; } /* top = padding-top des li */
/* prod : puce = sigle maison ImmoVendu orange (icône icon-logo-icone du kit) */
.comparison-card--accent .comparison-card__list li::before {
  content: ""; position: absolute; left: 0; top: 11px; width: 20px; height: 20px;
  background: var(--accent);
  -webkit-mask: url("../images/logo-icone.svg") no-repeat center / contain;
          mask: url("../images/logo-icone.svg") no-repeat center / contain;
}
@media (max-width: 1100px) {
  .section-comparison__row { max-width: none; margin-left: 0; grid-template-columns: 1fr; }
  .section-comparison__person { display: none; }
}

/* --- Slider biens vendus statiques (LP vendre) --- */
.section-sold-slider { padding-block: var(--section-pad); }
.section-sold-slider h2, .section-sold-slider .section-intro { text-align: center; }
.section-sold-slider .section-intro { max-width: none; }
.swiper.iv-sold-swiper { padding-top: 8px; padding-bottom: 0; }
.sold-card { background: var(--ink); color: var(--cream); border-radius: 20px; overflow: hidden; display: flex; flex-direction: column; }
.sold-card__media { position: relative; }
.sold-card__media img { width: 100%; height: 250px; object-fit: cover; display: block; }
.sold-card__badge {
  position: absolute; top: 14px; left: 14px; z-index: 2;
  background: var(--cream); color: var(--ink); border-radius: 30px;
  font-weight: 600; font-size: 14px; line-height: 1; padding: 8px 16px;
}
.sold-card__body { position: relative; padding: 20px 22px 24px; text-align: center; }
.sold-card__price {
  font-weight: 700; font-size: 30px; line-height: 44px; width: max-content; min-width: 180px;
  margin: 0 auto 8px; padding: 0 16px 18px; text-align: center;
  background: url("../images/zg_orange.svg") no-repeat center bottom / contain;
}
.sold-card__meta { list-style: none; display: flex; justify-content: center; gap: 24px; margin: 0; padding: 0; font-size: 16px; }
.sold-card__meta li { list-style: none; }
/* Flèche de card : MIROIR horizontal — la tête du lottie pointe nativement bas-droite,
   retournée elle pointe bas-gauche vers la pastille prix (retour 28/07 v3) */
.sold-card__arrow { position: absolute; right: 10px; top: 36px; bottom: auto; width: 56px; height: 66px; transform: scale(-1, -1); pointer-events: none; } /* + retournement axe horizontal */

/* --- Lottie déco du CTA (immovendu_solution) --- */
.section-cta__deco { width: min(420px, 60vw); aspect-ratio: 1041 / 998; margin: 15px auto 0; } /* réserve la hauteur de l'animation (stabilité layout) */

/* --- Corrections LP vendre (comparées à la prod) --- */
/* Compteurs sur fond navy : nombres blancs (LP) — le pré-footer garde l'orange */
.section-stats.has-color-paper .section-stats__number { color: inherit; }
/* Processus : gros numéro à gauche + titre Caveat orange (iso prod) */
.process-grid { list-style: none; display: grid; grid-template-columns: repeat(var(--cols, 3), 1fr); gap: 30px 60px; margin: 30px 0 0; padding: 0; }
.process-step { list-style: none; position: relative; padding-left: 95px; } /* place pour le numéro 60px italique */
.process-step__num {
  /* prod LP : grand numéro typographique nu (pas la pastille du kit) */
  position: absolute; left: 0; top: -4px;
  background: none; width: auto; height: auto; display: block; border-radius: 0;
  font-size: 70px; font-style: normal; line-height: 1; font-weight: 700; color: var(--ink);
  font-family: var(--font-accent); /* prod : Caveat 70/700 */
}
.process-step__num::before { content: "0"; }
.process-step__title { font-family: var(--font-accent); font-weight: 700; color: var(--accent); font-size: 28px; margin: 0 0 8px; }
.process-step__body { margin: 0; font-size: 16px; line-height: 1.5; }
/* Cartes vendus iso prod LP (mesures 28/07) : corps crème, radius signature 100 haut-gauche,
   badge orange crème en haut-droite, prix pastille PLEINE orange 35/600, meta empilée centrée
   icônes ink 20px */
.sold-card { background: var(--cream); color: var(--ink); border-radius: 100px 30px 30px 30px; }
.sold-card__badge {
  background: var(--accent); color: var(--cream);
  left: auto; right: 25px; top: 13px; transform: none;
  font-size: 18px; font-weight: 600; line-height: 25px; padding: 5px 24px; border-radius: 20px;
}
.sold-card__price {
  background: var(--accent); color: var(--cream); border: 0;
  border-radius: 30px; font-size: 35px; font-weight: 600; line-height: 49px; padding: 0 28px;
  width: max-content; min-width: 0; margin: 12px auto 8px;
}
.sold-card__meta { flex-direction: column; align-items: center; gap: 5px; color: var(--ink); font-weight: 400; font-size: 20px; }
.sold-card__meta li { position: relative; padding-left: 30px; width: max-content; text-align: left; }
.sold-card__loc::before { content: ""; position: absolute; left: 0; top: 5px; width: 20px; height: 20px; background: var(--ink); -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'><path d='M172.3 501.7C27 291 0 269.4 0 192 0 86 86 0 192 0s192 86 192 192c0 77.4-27 99-172.3 309.7-9.5 13.8-29.9 13.8-39.4 0zM192 272c44.2 0 80-35.8 80-80s-35.8-80-80-80-80 35.8-80 80 35.8 80 80 80z'/></svg>") no-repeat center / contain; mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'><path d='M172.3 501.7C27 291 0 269.4 0 192 0 86 86 0 192 0s192 86 192 192c0 77.4-27 99-172.3 309.7-9.5 13.8-29.9 13.8-39.4 0zM192 272c44.2 0 80-35.8 80-80s-35.8-80-80-80-80 35.8-80 80 35.8 80 80 80z'/></svg>") no-repeat center / contain; }
.sold-card__area::before { content: ""; position: absolute; left: 0; top: 6px; width: 20px; height: 20px; background: var(--ink); -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M177.9 494.1c-18.7 18.7-49.1 18.7-67.9 0L17.9 401.9c-18.7-18.7-18.7-49.1 0-67.9l316.2-316.2c18.7-18.7 49.1-18.7 67.9 0l92.1 92.1c18.7 18.7 18.7 49.1 0 67.9L177.9 494.1zM144 448l48-48-55-55-24 24c-4.7 4.7-12.3 4.7-17 0s-4.7-12.3 0-17l24-24-31-31-24 24c-4.7 4.7-12.3 4.7-17 0s-4.7-12.3 0-17l24-24-24-24 -48 48 144 144z'/></svg>") no-repeat center / contain; mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M177.9 494.1c-18.7 18.7-49.1 18.7-67.9 0L17.9 401.9c-18.7-18.7-18.7-49.1 0-67.9l316.2-316.2c18.7-18.7 49.1-18.7 67.9 0l92.1 92.1c18.7 18.7 18.7 49.1 0 67.9L177.9 494.1zM144 448l48-48-55-55-24 24c-4.7 4.7-12.3 4.7-17 0s-4.7-12.3 0-17l24-24-31-31-24 24c-4.7 4.7-12.3 4.7-17 0s-4.7-12.3 0-17l24-24-24-24 -48 48 144 144z'/></svg>") no-repeat center / contain; }
/* Comparatif : carte 1 fond orange bordée ink (croix ink), carte 2 blanche checks orange */
.comparison-card--plain { background: var(--accent); border: 2px solid var(--ink); }
/* prod 1ff7c8e1 : liste CENTRÉE dans la carte (359px), items 35px serrés (lh24 + pad 5) */
.comparison-card--plain .comparison-card__list { width: max-content; max-width: 100%; margin-inline: auto; gap: 3px; }
.comparison-card--plain .comparison-card__list li { padding: 5px 0 0 32px; }
.comparison-card--plain .comparison-card__list li::before { top: 5px; }
.comparison-card--plain .comparison-card__list li::before { color: var(--ink); }
/* FAQ : titre à gauche, accordéon à droite, barres oranges (iso prod LP) */
/* Titre + intro centrés verticalement face à l'accordéon (prod) */
.section-faq .container--narrow { max-width: none; display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr auto auto 1fr; gap: 20px 15px; align-items: start; } /* prod : 2 colonnes égales 744/744, 15px d'écart */
.section-faq h2 { grid-column: 1; grid-row: 2; margin: 0; }
.section-faq .section-intro { grid-column: 1; grid-row: 3; }
.section-faq .faq-list { grid-column: 2; grid-row: 1 / span 4; margin-top: 0; display: flex; flex-direction: column; gap: 15px; } /* prod : 15px entre pilules */
/* Pilules iso prod (n-accordion 5223e04c) : radius 30, Poppins 18/400, padding 13, chevron 15px,
   hover/ouvert = fond navy texte crème */
.faq-item { background: transparent; border-radius: 0; padding: 0; } /* le padding du composant de base créait de faux écarts */
.faq-item__question {
  background: var(--accent); color: var(--ink); border-radius: 30px;
  padding: 13px 22px; font-weight: 400; font-size: 18px; line-height: 27px; cursor: pointer; /* prod : 18/27, pilule 53px */
  display: flex; align-items: center; gap: 15px; list-style: none;
  transition: background var(--transition), color var(--transition);
}
.faq-item__question::-webkit-details-marker { display: none; }
.faq-item__question::after {
  content: ""; width: 15px; height: 15px; flex: 0 0 auto; background: currentColor;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'><path d='M201.4 342.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 274.7 86.6 137.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z'/></svg>") no-repeat center / contain;
  mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'><path d='M201.4 342.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 274.7 86.6 137.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z'/></svg>") no-repeat center / contain;
  transition: transform var(--transition);
}
.faq-item__question:hover, .faq-item[open] .faq-item__question { background: var(--ink); color: var(--cream); }
.faq-item[open] .faq-item__question::after { transform: rotate(180deg); }
.faq-item__answer { padding: 18px 22px 0; font-size: 16px; line-height: 1.55; }
@media (max-width: 900px) {
  .section-faq .container--narrow { grid-template-columns: 1fr; }
  .section-faq .faq-list { grid-column: 1; grid-row: auto; }
}

/* --- Hero vidéo (LP vendre) : 50/50 plein viewport + indicateur scroll --- */
.section-hero--video {
  position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 40px;
  align-items: center; min-height: calc(100vh - 72px); padding: 4vw;
  overflow: hidden;
}
.section-hero--video .section-hero__bg { position: absolute; inset: 0; background-size: cover; background-position: center; z-index: 0; }
.section-hero--video .section-hero__bg::after { content: ""; position: absolute; inset: 0; background: rgba(18, 39, 47, 0.7); } /* prod : overlay 0.7 */
.section-hero--video .section-hero__split-text, .section-hero--video .section-hero__split-embed { position: relative; z-index: 1; }
.section-hero--video .section-hero__scroll { position: absolute; z-index: 1; }
.section-hero--video.section-hero--split { padding: 4vw !important; }
.section-hero--video .section-hero__split-text { max-width: 640px; margin-left: auto; }
.section-hero--video .section-hero__split-text .btn { align-self: flex-start; }
.section-hero--video h1 { font-size: 45px; line-height: 55px; margin: 0 0 15px; position: relative; }
.section-hero--video .section-hero__sub { font-size: 18px; margin-bottom: 20px; }
.section-hero--video .section-hero__split-embed { max-width: 756px; width: 100%; } /* prod : la vidéo remplit sa colonne */
.section-hero__scroll {
  position: absolute; left: 50%; bottom: 26px; transform: translateX(-50%);
  display: flex; flex-direction: column; align-items: center; gap: 8px;
  color: inherit; text-decoration: none; font-size: 14px;
}
.section-hero__mouse {
  width: 26px; height: 42px; border: 2px solid currentColor; border-radius: 14px;
  display: flex; justify-content: center; padding-top: 7px;
}
.section-hero__mouse span { width: 4px; height: 9px; background: currentColor; border-radius: 2px; animation: iv-scroll-hint 1.6s infinite; }
@keyframes iv-scroll-hint { 0% { transform: translateY(0); opacity: 1; } 70% { transform: translateY(12px); opacity: 0; } 100% { opacity: 0; } }
@media (max-width: 991px) { .section-hero--video { grid-template-columns: 1fr; } .section-hero--video .section-hero__split-text { margin-left: 0; } }

/* --- Page estimation pilier : tuiles hero, cartes nues, carte grise, rangée de boutons --- */
.iv-btn-row { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 20px; }
.iv-estim-tiles { position: relative; display: flex; gap: 20px; margin: 22px 0; }
.iv-estim-tile {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px;
  width: 190px; padding: 18px 14px; text-align: center;
  background: var(--ink); color: var(--cream); border-radius: 14px;
  font-weight: 600; font-size: 14px; text-transform: uppercase; text-decoration: none;
  transition: background var(--transition);
}
.iv-estim-tile:hover { background: var(--accent); }
.iv-estim-tile__lottie { width: 58px; height: 58px; } /* jsons estimation-domicile/en-ligne : orange natif */
.iv-estim-tiles__arrow { width: 200px; height: 97px; align-self: center; transform: scaleX(-1); pointer-events: none;
  background: url("../images/fleche_3_orange.svg") no-repeat center / contain; } /* prod : 200x97, miroir, ORANGE (svg statique, le lottie rend navy) */
.iv-estim-tiles__arrow svg { display: none; }
/* Cartes nues (lottie + texte, sans fond) — section marché niçois */
.section-cards.is-cards-naked .card { background: transparent; color: inherit; box-shadow: none; border-radius: 0; padding: 0; }
.section-cards.is-cards-naked .card__body { color: inherit; font-size: 16px; }
.section-cards.is-cards-naked .card__lottie { width: 90px; height: 90px; }
/* Conclusion de la grille : boutons centrés */
.cards-conclusion { background: var(--paper); color: var(--ink); }
.cards-conclusion .iv-btn-row { justify-content: center; }
/* Carte grise « état du marché » */
.iv-gray-card {
  position: relative; background: #4c4a48; color: var(--paper);
  border-radius: 30px; padding: clamp(28px, 4vw, 60px);
  max-width: 1200px; margin-inline: auto;
}
.iv-gray-card h2 { margin-top: 0; }
.iv-gray-card__arrow { position: static; display: block; width: 250px; height: 105px; margin: -25px auto 0; transform: rotate(180deg); pointer-events: none;
  background: url("../images/fleche_3_orange.svg") no-repeat center / contain; } /* demi-tour + remontée dans la box (retour 28/07) */
.iv-gray-card__arrow svg { display: none; }

/* Page pilier estimation (13362) : hero 2/3 texte, 1/3 image (proportions prod) */
.page-id-13362 .section-hero--split { grid-template-columns: 1.9fr 1fr; }
.page-id-13362 .section-hero__split-text { max-width: 980px; }
.page-id-13362 .section-richtext .container--narrow, .page-id-13362 .section-richtext .container { max-width: none; }

/* Citation (page estimation) : grosse quote orange + signature avec trait (iso prod) */
/* Citations de sections : même style que les citations d'articles (guillemet orange, 30/700, signature Caveat + trait) */
.section-content__body blockquote, .section-content__text blockquote {
  position: relative; margin: 28px 0 0; padding: 0;
  font-size: 30px; font-weight: 700; line-height: 1.35; color: var(--ink);
}
.section-content__body blockquote p, .section-content__text blockquote p { font-size: inherit; font-weight: inherit; margin: 0 0 10px; }
.section-content__body blockquote > p:first-of-type::before, .section-content__text blockquote > p:first-of-type::before {
  content: "\201C"; font-family: Georgia, serif; font-size: 90px; line-height: 0; color: var(--accent); vertical-align: -32px; margin-right: 14px;
}
.section-content__body blockquote footer, .section-content__text blockquote footer {
  margin-top: 12px; font-family: var(--font-accent); font-size: 25px; font-weight: 700;
}
.section-content__body blockquote footer::before, .section-content__text blockquote footer::before {
  content: ""; display: inline-block; width: 45px; height: 3px; background: var(--accent); vertical-align: middle; margin-right: 12px;
}
/* Boutons outline sur fond sombre (carte grise) : bordure crème */
.iv-gray-card .btn-outline { border-color: var(--cream); color: var(--cream); }
.iv-gray-card .btn-outline:hover { background: var(--cream); color: var(--ink); }

/* --- Page Enregistrer ma recherche : compléments au CSS legacy --- */
/* Grille critères / infos : 2 colonnes larges centrées, champs pleine largeur (iso prod) */
.save_search .form_container {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px 24px;
  max-width: 1000px; margin: 20px auto 0;
}
.save_search .form_container label { display: block; font-size: 14px; font-weight: 500; margin-bottom: 6px; }
.save_search .form_container input,
.save_search .form_container select {
  width: 100%; background: var(--ink); color: var(--cream);
  border: 0; border-radius: 30px; padding: 10px 18px;
  font-family: var(--font-body); font-size: 14px;
}
.save_search .form_container input::placeholder { color: rgba(255, 251, 241, 0.6); }
@media (max-width: 700px) { .save_search .form_container { grid-template-columns: 1fr; } }
/* Pills composition : radios cachés, ronds navy (mêmes classes que la popin avancée) */
.save_search .popin_advanced_search_checkbox_group { max-width: 1000px; margin: 18px auto 0; }
.save_search .popin_advanced_search_checkbox_group input[type="radio"] { position: absolute; opacity: 0; pointer-events: none; }
.save_search .popin_advanced_search_label { font-size: 14px; font-weight: 500; margin-bottom: 8px; }
.save_search .popin_advanced_search_checkbox {
  display: inline-flex; align-items: center; justify-content: center;
  width: 30px; height: 30px; margin-right: 10px;
  background: var(--ink); color: var(--cream); border-radius: 50%;
  font-size: 13px; font-weight: 600; cursor: pointer;
  transition: background var(--transition);
}
.save_search .popin_advanced_search_checkbox:hover { background: var(--accent); }
.save_search input[type="radio"]:checked + .popin_advanced_search_checkbox { background: var(--accent); }
/* Tuiles caractéristiques : rangée centrée, icônes 88px */
.save_search .apimo_title_h2.caracteristique { margin-bottom: 18px; }
.save_search > form > input[type="checkbox"][id] { position: absolute; opacity: 0; pointer-events: none; }
.save_search .caracteristique_checkbox {
  display: inline-flex; flex-direction: column; justify-content: flex-end; align-items: center;
  width: 88px; height: 88px; margin: 0 12px 10px; padding-bottom: 8px;
  border: 2px solid var(--ink); border-radius: 16px;
  background-repeat: no-repeat; background-position: center 12px; background-size: 42px;
  font-size: 13px; cursor: pointer; text-align: center;
  transition: border-color var(--transition), color var(--transition);
}
.save_search .caracteristique_checkbox:hover { border-color: var(--accent); color: var(--accent); }
.save_search form { text-align: center; }
.save_search .form_container, .save_search .popin_advanced_search_checkbox_group, .save_search .save_search_accept { text-align: left; }

.save_search .apimo_title_h1 { display: flex; align-items: flex-start; justify-content: center; gap: 4px; }
.save_search__deco { display: inline-block; width: 60px; height: 60px; flex: 0 0 auto; margin-top: -14px; }
.save_search .error-messages { text-align: center; }
.save_search_accept { max-width: 520px; margin: 26px auto 0; font-size: 13px; line-height: 1.5; text-align: left; }
.save_search_accept label { display: flex; gap: 10px; align-items: flex-start; }
.save_search_accept input { width: 15px; height: 15px; margin-top: 2px; accent-color: var(--accent); flex: 0 0 auto; }
.save_search_accept a { color: #1a6ecc; }
.save_search_submit { text-align: center; margin: 22px 0 60px; }

/* --- Cartes de biens vendus (page rétention /biens-vendus/) --- */
/* Languette « Déjà vendu » : haut-gauche de l'image, logo maison + Caveat orange (iso prod) */
.property-card__sold-flag {
  position: absolute; top: 0; left: 0; z-index: 3;
  display: flex; align-items: center; gap: 10px;
  background: var(--ink); color: var(--cream);
  padding: 14px 22px 16px 16px;
  border-radius: 0 0 26px 0;
}
.property-card__sold-flag svg { width: 34px; height: 32px; background: var(--paper); color: var(--ink); border-radius: 8px; padding: 4px; }
.property-card__sold-flag-text { font-weight: 700; font-size: 18px; line-height: 1; }
.property-card__sold-flag-text em { display: block; font-style: normal; font-family: var(--font-accent); font-weight: 400; color: var(--accent); font-size: 20px; }
/* Prix des vendus en orange (iso prod) */
.property-card--sold .property-card__price { color: var(--accent); }

/* ============ BLOG — articles + archive /articles-du-blog/ ============ */
/* Métriques relevées sur le rendu Elementor prod à 1650px (tools/extract-blog-styles.mjs) :
   H1 Poppins 700 45/55 centré ; H2 orange 45/55 gauche ; H3 Caveat 400 35px navy ;
   p Poppins 16, liens orange ; colonne pleine largeur (gutters 4vw). */

.iv-article__title { font: 700 var(--h1)/1.22 var(--font-body); text-align: center; margin: 10px 0 0; }
.iv-article__meta { text-align: center; font-size: 14px; color: var(--gray); margin: 18px 0 0; }
.iv-article__meta span + span::before { content: "·"; margin: 0 10px; color: var(--accent); }
.iv-article__hero { margin: 30px 0 0; }
.iv-article__hero img { width: 100%; height: auto; display: block; }

.iv-article .entry-content { font-size: var(--article-size); }
/* Règle typo 25/07 (Cédric) : H2 d'article = style home (45/700, navy) ; les sous-sections
   sont des H3 32/500 orange (conversion structure) */
.iv-article .entry-content h2 { font: 700 var(--h2)/var(--h2-lh) var(--font-body); color: var(--ink); margin: 40px 0 16px; }
.iv-article .entry-content h3 { font: 500 32px/1.25 var(--font-body); color: #FFA300; margin: 40px 0 16px; } /* regle typo 25/07 : H3 article = 32/500 orange */
.iv-article .entry-content h4 { font: 600 20px/1.3 var(--font-body); margin: 30px 0 10px; }
.iv-article .entry-content p { margin: 16px 0 0; }
.iv-article .entry-content a { color: var(--accent); }
/* les liens-boutons ne doivent pas heriter de l'orange des liens (texte invisible sur fond orange) */
.iv-article .entry-content a.btn-primary { color: var(--cream); }
.iv-article .entry-content a.btn-primary:hover { color: var(--accent); }
.iv-article .entry-content ul, .iv-article .entry-content ol { margin: 16px 0 0 24px; list-style: revert; }
/* le reset frappe les li directement (list-style:none) : puces retablies explicitement */
.iv-article .entry-content ul li { list-style: disc; }
.iv-article .entry-content ol li { list-style: decimal; }
.iv-article .entry-content img { max-width: 100%; height: auto; }
.iv-article .entry-content figure { margin: 30px 0; }
.iv-article .entry-content table { border-collapse: collapse; margin: 20px 0; }
.iv-article .entry-content td, .iv-article .entry-content th { padding: 4px 14px 4px 0; text-align: left; }
/* Citations d articles : style prod (widget blockquote) - guillemets oranges, 30/700 navy, signature Caveat + trait */
.iv-article .entry-content blockquote { margin: 34px 0; padding: 0; border: none; background: transparent; font-style: normal; }
.iv-article .entry-content blockquote p { font-size: 30px; font-weight: 700; line-height: 1.35; color: var(--ink); margin: 0 0 10px; }
.iv-article .entry-content blockquote > p:first-of-type::before { content: "\201C"; font-family: Georgia, serif; font-size: 90px; line-height: 0; color: var(--accent); vertical-align: -32px; margin-right: 14px; }
.iv-article .entry-content blockquote cite { display: block; font-family: var(--font-accent); font-size: 25px; font-weight: 400; font-style: normal; color: var(--ink); margin-top: 6px; }
.iv-article .entry-content blockquote cite::before { content: ""; display: inline-block; width: 45px; height: 3px; background: var(--accent); vertical-align: middle; margin-right: 12px; }
.iv-article .entry-content blockquote cite { font-weight: 700; font-style: normal; display: block; margin-top: 12px; }
/* Décor lottie inline (flèches oranges des articles) */
.iv-article__lottie { margin: 10px auto; }
@media (max-width: 767px) { .iv-article__lottie { display: none; } }
/* Encart à fond plein (petits blocs navy arrondis du rendu Elementor) */
/* Encadres d article (ex flip-box, regle 25/07 : bloc groupe natif + classe stylee par le theme) */
.iv-article__box { background: var(--paper); border: 1px solid #e0d8c8; border-radius: 12px; padding: 24px 28px; margin: 30px 0; }
.iv-article__box h3 { margin-top: 0 !important; }
.iv-article__box figure { margin: 0 0 16px; }
.iv-article .entry-content .iv-article__box img { max-width: 580px; width: 100%; height: auto; border-radius: 8px; } /* specificite > au max-width 100% generique */
/* (25/07 : les flip-box de la migration sont supprimées — règle éditoriale : encadrés .iv-article__box) */

/* --- Archive (Le Blog ImmoVendu) --- */
.iv-blog__head { text-align: center; }
.iv-blog__head h1 { font: 700 var(--h1)/1.22 var(--font-body); margin: 10px 0 25px; }
.iv-blog__head p { font-size: var(--body-seo); line-height: 1.5; margin: 8px 0 0; }
.iv-blog-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 50px 30px; margin-top: 45px; }
@media (max-width: 1024px) { .iv-blog-grid { grid-template-columns: 1fr; } }
.iv-post-card { background: var(--accent); border-radius: 30px; overflow: hidden; color: var(--ink); display: flex; flex-direction: column; box-shadow: 0 0 10px rgba(0, 0, 0, .15); } /* ombre mesuree prod */
/* breadcrumb archive : legacy pose deja " | " en ::after -> pas de chevron ; page courante orange (prod) */
.iv-blog .breadcrumb-item + .breadcrumb-item::before { content: none; }
.iv-blog .breadcrumb a { color: #777E80; }
.iv-blog .breadcrumb .active { color: var(--accent); }
.iv-post-card__thumb { display: block; position: relative; padding-bottom: 40%; } /* ratio prod 295/737 */
.iv-post-card__thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.iv-post-card__body { padding: 25px 50px 35px; }
.iv-post-card__title { font: 600 clamp(24px, 2.2vw, 35px)/1.12 var(--font-body); margin: 0 0 25px; }
.iv-post-card__title a { color: inherit; text-decoration: none; }
.iv-post-card__excerpt { font-size: 16px; line-height: 27px; } /* prod : 16px */
.iv-blog-pagination { text-align: center; font-family: var(--font-accent); font-weight: 600; font-size: 20px; margin: 50px 0 30px; }
.iv-blog-pagination .page-numbers { color: var(--ink); text-decoration: none; margin: 0 5px; }
.iv-blog-pagination .page-numbers.current { color: var(--accent); }

/* --- 404 (iso template Elementor #15743 : photo plein écran + lottie 404) --- */
.iv-404 { min-height: 100vh; background-size: cover; background-position: center; display: flex; align-items: center; justify-content: center; text-align: center; color: var(--paper); }
.iv-404__inner { padding: 60px var(--gutter); }
.iv-404__lottie { width: 357px; max-width: 80vw; margin: 0 auto; }
.iv-404__title { font: 700 var(--h2)/1.2 var(--font-body); margin: 0 0 10px; }
.iv-404 p { margin: 0 0 25px; }
.iv-404__actions { display: flex; gap: 15px; justify-content: center; flex-wrap: wrap; }
.iv-404__btn-light { background: var(--paper); color: var(--ink); border-color: var(--paper); }
.iv-404__btn-light:hover { background: transparent; color: var(--paper); }

/* --- Fiche bien : section « Le quartier » + pivot vendeur (spec SEO Dan) --- */
/* Passe visuelle fiche 25/07 : header en flux (prod = overlay) -> moins d'espace en haut ;
   sections spec a la largeur des sections legacy (60%) : la sidebar fixe plane sur la zone vide a droite */
.apimo_container.single-property-prod { margin-top: 0; padding-top: 40px; } /* specificite : components.css charge avant apimo-legacy */
.single-property-prod .iv-property-quartier,
.single-property-prod .iv-property-similar,
.single-property-prod .iv-property-pivot { width: 60%; } /* arbitrage 26/07 : pivot aligne sur la colonne comme le reste */
@media (max-width: 1024px) {
  .single-property-prod .iv-property-quartier,
  .single-property-prod .iv-property-similar,
  .single-property-prod .iv-property-pivot { width: 100%; }
}
.iv-property-quartier { margin-top: 40px; }
.iv-property-quartier p { max-width: 900px; }
.iv-property-quartier__links { display: flex; flex-wrap: wrap; gap: 10px 30px; margin-top: 14px; }
.iv-property-quartier__links a { color: var(--accent); font-weight: 500; }
.iv-property-pivot { margin-top: var(--section-pad); text-align: center; background: var(--paper); border-radius: 30px; padding: 40px 20px 50px; } /* blanc : la page fiche est crème (26/07), le CTA ressort en carte blanche */
.iv-property-pivot p { max-width: 640px; margin: 12px auto 22px; }

/* Mots-clés manuscrits orange dans les textes (classe du kit prod, utilisée
   par la carte comparatif de /vendre-mon-bien/) */
.txt-souffrance { font-family: var(--font-accent); color: var(--accent); font-size: 25px; font-weight: 700; } /* manuscrit gras (retour 28/07) */

/* ============ Alignement prod (campagne compare-styles du 17/07) ============
   La prod règle ses H2 de LP à 40px (le kit 45px ne sert que sur la home) et
   ses gros titres de cartes à 40px. Overrides scopés aux pages migrées
   concernées — les pages déjà validées par Cédric (home, QSN, /biens/)
   restent sur les tokens du thème. */

/* (règle typo 25/07 : H2 = base --h2 partout — l'ancien scope 40px 13352/13362/13356 est
   supprimé ; ⚠ ne jamais laisser un sélecteur orphelin avec virgule ici : il se rattache à
   la règle suivante et passait tous les H2 de la page en Caveat) */

/* Mentions légales (732) : la prod titre en 32px/500 */
/* (règle typo 25/07 : mentions légales = H2 style home, la base --h2 s'applique) */

/* LP vendre : sous-titres « Vendre seul : / Avec une agence classique : » — prod Caveat 40/700
   + soulignement DESSINÉ orange fin (ep_notation underline sur span.underline-texte, stroke 1px) */
.page-id-13352 .section-content h3 {
  font-size: 40px; font-weight: 700; line-height: 1; font-family: var(--font-accent); color: inherit;
  display: table; padding-bottom: 8px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 8' preserveAspectRatio='none'%3E%3Cpath d='M2 5c50-3 130-3.5 196-1' stroke='%23FFA301' stroke-width='1.8' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: left bottom; background-size: 100% 6px;
}

/* Processus : titres d'étapes 40px lh 1 + titre de section centré comme la prod */
.process-step h3, .process-step__title { font-size: 40px; line-height: 1; }
.section-process h2, .section-process .section-intro { text-align: center; }

/* Carte « Avec ImmoVendu » : titre manuscrit 40px, ~96px d'air au-dessus (prod : titre à 112px du haut de carte, carte 532px) */
.comparison-card--accent .comparison-card__title { font-size: 40px; line-height: 1; margin-top: 95px; } /* prod : titre à 112px du haut (16.5 + 95) */

/* Slider « Nous les avons tous vendus » : photos 300px de haut (prod 474×300),
   coin signature haut-gauche (prod : 100px 30px 0 0) */
.sold-card img { height: 300px; object-fit: cover; border-radius: 100px 30px 0 0; }

/* Estimation Nice : H1 45px comme la prod */
.page-id-13362 h1 { font-size: 45px; }

/* Estimation en ligne (13346) : H1 hero centré comme la prod */
.page-id-13346 .section-hero h1 { text-align: center; }

/* Mentions légales : H1 centré comme la prod */
.page-id-732 .section-richtext h1 { text-align: center; }

/* LP vendre — section éligibilité iso prod : photo + overlay navy 50%,
   min-height 85vh centré, 2 cartes navy 338×181 Caveat cliquables */
.page-id-13352 .section-cards { position: relative; isolation: isolate; min-height: 85vh; display: flex; align-items: center; }
.page-id-13352 .section-cards::before { content: ""; position: absolute; inset: 0; background: rgba(18, 39, 47, .5); z-index: -1; }
.page-id-13352 .section-cards > .container { width: 100%; }
.page-id-13352 .section-cards h2 { text-align: center; color: var(--cream); }
.page-id-13352 .section-cards .cards-grid { display: flex; justify-content: center; gap: 60px; margin-top: 30px; }
.page-id-13352 .section-cards .card { position: relative; background: var(--ink); color: var(--cream); width: 338px; min-height: 181px; justify-content: center; box-shadow: none; }
.page-id-13352 .section-cards .card__title { font-family: var(--font-accent); font-size: 35px; font-weight: 700; color: var(--cream); margin: 0; } /* prod : Caveat 35/700 */
/* toute la carte est cliquable, pas de bouton visible (iso prod) — margin:0 obligatoire,
   sinon le margin-top:auto du .card__link de base absorbe l'espace en absolu (lien 43px en bas) */
.page-id-13352 .section-cards .card__link { position: absolute; top: 0; left: 0; width: 100%; height: 100%; inset: 0; margin: 0; padding: 0; overflow: hidden; text-indent: -999em; background: none; border: 0; }
.section-cards__reviews { margin-top: 60px; text-align: center; }
/* hover prod (60bf47c/4f7dc7b) : la tuile passe orange */
.page-id-13352 .section-cards .card { transition: background var(--transition); }
.page-id-13352 .section-cards .card:hover { background: var(--accent); }

/* ===== LP vendre — passe visuelle du 18/07 (mesures prod au pixel) ===== */
/* Hero vidéo : colonne texte au gutter (prod x66, largeur 744), H1 57px, pas de déco lottie */
.section-hero--video .section-hero__split-text { max-width: 744px; margin-left: 0; padding-inline: 0; } /* prod : texte au gutter, pas de padding interne */
.section-hero--video h1 { font-size: 57px; line-height: 1.16; }
.section-hero--video .section-hero__title-deco { display: none; }
/* Vidéo : remplit sa colonne en 16:9 (prod ~756px) au lieu du 640×360 inline */
.section-hero--video .section-hero__split-embed iframe,
.section-hero--video .section-hero__split-embed video { width: 100%; height: auto; aspect-ratio: 16 / 9; }
/* Sections contenu : images à hauteur naturelle radius 30 (prod 744×496) —
   la règle générique (stretch + radius 250) est calibrée pour la home validée */
.page-id-13352 .section-content__media { min-height: 0; border-radius: 30px; align-self: start; } /* la box colle à l'image (sinon stretch de grille → boîte ombrée plus haute que l'img) */
.page-id-13352 .section-content__media img { position: static; height: auto; }
/* Comparatif : cartes 630px (prod x179→1457), Gaël 400px calé au bord gauche du viewport */
.section-comparison__row { max-width: 1278px; margin-inline: auto; gap: 20px; }
.section-comparison__person { left: calc((1278px - 100vw) / 2); width: 400px; }

/* LP vendre : images méthode — coin haut-gauche 300 (mesure prod), pas de full-bleed.
   La photo équipe (1re section-content de la page) reste en 30 uniforme (prod). */
.page-id-13352 .section-content__media { border-radius: 300px 30px 30px 30px; }
.page-id-13352 .section-content__inner.is-image-left .section-content__media { border-radius: 30px 300px 30px 30px; } /* prod : miroir 300 côté droit (lp-methode-002) */
.page-id-13352 .site-main > section.section-content:nth-of-type(3) .section-content__media { border-radius: 30px; }

/* Bouton clair sur fond orange (bandeau témoignages LP — prod) */
.btn-light { background: var(--paper); color: var(--ink); border-color: var(--paper); }
.btn-light:hover { background: transparent; color: var(--paper); }

/* LP vendre : footer prod « Sumple » = pas de bandeau compteurs (déjà en haut de page) */
/* Bandeau témoignages (section html) : prod 312px de haut → ~80px de respiration
   + photo d'Éric en fond (prod 5344bebc : eric-droite-01.webp bottom left 400px, masquée mobile) */
.page-id-13352 .section-html {
  padding-block: 80px;
  background-image: url("/wp-content/uploads/2025/07/eric-droite-01.webp");
  background-position: bottom left; background-repeat: no-repeat; background-size: 400px auto;
}
@media (max-width: 1024px) { .page-id-13352 .section-html { background-image: none; } }
/* Process : titre + intro centrés (l'intro 60ch doit aussi se centrer en bloc) + CTA centré */
.section-process h2, .section-process .section-intro { text-align: center; margin-inline: auto; }
.section-process__cta { margin: 40px 0 0; text-align: center; }
/* Icône « 3 traits » sur le numéro 01 du process (prod : lottie à x28/y6382, coin haut-gauche du 01) */
.page-id-13352 .process-grid .process-step:first-child::after {
  content: ""; position: absolute; left: -38px; top: -19px; width: 50px; height: 59px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 96 102' fill='none'%3E%3Cg stroke='%23FFA301' stroke-width='12' stroke-linecap='round'%3E%3Cpath d='M7.3 58.5L28.3 11.4'/%3E%3Cpath d='M27.2 72.4L64.7 36.9'/%3E%3Cpath d='M38.9 90.7L89 78.1'/%3E%3C/g%3E%3C/svg%3E") no-repeat center / contain;
  transform: scaleX(-1); pointer-events: none;
}

/* ===== Retours Cédric 28/07 — LP vendre ===== */
/* Déco « 3 traits » orange sur les images de contenu (prod : lottie 3_traits_orange 50x59,
   coin haut-DROIT débordant de 37/41px ; côté GAUCHE en miroir quand l'image est à gauche).
   Version statique en pseudo-élément ; l'overflow du media repasse visible (le radius est
   porté par l'img via border-radius:inherit, rien d'autre ne déborde). */
.page-id-13352 .section-content__media, .page-id-13362 .section-content__media { overflow: visible; }
.page-id-13352 .section-content__media::after, .page-id-13362 .section-content__media::after {
  content: ""; position: absolute; top: -41px; right: -37px; width: 50px; height: 59px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 96 102' fill='none'%3E%3Cg stroke='%23FFA301' stroke-width='12' stroke-linecap='round'%3E%3Cpath d='M7.3 58.5L28.3 11.4'/%3E%3Cpath d='M27.2 72.4L64.7 36.9'/%3E%3Cpath d='M38.9 90.7L89 78.1'/%3E%3C/g%3E%3C/svg%3E") no-repeat center / contain;
  pointer-events: none;
}
.page-id-13352 .section-content__inner.is-image-left .section-content__media::after,
.page-id-13362 .section-content__inner.is-image-left .section-content__media::after { right: auto; left: -38px; transform: scaleX(-1); }

/* « Partie N » : Poppins 18/400 ink, numéro entouré d'une ellipse dessinée (prod circle-texte) */
.page-id-13352 .section-content .eyebrow, .page-id-13362 .section-content .eyebrow { font-family: var(--font-body); font-size: 18px; font-weight: 400; color: var(--ink); }
.page-id-13352 .section-content .eyebrow b, .page-id-13352 .section-content .eyebrow strong,
.page-id-13362 .section-content .eyebrow b, .page-id-13362 .section-content .eyebrow strong {
  font-weight: inherit; position: relative; display: inline-block;
  padding: 2px 10px; margin: 0 2px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 54' fill='none'%3E%3Cpath d='M34 4 C52 3 61 16 57 30 C53 44 35 51 20 47 C6 43 3 28 8 16 C12 7 24 3 37 6' stroke='%23FFA301' stroke-width='2.5' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: center; background-size: 100% 100%;
}
/* Titres DigiPass (title-special) : Caveat 40/700 + soulignement dessiné orange fin (prod underline-texte, stroke 1px) */
.page-id-13352 .section-content h2 .title-special {
  font-size: 40px; font-weight: 700; line-height: 1.2;
  display: inline-block; padding-bottom: 10px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 8' preserveAspectRatio='none'%3E%3Cpath d='M2 5c50-3 130-3.5 196-1' stroke='%23FFA301' stroke-width='1.8' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: left bottom; background-size: 100% 6px;
}
/* CTA « solution révolutionnaire » : 2 flèches lottie autour du titre (prod : fleche_1_blanc
   91x104 à gauche / 75x92 à droite, au niveau du titre). Rendues par section-cta.php sur 13352,
   affichées seulement sur le 1er CTA de la page (6e section). */
.section-cta__inner { position: relative; }
/* Flèches BLANCHES (le lottie termine sur une phase orange → filtre) ; la droite = miroir de la gauche */
.section-cta__arrow { display: none; position: absolute; pointer-events: none; filter: brightness(0) invert(1); }
.page-id-13352 .site-main > section:nth-of-type(6) .section-cta__arrow--left,
.page-id-13352 .site-main > section:nth-of-type(14) .section-cta__arrow--left { display: block; left: 100px; top: -46px; width: 62px; height: 70px; }
.page-id-13352 .site-main > section:nth-of-type(6) .section-cta__arrow--right,
.page-id-13352 .site-main > section:nth-of-type(14) .section-cta__arrow--right { display: block; right: 100px; top: -46px; width: 62px; height: 70px; transform: scaleX(-1); }
/* CTA2 (titre plus large) : flèches aux bords (prod x74/x1478) */
.page-id-13352 .site-main > section:nth-of-type(14) .section-cta__arrow--left { left: 15px; }
.page-id-13352 .site-main > section:nth-of-type(14) .section-cta__arrow--right { right: 15px; }
/* CTA2 : photo de Thomas en fond (prod 783363dd : thomas-droite-01.webp bottom right 400px, masquée mobile) */
.page-id-13352 .site-main > section.section-cta:nth-of-type(14) {
  background-image: url("/wp-content/uploads/2025/07/thomas-droite-01.webp");
  background-position: bottom right; background-repeat: no-repeat; background-size: 400px auto;
}
@media (max-width: 1024px) { .page-id-13352 .site-main > section.section-cta:nth-of-type(14) { background-image: none; } }
/* Bouton de la section vendus : pastille crème texte orange (prod 1212df39) */
.section-sold-slider .section-cta-row .btn {
  background: var(--cream); color: var(--accent); border-color: var(--cream);
}
.section-sold-slider .section-cta-row .btn:hover { background: transparent; color: var(--cream); }
.page-id-13352 .site-prefooter { background: transparent; }
.page-id-13352 .site-prefooter__title, .page-id-13352 .site-prefooter__counters { display: none; }
/* Cartes éligibilité : réserver l'icône lottie (prod ~70px au-dessus du label) */
.page-id-13352 .section-cards .card__lottie { width: 100px; height: 106px; margin: 0 auto 8px; } /* prod : 100x106 */
/* FAQ : pastilles plus serrées comme la prod */
.section-faq .faq-item summary, .section-faq details summary { padding: 13px 22px; }

/* ===== Estimation Nice (13362) — passe visuelle 18/07 ===== */
/* Hero : colonne texte large comme la prod (H1 1048px sur 2 lignes) */
.page-id-13362 .section-hero__split-text { max-width: 1100px; flex: 1 1 62%; }
.page-id-13362 .section-hero__split-media { flex: 1 1 38%; }
/* Carte grise pleine largeur (prod 1518px au gutter) */
.page-id-13362 .iv-gray-card { max-width: none; margin-inline: 0; width: 100%; }
/* Section « avantages » (dernière content) : photo détourée sans cadre ni étirement,
   la citation ne chevauche plus */
.page-id-13362 section.section-content:last-of-type .section-content__media {
  min-height: 0; border-radius: 0; box-shadow: none; overflow: visible;
}
.page-id-13362 section.section-content:last-of-type .section-content__media img {
  position: static; height: auto; object-fit: contain;
}

/* ===== Nos témoignages (13356) — passe visuelle 24/07 ===== */
/* Carte orange texte + vidéo (prod 90334bd : radius 30, padding 4vw, 2 cols 50/50, gap 15) */
.section-content--video-card .video-card {
  display: flex;
  align-items: center;
  gap: 15px;
  background: var(--accent);
  border-radius: 30px;
  padding: 4vw;
}
.section-content--video-card .video-card__text,
.section-content--video-card .video-card__media { flex: 1 1 0; min-width: 0; }
.section-content--video-card .section-content__body { font-size: 20px; }
.section-content--video-card .video-card__media video {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  background: #000;
}
/* Bouton crème / texte orange sur la carte (prod : bg #FFFBF1, color #FFA301, border 3px crème) */
.section-content--video-card .btn-primary { background: var(--cream); border-color: var(--cream); color: var(--accent); }
.section-content--video-card .btn-primary:hover { background: transparent; color: var(--cream); border-color: var(--cream); }
@media (max-width: 860px) {
  .section-content--video-card .video-card { flex-direction: column; padding: 24px; }
}
/* Fil d'ariane : lien gris legacy, page courante orange (prod 13356) */
.page-id-13356 .section-hero .breadcrumb a { color: #777E80; }
/* Sous-titre hero pleine largeur 20px (prod) */
.page-id-13356 .section-hero__sub { font-size: 20px; max-width: none; }
/* Hero 13356 centre (prod : H1 45 + sous-titre 20 centres) */
.page-id-13356 .section-hero__inner { text-align: center; }
.page-id-13356 .section-hero__sub { margin-inline: auto; }

/* ===== Pages listing biens (T2-T5, quartiers) — passe visuelle 24/07 ===== */
/* Breadcrumb centré : liens gris legacy, page courante orange, séparateur | (prod) */
.section-properties-listing .breadcrumb { justify-content: center; margin-bottom: 14px; }
.section-properties-listing .breadcrumb li,
.section-properties-listing .breadcrumb a { color: #777E80; font-size: 12px; }
.section-properties-listing .breadcrumb li.active { color: var(--accent); }
/* le style inline legacy pose deja " | " en ::after (masque sur le dernier) : pas de > ni | en plus */
.section-properties-listing .breadcrumb-item + .breadcrumb-item::before { content: none; }
/* Alerte recherche (prod : h2 35, corps 20, bouton navy plein) */
#creez-votre-alerte.is-script-heading .section-cta__inner > h2 { font-size: 35px; line-height: 1.3; } /* alerte listing : 35 (état validé) */
#creez-votre-alerte .section-cta__body { font-size: 20px; }
#creez-votre-alerte .btn-primary { background: var(--ink); border-color: var(--ink); color: var(--cream); }
#creez-votre-alerte .btn-primary:hover { background: transparent; color: var(--ink); }
/* CTA « Rien trouvé ? Créez votre alerte » (/biens/, classe posée par section-cta.php sur l'intitulé exact) —
   prod : Caveat 35px/35px, titre centré dans un bloc ~371px à 1258px de viewport */
.section-cta.is-alert-cta .section-cta__inner > h2 {
  font-family: var(--font-accent); font-weight: 400;
  font-size: 35px; line-height: 35px;
  max-width: 371px; margin-inline: auto;
}
/* Bloc orange arrondi CENTRE (mesure /biens/ @1243 : panneau 913.89, left 164.55, padding 50.32, radius 30)
   + bouton navy plein texte creme — uniquement ce CTA, le style ACF de la section reste inchange */
.section-cta.is-alert-cta { background: transparent; color: var(--ink); }
.section-cta.is-alert-cta .section-cta__inner {
  max-width: min(914px, 91%);
  background: var(--accent);
  border-radius: 30px;
  padding: 50px;
}
.section-cta.is-alert-cta .section-cta__body { color: var(--ink); }
.section-cta.is-alert-cta .btn-primary { background: var(--ink); border-color: var(--ink); color: var(--cream); }
.section-cta.is-alert-cta .btn-primary:hover { background: transparent; color: var(--ink); border-color: var(--ink); }
/* Liens internes des sections SEO des pages listing : orange comme la prod */
.section-properties-listing ~ .section-content .section-content__body a:not(.btn) { color: var(--accent); }
/* Intro des pages listing : centree pleine largeur 18px (prod) */
.section-properties-listing .section-intro { max-width: none; font-size: 18px; }

/* /biens/ : séquence verticale et grille mesurées sur la production.
   Le header est hors flux ; le fil d’Ariane démarre à 158.39 px desktop et 109.19 px mobile. */
.section-properties-listing.is-biens-listing { padding-top: 158.39px; }
.section-properties-listing.is-biens-listing .breadcrumb-container { margin-bottom: 15px; }
.section-properties-listing.is-biens-listing .breadcrumb { line-height: 19.5px; margin-bottom: 0; }
.section-properties-listing.is-biens-listing .breadcrumb li,
.section-properties-listing.is-biens-listing .breadcrumb a { line-height: 19.5px; }
.section-properties-listing.is-biens-listing .section-heading { line-height: 55px; margin-bottom: 15px; }
.section-properties-listing.is-biens-listing .properties-listing { margin-top: 81px; }
.section-properties-listing.is-biens-listing .properties-grid { margin-top: 90px; }
.section-properties-listing.is-biens-listing .property-card__body { padding-bottom: 35px; }
@media (max-width: 640px) {
  .section-properties-listing.is-biens-listing { padding-top: 109.19px; }
  .section-properties-listing.is-biens-listing .section-heading { line-height: 42px; }
  .section-properties-listing.is-biens-listing .properties-listing { margin-top: 41px; }
  .section-properties-listing.is-biens-listing .properties-grid { width: calc(100% - 20px); margin-inline: auto; row-gap: 30px; }
  .section-properties-listing.is-biens-listing .property-card__body { padding: 28px 20px 55px; }
}

/* ===== Pages listing : sections SEO images + alerte + fleche moteur (prod T2, 24/07) ===== */
/* Colonne image : gros coin top-droit cote exterieur comme la prod (30/250/30/30 des 2 cotes), pas d'ombre */
.section-properties-listing ~ .section-content .section-content__media { border-radius: 30px 250px 30px 30px; box-shadow: none; }
/* /biens/ uniquement (classe posee par section-properties-listing.php) : les images des
   sections SEO gardent l'ombre prod — les T2-T5 restent sans ombre, les cartes aussi */
.section-properties-listing.is-biens-listing ~ .section-content .section-content__media { box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.5); }
/* Texte en 1 seule colonne (la prod ne colonne jamais sur ces pages) */
.section-properties-listing ~ .section-content .section-content__inner.is-text-only .section-content__body { columns: 1; margin-top: var(--space-3); }
/* Alerte : carte orange arrondie centree sur fond CREME (le is-accent-box standard est sur fond navy) */
#creez-votre-alerte.section-cta.is-accent-box { background: var(--cream); }
#creez-votre-alerte .section-cta__inner { max-width: 1320px; }
/* Fleche orange a gauche de la barre moteur (lottie prod : -130/-60, 96x110) */
.filter-container { position: relative; }
.filter-container .iv-filter-fleche { position: absolute; left: -130px; top: -60px; width: 96px; height: 110px; pointer-events: none; z-index: 2; }
@media (max-width: 1350px) { .filter-container .iv-filter-fleche { display: none; } }

/* ===== Pages listing : aeration des textes SEO (retour Cedric 24/07) ===== */
/* Un blanc entre chaque phrase/paragraphe (la prod espace ses widgets de 15px, lh 27) */
.section-properties-listing ~ .section-content .section-content__body p { margin: 0 0 15px !important; } /* !important : contre le reset p d'apimo-frontend-base */
.section-properties-listing ~ .section-content .section-content__body p:last-child { margin-bottom: 0 !important; }
/* Boutons dans les colonnes de texte : decolles du texte */
.section-properties-listing ~ .section-content p.section-cta-row { margin: 30px 0 25px !important; }
/* Vraie liste a puces pour les liens T3/T4/T5 */
.section-properties-listing ~ .section-content .section-content__body ul { list-style: disc; padding-left: 1.4em; margin: 15px 0; }
.section-properties-listing ~ .section-content .section-content__body ul li { list-style: disc; margin-bottom: 10px; }
/* Sous-titre « Decouvrez nos autres types » : H2 40 bold navy + span orange (prod) */
.section-properties-listing ~ .section-content .section-content__body h2 { margin: 10px 0 20px; } /* taille : base --h2 (règle typo 25/07) */


/* Mentions legales - passe visuelle 24/07 : pleine largeur, H1 centre, h2 serres */
.page-id-732 .section-richtext .container--narrow { max-width: calc(var(--container) + 2 * var(--gutter)); } /* = container standard, pas narrow (prod 1650) */
.page-id-732 .section-richtext h2 { margin: 8px 0 16px; }
.page-id-732 .section-hero { padding-bottom: 0; }
.page-id-732 .section-hero__inner { text-align: center; }

/* ===== Article de blog : hero banniere iso prod (image a la une en fond, 24/07) ===== */
.iv-article { background: var(--cream); }
.iv-article__hero-banner {
  background-size: cover;
  background-position: center;
  background-color: var(--ink); /* fallback sans image a la une */
  display: flex;
  flex-direction: column;
  min-height: 50vh; /* arbitrage Cédric 25/07 : 50vh (prod = 70vh, trop haut) */
  justify-content: center;
  padding-block: 100px 40px; /* 100 = clearance header transparent */
}
.iv-article__hero-banner .breadcrumb-container { margin-bottom: 0; }
/* le style legacy inline pose deja " | " en ::after (masque sur le dernier) : pas de "›" en plus (prod = | seul) */
.iv-article__hero-banner .breadcrumb-item + .breadcrumb-item::before { content: none; }
.iv-article__hero-banner .breadcrumb { justify-content: center; margin-bottom: 0; }
.iv-article__hero-banner .breadcrumb li,
.iv-article__hero-banner .breadcrumb a { color: var(--cream); font-size: 12px; }
.iv-article__hero-banner .breadcrumb li.active { color: var(--accent); }
.iv-article__hero-banner .iv-article__title { color: var(--cream); margin: 15px 0 0; } /* prod : 15px sous le fil d'ariane */
/* Meta date + auteur : Caveat 25 creme, icones oranges (prod post-info) */
.iv-article__hero-banner .iv-article__meta {
  color: var(--cream);
  font-family: var(--font-accent);
  font-size: 25px;
  margin: 15px 0 0;
}
.iv-article__hero-banner .iv-article__meta svg { width: 18px; height: 18px; color: var(--accent); vertical-align: -2px; margin-right: 8px; }
.iv-article__hero-banner .iv-article__meta span + span::before { content: ""; margin: 0 0 0 28px; }
@media (max-width: 767px) {
  .iv-article__hero-banner { padding-block: 80px 40px; min-height: 45vh; }
  .iv-article__hero-banner .iv-article__title { margin-top: 12px; }
}

/* ===== FAQ d'article (metabox ACF, markup iso widget HTML prod .iv-faq) ===== */
.iv-faq { max-width: 800px; margin: 0 auto; }
.iv-faq-item { border-bottom: 1px solid #e0d8c8; }
.iv-faq-question {
  width: 100%; background: none; border: none; text-align: left;
  padding: 18px 40px 18px 0;
  font-family: inherit; font-size: 16px; font-weight: 700; color: #13252f;
  cursor: pointer; position: relative; display: block;
}
.iv-faq-question::after { content: '+'; position: absolute; right: 0; top: 50%; transform: translateY(-50%); font-size: 22px; color: #ffa103; font-weight: 400; transition: transform .25s ease; }
.iv-faq-question.iv-open::after { content: '−'; }
/* depliage par grid-rows (anime), pilote par .iv-open sur l'item : insensible aux resets max-height */
.iv-faq-answer { display: grid; grid-template-rows: 0fr; overflow: hidden; transition: grid-template-rows .35s ease; }
.iv-faq-item.iv-open .iv-faq-answer { grid-template-rows: 1fr; }
.iv-faq-answer-inner { min-height: 0; overflow: hidden; }
.iv-faq-answer p { margin: 0 0 14px; font-size: 15px; line-height: 1.7; color: #13252f; }
.iv-faq-answer-inner { padding: 0; } /* le padding ferme laissait depasser 18px de reponse */
.iv-faq-item.iv-open .iv-faq-answer-inner { padding: 0 0 18px; }

/* Sous-sections d'article converties en vrais H3 (structure SEO) - meme rendu que les h2 oranges prod */
.iv-article .entry-content h3.h2-accent { font: 500 32px/1.25 var(--font-body); color: #FFA300; margin: 40px 0 16px; }

/* Frise chronologique d'article (regle 25/07 : liste NATIVE stylee par le theme, editable junior) */
.iv-article .entry-content ul.iv-frise-liste { list-style: none; margin: 24px 0; padding: 0; }
.iv-article .entry-content ul.iv-frise-liste li { list-style: none; margin: 0 0 10px; padding: 0; font-size: 17px; }
.iv-article .entry-content ul.iv-frise-liste li strong { color: var(--accent); font-size: 18px; }

/* Images de contenu d'articles : bornees a 800px, centrees (les inserees portent width=580) */
.iv-article .entry-content img:not(.emoji) { max-width: min(800px, 100%); display: block; margin-inline: auto; height: auto; border-radius: 8px; } /* toutes les images de contenu, y compris dans des liens */

/* ===== Passe visuelle 28/07 — page estimation pilier (13362), mesures prod ===== */
/* Images split : bandeau 168px comme la prod (692x168, la base 10vh dépendait du viewport) */
.page-id-13362 .section-content__split-media img { height: 168px; }
/* Étapes (Partie 1-3) : compactes comme la prod (section unique 1458px) + titres 30/700 */
.page-id-13362 .site-main > section:nth-of-type(5),
.page-id-13362 .site-main > section:nth-of-type(6),
.page-id-13362 .site-main > section:nth-of-type(7),
.page-id-13362 .site-main > section:nth-of-type(8) { padding-block: 30px; }
.page-id-13362 .site-main > section:nth-of-type(6) h2,
.page-id-13362 .site-main > section:nth-of-type(7) h2,
.page-id-13362 .site-main > section:nth-of-type(8) h2 { font-size: 30px; } /* prod : étapes Poppins 30/700 */
/* Marché : 4 lotties 150x156 (prod) — la base naked est à 90 */
.page-id-13362 .section-cards.is-cards-naked .card__lottie { width: 150px; height: 156px; }
/* Encadré conclusion crème sur fond navy (prod) — réutilisable */
.section-cards.has-bg-ink .cards-conclusion { background: var(--cream); }
/* Algorithme : bloc décalé à droite (prod inner x471, 1164px), titre sur toute la largeur
   au-dessus des 2 colonnes de texte (prod h2 1065px puis texte en colonnes) */
.page-id-13362 .site-main > section:nth-of-type(9) .section-content__split { max-width: none; margin-left: calc(24.8vw + 33px); margin-right: 0; grid-template-rows: auto 1fr; } /* le texte demarre toujours apres l'image 28.8vw, a toutes les largeurs */
.page-id-13362 .site-main > section:nth-of-type(9) .section-content__split-col--main { display: contents; }
.page-id-13362 .site-main > section:nth-of-type(9) .section-content__split-col--main h2 { grid-column: 1 / -1; grid-row: 1; }
.page-id-13362 .site-main > section:nth-of-type(9) .section-content__split-col--aside { grid-row: 2; grid-column: 2; }
/* le texte coule en 2 colonnes sous le titre (le body est unique sur cette section) */
.page-id-13362 .site-main > section:nth-of-type(9) .section-content__split-col--main .section-content__body { grid-column: 1 / -1; columns: 2; column-gap: 50px; }
/* Avantages : photo Cécile en colonne étroite (prod 451/1503 ≈ 30%) */
.page-id-13362 .site-main > section:nth-of-type(12) .section-content__inner { grid-template-columns: 30% 1fr; }

/* ===== 13362 retours 28/07 (2e vague) ===== */
/* Héro plein écran (prod --min-height:100vh) */
.page-id-13362 .section-hero--split { min-height: 100vh; }
/* Tuiles héro : texte orange (prod) */
.iv-estim-tile { color: var(--accent); }
/* Boutons outline lisibles selon le fond (réutilisable) */
.section-content.has-bg-ink .btn-outline { border-color: var(--cream); color: var(--cream); }
.section-content.has-bg-accent .btn-outline { background: var(--paper); border-color: var(--paper); color: var(--accent); }
.section-content.has-bg-accent .btn-outline:hover { background: transparent; color: var(--ink); border-color: var(--ink); }
/* Marché : titre centré (prod) */
.page-id-13362 .section-cards h2 { text-align: center; }
/* Algorithme : image full-bleed gauche qui recouvre une partie du fond (prod d4b3d1c : 0→471px, cover) */
.page-id-13362 .site-main > section:nth-of-type(9) { position: relative; }
.page-id-13362 .site-main > section:nth-of-type(9)::before {
  content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 28.8%;
  background: url("/wp-content/uploads/2025/07/bg-estimation-10.webp") center / cover no-repeat;
}
.page-id-13362 .site-main > section:nth-of-type(9) .container { position: relative; }
@media (max-width: 1024px) { .page-id-13362 .site-main > section:nth-of-type(9)::before { display: none; } }
/* Coût réel : puces visibles (les resets legacy les suppriment) */
.page-id-13362 .section-content__body ul { list-style: disc; padding-left: 24px; }
.page-id-13362 .section-content__body ul li { list-style: disc; }
/* État du marché : la box a une photo en fond (prod 838d65d bg-estimation-12 cover) + padding de section */
.page-id-13362 .section-html { padding-block: 66px; }
.page-id-13362 .iv-gray-card { background: linear-gradient(rgba(0, 0, 0, .78), rgba(0, 0, 0, .78)), url("/wp-content/uploads/2025/07/bg-estimation-12.webp") center / cover no-repeat; } /* voile NOIR (retour 28/07) */
/* Avantages : photo Cécile collée au bord inférieur (prod : l'image finit au ras de la section),
   Gaël en fond bas-droite 161px, boutons prod (1 navy plein, 2 orange plein) */
.page-id-13362 .site-main > section:nth-of-type(12) { padding-bottom: 0; } /* photo Gaël retirée (retour 28/07) */
.page-id-13362 .site-main > section:nth-of-type(12) blockquote { margin-bottom: 40px; } /* air sous la citation */
.page-id-13362 .site-main > section:nth-of-type(12) .section-content__media { align-self: end; }
.page-id-13362 .site-main > section:nth-of-type(12) .btn-primary { background: var(--ink); border-color: var(--ink); color: var(--cream); }
.page-id-13362 .site-main > section:nth-of-type(12) .btn-primary:hover { background: transparent; color: var(--ink); }
.page-id-13362 .site-main > section:nth-of-type(12) .btn-outline { background: var(--accent); border-color: var(--accent); color: var(--cream); }
.page-id-13362 .site-main > section:nth-of-type(12) .btn-outline:hover { background: transparent; color: var(--accent); }

/* ===== 13362 retours 28/07 (4e vague) ===== */
/* Avantages : pas de deco 3-traits sur la photo de Cecile */
.page-id-13362 .site-main > section:nth-of-type(12) .section-content__media::after { content: none; }
/* Air entre le texte et les rangees de boutons (global) */
.section-content__body .iv-btn-row, .section-content__body p.iv-btn-row { margin-top: 30px; }
/* Tuiles hero : icones 100% ORANGE, navy au hover (avec le fond qui passe orange) */
.iv-estim-tile__lottie { filter: brightness(0) saturate(100%) invert(69%) sepia(66%) saturate(1667%) hue-rotate(360deg) brightness(102%); transition: filter var(--transition); }
.iv-estim-tile:hover .iv-estim-tile__lottie { filter: brightness(0) saturate(100%) invert(12%) sepia(31%) saturate(748%) hue-rotate(152deg) brightness(94%); }
.iv-estim-tile:hover { color: var(--ink); }
/* Algorithme : bouton orange plein */
.page-id-13362 .site-main > section:nth-of-type(9) .btn { background: var(--accent); border-color: var(--accent); color: var(--cream); }
.page-id-13362 .site-main > section:nth-of-type(9) .btn:hover { background: transparent; color: var(--accent); }

/* ===== QSN (13354) — passe 28/07 ===== */
/* H1 45 comme la prod (pattern 13362) */
.page-id-13354 h1 { font-size: 45px; }
/* Héro 100vh (prend un écran) ; le texte descend sous le header overlay (prod : h1 a y327) */
.page-id-13354 .section-hero--split { min-height: 100vh; }
.page-id-13354 .section-hero__split-text { justify-content: flex-start; padding-top: 290px; }
/* Bios : le 1er sous-titre est ORANGE sans soulignement (prod « L'enchanteur… ») */
.team-bio__body h4:first-child { color: var(--accent); background-image: none; padding-bottom: 0; }

/* ===== Temoignages (13356) — passe 28/07 ===== */
/* Le header est fixed global : les pages a hero court compensent (prod : breadcrumb y182, h1 y216) */
.page-id-13356 .section-hero { padding-top: 116px; }
/* Slider d'avis Trustindex : clip des slides sortantes (debordaient a gauche du viewport) */
.page-id-13356 .section-html .ti-widget { overflow: hidden; }

/* ===== Biens vendus (13344) — passe 28/07 ===== */
/* Header fixed global : compensation (breadcrumb/titre passaient dessous) */
.page-id-13344 .section-properties-listing { padding-top: 116px; }

/* ===== Nous contacter (13358) — passe 28/07 ===== */
/* Prod : deux moities egales 744/744 gap 15 (la base 1fr/640 reste pour estimation-a-domicile, validee) */
.page-id-13358 .contact-split__inner { grid-template-columns: 1fr 1fr; gap: 15px; }

/* ===== Fiche bien — punch-list mobile (28/07) ===== */
@media (max-width: 767px) {
  /* H2 quartier : ne peut plus deborder avec un nom long */
  .iv-property-quartier .apimo_title_h2 { font-size: 28px; overflow-wrap: anywhere; }
  /* Fil d'ariane : le titre du bien depassait du viewport -> ellipse */
  .single-property .breadcrumb-item.active {
    max-width: 55vw; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    display: inline-block; vertical-align: bottom;
  }
}
