/* =========================
   Variables (fallbacks)
   ========================= */
:root{
  --spacing-sm: 12px;
  --spacing-md: 16px;
  --spacing-lg: 24px;
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --border: #e5e7eb;
  --text: #111827;
  --muted: #6b7280;
  --bg-card: #fff;
  --brand: var(--ast-global-color-0, #0ea5e9);
}

/* =========================
   LISTE (grid) – Séances
   ========================= */
.seances-grid-container{
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: clamp(var(--spacing-sm), 3vw, var(--spacing-lg));
}

.seances-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: clamp(12px, 2.4vw, 24px);
}

/* Une seule carte → alignée à gauche (pas centrée) */
.seances-grid.one-item{
  grid-template-columns: minmax(280px, 420px);
  justify-content: start;
  justify-items: start;
}

/* Cartes */
.seance-card{
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: clamp(12px, 2.5vw, 24px);
  box-shadow: 0 1px 2px rgba(0,0,0,.04);
  display: flex;
  flex-direction: column;
  gap: .5rem;
  width: 100%;            /* ← pas de largeur fixe */
  margin: 0;              /* ← évite le centrage involontaire */
}

.seance-titre{
  margin: 0 0 .25rem 0;
  font-size: clamp(1rem, 2.2vw, 1.25rem);
  line-height: 1.2;
  color: var(--text);
}

