/* ==== RESET ==== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;scroll-behavior:smooth;-webkit-font-smoothing:antialiased}
body{font-family:'Plus Jakarta Sans',system-ui,sans-serif;background:#F8F9FC;color:#1A1D27;line-height:1.75}
img{max-width:100%;height:auto;display:block}
a{text-decoration:none;color:inherit}
li{list-style:none}
/* ==== TOKENS ==== */
:root{
 --acc:#22c55e; --acc2:#16a34a;
 --bg:#F8F9FC; --w:#fff;
 --dark:#0D0F14; --gray:#6B7280;
 --light:#E2E6EF; --lighter:#EFF2F8;
 --r:12px;
 --wrap:min(1100px,100% - 4rem);
 --sh:0 1px 3px rgba(13,15,20,.05),0 4px 16px rgba(13,15,20,.04);
 --shh:0 8px 32px rgba(13,15,20,.1),0 2px 8px rgba(34,197,94,.08);
}
/* ==== BANNIERE ==== */
.banner{background:linear-gradient(90deg,#16a34a,var(--acc));color:#fff;text-align:center;font-size:13px;line-height:2.2;font-weight:600;letter-spacing:.02em;box-shadow:0 2px 8px rgba(34,197,94,.3);position:relative;z-index:200}
.banner a{color:#bfdbfe}
.banner .tel{color:#fff;font-weight:800;border-bottom:1px solid rgba(255,255,255,.4)}
/* ==== NAV ==== */
.nav{position:sticky;top:0;z-index:100;background:rgba(248,249,252,.92);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid rgba(226,230,239,.7);box-shadow:0 1px 0 rgba(0,0,0,.04)}
.nav-inner{width:var(--wrap);margin:0 auto;height:5.5rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem}
.nav-logo::after { content: none !important; }
.nav-logo { display:flex; align-items:center; gap:.4rem; font-size:0; }
.nav-logo img { height:32px; width:auto; display:block; }
.nav-logo .logo-extra { height:22px; opacity:.9; }
.nav-links{display:flex;gap:.15rem;align-items:center;flex-wrap:wrap}
.nav-links a,.nav-links button.sub-toggle{font-size:.84rem;font-weight:500;color:#1A1D27;padding:.38rem .75rem;border-radius:8px;transition:background .18s,color .18s;border:none;background:none;cursor:pointer}
.nav-links a:hover,.nav-links button.sub-toggle:hover{color:var(--acc);background:rgba(34,197,94,.07)}
.nav-links .has-sub{position:relative}
.nav-links .submenu{display:none;position:absolute;top:calc(100% + .5rem);left:0;background:var(--w);border:1px solid var(--light);border-radius:var(--r);box-shadow:var(--shh);padding:.5rem;min-width:200px;z-index:200}
.nav-links .submenu a{display:block;padding:.45rem .85rem;border-radius:8px;font-size:.84rem;color:#1A1D27}
.nav-links .submenu a:hover{background:var(--lighter);color:var(--acc)}
.nav-cta{background:var(--acc)!important;color:#fff!important;font-weight:700!important;border-radius:10px!important;padding:.45rem 1.1rem!important;box-shadow:0 2px 10px rgba(34,197,94,.25);transition:transform .2s,box-shadow .2s}
.nav-cta:hover{background:var(--acc2)!important;transform:translateY(-1px);box-shadow:0 4px 18px rgba(34,197,94,.35)!important}
/* Mobile nav toggle */
.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:.5rem}
.nav-toggle span{display:block;width:22px;height:2px;background:var(--dark);margin:4px 0;border-radius:2px;transition:.3s}
/* ==== HERO ==== */
.hero{width:var(--wrap);margin:0 auto;padding:4rem 0 3.5rem;display:grid;grid-template-columns:1fr 1fr;gap:3.5rem;align-items:center}
.hero-label{display:inline-flex;align-items:center;gap:.4rem;background:rgba(34,197,94,.08);color:var(--acc);border:1px solid rgba(34,197,94,.15);border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:.28rem .85rem;margin-bottom:1.1rem}
.hero h1{font-family:'Sora',sans-serif;font-size:clamp(1.8rem,3vw,2.9rem);font-weight:800;letter-spacing:-.04em;line-height:1.12;background:linear-gradient(135deg,#0D0F14 0%,#374151 55%,var(--acc) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:1.1rem}
.hero-desc{color:var(--gray);font-size:1.02rem;line-height:1.7;margin-bottom:2rem}
.hero-actions{display:flex;gap:1rem;flex-wrap:wrap}
.hero-actions .btn-badge { height:48px; width:auto !important; max-width:none; flex-shrink:0; object-fit:contain; display:block}
.btn-p{background:var(--acc);color:#fff;font-weight:700;font-size:.9rem;padding:.72rem 1.5rem;border-radius:11px;display:inline-block;box-shadow:0 4px 18px rgba(34,197,94,.3);transition:transform .2s,box-shadow .2s}
.btn-p:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(34,197,94,.4);color:#fff}
.btn-o{background:transparent;color:var(--dark);font-weight:600;font-size:.9rem;padding:.7rem 1.3rem;border-radius:11px;border:1.5px solid var(--light);display:inline-block;transition:border-color .2s}
.btn-o:hover{border-color:var(--acc)}
.hero-img-wrap{border-radius:20px;overflow:hidden;aspect-ratio:4/3;box-shadow:0 24px 64px rgba(13,15,20,.13);background:var(--lighter);position:relative}
.hero-img-wrap img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.hero-img-wrap:hover img{transform:scale(1.02)}
.hero-badge{position:absolute;top:1rem;left:1rem;background:#fff;border-radius:10px;padding:.6rem .9rem;box-shadow:0 4px 16px rgba(13,15,20,.12);display:flex;align-items:center;gap:.5rem;font-size:.78rem;font-weight:600;color:var(--dark)}
.hero-dot{width:8px;height:8px;background:#22c55e;border-radius:50%;flex-shrink:0;animation:pulse 2s infinite}
/* ==== SECTION ==== */
.section{width:var(--wrap);margin:0 auto;padding:3.5rem 0}
.section-hd{text-align:center;margin-bottom:2.5rem}
.section-hd h2{font-family:'Sora',sans-serif;font-size:1.75rem;font-weight:800;letter-spacing:-.04em;color:var(--dark)}
.section-hd h2 em{color:var(--acc);font-style:normal}
.section-hd p{color:var(--gray);margin-top:.5rem}
.section-hd .bar{width:3rem;height:3px;background:var(--acc);border-radius:2px;margin:.8rem auto 0}
.section-intro{text-align:center;font-weight:700;font-size:1.05rem;max-width:42rem;margin:0 auto 2.5rem;color:var(--dark)}
/* ==== VALUES ==== */
.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.vcard{background:var(--w);border:1px solid var(--light);border-radius:var(--r);padding:2rem 1.5rem;text-align:center;box-shadow:var(--sh);transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .25s,border-color .2s}
.vcard:hover{transform:translateY(-4px);box-shadow:var(--shh);border-color:rgba(34,197,94,.2)}
.vcard-icon{font-size:2.5rem;margin-bottom:1rem;display:block}
.vcard h3{font-family:'Sora',sans-serif;font-size:1.05rem;font-weight:700;color:var(--dark);margin-bottom:.5rem;letter-spacing:-.02em}
.vcard p{font-size:.875rem;color:var(--gray);line-height:1.6}
/* ==== ERRORS ==== */
.err-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
.ecard{background:var(--w);border:1px solid var(--light);border-left:4px solid var(--acc);border-radius:0 var(--r) var(--r) 0;padding:1.8rem;box-shadow:var(--sh)}
.ecard-icon{font-size:2rem;margin-bottom:.8rem;display:block}
.ecard h3{font-family:'Sora',sans-serif;font-size:1rem;font-weight:700;color:var(--dark);margin-bottom:.4rem}
.ecard p{font-size:.875rem;color:var(--gray);line-height:1.6}
/* ==== REVIEWS ==== */
.reviews-wrap{background:var(--w);border-radius:20px;padding:3rem;box-shadow:var(--sh);border:1px solid var(--light)}
/* ==== MAP ==== */
.map-box{border-radius:16px;overflow:hidden;box-shadow:var(--shh);border:1px solid var(--light);height:480px;position:relative}
.map-box #map{width:100%;height:100%}
.map-legend{position:absolute;bottom:16px;left:16px;background:#fff;padding:8px 14px;border-radius:10px;box-shadow:0 4px 16px rgba(13,15,20,.12);font-size:13px;font-weight:600;z-index:1000;display:flex;align-items:center;gap:.5rem}
.map-swatch{width:14px;height:14px;background:rgba(34,197,94,.35);border:2px solid var(--acc);border-radius:3px;flex-shrink:0}
/* ==== ABOUT STRIP ==== */
.about-strip{background:linear-gradient(135deg,#0D0F14,#193024);border-radius:20px;padding:2.8rem 3rem;display:grid;grid-template-columns:auto 1fr auto;gap:2rem;align-items:center;box-shadow:0 20px 60px rgba(13,15,20,.2);position:relative;overflow:hidden}
.about-strip::before{content:'';position:absolute;top:-50px;right:-50px;width:220px;height:220px;background:radial-gradient(circle,rgba(34,197,94,.2) 0%,transparent 70%);pointer-events:none}
.about-av{width:80px;height:80px;border-radius:50%;border:3px solid rgba(34,197,94,.5);background:linear-gradient(135deg,var(--acc),#86efac);display:flex;align-items:center;justify-content:center;font-size:2rem;flex-shrink:0;overflow:hidden}
.about-strip h3{font-family:'Sora',sans-serif;font-size:1.25rem;font-weight:700;color:#fff;margin-bottom:.4rem;letter-spacing:-.03em}
.about-strip p{font-size:.9rem;color:rgba(255,255,255,.65);line-height:1.65}
.about-strip strong{color:rgba(255,255,255,.9)}
/* ==== FEED ==== */
.feed-section{width:var(--wrap);margin:0 auto;padding:3.5rem 0 5rem;border-top:1px solid var(--light)}
.feed-hd{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:2rem}
.feed-hd h2{font-family:'Sora',sans-serif;font-size:1.5rem;font-weight:700;letter-spacing:-.03em;color:var(--dark)}
.feed-hd h2 em{color:var(--acc);font-style:normal}
.feed-hd a{font-size:.82rem;font-weight:600;color:var(--acc)}
.feed-hd a:hover{text-decoration:underline}
.cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.card{background:var(--w);border:1px solid var(--light);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh);transition:transform .28s cubic-bezier(.34,1.56,.64,1),box-shadow .28s,border-color .25s;opacity:0;transform:translateY(16px);animation:fadeUp .5s cubic-bezier(.22,1,.36,1) forwards}
.card:hover{transform:translateY(-4px);box-shadow:var(--shh);border-color:rgba(34,197,94,.2)}
.card-img{aspect-ratio:16/9;overflow:hidden;background:var(--lighter);position:relative}
.card-img img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.card:hover .card-img img{transform:scale(1.05)}
.card-img-ph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:3rem;background:linear-gradient(135deg,#EFF2F8,#E2E6EF)}
.card-tag{position:absolute;top:.7rem;left:.7rem;background:rgba(34,197,94,.9);color:#fff;font-size:.65rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:.22rem .6rem;border-radius:999px}
.card-body{padding:1.4rem}
.card-meta{font-size:.7rem;font-weight:700;color:var(--acc);letter-spacing:.06em;text-transform:uppercase;margin-bottom:.5rem}
.card-title{font-family:'Sora',sans-serif;font-size:1rem;font-weight:700;letter-spacing:-.025em;line-height:1.3;color:var(--dark);margin-bottom:.65rem;transition:color .2s}
.card-title a{color:inherit}
.card-excerpt{font-size:.875rem;color:var(--gray);line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:1rem}
.card-rm{display:inline-flex;align-items:center;gap:.3rem;font-size:.82rem;font-weight:700;color:var(--acc);border-bottom:2px solid rgba(34,197,94,.2);padding-bottom:.1rem;transition:gap .2s,border-color .2s}
.card-rm:hover{gap:.55rem;border-color:var(--acc)}
/* ==== FOOTER ==== */
footer{background:var(--w);border-top:1px solid var(--light);padding:3.5rem 0 2rem;margin-top:2rem}
.foot-inner{width:var(--wrap);margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:3rem}
.foot-brand-name { display:flex; align-items:center }
.foot-brand-name img { height:38px; width:auto; display:block }
.foot-brand p{font-size:.875rem;color:var(--gray);line-height:1.65;max-width:240px;margin-top:.5rem}
.foot-col h4{font-family:'Sora',sans-serif;font-size:.78rem;font-weight:700;color:var(--dark);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.9rem}
.foot-col ul{display:flex;flex-direction:column;gap:.45rem}
.foot-col a{font-size:.875rem;color:var(--gray);transition:color .2s}
.foot-col a:hover{color:var(--acc)}
.foot-bottom{width:var(--wrap);margin:1.8rem auto 0;padding-top:1.5rem;border-top:1px solid var(--light);display:flex;justify-content:space-between;font-size:.78rem;color:var(--gray);flex-wrap:wrap;gap:1rem}
.foot-bottom a{color:var(--acc)}
.foot-social{display:flex;gap:.75rem;margin-top:.75rem}
.foot-social a{color:var(--gray);font-size:1.2rem;transition:color .2s,transform .2s}
.foot-social a:hover{color:var(--acc);transform:translateY(-2px)}
/* Back to top */
#btt{position:fixed;bottom:2rem;right:2rem;background:var(--acc);color:#fff;border:none;border-radius:50%;width:44px;height:44px;font-size:1.2rem;cursor:pointer;box-shadow:0 4px 16px rgba(34,197,94,.3);display:none;align-items:center;justify-content:center;transition:transform .2s;z-index:99}
#btt.show{display:flex}
#btt:hover{transform:translateY(-3px)}
/* A11y focus */
.nav-links a:focus,.submenu a:focus,.sub-toggle:focus{outline:2px solid var(--acc);outline-offset:2px}
/* ==== ANIMATIONS ==== */
@keyframes fadeUp{to{opacity:1;transform:translateY(0)}}
@keyframes pulse{0%,100%{box-shadow:0 0 0 3px rgba(34,197,94,.2)}50%{box-shadow:0 0 0 6px rgba(34,197,94,.1)}}
/* ==== RESPONSIVE ==== */
@media (max-width:960px){
 .hero{grid-template-columns:1fr;padding:2.5rem 0 2rem}
 .hero-img-wrap{order:-1;aspect-ratio:16/9}
 .values-grid{grid-template-columns:1fr 1fr}
 .cards-grid{grid-template-columns:1fr 1fr}
 .about-strip{grid-template-columns:auto 1fr}
 .about-strip .btn-p{grid-column:1 / -1;text-align:center}
 .foot-inner{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
 :root{--wrap:min(1100px,100% - 2rem)}
 .nav-links{display:none}
 .nav-links.open{display:flex;flex-direction:column;position:absolute;top:100%;left:0;right:0;background:rgba(248,249,252,.98);border-bottom:1px solid var(--light);padding:1rem;gap:.25rem}
 .nav-toggle{display:block}
 .values-grid,.err-grid,.cards-grid{grid-template-columns:1fr}
 .about-strip{grid-template-columns:1fr;text-align:center;padding:2rem}
 .about-av{margin:0 auto}
 .hero-actions{flex-direction:column}
 .btn-p,.btn-o{text-align:center}
}
/* Leaflet override */
.leaflet-container{background:transparent!important}
/* --- Galerie scroll-snap, mobile first --- */
.snap-gallery { display:grid; grid-auto-flow:column; grid-auto-columns:100%; gap:1rem; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scroll-behavior:smooth; padding-bottom:.5rem }
.snap-slide { scroll-snap-align:start; margin:0 }
.snap-slide img { width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; display:block; border-radius:12px }
.snap-slide figcaption { font-size:.95rem; color: var(--t-2, #555); margin-top:.5rem }
.snap-hint { text-align:center; color: var(--t-2, #666); font-size:.9rem; margin-top:.25rem }
@media (min-width: 1024px) { .snap-gallery { grid-auto-columns: 80%; } }
@media (min-width: 768px) { .snap-hint { display: none; } }
/* --- Correction : justifier le texte partout sur les pages internes --- */
.section p, .section .section-hd p, .hero-text p, .content p, .vcard p { text-align: justify !important; }
.section-hd, .section-hd p { text-align: left !important; }
/* ─── Fix footer mobile ──────────────────────────────────────────────────── */
@media (max-width:640px) {
  .foot-inner {
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
  }
  .foot-brand { grid-column: 1 / -1; }
  .foot-bottom { flex-direction: column; gap: .5rem; }
}

/* ─── Badge nav (disponibilité dans la barre de navigation) ─────────────── */
.nav-inner .hero-badge {
  position: static;
  font-size: .72rem;
  padding: .3rem .7rem;
  margin-left: auto;
  margin-right: .5rem;
  flex-shrink: 0;
  box-shadow: none;
  border-radius: 8px;
}


/* ─── Galerie slider ────────────────────────────────────────────────────── */
.gallery-slider{position:relative;overflow:hidden;border-radius:18px;background:#111;max-width:900px;margin:0 auto;box-shadow:0 8px 32px rgba(0,0,0,.18)}
.gallery-track{display:flex;transition:transform .45s cubic-bezier(.4,0,.2,1)}
.gallery-slide{flex:0 0 100%;position:relative;margin:0}
.gallery-slide img{width:100%;height:420px;object-fit:cover;display:block;opacity:.92}
.gallery-slide figcaption{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(0,0,0,.72));color:#fff;padding:2rem 1.5rem 1.2rem;font-size:.95rem;line-height:1.5}
.gallery-btn{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.85);border:none;border-radius:50%;width:44px;height:44px;font-size:1.6rem;line-height:1;cursor:pointer;display:grid;place-items:center;color:#222;box-shadow:0 2px 8px rgba(0,0,0,.25);transition:background .2s,transform .2s}
.gallery-btn:hover{background:#fff;transform:translateY(-50%) scale(1.08)}
.gallery-prev{left:14px}
.gallery-next{right:14px}
.gallery-dots{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);display:flex;gap:8px}
.gallery-dot{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.5);cursor:pointer;transition:background .2s,transform .2s}
.gallery-dot.active{background:#fff;transform:scale(1.3)}
@media(max-width:600px){.gallery-slide img{height:240px}}

/* ─── Services grid ─────────────────────────────────────────────────────── */
.svc-grid{display:grid;grid-template-columns:1fr;gap:1.5rem}
.svc{border:1px solid #eee;border-radius:16px;overflow:hidden;background:#fff;display:flex;flex-direction:column;box-shadow:0 2px 8px rgba(0,0,0,.06);transition:box-shadow .2s}
.svc:hover{box-shadow:0 6px 20px rgba(0,0,0,.12)}
.svc-img-wrap{display:block;width:100%;height:210px;overflow:hidden;flex-shrink:0;text-decoration:none}
.svc-img-wrap img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s}
.svc:hover .svc-img-wrap img{transform:scale(1.04)}
.svc-img-ph{width:100%;height:210px;display:grid;place-items:center;font-size:4rem;background:#f5f5f5}
.svc-body{padding:1.25rem;display:flex;flex-direction:column;flex:1}
.svc-tt{margin:0 0 .4rem 0;font-size:1.05rem}
.svc-txt{color:var(--gray);margin:0 0 .8rem 0;flex:1}
.svc-cta{color:#0a66c2;font-weight:600;text-underline-offset:3px;text-decoration:underline;align-self:start}
@media(min-width:700px){.svc-grid{grid-template-columns:repeat(3,1fr)}}

/* ─── Zone d'intervention ───────────────────────────────────────────────── */
.zone-grid{display:grid;grid-template-columns:1fr;gap:1.25rem;max-width:var(--wrap);margin:0 auto}
.zone-card{display:flex;flex-direction:column;align-items:center;text-align:center;border-radius:16px;padding:1.75rem 1.5rem;border:2px solid #eee;background:#fff;gap:.75rem;box-shadow:0 2px 8px rgba(0,0,0,.06);transition:box-shadow .2s,transform .2s}
.zone-card:hover{box-shadow:0 6px 20px rgba(0,0,0,.1);transform:translateY(-2px)}
.zone-card h3{margin:.25rem 0}
.zone-card p{margin:0;color:var(--gray);font-size:.9rem}
.zone-card--91{border-color:#8DB6FF}
.zone-card--78{border-color:#FFB26B}
.zone-card--92{border-color:#84D780}
@media(min-width:700px){.zone-grid{grid-template-columns:repeat(3,1fr)}}

/* ─── FAQ accordion ─────────────────────────────────────────────────────── */
.faq-list{max-width:var(--wrap);margin:0 auto;display:grid;gap:.75rem}
.faq-item{border:1px solid #eee;border-radius:12px;overflow:hidden;background:#fff}
.faq-q{width:100%;display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;background:none;border:none;cursor:pointer;text-align:left;font-weight:600;font-size:.95rem;gap:.5rem;color:inherit}
.faq-q::after{content:"+";flex-shrink:0;font-size:1.3rem;color:#0a66c2;transition:transform .25s}
.faq-item.open .faq-q::after{transform:rotate(45deg)}
.faq-a{display:none;padding:0 1.25rem 1rem;color:var(--gray);line-height:1.65}
.faq-item.open .faq-a{display:block}

/* ─── Badge étoiles Google ──────────────────────────────────────────────── */
.star-badge{display:inline-flex;align-items:center;gap:.5rem;background:#fff;border:1px solid #fcd34d;border-radius:50px;padding:.45rem 1rem .45rem .75rem;box-shadow:0 2px 8px rgba(251,191,36,.25);margin-top:.75rem}
.star-badge-stars{color:#FBBF24;font-size:1.1rem;letter-spacing:1px;line-height:1}
.star-badge-text{font-size:.85rem;color:#374151}

/* ─── Coordonnées contact ───────────────────────────────────────────────── */
.contact-channels{display:grid;gap:1rem;max-width:600px;margin:0 auto}
.contact-channel{display:flex;align-items:center;gap:1rem;padding:1.25rem 1.5rem;border-radius:16px;border:1.5px solid #eee;background:#fff;text-decoration:none;color:inherit;box-shadow:0 2px 8px rgba(0,0,0,.06);transition:box-shadow .2s,transform .2s}
.contact-channel:hover{box-shadow:0 6px 20px rgba(0,0,0,.1);transform:translateY(-2px)}
.contact-channel--phone{border-color:rgba(34,197,94,.4)}
.contact-channel--email{border-color:rgba(59,130,246,.4)}
.contact-channel-icon{font-size:2rem;flex-shrink:0;width:52px;height:52px;display:grid;place-items:center;border-radius:12px;background:#F3F4F6}
.contact-channel-body{display:flex;flex-direction:column;flex:1}
.contact-channel-label{font-size:.8rem;color:#6B7280;font-weight:500;text-transform:uppercase;letter-spacing:.05em}
.contact-channel-value{font-weight:700;font-size:1.1rem;color:#111827}
.contact-channel-hint{font-size:.82rem;color:#9CA3AF;margin-top:.1rem}
.contact-channel-arrow{font-size:1.3rem;color:#9CA3AF;flex-shrink:0;transition:transform .2s}
.contact-channel:hover .contact-channel-arrow{transform:translateX(3px)}
@media(min-width:640px){.contact-channels{grid-template-columns:repeat(2,1fr)}}

/* ─── Villes desservies ─────────────────────────────────────────────────── */
.cities-grid{display:grid;gap:1rem;max-width:var(--wrap);margin:0 auto}
@media(min-width:700px){.cities-grid{grid-template-columns:repeat(3,1fr)}}
.city-dept{background:#fff;border:1px solid #eee;border-radius:14px;padding:1.25rem}
.city-dept-header{display:flex;align-items:center;gap:.65rem;margin-bottom:.75rem}
.city-dept-header h3{margin:0;font-size:1rem}
.city-list{list-style:none;padding:0;margin:0;display:block}
.city-list[hidden]{display:none}
.city-list li{padding:.45rem .1rem;font-size:.875rem;color:#374151;border-bottom:1px solid var(--lighter)}
.city-list li:last-child{border-bottom:none}

/* ─── Frise chronologique ────────────────────────────────────────────────── */
.timeline {
  list-style: none;
  max-width: 680px;
  margin: 0 auto;
  position: relative;
  padding: .5rem 0;
}
/* Ligne verticale centrale */
.timeline::before {
  content: '';
  position: absolute;
  left: 28px;
  top: 0;
  bottom: 0;
  width: 2px;
  background: linear-gradient(to bottom, var(--acc), rgba(34,197,94,.1));
  border-radius: 2px;
}
.tl-step {
  display: flex;
  gap: 1.25rem;
  align-items: flex-start;
  position: relative;
  padding-bottom: 2.25rem;
}
.tl-step:last-child { padding-bottom: 0; }
.tl-icon {
  flex-shrink: 0;
  width: 56px;
  height: 56px;
  background: #fff;
  border: 2px solid var(--acc);
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 1.5rem;
  z-index: 1;
  box-shadow: 0 0 0 5px rgba(34,197,94,.1);
}
.tl-body {
  flex: 1;
  background: #fff;
  border: 1px solid var(--light);
  border-radius: var(--r);
  padding: 1.1rem 1.4rem;
  box-shadow: var(--sh);
  margin-top: .4rem;
  position: relative;
}
/* Petite flèche pointant vers l'icône */
.tl-body::before {
  content: '';
  position: absolute;
  left: -8px;
  top: 16px;
  width: 8px;
  height: 8px;
  background: #fff;
  border-left: 1px solid var(--light);
  border-bottom: 1px solid var(--light);
  transform: rotate(45deg);
}
.tl-time {
  display: inline-block;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--acc);
  margin-bottom: .35rem;
}
.tl-body h3 {
  font-family: 'Sora', sans-serif;
  font-size: 1rem;
  font-weight: 700;
  color: var(--dark);
  margin-bottom: .4rem;
  letter-spacing: -.02em;
}
.tl-body p {
  font-size: .875rem;
  color: var(--gray);
  line-height: 1.65;
  margin: 0;
}
@media (max-width:480px) {
  .timeline::before { left: 22px; }
  .tl-icon { width: 44px; height: 44px; font-size: 1.2rem; }
}

/* ─── Bouton dans zone-card ─────────────────────────────────────────────── */
.zone-card-btn {
  margin-top: auto;
  font-size: .82rem;
  padding: .5rem 1rem;
  width: 100%;
  text-align: center;
}

/* ─── Recherche de commune ──────────────────────────────────────────────── */
.commune-search-wrap {
  max-width: 520px;
  margin: 0 auto 2rem;
}
.commune-search-box {
  display: flex;
  align-items: center;
  gap: .75rem;
  background: #fff;
  border: 1.5px solid var(--light);
  border-radius: 12px;
  padding: .75rem 1rem;
  box-shadow: 0 2px 8px rgba(0,0,0,.06);
  transition: border-color .2s, box-shadow .2s;
}
.commune-search-box:focus-within {
  border-color: var(--acc);
  box-shadow: 0 0 0 3px rgba(34,197,94,.12);
}
.commune-search-icon { font-size: 1.1rem; flex-shrink: 0; }
.commune-search-input {
  flex: 1;
  border: none;
  outline: none;
  font-size: .95rem;
  background: transparent;
  font-family: inherit;
  color: var(--dark);
}
.commune-search-input::placeholder { color: #9CA3AF; }

.commune-result {
  margin-top: .75rem;
  padding: .8rem 1rem;
  border-radius: 10px;
  font-size: .9rem;
  display: none;
  align-items: center;
  gap: .5rem;
}
.commune-result:not(:empty) { display: flex; }
.commune-result--ok {
  background: rgba(34,197,94,.1);
  border: 1px solid rgba(34,197,94,.3);
  color: #166534;
}
.commune-result--no {
  background: rgba(245,158,11,.08);
  border: 1px solid rgba(245,158,11,.3);
  color: #92400E;
}
.commune-result-icon { font-size: 1.1rem; flex-shrink: 0; }
.commune-result-dept { font-weight: 600; }
.commune-result a { color: var(--acc); font-weight: 600; }

/* ─── Bouton toggle liste de villes ────────────────────────────────────── */
.city-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  background: var(--lighter);
  border: 1px solid var(--light);
  border-radius: 8px;
  padding: .55rem .85rem;
  font-size: .85rem;
  font-weight: 600;
  color: var(--dark);
  cursor: pointer;
  margin-bottom: .75rem;
  transition: background .2s, border-color .2s;
}
.city-toggle:hover { background: #e5e9f2; border-color: #c5cbd8; }
.city-toggle[aria-expanded="true"] { border-color: var(--acc); color: var(--acc); background: rgba(34,197,94,.06); }
.city-toggle-arrow { transition: transform .25s; }
.city-toggle[aria-expanded="true"] .city-toggle-arrow { transform: rotate(180deg); }
