/* Bloc villemont/map — styles venus de components.css (refonte 1e) */

/* ── Carte stylisée (réutilisable : Contact, Visite) ── */
.vm-map-block__title { font-size: clamp(28px, 3vw, 40px); margin-bottom: 32px; }

.vm-map {
  aspect-ratio: 21 / 9;
  background: var(--bone-warm);
  border: 1px solid var(--rule);
  display: grid;
  place-items: center;
  position: relative;
  overflow: hidden;
}

/* Spécificité .vm-map .vm-map__canvas : bat .maplibregl-map { position: relative }
   que MapLibre pose sur le conteneur (sinon le canvas s'effondre à 0px de haut). */
.vm-map .vm-map__canvas { position: absolute; inset: 0; width: 100%; height: 100%; }

.vm-map .vm-map__canvas .maplibregl-canvas { width: 100% !important; height: 100% !important; }

.vm-map__fallback { position: absolute; inset: 0; display: grid; place-items: center; }

.vm-map__grid { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0.4; }

.vm-map__marker { text-align: center; position: relative; z-index: 2; }

.vm-map__pin--marker { margin: 0; cursor: pointer; }

.vm-map__poi { display: flex; flex-direction: column; align-items: center; }

.vm-map__poi-label {
  font-family: var(--display);
  font-size: var(--fs-label-sm);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--burgundy);
  background: rgba(var(--paper-rgb), 0.85);
  padding: 3px 8px;
  margin-bottom: 6px;
  white-space: nowrap;
  box-shadow: 0 1px 4px rgba(var(--ink-rgb), 0.12);
}

/* Contrôles MapLibre alignés sur la charte (coins nets, teinte ocre) */
.vm-map .maplibregl-ctrl-group { border-radius: 0; box-shadow: 0 2px 8px rgba(var(--ink-rgb), 0.18); }

.vm-map .maplibregl-ctrl-group button + button { border-top-color: var(--rule-soft); }

.vm-map .maplibregl-map { font-family: var(--serif); }

.vm-map .maplibregl-ctrl-attrib { font-size: var(--fs-micro); }

.vm-map__pin {
  width: 56px; height: 56px;
  border-radius: 50% 50% 50% 0;
  background: var(--burgundy);
  transform: rotate(-45deg);
  margin: 0 auto 20px;
  box-shadow: 0 12px 24px rgba(var(--black-rgb), 0.2);
  position: relative;
}

.vm-map__pin-dot {
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%) rotate(45deg);
  width: 20px; height: 20px; border-radius: 50%;
  background: var(--ochre);
}

.vm-map__name { font-size: var(--fs-title-xl); color: var(--burgundy); }

.vm-map__loc { color: var(--ochre-deep); margin-top: 8px; }

.vm-map__caption {
  font-family: var(--serif);
  font-style: italic;
  font-size: var(--fs-fine);
  color: var(--ink-soft);
  margin-top: 16px;
  text-align: center;
}

.vm-map-block:has(.vm-map-block__title) { padding-top: 0; }
