.project-marker {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 50px;
  border: 2px solid white;
  border-radius: 50%;
  background-color: #000091;
  color: white;
  font-size: 16px;
  font-weight: bold;
  text-align: center;
}
.project-marker--siege { background-color: #0063cb; }
.project-marker--centre_commune { background-color: #18753c; }
.project-marker--centre_epci { background-color: #a558a0; }
.project-marker--centre_arrondissement { border-style: dashed; background-color: #b34000; }

.epci-tooltip { color: #161616; font-weight: 600; }
.epci-legend { padding: .4rem .6rem; border-radius: .25rem; background: rgba(255, 255, 255, .92); box-shadow: 0 1px 5px rgba(0, 0, 0, .25); }
.epci-legend__swatch { display: inline-block; width: 1rem; height: .75rem; margin-right: .35rem; border: 2px solid #000091; background: #6a6af4; opacity: .55; vertical-align: middle; }
.project-drawer-backdrop { position: fixed; inset: 0; z-index: 1999; background: rgba(0, 0, 0, .35); opacity: 0; visibility: hidden; transition: opacity .25s ease; }
.project-drawer-backdrop.is-open { opacity: 1; visibility: visible; }
.project-drawer { position: fixed; top: 0; right: 0; z-index: 2000; width: min(620px, 100%); height: 100vh; padding: 0 1.5rem 1.5rem; overflow-y: auto; background: #f6f6f6; box-shadow: -8px 0 24px rgba(0, 0, 0, .2); transform: translateX(100%); transition: transform .3s ease; }
.project-drawer.is-open { transform: translateX(0); }
.project-drawer__header { position: sticky; top: 0; z-index: 3; display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 0 -1.5rem 1.5rem; padding: 1.25rem 1.5rem; border-bottom: 1px solid #cacafb; background: linear-gradient(135deg, #ececfe 0%, #f5f5fe 100%); box-shadow: 0 4px 12px rgba(0, 0, 145, .08); }
.project-drawer__header h4 { margin: 0; color: #000091; }
.project-drawer__close { flex: 0 0 auto; }
.project-drawer #project-drawer-detail,
.project-drawer #project-group-list { padding: 1.25rem; border: 1px solid #e3e3fd; border-radius: .5rem; background: #fff; box-shadow: 0 3px 12px rgba(0, 0, 0, .06); }
.project-drawer #project-group-list:empty { display: none; }
.project-drawer #project-group-list:not(:empty) { margin-top: 1rem; }
.project-drawer #project-drawer-detail > h5 { margin: 0 -.25rem .5rem; padding: .25rem .25rem .75rem; border-bottom: 2px solid #ececfe; color: #000091; }
.project-drawer #project-drawer-detail > p { margin: 0 0 1rem; color: #666; }
.project-drawer table { width: 100%; overflow: hidden; border: 1px solid #e5e5e5; border-collapse: separate; border-spacing: 0; border-radius: .35rem; background: #fff; font-size: .875rem; line-height: 1.25rem; }
.project-drawer table th,
.project-drawer table td { padding: .55rem .7rem; border-bottom: 1px solid #eee; }
.project-drawer table tr:last-child th,
.project-drawer table tr:last-child td { border-bottom: 0; }
.project-drawer table th { width: 38%; background: #f5f5fe; color: #161616; font-weight: 600; text-align: left; }
.project-drawer__map { height: 420px; margin: .75rem 0 1.25rem; overflow: hidden; border: 1px solid #cacafb; border-radius: .5rem; box-shadow: 0 2px 8px rgba(0, 0, 0, .08); }
.project-drawer #project-drawer-detail > .fr-btn { width: 100%; justify-content: center; }
.project-drawer #project-group-list > h5 { margin-top: 0 !important; color: #000091; }
.marker-project-row { cursor: pointer; }
.marker-project-row:hover,
.marker-project-row:focus { background: #ececfe; }
body.drawer-open { overflow: hidden; }

/* Le style global des liens du DSFR ne doit pas déformer les commandes Leaflet. */
#map .leaflet-control-zoom { display: flex; flex-direction: column; overflow: hidden; }
#map .leaflet-control-zoom a {
  box-sizing: border-box;
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 32px !important;
  height: 32px !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 32px !important;
  background-image: none !important;
}
#map .leaflet-control-zoom a::after { display: none !important; }

@media (max-width: 36rem) {
  .project-drawer { padding-right: 1rem; padding-left: 1rem; }
  .project-drawer__header { margin-right: -1rem; margin-left: -1rem; padding-right: 1rem; padding-left: 1rem; }
  .project-drawer #project-drawer-detail,
  .project-drawer #project-group-list { padding: 1rem; }
}
.results-map {
  width: 100%;
  height: 44rem;
  min-height: 28rem;
}
.map-description { text-align: justify; }

@media (max-width: 48rem) {
  .results-map {
    height: 70vh;
    min-height: 24rem;
    max-height: 32rem;
  }
}
