/* Groupe E · formule Centre (maquette page blanche, 30/09/2026) : accueil Centre, annuaire, fiche praticien, adresses,
   rendez-vous en 3 étapes, Nous rejoindre, page en anglais.
   Composants propres au groupe, préfixe .ds-e- ; uniquement les jetons --ds-* ; rien ne s'applique hors de ces classes.
   Ils s'appuient sur les composants du socle (.ds-card, .ds-chip, .ds-b-mono, .ds-d-champ, .ds-horaires, .ds-note…),
   que chaque style habille déjà.
   .ds-e-lang    lien FR / EN de l'en-tête
   .ds-e-pc      carte d'un praticien (monogramme, nom, fonction, soins, adresses et jours, langues, actions)
   .ds-e-annu    grille de ces cartes ; .ds-e-filtres (soin, adresse, langue) ; .ds-e-compte ; .ds-e-vide
   .ds-e-adrs / .ds-e-adr   cartes des adresses (photo, horaires du jour, praticiens présents)
   .ds-e-plan    planning « qui consulte quel jour » (tableau, colonne du jour marquée)
   .ds-e-hcomp   horaires des deux adresses côte à côte
   .ds-e-rdv     rendez-vous en 3 étapes : .ds-e-etapes (repère), .ds-e-etape (fieldset), .ds-e-opt (choix), .ds-e-recap
   .ds-e-offre   offre d'emploi ; .ds-e-suite (lien ou bouton sous une grille) ; .ds-e-bloc (marge haute) */

/* ce que le script masque reste masqué, quel que soit le display du composant */
:is(.ds-e-annu > li,.ds-e-opt,.ds-e-opt-j,.ds-e-etape,.ds-e-filtres,.ds-e-vide,.ds-e-err)[hidden]{display:none!important}

.ds-e-bloc{margin-top:clamp(28px,3vw,40px)}
.ds-e-nw{white-space:nowrap} /* « rendez-vous », « Part-Dieu » : pas de coupure au trait d'union */
.ds-e-suite{margin-top:clamp(24px,3vw,32px)}

/* ══ En-tête Centre : lien de langue ══ */
.ds-e-lang{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 10px;border-radius:var(--ds-r-s);color:var(--ds-ink);text-decoration:none;font:600 13.5px/1 var(--ds-f-body);letter-spacing:.06em;box-shadow:inset 0 0 0 1px var(--ds-rule);transition:color .2s,background-color .2s,box-shadow .2s}
.ds-e-lang:hover{color:var(--ds-accent);background:var(--ds-tint);box-shadow:inset 0 0 0 1px var(--ds-accent)}
.ds-e-hdr .ds-nav-t,.ds-e-hdr .ds-nav-l{padding-inline:10px}
.ds-e-hdr .ds-nav-t::after,.ds-e-hdr .ds-nav-l::after{left:10px;right:10px}
@media (min-width:1121px) and (max-width:1300px){
  .ds-e-hdr .ds-hdr-in{gap:18px}
  .ds-e-hdr .ds-nav{gap:0}
  .ds-e-hdr .ds-nav-t,.ds-e-hdr .ds-nav-l{padding-inline:8px;font-size:14.5px}
  .ds-e-hdr .ds-urg span{display:none}
  .ds-e-hdr .ds-urg{padding:0 12px}
}
@media (max-width:1120px){.ds-e-hdr .ds-hdr-act{gap:8px}}
@media (max-width:420px){.ds-e-hdr .ds-hdr-act:has(.ds-urg) .ds-e-lang{display:none}} /* téléphone : le logo garde sa ligne ; « English version » reste dans le menu */

/* ══ Carte d'un praticien ══ */
.ds-e-annu{list-style:none}
.ds-e-pc{gap:16px;padding:24px 24px 22px}
.ds-e-pc-top{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:center}
.ds-e-pc .ds-b-mono,.ds-e-opt .ds-b-mono{width:64px;font-size:23px}
:is(.ds-e-pc,.ds-e-monos,.ds-e-opt) .ds-b-mono{color:var(--ds-accent-2)} /* petits monogrammes : contraste AA (forêt, ocre…) */
.ds-e-pc-nom{font-size:20px;line-height:1.22;letter-spacing:-.02em}
.ds-e-pc-nom a{color:var(--ds-ink);text-decoration:none}
.ds-e-pc-nom a:hover{color:var(--ds-accent)}
.ds-e-fn{margin-top:3px;font-size:14px;line-height:1.4;color:var(--ds-body)}
.ds-e-dom{list-style:none;display:flex;flex-wrap:wrap;gap:6px}
.ds-e-dom .ds-chip{min-height:28px;font-size:12.5px}
.ds-e-pc-l{list-style:none;display:grid;gap:8px;padding-top:14px;border-top:1px solid var(--ds-rule)}
.ds-e-pc-l li{display:grid;grid-template-columns:18px minmax(0,1fr);gap:10px;align-items:start;font-size:14.5px;line-height:1.45;color:var(--ds-body)}
.ds-e-pc-l .ds-svg{width:17px;height:17px;margin-top:2px;color:var(--ds-accent)}
.ds-e-pc-l b{color:var(--ds-ink);font-weight:600}
.ds-e-pc-act{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin-top:auto;padding-top:6px}
.ds-e-pc-act .ds-link{margin:0;padding:0}

