/* ==========================================================================
   Rapports Pour Toujours (rapports/template.php, graphiques de rapports/rendu.php).
   Une colonne de lecture : chaque graphique est une carte blanche sur le sable, avec sa conclusion en Georgia, puis
   le graphique, puis sa source. Un seul vert qui fonce (le Québec), un gris discret pour les comparaisons.
   À plat, sans ombre, rien ne bouge au survol. Le mouvement dépend de .rap-js (posée par la page seulement si le
   mouvement est permis), avec un filet de sécurité qui affiche tout après 4 s si le script ne tourne pas.
   ========================================================================== */

.rap {
	--rap-encre: #183030;
	--rap-doux: #4F6260;
	--rap-sable: #F7F3F1;
	--rap-ligne: #E4DED8;
	--rap-vert: #2F6B55;
	--rap-vert-pale: #8DBBA3;
	--rap-vert-voile: rgba(47, 107, 85, 0.10);
	--rap-gris: #8A9794;
	/* Le saumon de la marque (Seb 10-30 : un peu plus de saumon et de saumon pâle) : comparaison dans les graphiques,
	   bandes, tuiles, étiquettes de sondage. Les valeurs restent toujours écrites. */
	--rap-comparaison: #F39A8A;
	--rap-saumon-pale: #FDF0ED;
	--rap-saumon-moyen: #F9C3B8;
	--rap-saumon-encre: #9A3B2B;
	--rap-reste: #E9E3DD;
	--rap-menthe: #EEF6F1;
	--rap-ambre: #7A5412;
	--rap-ambre-pale: #FFF6E2;
	--rap-saumon: #F7AEA1;
	--rap-saumon-survol: #F39A8A;
	--rap-voix: Georgia, "Times New Roman", serif;
	width: 100%;
	flex: 1 1 100%;
	min-width: 0;
	color: var(--rap-encre);
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 17px;
	line-height: 1.55;
	background: var(--rap-sable);
	overflow-x: clip;
}

/* Astra traite /rapports/ comme une page de blogue : la page prend toute la largeur. */
.pt-rapport-page .site-content > .ast-container {
	display: block;
	max-width: none;
	padding: 0;
}

.rap *,
.rap *::before,
.rap *::after {
	box-sizing: border-box;
}

.rap p,
.rap figure,
.rap h1,
.rap h2,
.rap h3 {
	margin: 0;
}

.rap h1,
.rap h2,
.rap h3 {
	color: var(--rap-encre);
	text-wrap: balance;
}

.rap a {
	color: inherit;
	text-underline-offset: 3px;
}

.rap a:focus-visible,
.rap button:focus-visible {
	outline: 2px solid var(--rap-encre);
	outline-offset: 3px;
	border-radius: 4px;
}

.rap sup {
	font-size: 0.62em;
	font-weight: 400;
	line-height: 0;
}

.rap sup a {
	color: var(--rap-doux);
	text-decoration: none;
}

.rap sup a:hover {
	color: var(--rap-encre);
	text-decoration: underline;
}

.rap-wrap {
	width: 100%;
	max-width: 920px;
	margin: 0 auto;
	padding-left: max(24px, env(safe-area-inset-left, 0px));
	padding-right: max(24px, env(safe-area-inset-right, 0px));
}

.rap-apercu {
	background: var(--rap-ambre-pale);
	color: var(--rap-ambre);
	font-size: 14px;
	font-weight: 700;
	text-align: center;
	padding: 10px 16px;
}

/* ---- En-tête ---- */
/* Seb 10-30 : l'en-tête reste sable, sans saumon. */
.rap-tete {
	padding-block: 64px 40px;
	border-bottom: 1px solid var(--rap-ligne);
}

.rap-reperes {
	display: flex;
	flex-direction: column;
	gap: 4px;
	max-width: 66ch;
	font-size: 15px;
	color: var(--rap-doux);
}

/* Étiquette de preuve au-dessus de chaque graphique : la nature (pastille), puis la portée et la période. */
.rap-preuve {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 8px;
	font-size: 13px;
	color: var(--rap-doux);
}

