:root{
  --sn-green-dark:#1f4f39;
  --sn-green:#2f7b53;
  --sn-green-light:#4a8f6a;
  --sn-yellow:#f6c34f;
  --sn-blue:#82c0d4;
  --sn-pink:#f28d89;
  --sn-bg:#f4f7f6;
  --sn-radius-xl:26px;
  --sn-radius-lg:20px;
  --sn-shadow-soft:0 14px 35px rgba(0,0,0,.08);
}
body{background:#fff}
.sn-home{background:var(--sn-bg);padding-bottom:4rem}

/* util */
.sn-btn--small{font-size:.9rem;padding:.5rem 1rem}

/* HERO */
.sn-hero{background:var(--sn-bg);padding:1.8rem 1.2rem 2.4rem}
.sn-hero-inner{
  max-width:1100px;margin:0 auto;border-radius:var(--sn-radius-xl);
  padding:2.1rem 2rem;display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1.3fr);
  gap:2.2rem;color:#fff;box-shadow:0 18px 45px rgba(0,0,0,.16);
  position:relative;overflow:hidden;
  background:
    radial-gradient(circle at top left,#f6c34f33 0,transparent 55%),
    radial-gradient(circle at bottom right,#82c0d433 0,transparent 55%),
    #1f4f39;
}
.sn-hero-inner::before,.sn-hero-inner::after{
  content:"";position:absolute;border-radius:50%;filter:blur(40px);opacity:.25;pointer-events:none
}
.sn-hero-inner::before{width:220px;height:220px;background:#f6c34f;top:-60px;left:-40px}
.sn-hero-inner::after{width:240px;height:240px;background:#82c0d4;bottom:-80px;right:-50px}
.sn-hero-main,.sn-hero-illu{position:relative;z-index:2}
.sn-hero-highlight{
  display:inline-flex;align-items:center;gap:.4rem;padding:.25rem .8rem;border-radius:999px;
  background:rgba(0,0,0,.28);font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:.8rem
}
.sn-hero-title{font-size:clamp(2rem,4vw,2.5rem);line-height:1.15;margin:0 0 .9rem;font-weight:800}
.sn-hero-sub{font-size:.98rem;line-height:1.7;max-width:560px;opacity:.96}
.sn-hero-cta{margin-top:1.6rem;display:flex;flex-wrap:wrap;gap:.8rem}
.sn-btn{
  display:inline-flex;align-items:center;justify-content:center;border-radius:999px;
  padding:.85rem 1.7rem;font-weight:600;font-size:.96rem;border:none;cursor:pointer;text-decoration:none;
  transition:transform .12s ease,box-shadow .12s ease,background .15s ease,color .15s ease;
}
.sn-btn--primary{background:#f6c34f;color:#1f4f39;box-shadow:0 12px 30px rgba(0,0,0,.25)}
.sn-btn--primary:hover{transform:translateY(-1px);box-shadow:0 16px 40px rgba(0,0,0,.35)}
.sn-btn--ghost{background:rgba(255,255,255,.06);color:#fff;border:1px solid rgba(255,255,255,.35)}
.sn-btn--ghost:hover{background:rgba(255,255,255,.18)}
.sn-hero-badges{margin-top:1.3rem;display:flex;flex-wrap:wrap;gap:.5rem;font-size:.84rem}
.sn-hero-badge{background:rgba(0,0,0,.28);border-radius:999px;padding:.28rem .9rem}

.sn-hero-card{
  background:#fff;border-radius:22px;padding:1.4rem 1.3rem 1.2rem;
  box-shadow:0 14px 35px rgba(0,0,0,.14);color:#1f4f39
}
.sn-hero-card-title{
  font-size:.9rem;font-weight:700;margin:0 0 .5rem;letter-spacing:.09em;text-transform:uppercase;color:#4a8f6a
}
.sn-hero-card-main{display:grid;grid-template-columns:auto minmax(0,1fr);gap:1rem;align-items:center}
.sn-hero-circle{
  width:82px;height:82px;border-radius:50%;
  background:conic-gradient(#f28d89 0 110deg,#f6c34f 110deg 210deg,#82c0d4 210deg 310deg,#4a8f6a 310deg 360deg);
  display:flex;align-items:center;justify-content:center
}
.sn-hero-circle-inner{width:50px;height:50px;border-radius:50%;background:#fff}
.sn-hero-card-text strong{display:block;font-size:1.1rem}
.sn-hero-card-text span{display:block;font-size:.9rem;color:#4f635b;margin-top:.25rem}
.sn-hero-card-footer{margin-top:.8rem;font-size:.8rem;color:#6d7b73}

@media (max-width:900px){
  .sn-hero-inner{grid-template-columns:minmax(0,1fr);padding:1.6rem 1.3rem 1.5rem;gap:1.4rem}
  .sn-hero-title{font-size:1.8rem}
  .sn-hero-sub{font-size:.95rem;max-width:none}
  .sn-hero-cta{flex-direction:column;align-items:stretch}
  .sn-btn{width:100%}
}
@media (max-width:540px){
  .sn-hero{padding:1.4rem 1rem 2.1rem}
  .sn-hero-inner{padding:1.4rem 1.1rem;border-radius:20px;box-shadow:0 10px 26px rgba(0,0,0,.16)}
  .sn-hero-title{font-size:1.6rem}
  .sn-hero-sub{font-size:.92rem}
  .sn-hero-card-main{grid-template-columns:minmax(0,1fr)}
  .sn-hero-circle{margin:0 auto .4rem}
}

/* SECTION */
.sn-section{max-width:1100px;margin:0 auto;padding:2.5rem 1.5rem 0}
.sn-section-title{font-size:1.35rem;margin:0 0 .4rem;font-weight:800;color:#1f4f39}
.sn-section-sub{font-size:.98rem;color:#52635b;margin:0 0 1.5rem}

/* MAP */
.sn-map-card{background:#fff;border-radius:var(--sn-radius-xl);box-shadow:var(--sn-shadow-soft);padding:1.4rem 1.4rem 1.1rem}
.sn-map-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}
.sn-map-header h2{font-size:1.1rem;margin:0}
.sn-map-header p{margin:0;font-size:.9rem;color:#5b6a63}
.sn-map-actions{display:flex;gap:.5rem;flex-wrap:wrap}
.sn-map{border-radius:var(--sn-radius-lg);overflow:hidden;height:340px;margin-top:.5rem}
@media (max-width:700px){.sn-map{height:280px}}

/* CAROUSELS */
.sn-reports{margin-top:3.2rem}
.sn-reports-header{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.8rem}
.sn-reports-header h2{font-size:1.2rem;margin:0}
.sn-reports-header a{font-size:.9rem;color:var(--sn-green);text-decoration:none}
.sn-reports-header a:hover{text-decoration:underline}

.sn-carousel{position:relative}
.sn-car-viewport{overflow:hidden;position:relative}
.sn-car-track{display:flex;gap:1rem;transition:transform .25s ease-out;will-change:transform}
.sn-car-card{
  min-width:260px;max-width:260px;background:#fff;border-radius:18px;
  box-shadow:0 6px 20px rgba(0,0,0,.04);overflow:hidden;display:flex;flex-direction:column;
  transition:transform .15s ease,box-shadow .15s ease;
}
.sn-car-img,.sn-car-video{width:100%;aspect-ratio:260/140;height:auto;object-fit:cover;display:block}
.sn-car-body{padding:.7rem .9rem .85rem;font-size:.9rem}
.sn-car-city{font-weight:700}
.sn-car-meta{font-size:.8rem;color:#7d8b84;margin-top:.15rem}
.sn-car-status{margin-top:.4rem;font-size:.8rem;font-weight:600}
.sn-car-status--confirme{color:#1e8b4c}
.sn-car-status--a_verifier{color:#c48a15}
.sn-car-status--neutralise{color:#b02b2b}

.sn-car-btn{
  position:absolute;top:50%;transform:translateY(-50%);
  border:none;width:34px;height:34px;border-radius:50%;
  background:rgba(255,255,255,.96);box-shadow:0 6px 18px rgba(0,0,0,.18);
  display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:5;
}
.sn-car-prev{left:-10px}
.sn-car-next{right:-10px}
@media (max-width:760px){
  .sn-car-btn{width:30px;height:30px}
  .sn-car-prev{left:4px}
  .sn-car-next{right:4px}
}
.sn-car-dots{margin-top:.5rem;display:flex;justify-content:center;gap:.35rem}
.sn-car-dot{width:8px;height:8px;border-radius:999px;border:none;background:#ddd;cursor:pointer;padding:0}
.sn-car-dot.is-active{background:#2f7b53}
.sn-car-link{display:block;text-decoration:none;color:inherit}
.sn-car-link:hover .sn-car-card{transform:translateY(-2px);box-shadow:0 10px 26px rgba(0,0,0,.12)}

/* STORIES (viewport scrollable) */
.sn-carousel-stories .sn-car-viewport{
  overflow-x:auto;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
.sn-carousel-stories .sn-car-viewport::-webkit-scrollbar{display:none}
.sn-car-img--story,.sn-car-video{aspect-ratio:260/160}
.sn-story-badge{
  position:absolute;right:8px;bottom:8px;width:32px;height:32px;border-radius:999px;
  background:rgba(0,0,0,.75);color:#fff;display:flex;align-items:center;justify-content:center;
  font-size:16px;font-weight:600
}
.sn-car-img-wrapper--story{position:relative;overflow:hidden;border-radius:12px 12px 0 0}

/* STORY MODAL */
.sn-story-modal[hidden]{display:none}
.sn-story-modal{position:fixed;inset:0;z-index:9999}
.sn-story-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.75)}
.sn-story-modal-content{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:transparent;padding:1rem}
.sn-story-inner{background:#000;border-radius:24px;overflow:hidden;width:min(380px,90vw);max-height:80vh;display:flex;flex-direction:column}
.sn-story-video{width:100%;height:auto;max-height:80vh;object-fit:contain;background:#000}
.sn-story-caption{color:#fff;padding:.5rem .75rem 0;font-size:.875rem}
.sn-story-meta{color:#ccc;padding:0 .75rem .75rem;font-size:.75rem}
.sn-story-close{position:absolute;top:12px;right:16px;background:none;border:none;color:#fff;font-size:2rem;cursor:pointer}

/* Modal signalement */
.sn-report-modal-backdrop{
  position:fixed;inset:0;background:rgba(15,23,42,.45);
  display:flex;align-items:center;justify-content:center;
  z-index:1400;opacity:0;pointer-events:none;transition:opacity .18s ease;
}
.sn-report-modal-backdrop.is-open{opacity:1;pointer-events:auto}
.sn-report-modal{
  position:relative;max-width:420px;width:100%;background:#fff;border-radius:20px;
  padding:20px 22px 18px;box-shadow:0 20px 50px rgba(15,23,42,.35)
}
.sn-report-modal-title{font-size:1.2rem;font-weight:700;margin:0 0 6px;color:#0a3f3a}
.sn-report-modal-text{margin:0 0 14px;font-size:.9rem;color:#4b5563}
.sn-report-modal-actions{display:flex;flex-direction:column;gap:10px}
.sn-report-modal-btn{width:100%;justify-content:flex-start;align-items:flex-start;flex-direction:column;text-align:left}
.sn-report-modal-btn-sub{display:block;font-weight:400;font-size:.78rem;color:#4b5563}
.sn-report-modal-close{position:absolute;top:10px;right:10px;border:0;background:transparent;cursor:pointer;font-size:18px;line-height:1;color:#6b7280}
.sn-report-modal-close:hover{color:#111827}
@media (max-width:600px){.sn-report-modal{margin:0 14px;padding:18px 16px 16px}}

/* Leaflet */
.sn-map .leaflet-control-layers{
  font-size:.85rem;background:#fff;border-radius:999px;padding:.3rem .8rem;
  box-shadow:0 6px 18px rgba(0,0,0,.18);border:none
}
.sn-map .leaflet-control-layers-expanded{background:#fff;border-radius:999px;padding:.4rem .8rem}

/* Réduction animations si demandé */
@media (prefers-reduced-motion: reduce){
  *{scroll-behavior:auto !important;transition:none !important;animation:none !important}
}
