/* Page d'axe — cahier §8.1-8.2, maquette Axe.dc.html. Mobile first. */

/* S2 · Présentation */
.axe-presentation__grid { display: grid; gap: 40px; align-items: center; }
.axe-presentation__media { order: -1; }
.axe-presentation .section-header { margin-bottom: 24px; }
.axe-facts { display: grid; gap: 16px; margin: 28px 0 0; padding-top: 24px; border-top: 1px solid var(--filet); }
.axe-facts dt { margin-bottom: 4px; font-family: var(--police-titre); font-weight: 700; font-size: 14px; letter-spacing: 0.04em; text-transform: uppercase; color: var(--vert-texte); }
.axe-facts dd { margin: 0; font-size: 16px; line-height: 1.6; }

@media (min-width: 768px) {
	.axe-presentation__grid { grid-template-columns: repeat(2, 1fr); gap: 56px; }
	.axe-presentation__media { order: 0; }
}

/* S3 · Recherche : thématiques et publications */
.axe-s3__inner { display: grid; gap: 56px; }
.axe-s3 .section-header { margin-bottom: 24px; }
.axe-tile { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding: 24px; background: var(--blanc); border: 1px solid var(--filet); border-radius: var(--rayon); }
.axe-tile__title { margin: 0; font-size: 20px; line-height: 1.3; }
.axe-tile p { margin: 0; }
.pub-list { margin: 0; padding: 0; list-style: none; background: var(--blanc); border: 1px solid var(--filet); border-radius: var(--rayon); }
.pub-row { display: grid; gap: 8px; padding: 20px 24px; }
.pub-row + .pub-row { border-top: 1px solid var(--filet); }
.pub-row__year { font-family: var(--police-titre); font-weight: 700; color: var(--vert-texte); }
.pub-row__text { display: grid; gap: 4px; }
.pub-row__title { font-family: var(--police-titre); font-weight: 600; }
.pub-row__links { display: flex; flex-wrap: wrap; gap: 16px; }
.pub-row__links a { color: var(--vert-texte); font-weight: 600; }
.pub-row__links a:focus-visible { outline: 2px solid var(--vert-texte); outline-offset: 2px; }
.axe-empty { margin: 0; padding: 24px; background: var(--blanc); border: 1px dashed var(--filet); border-radius: var(--rayon); }

@media (min-width: 768px) {
	.pub-row { grid-template-columns: 72px 1fr auto; align-items: start; gap: 24px; }
}

/* S3 · Formation continue : catalogue et pré-inscription */
.formation-list { display: grid; gap: 16px; }
.formation-card { display: grid; gap: 20px; padding: 24px; background: var(--blanc); border: 1px solid var(--filet); border-radius: var(--rayon); }
.formation-card__main { display: grid; gap: 12px; align-content: start; }
.formation-card__badges { display: flex; flex-wrap: wrap; gap: 8px; }
.formation-card__title { margin: 0; font-size: 20px; line-height: 1.3; }
.formation-card__facts { display: grid; gap: 8px; margin: 0; }
.formation-card__facts dt { font-family: var(--police-titre); font-weight: 700; font-size: 13px; letter-spacing: 0.04em; text-transform: uppercase; color: var(--vert-texte); }
.formation-card__facts dd { margin: 0; line-height: 1.5; }
.formation-card__action { justify-self: start; }
.formation-card__action:focus-visible { outline: 2px solid var(--vert-texte); outline-offset: 2px; }

@media (min-width: 768px) {
	.formation-card { grid-template-columns: 1fr auto; align-items: center; gap: 32px; }
	.formation-card__facts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 24px; }
}

/* S3 · Éducation à la santé : campagnes, fiches conseils, vidéos */
.axe-split { display: grid; gap: 56px; }
.axe-downloads { display: grid; gap: 12px; }
.axe-videos { display: grid; gap: 24px; }
.axe-video { margin: 0; display: grid; gap: 12px; }
.axe-video figcaption { display: grid; gap: 4px; }
.axe-video__title { font-family: var(--police-titre); font-weight: 600; }
.axe-campagnes .card a:focus-visible { outline: 2px solid var(--vert-texte); outline-offset: 2px; }

.axe-campagnes .card__excerpt { display: block; -webkit-line-clamp: unset; overflow: visible; }
.axe-campagnes .card__badges { order: -1; margin-top: 0; padding-top: 0; }

@media (min-width: 768px) {
	.axe-videos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (min-width: 992px) {
	.axe-split { grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 48px; align-items: start; }
	.axe-split--soins { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); }
	.axe-split > :only-child { grid-column: 1 / -1; }
}

