/* =======================================================================
   CPTS · Annuaire · ce que le module ajoute aux règles de la maquette
   (annuaire-maquette.css est extrait mécaniquement : ne pas le modifier).
   ==================================================================== */

/* Ordre des blocs : choix de la vue, puis recherche, puis résultats (la maquette plaçait
   la recherche en premier, puis une pastille « RDV en ligne » et un compteur, retirés).
   La recherche reste visible quand la liste défile : avec trois fois plus de fiches,
   on filtre sans remonter. --cpts-haut est la hauteur de l'en-tête fixe du thème. */
.cpts-an .dir-search{position:sticky;top:calc(var(--cpts-haut,0px) + 10px);z-index:20;margin-bottom:22px;background:#fff;}
@media (max-width:700px){
  .cpts-an .dir-search{top:calc(var(--cpts-haut,0px) + 6px);padding:8px 16px 10px;gap:6px 16px;}
  .cpts-an .dir-search .ds-main input{padding:6px 0;}
}

/* Un professionnel écarté par un filtre disparaît des trois vues. */
.cpts-an .an-pro[hidden]{display:none !important;}

/* Sans JavaScript : la liste complète, sans carte ni tableau. */
.cpts-an:not(.cpts-an--js) .view-switch,
.cpts-an:not(.cpts-an--js) .view-panel[data-vue="carte"],
.cpts-an:not(.cpts-an--js) .dir-search,
.cpts-an:not(.cpts-an--js) .dir-chips .chip{display:none;}
.cpts-an:not(.cpts-an--js) .view-panel[data-vue="liste"]{display:block;}

/* Menus déroulants à pictogrammes : même allure que le <select> de la maquette, liste dessinée en plus. */
.cpts-an .ds-sel{position:relative;}
.cpts-an .ds-sel select[hidden]{display:none;}
.cpts-an .an-menu-bouton{display:flex;align-items:center;gap:8px;width:100%;min-height:26px;padding:0 22px 0 0;border:0;background:transparent url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path d='M1 1l4 4 4-4' stroke='%237E2E9E' stroke-width='1.6' fill='none' stroke-linecap='round'/></svg>") no-repeat right 2px center;font-size:15px;font-weight:700;line-height:1.5;color:var(--an-ink);text-align:left;white-space:nowrap;}
.cpts-an .an-menu-bouton>span:last-child{overflow:hidden;text-overflow:ellipsis;}
.cpts-an .an-menu .prof-av{width:24px;height:24px;border-radius:8px;}
.cpts-an .an-menu-toutes{background:transparent;}
.cpts-an .an-menu-liste{position:absolute;z-index:30;top:calc(100% + 12px);left:-14px;min-width:calc(100% + 28px);max-height:340px;overflow-y:auto;margin:0;padding:8px;list-style:none;background:#fff;border:1px solid var(--an-border);border-radius:16px;box-shadow:0 22px 44px -22px rgba(46,16,56,.55);}
.cpts-an .an-menu-liste[hidden]{display:none;}
.cpts-an .an-menu-liste li{display:flex;align-items:center;gap:10px;margin:0;padding:9px 12px;border-radius:10px;font-size:14.5px;font-weight:600;color:var(--an-ink2);white-space:nowrap;cursor:pointer;}
.cpts-an .an-menu-liste li:hover,.cpts-an .an-menu-liste li:focus{background:var(--an-violet-soft);color:var(--an-violet);outline:none;}
.cpts-an .an-menu-liste li[aria-selected="true"]{color:var(--an-violet);font-weight:700;}
@media (max-width:700px){
  .cpts-an .an-menu-liste{left:0;min-width:100%;}
}

/* Cadre de la carte (le #map de la maquette). */
.cpts-an .an-carte{position:relative;overflow:hidden;background:#F8F4FB;}
.cpts-an .an-carte-attente{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;color:var(--an-muted);background:#F8F4FB;}
.cpts-an .an-carte img{max-width:none;}

/* Ligne de la liste sélectionnée sur la carte. */
.cpts-an .map-item{cursor:pointer;}
.cpts-an .map-item.active{background:var(--an-violet-soft);}

/* Repères : la pastille numérotée de la liste, posée sur la carte. */
.an-marqueur-boite{background:none;border:0;}
.cpts-an .an-marqueur{width:30px;height:30px;border-radius:50%;background:var(--an-violet);color:#fff;font-size:12.5px;font-weight:700;line-height:1;display:flex;align-items:center;justify-content:center;border:2px solid #fff;box-shadow:0 4px 10px -3px rgba(46,16,56,.55);cursor:pointer;}
.cpts-an .an-bulle{display:flex;flex-direction:column;gap:3px;font-family:var(--an-sans);font-size:13.5px;line-height:1.4;color:var(--an-ink2);min-width:190px;}
.cpts-an .an-bulle strong{font-family:var(--an-disp);font-size:15.5px;color:var(--an-ink);}
.cpts-an .an-bulle a{font-weight:700;color:var(--an-violet);}
.cpts-an .leaflet-popup-content-wrapper,.cpts-an .mapboxgl-popup-content{border-radius:14px;box-shadow:0 14px 30px -14px rgba(46,16,56,.5);}
.cpts-an .mapboxgl-popup-content{padding:14px 30px 14px 16px;}

/* Étiquette de secteur : se distingue des spécialités. */
.cpts-an .pc-tags .an-secteur{background:var(--an-violet-soft);border-color:transparent;color:var(--an-violet);}

/* Fiche détaillée (absente de la maquette) : la carte de la vue liste, en fenêtre. */
.cpts-an .an-fiche{border:0;padding:0;border-radius:22px;width:min(520px,calc(100vw - 32px));background:#fff;color:var(--an-ink);box-shadow:0 30px 60px -20px rgba(46,16,56,.55);}
.cpts-an .an-fiche::backdrop{background:rgba(30,12,36,.42);}
.cpts-an .an-fiche .pro-card{position:relative;padding:26px 26px 22px;display:flex;flex-direction:column;}
.cpts-an .an-fiche-fermer{position:absolute;top:14px;right:14px;width:38px;height:38px;border-radius:12px;border:1px solid var(--an-border);background:#fff;font-size:22px;line-height:1;color:var(--an-ink2);}
.cpts-an .an-fiche .pc-head{padding-right:44px;}
.cpts-an .an-fiche .mi-contact a{color:var(--an-violet);font-weight:600;word-break:break-word;}
.cpts-an .an-prive{display:flex;flex-direction:column;gap:4px;margin:0 0 16px;padding:12px 14px;border-radius:14px;background:#F3EEF7;font-size:14px;}
.cpts-an .an-prive strong{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--an-ink2);}
.cpts-an .an-prive a{font-weight:700;color:var(--an-ink);}

.cpts-an :focus-visible{outline:2px solid var(--an-violet);outline-offset:2px;}

/* En-tête des cartes et des lignes : pictogramme plein, puis la profession en surtitre et le nom
   dans le même bloc, un seul trait dessous (choix de Marie, 14/10/2026). */
.cpts-an .an-tete{display:flex;align-items:center;gap:14px;padding-bottom:14px;margin-bottom:12px;border-bottom:1px solid var(--an-border);}
.cpts-an .an-tete .prof-av{width:50px;height:50px;border-radius:50%;background:var(--pc);color:#fff;}
.cpts-an .an-tete .prof-av svg{width:56%;height:56%;}
.cpts-an .an-tete-texte{display:flex;flex-direction:column;gap:3px;min-width:0;}
.cpts-an .an-tete-prof{font-size:12.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;line-height:1.25;}
.cpts-an .an-tete .pc-name{font-size:19px;line-height:1.2;margin:0;}
.cpts-an .an-tete .mi-name{display:block;font-size:16px;line-height:1.25;margin:0;}
.cpts-an .map-item .an-tete{padding-bottom:10px;margin-bottom:8px;}
.cpts-an .map-item .an-tete .prof-av{width:42px;height:42px;}
.cpts-an .pro-card .an-tete+.pc-contact{border-top:0;padding-top:2px;}

/* Repères de la carte : le pictogramme de la profession, dans sa couleur, à la place du numéro. */
.cpts-an .an-marqueur{width:34px;height:34px;background:var(--pc,var(--an-violet));}
.cpts-an .an-marqueur svg{width:18px;height:18px;}

/* Téléphone et « Prendre RDV » sur la même ligne (cartes, liste, bulle, fiche). */
.cpts-an .an-tel-rdv{align-items:center;flex-wrap:wrap;gap:6px 10px;}
.cpts-an .an-tel-rdv svg{margin-top:0;}
.cpts-an .an-bulle-tel-rdv{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;margin-top:4px;}
.cpts-an .an-bulle .mi-rdv{color:var(--an-fuchsia-hi);}
.cpts-an .an-bulle .mi-rdv:hover{color:#fff;}
.cpts-an .screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;}

/* Bouton « Cartographie » au-dessus de la recherche (modèle Nougaro, demande de Marie, 14/10/2026). */
.cpts-an .an-haut{display:flex;justify-content:flex-end;margin:0 0 16px;}
.cpts-an .an-bouton-carto{display:inline-flex;align-items:center;gap:9px;padding:12px 22px;border-radius:999px;background:var(--an-ink,#2A1730);color:#fff;font-size:15px;font-weight:700;text-decoration:none;box-shadow:0 10px 22px -12px rgba(46,16,56,.7);transition:filter .16s;}
.cpts-an .an-bouton-carto:hover{color:#fff;filter:brightness(1.25);}
.cpts-an .an-bouton-carto svg{width:18px;height:18px;}
/* Vue liste : les encarts blancs sur une zone violet très clair, d'un bord à l'autre de l'écran. */
/* Fond de page blanc, fiches en violet clair (demande de Marie, 19/10/2026). */
.cpts-an .view-panel[data-vue="liste"]{--an-fond-liste:#fff;margin-top:28px;padding:44px 0 56px;background:var(--an-fond-liste);box-shadow:0 0 0 100vmax var(--an-fond-liste);clip-path:inset(0 -100vmax);}
.cpts-an .view-panel[data-vue="liste"] .pro-card{background:var(--cpts-violet-soft,#F8F4FB);border-color:#EADCF2;}

/* Téléphone et « Prendre RDV » : petits boutons (demandes de Marie, 15/10/2026). Le numéro en bouton clair (fond blanc,
   texte violet, comme « Aperçu »), le rendez-vous en bouton plein. Liste, fiche, bulle de la carte et cartographie.
   Sélecteurs renforcés : les styles des bulles et des liens de l'annuaire ne doivent pas les recolorer. */
.an-tel-rdv,.an-bulle-tel-rdv{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;}
a.an-btn.an-btn{display:inline-flex;align-items:center;gap:6px;margin:0;padding:6px 12px;border-radius:999px;background:var(--cpts-violet,#7E2E9E);border:1.5px solid var(--cpts-violet,#7E2E9E);color:#fff;font-size:13px;font-weight:700;line-height:1.3;text-decoration:none;white-space:nowrap;transition:background .16s,border-color .16s,color .16s;}
a.an-btn.an-btn:hover,a.an-btn.an-btn:focus-visible{background:var(--cpts-fonce,#4A1E63);border-color:var(--cpts-fonce,#4A1E63);color:#fff;}
/* Téléphone : bleu des liens du site (#2E5BA8), pour le distinguer de « Prendre RDV » en violet. */
a.an-btn.an-btn--clair{background:#fff;border-color:rgba(46,91,168,.28);color:#2E5BA8;}
a.an-btn.an-btn--clair:hover,a.an-btn.an-btn--clair:focus-visible{background:#EEF3FB;border-color:#2E5BA8;color:#2E5BA8;}
a.an-btn.an-btn svg{width:14px;height:14px;flex:none;margin:0;color:currentColor;stroke:currentColor;}

/* Adresse en noir, plus lisible sur le violet clair des fiches (demande de Marie, 19/10/2026). */
.cpts-an .mi-contact{color:var(--an-ink,#1F1A24);}

/* Tableau triable : le titre de colonne est un bouton, une flèche indique le sens (Canal Garonne, 20/10/2026). */
.cpts-an .dir-table--tri .dt-tri{display:inline-flex;align-items:center;gap:6px;margin:0;padding:0;border:0;background:none;font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;}
.cpts-an .dir-table--tri .dt-tri:hover,.cpts-an .dir-table--tri .dt-tri:focus-visible{color:var(--an-ink);text-decoration:underline;}
.cpts-an .dir-table--tri .dt-fleche{display:inline-block;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid currentColor;opacity:.3;}
.cpts-an .dir-table--tri th[aria-sort="ascending"] .dt-fleche{border-top:0;border-bottom:5px solid currentColor;opacity:1;}
.cpts-an .dir-table--tri th[aria-sort="descending"] .dt-fleche{opacity:1;}
.cpts-an .dir-table a.tb-rdv{text-decoration:none;}
.cpts-an .dir-table a.tb-rdv:hover{text-decoration:underline;}
/* Plusieurs spécialités : la cellule passe à la ligne au lieu d'élargir le tableau. */
.cpts-an .dir-table td.dt-spe{white-space:normal;min-width:160px;max-width:240px;font-size:13px;line-height:1.4;}
