/* ════════════════════════════════════════
   CSS SUPPLÉMENTAIRE v2 – SEO & NOUVELLES SECTIONS
   Stats, Villes, FAQ, Page locale, Breadcrumb
════════════════════════════════════════ */

/* ── STATS BAND ── */
.stats-band { background: var(--blue-mid); padding: 2.5rem 0; }
.stats-grid { display: grid; grid-template-columns: repeat(5,1fr); gap: 1rem; text-align: center; }
.stat-item { color: white; }
.stat-num { font-family: var(--font-head); font-size: clamp(1.8rem,3vw,2.6rem); font-weight: 800; color: white; display: block; line-height: 1; }
.stat-plus { font-size: 60%; color: var(--blue-cta); }
.stat-star { color: var(--blue-cta); font-size: 80%; }
.stat-label { font-size: .75rem; color: rgba(255,255,255,.72); margin-top: .35rem; font-family: var(--font-head); letter-spacing: .05em; display: block; }
@media(max-width:768px){ .stats-grid{grid-template-columns:repeat(3,1fr);} }
@media(max-width:480px){ .stats-grid{grid-template-columns:1fr 1fr;} }

/* ── VILLES ── */
.villes { padding: 5.5rem 0; background: var(--blue-sky); }
.villes-header { text-align: center; margin-bottom: 3rem; }
.villes-header .section-intro { margin: .8rem auto 0; }
.villes-map-wrap { display: grid; grid-template-columns: 1fr 1.2fr; gap: 3rem; align-items: start; margin-bottom: 2.5rem; }
.villes-map-img { position: relative; border-radius: var(--radius-lg); overflow: hidden; background: var(--blue-pale); min-height: 260px; }
.villes-map-img img { width:100%; height:100%; object-fit:cover; }
.villes-map-badge { position:absolute; bottom:1rem; left:1rem; background:var(--blue-mid); color:white; padding:.7rem 1rem; border-radius:var(--radius); font-family:var(--font-head); font-size:.8rem; font-weight:700; line-height:1.4; }
.villes-sub { font-family:var(--font-head); font-size:.85rem; font-weight:800; color:var(--blue-dark); text-transform:uppercase; letter-spacing:.08em; margin-bottom:1rem; }
.villes-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:.35rem; margin-bottom:1.5rem; }
.ville-item { display:block; }
.ville-link { display:flex; align-items:center; gap:.5rem; padding:.45rem .6rem; border-radius:6px; font-size:.82rem; color:var(--blue-main); transition:all .2s; text-decoration:none; }
.ville-link:hover { background:var(--blue-pale); color:var(--blue-cta); }
.ville-pin { font-size:.75rem; flex-shrink:0; }
.ville-nom { font-weight:600; flex:1; }
.ville-cp { font-size:.7rem; color:var(--gray); }
.villes-cta { margin-top:1.2rem; }
.villes-note { font-size:.82rem; color:var(--gray); margin-bottom:.75rem; }
.villes-seo-text { background:var(--white); border:1px solid var(--blue-pale); border-radius:var(--radius-lg); padding:2rem; margin-top:2.5rem; }
.villes-seo-text h3 { font-family:var(--font-head); font-size:1rem; font-weight:800; color:var(--blue-dark); margin-bottom:.75rem; }
.villes-seo-text p { font-size:.88rem; color:var(--gray-dark); line-height:1.75; }
.villes-seo-text a { color:var(--blue-cta); font-weight:600; }
.villes-seo-text a:hover { text-decoration:underline; }
@media(max-width:768px){ .villes-map-wrap{grid-template-columns:1fr;} .villes-grid{grid-template-columns:repeat(3,1fr);} }
@media(max-width:480px){ .villes-grid{grid-template-columns:1fr 1fr;} }

/* ── FAQ ── */
.faq { padding: 5.5rem 0; background: var(--white); }
.faq-header { text-align:center; margin-bottom:2.5rem; }
.faq-list { max-width: 820px; margin: 0 auto; display:flex; flex-direction:column; gap:.6rem; }
.faq-item { border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; }
.faq-item[open] { border-color:var(--blue-cta); }
.faq-q { padding:1.1rem 1.4rem; font-family:var(--font-head); font-size:.92rem; font-weight:700; color:var(--blue-dark); cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center; user-select:none; }
.faq-q::-webkit-details-marker { display:none; }
.faq-q::after { content:'＋'; font-size:1.1rem; color:var(--blue-cta); flex-shrink:0; margin-left:1rem; transition:transform .25s; }
.faq-item[open] .faq-q::after { content:'－'; }
.faq-a { padding:.1rem 1.4rem 1.2rem; }
.faq-a p { font-size:.88rem; color:var(--gray-dark); line-height:1.75; }
.faq-a strong { color:var(--blue-dark); }
.faq-a a { color:var(--blue-cta); font-weight:600; }

