/**
 * La carte interactive — charte.
 *
 * Elle vit dans le plugin, et non dans le thème, parce que le bloc doit
 * pouvoir être posé n'importe où, y compris sur une page que le thème ne
 * connaît pas. Chaque variable porte donc sa valeur de repli : le bloc garde
 * son allure même hors du site.
 *
 * Le site est conçu en clair — le thème neutralise l'affichage sombre, et
 * cette feuille ne le réveille pas.
 */

.ec-carte{
  position:relative; display:flex; flex-direction:column;
  border:1px solid var(--line,#e5e5e5); border-radius:18px; overflow:hidden;
  background:var(--paper-alt,#f5f5f5); color:var(--ink,#111);
}

/* Le cadre : le plan dessiné, la carte, le voile. Tous trois superposés. */
.ec-carte-cadre{ position:relative; min-height:320px; flex:1 1 auto; }
@media (min-width:861px){ .ec-carte-cadre{ min-height:360px; } }

.ec-carte-toile{ position:absolute; inset:0; width:100%; height:100%; }
.ec-carte-zone{ position:absolute; inset:0; }
.ec-carte-zone[hidden]{ display:none !important; }
/* La carte Google est une iframe posée par le script : elle n'a pas de
   dimensions propres et resterait à 300×150, la taille par défaut d'une
   iframe sans attributs. */
.ec-carte-zone iframe{ display:block; width:100%; height:100%; border:0; }

/* Le voile : l'épingle et la ligne d'attente, le temps que la carte arrive.
   Il part dès qu'elle est vivante — la classe est posée par le script, pas
   par une transition de visibilité : une carte sous un voile translucide,
   c'est une carte qu'on ne lit pas. Sans JavaScript, il reste, et le visiteur
   a quand même l'adresse et l'itinéraire juste en dessous. */
.ec-carte-voile{
  position:absolute; inset:0; z-index:2; display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:.9rem; text-align:center;
  padding:1.6rem; background:rgba(245,245,245,.72);
}
.ec-carte-vive .ec-carte-voile{ display:none; }

.ec-carte-pin{
  width:2.6rem; height:2.6rem; border-radius:999px 999px 999px 4px;
  background:var(--accent,#fdc300); rotate:-45deg; display:flex;
  align-items:center; justify-content:center;
  box-shadow:0 8px 18px -8px rgba(0,0,0,.5);
}
.ec-carte-pin svg{
  rotate:45deg; width:1.3rem; height:1.3rem; stroke:#111; fill:none;
  stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round;
}

.ec-carte-mot{
  margin:0; max-width:30rem; font-size:.84rem; line-height:1.6;
  color:var(--ink-soft,#4a4a4a);
}

/* Le bas : l'adresse et l'itinéraire. Il est **sous** la carte et non
   par-dessus : le crédit OpenStreetMap se tient dans le coin de la carte, et
   un bandeau flottant le recouvrirait — or ce crédit est la condition de
   l'usage des fonds de carte. */
.ec-carte-bas{
  position:relative; z-index:3; display:flex; align-items:center; gap:.9rem;
  flex-wrap:wrap; padding:.9rem 1.1rem;
  background:var(--card,#ffffff); border-top:1px solid var(--line,#e5e5e5);
}
.ec-carte-adresse{ margin:0; }
.ec-carte-adresse b{ font-size:.88rem; }
.ec-carte-adresse span{
  display:block; font-size:.78rem; color:var(--ink-soft,#4a4a4a);
}
.ec-carte-aller{
  margin-left:auto; font-size:.8rem; font-weight:700; white-space:nowrap;
  background:var(--accent,#fdc300); color:#111; text-decoration:none;
  padding:.5rem .9rem; border-radius:999px;
}
.ec-carte-aller:hover{ background:var(--ec-accent-f,#e3ae00); color:#111; }

/* Le repère, une fois la carte vivante. `divIcon` donne un conteneur nu :
   c'est ici qu'il prend la forme de l'épingle du site. */
.ec-carte-repere{ background:none; border:0; }
.ec-carte-repere svg{
  width:2.1rem; height:2.1rem; stroke:#111; fill:var(--accent,#fdc300);
  stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round;
  filter:drop-shadow(0 6px 10px rgba(0,0,0,.35));
}

/* Leaflet pose sa propre charte ; on reprend seulement ce qui jure avec le
   site — les coins arrondis et la police des bulles. */
.ec-carte .leaflet-container{ font-family:inherit; background:var(--paper-alt,#f5f5f5); }
.ec-carte .leaflet-popup-content{ font-size:.85rem; line-height:1.55; }
.ec-carte .leaflet-popup-content a{ color:var(--ink,#111); font-weight:700; }
.ec-carte .leaflet-control-attribution{ font-size:.66rem; }