/* S3 · Soins et services : services, lieux et horaires, modalités */
.service-list { display: grid; gap: 16px; margin: 0; padding: 0; list-style: none; }
.service { display: flex; gap: 20px; align-items: flex-start; padding: 24px; background: var(--blanc); border: 1px solid var(--filet); border-radius: var(--rayon); }
.service__text { display: grid; gap: 8px; justify-items: start; }
.service__title { margin: 0; font-size: 20px; line-height: 1.3; }
.service__text p { margin: 0; }
.axe-table-wrap { background: var(--blanc); border: 1px solid var(--filet); border-radius: var(--rayon); overflow-x: auto; }
.axe-table { width: 100%; border-collapse: collapse; text-align: left; }
.axe-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
.axe-table tr { display: block; padding: 12px 16px; border-top: 1px solid var(--filet); }
.axe-table tbody tr:first-child { border-top: 0; }
.axe-table th, .axe-table td { display: block; padding: 2px 0; text-align: left; }
.axe-table tbody th { font-weight: 600; }
.axe-table td::before { content: attr(data-label) " : "; font-weight: 600; color: var(--encre-2); }
.steps { display: grid; gap: 16px; margin: 0; padding: 0; list-style: none; counter-reset: none; }
.steps__item { display: flex; gap: 16px; align-items: flex-start; }
.steps__num { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; flex: none; border-radius: 50%; background: var(--vert-texte); color: var(--blanc); font-family: var(--police-titre); font-weight: 700; }

@media (min-width: 768px) {
	.service-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.axe-table thead { position: static; width: auto; height: auto; overflow: visible; clip: auto; white-space: normal; }
	.axe-table tr { display: table-row; padding: 0; }
	.axe-table th, .axe-table td { display: table-cell; padding: 14px 20px; border-top: 1px solid var(--filet); vertical-align: top; }
	.axe-table thead th { border-top: 0; font-family: var(--police-titre); font-size: 13px; letter-spacing: 0.04em; text-transform: uppercase; color: var(--vert-texte); }
	.axe-table td::before { content: none; }
}

/* S4 · Activités menées : filtres serveur */
.axe-filters { display: flex; flex-wrap: wrap; gap: 16px 24px; align-items: flex-end; margin: 0 0 32px; padding: 16px 20px; background: var(--fond-gris); border-radius: var(--rayon); }
.axe-filters__group { display: grid; gap: 6px; margin: 0; padding: 0; border: 0; min-width: 0; }
.axe-filters__label { padding: 0; font-family: var(--police-titre); font-size: 13px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: var(--vert-texte); }
.axe-filters__buttons { display: flex; flex-wrap: wrap; gap: 8px; }
.axe-filters__btn { min-height: 44px; padding: 0 18px; font: inherit; font-weight: 600; color: var(--encre-2); background: var(--blanc); border: 1px solid var(--bordure-champ); border-radius: 999px; cursor: pointer; }
.axe-filters__btn--app { color: var(--vert-institution); background: var(--teinte-verte); border-color: var(--vert-institution); }
.axe-filters__btn--apa { color: var(--orange-texte); background: var(--teinte-orange); border-color: var(--orange-texte); }
.axe-filters__btn[aria-pressed="true"] { color: var(--blanc); background: var(--vert-texte); border-color: var(--vert-texte); }
.axe-filters__btn--apa[aria-pressed="true"] { background: var(--orange-texte); border-color: var(--orange-texte); }
.axe-filters__btn:focus-visible, .axe-filters select:focus-visible { outline: 3px solid var(--vert-texte); outline-offset: 2px; }
.axe-filters select { min-height: 44px; padding: 0 12px; font: inherit; background: var(--blanc); border: 1px solid var(--bordure-champ); border-radius: var(--rayon); }
.axe-filters__count { margin: 0; flex-basis: 100%; }
.axe-activites .pagination { margin-top: 32px; }
.axe-empty a { color: var(--vert-texte); }

/* S5 · À venir */
.upcoming { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.upcoming__item { display: flex; gap: 16px; align-items: center; padding: 16px 20px; color: inherit; text-decoration: none; background: var(--blanc); border: 1px solid var(--filet); border-radius: var(--rayon); }
.upcoming__item:hover .upcoming__title { text-decoration: underline; color: var(--vert-texte); }
.upcoming__item:focus-visible { outline: 3px solid var(--vert-texte); outline-offset: 2px; }
.upcoming__date { display: grid; place-items: center; align-content: center; flex: none; width: 64px; min-height: 64px; padding: 6px; color: var(--blanc); text-align: center; background: var(--vert-texte); border-radius: var(--rayon); }
.upcoming__big { font-family: var(--police-titre); font-size: 28px; font-weight: 700; line-height: 1; }
.upcoming__small { font-size: 13px; text-transform: uppercase; }
.upcoming__date--mois .upcoming__big { font-size: 20px; text-transform: uppercase; }
.upcoming__text { display: grid; gap: 4px; flex: 1; min-width: 0; }
.upcoming__title { font-family: var(--police-titre); font-weight: 600; }
