/* Fiches entités — corpus annuaire MobInCity
   Reprend Rubik, déjà chargée par le thème, et le crimson de marque. */

.mob-fiche{
  --mob-brand:#991a36;
  --mob-ink:#1a1719;
  --mob-ink-2:#3d373a;
  --mob-muted:#6b6469;
  --mob-line:#ded8d7;
  --mob-surface:#f6f3f2;
  --mob-ok:#1f5c4d;      --mob-ok-bg:#e4f0ec;
  --mob-dead:#5d5558;    --mob-dead-bg:#ece8e7;
  --mob-warn:#8a5a00;    --mob-warn-bg:#faf2e2;
  --mob-info:#1b4b6b;    --mob-info-bg:#e6eef4;
}

/* ---------- en-tête ---------- */
.mob-fiche__hero{
  padding-bottom:14px;
  margin-bottom:20px;
  border-bottom:3px solid var(--mob-ink);
}
.mob-fiche__fil{
  font-size:13px;
  letter-spacing:.04em;
  color:var(--mob-muted);
  margin:0 0 10px;
}
.mob-fiche__fil a{color:var(--mob-brand);text-decoration:none}
.mob-fiche__fil a:hover,.mob-fiche__fil a:focus-visible{text-decoration:underline}
.mob-fiche__fil span{margin:0 7px;color:var(--mob-line)}

.mob-fiche__titre{
  font-size:clamp(28px,4.4vw,42px);
  line-height:1.1;
  letter-spacing:-.02em;
  margin:2px 0 0;
  text-wrap:balance;
}

/* ---------- statut : l'état se lit avant d'être lu ---------- */
.mob-statut{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin:14px 0 0;
  padding:4px 12px;
  font-size:13px;
  font-weight:500;
  letter-spacing:.01em;
}
.mob-statut__pastille{width:8px;height:8px;border-radius:50%;background:currentColor;flex-shrink:0}
.mob-statut--actif{color:var(--mob-ok);background:var(--mob-ok-bg)}
.mob-statut--disparu{color:var(--mob-dead);background:var(--mob-dead-bg)}
.mob-statut--rachete{color:var(--mob-warn);background:var(--mob-warn-bg)}
.mob-statut--en-difficulte{color:var(--mob-brand);background:#fbedf0}
.mob-statut--pre-commercial{color:var(--mob-info);background:var(--mob-info-bg)}

.mob-avis-memoire{
  margin:16px 0 0;
  padding:12px 16px;
  background:var(--mob-dead-bg);
  border-left:3px solid var(--mob-dead);
  font-size:14.5px;
  color:var(--mob-ink-2);
}

/* ---------- grille : corps + carte ---------- */
.mob-fiche__grille{
  display:grid;
  grid-template-columns:minmax(0,1fr) 288px;
  gap:44px;
  align-items:start;
}
.mob-fiche__corps{min-width:0}
.mob-fiche__corps h2{
  font-size:23px;
  letter-spacing:-.012em;
  margin:38px 0 12px;
  padding-bottom:7px;
  border-bottom:1px solid var(--mob-line);
}
.mob-fiche__corps h2:first-child{margin-top:0}
.mob-fiche__corps p{margin:0 0 16px}
.mob-fiche__corps ul{margin:0 0 18px;padding-left:20px}
.mob-fiche__corps li{margin-bottom:8px}

/* ---------- carte d'identité ---------- */
.mob-cote{position:sticky;top:28px}
.mob-carte{
  background:var(--mob-surface);
  border:1px solid var(--mob-line);
  border-top:4px solid var(--mob-info);
}
.mob-carte__hd{padding:13px 17px 11px;border-bottom:1px solid var(--mob-line)}
.mob-carte__hd span{
  display:block;
  font-size:10.5px;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:var(--mob-info);
  margin-bottom:2px;
}
.mob-carte__hd strong{font-size:15px;line-height:1.3;display:block}
.mob-carte dl{margin:0;padding:5px 17px 4px}
.mob-carte__ligne{
  display:flex;
  justify-content:space-between;
  gap:14px;
  padding:8px 0;
  border-bottom:1px solid var(--mob-line);
  font-size:13.5px;
}
.mob-carte__ligne:last-child{border-bottom:none}
.mob-carte dt{color:var(--mob-muted);flex-shrink:0}
.mob-carte dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}
.mob-carte__verif{
  margin:0;
  padding:10px 17px 13px;
  border-top:1px solid var(--mob-line);
  font-size:12.5px;
  color:var(--mob-muted);
}

/* ---------- maillage ---------- */
.mob-liens{margin-top:44px;padding-top:22px;border-top:1px solid var(--mob-line)}
.mob-liens h2{font-size:19px;margin:0 0 12px;border:none;padding:0}
.mob-liens ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:9px}
.mob-liens li{margin:0}
.mob-liens a{
  display:inline-block;
  padding:6px 13px;
  background:var(--mob-surface);
  border:1px solid var(--mob-line);
  font-size:14px;
  text-decoration:none;
  color:var(--mob-ink-2);
}
.mob-liens a:hover,.mob-liens a:focus-visible{border-color:var(--mob-brand);color:var(--mob-brand)}