/* ══ Filtres de l'annuaire ══ */
.ds-e-filtres{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:16px 18px;align-items:end;margin-bottom:clamp(24px,3vw,36px);padding:clamp(18px,2.4vw,26px);background:var(--ds-surface);border:1px solid var(--ds-rule);border-radius:var(--ds-r-l)}
.ds-e-filtres .ds-d-champ select{background-color:#fff}
.ds-e-filtres-bas{display:flex;align-items:center;gap:14px;min-height:50px}
.ds-e-compte{font:600 15px/1.3 var(--ds-f-body);color:var(--ds-ink);white-space:nowrap}
.ds-e-raz{padding:0;border:0;background:none;cursor:pointer;color:var(--ds-accent-2);font:inherit;text-decoration:underline;text-underline-offset:3px}
@media (max-width:1000px){.ds-e-filtres{grid-template-columns:repeat(3,minmax(0,1fr))}.ds-e-filtres-bas{grid-column:1/-1;justify-content:space-between;min-height:0}}
@media (max-width:640px){.ds-e-filtres{grid-template-columns:minmax(0,1fr)}}

/* ══ Cartes des adresses ══ */
.ds-e-adrs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(14px,2vw,24px)}
.ds-e-adr{padding:10px;gap:0}
.ds-e-adr .ds-e-adr-img{margin:0;aspect-ratio:16/8}
.ds-e-adr .ds-e-adr-img img{object-position:50% 35%}
.ds-e-adr-c{display:grid;gap:12px;justify-items:start;padding:20px 16px 12px}
.ds-e-adr-nom{font-size:clamp(22px,1.2rem + .6vw,28px);line-height:1.15;letter-spacing:-.025em}
.ds-e-adr-nom a{color:var(--ds-ink);text-decoration:none}
.ds-e-adr-nom a:hover{color:var(--ds-accent)}
.ds-e-adr-rue{color:var(--ds-body);font-size:15.5px}
.ds-e-adr .ds-e-pc-l{width:100%}
.ds-e-adr .ds-e-pc-act{width:100%;padding-top:10px}
.ds-e-monos{display:flex;gap:6px}
.ds-e-monos .ds-b-mono{width:42px;font-size:14.5px;letter-spacing:0}
@media (max-width:900px){.ds-e-adrs{grid-template-columns:minmax(0,1fr)}}

