/* Fiche activité — cahier §8.3, maquette Activite.dc.html. Mobile first. */

/* Bandeau : titres longs sans débordement */
.bandeau__title { max-width: 30ch; overflow-wrap: break-word; hyphens: auto; }

/* S2 — texte + encadré */
.activite-layout { display: grid; gap: 40px; align-items: start; }
.activite-body { max-width: 792px; min-width: 0; }
.activite-body h2 { margin: 0; }
.activite-body .title-rule { margin: 16px 0 24px; }
.activite-body h3 { margin-top: 32px; }
.activite-body ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.activite-body ul li { position: relative; padding-left: 20px; }
.activite-body ul li::before { content: ""; position: absolute; left: 0; top: 0.65em; width: 7px; height: 7px; border-radius: 50%; background: var(--vert-principal); }

.activite-infos { min-width: 0; padding: 24px; border-radius: var(--rayon); background: var(--fond-gris); }
.activite-infos__title { margin: 0 0 8px; font: 600 18px/1.4 var(--police-titre); color: var(--vert-institution); }
.activite-infos dl { margin: 0; }
.activite-infos__row { display: flex; flex-direction: column; gap: 2px; padding: 12px 0; border-bottom: 1px solid var(--filet); }
.activite-infos dt { font-size: var(--fs-petit); color: var(--encre-2); }
.activite-infos dd { margin: 0; font-size: 16px; font-weight: 600; line-height: 1.45; overflow-wrap: anywhere; }
.activite-infos__badges { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 4px; }
a.badge--contour:hover { border-color: var(--vert-principal); color: var(--vert-texte); text-decoration: none; }
.activite-docs__title { margin: 24px 0 8px; font: 600 15px/1.4 var(--police-titre); color: var(--encre); }
.activite-docs { margin: 0; padding: 0; list-style: none; }
.activite-docs a { display: flex; align-items: flex-start; gap: 10px; padding: 8px 0; font-size: 15px; line-height: 1.45; }
.activite-docs .icon { width: 18px; height: 18px; margin-top: 2px; color: var(--vert-principal); }

/* S3 — photos et vidéos */
.activite-medias .gallery-grid { gap: 16px; }
.activite-videos { display: grid; gap: 24px; margin-top: 24px; }
.activite-note { margin: 40px 0 0; }

/* S4 — partage */
.share { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding-bottom: 32px; margin-bottom: 48px; border-bottom: 1px solid var(--filet); }
.share__label { margin-right: 8px; font: 600 15px/1 var(--police-titre); color: var(--encre); }
.share__list { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; padding: 0; list-style: none; }
.share__btn { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 1px solid var(--filet); border-radius: 50%; background: var(--blanc); color: var(--vert-principal); cursor: pointer; }
.share__btn:hover, .share__btn:focus-visible { border-color: var(--vert-principal); }
.share__btn .icon { width: 18px; height: 18px; }
.share__status { font-size: var(--fs-petit); color: var(--vert-institution); }
.share:last-child { margin-bottom: 0; }

@media (min-width: 768px) {
	.activite-infos { padding: 28px; }
	.activite-videos:has(> :nth-child(2)) { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 992px) {
	.activite-layout { grid-template-columns: minmax(0, 2fr) minmax(300px, 1fr); gap: 48px; }
	.activite-layout--seul { grid-template-columns: minmax(300px, 480px); }
}