/* ---------- profil mémoire : la page se met en retrait ---------- */
.mob-memoire .mob-fiche__hero{border-bottom-color:var(--mob-dead)}
.mob-memoire .mob-carte{border-top-color:var(--mob-dead)}
.mob-memoire .mob-carte__hd span{color:var(--mob-dead)}

/* ---------- écrans étroits ---------- */
@media (max-width:880px){
  .mob-fiche__grille{grid-template-columns:1fr;gap:30px}
  .mob-carte{position:static;order:-1}
}

/* ---------- thème sombre du visiteur ---------- */
@media (prefers-color-scheme:dark){
  .mob-fiche{
    --mob-ink:#f2edee; --mob-ink-2:#ccc4c6; --mob-muted:#9a9195;
    --mob-line:#332c2e; --mob-surface:#241f21; --mob-brand:#e88da0;
    --mob-ok:#6fbba4;  --mob-ok-bg:#12271f;
    --mob-dead:#9b9295;--mob-dead-bg:#252021;
    --mob-warn:#dca94e;--mob-warn-bg:#2c2412;
    --mob-info:#7fb3d4;--mob-info-bg:#14242f;
  }
  .mob-statut--en-difficulte{background:#2e1319}
}

/* ---------- impression ---------- */
@media print{
  .mob-carte{position:static;border:1px solid #999}
  .mob-fiche__grille{grid-template-columns:1fr}
}

/* ---------- visuel principal ---------- */
.mob-visuel{margin:0 0 30px}
.mob-visuel img{width:100%;height:auto;display:block}
.mob-visuel figcaption{
  margin-top:7px;
  font-size:13px;
  color:var(--mob-muted);
}

/* ---------- emplacement du logo, sous la carte ---------- */
.mob-logo{
  margin:16px 0 0;
  padding:14px;
  background:#fff;
  border:1px solid var(--mob-line);
  text-align:center;
}
.mob-logo img{
  width:100%;
  max-width:170px;
  height:auto;
  margin:0 auto;
  display:block;
}
.mob-logo figcaption{
  margin-top:9px;
  font-size:12.5px;
  line-height:1.45;
  color:var(--mob-muted);
}
.mob-logo--attente{background:var(--mob-surface);border-style:dashed}

.mob-carte__hd{display:flex;flex-direction:column;align-items:flex-start;gap:2px}
.mob-carte__sur{
  font-size:10.5px;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:var(--mob-info);
}

/* ---------- blocs média et présence en ligne ---------- */
.mob-bloc{margin-top:26px;padding-top:16px;border-top:1px solid var(--mob-line)}
.mob-bloc h2{font-size:19px;margin:0 0 12px;border:none;padding:0}

.mob-video{position:relative;padding-top:56.25%;background:var(--mob-surface)}
.mob-video iframe,.mob-video embed,.mob-video video,.mob-video object{
  position:absolute;inset:0;width:100%;height:100%;border:0;
}

.mob-social{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:9px}
.mob-social li{margin:0}
.mob-social a{
  display:inline-block;
  padding:6px 14px;
  background:var(--mob-surface);
  border:1px solid var(--mob-line);
  font-size:14px;
  text-decoration:none;
  color:var(--mob-ink-2);
}
.mob-social a:hover,.mob-social a:focus-visible{border-color:var(--mob-brand);color:var(--mob-brand)}

/* ---------- état vide : explicite plutôt que muet ---------- */
.mob-vide{
  margin:0;
  padding:14px 17px;
  background:var(--mob-surface);
  border:1px dashed var(--mob-line);
  font-size:14px;
  color:var(--mob-ink-2);
}
.mob-vide span{
  display:block;
  margin-top:3px;
  font-size:13px;
  color:var(--mob-muted);
}


/* ---------- resserrement sous le titre ----------
   GeneratePress pose 80 px de padding-top sur .site-content pour tout le
   site. Sur une fiche, le titre est suivi d un fil d Ariane et d un badge :
   l ecart doit etre court. On ne touche qu au CPT. */
body.single-entite .site-content,
body.mob-annuaire-page .site-content{padding-top:22px}
body.single-entite .mob-fiche__hero{padding-bottom:13px;margin-bottom:18px}

/* Carte et logo forment un seul element de grille : sans cela, la figure
   part en deuxieme rangee, sous toute la colonne de contenu. */
@media (max-width:880px){
  .mob-cote{position:static;order:-1}
}

/* ---------- ligne du site officiel dans la carte ---------- */
.mob-carte__ligne--site dd{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:170px}
.mob-carte__ligne--site a{color:var(--mob-brand);text-decoration:none}
.mob-carte__ligne--site a:hover,.mob-carte__ligne--site a:focus-visible{text-decoration:underline}

/* ============ ANNUAIRE : chemins d'accès ============ */
.mob-annuaire{
  --mob-brand:#991a36; --mob-ink:#1a1719; --mob-ink-2:#3d373a; --mob-muted:#6b6469;
  --mob-line:#ded8d7; --mob-surface:#f6f3f2;
  --mob-ok:#1f5c4d; --mob-dead:#5d5558; --mob-dead-bg:#ece8e7;
  --mob-warn:#8a5a00; --mob-warn-bg:#faf2e2; --mob-info:#1b4b6b;
}
.mob-annuaire__hero{padding-bottom:13px;margin-bottom:18px;border-bottom:3px solid var(--mob-ink)}
.mob-annuaire__titre{font-size:clamp(28px,4.2vw,44px);line-height:1.08;letter-spacing:-.022em;margin:2px 0 0;text-wrap:balance;font-weight:700}
.mob-annuaire__intro{margin:7px 0 0;color:var(--mob-ink-2);font-size:15.5px}
.mob-annuaire__intro a{color:var(--mob-brand)}

/* --- grille alphabétique --- */
.mob-alpha{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:10px}
.mob-alpha__item a,.mob-alpha__item > span{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  padding:26px 8px;background:var(--mob-surface);border:1px solid var(--mob-line);
  text-decoration:none;color:var(--mob-ink);
  transition:border-color .12s ease,color .12s ease,background .12s ease;
}
@media (prefers-reduced-motion:reduce){.mob-alpha__item a{transition:none}}
.mob-alpha__item a:hover{background:var(--mob-brand);border-color:var(--mob-brand);color:#fff}
.mob-alpha__item a:hover .mob-alpha__n{color:rgba(255,255,255,.78)}
.mob-alpha__item a:hover,.mob-alpha__item a:focus-visible{border-color:var(--mob-brand);color:var(--mob-brand)}
.mob-alpha__l{font-size:32px;font-weight:600;line-height:1;letter-spacing:-.02em}
.mob-alpha__n{font-size:12.5px;color:var(--mob-muted);font-variant-numeric:tabular-nums}
.mob-alpha__item--vide > span{opacity:.42;border-style:dashed}

/* --- barre alphabétique compacte, sur une page lettre --- */
.mob-alpha--barre{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:26px}
.mob-alpha--barre .mob-alpha__item a,.mob-alpha--barre .mob-alpha__item > span{
  padding:6px 11px;font-size:14px;font-weight:500;
}
.mob-alpha--barre .mob-alpha__item--actif > span{background:var(--mob-brand);border-color:var(--mob-brand);color:#fff}

/* --- pays d'une zone --- */
.mob-zones{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}
.mob-zones__item{
  display:inline-flex;align-items:baseline;gap:8px;padding:7px 14px;
  background:var(--mob-surface);border:1px solid var(--mob-line);
  text-decoration:none;color:var(--mob-ink-2);font-size:14.5px;
}
.mob-zones__item:hover,.mob-zones__item:focus-visible{border-color:var(--mob-brand);color:var(--mob-brand)}
.mob-zones__n{font-size:12px;color:var(--mob-muted);font-variant-numeric:tabular-nums}
.mob-zones__item--vide{opacity:.5}

/* --- liste d'entités --- */
.mob-liste{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1px;background:var(--mob-line);border:1px solid var(--mob-line)}
.mob-vignette{background:#fff;padding:15px 18px}
.mob-vignette__lien{text-decoration:none}
.mob-vignette__nom{font-size:16px;font-weight:600;color:var(--mob-ink);line-height:1.3;display:block}
.mob-vignette__lien:hover .mob-vignette__nom,.mob-vignette__lien:focus-visible .mob-vignette__nom{color:var(--mob-brand)}
.mob-vignette__meta{margin:6px 0 0;display:flex;flex-wrap:wrap;gap:5px 10px;font-size:12.8px;color:var(--mob-muted)}
.mob-vignette__statut{padding:1px 7px;font-size:11.5px}

@media (prefers-color-scheme:dark){
  .mob-annuaire{
    --mob-ink:#f2edee;--mob-ink-2:#ccc4c6;--mob-muted:#9a9195;
    --mob-line:#332c2e;--mob-surface:#241f21;--mob-brand:#e88da0;
    --mob-dead:#9b9295;--mob-dead-bg:#252021;--mob-warn:#dca94e;--mob-warn-bg:#2c2412;
  }
  .mob-vignette{background:#1b1719}
  .mob-alpha--barre .mob-alpha__item--actif > span{color:#131011}
}

/* --- contexte d'une page hub --- */
.mob-annuaire__contexte{
  margin:9px 0 0;
  padding-left:14px;
  border-left:3px solid var(--mob-brand);
  font-size:15px;
  line-height:1.6;
  color:var(--mob-ink-2);
  max-width:72ch;
}

/* --- bloc nouveautés : marqué visuellement, c'est le vecteur de fraîcheur --- */
.mob-nouveautes{border-top-color:var(--mob-brand)}
.mob-nouveautes h2{display:flex;align-items:baseline;gap:9px}
.mob-nouveautes h2::before{
  content:"";width:7px;height:7px;border-radius:50%;
  background:var(--mob-brand);flex-shrink:0;
}
/* auto-fit et non auto-fill : les colonnes vides s'effondrent et les quatre
   vignettes s'étirent pour remplir la rangée. Aucune case vide, quel que soit
   l'espace disponible. */
.mob-liste--recent{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