/* ══ Planning « qui consulte quel jour » ══ */
.ds-e-plan-w{background:#fff}
.ds-e-plan{width:100%;border-collapse:collapse;font-size:15px}
.ds-e-plan th,.ds-e-plan td{padding:14px 12px;border-bottom:1px solid var(--ds-rule);text-align:center;vertical-align:middle}
.ds-e-plan tr:last-child > *{border-bottom:0}
.ds-e-plan thead th{background:var(--ds-surface);font:600 12.5px/1.2 var(--ds-f-body);letter-spacing:.02em;color:var(--ds-ink)}
.ds-e-plan thead th:first-child,.ds-e-plan tbody th{text-align:left;padding-left:20px}
.ds-e-plan tbody th{font-weight:600;color:var(--ds-ink);width:40%}
.ds-e-plan tbody th a{color:var(--ds-ink);text-decoration:none}
.ds-e-plan tbody th a:hover{color:var(--ds-accent)}
.ds-e-plan tbody th small{display:block;margin-top:2px;font-weight:400;font-size:13px;line-height:1.35;color:var(--ds-mute)}
.ds-e-oui{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--ds-accent);color:#fff}
.ds-e-oui .ds-svg{width:16px;height:16px;stroke-width:3}
.ds-e-non{display:inline-block;width:10px;height:2px;border-radius:2px;background:var(--ds-rule-2);vertical-align:middle}
.ds-e-plan .is-auj{background:var(--ds-tint)}
.ds-e-plan thead th.is-auj{box-shadow:inset 0 3px 0 var(--ds-accent);color:var(--ds-accent-2)}
@media (max-width:640px){
  .ds-e-plan{font-size:14px}
  .ds-e-plan th,.ds-e-plan td{padding:12px 4px}
  .ds-e-plan thead th:first-child,.ds-e-plan tbody th{padding-left:12px}
  .ds-e-plan tbody th{width:auto}
  .ds-e-plan tbody th small{display:none}
  .ds-e-oui{width:24px;height:24px}
  .ds-e-oui .ds-svg{width:13px;height:13px}
}

/* ══ Horaires des deux adresses côte à côte ══ */
.ds-e-hcomp .ds-horaires th{width:auto}
.ds-e-hcomp .ds-horaires td{text-align:center} /* la paire de plages sous l'en-tête de son adresse */
.ds-e-hcomp .ds-horaires thead th{padding:16px 12px;text-align:center;font:600 15px/1.25 var(--ds-f-title);color:var(--ds-ink)}
.ds-e-hcomp .ds-horaires thead th small{display:block;margin-top:2px;font:400 13px/1.3 var(--ds-f-body);color:var(--ds-mute)}
.ds-e-hcomp .ds-horaires thead td{border-bottom:1px solid var(--ds-rule)}
.ds-e-hcomp .ds-horaires tbody th{padding-left:20px}
.ds-e-hcomp .ds-horaires td:last-child,.ds-e-hcomp .ds-horaires thead th:last-child{padding-right:20px}
.ds-e-hcomp .ds-horaires tr:last-child > *{border-bottom:0}
@media (max-width:1100px){
  .ds-e-hcomp .ds-horaires .ds-d-plage{display:block;width:max-content;margin:0 0 0 auto}
  .ds-e-hcomp .ds-horaires .ds-d-plage + .ds-d-plage{margin:6px 0 0 auto}
  .ds-e-hcomp .ds-horaires .ds-d-plage:only-child{margin-right:0}
  .ds-e-hcomp .ds-horaires thead th,.ds-e-hcomp .ds-horaires .ds-d-ferme{text-align:right}
}
@media (max-width:640px){
  .ds-e-hcomp .ds-horaires{font-size:13.5px}
  .ds-e-hcomp .ds-horaires th,.ds-e-hcomp .ds-horaires td{padding:10px 6px}
  .ds-e-hcomp .ds-horaires tbody th{padding-left:12px}
  .ds-e-hcomp .ds-horaires td:last-child,.ds-e-hcomp .ds-horaires thead th:last-child{padding-right:12px}
  .ds-e-hcomp .ds-horaires .ds-d-plage{min-width:0;padding:4px 8px}
}

/* ══ Rendez-vous en 3 étapes ══ */
.ds-e-rdv-w{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,340px);gap:clamp(28px,4vw,56px) clamp(32px,5vw,72px);align-items:start}
.ds-e-etapes{grid-column:1/-1;list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;counter-reset:none}
.ds-e-etapes li{position:relative;display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:var(--ds-r);background:var(--ds-surface);color:var(--ds-body);font:600 15px/1.25 var(--ds-f-body)}
.ds-e-etapes-n{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 1.5px var(--ds-rule-2);color:var(--ds-ink);font:650 15px/1 var(--ds-f-title)}
.ds-e-etapes li[aria-current]{background:var(--ds-tint);color:var(--ds-ink)}
.ds-e-etapes li[aria-current] .ds-e-etapes-n{background:var(--ds-accent);box-shadow:none;color:#fff}
.ds-e-etapes li.is-fait .ds-e-etapes-n{background:var(--ds-tint-2);box-shadow:none;color:var(--ds-accent-2)}
.ds-e-rdv{display:grid;gap:clamp(28px,3vw,40px);min-width:0}
.ds-e-etape{display:grid;gap:18px;min-width:0;margin:0;padding:clamp(20px,3vw,32px);border:1px solid var(--ds-rule);border-radius:var(--ds-r-l);background:#fff;box-shadow:var(--ds-shadow)}
.ds-e-etape legend{float:left;width:100%;padding:0}
.ds-e-etape legend h2{font-size:clamp(22px,1.1rem + .8vw,30px);line-height:1.15;scroll-margin-top:calc(var(--ds-hdr-h) + 90px)}
.ds-e-etape legend h2:focus{outline:none}
.ds-e-etape legend h2:focus-visible{outline:2px solid var(--ds-accent);outline-offset:6px;border-radius:4px}
.ds-e-etape-n{display:block;margin-bottom:8px;font:600 13px/1.3 var(--ds-f-body);letter-spacing:.02em;text-transform:none;color:var(--ds-accent-2)}
.ds-e-etape legend + *{clear:both}
.ds-e-aide{font-size:15px;color:var(--ds-body)}
.ds-e-opts{display:grid;gap:10px}
.ds-e-opts--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.ds-e-opt{position:relative;display:block;cursor:pointer}
.ds-e-opt input{position:absolute;opacity:0;width:1px;height:1px}
.ds-e-opt-c{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:6px 16px;align-items:center;min-height:76px;padding:14px 18px 14px 14px;border:1.5px solid var(--ds-rule-2);border-radius:var(--ds-r);background:#fff;transition:border-color .2s,background-color .2s,box-shadow .2s}
.ds-e-opts--2 .ds-e-opt-c{grid-template-columns:auto minmax(0,1fr);align-content:start;height:100%}
.ds-e-opts--2 .ds-e-opt-m{grid-column:2;justify-content:flex-start}
.ds-e-opt-c .ds-ico{width:48px;height:48px;margin:0}
.ds-e-opt-c .ds-b-mono{width:48px;font-size:17px;letter-spacing:0}
.ds-e-opt-t{display:grid;gap:3px;min-width:0}
.ds-e-opt-t b{color:var(--ds-ink);font:600 17px/1.25 var(--ds-f-title);letter-spacing:-.01em}
.ds-e-opt-t small{color:var(--ds-body);font-size:14px;line-height:1.45}
.ds-e-opt-m{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;font-size:13.5px;color:var(--ds-body)}
.ds-e-opt-m .ds-open{font-size:13.5px}
.ds-e-opt-j{padding:3px 10px;border-radius:999px;background:var(--ds-surface);white-space:nowrap}
.ds-e-opt:hover .ds-e-opt-c{border-color:color-mix(in srgb,var(--ds-accent) 50%,var(--ds-rule-2))}
.ds-e-opt input:checked + .ds-e-opt-c{border-color:var(--ds-accent);background:var(--ds-tint);box-shadow:inset 0 0 0 1px var(--ds-accent)}
.ds-e-opt input:checked + .ds-e-opt-c .ds-e-opt-j{background:#fff}
.ds-e-opt input:focus-visible + .ds-e-opt-c{outline:2px solid var(--ds-accent);outline-offset:3px}
.ds-e-err{padding:10px 14px;border-radius:var(--ds-r-s);background:var(--ds-tint);color:var(--ds-ink);font-weight:600;font-size:15px;box-shadow:inset 3px 0 0 var(--ds-accent)}
.ds-e-nav{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding-top:6px}
.ds-e-nav > :only-child{margin-left:auto}
.ds-e-nav [data-e-retour] .ds-svg{rotate:180deg}
.ds-e-nav [data-e-retour]:hover .ds-svg:last-child{transform:translateX(-3px)}
.ds-e-rdv:not(.is-actif) .ds-e-nav button{display:none} /* sans script : les trois étapes sont affichées, les boutons n'ont pas lieu d'être */
.ds-e-recap{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.ds-e-recap div{padding:14px 16px;border-radius:var(--ds-r);background:var(--ds-surface)}
.ds-e-recap dt{font:600 12.5px/1.3 var(--ds-f-body);letter-spacing:.02em;color:var(--ds-mute)}
.ds-e-recap dd{margin:4px 0 0;color:var(--ds-ink);font:600 17px/1.3 var(--ds-f-title)}
.ds-e-rdv-cote{display:grid;gap:12px;position:sticky;top:calc(var(--ds-hdr-h) + var(--ds-hdr-dec,0px) + 24px)}
.ds-e-rdv-cote .ds-note{font-size:15px}
.ds-e-rdv-cote .ds-note a:where(:not(.ds-btn)){color:inherit}
@media (max-width:1000px){.ds-e-rdv-w{grid-template-columns:minmax(0,1fr)}.ds-e-rdv-cote{position:static}}
@media (max-width:640px){
  .ds-e-etapes{gap:6px}
  .ds-e-etapes li{flex-direction:column;align-items:flex-start;gap:8px;padding:12px;font-size:13.5px}
  .ds-e-opts--2,.ds-e-recap{grid-template-columns:minmax(0,1fr)}
  .ds-e-opt-c{grid-template-columns:auto minmax(0,1fr);padding:12px}
  .ds-e-opt-m{grid-column:2;justify-content:flex-start}
  .ds-e-nav .ds-btn{flex:1 1 100%}
  .ds-e-nav > :only-child{margin-left:0}
}

/* ══ Offres d'emploi ══ */
.ds-e-offre .ds-e-dom{margin-top:2px}
.ds-e-offre .ds-e-dom .ds-chip{background:var(--ds-surface)}

/* annuaire : une seule carte garde sa forme de carte (page anglaise, centre à un praticien anglophone), 30/09/2026 */
.ds-grid.ds-e-annu:has(> :only-child){grid-template-columns:repeat(3,minmax(0,1fr))}
.ds-grid.ds-e-annu > .ds-e-pc:only-child{display:flex;align-items:stretch}
