/* v17 — pages régions/départements alignées sur la charte des pages communes */
.page-logement-territoire .content-card{
  padding:34px;
}

/* Recherche territoire : même base que .commune-search-block, avec switch */
.territory-search-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  margin-bottom:10px;
}
.territory-search-head label{
  margin:0!important;
}
.territory-search-switch{
  display:inline-flex;
  gap:3px;
  padding:3px;
  border-radius:999px;
  background:#edf4ff;
  border:1px solid #d8e2f3;
  flex:0 0 auto;
}
.territory-search-switch button{
  border:0;
  background:transparent;
  color:#2f4f8f;
  border-radius:999px;
  padding:7px 12px;
  font:inherit;
  font-size:12px;
  font-weight:900;
  cursor:pointer;
  white-space:nowrap;
}
.territory-search-switch button.is-active{
  background:#2563eb;
  color:#fff;
  box-shadow:0 1px 3px rgba(37,99,235,.25);
}
.territory-search-suggestions a{
  display:flex!important;
  flex-direction:column;
  gap:2px;
}
.territory-search-suggestions a span{
  color:#64748b;
  font-size:.86rem;
  font-weight:750;
}

.territory-breadcrumb{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  margin:2px 0 22px;
  font-size:13px;
  color:#64748b;
}
.territory-breadcrumb a{
  font-weight:850;
}
.territory-breadcrumb strong{
  color:#071936;
}

/* Légers ajustements pour les pages territoire en réutilisant les classes communes */
.logement-top.territory-top{
  margin-top:4px;
}
.territory-kind-badge{
  display:inline-flex;
  align-items:center;
  width:max-content;
  margin-bottom:6px;
  padding:5px 10px;
  border-radius:999px;
  background:#eef5ff;
  color:#075bd8;
  font-size:12px;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.territory-ranking-note a,
.commune-info-list a,
.housing-cost-analysis a{
  font-weight:900;
}

.territory-ad-slot{
  min-height:280px;
  margin:26px 0;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--line,#e6ebf2);
  border-radius:18px;
  background:#f8fafc;
  overflow:hidden;
  text-align:center;
}
.territory-ad-slot > span{
  color:#748198;
  font-size:11px;
  font-weight:900;
  letter-spacing:.12em;
}

/* Blocs hub complémentaires : style carte commune */
.territory-section.section-card{
  margin:24px 0;
}
.territory-section h2{
  margin-top:0;
}
.territory-link-grid,
.territory-neighbor-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:12px;
}
.territory-link-grid a,
.territory-neighbor-card{
  display:block;
  padding:16px;
  border-radius:16px;
  border:1px solid #e5eaf2;
  background:#fff;
  color:#071936;
  text-decoration:none!important;
}
.territory-link-grid a:hover,
.territory-neighbor-card:hover{
  background:#eef5ff;
  border-color:rgba(7,91,216,.22);
}
.territory-link-grid strong,
.territory-neighbor-card strong{
  display:block;
}
.territory-link-grid span,
.territory-neighbor-card span,
.territory-neighbor-card small{
  display:block;
  margin-top:3px;
  color:#64748b;
  font-size:13px;
  font-weight:800;
}
.territory-explore-section h3{
  margin:20px 0 12px;
  font-size:20px;
  color:#0c2b66;
}

.territory-heat-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:12px;
}
.territory-heat-grid article{
  padding:16px;
  border-radius:16px;
  background:#f8fbff;
  border:1px solid #e6edf7;
}
.territory-heat-grid span{
  display:block;
  color:#64748b;
  font-size:13px;
  font-weight:850;
}
.territory-heat-grid strong{
  display:block;
  margin-top:6px;
  color:#075bd8;
  font-size:26px;
  line-height:1;
}

/* Donut logement à 3 segments si “Autres logements” est significatif */
.repartition-donut-type.has-other{
  background:conic-gradient(
    #76ad5c 0 calc(var(--a)*1%),
    #2f80db 0 calc((var(--a) + var(--b))*1%),
    #94a3b8 0 100%
  )!important;
}

@media(max-width:900px){
  .page-logement-territoire .content-card{
    padding:26px 20px;
  }
  .territory-search-head{
    align-items:stretch;
    flex-direction:column;
  }
  .territory-search-switch{
    width:100%;
  }
  .territory-search-switch button{
    flex:1 1 0;
  }
  .territory-heat-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .territory-ad-slot{
    min-height:250px;
  }
}
@media(max-width:560px){
  .territory-heat-grid,
  .territory-link-grid,
  .territory-neighbor-grid{
    grid-template-columns:1fr;
  }
}