.seance-date{ color: var(--muted); font-size: .95rem; }
.seance-meta{ color: #374151; font-size: .95rem; }

/* CTA */
.seance-readmore{
  margin-top: auto;
  align-self: flex-start;
  display: inline-block;
  padding: .5rem .9rem;
  border-radius: 5px;
  text-decoration: none;
  background: var(--brand);
  color: #fff;
  transition: transform .1s ease, box-shadow .2s ease, opacity .2s ease;
}
.seance-readmore:hover{ color:#fff !important; transform: translateY(-1px); box-shadow: 0 6px 16px rgba(0,0,0,.08); }
.seance-readmore:focus-visible{
  outline: 2px solid #0000;
  box-shadow: 0 0 0 3px rgba(14,165,233,.35);
}

/* Coins plus doux sur mobile */
@media (max-width: 480px){
  .seance-card{ border-radius: var(--radius-md); }
}

/* =========================
   PAGE SINGLE
   ========================= */
.seance-single{
  margin: 0 auto;
  padding-inline: clamp(var(--spacing-sm), 3vw, var(--spacing-lg));
}
.seance-single h1{
  font-size: clamp(1.25rem, 3vw, 2rem);
  line-height: 1.2;
  margin: 0 0 .5rem 0;
  color: var(--text);
}
.seance-single .seance-date{ margin-bottom: .75rem; }
.seance-header{ margin-bottom: .75rem; }
.seance-stats{ color:#374151; margin:.25rem 0 0; }
.seance-back{ margin:0 0 .5rem 0; }

/* Sections empilées (Documents puis Délibérations) */
.seance-row{ margin-block: clamp(12px, 2.5vw, 20px); }
.muted{ color: var(--muted); }

/* =========================
   DOCUMENTS – vignettes + titres
   ========================= */
/* ===== Documents – grille unique, responsive ===== */

/* (Optionnel) Neutralise l'ancien layout par groupe */
.doc-group{ margin:0; padding:0; }
.doc-group-title{ display:none; }

/* Grille des cartes */
.doc-cards{
  --card-min: 190px;    /* largeur mini d'une carte */
  --card-max: 250px;    /* largeur maxi d'une carte */
  --gap: 12px;

  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(var(--card-min), var(--card-max)));
  gap: var(--gap);
  list-style: none;
  padding: 0;
  margin: 0;

  justify-content: start; /* évite le centrage avec espace libre */
  justify-items: stretch;
}

/* Carte document */
.doc-card{
  position:relative;
  border:1px solid var(--border, #e5e7eb);
  background: var(--bg-card, #fff);
  border-radius: var(--radius-md, 12px);
  padding:10px;
}

/* Lien cliquable dans la carte */
.doc-card-link{
  display:flex;
  flex-direction: column;
  align-items:center;
  gap:10px;
  text-decoration:none;
  min-height:64px;
}


.doc-card-link:hover .doc-title{ text-decoration:underline; }
.doc-card-link:focus-visible{
  outline: 2px solid transparent;
  box-shadow: 0 0 0 3px rgba(14,165,233,.35);
  border-radius:8px;
}

/* Vignette */
.doc-thumb-wrap{
  flex:0 0 auto;
  width:64px; height:64px;
  aspect-ratio: 1 / 1; /* garde un carré si tu changes la taille */
}
.doc-thumb{
  width:100%; height:100%;
  object-fit:cover;
  border-radius:8px;
  background:#f3f4f6;
  display:block;
}
.doc-thumb-icon{ color: var(--muted, #6b7280); }

/* Titre */
.doc-title{
  line-height:1.25;
  font-size:.90rem;
  color: var(--text, #111827);
  display:-webkit-box;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow:hidden;
}

/* Pastille du type (si tu la rends dans le HTML) */
.doc-badge{
  position:absolute; top:8px; right:8px;
  background:#111827; color:#fff;
  border-radius:999px;
  padding:.15rem .5rem;
  font-size:.75rem; line-height:1;
}

/* Dark mode */
@media (prefers-color-scheme: dark){
  .doc-card{ background:#0b0f17; border-color:#1f2937; }
  .doc-title{ color:#e5e7eb; }
  .doc-thumb-icon{ color:#9ca3af; }
}

/* =========================
   DÉLIBÉRATIONS – accordéons
   ========================= */
.seance-delibs-header{
  display:flex; justify-content:space-between; align-items:center; gap:.5rem; margin-bottom:.5rem;
}
.delibs-actions{ display:flex; gap:.5rem; align-items:center; }
.btn-link{
  background:none; border:0; padding:0; color: var(--brand); cursor:pointer; text-decoration:underline; font:inherit;
}
.btn-link:hover{ opacity:.85; }
.btn-link:focus-visible{ outline: 2px solid #0000; box-shadow: 0 0 0 3px rgba(14,165,233,.35); }

.delibs-toc ol{ margin:.25rem 0 1rem; padding-left:1.25rem; }
.delibs-accordions{ display:grid; gap:.5rem; }

details.delib{
  border:1px solid var(--border);
  border-radius: var(--radius-md);
  padding:.5rem .75rem;
  background:#fafafa;
}
details.delib[open]{ background:#f5f8ff; }
details.delib summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  gap:.5rem;
}
details.delib summary::-webkit-details-marker{ display:none; }

.delib-badge{
  display:inline-block; background:#111827; color:#fff; border-radius:999px;
  padding:.15rem .6rem; font-size:.9rem; white-space:nowrap;
}
.delib-summary-hint{ color: var(--muted); font-size:.95rem; }
.delib-description{ margin:.5rem 0; }
.delib-dates{ margin:.5rem 0 0; padding-left:1.25rem; }

/* Annexes dans chaque délibération */
.delib-annexes{ margin-top:.5rem; }
.delib-annexes h3{ margin:.25rem 0 .25rem; font-size:1rem; }
.delib-annexes-list{
  list-style:none; padding:0; margin:0;
  display:grid; gap:8px;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}
.doc-inline-link{ display:flex; align-items:center; gap:8px; text-decoration:none; }
.doc-inline-link:hover .doc-title{ text-decoration:underline; }
.doc-inline-link:focus-visible{ outline: 2px solid #0000; box-shadow: 0 0 0 3px rgba(14,165,233,.35); }
.doc-thumb-wrap.small{ width:32px; height:32px; }
.doc-thumb-wrap.small .doc-thumb{ border-radius:6px; }

/* =========================
   Accessibilité + Motion
   ========================= */
:where(a, button, .btn-link):focus{ outline-offset: 2px; }
@media (prefers-reduced-motion: reduce){
  .seance-readmore{ transition:none; }
}

/* =========================
   Dark mode
   ========================= */
@media (prefers-color-scheme: dark){
  .seance-card{ background:#0b0f17; border-color:#1f2937; }
  .seance-date, .seance-meta{ color:#9ca3af; }
  details.delib{ background:#0f1622; border-color:#1f2937; }
  details.delib[open]{ background:#0e1729; }
  .muted{ color:#9ca3af; }
}

/* =========================
   Impression
   ========================= */
@media print{
  .seance-readmore,
  .delibs-actions,
  .delibs-toc { display: none !important; }
  a[href^="http"]::after{ content:" (" attr(href) ")"; font-size:.9em; }
}
