@import url('https://fonts.googleapis.com/css2?family=Josefin+Sans:wght@300;400;500;600;700&family=Libre+Baskerville:wght@400;700&display=swap');

:root {
  --bl-blue: #243469;
  --bl-orange: #F18516;
  --bl-beige: #F8F8F6;
  --bl-line: rgba(36,52,105,.12);
  --bl-muted: rgba(36,52,105,.62);
}

.bl-biens-wrap,
.bl-single {
  width: min(1180px, 92%);
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
  color: var(--bl-blue);
}

.bl-biens-wrap *,
.bl-single * { box-sizing: border-box; }

/* Cartes accueil / sélection */
.bl-filters { display:flex; flex-wrap:wrap; gap:10px; margin:0 0 46px; }
.bl-filter {
  appearance:none; border:1px solid rgba(36,52,105,.22); border-radius:999px;
  padding:10px 17px; background:transparent; color:var(--bl-blue);
  font:500 13px/1 "Josefin Sans",sans-serif; letter-spacing:.04em; cursor:pointer;
}
.bl-filter:hover,.bl-filter.is-active { background:var(--bl-blue); border-color:var(--bl-blue); color:#fff; }

.bl-grid { display:grid !important; grid-template-columns:repeat(3,minmax(0,1fr)) !important; gap:34px !important; width:100% !important; align-items:start !important; }
.bl-grid__item,.bl-list__item { min-width:0 !important; width:100% !important; display:block !important; }
.bl-grid__item.is-hidden,.bl-list__item.is-hidden { display:none !important; }

.bl-card {
  display:block !important; width:100% !important; overflow:hidden; border-radius:24px;
  background:var(--bl-beige); color:var(--bl-blue); text-decoration:none !important;
  box-shadow:0 10px 35px rgba(36,52,105,.06);
  transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s ease;
}
.bl-card:hover { transform:translateY(-4px); box-shadow:0 18px 45px rgba(36,52,105,.11); }
.bl-card__media { position:relative !important; width:100% !important; aspect-ratio:4/3 !important; overflow:hidden !important; background:#e9e9e5; }
.bl-card__image,.bl-list-card__image { display:block !important; width:100% !important; height:100% !important; max-width:none !important; object-fit:cover !important; transition:transform .65s ease; }
.bl-card:hover .bl-card__image,.bl-list-card:hover .bl-list-card__image { transform:scale(1.035); }
.bl-card__placeholder { width:100%; height:100%; background:#e9e9e5; }
.bl-card__status,.bl-list-card__status {
  position:absolute; top:16px; left:16px; padding:9px 13px; border-radius:999px;
  background:rgba(248,248,246,.95); color:var(--bl-blue); font:600 11px/1 "Josefin Sans",sans-serif;
  letter-spacing:.08em; text-transform:uppercase;
}
.bl-card__body { padding:23px 23px 22px; }
.bl-card__location,.bl-list-card__location { margin-bottom:10px; color:var(--bl-orange); font:600 11px/1.2 "Josefin Sans",sans-serif; letter-spacing:.13em; text-transform:uppercase; }
.bl-card__title { margin:0; color:var(--bl-blue); font:400 22px/1.22 "Libre Baskerville",Georgia,serif; }
.bl-card__meta { margin-top:12px; color:rgba(36,52,105,.67); font:400 13px/1.4 "Josefin Sans",sans-serif; }
.bl-card__footer { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-top:23px; }
.bl-card__price { color:var(--bl-blue); font:600 14px/1.2 "Josefin Sans",sans-serif; }
.bl-card__arrow,.bl-list-card__arrow { display:inline-flex; align-items:center; justify-content:center; border-radius:50%; color:#fff; }
.bl-card__arrow { width:40px; height:40px; flex:0 0 40px; background:var(--bl-blue); font:400 18px/1 sans-serif; transition:.25s ease; }
.bl-card:hover .bl-card__arrow { background:var(--bl-orange); transform:translateX(2px); }

/* Catalogue "Les biens" */
.bl-catalogue-panel {
  width:100%; margin:0 0 38px; padding:31px 33px 33px;
  border:1px solid rgba(36,52,105,.10); border-radius:27px; background:#fff;
  box-shadow:0 15px 45px rgba(36,52,105,.055);
}
.bl-catalogue-panel__heading {
  display:flex; align-items:flex-end; justify-content:space-between; gap:25px;
  padding-bottom:25px; border-bottom:1px solid var(--bl-line);
}
.bl-catalogue-panel__eyebrow { display:block; margin-bottom:9px; color:var(--bl-orange); font:600 11px/1 "Josefin Sans",sans-serif; letter-spacing:.17em; text-transform:uppercase; }
.bl-catalogue-panel__heading h2 { margin:0; color:var(--bl-blue); font:400 clamp(34px,4vw,48px)/1.12 "Libre Baskerville",Georgia,serif; letter-spacing:-.025em; }
.bl-catalogue-panel__count { display:flex; align-items:baseline; gap:7px; padding-bottom:6px; color:rgba(36,52,105,.55); font:500 12px/1 "Josefin Sans",sans-serif; letter-spacing:.08em; text-transform:uppercase; white-space:nowrap; }
.bl-catalogue-panel__count strong { color:var(--bl-blue); font:600 18px/1 "Josefin Sans",sans-serif; }

.bl-catalogue-filters {
  display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:14px 15px; padding-top:26px;
}
.bl-catalogue-field { min-width:0; display:block; }
.bl-catalogue-field > span,.bl-catalogue-sort > span {
  display:block; margin-bottom:8px; color:rgba(36,52,105,.58); font:600 11px/1 "Josefin Sans",sans-serif;
  letter-spacing:.12em; text-transform:uppercase;
}
.bl-catalogue-field input,.bl-catalogue-field select,.bl-catalogue-sort select {
  width:100%; min-width:0; height:52px; padding:0 15px; border:1px solid rgba(36,52,105,.18);
  border-radius:9px; outline:none; background:#fff; color:var(--bl-blue); font:500 14px/1 "Josefin Sans",sans-serif;
  box-shadow:none; transition:border-color .2s ease,box-shadow .2s ease;
}
.bl-catalogue-field input::placeholder { color:rgba(36,52,105,.38); }
.bl-catalogue-field input:focus,.bl-catalogue-field select:focus,.bl-catalogue-sort select:focus { border-color:rgba(36,52,105,.42); box-shadow:0 0 0 3px rgba(36,52,105,.045); }
.bl-catalogue-panel__footer { display:flex; align-items:flex-end; justify-content:space-between; gap:25px; margin-top:20px; }
.bl-catalogue-reset { appearance:none; border:0; padding:10px 0; background:transparent; color:var(--bl-blue); cursor:pointer; font:600 11px/1 "Josefin Sans",sans-serif; letter-spacing:.13em; text-transform:uppercase; }
.bl-catalogue-sort { display:flex; align-items:center; gap:12px; width:305px; }
.bl-catalogue-sort > span { margin:0; white-space:nowrap; }
.bl-catalogue-sort select { height:46px; }

.bl-list { display:flex; flex-direction:column; gap:40px; width:100%; }
.bl-list-card {
  display:grid; grid-template-columns:minmax(380px,44%) minmax(0,1fr); align-items:stretch; width:100%; overflow:hidden;
  border-radius:25px; background:var(--bl-beige); color:var(--bl-blue); text-decoration:none !important;
  box-shadow:0 10px 35px rgba(36,52,105,.045); transition:transform .35s ease,box-shadow .35s ease;
}
.bl-list-card:hover { transform:translateY(-3px); box-shadow:0 18px 45px rgba(36,52,105,.09); }
.bl-list-card__media { position:relative; min-width:0; min-height:100%; overflow:hidden; background:#e9e9e5; }
.bl-list-card__media--full { min-height:340px; }
.bl-list-card__body { display:flex; min-width:0; flex-direction:column; justify-content:center; padding:31px 38px 29px; }
.bl-list-card__title { margin:0; max-width:700px; color:var(--bl-blue); font:400 clamp(26px,2.25vw,35px)/1.16 "Libre Baskerville",Georgia,serif; letter-spacing:-.018em; }
.bl-list-card__meta { margin-top:14px; color:rgba(36,52,105,.72); font:500 14px/1.5 "Josefin Sans",sans-serif; }
.bl-list-card__details { margin-top:10px; color:rgba(36,52,105,.58); font:400 13px/1.55 "Josefin Sans",sans-serif; }
.bl-list-card__description { max-width:700px; margin:17px 0 0; color:rgba(36,52,105,.72); font:400 13px/1.62 "Josefin Sans",sans-serif; }
.bl-list-card__footer { display:flex; align-items:center; justify-content:space-between; gap:25px; margin-top:23px; padding-top:16px; border-top:1px solid rgba(36,52,105,.12); }
.bl-list-card__price { color:var(--bl-blue); font:600 17px/1.2 "Josefin Sans",sans-serif; }
.bl-list-card__discover { display:inline-flex; align-items:center; gap:12px; color:var(--bl-blue); font:500 12px/1 "Josefin Sans",sans-serif; letter-spacing:.07em; text-transform:uppercase; }
.bl-list-card__arrow { width:35px; height:35px; background:var(--bl-orange); font:400 18px/1 sans-serif; transition:transform .25s ease; }
.bl-list-card:hover .bl-list-card__arrow { transform:translateX(3px); }

/* Fiche individuelle : nouveau design */
.bl-single--redesign { width:100%; max-width:none; }
.bl-single__container { width:min(1345px,calc(100% - 116px)); margin:0 auto; }
.bl-property-intro { padding:34px 0 53px; }
.bl-property-intro__main { width:100%; }
.bl-property-intro__status { display:inline-flex; align-items:center; min-height:37px; padding:0 17px; border-radius:999px; background:var(--bl-blue); color:#fff; font:600 11px/1 "Josefin Sans",sans-serif; letter-spacing:.14em; text-transform:uppercase; }
.bl-property-intro__location { margin-top:25px; color:var(--bl-orange); font:600 13px/1.2 "Josefin Sans",sans-serif; letter-spacing:.16em; text-transform:uppercase; }
.bl-property-intro__title { max-width:950px; margin:15px 0 0; color:var(--bl-blue); font:400 clamp(52px,6.1vw,91px)/1.02 "Libre Baskerville",Georgia,serif; letter-spacing:-.035em; }
.bl-property-intro__bottom { display:flex; align-items:flex-end; justify-content:space-between; gap:25px; margin-top:28px; }
.bl-property-intro__price { color:var(--bl-blue); font:600 24px/1.1 "Josefin Sans",sans-serif; }
.bl-property-intro__summary { padding-bottom:3px; color:rgba(36,52,105,.56); font:500 13px/1 "Josefin Sans",sans-serif; letter-spacing:.08em; text-transform:uppercase; }

.bl-property-gallery { margin:0; }
.bl-property-gallery__grid { display:grid; grid-template-columns:minmax(0,2.15fr) minmax(260px,.75fr); gap:16px; align-items:start; }
.bl-property-gallery__item { position:relative; display:block; height:245px; overflow:hidden; border-radius:18px; background:#e9e9e5; text-decoration:none; }
.bl-property-gallery__item.is-main { height:590px; grid-row:span 2; }
.bl-property-gallery__image { display:block !important; width:100% !important; height:100% !important; max-width:none !important; object-fit:cover !important; transition:transform .55s ease; }
.bl-property-gallery__item:hover .bl-property-gallery__image { transform:scale(1.02); }
.bl-property-gallery__number { position:absolute; right:14px; bottom:12px; color:#fff; font:500 11px/1 "Josefin Sans",sans-serif; text-shadow:0 1px 4px rgba(0,0,0,.4); }
.bl-property-gallery__label { position:absolute; left:15px; bottom:13px; padding:7px 10px; border-radius:999px; background:rgba(248,248,246,.9); color:var(--bl-blue); font:600 9px/1 "Josefin Sans",sans-serif; letter-spacing:.1em; text-transform:uppercase; }

.bl-property-section,.bl-property-text,.bl-property-neighborhood { width:min(1120px,100%); margin:0 auto; }
.bl-property-section { padding:92px 0 0; }
.bl-section-heading { margin-bottom:27px; }
.bl-single__eyebrow,.bl-property-text__label { color:var(--bl-orange); font:600 11px/1.2 "Josefin Sans",sans-serif; letter-spacing:.16em; text-transform:uppercase; }
.bl-section-heading h2,.bl-property-text h2,.bl-property-neighborhood h2 { margin:11px 0 0; color:var(--bl-blue); font:400 clamp(32px,4vw,48px)/1.13 "Libre Baskerville",Georgia,serif; letter-spacing:-.025em; }
.bl-property-specs { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid var(--bl-line); border-left:1px solid var(--bl-line); }
.bl-property-spec { display:flex; align-items:center; gap:15px; min-height:110px; padding:20px; border-right:1px solid var(--bl-line); border-bottom:1px solid var(--bl-line); }
.bl-property-spec__icon { display:flex; align-items:center; justify-content:center; width:38px; height:38px; flex:0 0 38px; border-radius:50%; background:var(--bl-beige); color:var(--bl-blue); }
.bl-property-spec__icon svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.bl-property-spec__content { display:flex; min-width:0; flex-direction:column; gap:7px; }
.bl-property-spec__label { color:rgba(36,52,105,.5); font:500 10px/1.2 "Josefin Sans",sans-serif; letter-spacing:.12em; text-transform:uppercase; }
.bl-property-spec__value { color:var(--bl-blue); font:500 15px/1.3 "Josefin Sans",sans-serif; }
.bl-property-text { padding:92px 0 0; }
.bl-property-text__body,.bl-property-neighborhood__body { max-width:800px; margin-top:22px; color:rgba(36,52,105,.78); font:400 16px/1.82 "Josefin Sans",sans-serif; }
.bl-property-text__body p,.bl-property-neighborhood__body p { margin:0 0 16px; }
.bl-property-neighborhood { display:grid; grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr); gap:80px; padding:92px 0 80px; }
.bl-property-neighborhood__body { margin-top:0; }

.bl-empty { color:var(--bl-blue); font-family:"Josefin Sans",sans-serif; }

/* Lightbox */
.bl-lightbox { position:fixed; inset:0; z-index:99999; display:none; align-items:center; justify-content:center; padding:50px; background:rgba(13,20,42,.94); }
.bl-lightbox.is-open { display:flex; }
.bl-lightbox__image { display:block; max-width:min(92vw,1400px); max-height:86vh; width:auto; height:auto; object-fit:contain; }
.bl-lightbox__close,.bl-lightbox__prev,.bl-lightbox__next { position:absolute; appearance:none; border:0; background:transparent; color:#fff; cursor:pointer; font-family:Arial,sans-serif; }
.bl-lightbox__close { top:18px; right:25px; font-size:38px; line-height:1; }
.bl-lightbox__prev,.bl-lightbox__next { top:50%; transform:translateY(-50%); font-size:50px; line-height:1; padding:15px; }
.bl-lightbox__prev { left:12px; } .bl-lightbox__next { right:12px; }

/* Header exact Beaux Lieux */
.bl-single-header-fallback .bl-header { position:relative; z-index:99990; width:100%; background:#F8F8F6; border-bottom:1px solid rgba(36,52,105,.10); box-sizing:border-box; }
.bl-single-header-fallback .bl-header__inner { width:min(1180px,92%); min-height:92px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; gap:35px; box-sizing:border-box; }
.bl-single-header-fallback .bl-header__logo { display:flex; align-items:center; flex-shrink:0; }
.bl-single-header-fallback .bl-header__logo img { display:block; width:145px; height:auto; }
.bl-single-header-fallback .bl-header__nav { display:flex; align-items:center; justify-content:center; gap:31px; margin-left:auto; }
.bl-single-header-fallback .bl-header__nav a { position:relative; color:#243469; font:500 15px/1 "Josefin Sans",sans-serif; letter-spacing:.04em; text-decoration:none; }
.bl-single-header-fallback .bl-header__nav a::after { content:""; position:absolute; left:0; bottom:-7px; width:0; height:1px; background:#F18516; transition:width .25s ease; }
.bl-single-header-fallback .bl-header__nav a:hover { color:#F18516; }
.bl-single-header-fallback .bl-header__nav a:hover::after { width:100%; }
.bl-single-header-fallback .bl-header__cta { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:0 22px; background:#F18516; border:1px solid #F18516; border-radius:50px; color:#fff; font:700 12px/1 "Josefin Sans",sans-serif; letter-spacing:.06em; text-transform:uppercase; text-decoration:none; white-space:nowrap; }
.bl-single-header-fallback .bl-header__burger,.bl-single-header-fallback .bl-mobile-menu { display:none; }

@media (max-width:1000px) {
  .bl-grid { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
  .bl-list-card { grid-template-columns:minmax(280px,40%) minmax(0,1fr); }
  .bl-list-card__body { padding:30px 30px 28px; }
  .bl-catalogue-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .bl-catalogue-field--search { grid-column:span 2; }
  .bl-property-intro__title { max-width:850px; }
  .bl-property-gallery__grid { grid-template-columns:minmax(0,1.6fr) minmax(240px,.8fr); }
  .bl-property-gallery__item.is-main { height:500px; }
  .bl-property-specs { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .bl-property-neighborhood { gap:45px; }
  .bl-single-header-fallback .bl-header__nav { gap:20px; }
  .bl-single-header-fallback .bl-header__cta { padding:0 17px; font-size:11px; }
}

@media (max-width:900px) {
  .bl-property-intro { padding-top:30px; }
  .bl-property-intro__title { font-size:clamp(46px,8vw,70px); }
  .bl-property-gallery__grid { grid-template-columns:1fr 1fr; }
  .bl-property-gallery__item.is-main { grid-column:span 2; grid-row:auto; height:520px; }
  .bl-property-gallery__item:not(.is-main) { height:260px; }
}

@media (max-width:650px) {
  .bl-biens-wrap { width:92%; }
  .bl-grid { grid-template-columns:1fr !important; gap:28px !important; }
  .bl-card__media { aspect-ratio:4/3 !important; }
  .bl-card__body { padding:20px 20px 19px; }
  .bl-card__title { font-size:20px; }

  .bl-catalogue-panel { padding:24px 20px 23px; border-radius:22px; }
  .bl-catalogue-panel__heading { align-items:flex-start; padding-bottom:20px; }
  .bl-catalogue-panel__heading h2 { font-size:30px; }
  .bl-catalogue-panel__count { display:none; }
  .bl-catalogue-filters { grid-template-columns:1fr; gap:13px; padding-top:20px; }
  .bl-catalogue-field--search { grid-column:auto; }
  .bl-catalogue-panel__footer { align-items:stretch; flex-direction:column; gap:12px; margin-top:17px; }
  .bl-catalogue-sort { width:100%; display:block; }
  .bl-catalogue-sort > span { margin-bottom:8px; }

  .bl-list { gap:34px; }
  .bl-list-card { grid-template-columns:1fr; border-radius:20px; }
  .bl-list-card__media--full { min-height:0; aspect-ratio:16/10; }
  .bl-list-card__body { padding:28px 24px 26px; }
  .bl-list-card__title { font-size:27px; }
  .bl-list-card__description { font-size:13.5px; line-height:1.65; }
  .bl-list-card__footer { align-items:flex-start; flex-direction:column; gap:17px; margin-top:25px; }

  .bl-single__container { width:92%; }
  .bl-property-intro { padding:28px 0 35px; }
  .bl-property-intro__status { min-height:34px; padding:0 14px; }
  .bl-property-intro__location { margin-top:20px; font-size:11px; }
  .bl-property-intro__title { margin-top:12px; font-size:clamp(35px,10vw,54px); line-height:1.04; }
  .bl-property-intro__bottom { align-items:flex-start; flex-direction:column; gap:12px; margin-top:21px; }
  .bl-property-intro__price { font-size:20px; }
  .bl-property-intro__summary { font-size:11px; }
  .bl-property-gallery__grid { grid-template-columns:1fr; gap:12px; }
  .bl-property-gallery__item.is-main { grid-column:auto; height:340px; }
  .bl-property-gallery__item:not(.is-main) { height:220px; }
  .bl-property-section { padding-top:62px; }
  .bl-property-specs { grid-template-columns:1fr; }
  .bl-property-text { padding-top:62px; }
  .bl-property-neighborhood { grid-template-columns:1fr; gap:25px; padding:62px 0 55px; }
  .bl-section-heading h2,.bl-property-text h2,.bl-property-neighborhood h2 { font-size:31px; }
  .bl-property-text__body,.bl-property-neighborhood__body { font-size:14.5px; line-height:1.75; }

  .bl-single-header-fallback .bl-header__inner { width:90%; min-height:82px; gap:20px; }
  .bl-single-header-fallback .bl-header__logo img { width:90px; }
  .bl-single-header-fallback .bl-header__nav,.bl-single-header-fallback .bl-header__cta { display:none; }
  .bl-single-header-fallback .bl-header__burger { display:flex; width:38px; height:38px; margin-left:auto; padding:0; border:0; background:transparent; align-items:center; justify-content:center; flex-direction:column; gap:5px; cursor:pointer; }
  .bl-single-header-fallback .bl-header__burger span { display:block; width:21px; height:1.5px; background:var(--bl-blue); transition:transform .3s ease,opacity .2s ease; }
  .bl-single-header-fallback .bl-mobile-menu { display:block; position:absolute; top:100%; left:0; width:100%; background:#F8F8F6; border-bottom:1px solid rgba(36,52,105,.12); box-sizing:border-box; opacity:0; visibility:hidden; transform:translateY(-8px); transition:opacity .25s ease,transform .25s ease,visibility .25s ease; }
  .bl-single-header-fallback .bl-header.is-open .bl-mobile-menu { opacity:1; visibility:visible; transform:translateY(0); }
  .bl-single-header-fallback .bl-mobile-menu nav { display:flex; flex-direction:column; padding:10px 7% 18px; }
  .bl-single-header-fallback .bl-mobile-menu nav a { display:block; padding:18px 0; border-bottom:1px solid rgba(36,52,105,.10); color:var(--bl-blue); font:500 16px/1 "Josefin Sans",sans-serif; letter-spacing:.04em; text-decoration:none; }
  .bl-single-header-fallback .bl-mobile-menu nav a:last-child { border-bottom:none; }
  .bl-single-header-fallback .bl-header.is-open .bl-header__burger span:nth-child(1) { transform:translateY(6.5px) rotate(45deg); }
  .bl-single-header-fallback .bl-header.is-open .bl-header__burger span:nth-child(2) { opacity:0; }
  .bl-single-header-fallback .bl-header.is-open .bl-header__burger span:nth-child(3) { transform:translateY(-6.5px) rotate(-45deg); }
}

@media (max-width:400px) {
  .bl-single-header-fallback .bl-header__inner { min-height:76px; }
  .bl-single-header-fallback .bl-header__logo img { width:82px; }
  .bl-single-header-fallback .bl-header__burger { width:36px; height:36px; }
}


/* =========================================================
   1.8.1 — Ajustements fidèles aux captures fournies
   ========================================================= */

/* Les pages catalogue et fiches restent sur un fond blanc. */
body.bl-catalogue-page,
body.post-type-archive-bien,
body.single-bien {
  background: #fff !important;
}

/* Le catalogue ne doit jamais déborder de la page. */
body.bl-catalogue-page .bl-biens-wrap[data-all="1"] {
  width: min(1080px, calc(100% - 48px));
  max-width: 1080px;
  margin-left: auto;
  margin-right: auto;
}

body.bl-catalogue-page .bl-catalogue-panel {
  margin-bottom: 30px;
}

body.bl-catalogue-page .bl-list {
  width: 100%;
  max-width: 1080px;
  margin-left: auto;
  margin-right: auto;
  gap: 28px;
}

/* Cartes catalogue plus compactes : l'image reste dominante, mais
   l'ensemble occupe moins de largeur que la version précédente. */
body.bl-catalogue-page .bl-list-card {
  grid-template-columns: minmax(330px, 41%) minmax(0, 1fr);
  border-radius: 24px;
}

body.bl-catalogue-page .bl-list-card__media--full {
  min-height: 315px;
}

body.bl-catalogue-page .bl-list-card__body {
  padding: 30px 34px 28px;
}

/* Espacement légèrement augmenté entre les informations, sans changer
   les tailles, couleurs ou proportions générales. */
body.bl-catalogue-page .bl-list-card__meta { margin-top: 16px; }
body.bl-catalogue-page .bl-list-card__details { margin-top: 11px; }
body.bl-catalogue-page .bl-list-card__description { margin-top: 18px; }
body.bl-catalogue-page .bl-list-card__footer {
  margin-top: 24px;
  padding-top: 16px;
}

/* Fiche individuelle : neutralisation des conteneurs de thème les plus
   courants pour éviter le décalage horizontal/latéral visible sur la page. */
body.single-bien .site-main,
body.single-bien .content-area,
body.single-bien .entry-content,
body.single-bien .elementor-widget-theme-post-content {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box !important;
}

body.single-bien .entry-content {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Le wrapper de la fiche reste centré et ne peut pas dépasser le viewport. */
body.single-bien .bl-single--redesign,
body.single-bien .bl-single__container {
  max-width: 100%;
  box-sizing: border-box;
}

body.single-bien .bl-single__container {
  width: min(1345px, calc(100% - 112px));
}

/* Caractéristiques : pas de tableau. Chaque caractéristique est une carte
   autonome, arrondie, espacée des autres. */
.bl-property-specs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  border: 0;
}

.bl-property-spec {
  min-height: 104px;
  padding: 21px 20px;
  border: 1px solid rgba(36,52,105,.09);
  border-radius: 18px;
  background: #F8F8F6;
  box-shadow: 0 8px 24px rgba(36,52,105,.045);
}

/* Le fallback est masqué par défaut : le JS ne le rend visible que si le
   thème n'a réellement aucun header. Cela évite le double header. */
.bl-single-header-fallback {
  display: none;
}

.bl-single-header-fallback.is-visible {
  display: block;
}

/* Sécurité générale contre le décalage horizontal. */
body.single-bien,
body.bl-catalogue-page {
  overflow-x: hidden;
}

@media (max-width: 1000px) {
  body.bl-catalogue-page .bl-biens-wrap[data-all="1"],
  body.bl-catalogue-page .bl-list {
    width: min(900px, calc(100% - 40px));
  }

  body.bl-catalogue-page .bl-list-card {
    grid-template-columns: minmax(280px, 40%) minmax(0, 1fr);
  }

  .bl-property-specs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 650px) {
  body.bl-catalogue-page .bl-biens-wrap[data-all="1"],
  body.bl-catalogue-page .bl-list {
    width: 92%;
  }

  body.bl-catalogue-page .bl-list-card {
    grid-template-columns: 1fr;
  }

  .bl-property-specs {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .bl-property-spec {
    min-height: 88px;
    border-radius: 16px;
  }

  body.single-bien .bl-single__container {
    width: 92%;
  }
}


/* ================================================================
   1.9.0 — Vue Liste / Galerie du catalogue
   La vue Galerie conserve les mêmes contenus et filtres : elle change
   uniquement la présentation des cartes.
   ================================================================ */
body.bl-catalogue-page .bl-catalogue-view {
  display:flex; align-items:center; justify-content:flex-end; gap:14px;
  width:min(1080px,100%); margin:-10px auto 22px;
}
body.bl-catalogue-page .bl-catalogue-view__label {
  color:rgba(36,52,105,.52); font:500 11px/1 "Josefin Sans",sans-serif;
  letter-spacing:.13em; text-transform:uppercase;
}
body.bl-catalogue-page .bl-catalogue-view__buttons {
  display:inline-flex; padding:4px; gap:3px; border:1px solid rgba(36,52,105,.10);
  border-radius:999px; background:#fff; box-shadow:0 7px 22px rgba(36,52,105,.045);
}
body.bl-catalogue-page .bl-catalogue-view__button {
  appearance:none; border:0; background:transparent; color:rgba(36,52,105,.62);
  min-height:38px; padding:0 15px; border-radius:999px; cursor:pointer;
  font:600 11px/1 "Josefin Sans",sans-serif; letter-spacing:.08em;
  text-transform:uppercase; transition:background .25s ease,color .25s ease;
}
body.bl-catalogue-page .bl-catalogue-view__button:hover { color:var(--bl-blue); }
body.bl-catalogue-page .bl-catalogue-view__button.is-active {
  background:var(--bl-blue); color:#fff;
}
.bl-catalogue-view__icon { margin-right:6px; font-size:13px; line-height:0; }

/* Galerie : deux biens par ligne, cartes plus compactes. */
body.bl-catalogue-page .bl-list.is-gallery {
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  gap:30px; align-items:start;
}
body.bl-catalogue-page .bl-list.is-gallery .bl-list__item { min-width:0; }
body.bl-catalogue-page .bl-list.is-gallery .bl-list-card {
  display:block; width:100%; border-radius:24px; background:var(--bl-beige);
  overflow:hidden; box-shadow:0 10px 35px rgba(36,52,105,.055);
}
body.bl-catalogue-page .bl-list.is-gallery .bl-list-card__media--full {
  min-height:0; height:auto; aspect-ratio:1.28 / 1;
}
body.bl-catalogue-page .bl-list.is-gallery .bl-list-card__body {
  padding:24px 25px 22px;
}
body.bl-catalogue-page .bl-list.is-gallery .bl-list-card__location { margin-bottom:9px; }
body.bl-catalogue-page .bl-list.is-gallery .bl-list-card__title {
  max-width:100%; font-size:clamp(23px,2.2vw,31px); line-height:1.17;
}
body.bl-catalogue-page .bl-list.is-gallery .bl-list-card__meta { margin-top:13px; }
body.bl-catalogue-page .bl-list.is-gallery .bl-list-card__details { margin-top:9px; }
body.bl-catalogue-page .bl-list.is-gallery .bl-list-card__description {
  margin-top:14px; display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden;
}
body.bl-catalogue-page .bl-list.is-gallery .bl-list-card__footer {
  margin-top:18px; padding-top:14px; gap:15px;
}

@media (max-width:1000px) {
  body.bl-catalogue-page .bl-list.is-gallery { gap:24px; }
  body.bl-catalogue-page .bl-list.is-gallery .bl-list-card__body { padding:22px 22px 20px; }
}
@media (max-width:650px) {
  body.bl-catalogue-page .bl-catalogue-view {
    width:92%; margin:-3px auto 20px; justify-content:space-between;
  }
  body.bl-catalogue-page .bl-catalogue-view__label { display:none; }
  body.bl-catalogue-page .bl-list.is-gallery {
    display:grid; grid-template-columns:1fr; gap:28px;
  }
  body.bl-catalogue-page .bl-list.is-gallery .bl-list-card { border-radius:20px; }
  body.bl-catalogue-page .bl-list.is-gallery .bl-list-card__media--full { aspect-ratio:16/10; }
  body.bl-catalogue-page .bl-list.is-gallery .bl-list-card__title { font-size:27px; }
}

/* ================================================================
   1.9.1 — Bloc contact en bas des fiches individuelles
   Simple, premium et directement orienté vers la prise de contact.
   ================================================================ */
.bl-property-contact {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:40px;
  margin:76px 0 18px;
  padding:42px 46px;
  border-radius:26px;
  background:var(--bl-blue);
  box-sizing:border-box;
}

.bl-property-contact__eyebrow {
  margin-bottom:10px;
  color:#F18516;
  font:500 11px/1 "Josefin Sans",sans-serif;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.bl-property-contact h2 {
  margin:0;
  color:#fff;
  font:400 clamp(30px,3.1vw,46px)/1.08 "Libre Baskerville",Georgia,serif;
}

.bl-property-contact p {
  margin:11px 0 0;
  color:rgba(255,255,255,.72);
  font:400 14px/1.5 "Josefin Sans",sans-serif;
}

.bl-property-contact__button {
  display:inline-flex;
  flex:0 0 auto;
  align-items:center;
  justify-content:center;
  gap:18px;
  min-height:50px;
  padding:0 23px;
  border-radius:999px;
  background:#F18516;
  color:#fff;
  font:500 12px/1 "Josefin Sans",sans-serif;
  letter-spacing:.10em;
  text-decoration:none;
  text-transform:uppercase;
  transition:transform .2s ease, background .2s ease;
}

.bl-property-contact__button:hover {
  transform:translateY(-1px);
}

.bl-property-contact__button span {
  font-size:19px;
  line-height:1;
}

@media (max-width:650px) {
  .bl-property-contact {
    align-items:flex-start;
    flex-direction:column;
    gap:24px;
    margin-top:58px;
    padding:32px 25px;
    border-radius:20px;
  }

  .bl-property-contact h2 {
    font-size:32px;
  }

  .bl-property-contact__button {
    width:100%;
  }
}


/* ================================================================
   1.9.7 — Centrage mobile du catalogue
   Le shortcode peut être placé dans une colonne du thème plus étroite que
   le viewport. On conserve la colonne du thème pour les autres contenus,
   mais le catalogue est recentré mathématiquement sur le viewport.
   ================================================================ */
@media (max-width:650px) {
  html { overflow-x:hidden !important; }

  body.bl-catalogue-page {
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    margin:0 !important;
    overflow-x:hidden !important;
  }

  /* On ne redimensionne PAS les colonnes Elementor/du thème : elles peuvent
     servir à la structure de la page. Seul le wrapper du catalogue sort de
     cette colonne et se centre sur la largeur réelle du viewport. */
  body.bl-catalogue-page .bl-biens-wrap[data-all="1"] {
    width:calc(100vw - 32px) !important;
    max-width:calc(100vw - 32px) !important;
    min-width:0 !important;
    margin-left:calc((100% - 100vw + 32px) / 2) !important;
    margin-right:0 !important;
    padding:0 !important;
    box-sizing:border-box !important;
    position:relative !important;
    left:auto !important;
    right:auto !important;
    transform:none !important;
  }

  body.bl-catalogue-page .bl-biens-wrap[data-all="1"] .bl-catalogue-panel,
  body.bl-catalogue-page .bl-biens-wrap[data-all="1"] .bl-list,
  body.bl-catalogue-page .bl-biens-wrap[data-all="1"] .bl-catalogue-view {
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    margin-left:0 !important;
    margin-right:0 !important;
    box-sizing:border-box !important;
  }

  body.bl-catalogue-page .bl-biens-wrap[data-all="1"] .bl-catalogue-panel {
    padding-left:20px !important;
    padding-right:20px !important;
  }

  body.bl-catalogue-page .bl-catalogue-filters {
    grid-template-columns:1fr !important;
  }

  body.bl-catalogue-page .bl-catalogue-field--search {
    grid-column:auto !important;
  }

  body.bl-catalogue-page .bl-list.is-gallery {
    grid-template-columns:1fr !important;
  }

  body.bl-catalogue-page .bl-list-card {
    min-width:0 !important;
    width:100% !important;
  }
}

/* Sécurité générale contre les enfants qui imposeraient une largeur
   supérieure à leur parent sur mobile. */
@media (max-width:650px) {
  body.bl-catalogue-page .bl-biens-wrap[data-all="1"] * {
    max-width:100%;
  }
}


/* ================================================================
   1.9.8 — Correction mobile définitive du décalage de colonne
   Le thème peut placer le shortcode dans une colonne dont le bord gauche
   n'est pas celui du viewport. Le JS recale alors le wrapper sur le viewport.
   ================================================================ */
@media (max-width:650px) {
  body.bl-catalogue-page .bl-biens-wrap[data-all="1"],
  body.single-bien .bl-single__container {
    box-sizing:border-box !important;
    min-width:0 !important;
    margin-right:0 !important;
  }

  body.bl-catalogue-page .bl-biens-wrap[data-all="1"] {
    width:calc(100vw - 32px) !important;
    max-width:calc(100vw - 32px) !important;
  }

  body.single-bien .bl-single__container {
    width:calc(100vw - 32px) !important;
    max-width:calc(100vw - 32px) !important;
  }

  /* Aucun enfant du catalogue ne doit recréer une largeur de colonne. */
  body.bl-catalogue-page .bl-biens-wrap[data-all="1"] .bl-catalogue-panel,
  body.bl-catalogue-page .bl-biens-wrap[data-all="1"] .bl-list,
  body.bl-catalogue-page .bl-biens-wrap[data-all="1"] .bl-catalogue-view {
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    margin-left:0 !important;
    margin-right:0 !important;
  }
}


/* =========================================================
   2.0.0 — Responsive mobile propre du catalogue
   Le catalogue reste dans le flux, mais est libéré des offsets du thème.
   ========================================================= */
@media (max-width:650px) {
  body.bl-catalogue-page {
    overflow-x:hidden !important;
  }

  /* Le wrapper est centré dans sa propre largeur. Le JS ci-dessous corrige
     uniquement la position du wrapper si le thème lui applique une colonne
     latérale. */
  body.bl-catalogue-page .bl-biens-wrap[data-all="1"] {
    width:calc(100vw - 32px) !important;
    max-width:calc(100vw - 32px) !important;
    min-width:0 !important;
    margin-top:0 !important;
    margin-bottom:0 !important;
    margin-right:0 !important;
    box-sizing:border-box !important;
    transform:none !important;
  }

  body.bl-catalogue-page .bl-biens-wrap[data-all="1"] .bl-catalogue-panel,
  body.bl-catalogue-page .bl-biens-wrap[data-all="1"] .bl-list,
  body.bl-catalogue-page .bl-biens-wrap[data-all="1"] .bl-catalogue-view {
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    box-sizing:border-box !important;
  }

  body.bl-catalogue-page .bl-catalogue-view {
    margin-left:0 !important;
    margin-right:0 !important;
  }

  body.bl-catalogue-page .bl-list-card,
  body.bl-catalogue-page .bl-list-card__media--full {
    min-width:0 !important;
    max-width:100% !important;
  }
}

/* Correctifs ciblés : titres plus mesurés et aucun mot coupé */
.bl-single .bl-property-intro__title {
  font-size: clamp(40px, 4.2vw, 62px) !important;
  line-height: 1.08 !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  hyphens: none !important;
}
.bl-single .bl-property-intro__title,
.bl-single .bl-property-intro__title * ,
.bl-biens-wrap .bl-list-card__title,
.bl-biens-wrap .bl-card__title,
.bl-biens-wrap .bl-list-card__description,
.bl-biens-wrap .bl-card__meta,
.bl-single .bl-property-intro__location,
.bl-single .bl-property-intro__summary {
  word-break: normal !important;
  overflow-wrap: normal !important;
  hyphens: none !important;
}
.bl-biens-wrap .bl-list-card__title { font-size: clamp(22px, 1.8vw, 29px) !important; }
@media (max-width: 650px) {
  .bl-single .bl-property-intro__title { font-size: clamp(32px, 8vw, 43px) !important; line-height: 1.1 !important; }
  .bl-biens-wrap .bl-list-card__title { font-size: 24px !important; }
}