.rap-preuve > span {
	display: inline-flex;
	align-items: center;
	min-height: 24px;
	padding: 0 10px;
	border-radius: 999px;
	font-weight: 700;
}

.rap-preuve--officiel > span {
	background: var(--rap-menthe);
	color: var(--rap-vert);
}

.rap-preuve--sondage > span {
	background: var(--rap-saumon-pale);
	color: var(--rap-saumon-encre);
}

.rap-preuve--calcul > span {
	background: var(--rap-sable);
	color: var(--rap-encre);
	box-shadow: inset 0 0 0 1px var(--rap-ligne);
}

.rap-tete .rap-wrap {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.rap-surtitre {
	font-size: 14px;
	font-weight: 700;
	color: var(--rap-doux);
}

.rap-surtitre a {
	text-decoration: none;
}

.rap-surtitre a:hover {
	color: var(--rap-encre);
	text-decoration: underline;
}

.rap h1 {
	font-size: var(--pt-h1-hero, clamp(34px, 4vw, 52px));
	line-height: 1.05;
	letter-spacing: -0.025em;
}

.rap-lead {
	font-size: 19px;
	max-width: 60ch;
}

.rap-meta {
	font-size: 14px;
	color: var(--rap-doux);
}

.rap-sommaire ol {
	margin: 8px 0 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	counter-reset: rap-som;
}

.rap-sommaire li {
	counter-increment: rap-som;
}

.rap-sommaire a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 40px;
	padding: 0 16px;
	border: 1px solid var(--rap-ligne);
	border-radius: 999px;
	background: #fff;
	font-size: 15px;
	font-weight: 700;
	text-decoration: none;
	transition: border-color .15s;
}

.rap-sommaire a::before {
	content: counter(rap-som);
	color: var(--rap-saumon-encre);
}

.rap-sommaire a:hover {
	border-color: var(--rap-encre);
}

/* ---- Corps ---- */
.rap-corps {
	display: flex;
	flex-direction: column;
	gap: 28px;
	padding-block: 40px 96px;
}

.rap-chapitre {
	display: flex;
	flex-direction: column;
	gap: 28px;
	scroll-margin-top: 96px;
}

.rap-chapitre__tete {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding-top: 32px;
	margin-top: 12px;
	border-top: 3px solid var(--rap-saumon);
}

.rap-ancre {
	display: block;
	height: 0;
	scroll-margin-top: 96px;
}

/* Les principaux constats : constat, lecture, limite, piste. */
.rap-constats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr));
	gap: 16px;
}

.rap-constat {
	background: #fff;
	border: 1px solid var(--rap-ligne);
	border-radius: 18px;
	padding: 22px 24px;
	display: flex;
	flex-direction: column;
	gap: 12px;
	min-width: 0;
}

.rap-constat h3 {
	font-family: var(--rap-voix);
	font-weight: 400;
	font-size: 22px;
	line-height: 1.25;
}

.rap-constat dl {
	margin: 0;
	display: grid;
	grid-template-columns: 112px minmax(0, 1fr);
	gap: 8px 14px;
	font-size: 15px;
}

.rap-constat dt {
	font-weight: 700;
	color: var(--rap-saumon-encre);
}

.rap-constat dd {
	margin: 0;
}

/* Ce que mesure chaque montant : des montants de natures différentes, jamais sur un même axe. */
.rap-mesures {
	display: flex;
	flex-direction: column;
}

.rap-mesure {
	display: grid;
	grid-template-columns: 150px minmax(0, 1fr);
	gap: 18px;
	align-items: baseline;
	padding: 14px 0;
	border-bottom: 1px solid var(--rap-ligne);
}

.rap-mesure:last-child {
	border-bottom: 0;
}

