/* Carte — modernisation de l'interface (17/10/2026) : pictogrammes SVG à la place des émojis, fenêtre de lieu en sections,
   pastilles de catégories toutes visibles. Chargé après liberta-map.css ; couleurs de la charte Almanach (forêt, terre cuite, or, papier). */
:root { --lbt-forest:#1f5135; --lbt-terra:#a8492b; --lbt-gold:#b9842b; --lbt-paper:#fbf7ec; --lbt-line:#ece6d4; --lbt-ink:#1f2937; --lbt-soft:#475569; }

.lbt-ico { display:inline-block; flex:none; vertical-align:-3px; }

/* ── Pins : pictogramme blanc dans la pastille de couleur ── */
.liberta-pin-inner { display:flex; align-items:center; justify-content:center; width:100%; height:100%; color:inherit; font-size:0; }
.liberta-pin-service .liberta-pin-inner { display:flex; }
.lm-cat-extra { display:flex; align-items:center; justify-content:center; font-size:0; line-height:0; color:#334155; }
.lm-cat-extra .lbt-ico { width:11px; height:11px; vertical-align:0; stroke-width:2.1; }
.lm-cat-extra-more { font-size:8px; }
.lm-marker-badge .lbt-ico { width:11px; height:11px; vertical-align:-2px; stroke-width:2.2; }
.lm-events-badge, .lm-sp-badge-pro, .lm-sp-badge-particulier { display:inline-flex; align-items:center; justify-content:center; }

/* ── Filtres de catégories ── */
.lm-filter-emoji .lbt-ico { width:13px; height:13px; vertical-align:0; stroke-width:2; }
.liberta-filter:not(.lm-filter-colored) .lm-filter-emoji .lbt-ico { width:16px; height:16px; }
.lm-sub-ctx-emoji .lbt-ico, .lm-drawer-chip .lbt-ico { width:15px; height:15px; vertical-align:-3px; }
.lm-drawer-sp-head .lbt-ico { vertical-align:-2px; color:var(--lbt-terra); }

/* ── Fenêtre d'un lieu ── */
.lbt-pop { color:var(--lbt-ink); }
.lbt-pop .liberta-popup-media { position:relative; height:104px; }
.lbt-pop-statusbar { position:absolute; left:10px; bottom:9px; }
.lbt-pop-statusbar .liberta-popup-status { margin:0; background:rgba(255,255,255,.96); box-shadow:0 1px 4px rgba(0,0,0,.18); padding:3px 10px; border-radius:999px; font-size:12px; font-weight:700; }
.lbt-pop .liberta-popup-body { padding:13px 16px 16px; }
.lbt-pop .liberta-popup-title-row h4 { font-family:'Fraunces', Georgia, serif; font-size:18px; line-height:1.2; color:var(--lbt-forest); margin:0; }
.lm-trust-badge { display:inline-flex; align-items:center; justify-content:center; color:var(--lbt-forest); background:none; width:auto; height:auto; }

.lbt-chips { display:flex; flex-wrap:wrap; gap:5px; margin:9px 0 8px; }
.lbt-chip { display:inline-flex; align-items:center; gap:5px; padding:3px 9px 3px 7px; border-radius:999px; font-size:12px; line-height:1.3; font-weight:600; color:var(--lbt-ink);
    background:color-mix(in srgb, var(--cc, #64748b) 11%, #fff); border:1px solid color-mix(in srgb, var(--cc, #64748b) 38%, #fff); }
.lbt-chip .lbt-ico { width:14px; height:14px; color:var(--cc, #64748b); vertical-align:0; }
.lbt-pop .liberta-popup-subcats { font-size:12px; color:var(--lbt-soft); margin:0 0 6px; }
.lbt-pop .liberta-popup-excerpt { font-size:13.5px; line-height:1.5; color:var(--lbt-soft); margin:6px 0 8px; }
.lbt-pop .liberta-popup-journal { display:flex; gap:6px; align-items:flex-start; font-size:12.5px; color:var(--lbt-soft); }
.lbt-pop .liberta-popup-journal .lbt-ico { margin-top:2px; color:var(--lbt-gold); }
.lbt-pop .liberta-popup-meta { display:flex; align-items:flex-start; gap:6px; margin:6px 0 10px; color:var(--lbt-soft); font-size:13px; }
.lbt-pop .liberta-popup-meta .lbt-ico { margin-top:1px; color:var(--lbt-terra); }

.lbt-pop .liberta-popup-utility { display:flex; align-items:center; flex-wrap:wrap; gap:6px 12px; padding:9px 0; margin:0; border-top:1px solid var(--lbt-line); }
.lbt-pop .liberta-pay-icons { display:inline-flex; flex-wrap:wrap; gap:5px; font-size:0; letter-spacing:0; }
.lbt-pay { display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; border-radius:8px; background:#eef4ec; color:var(--lbt-forest); cursor:help; }
.lbt-pay .lbt-ico { vertical-align:0; }
.lbt-pop .liberta-popup-stars { display:inline-flex; align-items:center; gap:4px; font-size:13px; font-weight:700; color:var(--lbt-gold); }
.lbt-pop .liberta-popup-stars span { color:var(--lbt-soft); font-weight:500; }

.lbt-pop .liberta-popup-tags { display:flex; flex-wrap:wrap; gap:6px; margin:8px 0; }
.lbt-tag { display:inline-flex; align-items:center; gap:6px; padding:4px 10px; border-radius:8px; background:#f6f1e3; color:#5b4a1f; font-size:12.5px; line-height:1.3; }
.lbt-tag .lbt-ico { color:var(--lbt-terra); vertical-align:0; }

.lbt-pop .liberta-popup-permanences, .lbt-pop .liberta-popup-upcoming-events { margin:8px 0; padding-top:9px; border-top:1px solid var(--lbt-line); }
.lbt-pop .liberta-popup-permanences strong, .lbt-pop .liberta-popup-upcoming-events strong { display:flex; align-items:center; gap:6px; margin-bottom:5px; font-size:12px; letter-spacing:.05em; text-transform:uppercase; color:var(--lbt-forest); }
.lbt-pop .liberta-popup-permanences .lbt-ico, .lbt-pop .liberta-popup-upcoming-events .lbt-ico { color:var(--lbt-terra); vertical-align:0; }
.lbt-pop .liberta-popup-permanences span { display:block; font-size:13px; color:var(--lbt-soft); padding:2px 0; }
.lbt-pop .lm-upcoming-event-item { display:flex; align-items:center; gap:9px; padding:5px 0; font-size:13px; color:var(--lbt-ink); text-decoration:none; border:0; }
.lbt-pop .lm-upcoming-event-item:hover { text-decoration:underline; }
.lbt-pop .lm-upcoming-event-item span { flex:none; min-width:48px; text-align:center; background:var(--lbt-forest); color:#fff; border-radius:6px; padding:2px 6px; font-size:11.5px; font-weight:700; }
.lbt-pop .lm-upcoming-event-more { display:inline-block; margin-top:3px; font-size:12.5px; color:var(--lbt-forest); font-weight:600; }
.lbt-pop .liberta-popup-flash-offer { display:flex; align-items:center; justify-content:space-between; gap:8px; margin:8px 0; padding:8px 10px; border-radius:10px; background:#fff3e6; border:1px solid #f3c795; color:#7a3b12; font-size:13px; }
.lbt-pop .liberta-popup-flash-offer .lbt-ico { color:#d9480f; vertical-align:-3px; }

.lbt-pop .liberta-popup-actions { display:flex; flex-direction:column; gap:7px; margin-top:12px; }
.lbt-pop .liberta-popup-btn, .lbt-pop .liberta-popup-btn-secondary { display:flex; align-items:center; justify-content:center; gap:8px; width:100%; box-sizing:border-box; padding:10px 14px; border-radius:10px; font-weight:700; font-size:14px; text-decoration:none; text-align:center; }
.lbt-pop .liberta-popup-btn .lbt-ico, .lbt-pop .liberta-popup-btn-secondary .lbt-ico { vertical-align:0; }
.lbt-pop .liberta-popup-btn-secondary { background:#fff; color:var(--lbt-forest); border:1.5px solid color-mix(in srgb, var(--lbt-forest) 35%, #fff); }

/* ── Fenêtres événement et point de service ── */
.lm-ev-tag { display:inline-flex; align-items:center; gap:6px; color:var(--lbt-forest); font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; }
.lm-ev-tag .lbt-ico, .lm-ev-popup-date .lbt-ico, .lm-ev-popup-addr .lbt-ico, .lm-ev-popup-rsvp .lbt-ico { color:var(--lbt-terra); vertical-align:-3px; }
.liberta-popup-service-point h4 { display:flex; align-items:center; gap:8px; color:var(--lbt-forest); }
.liberta-popup-service-point .lm-relay-badge { display:inline-flex; align-items:center; gap:6px; }
.liberta-popup-service-point .lm-relay-badge .lbt-ico { color:var(--lbt-terra); vertical-align:0; }

/* ── Passe « icônes en couleur » (17/10/2026, retour : trop pâles et trop petites) ── */
/* Pins : pastille blanche cerclée de la couleur de la catégorie, dessin en couleur au centre */
.liberta-pin { background:#fff !important; border:3px solid var(--lp-color, #3fae5f) !important; box-shadow:0 2px 6px rgba(0,0,0,.28); box-sizing:border-box; }
.liberta-pin-inner { color:inherit; }
.liberta-pin-inner .lbt-ico { width:22px; height:22px; }
.liberta-pin-service { background:#fff !important; border-color:var(--lp-color, #6d4c2f) !important; }
.lm-cat-extra { width:20px; height:20px; border-width:2px; }
.lm-cat-extra .lbt-ico { width:13px; height:13px; }
.lm-marker-badge .lbt-ico { width:12px; height:12px; }

/* Filtres : pastille blanche, dessin en couleur plus grand */
.lm-filter-colored .lm-filter-emoji, .lm-filter-colored.active .lm-filter-emoji { width:28px; height:28px; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.2); }
.lm-filter-emoji .lbt-ico { width:20px; height:20px; }
.liberta-filter:not(.lm-filter-colored) .lm-filter-emoji .lbt-ico { width:22px; height:22px; }
.lm-sub-ctx-emoji .lbt-ico, .lm-drawer-chip .lbt-ico { width:20px; height:20px; }

/* Fenêtre du lieu : plus large, compacte, dessins lisibles */
.leaflet-popup-content { max-width:min(360px, calc(100vw - 80px)); }
.lbt-pop .liberta-popup-media { height:88px; }
.lbt-pop .liberta-popup-body { padding:11px 14px 14px; }
.lbt-chips { gap:5px 6px; margin:7px 0 6px; }
.lbt-chip { padding:3px 10px 3px 5px; gap:6px; font-size:12px; background:#fff; border:1.5px solid color-mix(in srgb, var(--cc, #64748b) 55%, #fff); box-shadow:0 1px 2px rgba(0,0,0,.06); }
.lbt-chip .lbt-ico { width:18px; height:18px; }
.lbt-pop .liberta-popup-excerpt { margin:4px 0 6px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.lbt-pop .liberta-popup-meta { margin:4px 0 8px; }
.lbt-pop .liberta-popup-meta .lbt-ico { width:18px; height:18px; }
.lbt-pop .liberta-popup-utility { padding:7px 0; }
.lbt-pay { width:36px; height:36px; border-radius:10px; background:#fff; border:1.5px solid var(--lbt-line); box-shadow:0 1px 2px rgba(0,0,0,.06); }
.lbt-pay .lbt-ico { width:24px; height:24px; }
.lbt-tag { background:#fff; border:1.5px solid var(--lbt-line); }
.lbt-tag .lbt-ico { width:18px; height:18px; }
.lbt-pop .liberta-popup-permanences, .lbt-pop .liberta-popup-upcoming-events { margin:6px 0; padding-top:7px; }
.lbt-pop .liberta-popup-permanences strong .lbt-ico, .lbt-pop .liberta-popup-upcoming-events strong .lbt-ico { width:18px; height:18px; }
.lbt-pop .lm-upcoming-event-item { padding:3px 0; }
.lbt-pop .liberta-popup-actions { display:flex; flex-direction:row; flex-wrap:wrap; gap:7px; margin-top:10px; }
.lbt-pop .liberta-popup-btn, .lbt-pop .liberta-popup-btn-secondary { flex:1 1 140px; width:auto; padding:9px 12px; }
.lbt-pop .liberta-popup-btn .lbt-ico { width:20px; height:20px; }
.lm-ev-tag .lbt-ico, .lm-ev-popup-date .lbt-ico, .lm-ev-popup-addr .lbt-ico, .lm-ev-popup-rsvp .lbt-ico { width:18px; height:18px; }
.liberta-popup-service-point h4 .lbt-ico { width:24px; height:24px; }

/* Catégories : grille à 2 colonnes, noms sur 2 lignes si besoin — toutes visibles, moitié moins haut */
.lbt-chips { display:grid; grid-template-columns:1fr 1fr; gap:5px 6px; }
.lbt-chip { white-space:normal; line-height:1.15; border-radius:12px; padding:3px 8px 3px 5px; font-size:11.5px; min-width:0; }
.lbt-chip .lbt-ico { flex:none; }

/* ── Fiche de la carte : actions, paiements lisibles, pastilles qui ne débordent jamais (17/10/2026) ── */
.lbt-pop .liberta-popup-actions { display:flex; flex-direction:column; gap:8px; margin-top:12px; }
.lbt-pop .liberta-popup-btn, .lbt-pop .liberta-popup-btn-secondary { flex:none; width:100%; min-height:44px; padding:10px 14px; letter-spacing:0; line-height:1.2; white-space:nowrap; font-family:inherit; }
.lbt-pop .liberta-popup-btn > span, .lbt-pop .liberta-popup-btn-secondary > span { white-space:nowrap; }
.lbt-pop .liberta-popup-btn-shop { background:var(--lbt-forest); color:#fff; }
.lbt-pop .lbt-chips { display:flex; flex-wrap:wrap; gap:6px; }
.lbt-pop .lbt-chip { max-width:100%; min-width:0; white-space:normal; overflow-wrap:anywhere; hyphens:auto; line-height:1.2; }
.lbt-pop .lbt-chip > span { min-width:0; }
.lbt-pop .lbt-paylist { display:flex; flex-wrap:wrap; align-items:center; gap:6px; width:100%; }
.lbt-pop .lbt-paylist-title { flex:0 0 100%; font-size:12px; font-weight:700; color:var(--lbt-soft); text-transform:uppercase; letter-spacing:.04em; }
.lbt-pop .lbt-paychip { display:inline-flex; align-items:center; gap:5px; padding:3px 10px 3px 6px; border-radius:999px; background:#eef4ec; color:var(--lbt-forest); font-size:12.5px; font-weight:600; line-height:1.2; max-width:100%; }
.lbt-pop .lbt-paychip .lbt-ico { width:18px; height:18px; flex:none; vertical-align:0; }

/* ============================================================
   /carte/ sur mobile (≤ 768 px) — mode « application » (22/10/2026)
   Carte plein écran sous l'en-tête du site, un doigt pour la déplacer, page non défilante.
   Barre du bas (Tout / Lieux / Événements · Filtres · Liste), fiche d'un lieu en bas d'écran.
   Bandeau de statistiques, bandeau de lancement, bulle de retours, boutons +/-, badge « deux doigts » retirés.
   Pilotage : liberta-map-mobile.js (--lm-top = bas de l'en-tête du site).
   ============================================================ */
@media (max-width: 768px) {
    html:has(#liberta-map-wrap), html:has(#liberta-map-wrap) body { overflow: hidden; height: 100%; overscroll-behavior: none; }
    #liberta-map-wrap { position: fixed; left: 0; right: 0; bottom: 0; top: var(--lm-top, 117px); z-index: 60; background: #e5e0d8; display: block; overflow: hidden; }
    #liberta-map-wrap .lm-map-frame { position: absolute; inset: 0; border: 0; }
    #liberta-map-wrap #liberta-map { height: 100% !important; min-height: 0; }
    #liberta-map-wrap .lm-carte-header, #liberta-map-wrap .lm-founding,
    #liberta-map-wrap .lm-two-finger-hint, #liberta-map-wrap .lm-two-finger-badge,
    #liberta-map-wrap .leaflet-control-zoom { display: none !important; }
    html:has(#liberta-map-wrap) .la-retour-btn { display: none !important; }

    /* Recherche : fine, flottante */
    #liberta-map-wrap .lm-map-search { top: 10px; left: 10px; right: 10px; }

    /* Barre du bas — au-dessus de la mention OpenStreetMap */
    .lm-fs-bar { position: absolute; left: 10px; right: 10px; bottom: 26px; z-index: 600; display: flex; gap: 8px; align-items: center; pointer-events: none; transition: transform .2s, opacity .2s; }
    .lm-fs-bar > * { pointer-events: auto; order: 0 !important; }
    #liberta-map-wrap.lm-has-panel .lm-fs-bar { transform: translateY(120%); opacity: 0; pointer-events: none; }
    .lm-fs-bar .lm-type-toggle { flex: 1 1 auto; min-width: 0; display: flex; gap: 0; padding: 3px; margin: 0; background: #fff !important; border: 1px solid var(--lbt-line) !important; border-radius: 999px; box-shadow: 0 2px 10px rgba(0,0,0,.2); flex-wrap: nowrap; }
    .lm-fs-bar .lm-type-btn { flex: 1; justify-content: center; padding: 10px 4px; min-height: 44px; font-size: 12.5px; border: 0; background: transparent; color: var(--lbt-forest); white-space: nowrap; opacity: 1; }
    .lm-fs-bar .lm-type-btn.active { background: var(--lbt-forest); color: #fff; }
    .lm-fs-btn { flex: none; min-height: 50px; padding: 0 13px; border-radius: 999px; border: 1px solid var(--lbt-line); background: #fff; color: var(--lbt-forest); font: 700 13px/1 inherit; box-shadow: 0 2px 10px rgba(0,0,0,.2); cursor: pointer; }

    /* Bouton « Ajouter » : pastille ronde au-dessus de la barre */
    #liberta-map-wrap .lm-map-actions { position: absolute; right: 12px; bottom: 92px; z-index: 590; padding: 0; margin: 0; background: none; border: 0; }
    #liberta-map-wrap .lm-add-btn { width: 52px; height: 52px; min-width: 0; padding: 0; border-radius: 50%; justify-content: center; font-size: 0; gap: 0; box-shadow: 0 3px 12px rgba(0,0,0,.3); }
    #liberta-map-wrap .lm-add-btn svg { width: 22px; height: 22px; }

    /* Formulaire d'ajout : plein écran, défilant */
    #liberta-map-wrap #liberta-form-wrap { position: absolute; inset: 0; z-index: 800; overflow: auto; background: #fff; border: 0; border-radius: 0; }

    /* Panneaux du bas : filtres, liste, fiche */
    #liberta-map-wrap .lm-filters-wrap, #liberta-map-wrap #lm-places-list, #lm-sheet {
        position: absolute; left: 0; right: 0; bottom: 0; z-index: 700; margin: 0;
        background: var(--lbt-paper); border: 0; border-radius: 18px 18px 0 0;
        box-shadow: 0 -6px 24px rgba(0,0,0,.28); overflow: auto; overscroll-behavior: contain;
        transform: translateY(105%); visibility: hidden; transition: transform .22s ease, visibility 0s .22s;
    }
    #liberta-map-wrap .lm-filters-wrap { max-height: 72%; padding: 44px 14px 18px; }
    #liberta-map-wrap #lm-places-list { max-height: 72%; padding: 44px 16px 18px; }
    #liberta-map-wrap #lm-places-list > summary { display: none; }
    #liberta-map-wrap #lm-places-list ul { margin: 0; padding: 0; list-style: none; }
    #liberta-map-wrap #lm-places-list li a { display: block; padding: 13px 4px; border-bottom: 1px solid var(--lbt-line); color: var(--lbt-forest); font-weight: 600; text-decoration: none; }
    #liberta-map-wrap .lm-filters-wrap.lm-open, #liberta-map-wrap #lm-places-list.lm-open, #lm-sheet.lm-open { transform: none; visibility: visible; transition: transform .22s ease; }
    .lm-sheet-x { position: absolute; top: 6px; right: 8px; z-index: 3; width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgba(255,255,255,.92); color: var(--lbt-forest); font-size: 18px; cursor: pointer; box-shadow: 0 1px 4px rgba(0,0,0,.2); }

    /* Fiche d'un lieu : compacte, agrandissable */
    #lm-sheet { max-height: 46%; }
    #lm-sheet.lm-sheet-full { max-height: 82%; }
    .lm-sheet-grip { position: sticky; top: 0; z-index: 2; display: block; width: 100%; height: 22px; border: 0; background: var(--lbt-paper); cursor: pointer; padding: 0; }
    .lm-sheet-grip span { display: block; width: 44px; height: 5px; margin: 9px auto 0; border-radius: 3px; background: #b9b09a; }
    #lm-sheet .liberta-popup { width: auto; max-width: none; margin: 0; }
    #lm-sheet .lbt-pop .liberta-popup-media { height: 64px; }
    #lm-sheet.lm-sheet-full .lbt-pop .liberta-popup-media { height: 150px; }
    #lm-sheet .lbt-pop .liberta-popup-body { padding: 10px 16px 18px; }
    #lm-sheet .liberta-popup-title-row { padding-right: 40px; }
    #lm-sheet:not(.lm-sheet-full) :is(.liberta-popup-subcats, .liberta-popup-excerpt, .liberta-popup-journal, .liberta-popup-utility, .liberta-popup-tags, .liberta-popup-permanences, .liberta-popup-upcoming-events) { display: none; }
    #lm-sheet .liberta-popup-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
    #lm-sheet .liberta-popup-actions > a { min-height: 46px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; }
    #lm-sheet .liberta-popup-actions > a:first-child { flex: 1 1 60%; }
}
@media (max-width: 768px) {
    .lm-sheet-grip, .lm-sheet-grip:hover, .lm-sheet-grip:focus, .lm-sheet-grip:active { background: var(--lbt-paper) !important; box-shadow: none !important; border-radius: 0 !important; outline-offset: -3px; }
    /* Fiche compacte : catégories sur une seule rangée défilante, actions toujours visibles en bas */
    #lm-sheet:not(.lm-sheet-full) .lbt-chips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; }
    #lm-sheet:not(.lm-sheet-full) .lbt-chips > * { flex: none; }
    #lm-sheet .liberta-popup-actions { position: sticky; bottom: 0; z-index: 2; margin: 10px -16px -18px; padding: 10px 16px calc(14px + env(safe-area-inset-bottom)); background: var(--lbt-paper); border-top: 1px solid var(--lbt-line); }
}
@media (max-width: 768px) {
    #lm-sheet .liberta-popup-actions > a { width: auto; margin: 0; }
    #lm-sheet .liberta-popup-actions > a:first-child { flex: 2 1 55%; }
    #lm-sheet .liberta-popup-actions > a:not(:first-child) { flex: 1 1 30%; }
}
@media (max-width: 768px) {
    #lm-sheet .liberta-popup-actions > a { flex: 1 1 auto !important; padding-left: 10px; padding-right: 10px; }
    body.lbt-page-carte .lm-fs-bar .lm-type-toggle { background: #fff !important; border: 1px solid var(--lbt-line) !important; }
    body.lbt-page-carte .lm-fs-bar .lm-type-btn { color: var(--lbt-forest) !important; background: transparent !important; border: 0 !important; }
    body.lbt-page-carte .lm-fs-bar .lm-type-btn.active { background: var(--lbt-forest) !important; color: #fff !important; }
    body.lbt-page-carte #liberta-map-wrap .lm-filters-wrap { background: var(--lbt-paper) !important; }
}
@media (max-width: 768px) {
    #lm-sheet .lbt-pop .liberta-popup-actions { flex-direction: row; flex-wrap: wrap; }
    #lm-sheet .lbt-pop .liberta-popup-btn, #lm-sheet .lbt-pop .liberta-popup-btn-secondary { width: auto; flex: 1 1 auto; }
}
