:root{
  --ink:#1c2a12; --green:#2E4A1C; --lime:#88C640;
  --paper:#FAF8F2; --panel:#f1ead8; --line:#d8cfb8;
  --amber:#E0A82E; --blue:#4A7BB5; --grey:#9a9384;
  --muted:#5c5a4e;
  --font:"Segoe UI",system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0}
body{font-family:var(--font); color:var(--ink); background:var(--paper); line-height:1.5}
a{color:var(--green)}

/* En-tête commun */
.site-header{
  background:var(--green); color:var(--paper);
  border-bottom:4px solid var(--lime);
  padding:14px 20px; display:flex; align-items:center; gap:20px; flex-wrap:wrap;
}
.site-header .brand{display:flex; flex-direction:column; gap:2px; flex:1 1 auto; min-width:220px}
.eyebrow{font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:var(--lime); font-weight:700}
.site-header .brand a{color:inherit; text-decoration:none}
.site-title{margin:0; font-size:clamp(18px,2.2vw,24px); line-height:1.05; font-weight:800; letter-spacing:-.01em}
.nav{display:flex; gap:6px}
.nav a{
  color:var(--paper); text-decoration:none; font-size:14px; font-weight:600;
  padding:7px 14px; border-radius:7px; border:2px solid transparent;
}
.nav a:hover{border-color:var(--lime)}
.nav a.active{background:var(--lime); color:var(--green)}

/* Contenu */
.wrap{max-width:1000px; margin:0 auto; padding:28px 20px 60px}
.page-title{font-size:clamp(24px,3.4vw,34px); font-weight:800; letter-spacing:-.015em; margin:0 0 6px}
.lead{color:var(--muted); margin:0 0 28px; font-size:15px}

/* Badges état/source */
.badge{
  display:inline-block; font-size:11px; padding:3px 9px; border-radius:20px; font-weight:700;
  background:var(--panel); color:var(--green); border:1px solid var(--line); white-space:nowrap;
}
.badge.etat-actif{background:var(--lime); border-color:var(--green); color:var(--green)}
.badge.etat-confirmer{background:var(--amber); border-color:#b9871f; color:#3a2a06}
.badge.etat-travaux{background:var(--blue); border-color:#365d8c; color:#fff}
.badge.etat-demonte{background:var(--grey); border-color:#76705f; color:#fff}

/* Annuaire */
.commune{margin-bottom:34px}
.commune-head{
  display:flex; align-items:baseline; gap:12px; border-bottom:3px solid var(--green);
  padding-bottom:7px; margin-bottom:14px;
}
.commune-head h2{margin:0; font-size:22px; font-weight:800; color:var(--green)}
.commune-head .count{font-size:13px; color:var(--muted)}
.quartier{margin:0 0 16px}
.quartier h3{
  margin:0 0 8px; font-size:12px; text-transform:uppercase; letter-spacing:.12em;
  color:var(--muted); font-weight:700;
}
.cards{display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:10px}
.card{
  display:block; text-decoration:none; color:inherit; background:#fff;
  border:1px solid var(--line); border-left:4px solid var(--lime); border-radius:9px;
  padding:12px 14px; transition:border-color .12s, transform .12s;
}
.card:hover{border-color:var(--green); border-left-color:var(--green); transform:translateY(-1px)}
.card.etat-confirmer{border-left-color:var(--amber)}
.card.etat-travaux{border-left-color:var(--blue)}
.card.etat-demonte{border-left-color:var(--grey)}
.card .nom{font-weight:700; color:var(--green); margin-bottom:2px}
.card .adr{font-size:13px; color:var(--muted)}
.card .card-foot{margin-top:8px; display:flex; gap:6px; flex-wrap:wrap}

/* Fiche */
.crumbs{font-size:13px; color:var(--muted); margin:0 0 14px}
.crumbs a{color:var(--muted)}
.fiche-head{display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-bottom:6px}
.fiche-grid{display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:18px}
.fiche-grid .full{grid-column:1 / -1}
.info dt{font-size:11px; text-transform:uppercase; letter-spacing:.12em; color:var(--muted); font-weight:700; margin-top:12px}
.info dd{margin:2px 0 0; font-size:15px}
#fiche-map{height:300px; border-radius:11px; border:2px solid var(--green); background:var(--panel)}
.sec-title{font-size:13px; text-transform:uppercase; letter-spacing:.1em; color:var(--green); font-weight:800; margin:0 0 8px}
.gallery{display:grid; grid-template-columns:repeat(auto-fill,minmax(120px,1fr)); gap:8px}
.gallery img{width:100%; height:120px; object-fit:cover; border-radius:8px; border:2px solid var(--line); display:block}
.gallery a:hover img{border-color:var(--green)}
.btn{
  display:inline-block; text-decoration:none; font-weight:700; font-size:14px;
  padding:9px 16px; border-radius:8px; background:var(--green); color:var(--paper); border:2px solid var(--green);
}
.btn.ghost{background:transparent; color:var(--green)}
.empty{background:#fff; border:1px solid var(--line); border-radius:10px; padding:28px; text-align:center; color:var(--muted)}

footer{border-top:1px solid var(--line); padding:18px 20px; font-size:12px; color:var(--muted); text-align:center}

@media(max-width:640px){
  .fiche-grid{grid-template-columns:1fr}
}