.rap-mesure__montant {
	font-size: 28px;
	font-weight: 700;
	letter-spacing: -0.02em;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.rap-mesure__quoi {
	font-weight: 700;
}

.rap-mesure__qui {
	font-size: 14px;
	color: var(--rap-doux);
}

/* Listes en texte (ce qu'on ne sait pas encore, pistes). */
.rap-points {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.rap-points li {
	position: relative;
	padding-left: 22px;
}

.rap-points li::before {
	content: "";
	position: absolute;
	left: 2px;
	top: 0.55em;
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: var(--rap-comparaison);
}

/* Méthodologie : blocs blancs. */
.rap-bloc {
	background: #fff;
	border: 1px solid var(--rap-ligne);
	border-radius: 18px;
	padding: 24px 26px;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.rap-bloc h3 {
	font-size: 19px;
	margin-top: 4px;
}

.rap-bloc p {
	max-width: 70ch;
}

.rap-legende-preuves,
.rap-revisions {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 10px;
	font-size: 15px;
}

.rap-legende-preuves .rap-preuve {
	display: inline-flex;
	margin-right: 6px;
}

.rap-revisions b {
	display: block;
}

.rap-chapitre h2 {
	font-size: var(--pt-h2, clamp(26px, 3vw, 34px));
	line-height: 1.1;
	letter-spacing: -0.02em;
}

.rap-chapitre__tete p {
	color: var(--rap-doux);
	max-width: 62ch;
}

/* ---- Une figure ---- */
.rap-fig {
	position: relative;
	background: #fff;
	border: 1px solid var(--rap-ligne);
	border-radius: 18px;
	padding: 28px 28px 20px;
	display: flex;
	flex-direction: column;
	gap: 18px;
	min-width: 0;
	scroll-margin-top: 96px;
}

.rap-fig__titre {
	font-family: var(--rap-voix);
	font-weight: 400;
	font-size: clamp(21px, 2.6vw, 25px);
	line-height: 1.3;
}

.rap-fig__titre--grand {
	max-width: 30ch;
}

.rap-source {
	font-size: 13px;
	line-height: 1.5;
	color: var(--rap-doux);
	border-top: 1px solid var(--rap-ligne);
	padding-top: 12px;
}

/* Mouvement : cachées le temps d'être remises à zéro, visibles après 4 s quoi qu'il arrive. */
.rap-js .rap-fig {
	visibility: hidden;
	animation: rap-filet 0s linear 4s forwards;
}

.rap-js .rap-fig.rap-pret {
	visibility: visible;
	animation: none;
}

@keyframes rap-filet {
	to { visibility: visible; }
}

.rap [data-apparait] {
	transition: opacity .45s ease-out, transform .45s ease-out;
}

.rap [data-apparait].rap-off {
	opacity: 0;
	transform: translateY(10px);
}

.rap [data-barre] {
	transform-origin: left center;
}

/* Chiffre d'ouverture */
.rap-fig--nombre {
	gap: 8px;
}

.rap-nombre {
	font-size: clamp(72px, 15vw, 148px);
	font-weight: 700;
	line-height: 0.95;
	letter-spacing: -0.035em;
	font-variant-numeric: tabular-nums;
}

/* Tuiles */
.rap-tuiles {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 185px), 1fr));
	gap: 12px;
}

.rap-tuile {
	background: var(--rap-sable);
	border-radius: 14px;
	padding: 16px 16px 14px;
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}

.rap-tuile strong {
	font-size: 32px;
	line-height: 1.05;
	letter-spacing: -0.02em;
	font-variant-numeric: tabular-nums;
}

.rap-tuile > span {
	font-size: 14px;
	line-height: 1.4;
	color: var(--rap-doux);
}

.rap-tuile__meta {
	margin-top: auto;
	padding-top: 6px;
	font-size: 12px;
	font-weight: 700;
	color: var(--rap-doux);
}

/* Ligne */
.rap-trace {
	width: 100%;
	min-width: 0;
	min-height: 250px;
}

.rap-trace svg {
	display: block;
	width: 100%;
	height: auto;
	overflow: visible;
}

.rap-trace .rap-grille line {
	stroke: var(--rap-ligne);
	stroke-width: 1;
}

.rap-trace .rap-axe {
	fill: var(--rap-doux);
	font-size: 12px;
	font-variant-numeric: tabular-nums;
}

