/* ══════════════════════════════════════════
   France Map – Thème visuel
   Couleurs · Typographies · Ombres
   Les fontes sont chargées par le site hôte.
   ══════════════════════════════════════════ */

/* ── Tokens ── */
.fm {
  --fm-white:  #ffffff;   /* fonds de contenu (sheet, détail, items) */
  --fm-light:  #efede8;   /* fonds de panneau (liste, search, hover) */
  --fm-dark:   #0d336e;   /* bleu marine — texte, icônes, nav        */
  --fm-active: #ef5f0c;   /* orange — boutons, accent, focus, actif  */

  --fm-border:    #e0e0e0;
  --fm-shadow:    0 4px 20px rgba(0,0,0,0.12);
  --fm-radius-lg: 16px;

  font-family: 'Atkinson Hyperlegible', Helvetica, Arial, sans-serif;
  color: var(--fm-dark);
}

/* ══════════════════════════════════════════
   ZONE CARTE
   ══════════════════════════════════════════ */
.fm-locate-btn {
  background: var(--fm-white);
  border: 2px solid rgba(13,51,110,0.2);
  color: var(--fm-dark);
}
.fm-locate-btn:hover  { color: var(--fm-active); background: var(--fm-light); }
.fm-locate-btn:active { background: var(--fm-light); }

.fm-fab {
  background: var(--fm-active);
  color: var(--fm-white);
  box-shadow: 0 4px 18px rgba(239,95,12,0.45);
}

/* ══════════════════════════════════════════
   OVERLAY
   ══════════════════════════════════════════ */
.fm-overlay { background: rgba(0,0,0,0.35); }

/* ══════════════════════════════════════════
   BOTTOM SHEET
   ══════════════════════════════════════════ */
.fm-sheet       { background: var(--fm-white); box-shadow: var(--fm-shadow); }
.fm-sheet__handle { background: #ddd; }
.fm-sheet__close  { background: var(--fm-light); color: var(--fm-dark); }

/* ══════════════════════════════════════════
   ZONE LISTE
   ══════════════════════════════════════════ */
.fm-list-panel  { background: var(--fm-light); }
.fm-list        { background: var(--fm-white); }
.fm-list-header { background: var(--fm-white); }
.fm-back-btn    { color: var(--fm-active); }

.fm-search {
  background: var(--fm-light);
  border-color: var(--fm-border);
}
.fm-search:focus {
  border-color: var(--fm-active);
  background: var(--fm-white);
}
.fm-search-icon { opacity: 0.5; }
.fm-count       { color: var(--fm-dark); opacity: 0.5; }

.fm-list__item { background: var(--fm-white); }
.fm-list__item:hover,
.fm-list__item:active    { background: var(--fm-light); }
.fm-list__item.is-active              { background: var(--fm-active); color: var(--fm-white); }
.fm-list__item.is-active .fm-list__meta  { color: var(--fm-white); opacity: 0.8; }
.fm-list__item.is-active .fm-list__arrow { color: var(--fm-white); }

.fm-list__meta  { color: var(--fm-dark); opacity: 0.5; }
.fm-list__arrow { color: var(--fm-active); }

.fm-list-detail       { background: var(--fm-white); }
.fm-list-detail__back { color: var(--fm-active); }

/* ══════════════════════════════════════════
   ZONE DÉTAIL
   ══════════════════════════════════════════ */
.fm-detail-panel       { background: var(--fm-white); }
.fm-detail-empty       { color: var(--fm-dark); opacity: 0.3; }
.fm-detail-empty__icon { opacity: 0.3; width: 25px; height: auto; display: block; }

.fm-detail__name    { font-family: 'DM Serif Text', Georgia, serif; }
.fm-detail__city    { color: var(--fm-active); }
.fm-detail__address { color: var(--fm-dark); opacity: 0.6; }

.fm-detail__link {
  background: var(--fm-light);
  color: var(--fm-active);
}

/* ══════════════════════════════════════════
   TAGS SERVICES
   ══════════════════════════════════════════ */
.fm-service-tag {
  display: inline-block;
  background: var(--fm-active);
  color: var(--fm-white);
  font-size: 0.78rem;
  font-weight: 700;
  line-height: 1;
  padding: 6px 12px;
  border-radius: 999px;
}
