/* Rôle : présentation theme-annuaire-comprendre. Domaine : annuaire public.
 * Méthode : feuille liée, ordre du gabarit conservé. Guide : docs/csp-annuaire.md. */
  /* stats band (dark) */
  .stats-band{background:var(--ink-dark);border-radius:28px;padding:48px 48px 42px;color:#fff;position:relative;overflow:hidden}
  .stats-band::after{content:"";position:absolute;inset:0;background:radial-gradient(60% 70% at 85% -10%,rgba(91,101,222,.5),transparent 60%);pointer-events:none}
  .stats-band .in{position:relative}
  .stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:34px 28px}
  .stat .num{font-family:var(--font-serif);font-size:44px;font-weight:500;line-height:1;letter-spacing:-0.01em}
  .stat .num .u{font-size:23px;color:#AEB4DA}
  .stat .lab{font-size:13px;color:#AEB4DA;font-weight:500;margin-top:8px;line-height:1.45}
  .stat .lab b{color:#fff;font-weight:700}
  .stats-band .gabarit{margin-top:30px;padding-top:24px;border-top:1px solid rgba(255,255,255,.12);font-family:var(--font-serif);font-size:19px;font-style:italic;color:#D5D8F2;line-height:1.6;max-width:900px}
  /* chart adoption */
  .mchart{background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:32px 36px;display:flex;flex-direction:column;gap:13px}
  .mrow{display:grid;grid-template-columns:200px 1fr 130px;gap:0 16px;align-items:center}
  .mlabel{font-size:14.5px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mrow.hl .mlabel{color:var(--accent-deep)}
  .mtrack{height:30px;border-radius:99px;background:var(--surface-2);border:1px solid var(--line-soft);overflow:hidden;position:relative}
  .mtrack .avg{position:absolute;top:-4px;bottom:-4px;left:var(--avg);width:2px;background:var(--ink-mute);opacity:.55;z-index:2}
  .mfill{display:block;height:100%;width:var(--w);border-radius:inherit;background:var(--bc,#C6CBEA);transition:width .9s cubic-bezier(.22,.8,.3,1);transition-delay:calc(var(--i,0)*70ms)}
  .mrow.hl .mfill{background:var(--accent)}
  .mchart.pre .mfill{width:0}
  .mval{font-size:13.5px;font-weight:800;text-align:right;font-variant-numeric:tabular-nums;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:4px 8px}
  .mlegend{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink-mute);font-weight:600;margin-top:4px}
  .mlegend i{width:14px;height:2px;background:var(--ink-mute);opacity:.55}
  /* table top villes */
  .vtable{background:var(--surface);border:1px solid var(--line);border-radius:20px;overflow:hidden}
  .vtable table{width:100%;border-collapse:collapse;font-size:14px}
  .vtable th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-mute);font-weight:800;padding:14px 18px;border-bottom:1px solid var(--line);background:var(--surface-2)}
  .vtable td{padding:13px 18px;border-bottom:1px solid var(--line-soft);vertical-align:middle}
  .vtable tr:last-child td{border-bottom:0}
  .vtable td.num,.vtable th.num{text-align:right;font-variant-numeric:tabular-nums}
  .vtable .rk{width:26px;height:26px;border-radius:50%;background:var(--bg-alt);color:var(--ink-soft);font-size:12px;font-weight:800;display:inline-flex;align-items:center;justify-content:center}
  .vtable tr:first-child .rk{background:var(--accent);color:#fff}
  .vtable .vl{font-weight:800;color:var(--ink)}
  .vtable a.vl:hover{color:var(--accent-deep)}
  .vtable .go{font-weight:700;color:var(--accent);white-space:nowrap;font-size:13px}
  .tbl-note{font-size:12.5px;color:var(--ink-mute);margin-top:12px;line-height:1.55}
  /* duo générique */
  .duo{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:start}
  .prose{font-size:16px;color:var(--ink-soft);line-height:1.7;display:grid;gap:16px;max-width:600px}
  .prose b{color:var(--ink)}
  .prose a{font-weight:700}
  /* encart urgence (thèmes à risque) */
  .urgence{display:flex;gap:13px;align-items:flex-start;background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:14px;padding:16px 18px;max-width:600px;margin-top:20px}
  .urgence .ic{flex:0 0 auto;width:38px;height:38px;border-radius:10px;background:var(--accent-softer);color:var(--accent-deep);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:12.5px}
  .urgence p{font-size:13.5px;color:var(--ink-soft);line-height:1.55}
  .urgence p b{color:var(--ink)}
  /* barres profil psychologues */
  .pbars{display:grid;gap:14px}
  .pbar .l{display:flex;justify-content:space-between;font-size:13.5px;font-weight:700;margin-bottom:6px}
  .pbar .l span:last-child{font-variant-numeric:tabular-nums}
  .pbar .tr{height:10px;border-radius:99px;background:var(--bg-alt);overflow:hidden}
  .pbar .tr i{display:block;height:100%;width:var(--w);border-radius:inherit;background:var(--accent)}
  /* étapes du déroulé (Comprendre) */
  .dstep{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:18px 20px;display:flex;gap:16px;align-items:flex-start}
  .dstep .n{width:40px;height:40px;border-radius:12px;background:var(--accent);color:#fff;font-weight:800;font-size:18px;display:flex;align-items:center;justify-content:center;font-family:var(--font-serif);flex:0 0 auto}
  .dstep h3{font-size:15.5px;font-weight:800;letter-spacing:-0.02em;margin-top:2px}
  .dstep p{font-size:13.5px;color:var(--ink-soft);margin-top:6px;line-height:1.6}
  /* Comment ça marche + Prix transparents (composants pages villes) */
  .ph{border-radius:18px;border:1px solid var(--line);background:repeating-linear-gradient(135deg,#F1F2FA 0 13px,#E8EAF5 13px 26px);display:flex;align-items:center;justify-content:center;color:#9096B8}
  .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
  .step{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:26px;display:flex;flex-direction:column}
  .step .n{width:40px;height:40px;border-radius:12px;background:var(--accent);color:#fff;font-weight:800;font-size:18px;display:flex;align-items:center;justify-content:center;font-family:var(--font-serif)}
  .step h3{font-size:18px;font-weight:800;letter-spacing:-0.02em;margin-top:18px}
  .step p{font-size:14.5px;color:var(--ink-soft);margin-top:9px;line-height:1.55}
  .step .ph{margin-top:18px;aspect-ratio:16/10;border-radius:14px}
  .price-grid{display:grid;grid-template-columns:1fr .9fr;gap:44px;align-items:start}
  .price-card{background:var(--surface);border:1px solid var(--line);border-radius:22px;overflow:hidden}
  .price-main{padding:30px 30px 26px}
  .price-main .tag{font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--accent-deep)}
  .price-main .amt{display:flex;align-items:baseline;gap:6px;margin-top:10px}
  .price-main .amt b{font-family:var(--font-serif);font-size:52px;font-weight:500;letter-spacing:-0.01em}
  .price-main .amt .per{color:var(--ink-mute);font-size:15px;font-weight:600}
  .price-main p{font-size:14.5px;color:var(--ink-soft);margin-top:12px;line-height:1.55}
  .price-opt{border-top:1px dashed var(--line);padding:22px 30px;display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--surface-2)}
  .price-opt .l1{font-size:14.5px;font-weight:700}
  .price-opt .l2{font-size:12.5px;color:var(--ink-mute)}
  .price-opt .plus{font-family:var(--font-serif);font-size:26px;font-weight:500;color:var(--accent-deep)}
  .price-side .lead{font-size:15px;color:var(--ink-soft);line-height:1.6}
  .pay{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
  .pay .ppill{height:34px;min-width:52px;padding:0 12px;border-radius:8px;border:1px solid var(--line);background:var(--surface);display:flex;align-items:center;justify-content:center;gap:5px}
  .pay .ppill svg{height:16px;width:auto;display:block}
  .pay .pp-visa{color:#1434CB;font-weight:800;font-style:italic;font-size:14px;letter-spacing:.02em}
  .pay .pp-stripe{color:#635BFF;font-weight:800;font-size:14px;letter-spacing:-.01em}
  .pay .pp-gpay{color:#5F6368;font-weight:700;font-size:13px}
  .pay .pp-gpay svg{height:15px}
  .reimb{margin-top:22px;background:var(--success-soft);border:1px solid #C8ECD8;border-radius:14px;padding:16px 18px;display:flex;gap:12px;align-items:flex-start}
  .reimb .ic{width:26px;height:26px;border-radius:50%;background:var(--success);color:#fff;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
  .reimb .ic svg{width:15px;height:15px}
  .reimb .rt b{font-size:14px;color:#166B4A;font-weight:800}
  .reimb .rt p{font-size:13px;color:#276A4E;margin-top:3px}
  .mutuelles{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:20px;opacity:.85}
  .mutuelles .mpill{height:30px;min-width:70px;border-radius:7px;background:var(--bg-alt);display:flex;align-items:center;justify-content:center;padding:0 10px}
  h2.sec .sec-star{color:var(--star);-webkit-text-fill-color:var(--star);font-weight:400;white-space:nowrap}
  .pcard-hide{display:none!important} /* prime sur .pcard.has-photo{display:grid} */
  /* avis (verbatims) */
  .rcard{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:24px 26px}
  .rcard .hd{display:flex;align-items:center;gap:11px;margin-bottom:12px}
  .rcard .av{width:38px;height:38px;font-size:14px}
  .rcard .who b{display:block;font-size:14px;font-weight:800}
  .rcard .who span{font-size:11.5px;color:var(--ink-mute);font-weight:600}
  .rcard .hd .stars{margin-left:auto}
  .rcard p{font-size:14px;color:var(--ink-soft);line-height:1.65}
  /* FAQ */
  .faq{max-width:760px}
  .acc{background:var(--surface);border:1px solid var(--line);border-radius:15px;margin-bottom:10px;overflow:hidden}
  .acc summary{list-style:none;display:flex;align-items:center;gap:14px;cursor:pointer;padding:19px 24px}
  .acc summary::-webkit-details-marker{display:none}
  .acc summary h3{font-size:15.5px;font-weight:700;letter-spacing:-0.01em;flex:1}
  .acc summary .pm{width:26px;height:26px;border-radius:8px;background:var(--accent-softer);color:var(--accent-deep);display:flex;align-items:center;justify-content:center;flex:0 0 auto;font-weight:800;font-size:15px}
  .acc[open] summary .pm{background:var(--accent);color:#fff}
  .acc .body{padding:0 24px 20px;font-size:14.5px;color:var(--ink-soft);line-height:1.65;max-width:660px}
  /* maillage thématiques/approches (modèle blog) */
  .cities{padding:0 0 72px}
  .cities-card{background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:34px 38px}
  .cities-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:8px}
  .cities-card h2{font-size:22px;font-weight:800;letter-spacing:-0.02em}
  .cities-card .sub{font-size:14px;color:var(--ink-mute);font-weight:600;margin-top:6px;max-width:560px;line-height:1.55}
  .cities-sub{font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-mute);margin-top:22px}
  .city-links{display:grid;grid-template-columns:repeat(4,1fr);gap:6px 20px;margin-top:12px}
  .city-links a{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--ink-soft);padding:8px 10px;border-radius:9px}
  .city-links a:hover{background:var(--accent-softer);color:var(--accent-deep)}
  .city-links a svg{width:13px;height:13px;color:var(--accent);flex:0 0 auto}
  /* mini-test (composant page patho, à garder synchronisé) */
  .test-card{background:var(--surface);border:1px solid var(--line);border-radius:24px;overflow:hidden;display:grid;grid-template-columns:1.1fr .9fr}
  .test-card .txt{padding:40px 44px}
  .test-card .badge{display:inline-flex;font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--accent-deep);background:var(--accent-softer);padding:6px 12px;border-radius:99px}
  .test-card h2{font-size:27px;font-weight:800;letter-spacing:-0.025em;line-height:1.15;margin-top:14px;text-wrap:balance}
  .test-card p{font-size:15px;color:var(--ink-soft);margin-top:12px;line-height:1.6;max-width:440px}
  .test-meta{display:flex;gap:16px;margin-top:18px;flex-wrap:wrap}
  .test-meta span{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:700;color:var(--ink-soft)}
  .test-meta svg{width:15px;height:15px;stroke:var(--accent);stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}
  .test-card .btn{margin-top:24px}
  .test-vis{background:linear-gradient(150deg,var(--accent-softer),var(--accent-soft));display:flex;align-items:center;justify-content:center;padding:30px}
  .test-shot{background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:0 24px 50px -26px rgba(20,24,56,.4);padding:20px 22px;width:min(300px,100%)}
  .test-shot .t{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-mute)}
  .test-shot .res{font-size:17px;font-weight:800;color:var(--accent-deep);margin-top:8px}
  .test-shot .scale{height:8px;border-radius:99px;background:var(--bg-alt);margin-top:12px;position:relative}
  .test-shot .scale i{position:absolute;left:0;top:0;bottom:0;width:58%;border-radius:99px;background:linear-gradient(90deg,var(--accent-soft),var(--accent))}
  .test-shot .scale .cursor{position:absolute;left:58%;top:50%;transform:translate(-50%,-50%);width:18px;height:18px;border-radius:50%;background:#fff;border:3px solid var(--accent)}
  .test-shot .lbls{display:flex;justify-content:space-between;font-size:10px;font-weight:700;color:var(--ink-mute);margin-top:8px}
  .test-shot .exp{font-size:12px;color:var(--ink-soft);line-height:1.55;margin-top:12px}
  /* méthodologie */
  .methodo{display:flex;gap:14px;align-items:flex-start;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:20px 24px;max-width:860px;margin:0 auto}
  .methodo .ic{width:38px;height:38px;border-radius:11px;background:var(--accent-softer);color:var(--accent);display:flex;align-items:center;justify-content:center;flex:0 0 auto}
  .methodo .ic svg{width:19px;height:19px;stroke:currentColor;stroke-width:1.9;fill:none;stroke-linecap:round;stroke-linejoin:round}
  .methodo p{font-size:13px;color:var(--ink-soft);line-height:1.6}
  .methodo p b{color:var(--ink)}
  /* CTA final */
  .final{background:var(--ink-dark);color:#fff;border-radius:26px;padding:52px 56px;position:relative;overflow:hidden;display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:center}
  .final::before{content:"";position:absolute;inset:0;background:radial-gradient(50% 80% at 85% 0%,rgba(91,101,222,.35),transparent 60%);pointer-events:none}
  .final>*{position:relative}
  .final h2{font-size:31px;font-weight:800;letter-spacing:-0.03em;line-height:1.12;text-wrap:balance}
  .final h2 em{font-family:var(--font-serif);font-style:italic;font-weight:500;color:#B9BFF6}
  .final p.sub{font-size:15.5px;color:#C7CBEC;margin-top:12px;max-width:460px;line-height:1.6}
  .final-cta{display:flex;flex-direction:column;align-items:flex-start;gap:12px;justify-self:end}
  .final-cta .micro{font-size:13px;color:#9AA0CB;font-weight:600}
  /* responsive */
  @media(max-width:1020px){
    .hero-grid{grid-template-columns:1fr;gap:36px}
    .hero h1{font-size:37px}
    .stats-grid{grid-template-columns:1fr 1fr}
    .duo{grid-template-columns:1fr}
    .mrow{grid-template-columns:120px 1fr 110px}
    .final{grid-template-columns:1fr;padding:40px 28px}
    .final-cta{justify-self:start}
    .vtable{overflow-x:auto}
    .vtable table{min-width:560px}
  }
  @media(max-width:760px){
    /* Onglets mini-fiche : tab bar d'app — tous les onglets visibles, largeur
       égale, icône au-dessus d'un libellé court. Remplace le scroll horizontal
       (onglet Présentation hors écran = mauvaise découvrabilité). */
    .ptabs{display:flex;width:calc(100% - 40px);gap:2px;overflow:visible}
    .pt{flex:1 1 0;min-width:0;flex-direction:column;gap:4px;padding:8px 2px;font-size:9.5px;letter-spacing:-0.01em;justify-content:center;text-align:center}
    .pt svg{width:16px;height:16px}
    .pt .tagq{display:none}
    .pt .tagon{font-size:7.5px;padding:1px 4px}

    body{font-size:15px}
    .wrap{padding:0 18px}
    section{padding:48px 0}
    h2.sec{font-size:26px}
    .sec-intro{font-size:15.5px}
    .hero{padding:34px 0 20px}
    .hero h1{font-size:34px}
    .hero p.lead{font-size:16px}
    .hc-top{padding:11px 12px 9px}
    .list-grid{grid-template-columns:1fr}
    .ag-days{grid-template-columns:repeat(3,1fr)}
    .ag-day:nth-child(4),.ag-day:nth-child(5){display:none}
    .pc-grid{flex-direction:column}
    .pc-photo{display:none}
    .stats-band{padding:34px 24px}
    .stats-grid{gap:26px 18px}
    .stat .num{font-size:36px}
    .pcard .phead{flex-wrap:wrap}
    .pcta{flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap;width:100%;gap:10px}
    .fav-btn{width:44px;height:44px}
    .fav-fab{right:16px;bottom:calc(16px + env(safe-area-inset-bottom));padding:12px 17px}
    .fav-sheet-panel{right:0;left:0;bottom:0;width:auto;max-width:none;max-height:82vh;border-radius:20px 20px 0 0}
    .fav-list{padding-bottom:calc(8px + env(safe-area-inset-bottom))}
    .steps{grid-template-columns:1fr}
    .test-card{grid-template-columns:1fr}
    .test-card .txt{padding:28px 22px}
    .price-grid{grid-template-columns:1fr;gap:28px}
    .city-links{grid-template-columns:1fr 1fr}
    .cities-card{padding:26px 22px}
    .pa-grid{flex-direction:column}
    .pa-score{flex:1 1 auto;width:100%}
    .pa-list{border-left:0;border-top:1px solid var(--line-soft);padding-left:0;padding-top:14px}
    .mchart{padding:22px 18px;gap:16px}
    .mrow{grid-template-columns:1fr auto;gap:6px 10px}
    .mlabel{grid-row:1;grid-column:1;white-space:normal;line-height:1.3;font-size:13.5px}
    .mval{grid-row:1;grid-column:2}
    .mtrack{grid-row:2;grid-column:1/-1;height:24px}
    .acc summary{padding:16px 18px;font-size:15px}
    .acc .body{padding:0 18px 18px}
  }

/* Agenda des mêmes cartes externes que les pages ville. */
  .eq-agenda{align-items:flex-start;gap:6px}
  .eq-nav{flex:0 0 auto;width:30px;height:30px;margin-top:1px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;transition:.12s}
  .eq-nav:hover:not([disabled]){border-color:var(--accent);color:var(--accent)}
  .eq-nav[disabled]{opacity:.3;cursor:default}
  .eq-nav[hidden]{display:none}
  .eq-nav svg{width:14px;height:14px}
  .eq-agenda .ag-day:nth-child(n+6){display:none}              /* sans JavaScript : les 5 premiers jours */
  .eq-agenda.nav .ag-day{display:flex!important}                /* avec les flèches : le script décide (attribut hidden) */
  .eq-agenda.nav .ag-day[hidden]{display:none!important}
  .eq-foot{margin-top:8px;align-items:center}
  .eq-agenda .ag-slot{padding:7px 0}
  .eq-tarif{font-size:12.5px;color:var(--ink-mute);font-weight:500}
  .eq-tarif b{color:var(--ink);font-size:14.5px;font-weight:800}
  .eq-foot .btn{padding:9px 16px;font-size:13.5px}
  .eq-agenda .ag-slot.plus{display:none}
  .eq-agenda.open .ag-slot.plus{display:block}
  /* Tranches horaires de la grille « Nuit », « Matin », « Après-midi », « Soir ». Libellé
     affiché dans la 1re colonne visible seulement (.ag-first, posé par le script des flèches), suivi d'un trait qui
     traverse les colonnes ; cases vides (.ag-vide) pour garder les tranches à la même hauteur partout. */
  .eq-agenda .ag-plab{display:flex;align-items:center;gap:6px;height:16px;margin-top:4px;font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-mute)}
  .eq-agenda .ag-plab::after{content:'';flex:1;height:1px;background:var(--line)}
  .eq-agenda .ag-plab span{display:none;white-space:nowrap}
  .eq-agenda .ag-day:first-child .ag-plab span,.eq-agenda.nav .ag-day.ag-first .ag-plab span{display:inline}
  .eq-agenda.nav .ag-day:not(.ag-first) .ag-plab span{display:none}
  .eq-agenda .ag-vide{display:block;visibility:hidden;border:1px solid transparent;border-radius:10px;padding:7px 0;font-size:12.5px}
  .eq-agenda .ag-plab.plus,.eq-agenda .ag-vide.plus{display:none}
  .eq-agenda.open .ag-plab.plus{display:flex}
  .eq-agenda.open .ag-vide.plus{display:block}
  .eq-more{background:none;border:0;padding:0;font:inherit;font-size:12.5px;font-weight:700;color:var(--accent);cursor:pointer;text-decoration:underline;text-underline-offset:2px}
  .eq-more:hover{color:var(--accent-deep)}
  .pc-agenda-foot{display:grid;grid-template-columns:1fr;gap:8px;text-align:center}
  .pc-agenda-foot .eq-more{justify-self:center;min-height:36px;padding:6px 12px}
  .pc-rpps{font-size:13px;color:var(--ink-mute);margin:0 0 14px;overflow-wrap:anywhere}
  .eq-agenda .ag-days{grid-template-columns:repeat(var(--eq-jours,5),1fr)}   /* autant de colonnes que de jours (jamais de colonne vide) */
  .eq-agenda .ag-slot{text-decoration:none;display:block}
  .eq-agenda .ag-slot.more{color:var(--accent);border-style:dashed}
@media(max-width:640px){.eq-agenda .ag-days{grid-template-columns:repeat(3,1fr)}.eq-agenda .ag-day:nth-child(n+4){display:none}}