.rap-trace .rap-courbe {
	fill: none;
	stroke: var(--rap-vert);
	stroke-width: 2.5;
	stroke-linejoin: round;
	stroke-linecap: round;
}

.rap-trace .rap-aire {
	fill: var(--rap-vert-voile);
	transition: opacity .6s ease-out;
}

.rap-trace .rap-note {
	transition: opacity .35s ease-out;
}

.rap-trace .rap-note text {
	fill: var(--rap-encre);
	font-size: 13px;
}

.rap-trace .rap-fort {
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}

.rap-trace .rap-point {
	fill: var(--rap-vert);
	stroke: #fff;
	stroke-width: 2;
}

.rap-trace .rap-onde {
	fill: none;
	stroke: var(--rap-vert);
	stroke-width: 1.5;
	opacity: 0;
}

.rap-trace .rap-onde.rap-go {
	animation: rap-onde 1.1s ease-out 1;
}

@keyframes rap-onde {
	from { r: 5; opacity: .7; }
	to { r: 18; opacity: 0; }
}

/* Le tableau de la ligne : pour les lecteurs d'écran et les moteurs; visible si le script ne dessine pas la ligne. */
.rap-donnees {
	position: absolute;
	top: 0;
	left: 0;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	border: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
}

/* Barres */
.rap-barres {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.rap-barre {
	display: grid;
	grid-template-columns: 200px minmax(0, 1fr) 96px;
	gap: 14px;
	align-items: center;
}

.rap-nom {
	font-size: 15px;
	line-height: 1.25;
}

.rap-nom small {
	display: block;
	color: var(--rap-doux);
	font-size: 13px;
}

.rap-piste {
	position: relative;
	height: 16px;
}

.rap-rempli {
	display: block;
	width: 100%;
	height: 16px;
	background: var(--rap-vert);
	border-radius: 0 4px 4px 0;
}

.rap-rempli.rap-canada {
	background: var(--rap-comparaison);
}

.rap-plage {
	position: absolute;
	top: 0;
	height: 16px;
	background: var(--rap-vert-pale);
	border-radius: 0 4px 4px 0;
}

.rap-plage--gris {
	background: var(--rap-saumon-moyen);
}

.rap-val {
	text-align: right;
	font-weight: 700;
	font-size: 16px;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

/* Paires Québec / Canada */
.rap-legende-serie {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 18px;
	font-size: 14px;
	color: var(--rap-doux);
}

.rap-legende-serie span {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.rap-legende-serie i {
	width: 14px;
	height: 14px;
	border-radius: 3px;
}

.rap-pastille-qc {
	background: var(--rap-vert);
}

.rap-pastille-ca {
	background: var(--rap-comparaison);
}

.rap-paire {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.rap-paire + .rap-paire {
	padding-top: 16px;
	border-top: 1px solid var(--rap-ligne);
}

.rap-paire__titre {
	font-weight: 700;
	font-size: 15px;
}

.rap-paire .rap-barre {
	grid-template-columns: 150px minmax(0, 1fr) 96px;
}

/* Gaufre : 100 carrés */
.rap-gaufre-zone {
	display: grid;
	grid-template-columns: minmax(0, 300px) minmax(0, 1fr);
	gap: 28px;
	align-items: center;
}

.rap-gaufre {
	display: grid;
	grid-template-columns: repeat(10, 1fr);
	gap: 4px;
	width: 100%;
	max-width: 300px;
}

.rap-case {
	aspect-ratio: 1;
	border-radius: 3px;
	background: var(--rap-reste);
	transform: scale(.78);
	transition: background-color .22s ease-out, transform .22s ease-out;
}

.rap-case.rap-pale {
	background: var(--rap-vert-pale);
	transform: scale(1);
}

.rap-case.rap-fonce {
	background: var(--rap-vert);
	transform: scale(1);
}

.rap-legende {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.rap-legende__ligne {
	display: grid;
	grid-template-columns: 16px minmax(0, 1fr);
	gap: 12px;
	align-items: start;
}

.rap-pastille {
	width: 16px;
	height: 16px;
	border-radius: 3px;
	margin-top: 6px;
}

.rap-pastille.rap-pale {
	background: var(--rap-vert-pale);
}

.rap-pastille.rap-fonce {
	background: var(--rap-vert);
}

.rap-pastille.rap-reste {
	background: var(--rap-reste);
	transform: scale(.78);
}

.rap-legende strong {
	display: block;
	font-size: 30px;
	line-height: 1.1;
	letter-spacing: -0.02em;
	font-variant-numeric: tabular-nums;
}

.rap-legende span {
	font-size: 15px;
	color: var(--rap-doux);
}

/* Calendrier */
.rap-cal-zone {
	display: grid;
	grid-template-columns: minmax(0, 340px) minmax(0, 1fr);
	gap: 28px;
	align-items: center;
}

.rap-cal {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 4px;
	width: 100%;
	max-width: 340px;
	font-variant-numeric: tabular-nums;
}

.rap-cal__sem {
	font-size: 12px;
	font-weight: 700;
	color: var(--rap-doux);
	text-align: center;
	padding-bottom: 2px;
}

.rap-j {
	aspect-ratio: 1;
	border-radius: 6px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	font-size: 13px;
	line-height: 1.1;
	background: var(--rap-sable);
	transition: background-color .3s ease-out, color .3s ease-out, opacity .3s ease-out, transform .3s ease-out;
}

.rap-j small {
	font-size: 9px;
	font-weight: 400;
	letter-spacing: 0.02em;
}

.rap-j.rap-off {
	opacity: 0;
	transform: scale(.85);
}

.rap-j.rap-sam {
	background: var(--rap-vert-pale);
	font-weight: 700;
}

.rap-j.rap-pic {
	background: var(--rap-vert);
	color: #fff;
	font-weight: 700;
	transform: scale(1.08);
}

.rap-cal__texte strong {
	display: block;
	font-size: clamp(48px, 9vw, 72px);
	line-height: 1;
	letter-spacing: -0.03em;
	font-variant-numeric: tabular-nums;
}

.rap-cal__texte p {
	color: var(--rap-doux);
	margin-top: 8px;
}

/* Fourchettes de coût */
.rap-echelle {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.rap-fourchette {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.rap-fourchette__tete {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 2px 12px;
	font-size: 15px;
}

.rap-fourchette__tete b {
	font-variant-numeric: tabular-nums;
}

.rap-fourchette__piste {
	display: block;
	position: relative;
	height: 18px;
	background: repeating-linear-gradient(90deg, var(--rap-ligne) 0 1px, transparent 1px 20%);
}

.rap-bande {
	position: absolute;
	top: 0;
	height: 18px;
	border-radius: 4px;
	background: var(--rap-vert);
}

.rap-bande--canada {
	background: var(--rap-gris);
}

.rap-bande--exemple {
	background: transparent;
	border: 2px dashed var(--rap-vert);
}

.rap-repere {
	position: absolute;
	top: -4px;
	width: 4px;
	height: 26px;
	margin-left: -2px;
	border-radius: 2px;
	background: var(--rap-encre);
}

.rap-axe {
	display: flex;
	justify-content: space-between;
	font-size: 12px;
	color: var(--rap-doux);
	font-variant-numeric: tabular-nums;
}

/* Anneaux */
.rap-anneaux {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
	gap: 24px;
}

.rap-anneau {
	display: grid;
	grid-template-columns: 120px minmax(0, 1fr);
	gap: 18px;
	align-items: center;
}

.rap-anneau__cercle {
	position: relative;
	display: block;
}

.rap-anneau svg {
	display: block;
	width: 120px;
	height: 120px;
	transform: rotate(-90deg);
}

.rap-anneau__fond {
	fill: none;
	stroke: var(--rap-reste);
	stroke-width: 12;
}

.rap-anneau__arc {
	fill: none;
	stroke: var(--rap-vert);
	stroke-width: 12;
	stroke-linecap: round;
}

.rap-anneau b {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	font-size: 26px;
	letter-spacing: -0.02em;
	font-variant-numeric: tabular-nums;
}

.rap-anneau p {
	font-size: 15px;
}

/* Calcul */
.rap-calcul {
	display: flex;
	flex-direction: column;
	font-variant-numeric: tabular-nums;
}

.rap-calcul__ligne {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	padding: 11px 0;
	border-bottom: 1px solid var(--rap-ligne);
}

.rap-calcul__ligne > :last-child {
	font-weight: 600;
	white-space: nowrap;
}

.rap-calcul__total {
	border-bottom: 0;
	padding-top: 14px;
	font-weight: 700;
	font-size: 20px;
	align-items: baseline;
}

.rap-calcul__total > :last-child {
	font-size: 26px;
	letter-spacing: -0.01em;
}

/* Vrai ou faux */
.rap-verdicts {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.rap-verdict {
	border: 1px solid var(--rap-ligne);
	border-radius: 14px;
	padding: 16px 18px;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.rap-verdict__tete {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 8px 12px;
}

.rap-verdict__tete b {
	font-size: 17px;
}

.rap-verdict p:last-child {
	font-size: 15px;
}

.rap-etat {
	border-radius: 999px;
	padding: 2px 10px;
	font-size: 13px;
	font-weight: 700;
	transition: opacity .3s ease-out .25s, transform .3s ease-out .25s;
}

.rap-verdict.rap-off .rap-etat {
	opacity: 0;
	transform: scale(1.25);
}

.rap-etat--vrai {
	background: var(--rap-menthe);
	color: var(--rap-vert);
}

.rap-etat--nuance {
	background: var(--rap-ambre-pale);
	color: var(--rap-ambre);
}

/* Leviers, du plus gros au plus petit */
.rap-leviers {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 10px;
	counter-reset: rap-lev;
}

.rap-leviers li {
	counter-increment: rap-lev;
	display: grid;
	grid-template-columns: 36px minmax(0, 1fr);
	gap: 12px;
	align-items: start;
}

.rap-leviers li::before {
	content: counter(rap-lev);
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: var(--rap-vert);
	color: #fff;
	font-weight: 700;
	font-size: 14px;
	display: grid;
	place-items: center;
}

.rap-leviers li p {
	padding-top: 3px;
}

/* Méthode, sources, citer */
.rap-sources {
	margin: 0;
	padding-left: 24px;
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 15px;
}

.rap-sources li {
	scroll-margin-top: 96px;
}

.rap-sources li:target {
	background: var(--rap-ambre-pale);
	border-radius: 4px;
}

.rap-citer {
	background: #fff;
	border: 1px solid var(--rap-ligne);
	border-radius: 18px;
	padding: 22px 24px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 12px;
}

.rap-citer h3 {
	font-size: 19px;
}

.rap-citation {
	font-family: var(--rap-voix);
	font-size: 17px;
	overflow-wrap: anywhere;
}

/* La suite */
/* Seb 10-30 : la bande de fin en vert pâle (la menthe du site). */
.rap-suite {
	margin-top: 16px;
	background: #F3FAF6;
	border: 1px solid #D3E6DA;
	color: var(--rap-encre);
	border-radius: 18px;
	padding: 36px 32px;
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.rap-suite h2 {
	font-size: var(--pt-h2, clamp(26px, 3vw, 34px));
	line-height: 1.15;
}

.rap-suite p {
	max-width: 56ch;
}

.rap-suite__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 6px;
}

.rap-suite .rap-btn--contour {
	border-color: #D3E6DA;
	background: #fff;
}

.rap-suite .rap-btn--contour:hover {
	border-color: var(--rap-encre);
}

/* Boutons du site : à plat, une pilule, la couleur seulement au survol. */
.rap-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: var(--pt-btn-h-sm, 44px);
	padding: 0 var(--pt-btn-pad-sm, 20px);
	border-radius: 999px;
	border: 1px solid transparent;
	font: inherit;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: var(--pt-btn-ls, -0.01em);
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color .15s, border-color .15s, color .15s;
}

/* « .rap a » (couleur héritée) l'emporterait sur une seule classe : la couleur des boutons est donc fixée ici. */
.rap .rap-btn--saumon {
	background: var(--rap-saumon);
	color: var(--rap-encre);
}

.rap .rap-btn--saumon:hover {
	background: var(--rap-saumon-survol);
	color: var(--rap-encre);
}

.rap .rap-btn--encre {
	background: var(--rap-encre);
	color: #fff;
}

.rap .rap-btn--encre:hover {
	background: #0b1616;
	color: #fff;
}

.rap-btn--contour {
	background: transparent;
	color: var(--rap-encre);
	border-color: var(--rap-ligne);
}

.rap-btn--contour:hover {
	border-color: var(--rap-encre);
}

/* Liste des rapports */
.rap-liste {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.rap-liste__item {
	background: #fff;
	border: 1px solid var(--rap-ligne);
	border-radius: 18px;
	padding: 28px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
}

.rap-liste__item h2 {
	font-size: var(--pt-h2, clamp(26px, 3vw, 34px));
	line-height: 1.15;
}

.rap-liste__item h2 a {
	text-decoration: none;
}

.rap-liste__item h2 a:hover {
	text-decoration: underline;
}

@media (max-width: 640px) {
	.rap {
		font-size: 16px;
	}

	.rap-tete {
		padding-block: 40px 28px;
	}

	.rap-wrap {
		padding-left: max(16px, env(safe-area-inset-left, 0px));
		padding-right: max(16px, env(safe-area-inset-right, 0px));
	}

	.rap-fig {
		padding: 20px 18px 16px;
	}

	.rap-gaufre-zone,
	.rap-cal-zone {
		grid-template-columns: minmax(0, 1fr);
		gap: 22px;
	}

	.rap-gaufre {
		max-width: 260px;
	}

	.rap-barre,
	.rap-paire .rap-barre {
		grid-template-columns: minmax(0, 1fr) 88px;
		row-gap: 6px;
	}

	.rap-nom {
		grid-column: 1 / -1;
	}

	.rap-anneau {
		grid-template-columns: 96px minmax(0, 1fr);
	}

	.rap-constat dl,
	.rap-mesure {
		grid-template-columns: minmax(0, 1fr);
		gap: 2px;
	}

	.rap-constat dd + dt {
		margin-top: 8px;
	}

	.rap-bloc {
		padding: 20px 18px;
	}

	.rap-anneau svg {
		width: 96px;
		height: 96px;
	}

	.rap-suite {
		padding: 28px 20px;
	}
}

.rap-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 4px;
}

/* Impression et PDF (le PDF du rapport est imprimé depuis cette page) : seulement le rapport, un chapitre par page,
   jamais un graphique coupé en deux. */
@page {
	size: Letter;
	margin: 14mm 14mm 16mm;
}

@media print {
	.pt-rapport-page #masthead,
	.pt-rapport-page .ast-above-header-wrap,
	.pt-rapport-page #colophon,
	.pt-rapport-page .pt-temoins {
		display: none !important;
	}

	.rap {
		font-size: 15px;
	}

	.rap,
	.rap-suite {
		background: #fff;
	}

	.rap-tete {
		padding-block: 8px 24px;
	}

	.rap-wrap {
		max-width: none;
		padding-left: 0;
		padding-right: 0;
	}

	.rap-chapitre {
		break-before: page;
	}

	.rap-chapitre__tete {
		border-top: 0;
		margin-top: 0;
		padding-top: 0;
	}

	.rap-citer,
	.rap-constat,
	.rap-sources li,
	.rap-revisions li {
		break-inside: avoid;
	}

	.rap h3 {
		break-after: avoid;
	}

	.rap-apercu,
	.rap-sommaire,
	.rap-suite,
	.rap-actions {
		display: none;
	}

	.rap-js .rap-fig {
		visibility: visible;
		animation: none;
	}

	.rap-fig {
		break-inside: avoid;
	}
}
