/* Contenus publics : reprendre les couleurs, la police et les arrondis du site. */
.oda-public {
  padding: 4rem 0;
  background: #ffffff;
  color: #232323;
  scroll-margin-top: 7rem;
}
.oda-public--soft { background: #edefeb; }
.oda-public--intro { padding-top: 5rem; }
.oda-public .oda-kicker {
  margin: 0 0 0.75rem;
  color: #365328;
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.oda-public .oda-title {
  margin: 0 0 1.25rem;
  color: #163300;
  font-size: clamp(2rem, 3.5vw, 3.25rem);
  font-weight: 700;
  line-height: 1.15;
}
.oda-public .oda-lead {
  max-width: 850px;
  margin: 0 auto 2rem;
  font-size: 1.25rem;
  line-height: 1.6;
}
.oda-public .oda-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.5rem;
}
.oda-public .oda-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.oda-public .oda-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 2rem;
  border: 1px solid #dce4d7;
  border-radius: 2rem;
  background: #ffffff;
}
.oda-public .oda-card h3 {
  margin: 0 0 1rem;
  color: #163300;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.25;
}
.oda-public .oda-card p,
.oda-public .oda-card li {
  font-size: 1.125rem;
  line-height: 1.65;
}
.oda-public .oda-card p { margin: 0 0 1rem; }
.oda-public .oda-card ul { margin: 0 0 1rem; padding-left: 1.25rem; }
.oda-public .oda-card .oda-meta {
  color: #52634a;
  font-size: 0.95rem;
}
.oda-public .oda-card .oda-result {
  margin-top: auto;
  margin-bottom: 0;
  padding-top: 1rem;
  border-top: 1px solid #dce4d7;
}
.oda-public .oda-card img {
  /* La hauteur automatique remplace la dimension HTML native de chaque photo. */
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 10;
  flex-shrink: 0;
  margin-bottom: 1.5rem;
  object-fit: cover;
  border-radius: 1.25rem !important;
}
.oda-public .oda-stat {
  display: block;
  margin-bottom: 0.75rem;
  color: #163300;
  font-size: clamp(2.5rem, 4vw, 3.5rem);
  font-weight: 700;
  line-height: 1.1;
}
.oda-public .oda-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem;
}
.oda-public .oda-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0.75rem 1.5rem;
  border: 2px solid #163300;
  border-radius: 2rem;
  background: #163300;
  color: #ffffff;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.4;
  text-align: center;
  text-decoration: none;
}
.oda-public .oda-link:hover { background: #2d4b1c; color: #ffffff; }
.oda-public .oda-link:focus-visible { outline: 3px solid #698a50; outline-offset: 4px; }
.oda-public .oda-link--outline { background: transparent; color: #163300; }
.oda-public .oda-card .oda-link { align-self: flex-start; margin-top: auto; }
.oda-public .oda-note { margin: 1.5rem 0 0; color: #52634a; font-size: 1rem; line-height: 1.6; }
/* Les informations publiques et les téléchargements restent lisibles sans animation. */
.oda-public .hidden { visibility: visible; }
.oda-public .animate__animated { animation: none; }
@media (max-width: 991px) {
  .oda-public .oda-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .oda-public { padding: 2.5rem 0; }
  .oda-public--intro { padding-top: 3rem; }
  .oda-public .oda-grid,
  .oda-public .oda-grid--two { grid-template-columns: minmax(0, 1fr); }
  .oda-public .oda-card { padding: 1.5rem; }
  .oda-public .oda-lead { font-size: 1.125rem; }
  .oda-public .oda-actions .oda-link { width: 100%; }
}