/* ── PAGE VILLE ── */
.page-ville-wrap .ville-hero {
  position:relative; background:linear-gradient(130deg,var(--blue-dark) 0%,var(--blue-main) 60%,var(--blue-mid) 100%);
  padding:4rem 0; color:white;
}
.ville-hero h1 { font-family:var(--font-head); font-size:clamp(1.6rem,3vw,2.4rem); font-weight:800; color:white; line-height:1.2; margin-bottom:1rem; }
.ville-hero-desc { font-size:.95rem; color:rgba(255,255,255,.82); max-width:600px; margin-bottom:1.75rem; line-height:1.7; }
.ville-hero-actions { display:flex; gap:.85rem; flex-wrap:wrap; }
.breadcrumb { font-size:.78rem; color:rgba(255,255,255,.6); margin-bottom:1.2rem; display:flex; align-items:center; gap:.4rem; flex-wrap:wrap; }
.breadcrumb a { color:rgba(255,255,255,.7); }
.breadcrumb a:hover { color:white; }
.breadcrumb span { color:rgba(255,255,255,.4); }
.ville-intro { padding:4rem 0; }
.ville-intro-grid { display:grid; grid-template-columns:1.4fr .6fr; gap:3rem; align-items:start; }
.ville-intro-content h2 { font-family:var(--font-head); font-size:1.4rem; font-weight:800; color:var(--blue-dark); margin-bottom:1rem; }
.ville-intro-content h3 { font-family:var(--font-head); font-size:1rem; font-weight:800; color:var(--blue-mid); margin:1.5rem 0 .75rem; text-transform:uppercase; letter-spacing:.05em; }
.ville-intro-content p { font-size:.9rem; color:var(--gray-dark); line-height:1.75; margin-bottom:1rem; }
.ville-services-list { display:flex; flex-direction:column; gap:.5rem; }
.ville-services-list li a { font-size:.88rem; color:var(--blue-main); display:flex; align-items:center; gap:.5rem; padding:.4rem .5rem; border-radius:6px; transition:all .2s; }
.ville-services-list li a:hover { background:var(--blue-sky); color:var(--blue-cta); }
.ville-contact-card { position:sticky; top:6rem; }
.ville-contact-inner { background:var(--white); border:1px solid var(--blue-pale); border-radius:var(--radius-lg); padding:1.75rem; box-shadow:var(--shadow-md); border-top:4px solid var(--blue-cta); }
.ville-contact-inner h3 { font-family:var(--font-head); font-size:.92rem; font-weight:800; color:var(--blue-dark); margin-bottom:.3rem; text-transform:uppercase; letter-spacing:.06em; }
.vcitem { display:flex; align-items:center; gap:.7rem; margin-bottom:.7rem; font-size:.88rem; color:var(--gray-dark); }
.vcitem a { color:var(--blue-cta); font-weight:600; }
.vcicon { width:28px; height:28px; background:var(--blue-sky); border-radius:6px; display:grid; place-items:center; font-size:.9rem; flex-shrink:0; }
.ville-aides { padding:4rem 0; background:var(--blue-sky); }
.ville-aides h2 { font-family:var(--font-head); font-size:1.4rem; font-weight:800; color:var(--blue-dark); margin-bottom:.5rem; }
.ville-aides p { font-size:.9rem; color:var(--gray-dark); margin-bottom:1rem; }
.ville-faq { padding:4rem 0; }
.ville-faq h2 { font-family:var(--font-head); font-size:1.4rem; font-weight:800; color:var(--blue-dark); margin-bottom:1.5rem; text-align:center; }
@media(max-width:768px){
  .ville-intro-grid{grid-template-columns:1fr;}
  .ville-contact-card{position:static;}
}

/* ── CONTENU WP enrichi ── */
.ville-content h2,.ville-content h3 { font-family:var(--font-head); color:var(--blue-dark); margin:1.5rem 0 .75rem; font-weight:800; }
.ville-content p { font-size:.9rem; color:var(--gray-dark); line-height:1.75; margin-bottom:1rem; }
.ville-content a { color:var(--blue-cta); }
