/* Contenus transmis par la commune : projets, vie locale, publications, photothèque, villages */
.marches-filtres[hidden],
.publications-recherche[hidden] {
  display: none;
}

.contenu-attente {
  margin: 0;
  padding: 1rem 1.2rem;
  border: 1px dashed #9ea2cf;
  border-radius: 0.7rem;
  background: var(--white);
  color: var(--muted);
}

.mandature {
  display: grid;
  gap: 1.2rem;
  justify-items: start;
}

.mandature-intro {
  max-width: 60rem;
  margin: 0;
  font-size: 1.05rem;
}

.mandature-grille,
.projets-grille,
.fiches-grille {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr));
  gap: 1rem;
  width: 100%;
}

.mandature-axe,
.projet,
.fiche {
  display: grid;
  gap: 0.5rem;
  align-content: start;
  padding: 1.2rem;
  border: 1px solid #d9dbee;
  border-radius: 0.8rem;
  background: var(--white);
}

.mandature-axe h3,
.projet h3,
.fiche h3 {
  margin: 0;
  color: var(--kk-marine);
  font-size: 1.1rem;
}

.mandature-axe p,
.projet p,
.fiche p {
  margin: 0;
}

.mandature-num {
  color: var(--kk-or);
  font-family: var(--display);
  font-size: 1.6rem;
  font-weight: 700;
}

.mandature-axe ul,
.fiche-liste {
  display: grid;
  gap: 0.4rem;
  margin: 0;
  padding-left: 1.1rem;
}

.fiche-liste li {
  display: grid;
}

.fiche small,
.fiche-liste small {
  color: var(--muted);
}

.projet {
  padding: 0;
  overflow: hidden;
}

.projet--en-cours { border-top: 4px solid var(--kk-lagon); }
.projet--realise { border-top: 4px solid var(--kk-baobab); }
.projet--a-venir { border-top: 4px solid var(--kk-or); }

.projet-texte {
  display: grid;
  gap: 0.5rem;
  padding: 1.2rem;
}

.projet-visuel,
.fiche-photo {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.fiche-photo {
  border-radius: 0.5rem;
}

.projet-avancement {
  display: grid;
  gap: 0.25rem;
  font-size: var(--fs-sm, 0.9375rem);
}

.projet-avancement progress {
  width: 100%;
  height: 0.6rem;
  accent-color: var(--kk-marine);
}

.projet-meta {
  display: grid;
  gap: 0.4rem;
  margin: 0;
  font-size: var(--fs-sm, 0.9375rem);
}

.projet-meta dt {
  color: var(--muted);
  font-size: var(--fs-xs, 0.875rem);
}

.projet-meta dd {
  margin: 0;
}

.projet-docs {
  margin: 0;
  padding-left: 1.1rem;
}

.annuaire {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr));
  gap: 0.8rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.annuaire li {
  display: grid;
  gap: 0.25rem;
  padding: 1rem;
  border: 1px solid #d9dbee;
  border-radius: 0.7rem;
  background: var(--white);
}

.annuaire small {
  color: var(--muted);
}

.publications-recherche {
  max-width: 28rem;
  margin-bottom: 1rem;
}

.publications-liste {
  display: grid;
  margin: 0 0 1rem;
  padding: 0;
  list-style: none;
  border-top: 1px solid #e3e5f3;
}

.publications-liste li {
  display: grid;
  grid-template-columns: 11rem minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: center;
  padding: 0.9rem 0;
  border-bottom: 1px solid #e3e5f3;
}

.publications-liste small {
  display: block;
  color: var(--muted);
}

.publication-type {
  justify-self: start;
  padding: 0.15rem 0.5rem;
  border-radius: 0.3rem;
  background: #eaebf5;
  color: var(--kk-marine);
  font-size: var(--fs-xs, 0.875rem);
  font-weight: 700;
}

.publications-liste a {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
}

.galerie {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 14rem), 1fr));
  gap: 0.8rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.galerie li {
  display: grid;
  gap: 0.3rem;
}

.galerie small {
  color: var(--muted);
  font-size: var(--fs-sm, 0.9375rem);
}

.galerie-vignette {
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 0.6rem;
  background: #e3e5f3;
  cursor: zoom-in;
}

.galerie-image {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.visionneuse {
  width: min(64rem, calc(100% - 2rem));
  padding: 1rem;
  border: 0;
  border-radius: 0.8rem;
}

.visionneuse::backdrop {
  background: rgba(11, 15, 70, 0.8);
}

.visionneuse-image {
  display: block;
  width: 100%;
  max-height: 75vh;
  object-fit: contain;
}

.visionneuse-fermer {
  float: right;
  min-width: 2.6rem;
  min-height: 2.6rem;
  border: 0;
  background: none;
  font-size: 1.8rem;
  cursor: pointer;
}

.village-commune {
  display: grid;
  gap: 1.2rem;
}

.village-bloc h3 {
  margin: 0 0 0.5rem;
  color: var(--kk-marine);
}

.village-bloc p,
.village-bloc ul {
  margin: 0;
}

@media (max-width: 760px) {
  .publications-liste li {
    grid-template-columns: minmax(0, 1fr);
    gap: 0.4rem;
  }
}