/* v18 — blocs additionnels alignés sur la charte commune */
.territory-muted{color:#64748b;font-weight:800}
.current-pill{display:inline-flex;margin-left:8px;padding:3px 8px;border-radius:999px;background:#eef5ff;color:#075bd8;font-size:11px;font-weight:900;vertical-align:middle}
.size-surface-card{min-height:100%}
.housing-size-card .market-kpi-card{justify-content:center}
.housing-size-card .market-kpi-content small{display:block;margin-top:6px}
.income-layout-enhanced{align-items:stretch}
.income-extremes-note a{font-weight:900}
.income-calculator-form label input{width:100%}
.nearby-market-row.is-current td:first-child a{font-weight:950}
@media(max-width:900px){
  .current-pill{display:inline-flex;margin-top:6px;margin-left:0}
}

/* v19 — rendu encore plus strictement aligné sur les pages commune */
.page-logement-territoire .territory-kind-badge{
  display:none!important;
}
.page-logement-territoire .logement-quick-insight{
  margin:14px 0 22px;
  padding:16px 18px;
  border:1px solid #d7e6fb;
  border-radius:16px;
  background:#fff;
  color:#071936;
  font-weight:850;
  line-height:1.55;
  max-width:780px;
}
.page-logement-territoire .commune-info-list div{
  grid-template-columns:minmax(0,1fr) auto;
}
.page-logement-territoire .commune-info-list strong{
  white-space:nowrap;
}
.page-logement-territoire .classement-commune-card,
.page-logement-territoire .housing-cost-card,
.page-logement-territoire .housing-repartition-card,
.page-logement-territoire .housing-size-card,
.page-logement-territoire .section-card{
  border-color:#dfe7f2;
}
.page-logement-territoire .territory-section h2,
.page-logement-territoire .france-compare-section h2,
.page-logement-territoire .income-section h2{
  color:#0c2b66;
}
@media(max-width:700px){
  .page-logement-territoire .logement-quick-insight{
    font-size:15px;
    padding:14px;
  }
  .page-logement-territoire .commune-info-list strong{
    white-space:normal;
  }
}


/* v21 — suppression du classement démographique et rangs visibles dans la carte identité */
.page-logement-territoire .logement-quick-insight{
  font-size:1.02rem;
  line-height:1.75;
  max-width:920px;
}

.territory-rank-strip{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  padding:14px;
  border-top:1px solid rgba(226,232,240,.9);
  background:linear-gradient(135deg,#f8fbff 0%,#eef6ff 100%);
}

.territory-rank-card{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
  padding:12px 10px;
  border:1px solid rgba(37,99,235,.14);
  border-radius:16px;
  background:#fff;
  box-shadow:0 8px 20px rgba(15,23,42,.05);
}

.territory-rank-card span{
  color:#64748b;
  font-size:.74rem;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.04em;
}

.territory-rank-card strong{
  color:#075bd8;
  font-size:2rem;
  line-height:1;
  font-weight:1000;
}

.territory-rank-card.rank-surface strong{
  color:#16a34a;
}

.territory-rank-card em{
  color:#475569;
  font-size:.78rem;
  font-style:normal;
  font-weight:850;
}

@media(max-width:560px){
  .territory-rank-strip{
    grid-template-columns:1fr;
  }
  .territory-rank-card strong{
    font-size:1.75rem;
  }
}

/* v22 — intro futuriste, suggestions affinées, sources communes, suppression pubs */
.territory-intro-panel{
  position:relative;
  overflow:hidden;
  margin:18px 0 12px;
  padding:18px 20px;
  border-radius:24px;
  border:1px solid rgba(76,116,255,.22);
  background:linear-gradient(135deg, rgba(11,87,208,.09) 0%, rgba(69,208,174,.10) 52%, rgba(255,146,76,.09) 100%), #f8fbff;
  box-shadow:0 14px 34px rgba(15,23,42,.08), inset 0 1px 0 rgba(255,255,255,.9);
}
.territory-intro-glow{
  position:absolute; inset:auto -90px -120px auto; width:240px; height:240px; border-radius:50%;
  background:radial-gradient(circle, rgba(59,130,246,.25) 0%, rgba(59,130,246,0) 68%);
  pointer-events:none;
}
.territory-intro-content{position:relative; z-index:1;}
.territory-intro-kicker{
  display:inline-flex; align-items:center; gap:8px; margin-bottom:10px; padding:6px 12px;
  border-radius:999px; background:rgba(255,255,255,.7); border:1px solid rgba(59,130,246,.18);
  color:#0f3e91; font-size:.83rem; font-weight:900; letter-spacing:.02em; text-transform:uppercase;
}
.territory-quick-insight{margin:0; color:#17315c; font-size:1rem; line-height:1.72;}
.territory-intro-tags{display:flex; flex-wrap:wrap; gap:10px; margin-top:16px;}
.territory-intro-tag{
  display:inline-flex; align-items:center; padding:8px 12px; border-radius:999px; 
  background:rgba(255,255,255,.78); border:1px solid rgba(148,163,184,.26); 
  box-shadow:0 8px 20px rgba(15,23,42,.05); color:#0b4ab7; font-size:.88rem; font-weight:800;
}

.territory-search-suggestions .territory-suggestion{
  display:flex; flex-direction:column; gap:2px;
}
.territory-search-suggestions .territory-suggestion strong{display:block;}
.territory-search-suggestions .territory-suggestion span,
.territory-search-suggestions .territory-suggestion small{
  color:#7a869d; font-size:.82rem; line-height:1.35; font-weight:700;
}
.territory-search-suggestions .territory-suggestion-region small,
.territory-search-suggestions .territory-suggestion-region span{display:none;}

.sources-card-grid-section{padding-top:8px;}
.sources-card-grid{
  display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:14px; margin-top:10px;
}
.source-card{
  padding:16px 18px; border-radius:18px; border:1px solid #d7e2f3; background:#fff; box-shadow:0 1px 0 rgba(255,255,255,.8) inset;
}
.source-card h3{margin:0 0 8px; color:#0d2d69; font-size:1.08rem; line-height:1.35; font-weight:900;}
.source-card p{margin:0; color:#415372; line-height:1.55;}
.source-method-note{margin-top:16px; padding:14px 16px; border-radius:18px; background:#f8fbff; border:1px solid #d7e2f3; color:#4a5e80;}

.faq details{
  border:1px solid #d7e2f3; border-radius:16px; background:#fff; padding:0; overflow:hidden; margin-bottom:12px;
}
.faq summary{cursor:pointer; list-style:none; padding:16px 18px; font-weight:900; color:#0d2d69;}
.faq summary::-webkit-details-marker{display:none;}
.faq details p{padding:0 18px 18px; margin:0; color:#415372; line-height:1.65;}

@media (max-width: 760px){
  .territory-intro-panel{padding:16px; border-radius:20px;}
  .territory-intro-tag{font-size:.82rem;}
  .sources-card-grid{grid-template-columns:1fr;}
}


/* v25 — hero régions/départements sombre futuriste, proche de la maquette fournie */
.page-logement-territoire .content-card{overflow:hidden;}
.territory-cyber-shell{position:relative;margin:18px -34px 34px;padding:28px 28px 34px;border-radius:30px;background:radial-gradient(circle at 18% 16%,rgba(37,99,235,.28),transparent 26%),radial-gradient(circle at 62% 12%,rgba(147,51,234,.22),transparent 24%),radial-gradient(circle at 88% 84%,rgba(20,184,166,.18),transparent 28%),linear-gradient(135deg,#020919 0%,#04142f 42%,#020817 100%);box-shadow:0 28px 70px rgba(2,8,23,.36),inset 0 1px 0 rgba(255,255,255,.05);color:#f8fbff;isolation:isolate;}
.territory-cyber-shell::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.42;background-image:radial-gradient(circle at 12% 20%,rgba(34,211,238,.7) 0 1px,transparent 2px),radial-gradient(circle at 52% 3%,rgba(129,140,248,.8) 0 1px,transparent 2px),radial-gradient(circle at 70% 42%,rgba(34,211,238,.35) 0 1px,transparent 2px),linear-gradient(120deg,transparent 0 42%,rgba(56,189,248,.05) 42% 43%,transparent 43% 100%);background-size:260px 260px,340px 340px,220px 220px,100% 100%;border-radius:inherit;}
.territory-cyber-shell::after{content:"";position:absolute;left:36%;top:58px;width:310px;height:170px;opacity:.23;pointer-events:none;background:repeating-radial-gradient(ellipse at center,rgba(56,189,248,.35) 0 1px,transparent 2px 14px);mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent);transform:rotate(-6deg);}
.territory-cyber-shell .territory-breadcrumb{position:relative;z-index:1;margin:0 0 28px;gap:14px;color:rgba(226,232,240,.72);font-size:15px;}
.territory-cyber-shell .territory-breadcrumb a,.territory-cyber-shell .territory-breadcrumb strong{color:#e2e8f0;text-decoration:none!important;}
.territory-cyber-shell .territory-breadcrumb strong{color:#22f4e8;text-shadow:0 0 14px rgba(34,244,232,.55);}
.logement-top.territory-cyber-top{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.18fr) minmax(340px,.82fr);gap:34px;align-items:start;margin:0;}
.territory-cyber-top .logement-top-left{min-width:0;}
.territory-cyber-title{margin:0 0 22px!important;max-width:820px;font-size:clamp(44px,5.7vw,82px)!important;line-height:.93!important;letter-spacing:-.055em!important;font-weight:1000!important;}
.territory-cyber-title span{display:block;color:#f8fbff;text-shadow:0 6px 30px rgba(255,255,255,.18);}
.territory-cyber-title strong{display:block;margin-top:6px;background:linear-gradient(100deg,#28f3ff 0%,#23a9ff 34%,#8b5cf6 70%,#ec6cff 100%);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 28px rgba(34,211,238,.22);}
.territory-cyber-top .logement-subtitle{max-width:760px;margin:0 0 22px!important;color:rgba(226,232,240,.84)!important;font-size:clamp(16px,1.4vw,21px)!important;line-height:1.5!important;font-weight:650!important;}
.territory-cyber-top .territory-intro-panel{margin:16px 0 18px;padding:20px 28px 26px;max-width:760px;border-radius:24px;border:1px solid rgba(34,211,238,.72);background:linear-gradient(135deg,rgba(7,20,52,.92),rgba(9,28,68,.72));box-shadow:0 0 0 1px rgba(34,211,238,.16),0 0 38px rgba(14,165,233,.23),inset 0 0 42px rgba(15,23,42,.35);}
.territory-cyber-top .territory-intro-panel::before{content:"";position:absolute;right:18px;top:16px;width:24px;height:24px;border-top:4px solid rgba(34,211,238,.85);border-right:4px solid rgba(34,211,238,.85);border-radius:0 10px 0 0;filter:drop-shadow(0 0 8px rgba(34,211,238,.65));pointer-events:none;}
.territory-cyber-top .territory-intro-panel::after{content:"";position:absolute;left:18px;bottom:16px;width:68px;height:3px;background:linear-gradient(90deg,#22d3ee,#0ea5e9,transparent);box-shadow:92px 0 0 rgba(34,211,238,.75),104px 0 0 rgba(34,211,238,.75);pointer-events:none;}
.territory-cyber-top .territory-intro-kicker{position:relative;padding:8px 18px 8px 42px;margin-bottom:16px;border-radius:8px 18px 18px 8px;background:linear-gradient(90deg,rgba(6,182,212,.24),rgba(14,165,233,.08));border:1px solid rgba(34,211,238,.88);color:#31f7ff;font-size:15px;letter-spacing:.03em;box-shadow:0 0 22px rgba(34,211,238,.18);}
.territory-cyber-top .territory-intro-kicker::before{content:"⚡";position:absolute;left:17px;top:50%;transform:translateY(-52%);color:#31f7ff;text-shadow:0 0 12px rgba(34,211,238,.8);}
.territory-cyber-top .territory-quick-insight,.territory-cyber-top .logement-quick-insight{margin:0!important;padding:0!important;border:0!important;background:transparent!important;color:rgba(248,250,252,.92)!important;font-size:clamp(15px,1.22vw,19px)!important;line-height:1.5!important;font-weight:650!important;box-shadow:none!important;}
.territory-cyber-top .territory-intro-tags{margin-top:16px;}
.territory-cyber-top .territory-intro-tag{background:rgba(8,27,65,.7);border:1px solid rgba(34,211,238,.28);color:#9befff;box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 0 18px rgba(34,211,238,.08);}
.territory-cyber-top .hero-source{color:rgba(203,213,225,.75)!important;font-size:15px;font-weight:850!important;}
.territory-cyber-top .hero-source::before{content:"ⓘ";color:#22d3ee;margin-right:9px;text-shadow:0 0 12px rgba(34,211,238,.6);}
.territory-cyber-top .hero-kpi-grid{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:16px!important;margin-top:18px!important;}
.territory-cyber-top .hero-kpi{position:relative;min-height:160px;padding:20px 16px 22px!important;border-radius:20px!important;background:linear-gradient(180deg,rgba(8,29,70,.83),rgba(4,15,39,.72))!important;border:1px solid rgba(34,151,255,.48)!important;box-shadow:inset 0 0 22px rgba(34,211,238,.05),0 0 20px rgba(14,165,233,.16)!important;color:#e2e8f0!important;overflow:hidden;}
.territory-cyber-top .hero-kpi::before{content:"";position:absolute;inset:0;opacity:.14;background-image:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px);background-size:28px 28px;}
.territory-cyber-top .hero-kpi::after{content:"";position:absolute;left:50%;bottom:10px;width:76px;height:4px;transform:translateX(-50%);border-radius:999px;background:currentColor;box-shadow:0 0 18px currentColor;}
.territory-cyber-top .hero-kpi-icon{position:relative;z-index:1;width:48px!important;height:48px!important;margin:0 auto 18px!important;color:currentColor!important;}
.territory-cyber-top .hero-kpi-icon svg{width:48px!important;height:48px!important;stroke:currentColor!important;stroke-width:1.8!important;fill:none!important;}
.territory-cyber-top .hero-kpi strong{position:relative;z-index:1;display:block;color:currentColor!important;font-size:clamp(24px,2.3vw,34px)!important;line-height:1!important;font-weight:1000!important;text-shadow:0 0 18px currentColor;}
.territory-cyber-top .hero-kpi span:last-child{position:relative;z-index:1;display:block;color:rgba(241,245,249,.88)!important;margin-top:8px;font-size:15px!important;line-height:1.18;font-weight:700!important;}
.territory-cyber-top .hero-kpi:nth-child(1){color:#16eaff!important;}
.territory-cyber-top .hero-kpi:nth-child(2){color:#bf7bff!important;border-color:rgba(168,85,247,.54)!important;box-shadow:0 0 20px rgba(168,85,247,.16)!important;}
.territory-cyber-top .hero-kpi:nth-child(3){color:#35f197!important;border-color:rgba(16,185,129,.48)!important;box-shadow:0 0 20px rgba(16,185,129,.14)!important;}
.territory-cyber-top .hero-kpi:nth-child(4){color:#ff9f2e!important;border-color:rgba(245,158,11,.52)!important;box-shadow:0 0 20px rgba(245,158,11,.16)!important;}
.territory-cyber-top .hero-kpi:nth-child(5){color:#24a7ff!important;}
.territory-cyber-top .commune-identity-card{position:relative;overflow:hidden;border-radius:30px!important;border:1px solid rgba(34,151,255,.72)!important;background:linear-gradient(180deg,rgba(7,23,55,.92),rgba(3,12,33,.92))!important;box-shadow:0 0 0 1px rgba(34,211,238,.13),0 0 34px rgba(14,165,233,.24),inset 0 0 34px rgba(15,23,42,.4)!important;}
.territory-cyber-top .commune-main-photo{width:100%!important;height:clamp(220px,23vw,310px)!important;object-fit:cover!important;border-radius:24px 24px 0 0!important;border:0!important;display:block;}
.territory-cyber-info-list{margin:12px 16px 0!important;padding:0!important;border:1px solid rgba(34,151,255,.22)!important;border-radius:18px!important;overflow:hidden;background:linear-gradient(180deg,rgba(5,23,58,.78),rgba(4,15,39,.78))!important;}
.territory-cyber-info-list .territory-info-row{display:grid!important;grid-template-columns:44px minmax(0,1fr) auto!important;gap:14px!important;align-items:center!important;min-height:66px!important;padding:0 18px!important;border-bottom:1px solid rgba(56,189,248,.16)!important;color:#f8fbff!important;}
.territory-cyber-info-list .territory-info-row:last-child{border-bottom:0!important;}
.territory-cyber-info-list .territory-info-icon{width:34px;height:34px;display:inline-flex!important;align-items:center;justify-content:center;color:#22e9ff!important;font-size:24px;}
.territory-cyber-info-list .info-surface .territory-info-icon{color:#bf7bff!important;}
.territory-cyber-info-list .info-density .territory-info-icon{color:#2ff2d5!important;}
.territory-cyber-info-list .territory-info-icon svg{width:34px!important;height:34px!important;stroke:currentColor!important;stroke-width:1.8!important;fill:none!important;}
.territory-cyber-info-list .territory-info-row > span:not(.territory-info-icon){color:#e2e8f0!important;font-size:17px!important;font-weight:900!important;}
.territory-cyber-info-list .territory-info-row strong,.territory-cyber-info-list .territory-info-row strong a{color:#f8fafc!important;font-size:18px!important;font-weight:950!important;white-space:nowrap;}
.territory-cyber-top .territory-rank-strip{display:grid!important;grid-template-columns:1fr 1fr!important;gap:16px!important;margin:16px!important;padding:0!important;border:0!important;background:transparent!important;}
.territory-cyber-top .territory-rank-card{min-height:124px;align-items:center;justify-content:center;text-align:center;border-radius:18px!important;background:linear-gradient(180deg,rgba(8,29,70,.82),rgba(3,15,40,.76))!important;border:1px solid rgba(34,151,255,.65)!important;box-shadow:0 0 22px rgba(14,165,233,.18),inset 0 0 20px rgba(34,211,238,.04)!important;}
.territory-cyber-top .territory-rank-card.rank-surface{border-color:rgba(45,212,191,.65)!important;box-shadow:0 0 22px rgba(45,212,191,.16),inset 0 0 20px rgba(45,212,191,.04)!important;}
.territory-cyber-top .territory-rank-card span{color:rgba(226,232,240,.75)!important;font-size:14px!important;letter-spacing:.09em!important;}
.territory-cyber-top .territory-rank-card strong{color:#20cfff!important;font-size:clamp(48px,5.2vw,74px)!important;line-height:.8!important;text-shadow:0 0 24px rgba(34,211,238,.55);}
.territory-cyber-top .territory-rank-card.rank-surface strong{color:#2ff2b4!important;text-shadow:0 0 24px rgba(45,212,191,.55);}
.territory-cyber-top .territory-rank-card em{color:#f8fafc!important;font-size:17px!important;font-weight:650!important;}
@media(max-width:1100px){.logement-top.territory-cyber-top{grid-template-columns:1fr;}.territory-cyber-top .hero-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}.territory-cyber-title{font-size:clamp(40px,8vw,72px)!important;}}
@media(max-width:760px){.territory-cyber-shell{margin:16px -20px 28px;padding:22px 16px 26px;border-radius:24px;}.territory-cyber-top .hero-kpi-grid{grid-template-columns:1fr!important;}.territory-cyber-top .territory-rank-strip{grid-template-columns:1fr!important;}.territory-cyber-info-list .territory-info-row{grid-template-columns:36px minmax(0,1fr);}.territory-cyber-info-list .territory-info-row strong{grid-column:2;justify-self:start;}}



/* =========================================================
   v26 — corrections hero futuriste d'après capture de test
   - fond réellement sombre
   - KPI étirés sur toute la largeur
   - icônes plus fines
   - meilleure proximité avec la maquette de référence
   ========================================================= */

.page-logement-territoire .content-card{
  background:
    radial-gradient(circle at 72% 12%, rgba(24, 117, 255, .18) 0, rgba(24,117,255,0) 24%),
    radial-gradient(circle at 16% 28%, rgba(34, 211, 238, .15) 0, rgba(34,211,238,0) 28%),
    linear-gradient(135deg, #030816 0%, #06142c 46%, #071a36 100%) !important;
  border-color: rgba(34, 211, 238, .18) !important;
  box-shadow:
    0 28px 80px rgba(2, 6, 23, .42),
    inset 0 1px 0 rgba(255,255,255,.04) !important;
  overflow:hidden;
  position:relative;
}

.page-logement-territoire .content-card::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 52% 11%, rgba(34,211,238,.16) 0 1px, transparent 2px),
    radial-gradient(circle at 82% 44%, rgba(168,85,247,.14) 0 1px, transparent 2px),
    linear-gradient(rgba(34,211,238,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(34,211,238,.028) 1px, transparent 1px);
  background-size: 190px 190px, 230px 230px, 42px 42px, 42px 42px;
  mask-image: linear-gradient(to bottom, #000 0%, #000 70%, transparent 100%);
  opacity:.62;
}

.page-logement-territoire .content-card::after{
  content:"";
  position:absolute;
  left:35%;
  top:40px;
  width:360px;
  height:260px;
  pointer-events:none;
  opacity:.23;
  background:
    repeating-radial-gradient(ellipse at center, rgba(34,211,238,.5) 0 1px, transparent 2px 11px);
  transform:rotate(-12deg);
  filter:blur(.1px);
}

.page-logement-territoire .content-card > *{
  position:relative;
  z-index:1;
}

.page-logement-territoire .territory-breadcrumb{
  color:rgba(226,236,255,.74)!important;
}
.page-logement-territoire .territory-breadcrumb a{
  color:rgba(226,236,255,.82)!important;
}
.page-logement-territoire .territory-breadcrumb strong{
  color:#29f0ff!important;
}

.logement-top.territory-top{
  display:grid!important;
  grid-template-columns:minmax(0,1.18fr) minmax(360px,.82fr)!important;
  gap:34px!important;
  align-items:start!important;
  margin-top:16px!important;
}

.page-logement-territoire .territory-kind-badge{
  display:none!important;
}

.page-logement-territoire .logement-top-left h1{
  max-width:760px;
  margin:18px 0 22px!important;
  color:#fff!important;
  font-size:clamp(48px, 5.25vw, 86px)!important;
  line-height:.98!important;
  letter-spacing:-.075em!important;
  font-weight:950!important;
  text-shadow:0 0 32px rgba(34,211,238,.20)!important;
}
.page-logement-territoire .logement-top-left h1::first-line{
  color:#f8fbff;
}
.page-logement-territoire .logement-top-left h1{
  background:linear-gradient(90deg,#ffffff 0 22%, #20e8ff 28%, #27a8ff 54%, #8b72ff 74%, #dd5cff 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent!important;
}

.page-logement-territoire .logement-subtitle{
  max-width:650px!important;
  color:rgba(226,236,255,.76)!important;
  font-size:1.18rem!important;
  font-weight:700!important;
  line-height:1.55!important;
  margin-bottom:24px!important;
}

.page-logement-territoire .territory-intro-panel{
  max-width:760px;
  margin:0 0 18px!important;
  padding:22px 26px 24px!important;
  border-radius:24px!important;
  border:1.5px solid rgba(34,211,238,.78)!important;
  background:
    linear-gradient(135deg, rgba(12,29,64,.96) 0%, rgba(17,38,83,.92) 58%, rgba(34,53,94,.92) 100%)!important;
  box-shadow:
    0 0 0 1px rgba(34,211,238,.12) inset,
    0 0 28px rgba(34,211,238,.22),
    0 22px 55px rgba(0,0,0,.28)!important;
}
.page-logement-territoire .territory-intro-panel::before{
  content:"";
  position:absolute;
  inset:12px;
  border-radius:18px;
  border:1px solid rgba(42,167,255,.28);
  clip-path:polygon(0 0, 84% 0, 100% 16%, 100% 88%, 92% 100%, 0 100%);
  pointer-events:none;
}
.page-logement-territoire .territory-intro-panel::after{
  content:"";
  position:absolute;
  right:22px;
  top:18px;
  width:36px;
  height:36px;
  border-top:4px solid #22e8ff;
  border-right:4px solid #22e8ff;
  border-radius:0 8px 0 0;
  opacity:.85;
}
.page-logement-territoire .territory-intro-kicker{
  background:rgba(3,16,35,.72)!important;
  border:1px solid rgba(34,232,255,.92)!important;
  color:#22e8ff!important;
  box-shadow:0 0 18px rgba(34,232,255,.18)!important;
  font-size:.9rem!important;
  padding:8px 14px!important;
}
.page-logement-territoire .territory-quick-insight{
  color:#f4f8ff!important;
  font-size:1.03rem!important;
  line-height:1.58!important;
  font-weight:750!important;
}
.page-logement-territoire .territory-intro-tags{
  display:none!important;
}

.page-logement-territoire .hero-source{
  color:rgba(226,236,255,.62)!important;
  font-weight:800!important;
}
.page-logement-territoire .hero-source::before{
  content:"ⓘ";
  color:#22e8ff;
  margin-right:8px;
}

/* Carte identité droite : sombre, intégrée au hero */
.page-logement-territoire .commune-identity-card{
  border-radius:28px!important;
  padding:12px!important;
  background:linear-gradient(180deg, rgba(8,27,60,.98), rgba(3,15,35,.98))!important;
  border:1.5px solid rgba(34,211,238,.58)!important;
  box-shadow:
    0 0 34px rgba(34,211,238,.20),
    0 24px 60px rgba(0,0,0,.32)!important;
  overflow:hidden!important;
}
.page-logement-territoire .commune-main-photo{
  border-radius:20px 20px 4px 4px!important;
  height:315px!important;
  width:100%!important;
  object-fit:cover!important;
  border:1px solid rgba(34,211,238,.55)!important;
  box-shadow:0 0 24px rgba(34,211,238,.20)!important;
}
.page-logement-territoire .commune-info-list{
  margin:12px 0 12px!important;
  padding:8px 16px!important;
  border-radius:18px!important;
  background:rgba(4,18,42,.94)!important;
  border:1px solid rgba(59,130,246,.34)!important;
}
.page-logement-territoire .commune-info-list div{
  min-height:58px!important;
  border-bottom:1px solid rgba(72,111,168,.34)!important;
  color:#f8fbff!important;
}
.page-logement-territoire .commune-info-list div:last-child{
  border-bottom:0!important;
}
.page-logement-territoire .commune-info-list span{
  color:#f8fbff!important;
  font-size:1rem!important;
  font-weight:900!important;
}
.page-logement-territoire .commune-info-list strong{
  color:#fff!important;
  font-size:1.03rem!important;
  font-weight:950!important;
}
.page-logement-territoire .commune-info-list a{
  color:#fff!important;
}
.page-logement-territoire .commune-info-list div:nth-child(1)::before,
.page-logement-territoire .commune-info-list div:nth-child(2)::before,
.page-logement-territoire .commune-info-list div:nth-child(3)::before{
  content:"";
  width:28px;
  height:28px;
  flex:0 0 28px;
  margin-right:12px;
  background:currentColor;
  mask-repeat:no-repeat;
  mask-size:contain;
  mask-position:center;
  -webkit-mask-repeat:no-repeat;
  -webkit-mask-size:contain;
  -webkit-mask-position:center;
}
.page-logement-territoire .commune-info-list div:nth-child(1){color:#20e8ff!important;}
.page-logement-territoire .commune-info-list div:nth-child(2){color:#b46cff!important;}
.page-logement-territoire .commune-info-list div:nth-child(3){color:#22f0d0!important;}
.page-logement-territoire .commune-info-list div:nth-child(1)::before{
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='1.55' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3'/%3E%3Ccircle cx='17' cy='9' r='2.5'/%3E%3Cpath d='M3.5 19c.8-3.9 2.7-6 5.5-6s4.7 2.1 5.5 6'/%3E%3Cpath d='M14.5 14c2.9.2 4.8 1.9 5.5 5'/%3E%3C/g%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='1.55' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3'/%3E%3Ccircle cx='17' cy='9' r='2.5'/%3E%3Cpath d='M3.5 19c.8-3.9 2.7-6 5.5-6s4.7 2.1 5.5 6'/%3E%3Cpath d='M14.5 14c2.9.2 4.8 1.9 5.5 5'/%3E%3C/g%3E%3C/svg%3E");
}
.page-logement-territoire .commune-info-list div:nth-child(2)::before{
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 8V5h3M16 5h3v3M19 16v3h-3M8 19H5v-3'/%3E%3Cpath d='m8 12 4-4 4 4-4 4-4-4Z'/%3E%3C/g%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 8V5h3M16 5h3v3M19 16v3h-3M8 19H5v-3'/%3E%3Cpath d='m8 12 4-4 4 4-4 4-4-4Z'/%3E%3C/g%3E%3C/svg%3E");
}
.page-logement-territoire .commune-info-list div:nth-child(3)::before{
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12.5 12 5l9 7.5'/%3E%3Cpath d='M5.5 11V20h13v-9'/%3E%3Cpath d='M9 20v-5h6v5'/%3E%3Cpath d='M16.5 7.5h4v4'/%3E%3Cpath d='M20.5 7.5 16 12'/%3E%3C/g%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12.5 12 5l9 7.5'/%3E%3Cpath d='M5.5 11V20h13v-9'/%3E%3Cpath d='M9 20v-5h6v5'/%3E%3Cpath d='M16.5 7.5h4v4'/%3E%3Cpath d='M20.5 7.5 16 12'/%3E%3C/g%3E%3C/svg%3E");
}

.page-logement-territoire .territory-rank-strip{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:14px!important;
  margin-top:12px!important;
}
.page-logement-territoire .territory-rank-card{
  min-height:118px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:18px!important;
  background:linear-gradient(180deg, rgba(8,28,65,.9), rgba(4,18,42,.96))!important;
  border:1.5px solid rgba(34,211,238,.62)!important;
  box-shadow:0 0 18px rgba(34,211,238,.12) inset!important;
}
.page-logement-territoire .territory-rank-card.rank-surface{
  border-color:rgba(34,240,208,.58)!important;
}
.page-logement-territoire .territory-rank-card span{
  color:rgba(226,236,255,.76)!important;
  font-size:.8rem!important;
  letter-spacing:.08em!important;
  text-transform:uppercase!important;
  font-weight:900!important;
}
.page-logement-territoire .territory-rank-card strong{
  margin:6px 0 0!important;
  color:#1edfff!important;
  font-size:clamp(46px,4vw,68px)!important;
  line-height:.9!important;
  font-weight:950!important;
  text-shadow:0 0 22px rgba(30,223,255,.45)!important;
}
.page-logement-territoire .territory-rank-card.rank-surface strong{
  color:#2ff0b5!important;
  text-shadow:0 0 22px rgba(47,240,181,.40)!important;
}
.page-logement-territoire .territory-rank-card em{
  color:#fff!important;
  font-size:.96rem!important;
  font-style:normal!important;
  font-weight:800!important;
}

/* KPI : pleine largeur disponible et icônes plus fines */
.page-logement-territoire .hero-kpi-grid{
  grid-column:1 / -1!important;
  display:grid!important;
  grid-template-columns:repeat(5, minmax(0,1fr))!important;
  gap:18px!important;
  width:100%!important;
  margin:30px 0 0!important;
}
.page-logement-territoire .hero-kpi{
  min-height:152px!important;
  padding:20px 16px 18px!important;
  border-radius:20px!important;
  background:linear-gradient(180deg, rgba(8,28,65,.92), rgba(5,19,44,.96))!important;
  border:1.4px solid rgba(34,211,238,.48)!important;
  box-shadow:0 0 24px rgba(34,211,238,.11), inset 0 1px 0 rgba(255,255,255,.05)!important;
  color:#fff!important;
  justify-content:center!important;
}
.page-logement-territoire .hero-kpi:nth-child(2){
  border-color:rgba(190,108,255,.58)!important;
}
.page-logement-territoire .hero-kpi:nth-child(3){
  border-color:rgba(47,240,181,.52)!important;
}
.page-logement-territoire .hero-kpi:nth-child(4){
  border-color:rgba(255,168,46,.58)!important;
}
.page-logement-territoire .hero-kpi:nth-child(5){
  border-color:rgba(46,163,255,.58)!important;
}
.page-logement-territoire .hero-kpi::after{
  content:"";
  display:block;
  width:64px;
  height:4px;
  border-radius:999px;
  margin:14px auto 0;
  background:#22e8ff;
  box-shadow:0 0 12px rgba(34,232,255,.7);
}
.page-logement-territoire .hero-kpi:nth-child(2)::after{background:#c86dff;box-shadow:0 0 12px rgba(200,109,255,.65);}
.page-logement-territoire .hero-kpi:nth-child(3)::after{background:#2ff0b5;box-shadow:0 0 12px rgba(47,240,181,.65);}
.page-logement-territoire .hero-kpi:nth-child(4)::after{background:#ff9f24;box-shadow:0 0 12px rgba(255,159,36,.65);}
.page-logement-territoire .hero-kpi:nth-child(5)::after{background:#2ea3ff;box-shadow:0 0 12px rgba(46,163,255,.65);}
.page-logement-territoire .hero-kpi-icon{
  width:42px!important;
  height:42px!important;
  margin-bottom:10px!important;
}
.page-logement-territoire .hero-kpi-icon svg{
  width:42px!important;
  height:42px!important;
}
.page-logement-territoire .hero-kpi-icon svg *{
  stroke-width:1.35!important;
}
.page-logement-territoire .hero-kpi strong{
  color:#22e8ff!important;
  font-size:clamp(24px,2.5vw,36px)!important;
  line-height:1!important;
  font-weight:950!important;
  letter-spacing:-.03em!important;
  text-shadow:0 0 18px rgba(34,232,255,.35)!important;
  white-space:nowrap!important;
}
.page-logement-territoire .hero-kpi:nth-child(2) strong{color:#c86dff!important;text-shadow:0 0 18px rgba(200,109,255,.32)!important;}
.page-logement-territoire .hero-kpi:nth-child(3) strong{color:#2ff0b5!important;text-shadow:0 0 18px rgba(47,240,181,.32)!important;}
.page-logement-territoire .hero-kpi:nth-child(4) strong{color:#ff9f24!important;text-shadow:0 0 18px rgba(255,159,36,.32)!important;}
.page-logement-territoire .hero-kpi:nth-child(5) strong{color:#2ea3ff!important;text-shadow:0 0 18px rgba(46,163,255,.32)!important;}
.page-logement-territoire .hero-kpi span:last-child{
  color:#fff!important;
  font-size:1rem!important;
  line-height:1.15!important;
  font-weight:800!important;
}

/* Réorganise le hero pour que les KPI passent sous les deux colonnes */
.page-logement-territoire .logement-top-left{
  display:contents!important;
}
.page-logement-territoire .logement-top-left > .territory-kind-badge,
.page-logement-territoire .logement-top-left > h1,
.page-logement-territoire .logement-top-left > .logement-subtitle,
.page-logement-territoire .logement-top-left > .territory-intro-panel,
.page-logement-territoire .logement-top-left > .hero-source{
  grid-column:1!important;
}
.page-logement-territoire .commune-identity-card{
  grid-column:2!important;
  grid-row:1 / span 5!important;
}
.page-logement-territoire .hero-kpi-grid{
  grid-column:1 / -1!important;
}

@media(max-width:1050px){
  .logement-top.territory-top{
    grid-template-columns:1fr!important;
  }
  .page-logement-territoire .logement-top-left{
    display:block!important;
  }
  .page-logement-territoire .commune-identity-card{
    grid-column:auto!important;
    grid-row:auto!important;
  }
  .page-logement-territoire .hero-kpi-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media(max-width:640px){
  .page-logement-territoire .content-card{
    border-radius:0!important;
  }
  .page-logement-territoire .hero-kpi-grid{
    grid-template-columns:1fr!important;
  }
  .page-logement-territoire .logement-top-left h1{
    font-size:clamp(38px,14vw,58px)!important;
  }
  .page-logement-territoire .commune-main-photo{
    height:220px!important;
  }
}


/* =========================================================
   v27 — le fond sombre est limité au bloc de tête
   ========================================================= */

/* La carte principale redevient claire en dehors du hero */
.page-logement-territoire .content-card{
  background:#fff!important;
  border-color:#dbe6f5!important;
  box-shadow:0 20px 60px rgba(15,23,42,.08)!important;
  overflow:visible!important;
  position:relative!important;
}

.page-logement-territoire .content-card::before,
.page-logement-territoire .content-card::after{
  display:none!important;
}

/* Nouveau vrai bloc de tête sombre */
.page-logement-territoire .territory-hero-shell{
  position:relative;
  overflow:hidden;
  margin:-6px -10px 30px;
  padding:28px 28px 32px;
  border-radius:28px;
  background:
    radial-gradient(circle at 72% 12%, rgba(24,117,255,.18) 0, rgba(24,117,255,0) 24%),
    radial-gradient(circle at 16% 28%, rgba(34,211,238,.15) 0, rgba(34,211,238,0) 28%),
    linear-gradient(135deg, #030816 0%, #06142c 46%, #071a36 100%)!important;
  border:1px solid rgba(34,211,238,.20);
  box-shadow:0 28px 80px rgba(2,6,23,.28), inset 0 1px 0 rgba(255,255,255,.04);
}

.page-logement-territoire .territory-hero-shell::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 52% 11%, rgba(34,211,238,.16) 0 1px, transparent 2px),
    radial-gradient(circle at 82% 44%, rgba(168,85,247,.14) 0 1px, transparent 2px),
    linear-gradient(rgba(34,211,238,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(34,211,238,.028) 1px, transparent 1px);
  background-size:190px 190px,230px 230px,42px 42px,42px 42px;
  opacity:.62;
}

.page-logement-territoire .territory-hero-shell::after{
  content:"";
  position:absolute;
  left:35%;
  top:32px;
  width:360px;
  height:260px;
  pointer-events:none;
  opacity:.23;
  background:repeating-radial-gradient(ellipse at center, rgba(34,211,238,.5) 0 1px, transparent 2px 11px);
  transform:rotate(-12deg);
}

.page-logement-territoire .territory-hero-shell > *{
  position:relative;
  z-index:1;
}

/* Breadcrumb dans le bloc sombre */
.page-logement-territoire .territory-hero-shell .territory-breadcrumb{
  margin:0 0 18px!important;
  color:rgba(226,236,255,.74)!important;
}
.page-logement-territoire .territory-hero-shell .territory-breadcrumb a{
  color:rgba(226,236,255,.82)!important;
}
.page-logement-territoire .territory-hero-shell .territory-breadcrumb strong{
  color:#29f0ff!important;
}

.page-logement-territoire .territory-hero-shell .logement-top.territory-top{
  margin-top:0!important;
  margin-bottom:0!important;
}

/* Les styles sombres v26 restent limités au bloc de tête */
.page-logement-territoire .content-card > section:not(.territory-hero-shell){
  position:relative;
  z-index:2;
}

/* Les blocs suivants restent dans la charte claire des pages classiques */
.page-logement-territoire .housing-cost-card,
.page-logement-territoire .housing-repartition-card,
.page-logement-territoire .housing-size-card,
.page-logement-territoire .section-card,
.page-logement-territoire .insight-card,
.page-logement-territoire .compare-row,
.page-logement-territoire .nearby-market-section,
.page-logement-territoire .france-compare-section,
.page-logement-territoire .income-section{
  background-color:#fff;
}

@media(max-width:1050px){
  .page-logement-territoire .territory-hero-shell{
    margin:-4px -4px 26px;
    padding:22px 18px 26px;
    border-radius:24px;
  }
}

@media(max-width:640px){
  .page-logement-territoire .territory-hero-shell{
    margin:-10px -14px 24px;
    padding:20px 16px 24px;
    border-radius:0 0 24px 24px;
  }
}


/* =========================================================
   v28 — corrections UI hero : icônes uniques, analyse, marges
   ========================================================= */

/* 1) Carte droite : on garde uniquement les icônes SVG HTML,
   on neutralise les icônes injectées par les anciens ::before. */
.page-logement-territoire .territory-cyber-info-list .territory-info-row::before,
.page-logement-territoire .commune-info-list .territory-info-row::before,
.page-logement-territoire .commune-info-list div:nth-child(1)::before,
.page-logement-territoire .commune-info-list div:nth-child(2)::before,
.page-logement-territoire .commune-info-list div:nth-child(3)::before{
  content:none!important;
  display:none!important;
}

.page-logement-territoire .territory-cyber-info-list .territory-info-row{
  display:grid!important;
  grid-template-columns:34px minmax(0,1fr) auto!important;
  align-items:center!important;
  column-gap:12px!important;
  min-height:56px!important;
}
.page-logement-territoire .territory-cyber-info-list .territory-info-icon{
  display:inline-flex!important;
  width:28px!important;
  height:28px!important;
  align-items:center!important;
  justify-content:center!important;
  margin:0!important;
  color:currentColor!important;
}
.page-logement-territoire .territory-cyber-info-list .territory-info-icon svg{
  width:28px!important;
  height:28px!important;
  display:block!important;
}
.page-logement-territoire .territory-cyber-info-list .territory-info-icon svg *{
  stroke-width:1.35!important;
}
.page-logement-territoire .territory-cyber-info-list .territory-info-row > span:not(.territory-info-icon){
  white-space:nowrap!important;
  min-width:0!important;
  overflow:visible!important;
  font-size:.95rem!important;
  line-height:1.1!important;
}
.page-logement-territoire .territory-cyber-info-list .territory-info-row > strong{
  white-space:nowrap!important;
  text-align:right!important;
  font-size:.95rem!important;
  line-height:1.1!important;
}

/* 2) Analyse express : suppression de la superposition derrière le badge. */
.page-logement-territoire .territory-intro-glow{
  display:none!important;
}
.page-logement-territoire .territory-intro-panel{
  margin-bottom:10px!important;
  padding-top:18px!important;
}
.page-logement-territoire .territory-intro-panel::before{
  inset:28px 12px 12px 12px!important;
  z-index:0!important;
}
.page-logement-territoire .territory-intro-panel::after{
  top:16px!important;
  right:18px!important;
  z-index:0!important;
}
.page-logement-territoire .territory-intro-content{
  position:relative!important;
  z-index:2!important;
}
.page-logement-territoire .territory-intro-kicker,
.page-logement-territoire .territory-cyber-top .territory-intro-kicker{
  position:relative!important;
  z-index:4!important;
  width:max-content!important;
  margin:0 0 14px!important;
  background:linear-gradient(90deg, rgba(4,25,54,.96), rgba(5,40,76,.92))!important;
  box-shadow:0 0 0 4px rgba(7,20,52,.75), 0 0 18px rgba(34,232,255,.22)!important;
}

/* 3) Resserrement des marges Source → KPI. */
.page-logement-territoire .hero-source{
  margin:10px 0 0!important;
  padding:0!important;
  display:inline-flex!important;
  width:auto!important;
  min-height:0!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
.page-logement-territoire .commune-identity-card{
  grid-row:1 / span 4!important;
}
.page-logement-territoire .hero-kpi-grid{
  margin:16px 0 0!important;
  row-gap:14px!important;
}
.page-logement-territoire .territory-hero-shell{
  padding-bottom:24px!important;
}

@media(max-width:1050px){
  .page-logement-territoire .commune-identity-card{
    grid-row:auto!important;
  }
  .page-logement-territoire .hero-kpi-grid{
    margin-top:18px!important;
  }
}
@media(max-width:640px){
  .page-logement-territoire .territory-cyber-info-list .territory-info-row{
    grid-template-columns:30px minmax(0,1fr) auto!important;
    column-gap:9px!important;
  }
  .page-logement-territoire .territory-cyber-info-list .territory-info-row > span:not(.territory-info-icon),
  .page-logement-territoire .territory-cyber-info-list .territory-info-row > strong{
    font-size:.82rem!important;
  }
}


/* v29 — ajustements hero suite retour utilisateur */
/* 1) Supprimer les icônes en double dans la carte d'identité */
.page-logement-territoire .territory-cyber-info-list .territory-info-row::before,
.page-logement-territoire .territory-cyber-info-list div:nth-child(1)::before,
.page-logement-territoire .territory-cyber-info-list div:nth-child(2)::before,
.page-logement-territoire .territory-cyber-info-list div:nth-child(3)::before{
  content:none !important;
  display:none !important;
}
.page-logement-territoire .territory-cyber-info-list .territory-info-row{
  grid-template-columns:30px minmax(0,1fr) auto !important;
  column-gap:12px !important;
  align-items:center !important;
}
.page-logement-territoire .territory-cyber-info-list .territory-info-row > span:not(.territory-info-icon){
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  font-size:1rem !important;
}
.page-logement-territoire .territory-cyber-info-list .territory-info-row > strong{
  white-space:nowrap !important;
}

/* 2) Revenir au design du bloc Analyse express proche v25 */
.page-logement-territoire .territory-intro-panel,
.page-logement-territoire .territory-cyber-top .territory-intro-panel{
  position:relative !important;
  overflow:hidden !important;
  margin:12px 0 8px !important;
  padding:20px 28px 26px !important;
  max-width:760px !important;
  border-radius:24px !important;
  border:1px solid rgba(34,211,238,.72) !important;
  background:linear-gradient(135deg,rgba(7,20,52,.92),rgba(9,28,68,.72)) !important;
  box-shadow:0 0 0 1px rgba(34,211,238,.16),0 0 38px rgba(14,165,233,.23),inset 0 0 42px rgba(15,23,42,.35) !important;
}
.page-logement-territoire .territory-intro-panel::before,
.page-logement-territoire .territory-cyber-top .territory-intro-panel::before{
  content:'' !important;
  position:absolute !important;
  right:18px !important;
  top:16px !important;
  left:auto !important;
  bottom:auto !important;
  width:24px !important;
  height:24px !important;
  inset:auto !important;
  border-top:4px solid rgba(34,211,238,.85) !important;
  border-right:4px solid rgba(34,211,238,.85) !important;
  border-radius:0 10px 0 0 !important;
  background:none !important;
  box-shadow:none !important;
  filter:drop-shadow(0 0 8px rgba(34,211,238,.65)) !important;
  pointer-events:none !important;
  z-index:1 !important;
}
.page-logement-territoire .territory-intro-panel::after,
.page-logement-territoire .territory-cyber-top .territory-intro-panel::after{
  content:'' !important;
  position:absolute !important;
  left:18px !important;
  bottom:16px !important;
  top:auto !important;
  right:auto !important;
  width:68px !important;
  height:3px !important;
  border:0 !important;
  border-radius:0 !important;
  background:linear-gradient(90deg,#22d3ee,#0ea5e9,transparent) !important;
  box-shadow:92px 0 0 rgba(34,211,238,.75),104px 0 0 rgba(34,211,238,.75) !important;
  pointer-events:none !important;
  z-index:1 !important;
}
.page-logement-territoire .territory-intro-glow{display:none !important;}
.page-logement-territoire .territory-intro-content{position:relative !important; z-index:2 !important;}
.page-logement-territoire .territory-intro-kicker,
.page-logement-territoire .territory-cyber-top .territory-intro-kicker{
  position:relative !important;
  z-index:3 !important;
  display:inline-flex !important;
  align-items:center !important;
  padding:8px 18px 8px 42px !important;
  margin:0 0 16px !important;
  border-radius:8px 18px 18px 8px !important;
  background:linear-gradient(90deg,rgba(6,182,212,.24),rgba(14,165,233,.08)) !important;
  border:1px solid rgba(34,211,238,.88) !important;
  color:#31f7ff !important;
  font-size:15px !important;
  letter-spacing:.03em !important;
  box-shadow:0 0 22px rgba(34,211,238,.18) !important;
  width:auto !important;
}
.page-logement-territoire .territory-intro-kicker::before,
.page-logement-territoire .territory-cyber-top .territory-intro-kicker::before{
  content:'⚡' !important;
  position:absolute !important;
  left:17px !important;
  top:50% !important;
  transform:translateY(-52%) !important;
  color:#31f7ff !important;
  text-shadow:0 0 12px rgba(34,211,238,.8) !important;
}
.page-logement-territoire .territory-quick-insight,
.page-logement-territoire .territory-cyber-top .territory-quick-insight,
.page-logement-territoire .territory-cyber-top .logement-quick-insight{
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  color:rgba(248,250,252,.92) !important;
  font-size:clamp(15px,1.22vw,19px) !important;
  line-height:1.5 !important;
  font-weight:650 !important;
  box-shadow:none !important;
}

/* 3) Réduire encore les marges autour de Sources */
.page-logement-territoire .hero-source{
  margin:6px 0 0 !important;
  line-height:1.2 !important;
}
.page-logement-territoire .hero-kpi-grid{
  margin:10px 0 0 !important;
}
.page-logement-territoire .territory-hero-shell{
  padding-bottom:18px !important;
}

@media(max-width:760px){
  .page-logement-territoire .territory-intro-panel,
  .page-logement-territoire .territory-cyber-top .territory-intro-panel{
    padding:18px 16px 22px !important;
    margin:10px 0 6px !important;
  }
  .page-logement-territoire .hero-source{
    margin-top:4px !important;
  }
  .page-logement-territoire .hero-kpi-grid{
    margin-top:8px !important;
  }
}


/* v30 — Analyse express et nouveaux prix/rangs */
.page-logement-territoire .territory-intro-kicker,
.page-logement-territoire .territory-cyber-top .territory-intro-kicker{
  padding: 8px 20px 8px 50px !important;
  border-radius: 8px 18px 18px 8px !important;
  overflow: visible !important;
}
.page-logement-territoire .territory-intro-kicker::before,
.page-logement-territoire .territory-cyber-top .territory-intro-kicker::before{
  content: '⚡' !important;
  left: 15px !important;
  font-size: 23px !important;
  line-height: 1 !important;
  transform: translateY(-50%) !important;
}
/* retire toute surcouche visuelle derrière l'éclair */
.page-logement-territoire .territory-intro-kicker::after,
.page-logement-territoire .territory-cyber-top .territory-intro-kicker::after{
  content: none !important;
  display: none !important;
}

.page-logement-territoire .territory-cyber-info-list .territory-info-row.info-price-house{ color:#ffb347 !important; }
.page-logement-territoire .territory-cyber-info-list .territory-info-row.info-price-app{ color:#7dd3fc !important; }
.page-logement-territoire .territory-cyber-info-list .territory-info-row.info-price-house > span:not(.territory-info-icon),
.page-logement-territoire .territory-cyber-info-list .territory-info-row.info-price-app > span:not(.territory-info-icon){
  white-space:nowrap !important;
}
.page-logement-territoire .territory-rank-strip{
  grid-template-columns: repeat(2, minmax(0,1fr)) !important;
  gap:14px !important;
}
.page-logement-territoire .territory-rank-card.rank-price-house{
  border-color: rgba(255,179,71,.58) !important;
}
.page-logement-territoire .territory-rank-card.rank-price-house strong{
  color:#ffb347 !important;
  text-shadow:0 0 22px rgba(255,179,71,.40) !important;
}
.page-logement-territoire .territory-rank-card.rank-price-app{
  border-color: rgba(125,211,252,.58) !important;
}
.page-logement-territoire .territory-rank-card.rank-price-app strong{
  color:#7dd3fc !important;
  text-shadow:0 0 22px rgba(125,211,252,.40) !important;
}
@media(max-width:760px){
  .page-logement-territoire .territory-rank-strip{
    grid-template-columns:1fr !important;
  }
  .page-logement-territoire .territory-cyber-info-list .territory-info-row > span:not(.territory-info-icon){
    font-size:.93rem !important;
  }
}


/* v31 — badge Analyse express plus fidèle + titre hero affiné */
.page-logement-territoire .territory-intro-kicker,
.page-logement-territoire .territory-cyber-top .territory-intro-kicker{
  position:relative !important;
  display:inline-flex !important;
  align-items:center !important;
  min-height:40px !important;
  padding:7px 22px 7px 46px !important;
  margin:0 0 16px !important;
  font-family:Inter,Segoe UI,Arial,sans-serif !important;
  font-size:14px !important;
  font-weight:900 !important;
  letter-spacing:.015em !important;
  text-transform:uppercase !important;
  color:#31f7ff !important;
  background:linear-gradient(180deg, rgba(7,29,77,.94) 0%, rgba(5,22,63,.96) 100%) !important;
  border:1.4px solid rgba(47,228,255,.95) !important;
  border-radius:10px !important;
  clip-path:polygon(0 0, calc(100% - 16px) 0, 100% 50%, calc(100% - 16px) 100%, 0 100%) !important;
  box-shadow:0 0 0 1px rgba(47,228,255,.12) inset, 0 0 14px rgba(47,228,255,.26), 0 10px 24px rgba(2,8,23,.18) !important;
  overflow:visible !important;
}
.page-logement-territoire .territory-intro-kicker::before,
.page-logement-territoire .territory-cyber-top .territory-intro-kicker::before{
  content:'⚡' !important;
  position:absolute !important;
  left:14px !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  font-size:26px !important;
  line-height:1 !important;
  color:#30dfff !important;
  text-shadow:0 0 14px rgba(48,223,255,.82), 0 0 28px rgba(48,223,255,.28) !important;
  background:none !important;
  border:0 !important;
  box-shadow:none !important;
}
.page-logement-territoire .territory-intro-kicker::after,
.page-logement-territoire .territory-cyber-top .territory-intro-kicker::after{
  content:'' !important;
  position:absolute !important;
  inset:4px !important;
  right:17px !important;
  border:1px solid rgba(47,228,255,.18) !important;
  border-radius:8px !important;
  clip-path:polygon(0 0, calc(100% - 11px) 0, 100% 50%, calc(100% - 11px) 100%, 0 100%) !important;
  pointer-events:none !important;
  z-index:-1 !important;
}

/* Titre plus proche du modèle : plus aéré, moins lourd, moins collé */
.page-logement-territoire .territory-cyber-title{
  margin:2px 0 28px !important;
  max-width:830px !important;
  font-family:Inter,Segoe UI,Arial,sans-serif !important;
  font-size:clamp(46px,5.45vw,80px) !important;
  line-height:.98 !important;
  letter-spacing:-.035em !important;
  font-weight:880 !important;
  text-rendering:optimizeLegibility;
}
.page-logement-territoire .territory-cyber-title span{
  display:block;
  color:#f8fbff;
  font-weight:860 !important;
  letter-spacing:-.03em !important;
  text-shadow:0 6px 26px rgba(255,255,255,.12);
}
.page-logement-territoire .territory-cyber-title strong{
  display:block;
  margin-top:8px;
  font-weight:860 !important;
  letter-spacing:-.04em !important;
  background:linear-gradient(100deg,#28f3ff 0%, #2cb8ff 34%, #7f76ff 67%, #db67ff 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  text-shadow:0 0 24px rgba(34,211,238,.16);
}

@media(max-width:900px){
  .page-logement-territoire .territory-cyber-title{
    font-size:clamp(40px,9vw,68px) !important;
    letter-spacing:-.03em !important;
    line-height:.99 !important;
  }
  .page-logement-territoire .territory-cyber-title strong{
    letter-spacing:-.035em !important;
  }
}


/* v32 — finitions badge, couleurs, icônes, rangs */
/* 1) Badge Analyse express : contour fermé avec chanfrein à droite */
.page-logement-territoire .territory-intro-kicker,
.page-logement-territoire .territory-cyber-top .territory-intro-kicker{
  clip-path: polygon(0 0, calc(100% - 16px) 0, 100% 50%, calc(100% - 16px) 100%, 0 100%) !important;
  border-radius: 0 !important;
  padding: 7px 24px 7px 46px !important;
  isolation:isolate !important;
}
.page-logement-territoire .territory-intro-kicker::after,
.page-logement-territoire .territory-cyber-top .territory-intro-kicker::after{
  content:'' !important;
  display:block !important;
  position:absolute !important;
  inset:3px !important;
  clip-path: polygon(0 0, calc(100% - 13px) 0, 100% 50%, calc(100% - 13px) 100%, 0 100%) !important;
  border:1px solid rgba(47,228,255,.22) !important;
  background:transparent !important;
  z-index:-1 !important;
}
/* 2) Logements vacants : passer à un rouge clair */
.territory-cyber-top .hero-kpi:nth-child(4){
  color:#ff6b7d !important;
  border-color:rgba(255,107,125,.58) !important;
  box-shadow:0 0 20px rgba(255,107,125,.18) !important;
}
.page-logement-territoire .hero-kpi:nth-child(4){
  border-color:rgba(255,107,125,.58) !important;
}
.page-logement-territoire .hero-kpi:nth-child(4)::after{
  background:#ff6b7d !important;
  box-shadow:0 0 12px rgba(255,107,125,.65) !important;
}
.page-logement-territoire .hero-kpi:nth-child(4) strong{
  color:#ff6b7d !important;
  text-shadow:0 0 18px rgba(255,107,125,.32) !important;
}
/* 3-4) Couleurs des lignes prix et support des nouveaux SVG */
.page-logement-territoire .territory-cyber-info-list .territory-info-row.info-price-house{ color:#ffb347 !important; }
.page-logement-territoire .territory-cyber-info-list .territory-info-row.info-price-app{ color:#7dd3fc !important; }
.page-logement-territoire .territory-cyber-info-list .territory-info-row.info-price-house .territory-info-icon svg,
.page-logement-territoire .territory-cyber-info-list .territory-info-row.info-price-app .territory-info-icon svg{
  width:25px !important;
  height:25px !important;
  stroke-width:1.65 !important;
  stroke-linecap:round !important;
  stroke-linejoin:round !important;
  fill:none !important;
}
/* 5) Réduire l'espace sous les cartes de rang */
.territory-cyber-top .territory-rank-strip{
  margin-top:10px !important;
  gap:12px !important;
}
.territory-cyber-top .territory-rank-card{
  min-height:108px !important;
  padding:10px 12px 8px !important;
}
.territory-cyber-top .territory-rank-card strong{
  margin-top:2px !important;
  font-size:clamp(42px,4.5vw,64px) !important;
}
.territory-cyber-top .territory-rank-card em{
  margin-top:2px !important;
  font-size:15px !important;
  line-height:1.1 !important;
}
@media(max-width:760px){
  .territory-cyber-top .territory-rank-card{ min-height:98px !important; padding:10px 10px 7px !important; }
  .territory-cyber-top .territory-rank-card em{ font-size:14px !important; }
}


/* v33 — suppression de l'enveloppe blanche autour du hero sombre */
.page-logement-territoire .content-card{
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  padding:0 !important;
  overflow:visible !important;
}
.page-logement-territoire .content-card::before,
.page-logement-territoire .content-card::after{
  display:none !important;
  content:none !important;
}
/* Le hero sombre garde sa propre carte, comme les autres blocs */
.page-logement-territoire .territory-hero-shell{
  margin:0 0 26px !important;
}
/* On conserve des espacements cohérents entre les blocs suivants */
.page-logement-territoire .content-card > section:not(.territory-hero-shell){
  margin-top:0;
}
@media(max-width:760px){
  .page-logement-territoire .territory-hero-shell{
    margin:0 0 22px !important;
  }
}


/* v34 — retour du bloc Analyse express au design v22 */
.page-logement-territoire .territory-intro-panel{
  position:relative !important;
  overflow:hidden !important;
  margin:18px 0 8px !important;
  padding:18px 20px !important;
  max-width:760px !important;
  border-radius:24px !important;
  border:1px solid rgba(76,116,255,.22) !important;
  background:linear-gradient(135deg, rgba(11,87,208,.09) 0%, rgba(69,208,174,.10) 52%, rgba(255,146,76,.09) 100%), #f8fbff !important;
  box-shadow:0 14px 34px rgba(15,23,42,.08), inset 0 1px 0 rgba(255,255,255,.9) !important;
}
.page-logement-territoire .territory-intro-panel::before,
.page-logement-territoire .territory-intro-panel::after{
  content:none !important;
  display:none !important;
}
.page-logement-territoire .territory-intro-glow{
  position:absolute !important;
  inset:auto -90px -120px auto !important;
  width:240px !important;
  height:240px !important;
  border-radius:50% !important;
  background:radial-gradient(circle, rgba(59,130,246,.25) 0%, rgba(59,130,246,0) 68%) !important;
  pointer-events:none !important;
  display:block !important;
}
.page-logement-territoire .territory-intro-content{
  position:relative !important;
  z-index:1 !important;
}
.page-logement-territoire .territory-intro-kicker{
  display:inline-flex !important;
  align-items:center !important;
  gap:8px !important;
  margin-bottom:10px !important;
  padding:6px 12px !important;
  min-height:auto !important;
  border-radius:999px !important;
  clip-path:none !important;
  background:rgba(255,255,255,.7) !important;
  border:1px solid rgba(59,130,246,.18) !important;
  color:#0f3e91 !important;
  font-size:.83rem !important;
  font-weight:900 !important;
  letter-spacing:.02em !important;
  text-transform:uppercase !important;
  box-shadow:none !important;
}
.page-logement-territoire .territory-intro-kicker::before,
.page-logement-territoire .territory-intro-kicker::after{
  content:none !important;
  display:none !important;
}
.page-logement-territoire .territory-quick-insight{
  margin:0 !important;
  color:#17315c !important;
  font-size:1rem !important;
  line-height:1.72 !important;
  font-weight:600 !important;
}
@media (max-width:760px){
  .page-logement-territoire .territory-intro-panel{
    padding:16px !important;
    border-radius:20px !important;
  }
}


/* v35 — restauration du bloc blanc parent autour du contenu / hero */
.page-logement-territoire .content-card{
  background:rgba(255,255,255,.94) !important;
  border:1px solid var(--line, #dbe6f5) !important;
  border-radius:var(--radius, 24px) !important;
  box-shadow:var(--shadow, 0 20px 60px rgba(15,23,42,.08)) !important;
  padding:34px !important;
  min-width:0 !important;
  overflow:visible !important;
}
.page-logement-territoire .content-card::before,
.page-logement-territoire .content-card::after{
  display:none !important;
  content:none !important;
}
.page-logement-territoire .territory-hero-shell{
  margin:0 0 26px !important;
}
@media(max-width:760px){
  .page-logement-territoire .content-card{
    padding:22px 16px !important;
    border-radius:18px !important;
  }
  .page-logement-territoire .territory-hero-shell{
    margin:0 0 22px !important;
  }
}


/* v36 — suppression du bloc Analyse express */
.page-logement-territoire .hero-source{
  margin-top:8px !important;
}
.page-logement-territoire .logement-subtitle{
  margin-bottom:12px !important;
}


/* v37 — bloc Analyse express style maquette fournie */
.page-logement-territoire .express-analysis-card{
  position:relative;
  max-width:760px;
  margin:18px 0 10px;
  padding:58px 28px 26px;
  border-radius:22px;
  background:linear-gradient(180deg, rgba(4,23,59,.95) 0%, rgba(3,17,44,.96) 100%);
  border:1.5px solid rgba(26,198,255,.8);
  box-shadow:0 0 0 1px rgba(26,198,255,.12) inset, 0 0 26px rgba(17,143,255,.12), 0 14px 34px rgba(2,8,23,.18);
  overflow:hidden;
}
.page-logement-territoire .express-analysis-card::before{
  content:'';
  position:absolute;
  inset:10px;
  border:1px solid rgba(48,224,255,.14);
  border-radius:18px;
  clip-path:polygon(0 0, calc(100% - 34px) 0, 100% 34px, 100% calc(100% - 34px), calc(100% - 34px) 100%, 0 100%, 0 0);
  pointer-events:none;
}
.page-logement-territoire .express-analysis-card::after{
  content:'';
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(90deg, rgba(32,220,255,.9), rgba(32,220,255,.9)) left 18px bottom 14px / 56px 3px no-repeat,
    linear-gradient(90deg, rgba(32,220,255,.7), rgba(32,220,255,.7)) left 84px bottom 14px / 6px 3px no-repeat,
    linear-gradient(90deg, rgba(32,220,255,.9), rgba(32,220,255,.9)) left 96px bottom 14px / 22px 3px no-repeat,
    linear-gradient(90deg, rgba(32,220,255,.45), rgba(32,220,255,.45)) right 18px bottom 14px / 42px 2px no-repeat,
    linear-gradient(90deg, rgba(32,220,255,.25), rgba(32,220,255,.25)) right 66px bottom 14px / 9px 2px no-repeat,
    linear-gradient(90deg, rgba(32,220,255,.55), rgba(32,220,255,.55)) right 18px top 14px / 34px 2px no-repeat,
    linear-gradient(90deg, rgba(32,220,255,.28), rgba(32,220,255,.28)) right 58px top 14px / 12px 2px no-repeat;
}
.page-logement-territoire .express-analysis-badge{
  position:absolute;
  top:14px;
  left:18px;
  display:inline-flex;
  align-items:center;
  gap:10px;
  min-height:40px;
  padding:8px 22px 8px 18px;
  background:linear-gradient(180deg, rgba(8,55,126,.96) 0%, rgba(3,36,88,.98) 100%);
  border:1.5px solid rgba(35,232,255,.95);
  box-shadow:0 0 0 1px rgba(35,232,255,.1) inset, 0 0 18px rgba(35,232,255,.22);
  clip-path:polygon(0 0, calc(100% - 18px) 0, 100% 50%, calc(100% - 18px) 100%, 0 100%, 0 0);
  text-transform:uppercase;
  color:#2ef3ff;
  font-size:14px;
  font-weight:900;
  letter-spacing:.03em;
  line-height:1;
}
.page-logement-territoire .express-analysis-badge::after{
  content:'';
  position:absolute;
  inset:4px;
  border:1px solid rgba(35,232,255,.18);
  clip-path:polygon(0 0, calc(100% - 12px) 0, 100% 50%, calc(100% - 12px) 100%, 0 100%, 0 0);
  pointer-events:none;
}
.page-logement-territoire .express-analysis-bolt{
  position:relative;
  z-index:1;
  display:inline-block;
  font-size:24px;
  line-height:1;
  color:#38dfff;
  text-shadow:0 0 14px rgba(56,223,255,.7), 0 0 28px rgba(56,223,255,.24);
}
.page-logement-territoire .express-analysis-badge span:last-child{
  position:relative; z-index:1;
}
.page-logement-territoire .express-analysis-text{
  margin:0;
  color:rgba(244,248,255,.96);
  font-size:clamp(15px,1.22vw,19px);
  line-height:1.5;
  font-weight:650;
  letter-spacing:-.005em;
}
.page-logement-territoire .hero-source{
  margin-top:6px !important;
}
.page-logement-territoire .hero-kpi-grid{
  margin-top:10px !important;
}
@media(max-width:760px){
  .page-logement-territoire .express-analysis-card{
    padding:56px 16px 20px;
    border-radius:20px;
    margin:14px 0 8px;
  }
  .page-logement-territoire .express-analysis-card::before{
    inset:8px;
  }
  .page-logement-territoire .express-analysis-badge{
    left:14px; top:12px;
    min-height:36px;
    font-size:13px;
    padding:7px 18px 7px 15px;
  }
  .page-logement-territoire .express-analysis-bolt{
    font-size:21px;
  }
}


/* v38 — suppression du contour cyan du bloc Analyse express */
.page-logement-territoire .express-analysis-card{
  border: 0 !important;
  box-shadow: 0 14px 34px rgba(2,8,23,.18) !important;
}
.page-logement-territoire .express-analysis-card::before{
  border-color: rgba(48,224,255,.10) !important;
}


/* v39 — remet le contour cyan du bloc Analyse express, retire celui du badge */
.page-logement-territoire .express-analysis-card{
  border: 1.5px solid rgba(26,198,255,.8) !important;
  box-shadow: 0 0 0 1px rgba(26,198,255,.12) inset, 0 0 26px rgba(17,143,255,.12), 0 14px 34px rgba(2,8,23,.18) !important;
}
.page-logement-territoire .express-analysis-badge{
  border: 0 !important;
  box-shadow: none !important;
}
.page-logement-territoire .express-analysis-badge::after{
  display: none !important;
  content: none !important;
}


/* v40 — badge Analyse express proche du modèle */
.page-logement-territoire .express-analysis-badge{
  position:absolute;
  top:14px;
  left:18px;
  display:inline-flex;
  align-items:center;
  gap:10px;
  min-height:42px;
  padding:8px 18px 8px 16px;
  border-radius:12px;
  background:linear-gradient(180deg, rgba(10,72,150,.92) 0%, rgba(8,48,113,.95) 100%) !important;
  border:1.5px solid rgba(46,234,255,.88) !important;
  box-shadow:0 0 0 1px rgba(46,234,255,.10) inset, 0 0 14px rgba(46,234,255,.22), 0 6px 18px rgba(0,20,55,.18) !important;
  clip-path:none !important;
  color:#27eefb !important;
  text-transform:uppercase;
  font-size:13.5px;
  font-weight:900;
  letter-spacing:.035em;
  line-height:1;
}
.page-logement-territoire .express-analysis-badge::before{
  content:'';
  position:absolute;
  inset:4px;
  border-radius:9px;
  border:1px solid rgba(46,234,255,.14);
  pointer-events:none;
}
.page-logement-territoire .express-analysis-badge::after{
  content:none !important;
  display:none !important;
}
.page-logement-territoire .express-analysis-bolt{
  position:relative;
  z-index:1;
  display:inline-block;
  font-size:22px;
  line-height:1;
  color:#ffc72c;
  text-shadow:0 0 10px rgba(255,199,44,.45);
  transform:translateY(-1px);
}
.page-logement-territoire .express-analysis-badge span:last-child{
  position:relative;
  z-index:1;
  color:#27eefb;
}
@media(max-width:760px){
  .page-logement-territoire .express-analysis-badge{
    left:14px;
    top:12px;
    min-height:38px;
    padding:7px 16px 7px 14px;
    font-size:12.5px;
    border-radius:11px;
  }
  .page-logement-territoire .express-analysis-bolt{
    font-size:20px;
  }
}


/* v42 — garde le parent blanc global, supprime seulement le wrapper du hero sombre */
.page-logement-territoire .content-card{
  background:rgba(255,255,255,.94) !important;
  border:1px solid var(--line, #dbe6f5) !important;
  border-radius:var(--radius, 24px) !important;
  box-shadow:var(--shadow, 0 20px 60px rgba(15,23,42,.08)) !important;
  padding:34px !important;
  min-width:0 !important;
  overflow:visible !important;
}
.page-logement-territoire .content-card::before,
.page-logement-territoire .content-card::after{
  display:none !important;
  content:none !important;
}
/* Le wrapper .territory-hero-shell a été retiré du HTML ; ces règles neutralisent tout reliquat CSS. */
.page-logement-territoire .territory-hero-shell{
  display:contents !important;
  margin:0 !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}
.page-logement-territoire .territory-hero-shell::before,
.page-logement-territoire .territory-hero-shell::after{
  display:none !important;
  content:none !important;
}
/* Le bloc sombre autonome est .territory-cyber-shell. */
.page-logement-territoire .territory-cyber-shell{
  margin:18px -34px 34px !important;
}
@media(max-width:760px){
  .page-logement-territoire .content-card{
    padding:22px 16px !important;
    border-radius:18px !important;
  }
  .page-logement-territoire .territory-cyber-shell{
    margin:16px -16px 28px !important;
  }
}


/* =========================================================
   v43 — correction structure hero
   Objectif :
   - garder le bloc blanc global .content-card
   - supprimer le wrapper .territory-hero-shell
   - remettre le hero sombre sur .territory-cyber-shell
   ========================================================= */

/* 1) Bloc blanc global restauré et conservé */
.page-logement-territoire .content-card{
  background:#fff !important;
  border:1px solid #dbe6f5 !important;
  border-radius:28px !important;
  box-shadow:0 20px 60px rgba(15,23,42,.08) !important;
  padding:24px !important;
  overflow:visible !important;
  position:relative !important;
}
.page-logement-territoire .content-card::before,
.page-logement-territoire .content-card::after{
  content:none !important;
  display:none !important;
}

/* 2) L'ancien wrapper ne doit rien porter */
.page-logement-territoire .territory-hero-shell{
  display:contents !important;
  margin:0 !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}

/* 3) Le fond sombre est porté directement par le hero réel */
.page-logement-territoire .territory-cyber-shell{
  position:relative !important;
  overflow:hidden !important;
  margin:0 0 28px !important;
  padding:28px 28px 26px !important;
  border-radius:28px !important;
  background:
    radial-gradient(circle at 72% 12%, rgba(24,117,255,.18) 0, rgba(24,117,255,0) 24%),
    radial-gradient(circle at 16% 28%, rgba(34,211,238,.15) 0, rgba(34,211,238,0) 28%),
    linear-gradient(135deg, #030816 0%, #06142c 46%, #071a36 100%) !important;
  border:1px solid rgba(34,211,238,.18) !important;
  box-shadow:
    0 28px 80px rgba(2,6,23,.28),
    inset 0 1px 0 rgba(255,255,255,.04) !important;
}

/* Décor sombre du hero */
.page-logement-territoire .territory-cyber-shell::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  pointer-events:none !important;
  background:
    radial-gradient(circle at 52% 11%, rgba(34,211,238,.16) 0 1px, transparent 2px),
    radial-gradient(circle at 82% 44%, rgba(168,85,247,.14) 0 1px, transparent 2px),
    linear-gradient(rgba(34,211,238,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(34,211,238,.028) 1px, transparent 1px);
  background-size:190px 190px,230px 230px,42px 42px,42px 42px !important;
  opacity:.62 !important;
}
.page-logement-territoire .territory-cyber-shell::after{
  content:"" !important;
  position:absolute !important;
  left:35% !important;
  top:32px !important;
  width:360px !important;
  height:260px !important;
  pointer-events:none !important;
  opacity:.23 !important;
  background:repeating-radial-gradient(ellipse at center, rgba(34,211,238,.5) 0 1px, transparent 2px 11px) !important;
  transform:rotate(-12deg) !important;
}
.page-logement-territoire .territory-cyber-shell > *{
  position:relative !important;
  z-index:1 !important;
}

/* 4) Le fil d'Ariane reste lisible dans le hero sombre */
.page-logement-territoire .territory-cyber-shell .territory-breadcrumb{
  margin:0 0 18px !important;
  color:rgba(226,236,255,.74) !important;
}
.page-logement-territoire .territory-cyber-shell .territory-breadcrumb a{
  color:rgba(226,236,255,.82) !important;
}
.page-logement-territoire .territory-cyber-shell .territory-breadcrumb strong{
  color:#29f0ff !important;
}

/* 5) Le hero ne doit plus apparaître sur fond clair */
.page-logement-territoire .territory-cyber-shell .territory-cyber-title span{
  color:#f8fbff !important;
}
.page-logement-territoire .territory-cyber-shell .logement-subtitle{
  color:rgba(226,232,240,.84) !important;
}
.page-logement-territoire .territory-cyber-shell .hero-source{
  color:rgba(203,213,225,.75) !important;
}

/* 6) Les blocs après le hero restent des cartes blanches normales */
.page-logement-territoire .housing-cost-card,
.page-logement-territoire .housing-repartition-card,
.page-logement-territoire .housing-size-card,
.page-logement-territoire .section-card,
.page-logement-territoire .income-section,
.page-logement-territoire .nearby-market-section,
.page-logement-territoire .france-compare-section{
  position:relative !important;
  z-index:1 !important;
}

@media(max-width:760px){
  .page-logement-territoire .content-card{
    padding:16px !important;
    border-radius:22px !important;
  }
  .page-logement-territoire .territory-cyber-shell{
    margin:0 0 22px !important;
    padding:20px 16px 22px !important;
    border-radius:22px !important;
  }
}


/* =========================================================
   v44 — typographie hero plus proche du modèle
   - titre moins gras, plus lisible, plus aéré
   - grands chiffres colorés moins lourds
   ========================================================= */

/* Titre principal */
.page-logement-territoire .territory-cyber-title{
  max-width:840px !important;
  margin:4px 0 28px !important;
  font-family:Inter, "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, Arial, sans-serif !important;
  font-size:clamp(48px, 5.2vw, 78px) !important;
  line-height:1.02 !important;
  letter-spacing:-.028em !important;
  font-weight:760 !important;
  text-rendering:optimizeLegibility !important;
  -webkit-font-smoothing:antialiased !important;
  font-synthesis-weight:none !important;
}

.page-logement-territoire .territory-cyber-title span{
  display:block !important;
  color:#f8fbff !important;
  font-weight:760 !important;
  letter-spacing:-.024em !important;
  text-shadow:
    0 2px 0 rgba(255,255,255,.04),
    0 0 22px rgba(255,255,255,.14) !important;
}

.page-logement-territoire .territory-cyber-title strong{
  display:block !important;
  margin-top:8px !important;
  font-weight:760 !important;
  letter-spacing:-.032em !important;
  line-height:1.01 !important;
  background:linear-gradient(100deg,#28f3ff 0%, #29b9ff 34%, #7e79ff 68%, #d765ff 100%) !important;
  -webkit-background-clip:text !important;
  background-clip:text !important;
  color:transparent !important;
  text-shadow:0 0 18px rgba(34,211,238,.14) !important;
}

/* Grands chiffres des KPI */
.page-logement-territoire .hero-kpi strong,
.page-logement-territoire .territory-cyber-top .hero-kpi strong{
  font-family:Inter, "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, Arial, sans-serif !important;
  font-weight:760 !important;
  letter-spacing:-.018em !important;
  font-size:clamp(27px, 2.25vw, 35px) !important;
  line-height:1.02 !important;
  -webkit-font-smoothing:antialiased !important;
  text-shadow:0 0 14px currentColor !important;
}

/* Grands chiffres des rangs */
.page-logement-territoire .territory-rank-card strong,
.page-logement-territoire .territory-cyber-top .territory-rank-card strong{
  font-family:Inter, "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, Arial, sans-serif !important;
  font-weight:760 !important;
  letter-spacing:-.025em !important;
  font-size:clamp(48px, 4.6vw, 66px) !important;
  line-height:.9 !important;
  -webkit-font-smoothing:antialiased !important;
}

/* Chiffres dans la carte infos droite */
.page-logement-territoire .territory-cyber-info-list .territory-info-row > strong,
.page-logement-territoire .commune-info-list strong{
  font-weight:760 !important;
  letter-spacing:-.01em !important;
}

/* Labels : un peu moins tassés */
.page-logement-territoire .hero-kpi span:last-child,
.page-logement-territoire .territory-cyber-top .hero-kpi span:last-child{
  font-weight:650 !important;
  letter-spacing:-.005em !important;
}

.page-logement-territoire .territory-rank-card span,
.page-logement-territoire .territory-cyber-top .territory-rank-card span{
  font-weight:700 !important;
  letter-spacing:.075em !important;
}

.page-logement-territoire .territory-rank-card em,
.page-logement-territoire .territory-cyber-top .territory-rank-card em{
  font-weight:600 !important;
}

/* Plus de respiration sur desktop */
@media(min-width:1101px){
  .page-logement-territoire .territory-cyber-title{
    font-size:clamp(54px, 5.05vw, 78px) !important;
  }
}

/* Mobile : éviter le chevauchement des lettres */
@media(max-width:900px){
  .page-logement-territoire .territory-cyber-title{
    font-size:clamp(40px, 9vw, 66px) !important;
    line-height:1.04 !important;
    letter-spacing:-.022em !important;
    font-weight:760 !important;
  }

  .page-logement-territoire .territory-cyber-title strong{
    letter-spacing:-.026em !important;
  }

  .page-logement-territoire .hero-kpi strong,
  .page-logement-territoire .territory-cyber-top .hero-kpi strong{
    font-size:clamp(26px, 7vw, 34px) !important;
  }
}


/* =========================================================
   v45 — harmonisation typographique complète du hero
   Objectif : se rapprocher du modèle joint
   ========================================================= */

.page-logement-territoire .territory-cyber-shell,
.page-logement-territoire .territory-cyber-shell *{
  font-family: Inter, "Inter var", Manrope, "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, Arial, sans-serif !important;
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
}

/* Fil d’Ariane : format discret comme le modèle */
.page-logement-territoire .territory-cyber-shell .territory-breadcrumb{
  font-size:14px !important;
  line-height:1.2 !important;
  font-weight:650 !important;
  letter-spacing:-.01em !important;
}
.page-logement-territoire .territory-cyber-shell .territory-breadcrumb a,
.page-logement-territoire .territory-cyber-shell .territory-breadcrumb span,
.page-logement-territoire .territory-cyber-shell .territory-breadcrumb strong{
  font-weight:650 !important;
}

/* Titre : même logique que le modèle, large mais sans effet “bloc trop gras” */
.page-logement-territoire .territory-cyber-title{
  max-width:850px !important;
  margin:6px 0 26px !important;
  font-size:clamp(52px, 5.35vw, 84px) !important;
  line-height:.985 !important;
  letter-spacing:-.038em !important;
  font-weight:820 !important;
  font-stretch:normal !important;
}

.page-logement-territoire .territory-cyber-title span{
  display:block !important;
  color:#f8fbff !important;
  font-weight:820 !important;
  letter-spacing:-.035em !important;
  text-shadow:
    0 1px 0 rgba(255,255,255,.05),
    0 0 22px rgba(255,255,255,.16) !important;
}

.page-logement-territoire .territory-cyber-title strong{
  display:block !important;
  margin-top:6px !important;
  font-weight:820 !important;
  line-height:.99 !important;
  letter-spacing:-.042em !important;
  background:linear-gradient(100deg, #28f3ff 0%, #2ab6ff 34%, #7d79ff 68%, #df66ff 100%) !important;
  -webkit-background-clip:text !important;
  background-clip:text !important;
  color:transparent !important;
  text-shadow:0 0 18px rgba(34,211,238,.13) !important;
}

/* Sous-titre */
.page-logement-territoire .territory-cyber-shell .logement-subtitle{
  max-width:760px !important;
  color:rgba(226,232,240,.78) !important;
  font-size:clamp(17px,1.3vw,21px) !important;
  line-height:1.48 !important;
  font-weight:520 !important;
  letter-spacing:-.012em !important;
}

/* Analyse express : texte proche de la maquette */
.page-logement-territoire .express-analysis-text{
  font-size:clamp(16px,1.23vw,20px) !important;
  line-height:1.45 !important;
  font-weight:500 !important;
  letter-spacing:-.012em !important;
  color:rgba(244,248,255,.94) !important;
}

.page-logement-territoire .express-analysis-badge{
  font-size:15px !important;
  font-weight:780 !important;
  letter-spacing:.015em !important;
}

.page-logement-territoire .express-analysis-badge span:last-child{
  font-weight:780 !important;
}

/* Carte droite : labels et valeurs */
.page-logement-territoire .territory-cyber-info-list .territory-info-row > span:not(.territory-info-icon){
  font-size:clamp(15px,1.1vw,18px) !important;
  line-height:1.2 !important;
  font-weight:650 !important;
  letter-spacing:-.012em !important;
}

.page-logement-territoire .territory-cyber-info-list .territory-info-row > strong{
  font-size:clamp(15px,1.05vw,18px) !important;
  line-height:1.2 !important;
  font-weight:650 !important;
  letter-spacing:-.012em !important;
}

/* Rangs : grands chiffres du modèle, moins lourds que les versions précédentes */
.page-logement-territoire .territory-cyber-top .territory-rank-card span,
.page-logement-territoire .territory-rank-card span{
  font-size:13px !important;
  line-height:1.15 !important;
  font-weight:650 !important;
  letter-spacing:.085em !important;
  text-transform:uppercase !important;
}

.page-logement-territoire .territory-cyber-top .territory-rank-card strong,
.page-logement-territoire .territory-rank-card strong{
  font-size:clamp(52px,4.65vw,72px) !important;
  line-height:.86 !important;
  font-weight:720 !important;
  letter-spacing:-.035em !important;
}

.page-logement-territoire .territory-cyber-top .territory-rank-card em,
.page-logement-territoire .territory-rank-card em{
  font-size:clamp(14px,1vw,16px) !important;
  line-height:1.15 !important;
  font-weight:520 !important;
  letter-spacing:-.01em !important;
}

/* KPI du bas : mêmes proportions typographiques que le modèle */
.page-logement-territoire .territory-cyber-top .hero-kpi strong,
.page-logement-territoire .hero-kpi strong{
  font-size:clamp(30px,2.38vw,40px) !important;
  line-height:1 !important;
  font-weight:720 !important;
  letter-spacing:-.028em !important;
  text-shadow:0 0 13px currentColor !important;
}

.page-logement-territoire .territory-cyber-top .hero-kpi span:last-child,
.page-logement-territoire .hero-kpi span:last-child{
  font-size:clamp(15px,1.05vw,18px) !important;
  line-height:1.16 !important;
  font-weight:520 !important;
  letter-spacing:-.012em !important;
  color:rgba(241,245,249,.88) !important;
}

/* Sources */
.page-logement-territoire .territory-cyber-shell .hero-source{
  font-size:15px !important;
  font-weight:520 !important;
  letter-spacing:-.01em !important;
  color:rgba(203,213,225,.72) !important;
}

/* Icônes : garder le format fin du modèle */
.page-logement-territoire .territory-cyber-shell svg *{
  stroke-width:1.45 !important;
}

/* Ajustements responsive pour conserver l’espacement typographique */
@media(max-width:1100px){
  .page-logement-territoire .territory-cyber-title{
    font-size:clamp(44px,8.2vw,72px) !important;
    line-height:1.02 !important;
    letter-spacing:-.032em !important;
  }
  .page-logement-territoire .territory-cyber-title strong{
    letter-spacing:-.036em !important;
  }
}

@media(max-width:640px){
  .page-logement-territoire .territory-cyber-title{
    font-size:clamp(38px,12.5vw,58px) !important;
    line-height:1.04 !important;
    letter-spacing:-.026em !important;
  }
  .page-logement-territoire .territory-cyber-title strong{
    letter-spacing:-.03em !important;
  }
  .page-logement-territoire .express-analysis-text{
    font-size:15.5px !important;
    line-height:1.5 !important;
  }
}


/* =========================================================
   v46 — ajustements fins hero
   ========================================================= */

/* Titre principal plus petit */
.page-logement-territoire .territory-cyber-title{
  font-size:clamp(42px, 4.55vw, 68px) !important;
  line-height:1.04 !important;
  margin-bottom:22px !important;
}
.page-logement-territoire .territory-cyber-title strong{
  line-height:1.025 !important;
}

/* Texte des infos à droite : pas de gras */
.page-logement-territoire .territory-cyber-info-list .territory-info-row > span:not(.territory-info-icon){
  font-weight:500 !important;
}
.page-logement-territoire .territory-cyber-info-list .territory-info-row > strong{
  font-weight:520 !important;
}

/* Texte analyse express : pas de gras + un peu plus d'air sous la vignette */
.page-logement-territoire .express-analysis-card{
  padding-top:70px !important;
}
.page-logement-territoire .express-analysis-text{
  font-weight:400 !important;
  line-height:1.48 !important;
}

/* Alignement quand la place le permet :
   la carte Analyse express s'étire pour se rapprocher du bas de la carte infos/rangs à droite. */
@media(min-width:1101px){
  .page-logement-territoire .territory-cyber-top{
    align-items:stretch !important;
  }
  .page-logement-territoire .logement-top-left{
    min-height:100% !important;
  }
  .page-logement-territoire .express-analysis-card{
    min-height:clamp(250px, 20vw, 330px) !important;
  }
}

/* KPI : centrer et éviter le débordement des grands chiffres */
.page-logement-territoire .hero-kpi,
.page-logement-territoire .territory-cyber-top .hero-kpi{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  padding-left:12px !important;
  padding-right:12px !important;
  overflow:hidden !important;
}
.page-logement-territoire .hero-kpi strong,
.page-logement-territoire .territory-cyber-top .hero-kpi strong{
  max-width:100% !important;
  font-size:clamp(25px, 2.05vw, 34px) !important;
  white-space:nowrap !important;
  text-align:center !important;
  display:block !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

/* Rangs : chiffres légèrement réduits pour gagner de la hauteur */
.page-logement-territoire .territory-rank-card strong,
.page-logement-territoire .territory-cyber-top .territory-rank-card strong{
  font-size:clamp(42px, 4vw, 58px) !important;
}
.page-logement-territoire .territory-rank-card,
.page-logement-territoire .territory-cyber-top .territory-rank-card{
  min-height:98px !important;
  padding-top:9px !important;
  padding-bottom:7px !important;
}

/* Source à la fin du hero sombre */
.page-logement-territoire .hero-source{
  grid-column:1 / -1 !important;
  order:20 !important;
  margin:12px 0 0 !important;
  align-self:end !important;
}
.page-logement-territoire .hero-kpi-grid{
  margin-top:18px !important;
}

/* Mobile / tablette */
@media(max-width:1100px){
  .page-logement-territoire .territory-cyber-title{
    font-size:clamp(38px, 7.5vw, 62px) !important;
  }
  .page-logement-territoire .express-analysis-card{
    min-height:auto !important;
  }
}
@media(max-width:640px){
  .page-logement-territoire .territory-cyber-title{
    font-size:clamp(34px, 10.5vw, 52px) !important;
  }
  .page-logement-territoire .hero-kpi strong,
  .page-logement-territoire .territory-cyber-top .hero-kpi strong{
    font-size:clamp(24px, 7vw, 32px) !important;
  }
  .page-logement-territoire .express-analysis-card{
    padding-top:64px !important;
  }
}


/* v47 — titre encore réduit + rangs prix plus compacts */
.page-logement-territoire .territory-cyber-title{
  font-size:clamp(38px, 4.15vw, 62px) !important;
  line-height:1.045 !important;
  margin-bottom:20px !important;
}

.page-logement-territoire .territory-cyber-title strong{
  line-height:1.03 !important;
}

/* Réduction de la marge sous les deux dernières vignettes de rang */
.page-logement-territoire .territory-rank-card.rank-price-house,
.page-logement-territoire .territory-rank-card.rank-price-app{
  min-height:86px !important;
  padding-top:7px !important;
  padding-bottom:4px !important;
}

.page-logement-territoire .territory-rank-card.rank-price-house strong,
.page-logement-territoire .territory-rank-card.rank-price-app strong{
  font-size:clamp(38px, 3.55vw, 52px) !important;
  margin-top:0 !important;
}

.page-logement-territoire .territory-rank-card.rank-price-house em,
.page-logement-territoire .territory-rank-card.rank-price-app em{
  margin-top:0 !important;
  line-height:1.05 !important;
}

/* Le bloc de droite n’ajoute pas de marge parasite en bas */
.page-logement-territoire .territory-rank-strip{
  margin-bottom:0 !important;
}

.page-logement-territoire .commune-identity-card{
  padding-bottom:10px !important;
}

@media(max-width:1100px){
  .page-logement-territoire .territory-cyber-title{
    font-size:clamp(36px, 7vw, 58px) !important;
  }
}

@media(max-width:640px){
  .page-logement-territoire .territory-cyber-title{
    font-size:clamp(32px, 10vw, 48px) !important;
  }
}


/* v48 — harmonisation des cartes de rang et réduction du vide bas */
/* Harmoniser Rang population / Rang superficie avec les cartes prix */
.page-logement-territoire .territory-rank-card,
.page-logement-territoire .territory-cyber-top .territory-rank-card{
  min-height:86px !important;
  padding:7px 10px 4px !important;
  align-items:center !important;
  justify-content:center !important;
}
.page-logement-territoire .territory-rank-card strong,
.page-logement-territoire .territory-cyber-top .territory-rank-card strong{
  font-size:clamp(38px,3.55vw,52px) !important;
  margin-top:0 !important;
  line-height:.84 !important;
}
.page-logement-territoire .territory-rank-card em,
.page-logement-territoire .territory-cyber-top .territory-rank-card em{
  margin-top:0 !important;
  line-height:1.05 !important;
  font-size:15px !important;
}
.page-logement-territoire .territory-rank-card span,
.page-logement-territoire .territory-cyber-top .territory-rank-card span{
  margin-bottom:2px !important;
}

/* Réduire l'espace vide sous les tuiles de rang dans la carte de droite */
.page-logement-territoire .territory-cyber-top .territory-rank-strip,
.page-logement-territoire .territory-rank-strip{
  margin:12px 16px 6px !important;
  gap:12px !important;
}
.page-logement-territoire .territory-cyber-top .commune-identity-card,
.page-logement-territoire .commune-identity-card{
  padding-bottom:2px !important;
}

@media(max-width:1100px){
  .page-logement-territoire .territory-cyber-top .territory-rank-strip,
  .page-logement-territoire .territory-rank-strip{
    margin:12px 12px 4px !important;
  }
}
@media(max-width:760px){
  .page-logement-territoire .territory-rank-card,
  .page-logement-territoire .territory-cyber-top .territory-rank-card{
    min-height:82px !important;
    padding:8px 10px 5px !important;
  }
}


/* v49 — titre hero fortement réduit + intitulé département harmonisé */
.page-logement-territoire .territory-cyber-title{
  font-size:clamp(34px, 3.45vw, 52px) !important;
  line-height:1.08 !important;
  letter-spacing:-.026em !important;
  margin:4px 0 18px !important;
  max-width:720px !important;
}

.page-logement-territoire .territory-cyber-title span{
  letter-spacing:-.022em !important;
}

.page-logement-territoire .territory-cyber-title strong{
  margin-top:4px !important;
  line-height:1.06 !important;
  letter-spacing:-.028em !important;
}

/* Ajuste le sous-titre pour accompagner le titre plus compact */
.page-logement-territoire .territory-cyber-shell .logement-subtitle{
  font-size:clamp(15px, 1.05vw, 18px) !important;
  line-height:1.45 !important;
  margin-bottom:16px !important;
}

/* Le bloc analyse peut remonter légèrement avec le nouveau titre */
.page-logement-territoire .express-analysis-card{
  margin-top:14px !important;
}

/* Responsive */
@media(max-width:1100px){
  .page-logement-territoire .territory-cyber-title{
    font-size:clamp(32px, 6vw, 48px) !important;
    max-width:100% !important;
  }
}

@media(max-width:640px){
  .page-logement-territoire .territory-cyber-title{
    font-size:clamp(30px, 9vw, 42px) !important;
    line-height:1.1 !important;
  }
}


/* v50 — icônes Région et Préfecture améliorées */
.page-logement-territoire .territory-cyber-info-list .territory-info-row.info-region .territory-info-icon{
  color:#a77cff !important;
}
.page-logement-territoire .territory-cyber-info-list .territory-info-row.info-prefecture .territory-info-icon{
  color:#26e8ff !important;
}
.page-logement-territoire .territory-cyber-info-list .territory-info-row.info-region .territory-info-icon svg,
.page-logement-territoire .territory-cyber-info-list .territory-info-row.info-prefecture .territory-info-icon svg{
  width:28px !important;
  height:28px !important;
}
.page-logement-territoire .territory-cyber-info-list .territory-info-row.info-region .territory-info-icon svg *,
.page-logement-territoire .territory-cyber-info-list .territory-info-row.info-prefecture .territory-info-icon svg *{
  stroke:currentColor !important;
  fill:none !important;
  stroke-width:1.45 !important;
  stroke-linecap:round !important;
  stroke-linejoin:round !important;
}


/* v51 — finitions texte/rangs */
.page-logement-territoire .territory-rank-card em,
.page-logement-territoire .territory-cyber-top .territory-rank-card em{
  display:block !important;
  margin-top:6px !important;
}

.page-logement-territoire .territory-rank-card.rank-price-house em,
.page-logement-territoire .territory-rank-card.rank-price-app em{
  margin-top:5px !important;
}


/* v55 — éviter les chevauchements dans le bloc Population / Superficie / Région / Préfecture */
.page-logement-territoire .territory-cyber-info-list .territory-info-row{
  grid-template-columns: 42px 150px minmax(0,1fr) !important;
  column-gap: 14px !important;
  row-gap: 4px !important;
  align-items: center !important;
}
.page-logement-territoire .territory-cyber-info-list .territory-info-row > span,
.page-logement-territoire .territory-cyber-info-list .territory-info-row > strong{
  min-width: 0 !important;
}
.page-logement-territoire .territory-cyber-info-list .territory-info-row > span:not(.territory-info-icon){
  white-space: nowrap !important;
}
.page-logement-territoire .territory-cyber-info-list .territory-info-row > strong{
  justify-self: end !important;
  text-align: right !important;
  white-space: normal !important;
  line-height: 1.28 !important;
  overflow-wrap: anywhere !important;
  word-break: break-word !important;
  max-width: 100% !important;
}
.page-logement-territoire .territory-cyber-info-list .territory-info-row > strong a{
  display: inline !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  word-break: break-word !important;
  text-align: right !important;
}

/* cas où la valeur est très longue : on autorise un bloc un peu plus haut */
.page-logement-territoire .territory-cyber-info-list .territory-info-row.info-prefecture,
.page-logement-territoire .territory-cyber-info-list .territory-info-row.info-region{
  min-height: 74px !important;
}

@media (max-width: 980px){
  .page-logement-territoire .territory-cyber-info-list .territory-info-row{
    grid-template-columns: 38px 128px minmax(0,1fr) !important;
  }
}

@media (max-width: 760px){
  .page-logement-territoire .territory-cyber-info-list .territory-info-row{
    grid-template-columns: 36px minmax(0,1fr) !important;
    align-items: start !important;
    padding-top: 12px !important;
    padding-bottom: 12px !important;
  }
  .page-logement-territoire .territory-cyber-info-list .territory-info-row > span:not(.territory-info-icon){
    grid-column: 2 !important;
    white-space: nowrap !important;
  }
  .page-logement-territoire .territory-cyber-info-list .territory-info-row > strong{
    grid-column: 2 !important;
    justify-self: start !important;
    text-align: left !important;
    margin-top: 2px !important;
  }
  .page-logement-territoire .territory-cyber-info-list .territory-info-row > strong a{
    text-align: left !important;
  }
}


/* v56 — bloc informations premium : colonnes plus souples, césure propre, pas de chevauchement */
.page-logement-territoire .territory-cyber-info-list{
  overflow: visible !important;
}

.page-logement-territoire .territory-cyber-info-list .territory-info-row{
  grid-template-columns: 34px minmax(112px, 136px) minmax(118px, 1fr) !important;
  column-gap: 10px !important;
  padding-left: 14px !important;
  padding-right: 14px !important;
  min-height: 64px !important;
}

.page-logement-territoire .territory-cyber-info-list .territory-info-icon{
  width: 30px !important;
  height: 30px !important;
}

.page-logement-territoire .territory-cyber-info-list .territory-info-icon svg{
  width: 28px !important;
  height: 28px !important;
}

.page-logement-territoire .territory-cyber-info-list .territory-info-row > span:not(.territory-info-icon){
  font-size: clamp(14px, .92vw, 16px) !important;
  line-height: 1.15 !important;
  white-space: normal !important;
  overflow-wrap: normal !important;
}

.page-logement-territoire .territory-cyber-info-list .territory-info-row > strong{
  font-size: clamp(14px, .95vw, 16px) !important;
  line-height: 1.22 !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  hyphens: auto !important;
}

.page-logement-territoire .territory-cyber-info-list .territory-info-row > strong a{
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  hyphens: auto !important;
}

.page-logement-territoire .territory-cyber-info-list .territory-info-row:not(.info-region):not(.info-prefecture) > strong,
.page-logement-territoire .territory-cyber-info-list .territory-info-row:not(.info-region):not(.info-prefecture) > strong a{
  white-space: nowrap !important;
  overflow-wrap: normal !important;
}

.page-logement-territoire .territory-cyber-info-list .territory-info-row.info-region,
.page-logement-territoire .territory-cyber-info-list .territory-info-row.info-prefecture{
  min-height: 70px !important;
}

@media(max-width:1180px) and (min-width:761px){
  .page-logement-territoire .territory-cyber-info-list .territory-info-row{
    grid-template-columns: 32px minmax(104px, 128px) minmax(105px, 1fr) !important;
    column-gap: 8px !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
  }
}

@media(max-width:760px){
  .page-logement-territoire .territory-cyber-info-list .territory-info-row{
    grid-template-columns: 36px minmax(0,1fr) !important;
    row-gap: 3px !important;
    min-height: auto !important;
  }
  .page-logement-territoire .territory-cyber-info-list .territory-info-row > span:not(.territory-info-icon),
  .page-logement-territoire .territory-cyber-info-list .territory-info-row > strong{
    font-size: 15px !important;
  }
}


/* =========================================================
   v57 — recherche unifiée, min/max futuristes, publicités
   ========================================================= */

/* Recherche unique commune / département / région */
.page-logement-territoire .territory-search-switch{
  display:none !important;
}
.page-logement-territoire .territory-search-head{
  align-items:flex-start !important;
}
.page-logement-territoire .territory-search-suggestions .territory-suggestion{
  position:relative;
  display:grid !important;
  grid-template-columns:auto minmax(0,1fr);
  grid-template-areas:"badge title" "badge meta";
  gap:2px 12px;
  align-items:center;
  padding:13px 16px !important;
  border-radius:16px !important;
  text-decoration:none !important;
  border:1px solid rgba(148,163,184,.25);
  box-shadow:0 10px 24px rgba(15,23,42,.08);
}
.page-logement-territoire .territory-search-suggestions .territory-suggestion strong{
  grid-area:title;
  color:#0f172a;
  font-weight:850;
  min-width:0;
}
.page-logement-territoire .territory-search-suggestions .territory-suggestion small,
.page-logement-territoire .territory-search-suggestions .territory-suggestion > span:not(.suggestion-kind-badge){
  grid-area:meta;
  color:#64748b;
  font-size:.88rem;
}
.page-logement-territoire .territory-search-suggestions .suggestion-kind-badge{
  grid-area:badge;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:86px;
  padding:7px 10px;
  border-radius:999px;
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.page-logement-territoire .territory-search-suggestions .territory-suggestion-region{
  background:linear-gradient(135deg,#ecfdf5,#d1fae5) !important;
  border-color:rgba(16,185,129,.45) !important;
}
.page-logement-territoire .territory-search-suggestions .territory-suggestion-region .suggestion-kind-badge{
  background:linear-gradient(135deg,#10b981,#22c55e);
  color:white;
  box-shadow:0 0 18px rgba(16,185,129,.26);
}
.page-logement-territoire .territory-search-suggestions .territory-suggestion-departement{
  background:linear-gradient(135deg,#eff6ff,#dbeafe) !important;
  border-color:rgba(59,130,246,.42) !important;
}
.page-logement-territoire .territory-search-suggestions .territory-suggestion-departement .suggestion-kind-badge{
  background:linear-gradient(135deg,#2563eb,#38bdf8);
  color:white;
  box-shadow:0 0 18px rgba(59,130,246,.25);
}
.page-logement-territoire .territory-search-suggestions .territory-suggestion-commune{
  background:linear-gradient(135deg,#ffffff,#f8fafc) !important;
}
.page-logement-territoire .territory-search-suggestions .territory-suggestion-commune .suggestion-kind-badge{
  background:#e5e7eb;
  color:#475569;
}
.page-logement-territoire .territory-search-suggestions .suggestion-kind-short{display:none;}
@media(max-width:640px){
  .page-logement-territoire .territory-search-suggestions .suggestion-kind-badge{
    min-width:58px;
    font-size:.72rem;
  }
  .page-logement-territoire .territory-search-suggestions .suggestion-kind-full{display:none;}
  .page-logement-territoire .territory-search-suggestions .suggestion-kind-short{display:inline;}
}

/* Min/max futuristes sous loyers / prix / terrains / surfaces */
.page-logement-territoire .market-kpi-card{
  overflow:hidden;
}
.page-logement-territoire .market-extremes,
.page-logement-territoire .surface-extreme-content > .extreme-pair{
  margin-top:13px;
}
.page-logement-territoire .extreme-pair{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  width:100%;
}
.page-logement-territoire .extreme-pill{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
  padding:9px 10px;
  border-radius:15px;
  text-decoration:none !important;
  background:linear-gradient(145deg,rgba(15,23,42,.9),rgba(30,41,59,.72));
  border:1px solid rgba(125,211,252,.28);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 0 18px rgba(14,165,233,.14);
}
.page-logement-territoire .extreme-pill span{
  color:#93c5fd;
  font-size:.68rem;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.page-logement-territoire .extreme-pill strong{
  color:#f8fafc !important;
  font-size:.82rem !important;
  line-height:1.1;
  white-space:normal !important;
  overflow-wrap:anywhere;
}
.page-logement-territoire .extreme-pill em{
  color:#67e8f9;
  font-style:normal;
  font-weight:900;
  font-size:.82rem;
}
.page-logement-territoire .extreme-pill.max{
  border-color:rgba(168,85,247,.34);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 0 18px rgba(168,85,247,.14);
}
.page-logement-territoire .extreme-pill.max span{color:#c4b5fd;}
.page-logement-territoire .extreme-pill.max em{color:#c084fc;}

.page-logement-territoire .size-surface-card .surface-extreme-content{
  display:flex;
  flex-direction:column;
  align-items:stretch;
}
.page-logement-territoire .size-surface-card .surface-extreme-content > .extreme-pair{
  order:0;
  margin-top:0;
  margin-bottom:12px;
}
.page-logement-territoire .size-surface-card .market-kpi-title{order:1;}
.page-logement-territoire .size-surface-card .market-kpi-value{order:2;}
.page-logement-territoire .size-surface-card small{order:3;}
.page-logement-territoire .size-surface-card .surface-extreme-content > .extreme-pair + .market-kpi-title + .market-kpi-value + small + *{order:4;}

@media(max-width:760px){
  .page-logement-territoire .extreme-pair{
    grid-template-columns:1fr;
  }
}

/* Espaces publicitaires hub */
.page-logement-territoire .territory-ad-slot{
  margin:28px 0;
  min-height:280px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(180deg,#f8fafc,#eef6ff);
  border:1px solid #dbeafe;
  border-radius:22px;
  overflow:hidden;
  color:#64748b;
  font-weight:800;
  letter-spacing:.05em;
}
.page-logement-territoire .territory-cyber-shell + .territory-ad-slot{
  margin-top:24px;
}
@media(max-width:760px){
  .page-logement-territoire .territory-ad-slot{
    min-height:250px;
    border-radius:18px;
  }
}


/* =========================================================
   v58 — min/max en petit texte intégré, sans bloc futuriste
   ========================================================= */
.page-logement-territoire .market-extremes,
.page-logement-territoire .surface-extreme-content > .metric-extremes-text{
  margin-top:7px !important;
}

.page-logement-territoire .metric-extremes-text{
  display:flex !important;
  flex-direction:column !important;
  gap:2px !important;
  color:#64748b !important;
  font-size:.78rem !important;
  line-height:1.28 !important;
  font-weight:650 !important;
}

.page-logement-territoire .metric-extremes-text span{
  display:block !important;
}

.page-logement-territoire .metric-extremes-text a{
  color:#2563eb !important;
  text-decoration:none !important;
  font-weight:850 !important;
}

.page-logement-territoire .metric-extremes-text a:hover{
  text-decoration:underline !important;
}

/* Désactive le rendu pilule v57 si un ancien cache HTML/CSS se mélange */
.page-logement-territoire .extreme-pair{
  display:block !important;
}
.page-logement-territoire .extreme-pill{
  display:inline !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:none !important;
  box-shadow:none !important;
  color:inherit !important;
}

/* Recherche territoire : les communes gardent le format simple précédent */
.page-logement-territoire .territory-search-suggestions .territory-suggestion-commune{
  display:block !important;
  padding:12px 16px !important;
  border-radius:14px !important;
  background:#fff !important;
  border:1px solid rgba(226,232,240,.95) !important;
  box-shadow:0 8px 18px rgba(15,23,42,.06) !important;
}

.page-logement-territoire .territory-search-suggestions .territory-suggestion-commune strong{
  display:block !important;
  color:#0f172a !important;
  font-weight:850 !important;
}

.page-logement-territoire .territory-search-suggestions .territory-suggestion-commune span{
  display:block !important;
  margin-top:2px !important;
  color:#64748b !important;
  font-size:.88rem !important;
}

.page-logement-territoire .territory-search-suggestions .territory-suggestion-commune .suggestion-kind-badge{
  display:none !important;
}


/* v58 — conserver le badge Grande ville dans la recherche unifiée */
.page-logement-territoire .territory-search-suggestions .territory-suggestion-commune.is-large-city{
  position:relative;
  padding-right:118px !important;
  border-color:rgba(37,99,235,.20) !important;
  background:linear-gradient(90deg,#ffffff 0%,#f8fbff 100%) !important;
}
.page-logement-territoire .territory-search-suggestions .territory-suggestion-commune.is-large-city::after{
  content:"Grande ville";
  position:absolute;
  right:14px;
  top:50%;
  transform:translateY(-50%);
  padding:3px 8px;
  border-radius:999px;
  background:#eef6ff;
  color:#2563eb;
  font-size:.72rem;
  font-weight:800;
  white-space:nowrap;
}
@media(max-width:520px){
  .page-logement-territoire .territory-search-suggestions .territory-suggestion-commune.is-large-city{
    padding-right:92px !important;
  }
  .page-logement-territoire .territory-search-suggestions .territory-suggestion-commune.is-large-city::after{
    content:"+50k hab.";
  }
}


/* =========================================================
   v59 — recherche contextuelle et vignettes compactes
   ========================================================= */

/* Badges région / département à droite, comme Grande ville */
.page-logement-territoire .territory-search-suggestions .territory-suggestion-region,
.page-logement-territoire .territory-search-suggestions .territory-suggestion-departement{
  position:relative !important;
  display:block !important;
  padding:12px 108px 12px 16px !important;
  min-height:auto !important;
  border-radius:14px !important;
  box-shadow:0 8px 18px rgba(15,23,42,.06) !important;
}

.page-logement-territoire .territory-search-suggestions .territory-suggestion-region strong,
.page-logement-territoire .territory-search-suggestions .territory-suggestion-departement strong{
  display:block !important;
  line-height:1.14 !important;
  color:#0f172a !important;
}

.page-logement-territoire .territory-search-suggestions .territory-suggestion-region small,
.page-logement-territoire .territory-search-suggestions .territory-suggestion-departement small{
  display:block !important;
  margin-top:3px !important;
  color:#64748b !important;
  font-size:.86rem !important;
}

.page-logement-territoire .territory-search-suggestions .suggestion-side-badge{
  position:absolute;
  right:14px;
  top:50%;
  transform:translateY(-50%);
  padding:3px 8px;
  border-radius:999px;
  font-size:.72rem;
  font-weight:800;
  line-height:1.1;
  white-space:nowrap;
}

.page-logement-territoire .territory-search-suggestions .territory-suggestion-region .suggestion-side-badge{
  background:#dcfce7;
  color:#15803d;
}

.page-logement-territoire .territory-search-suggestions .territory-suggestion-departement .suggestion-side-badge{
  background:#eef6ff;
  color:#2563eb;
}

.page-logement-territoire .territory-search-suggestions .badge-short{display:none;}

/* Commune : desktop = nom + département en gris dessous ; mobile = Nom (31) */
.page-logement-territoire .territory-search-suggestions .commune-name-mobile,
.commune-suggestions .commune-name-mobile{
  display:none;
}

.page-logement-territoire .territory-search-suggestions .commune-name-desktop,
.commune-suggestions .commune-name-desktop{
  display:inline;
}

@media(max-width:640px){
  .page-logement-territoire .territory-search-suggestions .territory-suggestion-region,
  .page-logement-territoire .territory-search-suggestions .territory-suggestion-departement{
    padding:10px 70px 10px 12px !important;
    min-height:0 !important;
  }

  .page-logement-territoire .territory-search-suggestions .territory-suggestion-region small,
  .page-logement-territoire .territory-search-suggestions .territory-suggestion-departement small{
    display:none !important;
  }

  .page-logement-territoire .territory-search-suggestions .suggestion-side-badge{
    right:10px;
    padding:3px 7px;
    font-size:.68rem;
  }

  .page-logement-territoire .territory-search-suggestions .badge-full{display:none;}
  .page-logement-territoire .territory-search-suggestions .badge-short{display:inline;}

  .page-logement-territoire .territory-search-suggestions .territory-suggestion-commune{
    padding:10px 12px !important;
    min-height:0 !important;
  }

  .page-logement-territoire .territory-search-suggestions .territory-suggestion-commune span.commune-meta-desktop,
  .commune-suggestions .commune-suggestion-dep-full{
    display:none !important;
  }

  .page-logement-territoire .territory-search-suggestions .commune-name-desktop,
  .commune-suggestions .commune-name-desktop{
    display:none !important;
  }

  .page-logement-territoire .territory-search-suggestions .commune-name-mobile,
  .commune-suggestions .commune-name-mobile{
    display:inline !important;
  }

  .page-logement-territoire .territory-search-suggestions .mobile-dep-code,
  .commune-suggestions .mobile-dep-code{
    color:#64748b;
    font-weight:750;
  }

  .page-logement-territoire .territory-search-suggestions .territory-suggestion-commune.is-large-city{
    padding-right:84px !important;
  }

  .page-logement-territoire .territory-search-suggestions .territory-suggestion-commune.is-large-city::after{
    right:10px;
    font-size:.68rem;
  }
}


/* =========================================================
   v60 — corrections recherche : badges, doublons, priorité début de nom
   ========================================================= */

/* Badges Région/Département à droite, visibles et contrastés */
.page-logement-territoire .territory-search-suggestions .suggestion-side-badge{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-width:auto !important;
  height:auto !important;
  line-height:1 !important;
  padding:4px 9px !important;
  border-radius:999px !important;
  font-size:.72rem !important;
  font-weight:900 !important;
  letter-spacing:.01em !important;
  box-shadow:0 4px 12px rgba(15,23,42,.10) !important;
  z-index:2 !important;
}

.page-logement-territoire .territory-search-suggestions .territory-suggestion-region{
  padding-right:92px !important;
  min-height:0 !important;
}

.page-logement-territoire .territory-search-suggestions .territory-suggestion-departement{
  padding-right:118px !important;
  min-height:0 !important;
}

.page-logement-territoire .territory-search-suggestions .territory-suggestion-region .suggestion-side-badge{
  background:#16a34a !important;
  color:#ffffff !important;
  border:1px solid rgba(255,255,255,.35) !important;
}

.page-logement-territoire .territory-search-suggestions .territory-suggestion-departement .suggestion-side-badge{
  background:#1d4ed8 !important;
  color:#ffffff !important;
  border:1px solid rgba(255,255,255,.34) !important;
}

/* Commune : aucune duplication, sous-texte uniquement le département */
.page-logement-territoire .territory-search-suggestions .territory-suggestion-commune strong{
  display:block !important;
}
.page-logement-territoire .territory-search-suggestions .territory-suggestion-commune .commune-meta-desktop{
  display:block !important;
  margin-top:3px !important;
  color:#64748b !important;
  font-size:.88rem !important;
  font-weight:650 !important;
}

/* Mobile : vignettes compactes */
@media(max-width:640px){
  .page-logement-territoire .territory-search-suggestions .territory-suggestion-region,
  .page-logement-territoire .territory-search-suggestions .territory-suggestion-departement{
    padding:9px 12px !important;
  }

  .page-logement-territoire .territory-search-suggestions .territory-suggestion-region .suggestion-side-badge,
  .page-logement-territoire .territory-search-suggestions .territory-suggestion-departement .suggestion-side-badge{
    display:none !important;
  }

  .page-logement-territoire .territory-search-suggestions .territory-suggestion-region strong,
  .page-logement-territoire .territory-search-suggestions .territory-suggestion-departement strong,
  .page-logement-territoire .territory-search-suggestions .territory-suggestion-commune strong{
    font-size:.95rem !important;
    line-height:1.12 !important;
  }

  .page-logement-territoire .territory-search-suggestions .territory-suggestion-region small,
  .page-logement-territoire .territory-search-suggestions .territory-suggestion-departement small,
  .page-logement-territoire .territory-search-suggestions .territory-suggestion-commune .commune-meta-desktop{
    display:none !important;
  }
}

/* Pages communes : même règle mobile compacte */
@media(max-width:640px){
  .commune-suggestions a{
    padding:9px 12px !important;
  }
  .commune-suggestions .commune-suggestion-name{
    font-size:.95rem !important;
    line-height:1.12 !important;
  }
}


/* =========================================================
   v61 — badges recherche + anti-doublon suggestions communes
   ========================================================= */

/* Badge Département : texte blanc, même taille que Région */
.page-logement-territoire .territory-search-suggestions .suggestion-side-badge,
.page-logement-territoire .territory-search-suggestions .territory-suggestion-region .suggestion-side-badge,
.page-logement-territoire .territory-search-suggestions .territory-suggestion-departement .suggestion-side-badge{
  color:#ffffff !important;
  font-size:.72rem !important;
  font-weight:900 !important;
  line-height:1 !important;
}

.page-logement-territoire .territory-search-suggestions .territory-suggestion-departement .suggestion-side-badge{
  background:#0f4fd8 !important;
  border-color:rgba(255,255,255,.45) !important;
  text-shadow:0 1px 1px rgba(15,23,42,.28);
}

.page-logement-territoire .territory-search-suggestions .territory-suggestion-region .suggestion-side-badge{
  background:#16a34a !important;
  text-shadow:0 1px 1px rgba(15,23,42,.20);
}

/* Anti-doublon desktop : ne jamais afficher la version mobile en plus */
.page-logement-territoire .territory-search-suggestions .territory-suggestion-commune strong .commune-name-mobile{
  display:none !important;
}

.page-logement-territoire .territory-search-suggestions .territory-suggestion-commune strong .commune-name-desktop{
  display:inline !important;
}

.page-logement-territoire .territory-search-suggestions .territory-suggestion-commune .commune-meta-desktop{
  display:block !important;
}

/* Mobile : nom + code seulement, sans sous-texte département */
@media(max-width:640px){
  .page-logement-territoire .territory-search-suggestions .territory-suggestion-commune strong .commune-name-desktop{
    display:none !important;
  }
  .page-logement-territoire .territory-search-suggestions .territory-suggestion-commune strong .commune-name-mobile{
    display:inline !important;
  }
  .page-logement-territoire .territory-search-suggestions .territory-suggestion-commune .commune-meta-desktop{
    display:none !important;
  }
}


/* =========================================================
   v62 — harmonisation recherche communes + badges mobile
   ========================================================= */

/* Le sous-texte département des communes n’est pas en gras */
.page-logement-territoire .territory-search-suggestions .territory-suggestion-commune .commune-meta-desktop{
  font-weight:400 !important;
  color:#64748b !important;
}

/* Badges Région / Dept visibles aussi sur mobile */
.page-logement-territoire .territory-search-suggestions .suggestion-side-badge{
  display:inline-flex !important;
  color:#fff !important;
  font-size:.72rem !important;
  font-weight:900 !important;
  line-height:1 !important;
  padding:4px 8px !important;
}

.page-logement-territoire .territory-search-suggestions .suggestion-side-badge sup{
  font-size:.58em !important;
  line-height:0 !important;
  position:relative;
  top:-.35em;
  margin-left:1px;
}

.page-logement-territoire .territory-search-suggestions .territory-suggestion-departement .suggestion-side-badge,
.page-logement-territoire .territory-search-suggestions .territory-suggestion-departement .suggestion-side-badge *{
  color:#fff !important;
}

.page-logement-territoire .territory-search-suggestions .territory-suggestion-departement .suggestion-side-badge{
  background:#0b4fd8 !important;
  border:1px solid rgba(255,255,255,.48) !important;
  text-shadow:0 1px 1px rgba(15,23,42,.35);
}

.page-logement-territoire .territory-search-suggestions .territory-suggestion-region .suggestion-side-badge{
  background:#16a34a !important;
  color:#fff !important;
}

/* Sur desktop, le badge département reste court pour ne pas agrandir la vignette */
.page-logement-territoire .territory-search-suggestions .territory-suggestion-departement{
  padding-right:74px !important;
}

/* Mobile : badges Région / Dept affichés, vignettes compactes */
@media(max-width:640px){
  .page-logement-territoire .territory-search-suggestions .territory-suggestion-region,
  .page-logement-territoire .territory-search-suggestions .territory-suggestion-departement{
    padding:9px 72px 9px 12px !important;
  }

  .page-logement-territoire .territory-search-suggestions .territory-suggestion-region .suggestion-side-badge,
  .page-logement-territoire .territory-search-suggestions .territory-suggestion-departement .suggestion-side-badge{
    display:inline-flex !important;
    right:10px !important;
    padding:3px 7px !important;
    font-size:.68rem !important;
  }

  .page-logement-territoire .territory-search-suggestions .territory-suggestion-region small,
  .page-logement-territoire .territory-search-suggestions .territory-suggestion-departement small{
    display:none !important;
  }
}


/* =========================================================
   v63 — recherche : nom commune gris foncé + pub AdSense
   ========================================================= */

.page-logement-territoire .territory-search-suggestions .territory-suggestion-commune strong,
.page-logement-territoire .territory-search-suggestions .territory-suggestion-commune .commune-name-desktop,
.page-logement-territoire .territory-search-suggestions .territory-suggestion-commune .commune-name-mobile{
  color:#334155 !important;
}

.page-logement-territoire .territory-search-suggestions .territory-suggestion-commune .commune-meta-desktop{
  color:#64748b !important;
  font-weight:400 !important;
}

@media(max-width:640px){
  .page-logement-territoire .territory-search-suggestions .territory-suggestion-commune .commune-name-mobile{
    white-space:nowrap !important;
  }
}

/* Les blocs AdSense n’affichent plus le texte “Publicité” */
.page-logement-territoire .territory-ad-slot{
  color:transparent !important;
  min-height:280px;
}
.page-logement-territoire .territory-ad-slot > span{
  display:none !important;
}
.page-logement-territoire .territory-ad-slot .adsbygoogle{
  width:100%;
}


/* =========================================================
   v64 — badge Depᵗ, placeholder visible, mobile une ligne
   ========================================================= */

.page-logement-territoire .territory-search-suggestions .suggestion-side-badge sup{
  font-size:.58em !important;
  line-height:0 !important;
  position:relative !important;
  top:-.35em !important;
  margin-left:1px !important;
}

/* Mobile : nom de commune + code département sur une seule ligne quand possible */
@media(max-width:640px){
  .page-logement-territoire .territory-search-suggestions .territory-suggestion-commune{
    padding-top:8px !important;
    padding-bottom:8px !important;
  }

  .page-logement-territoire .territory-search-suggestions .territory-suggestion-commune strong{
    display:block !important;
    min-width:0 !important;
    max-width:100% !important;
  }

  .page-logement-territoire .territory-search-suggestions .territory-suggestion-commune .commune-name-mobile{
    display:block !important;
    max-width:100% !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    line-height:1.15 !important;
    font-size:.94rem !important;
  }

  .page-logement-territoire .territory-search-suggestions .territory-suggestion-commune .mobile-dep-code{
    display:inline !important;
    white-space:nowrap !important;
  }

  .page-logement-territoire .territory-search-input::placeholder{
    color:#94a3b8 !important;
    opacity:1 !important;
  }
}


/* v67 — correctif champ recherche cliquable sur pages territoires */
.page-logement-territoire .territory-search-block{
  position:relative !important;
  isolation:isolate !important;
}
.page-logement-territoire .territory-search-input{
  position:relative !important;
  z-index:22 !important;
  pointer-events:auto !important;
  -webkit-user-select:text !important;
  user-select:text !important;
  touch-action:manipulation !important;
}
.page-logement-territoire .territory-search-suggestions{
  position:relative !important;
  z-index:10 !important;
}


/* =========================================================
   v68 — règles de tri recherche + sécurité clic mobile
   ========================================================= */

.page-logement-territoire .territory-search-input,
.page-logement-territoire .territory-search-block,
.page-logement-territoire .territory-search-suggestions{
  pointer-events:auto !important;
  -webkit-user-select:text !important;
  user-select:text !important;
  touch-action:manipulation !important;
}

.page-logement-territoire .territory-search-block{
  position:relative !important;
  z-index:10000 !important;
  isolation:isolate !important;
}

@media(max-width:760px){
  .page-logement-territoire .territory-search-input{
    position:relative !important;
    z-index:10002 !important;
    pointer-events:auto !important;
    touch-action:manipulation !important;
    -webkit-user-select:text !important;
    user-select:text !important;
  }
}


/* v69 — saisie mobile : ne pas capter le clavier avec un focus forcé */
.page-logement-territoire .territory-search-input{
  pointer-events:auto !important;
  touch-action:auto !important;
  -webkit-user-select:auto !important;
  user-select:auto !important;
  caret-color:auto !important;
}


/* =========================================================
   v72 — menu au-dessus du hero et des suggestions
   ========================================================= */

/* La barre de navigation doit toujours passer au-dessus du bloc hero/recherche. */
.page-logement-territoire .site-header,
.page-logement-commune .site-header,
.site-header{
  position:relative !important;
  z-index:100000 !important;
  isolation:isolate !important;
}

.page-logement-territoire .site-header .primary-nav,
.page-logement-territoire .site-header .nav-toggle,
.page-logement-commune .site-header .primary-nav,
.page-logement-commune .site-header .nav-toggle,
.site-header .primary-nav,
.site-header .nav-toggle{
  position:relative !important;
  z-index:100001 !important;
}

/* Les blocs recherche restent au-dessus du contenu de page, mais sous le menu. */
.page-logement-territoire .territory-cyber-shell,
.page-logement-territoire .logement-top,
.page-logement-territoire .territory-cyber-top,
.page-logement-territoire .content-card,
.page-logement-commune .content-card{
  position:relative !important;
  z-index:1 !important;
}

.page-logement-territoire .territory-search-block,
.page-logement-territoire .commune-search-block,
.page-logement-commune .commune-search-block{
  position:relative !important;
  z-index:40 !important;
  isolation:isolate !important;
}

.page-logement-territoire .territory-search-input,
.page-logement-commune .commune-search-input,
.page-logement-commune #communeSearch{
  position:relative !important;
  z-index:42 !important;
}

.page-logement-territoire .territory-search-suggestions,
.page-logement-commune .commune-suggestions,
.page-logement-commune #communeSuggestions{
  position:relative !important;
  z-index:41 !important;
}

/* Empêche les anciens correctifs de type z-index 10000/30000 de dépasser le menu. */
@media(max-width:760px){
  .page-logement-territoire .territory-search-block,
  .page-logement-territoire .commune-search-block,
  .page-logement-commune .commune-search-block{
    z-index:40 !important;
  }
  .page-logement-territoire .territory-search-input,
  .page-logement-commune .commune-search-input,
  .page-logement-commune #communeSearch{
    z-index:42 !important;
  }
}


/* =========================================================
   v73 — menu visible en permanence au scroll
   ========================================================= */

/* La barre doit rester visible au scroll, tout en restant au-dessus du hero/recherche. */
.page-logement-territoire .site-header,
.page-logement-commune .site-header,
.site-header{
  position:sticky !important;
  position:-webkit-sticky !important;
  top:0 !important;
  z-index:1000000 !important;
  width:100% !important;
  background:#ffffff !important;
  isolation:isolate !important;
  transform:none !important;
  contain:none !important;
  overflow:visible !important;
  box-shadow:0 8px 22px rgba(15,23,42,.08) !important;
}

/* Les éléments du menu et le menu déroulant restent au-dessus de tout le contenu. */
.page-logement-territoire .site-header .header-main,
.page-logement-territoire .site-header .primary-nav,
.page-logement-territoire .site-header .nav-toggle,
.page-logement-commune .site-header .header-main,
.page-logement-commune .site-header .primary-nav,
.page-logement-commune .site-header .nav-toggle,
.site-header .header-main,
.site-header .primary-nav,
.site-header .nav-toggle{
  position:relative !important;
  z-index:1000001 !important;
}

/* Les suggestions restent visibles dans la page, mais ne peuvent plus passer au-dessus du menu sticky. */
.page-logement-territoire .territory-search-block,
.page-logement-territoire .commune-search-block,
.page-logement-commune .commune-search-block{
  position:relative !important;
  z-index:50 !important;
  isolation:isolate !important;
}

.page-logement-territoire .territory-search-suggestions,
.page-logement-territoire .commune-suggestions,
.page-logement-commune .commune-suggestions{
  position:relative !important;
  z-index:60 !important;
}

/* Empêche un parent de créer une couche qui pourrait recouvrir le header. */
.page-logement-territoire .territory-cyber-shell,
.page-logement-territoire .logement-top,
.page-logement-territoire .territory-cyber-top,
.page-logement-territoire .content-card,
.page-logement-commune .content-card,
.page-logement-commune .search-only-card{
  z-index:auto !important;
}

/* Ancrages : évite qu’un titre soit caché sous le menu sticky. */
html{
  scroll-padding-top:96px;
}
