/* SEO pages — isolated styles for /ptem/ et /amp/. N'affecte pas l'application carte
   (index.html a sa propre feuille de style intégrée, non touchée par ce fichier). */
:root {
  --navy: #0f2240;
  --ink: #172033;
  --muted: #5c667a;
  --line: #dfe5ec;
  --surface: #f7f9fb;
  --accent: #1d7a6e;
  --white: #ffffff;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--white);
  line-height: 1.65;
}
a { color: #0b5f75; }
a:hover { text-decoration-thickness: 2px; }
.skip-link { position:absolute; left:-9999px; top:auto; }
.skip-link:focus { left:1rem; top:1rem; z-index:999; background:#fff; padding:.75rem 1rem; border:1px solid var(--line); }
.site-header { background: var(--navy); color: #fff; }
.site-header__inner, main, .site-footer__inner { width:min(980px, calc(100% - 32px)); margin:0 auto; }
.site-header__inner { min-height:68px; display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.brand { color:#fff; text-decoration:none; font-weight:800; letter-spacing:-.02em; }
.nav { display:flex; flex-wrap:wrap; gap:.85rem; }
.nav a { color:#fff; text-decoration:none; font-weight:650; }
.hero { padding:4.5rem 0 2.5rem; }
.eyebrow { margin:0 0 .5rem; text-transform:uppercase; font-size:.78rem; font-weight:800; letter-spacing:.09em; color:var(--accent); }
h1 { font-size:clamp(2rem, 5vw, 3.35rem); line-height:1.05; letter-spacing:-.045em; color:var(--navy); margin:.2rem 0 1rem; }
h2 { font-size:1.55rem; line-height:1.2; color:var(--navy); margin:2.8rem 0 .8rem; }
h3 { color:var(--navy); margin-top:1.8rem; }
.lead { font-size:1.15rem; max-width:800px; color:#334057; }
.updated { color:var(--muted); font-size:.92rem; }
.callout { margin:1.4rem 0; padding:1rem 1.1rem; background:var(--surface); border-left:4px solid var(--accent); border-radius:.35rem; }
.cta-row { display:flex; flex-wrap:wrap; gap:.75rem; margin:1.3rem 0 0; }
.button { display:inline-block; padding:.78rem 1rem; border-radius:.55rem; text-decoration:none; font-weight:750; border:1px solid var(--navy); }
.button.primary { background:var(--navy); color:#fff; }
.button.secondary { background:#fff; color:var(--navy); }
.toc { margin:2rem 0; padding:1rem 1.2rem; border:1px solid var(--line); border-radius:.65rem; }
.toc strong { color:var(--navy); }
.toc ul { margin:.65rem 0 0; padding-left:1.25rem; }
.card-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:1rem; margin:1rem 0; }
.card { border:1px solid var(--line); border-radius:.7rem; padding:1rem; background:#fff; }
.card h3 { margin:.1rem 0 .45rem; }
.source-list li { margin:.55rem 0; }
.breadcrumbs { padding:1rem 0 0; font-size:.9rem; color:var(--muted); }
.breadcrumbs a { color:inherit; }
.site-footer { margin-top:4rem; border-top:1px solid var(--line); background:var(--surface); }
.site-footer__inner { padding:1.5rem 0 2rem; font-size:.92rem; color:var(--muted); }
/* Pages générées depuis data.json (répertoire, cliniques, RLS) — 19 août 2026.
   Voir scripts/generer-pages-seo.js : ces classes sont produites par le générateur. */

/* Fiche de renseignements (liste de définitions).
   minmax(0,…) + overflow-wrap : sans ça, une longue URL de clinique (mot insécable) élargit
   la colonne au-delà de l'écran et fait déborder toute la page en mobile. */
.fiche { display:grid; grid-template-columns:minmax(0,auto) minmax(0,1fr); gap:.1rem 1.4rem; margin:1rem 0; }
.fiche dt { font-size:.8rem; text-transform:uppercase; letter-spacing:.04em; color:var(--muted);
            padding:.55rem 0 0; border-bottom:1px solid var(--line); min-width:9em; }
.fiche dd { margin:0; padding:.5rem 0; border-bottom:1px solid var(--line);
            min-width:0; overflow-wrap:anywhere; }

/* Heures d'ouverture */
.horaire { border-collapse:collapse; margin:1rem 0; width:min(420px,100%); }
.horaire th, .horaire td { text-align:left; padding:.5rem .8rem .5rem 0; border-bottom:1px solid var(--line); font-weight:400; }
.horaire th { color:var(--muted); font-weight:600; width:9em; }

/* Équipe */
.equipe { list-style:none; margin:1rem 0; padding:0; display:grid;
          grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:.5rem .9rem; }
.equipe li { border-left:3px solid var(--accent); padding:.15rem .7rem; }
.eq-n { font-weight:800; color:var(--navy); }
.note { color:var(--muted); font-size:.9rem; }

/* Répertoire (hub /cliniques/ et pages RLS) */
.repertoire { list-style:none; margin:1rem 0 0; padding:0; }
.repertoire li { padding:.7rem 0; border-bottom:1px solid var(--line); display:flex;
                 flex-wrap:wrap; gap:.2rem 1rem; align-items:baseline; justify-content:space-between; }
.repertoire a { text-decoration:none; }
.repertoire a:hover strong { text-decoration:underline; }
.rep-meta { color:var(--muted); font-size:.92rem; }
.rep-lien { margin:.2rem 0 0; font-size:.95rem; }
.compte { display:inline-block; background:var(--surface); color:var(--muted); border:1px solid var(--line);
          border-radius:999px; font-size:.85rem; font-weight:700; padding:.05rem .6rem; vertical-align:middle; }

@media (max-width:680px) {
  .fiche { grid-template-columns:minmax(0,1fr); gap:0; }
  .fiche dt { border-bottom:0; padding-bottom:0; }
  .horaire th { width:7em; }
  .site-header__inner { align-items:flex-start; flex-direction:column; padding:1rem 0; }
  .hero { padding-top:2.8rem; }
}
