/* =======================================================================
   CPTS · Annuaire : cartographie plein écran
   La carte occupe la fenêtre sous l'en-tête (hauteur calculée par le script
   dans --carto-hauteur). Volet de filtres et de résultats à gauche, repliable.
   Mêmes couleurs, pictogrammes et cartes de liste que l'annuaire.
   ==================================================================== */
.cpts-carto{position:relative;display:flex;height:var(--carto-hauteur,calc(100vh - 140px));min-height:480px;overflow:hidden;background:var(--an-bg,#FBF9FC);border-top:1px solid var(--an-border);}
.cpts-carto [hidden]{display:none!important;}

/* ---- Volet ---- */
.cpts-carto .carto-volet{flex:none;width:410px;display:flex;flex-direction:column;background:#fff;border-right:1px solid var(--an-border);transition:margin-left .25s ease;z-index:2;}
.cpts-carto.carto--volet-ferme .carto-volet{margin-left:-410px;}
.cpts-carto .carto-volet-tete{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 20px;border-bottom:1px solid var(--an-border);}
.cpts-carto .carto-volet-titre{display:flex;align-items:center;gap:9px;font-weight:700;font-size:15px;color:var(--an-ink);}
.cpts-carto .carto-volet-titre svg{width:17px;height:17px;color:var(--an-violet);}
.cpts-carto .carto-fermer{display:inline-flex;align-items:center;gap:6px;border:0;background:none;font:inherit;font-size:14px;font-weight:700;color:var(--an-ink2);cursor:pointer;padding:6px 4px;}
.cpts-carto .carto-fermer span{font-size:20px;line-height:1;}
.cpts-carto .carto-filtres{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;padding:16px 20px;border-bottom:1px solid var(--an-border);background:#FBF9FC;}
.cpts-carto .carto-champ{display:flex;flex-direction:column;gap:5px;margin:0;min-width:0;}
.cpts-carto .carto-champ--recherche{grid-column:1 / -1;}
.cpts-carto .carto-champ>span{font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--an-muted);}
.cpts-carto .carto-champ input,.cpts-carto .carto-champ select{font:inherit;font-size:14.5px;height:42px;padding:0 12px;border:1.5px solid var(--an-border);border-radius:12px;background:#fff;color:var(--an-ink);width:100%;box-sizing:border-box;}
.cpts-carto .carto-champ input:focus,.cpts-carto .carto-champ select:focus{outline:none;border-color:var(--an-violet);box-shadow:0 0 0 3px color-mix(in srgb,var(--an-violet) 18%,transparent);}
.cpts-carto .carto-ligne{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:10px;}
.cpts-carto .carto-compte{margin:0;font-size:13.5px;font-weight:700;color:var(--an-ink2);}
.cpts-carto .carto-reinit{border:0;background:none;font:inherit;font-size:13.5px;font-weight:700;color:#2E5BA8;text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:4px 0;}
.cpts-carto .carto-liste{flex:1;overflow-y:auto;overscroll-behavior:contain;}
.cpts-carto .carto-item{padding:14px 20px;border-bottom:1px solid var(--an-border);cursor:pointer;display:block;}
.cpts-carto .carto-item:hover,.cpts-carto .carto-item.active{background:#FAF6FE;}
.cpts-carto .carto-item .an-tete{border-bottom:0;padding-bottom:4px;margin-bottom:2px;}

/* ---- Carte ---- */
.cpts-carto .carto-carte{position:relative;flex:1;min-width:0;z-index:1;}
.cpts-carto .carto-carte .leaflet-container{width:100%;height:100%;font-family:inherit;}
.cpts-carto .carto-carte>.map-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--an-muted);}
.cpts-carto .leaflet-container{position:absolute;inset:0;}
.cpts-carto .carto-pastille{display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--an-violet,#7E2E9E);color:#fff;font-weight:800;font-size:14px;border:3px solid #fff;box-shadow:0 0 0 4px color-mix(in srgb,var(--an-violet,#7E2E9E) 25%,transparent),0 6px 14px -4px rgba(46,16,56,.5);cursor:pointer;}
.cpts-carto .an-bulle-prof{font-size:11.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--pc,var(--an-violet));}
.cpts-carto .carto-groupe ul{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:10px;}
.cpts-carto .carto-groupe li{display:flex;flex-direction:column;gap:1px;padding-top:8px;border-top:1px solid var(--an-border);}
.cpts-carto .carto-groupe b{color:var(--an-ink);}

/* ---- Boutons posés sur la carte ---- */
.cpts-carto .carto-ouvrir,.cpts-carto .carto-annuaire{position:absolute;z-index:3;display:inline-flex;align-items:center;gap:8px;padding:12px 18px;border-radius:999px;border:0;font:inherit;font-size:14.5px;font-weight:700;box-shadow:0 10px 24px -10px rgba(46,16,56,.6);cursor:pointer;text-decoration:none;}
.cpts-carto .carto-ouvrir svg,.cpts-carto .carto-annuaire svg{width:17px;height:17px;}
.cpts-carto .carto-ouvrir{left:18px;top:18px;background:#fff;color:var(--an-ink);display:none;}
.cpts-carto.carto--volet-ferme .carto-ouvrir{display:inline-flex;}
/* En haut à droite, à gauche du zoom : en bas, le bouton passait sous « Gérer le consentement »
   ou sous un bouton « Haut de page » (Canal Garonne, 20/10/2026). */
.cpts-carto .carto-annuaire{right:64px;top:14px;background:var(--an-ink,#2A1730);color:#fff;}
.cpts-carto .carto-annuaire:hover{color:#fff;filter:brightness(1.2);}
.cpts-carto :focus-visible{outline:2px solid var(--an-violet);outline-offset:2px;}

/* ---- Téléphone : la carte en plein écran, le volet monte depuis le bas ---- */
@media (max-width:760px){
  .cpts-carto .carto-volet{position:absolute;left:0;right:0;bottom:0;width:auto;height:78%;margin:0!important;border-right:0;border-radius:20px 20px 0 0;box-shadow:0 -12px 30px -12px rgba(46,16,56,.45);transition:transform .25s ease;}
  .cpts-carto.carto--volet-ferme .carto-volet{transform:translateY(105%);}
  .cpts-carto .carto-ouvrir{left:50%;top:auto;bottom:24px;transform:translateX(-50%);background:var(--an-violet,#7E2E9E);color:#fff;}
  .cpts-carto .carto-annuaire{top:14px;bottom:auto;right:60px;padding:10px 14px;font-size:13.5px;}
  .cpts-carto .carto-filtres{grid-template-columns:1fr;}
}
@media (prefers-reduced-motion:reduce){.cpts-carto .carto-volet{transition:none;}}
