/*
 * CERRHUD — feuille de style principale
 * Système de design : jetons, primitives, composants, mise en page.
 * Palette provisoire : remplacer les valeurs de la section « Jetons » par
 * celles de la charte officielle une fois le logo fourni.
 */

/* ------------------------------------------------------------------ */
/* 1. Jetons                                                           */
/* ------------------------------------------------------------------ */

:root {
	/* Couleurs de marque — dérivées du logo CERRHUD.
	   Logo : violet #552584, magenta #F94CAF, cyan #79D5F1.
	   Les déclinaisons sont obtenues par assombrissement ou éclaircissement
	   de ces trois teintes ; tous les contrastes sont validés WCAG 2.1 AA. */
	--c-primary: #552584;
	--c-primary-dark: #3D1B5F;
	--c-primary-darker: #200E32;
	--c-primary-tint: #F3F0F6;
	--c-primary-tint-2: #DDD3E6;

	/* Magenta du logo, assombri : le rose d'origine (#F94CAF) n'atteint que
	   3,14:1 sur blanc et ne peut donc pas porter de texte. */
	--c-accent: #AE357A;
	--c-accent-dark: #8E2B64;
	--c-accent-tint: #FFF1F9;

	/* Couleur du troisième parcours (formation) : le cyan du logo. */
	--c-tertiary: #79D5F1;

	/* Bandeau d'accueil : dégradé et couleurs de mise en valeur. */
	--c-hero-from: #180A25;
	--c-hero-to: #461E6C;
	--c-hero-highlight: #F94CAF;
	--c-hero-eyebrow: #79D5F1;

	/* Pied de page, plus sombre que le fond profond. */
	--c-footer: #11071A;

	/* Neutres */
	--c-ink: #14201f;
	--c-ink-soft: #33413f;
	--c-muted: #5a6b69;
	--c-border: #dce5e3;
	--c-border-strong: #b9c8c5;
	--c-surface: #ffffff;
	--c-surface-alt: #f6f8f7;
	--c-surface-deep: #eef3f1;

	/* Typographie */
	--font-sans: "Inter", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;
	--font-serif: "Source Serif 4", "Iowan Old Style", Georgia, "Times New Roman", serif;

	--fs-xs: 0.8125rem;
	--fs-sm: 0.9375rem;
	--fs-base: 1.0625rem;
	--fs-md: 1.1875rem;
	--fs-lg: 1.375rem;
	--fs-xl: 1.75rem;
	--fs-2xl: 2.25rem;
	--fs-3xl: 3rem;

	--lh-tight: 1.15;
	--lh-snug: 1.3;
	--lh-base: 1.65;

	/* Espacement */
	--sp-1: 0.25rem;
	--sp-2: 0.5rem;
	--sp-3: 0.75rem;
	--sp-4: 1rem;
	--sp-5: 1.5rem;
	--sp-6: 2rem;
	--sp-7: 3rem;
	--sp-8: 4rem;
	--sp-9: 6rem;

	/* Formes */
	--radius-sm: 4px;
	--radius: 8px;
	--radius-lg: 14px;
	--radius-pill: 999px;

	--shadow-sm: 0 1px 2px rgba(20, 32, 31, 0.06);
	--shadow: 0 4px 16px rgba(20, 32, 31, 0.08);
	--shadow-lg: 0 12px 32px rgba(20, 32, 31, 0.12);

	--container: 1200px;
	--container-narrow: 760px;

	--transition: 160ms ease;
}

/* ------------------------------------------------------------------ */
/* 2. Remise à zéro                                                    */
/* ------------------------------------------------------------------ */

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

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		transition-duration: 0.01ms !important;
	}
}

body {
	margin: 0;
	background: var(--c-surface);
	color: var(--c-ink);
	font-family: var(--font-sans);
	font-size: var(--fs-base);
	line-height: var(--lh-base);
	-webkit-font-smoothing: antialiased;
}

img,
picture,
video,
svg {
	display: block;
	max-width: 100%;
	height: auto;
}

h1, h2, h3, h4, h5, h6 {
	margin: 0 0 var(--sp-4);
	font-weight: 700;
	line-height: var(--lh-tight);
	letter-spacing: -0.015em;
	color: var(--c-ink);
	text-wrap: balance;
}

h1 { font-size: clamp(2rem, 1.4rem + 2.6vw, var(--fs-3xl)); }
h2 { font-size: clamp(1.6rem, 1.25rem + 1.5vw, var(--fs-2xl)); }
h3 { font-size: var(--fs-xl); }
h4 { font-size: var(--fs-lg); }

p {
	margin: 0 0 var(--sp-4);
	text-wrap: pretty;
}

a {
	color: var(--c-primary-dark);
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
	transition: color var(--transition);
}

a:hover {
	color: var(--c-accent);
}

:focus-visible {
	outline: 3px solid var(--c-accent);
	outline-offset: 2px;
	border-radius: var(--radius-sm);
}

ul, ol {
	margin: 0 0 var(--sp-4);
	padding-left: 1.25rem;
}

hr {
	border: 0;
	border-top: 1px solid var(--c-border);
	margin: var(--sp-6) 0;
}

table {
	border-collapse: collapse;
	width: 100%;
}

th, td {
	border-bottom: 1px solid var(--c-border);
	padding: var(--sp-3) var(--sp-4);
	text-align: left;
}

th {
	font-weight: 600;
	background: var(--c-surface-alt);
}

/* ------------------------------------------------------------------ */
/* 3. Utilitaires                                                      */
/* ------------------------------------------------------------------ */

.container {
	width: min(100% - 2.5rem, var(--container));
	margin-inline: auto;
}

.container--narrow {
	width: min(100% - 2.5rem, var(--container-narrow));
}

.section {
	padding-block: var(--sp-8);
}

.section--tight { padding-block: var(--sp-7); }
.section--alt { background: var(--c-surface-alt); }
.section--deep { background: var(--c-primary-darker); color: #fff; }
.section--deep h2,
.section--deep h3 { color: #fff; }
.section--deep a { color: var(--c-tertiary); }

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.skip-link {
	position: absolute;
	top: -100px;
	left: var(--sp-4);
	z-index: 999;
	background: var(--c-accent);
	color: #fff;
	padding: var(--sp-3) var(--sp-4);
	border-radius: 0 0 var(--radius) var(--radius);
	font-weight: 600;
	text-decoration: none;
}

.skip-link:focus {
	top: 0;
	color: #fff;
}

.eyebrow {
	color: var(--c-accent);
	font-size: var(--fs-xs);
	font-weight: 700;
	letter-spacing: 0.09em;
	margin-bottom: var(--sp-2);
	text-transform: uppercase;
}

.lede {
	color: var(--c-ink-soft);
	font-size: var(--fs-md);
	max-width: 62ch;
}

.section__head {
	margin-bottom: var(--sp-6);
	max-width: 68ch;
}

/* ------------------------------------------------------------------ */
/* 4. Boutons                                                          */
/* ------------------------------------------------------------------ */

.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--sp-2);
	padding: 0.8rem 1.5rem;
	min-height: 48px;
	border: 2px solid transparent;
	border-radius: var(--radius-pill);
	font-family: inherit;
	font-size: var(--fs-sm);
	font-weight: 600;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: background var(--transition), color var(--transition), border-color var(--transition), transform var(--transition);
}

.btn:active { transform: translateY(1px); }

.btn--primary {
	background: var(--c-primary);
	border-color: var(--c-primary);
	color: #fff;
}

.btn--primary:hover {
	background: var(--c-primary-dark);
	border-color: var(--c-primary-dark);
	color: #fff;
}

.btn--accent {
	background: var(--c-accent);
	border-color: var(--c-accent);
	color: #fff;
}

.btn--accent:hover {
	background: var(--c-accent-dark);
	border-color: var(--c-accent-dark);
	color: #fff;
}

.btn--ghost {
	background: transparent;
	border-color: currentColor;
	color: var(--c-primary-dark);
}

.btn--ghost:hover {
	background: var(--c-primary-tint);
	color: var(--c-primary-dark);
}

.btn--on-dark {
	background: transparent;
	border-color: rgba(255, 255, 255, 0.6);
	color: #fff;
}

.btn--on-dark:hover {
	background: rgba(255, 255, 255, 0.14);
	border-color: #fff;
	color: #fff;
}

.btn--sm {
	min-height: 40px;
	padding: 0.5rem 1.1rem;
	font-size: var(--fs-xs);
}

.btn--block { width: 100%; }

/* ------------------------------------------------------------------ */
/* 5. En-tête                                                          */
/* ------------------------------------------------------------------ */

.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: var(--c-surface);
	border-bottom: 1px solid var(--c-border);
}

.header-utility {
	background: var(--c-primary-darker);
	color: #ddd2ea;
	font-size: var(--fs-xs);
}

.header-utility__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--sp-3);
	min-height: 40px;
	padding-block: var(--sp-2);
}

.header-utility a {
	color: #ddd2ea;
	text-decoration: none;
}

.header-utility a:hover {
	color: #fff;
	text-decoration: underline;
}

.header-utility__links {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-4);
	list-style: none;
	margin: 0;
	padding: 0;
}

.header-utility__contact {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-4);
	align-items: center;
}

.lang-switch {
	display: flex;
	gap: var(--sp-1);
	list-style: none;
	margin: 0;
	padding: 0;
}

.lang-switch a {
	border-radius: var(--radius-sm);
	padding: 2px 8px;
	font-weight: 600;
	text-transform: uppercase;
}

.lang-switch .is-active a,
.lang-switch a[aria-current="true"] {
	background: rgba(255, 255, 255, 0.18);
	color: #fff;
}

.header-main {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--sp-5);
	padding-block: var(--sp-4);
}

.site-brand {
	display: flex;
	align-items: center;
	gap: var(--sp-3);
	text-decoration: none;
	color: var(--c-ink);
	flex-shrink: 0;
}

.site-brand__logo {
	width: auto;
	height: 60px;
	max-width: 100%;
}

@media (max-width: 760px) {
	.site-brand__logo { height: 44px; }
}

@media (max-width: 420px) {
	.site-brand__logo { height: 34px; }
}

.site-brand__mark {
	display: grid;
	place-items: center;
	width: 46px;
	height: 46px;
	border-radius: 10px;
	background: var(--c-primary);
	color: #fff;
	font-weight: 800;
	font-size: 1rem;
	letter-spacing: 0.02em;
	flex-shrink: 0;
}

.site-brand__name {
	display: block;
	font-size: var(--fs-lg);
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1.1;
}

.site-brand__tagline {
	display: block;
	color: var(--c-muted);
	font-size: var(--fs-xs);
	font-weight: 500;
	line-height: 1.3;
	max-width: 30ch;
}

.header-actions {
	display: flex;
	align-items: center;
	gap: var(--sp-3);
}

/* Navigation principale */

.nav-toggle {
	display: none;
	align-items: center;
	gap: var(--sp-2);
	background: transparent;
	border: 2px solid var(--c-border-strong);
	border-radius: var(--radius);
	color: var(--c-ink);
	cursor: pointer;
	font-family: inherit;
	font-size: var(--fs-sm);
	font-weight: 600;
	min-height: 44px;
	padding: 0.4rem 0.9rem;
}

.nav-toggle__bars {
	display: grid;
	gap: 4px;
	width: 18px;
}

.nav-toggle__bars span {
	display: block;
	height: 2px;
	background: currentColor;
	border-radius: 2px;
}

.site-nav {
	border-top: 1px solid var(--c-border);
	background: var(--c-surface);
}

.site-nav__list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-1);
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-nav__list > li { position: relative; }

.site-nav__list > li > a {
	display: block;
	padding: var(--sp-3) var(--sp-4);
	color: var(--c-ink);
	font-weight: 600;
	font-size: var(--fs-sm);
	text-decoration: none;
	border-bottom: 3px solid transparent;
}

.site-nav__list > li > a:hover,
.site-nav__list > li:focus-within > a,
.site-nav__list > li.current-menu-item > a {
	color: var(--c-primary-dark);
	border-bottom-color: var(--c-accent);
}

.site-nav .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 20;
	min-width: 280px;
	margin: 0;
	padding: var(--sp-2);
	list-style: none;
	background: var(--c-surface);
	border: 1px solid var(--c-border);
	border-radius: var(--radius);
	box-shadow: var(--shadow-lg);
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity var(--transition), transform var(--transition), visibility var(--transition);
}

.site-nav__list > li:hover .sub-menu,
.site-nav__list > li:focus-within .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.site-nav .sub-menu a {
	display: block;
	padding: var(--sp-3);
	border-radius: var(--radius-sm);
	color: var(--c-ink);
	font-size: var(--fs-sm);
	text-decoration: none;
}

.site-nav .sub-menu a:hover {
	background: var(--c-primary-tint);
	color: var(--c-primary-dark);
}

/* Ajustements de l'en-tête sur petits écrans : le bloc de marque ne doit
   jamais pousser les actions hors de l'écran. */

@media (max-width: 760px) {
	.header-main {
		gap: var(--sp-3);
		padding-block: var(--sp-3);
	}

	.site-brand__tagline { display: none; }

	.site-brand__name { font-size: var(--fs-md); }

	.site-brand__mark {
		width: 40px;
		height: 40px;
		font-size: 0.9rem;
	}

	.header-actions .btn--ghost { display: none; }

	.header-utility__inner {
		justify-content: center;
		row-gap: var(--sp-1);
	}

	.header-utility__links { justify-content: center; }
}

@media (max-width: 420px) {
	.site-brand__name { font-size: var(--fs-sm); }

	.nav-toggle {
		padding-inline: 0.7rem;
		font-size: var(--fs-xs);
	}
}

@media (max-width: 960px) {
	.nav-toggle { display: inline-flex; }

	.header-actions .btn--appointment { display: none; }

	.site-nav {
		display: none;
		border-top: 1px solid var(--c-border);
	}

	.site-nav.is-open { display: block; }

	.site-nav__list {
		flex-direction: column;
		gap: 0;
		padding-block: var(--sp-2);
	}

	.site-nav__list > li > a {
		border-bottom: 1px solid var(--c-border);
		border-left: 3px solid transparent;
	}

	.site-nav__list > li > a:hover,
	.site-nav__list > li.current-menu-item > a {
		border-left-color: var(--c-accent);
		border-bottom-color: var(--c-border);
		background: var(--c-surface-alt);
	}

	.site-nav .sub-menu {
		position: static;
		opacity: 1;
		visibility: visible;
		transform: none;
		box-shadow: none;
		border: 0;
		border-radius: 0;
		background: var(--c-surface-alt);
		padding-left: var(--sp-5);
	}
}

/* ------------------------------------------------------------------ */
/* 6. Bandeau d'accueil                                                */
/* ------------------------------------------------------------------ */

.hero {
	position: relative;
	background-color: var(--c-primary-dark);
	background-image: linear-gradient(135deg, var(--c-hero-from) 0%, var(--c-hero-to) 100%);
	color: #fff;
	overflow: hidden;
}

.hero::after {
	content: "";
	position: absolute;
	right: -12%;
	top: -30%;
	width: 60%;
	aspect-ratio: 1;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(255, 255, 255, 0.09) 0%, transparent 68%);
	pointer-events: none;
}

.hero__inner {
	position: relative;
	z-index: 1;
	padding-block: var(--sp-9) var(--sp-8);
	max-width: 46rem;
}

.hero__eyebrow {
	color: var(--c-hero-eyebrow);
	font-size: var(--fs-xs);
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	margin-bottom: var(--sp-3);
}

.hero__title {
	color: #fff;
	font-size: clamp(2.1rem, 1.4rem + 3vw, 3.4rem);
	margin-bottom: var(--sp-4);
}

.hero__title em {
	font-style: normal;
	color: var(--c-hero-highlight);
}

.hero__lede {
	color: rgba(255, 255, 255, 0.92);
	font-size: var(--fs-md);
	max-width: 42rem;
	margin-bottom: var(--sp-6);
}

.hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-3);
}

/* Accès rapides sous le bandeau */

.quick-access {
	background: var(--c-accent);
	color: #fff;
}

.quick-access__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: var(--sp-3) var(--sp-6);
	padding-block: var(--sp-4);
	text-align: center;
}

.quick-access__label {
	font-weight: 700;
	font-size: var(--fs-sm);
}

.quick-access__link {
	display: inline-flex;
	align-items: center;
	gap: var(--sp-2);
	min-height: 44px;
	padding: 0.4rem 1.1rem;
	border: 2px solid rgba(255, 255, 255, 0.75);
	border-radius: var(--radius-pill);
	color: #fff;
	font-weight: 600;
	font-size: var(--fs-sm);
	text-decoration: none;
}

.quick-access__link:hover {
	background: #fff;
	color: var(--c-accent-dark);
	border-color: #fff;
}

/* ------------------------------------------------------------------ */
/* 7. Chiffres clés                                                    */
/* ------------------------------------------------------------------ */

.stats {
	display: grid;
	gap: var(--sp-4);
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	list-style: none;
	margin: 0;
	padding: 0;
}

.stat {
	background: var(--c-surface);
	border: 1px solid var(--c-border);
	border-radius: var(--radius);
	padding: var(--sp-5) var(--sp-4);
	text-align: center;
}

.stat__value {
	display: block;
	color: var(--c-primary);
	font-size: clamp(1.9rem, 1.4rem + 1.6vw, 2.6rem);
	font-weight: 800;
	line-height: 1;
	letter-spacing: -0.03em;
}

.stat__label {
	display: block;
	color: var(--c-muted);
	font-size: var(--fs-xs);
	font-weight: 600;
	letter-spacing: 0.04em;
	margin-top: var(--sp-2);
	text-transform: uppercase;
}

/* ------------------------------------------------------------------ */
/* 8. Cartes et grilles                                                */
/* ------------------------------------------------------------------ */

.grid {
	display: grid;
	gap: var(--sp-5);
}

.grid--2 { grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); }
.grid--3 { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.grid--4 { grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }

.card {
	display: flex;
	flex-direction: column;
	background: var(--c-surface);
	border: 1px solid var(--c-border);
	border-radius: var(--radius-lg);
	overflow: hidden;
	transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition);
}

.card:hover {
	border-color: var(--c-primary-tint-2);
	box-shadow: var(--shadow);
	transform: translateY(-2px);
}

.card__media {
	aspect-ratio: 16 / 9;
	background: var(--c-surface-deep);
	overflow: hidden;
}

.card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.card__body {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: var(--sp-5);
}

.card__meta {
	color: var(--c-muted);
	font-size: var(--fs-xs);
	font-weight: 600;
	letter-spacing: 0.04em;
	margin-bottom: var(--sp-2);
	text-transform: uppercase;
}

.card__title {
	font-size: var(--fs-lg);
	margin-bottom: var(--sp-3);
}

.card__title a {
	color: inherit;
	text-decoration: none;
}

.card__title a:hover { color: var(--c-primary-dark); }

.card__excerpt {
	color: var(--c-ink-soft);
	font-size: var(--fs-sm);
	margin-bottom: var(--sp-4);
}

.card__footer {
	margin-top: auto;
	padding-top: var(--sp-3);
}

/* Fiches de l'équipe */

.grid--persons { grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); }

.card--person {
	align-items: center;
	padding-top: var(--sp-5);
	text-align: center;
}

.card--person .card__body {
	align-items: center;
	padding-top: var(--sp-4);
}

/*
 * Le portrait est un carré : toutes les fiches s'alignent, qu'elles portent
 * une photographie ou le monogramme qui en tient lieu.
 */
.person__portrait {
	width: 104px;
	height: 104px;
	flex-shrink: 0;
	overflow: hidden;
	border-radius: 50%;
	background: var(--c-surface-deep);
}

.person__portrait img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.person__portrait--initiales {
	display: grid;
	place-items: center;
	background: var(--c-primary-tint);
	color: var(--c-primary-dark);
	font-size: var(--fs-lg);
	font-weight: 700;
	letter-spacing: 0.04em;
}

.person__portrait--large {
	width: 140px;
	height: 140px;
	font-size: var(--fs-xl);
}

.person__fonction {
	color: var(--c-ink-soft);
	font-size: var(--fs-sm);
	line-height: 1.4;
	margin-bottom: var(--sp-2);
}

.person__fonction--large {
	color: var(--c-primary-dark);
	font-size: var(--fs-md);
	font-weight: 600;
	margin-bottom: var(--sp-3);
}

.person__orcid {
	font-size: var(--fs-xs);
	margin-bottom: var(--sp-2);
}

.card--person .card__title { margin-bottom: var(--sp-2); }
.card--person .chips { justify-content: center; }

/*
 * Le rattachement reste une mention secondaire : en capitales, les noms de
 * département occupent quatre lignes et déséquilibrent la grille.
 */
.card--person .card__meta {
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
	font-size: var(--fs-xs);
}

.person-header {
	display: flex;
	align-items: center;
	gap: var(--sp-5);
	flex-wrap: wrap;
}

.person-header__texte { flex: 1 1 18rem; }
.person-header__texte h1 { margin-bottom: var(--sp-2); }

/* Cartes des trois parcours */

.pathway {
	position: relative;
	display: flex;
	flex-direction: column;
	background: var(--c-surface);
	border: 1px solid var(--c-border);
	border-top: 5px solid var(--c-primary);
	border-radius: var(--radius-lg);
	padding: var(--sp-6) var(--sp-5);
	transition: box-shadow var(--transition), transform var(--transition);
}

.pathway:hover {
	box-shadow: var(--shadow-lg);
	transform: translateY(-3px);
}

.pathway--lab { border-top-color: var(--c-accent); }
.pathway--research { border-top-color: var(--c-primary); }
.pathway--training { border-top-color: var(--c-tertiary); }

.pathway__icon {
	display: grid;
	place-items: center;
	width: 52px;
	height: 52px;
	margin-bottom: var(--sp-4);
	border-radius: 12px;
	background: var(--c-primary-tint);
	color: var(--c-primary-dark);
}

.pathway--lab .pathway__icon {
	background: var(--c-accent-tint);
	color: var(--c-accent);
}

.pathway__audience {
	color: var(--c-muted);
	font-size: var(--fs-xs);
	font-weight: 700;
	letter-spacing: 0.07em;
	margin-bottom: var(--sp-2);
	text-transform: uppercase;
}

.pathway__title {
	font-size: var(--fs-xl);
	margin-bottom: var(--sp-3);
}

.pathway__text {
	color: var(--c-ink-soft);
	font-size: var(--fs-sm);
	flex: 1;
	margin-bottom: var(--sp-5);
}

.pathway__links {
	list-style: none;
	margin: 0 0 var(--sp-5);
	padding: 0;
	font-size: var(--fs-sm);
}

.pathway__links li { margin-bottom: var(--sp-2); }

.pathway__links a {
	color: var(--c-primary-dark);
	text-decoration: none;
	font-weight: 500;
}

.pathway__links a:hover { text-decoration: underline; }

/* ------------------------------------------------------------------ */
/* 9. Thématiques                                                      */
/* ------------------------------------------------------------------ */

.themes {
	display: grid;
	gap: var(--sp-3);
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	list-style: none;
	margin: 0;
	padding: 0;
	counter-reset: theme;
}

.theme-item a {
	display: flex;
	align-items: flex-start;
	gap: var(--sp-3);
	height: 100%;
	padding: var(--sp-4);
	background: var(--c-surface);
	border: 1px solid var(--c-border);
	border-radius: var(--radius);
	color: var(--c-ink);
	font-size: var(--fs-sm);
	font-weight: 500;
	line-height: 1.4;
	text-decoration: none;
	transition: background var(--transition), border-color var(--transition);
}

.theme-item a:hover {
	background: var(--c-primary-tint);
	border-color: var(--c-primary-tint-2);
	color: var(--c-primary-dark);
}

.theme-item a::before {
	counter-increment: theme;
	content: counter(theme, decimal-leading-zero);
	color: var(--c-accent);
	font-size: var(--fs-xs);
	font-weight: 800;
	letter-spacing: 0.03em;
	padding-top: 2px;
	flex-shrink: 0;
}

/* ------------------------------------------------------------------ */
/* 10. Publications                                                    */
/* ------------------------------------------------------------------ */

.publication {
	display: grid;
	gap: var(--sp-2);
	padding: var(--sp-5) 0;
	border-bottom: 1px solid var(--c-border);
}

.publication:first-child { padding-top: 0; }

.publication__title {
	font-family: var(--font-serif);
	font-size: var(--fs-md);
	font-weight: 600;
	line-height: 1.35;
	margin: 0;
}

.publication__title a {
	color: var(--c-ink);
	text-decoration: none;
}

.publication__title a:hover {
	color: var(--c-primary-dark);
	text-decoration: underline;
}

.publication__meta {
	color: var(--c-muted);
	font-size: var(--fs-sm);
	margin: 0;
}

.publication__journal { font-style: italic; }

.publication__links {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-3);
	font-size: var(--fs-xs);
	font-weight: 600;
}

.publication__links a {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	color: var(--c-primary-dark);
	text-decoration: none;
}

.publication__links a:hover { text-decoration: underline; }

/* Filtres */

.filters {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-3);
	align-items: flex-end;
	padding: var(--sp-5);
	margin-bottom: var(--sp-6);
	background: var(--c-surface-alt);
	border: 1px solid var(--c-border);
	border-radius: var(--radius);
}

/*
 * « min-width: 0 » est indispensable : sans lui, un élément de formulaire
 * refuse de descendre sous la largeur de son contenu — ici les intitulés
 * de thématiques, très longs — et fait déborder la page sur mobile.
 */
.filters__field {
	display: flex;
	flex-direction: column;
	gap: var(--sp-1);
	flex: 1 1 200px;
	min-width: 0;
}

.filters select,
.filters input[type="search"] {
	max-width: 100%;
}

.filters__field label {
	font-size: var(--fs-xs);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--c-muted);
}

.filters select,
.filters input[type="search"] {
	min-height: 44px;
	padding: 0.5rem 0.75rem;
	border: 1px solid var(--c-border-strong);
	border-radius: var(--radius-sm);
	background: var(--c-surface);
	font-family: inherit;
	font-size: var(--fs-sm);
	color: var(--c-ink);
}

/* ------------------------------------------------------------------ */
/* 10 bis. Ressources téléchargeables                                  */
/* ------------------------------------------------------------------ */

.resources {
	display: grid;
	gap: var(--sp-3);
	list-style: none;
	margin: 0;
	padding: 0;
}

.resource {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: var(--sp-4);
	align-items: start;
	padding: var(--sp-5);
	background: var(--c-surface);
	border: 1px solid var(--c-border);
	border-radius: var(--radius-lg);
	transition: border-color var(--transition), box-shadow var(--transition);
}

.resource:hover {
	border-color: var(--c-primary-tint-2);
	box-shadow: var(--shadow);
}

@media (min-width: 720px) {
	.resource {
		grid-template-columns: auto 1fr auto;
		align-items: center;
	}
}

.resource__format {
	display: grid;
	place-items: center;
	min-width: 58px;
	height: 62px;
	padding-inline: var(--sp-2);
	border-radius: var(--radius);
	background: var(--c-primary);
	color: #fff;
	font-size: var(--fs-xs);
	font-weight: 800;
	letter-spacing: 0.05em;
}

.resource__body { min-width: 0; }

.resource__kind {
	color: var(--c-accent);
	font-size: var(--fs-xs);
	font-weight: 700;
	letter-spacing: 0.07em;
	margin: 0 0 var(--sp-1);
	text-transform: uppercase;
}

.resource__title {
	font-size: var(--fs-md);
	line-height: 1.3;
	margin: 0 0 var(--sp-2);
}

.resource__title a {
	color: var(--c-ink);
	text-decoration: none;
}

.resource__title a:hover {
	color: var(--c-primary-dark);
	text-decoration: underline;
}

.resource__desc {
	color: var(--c-ink-soft);
	font-size: var(--fs-sm);
	margin: 0 0 var(--sp-2);
}

.resource__meta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-3);
	color: var(--c-muted);
	font-size: var(--fs-xs);
	margin: 0;
}

.resource__meta span + span::before {
	content: "·";
	margin-right: var(--sp-3);
}

.resource__action {
	grid-column: 2;
	margin: var(--sp-3) 0 0;
}

@media (min-width: 720px) {
	.resource__action {
		grid-column: auto;
		margin: 0;
	}
}

/* ------------------------------------------------------------------ */
/* 11. Tarifs du laboratoire                                           */
/* ------------------------------------------------------------------ */

.price-table caption {
	caption-side: top;
	color: var(--c-muted);
	font-size: var(--fs-sm);
	margin-bottom: var(--sp-3);
	text-align: left;
}

.price-table td:last-child,
.price-table th:last-child {
	text-align: right;
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
	font-weight: 600;
}

/* ------------------------------------------------------------------ */
/* 12. Intranet                                                        */
/* ------------------------------------------------------------------ */

.cerrhud-intranet__grid {
	display: grid;
	gap: var(--sp-4);
	/* auto-fill, et non auto-fit : une catégorie d'une seule plateforme
	   garde une carte de largeur normale au lieu de s'étirer sur la ligne. */
	grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
	list-style: none;
	margin: 0;
	padding: 0;
}

.cerrhud-intranet__groupe + .cerrhud-intranet__groupe { margin-top: var(--sp-6); }

.cerrhud-intranet__categorie {
	font-size: var(--fs-md);
	margin-bottom: var(--sp-3);
}

/*
 * La carte n'est plus un lien : une plateforme sans adresse doit rester
 * annoncée sans rien proposer de cliquable.
 */
.cerrhud-tool {
	display: grid;
	grid-template-columns: 44px minmax(0, 1fr);
	grid-template-rows: auto 1fr;
	gap: var(--sp-3) var(--sp-4);
	height: 100%;
	padding: var(--sp-5);
	background: var(--c-surface);
	border: 1px solid var(--c-border);
	border-radius: var(--radius-lg);
	color: var(--c-ink);
}

.cerrhud-tool__icon {
	grid-column: 1;
	grid-row: 1;
}

.cerrhud-tool__body {
	grid-column: 2;
	grid-row: 1;
}

.cerrhud-tool__action {
	grid-column: 2;
	grid-row: 2;
	align-self: end;
	justify-self: start;
}

.cerrhud-tool__icon {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	flex-shrink: 0;
	border-radius: 10px;
	background: var(--c-primary-tint);
	color: var(--c-primary-dark);
	font-size: 1.2rem;
}

.cerrhud-tool__icon::before { content: "◆"; }
.cerrhud-tool__icon[data-icon="flask"]::before { content: "⚗"; }
.cerrhud-tool__icon[data-icon="calendar"]::before { content: "▤"; }
.cerrhud-tool__icon[data-icon="chart"]::before { content: "▥"; }
.cerrhud-tool__icon[data-icon="box"]::before { content: "▣"; }
.cerrhud-tool__icon[data-icon="people"]::before { content: "☗"; }
.cerrhud-tool__icon[data-icon="cloud"]::before { content: "☁"; }
.cerrhud-tool__icon[data-icon="book"]::before { content: "▤"; }
.cerrhud-tool__icon[data-icon="badge"]::before { content: "✦"; }
.cerrhud-tool__icon[data-icon="support"]::before { content: "⚙"; }

.cerrhud-tool__body { display: grid; gap: 4px; }

.cerrhud-tool__label {
	font-size: var(--fs-md);
	font-weight: 700;
	line-height: 1.25;
}

.cerrhud-tool__desc {
	color: var(--c-muted);
	font-size: var(--fs-sm);
	line-height: 1.45;
}

/* Statut : la pastille double une mention écrite, jamais seule porteuse du sens. */
.cerrhud-tool__statut {
	display: flex;
	align-items: baseline;
	gap: 8px;
	margin-top: 6px;
	font-size: var(--fs-xs);
	color: var(--c-muted);
}

.cerrhud-tool__pastille {
	width: 8px;
	height: 8px;
	flex-shrink: 0;
	border-radius: 50%;
	background: currentColor;
}

.cerrhud-tool--disponible .cerrhud-tool__statut { color: #1f6b46; }
.cerrhud-tool--deploiement .cerrhud-tool__statut { color: #7a4a00; }

.cerrhud-tool__externe { margin-left: 6px; }

/* Sans adresse : une mention, jamais un bouton inactif. */
.cerrhud-tool__note {
	color: var(--c-muted);
	font-size: var(--fs-xs);
	font-style: italic;
}

.cerrhud-intranet__footer { margin-top: var(--sp-6); }

.cerrhud-intranet--locked {
	max-width: 30rem;
	margin-inline: auto;
	padding: var(--sp-6);
	background: var(--c-surface-alt);
	border: 1px solid var(--c-border);
	border-radius: var(--radius-lg);
}

.cerrhud-intranet--locked input[type="text"],
.cerrhud-intranet--locked input[type="password"] {
	width: 100%;
	min-height: 46px;
	padding: 0.5rem 0.75rem;
	border: 1px solid var(--c-border-strong);
	border-radius: var(--radius-sm);
	font-size: var(--fs-sm);
}

.cerrhud-intranet--locked .button-primary,
.cerrhud-intranet--locked input[type="submit"] {
	width: 100%;
	min-height: 48px;
	background: var(--c-primary);
	border: 0;
	border-radius: var(--radius-pill);
	color: #fff;
	font-family: inherit;
	font-size: var(--fs-sm);
	font-weight: 600;
	cursor: pointer;
}

/* ------------------------------------------------------------------ */
/* 13. Dons                                                            */
/* ------------------------------------------------------------------ */

.cerrhud-don {
	max-width: 40rem;
	margin-inline: auto;
	padding: var(--sp-6);
	background: var(--c-surface);
	border: 1px solid var(--c-border);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow);
}

.cerrhud-don__amounts {
	display: grid;
	gap: var(--sp-2);
	grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
	border: 0;
	margin: 0 0 var(--sp-5);
	padding: 0;
}

.cerrhud-don__legend {
	font-weight: 700;
	margin-bottom: var(--sp-3);
	padding: 0;
}

.cerrhud-don__amount {
	display: block;
	position: relative;
}

.cerrhud-don__amount input {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
}

.cerrhud-don__amount span {
	display: grid;
	place-items: center;
	min-height: 52px;
	padding: 0.6rem;
	border: 2px solid var(--c-border-strong);
	border-radius: var(--radius);
	font-weight: 600;
	font-size: var(--fs-sm);
	cursor: pointer;
	transition: border-color var(--transition), background var(--transition), color var(--transition);
}

.cerrhud-don__amount input:checked + span {
	background: var(--c-primary-tint);
	border-color: var(--c-primary);
	color: var(--c-primary-dark);
}

.cerrhud-don__amount input:focus-visible + span {
	outline: 3px solid var(--c-accent);
	outline-offset: 2px;
}

.cerrhud-don__identity {
	display: grid;
	gap: var(--sp-3);
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	margin-bottom: var(--sp-5);
}

.cerrhud-don__identity label,
.cerrhud-don__custom label {
	display: block;
	font-size: var(--fs-xs);
	font-weight: 700;
	letter-spacing: 0.04em;
	margin-bottom: var(--sp-1);
	text-transform: uppercase;
	color: var(--c-muted);
}

.cerrhud-don__identity input,
.cerrhud-don__custom input {
	width: 100%;
	min-height: 46px;
	padding: 0.5rem 0.75rem;
	border: 1px solid var(--c-border-strong);
	border-radius: var(--radius-sm);
	font-family: inherit;
	font-size: var(--fs-sm);
}

.cerrhud-don__submit { width: 100%; }

.cerrhud-don__status {
	margin: var(--sp-4) 0 0;
	font-size: var(--fs-sm);
	font-weight: 600;
	min-height: 1.5em;
}

.cerrhud-don__status.is-success { color: var(--c-primary-dark); }
.cerrhud-don__status.is-error { color: #9b1c1c; }
.cerrhud-don__status.is-pending { color: var(--c-muted); }

.cerrhud-don__legal {
	color: var(--c-muted);
	font-size: var(--fs-xs);
	margin: var(--sp-3) 0 0;
}

.cerrhud-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 0.8rem 1.5rem;
	border: 2px solid transparent;
	border-radius: var(--radius-pill);
	font-family: inherit;
	font-size: var(--fs-sm);
	font-weight: 600;
	cursor: pointer;
	text-decoration: none;
}

.cerrhud-btn--accent {
	background: var(--c-accent);
	border-color: var(--c-accent);
	color: #fff;
}

.cerrhud-btn--accent:hover { background: var(--c-accent-dark); color: #fff; }

.cerrhud-btn--ghost {
	background: transparent;
	border-color: var(--c-border-strong);
	color: var(--c-primary-dark);
}

.cerrhud-alert {
	padding: var(--sp-4);
	background: var(--c-accent-tint);
	border-left: 4px solid var(--c-accent);
	border-radius: var(--radius-sm);
	color: var(--c-accent-dark);
	font-size: var(--fs-sm);
}

/* ------------------------------------------------------------------ */
/* 14. Partenaires                                                     */
/* ------------------------------------------------------------------ */

.partners {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: var(--sp-5) var(--sp-7);
	list-style: none;
	margin: 0;
	padding: 0;
}

.partners img {
	max-height: 52px;
	width: auto;
	filter: grayscale(1);
	opacity: 0.7;
	transition: filter var(--transition), opacity var(--transition);
}

.partners a:hover img {
	filter: grayscale(0);
	opacity: 1;
}

.partners__placeholder {
	display: grid;
	place-items: center;
	min-width: 130px;
	height: 52px;
	padding-inline: var(--sp-4);
	background: var(--c-surface);
	border: 1px dashed var(--c-border-strong);
	border-radius: var(--radius-sm);
	color: var(--c-muted);
	font-size: var(--fs-xs);
	font-weight: 600;
	letter-spacing: 0.04em;
}

/* ------------------------------------------------------------------ */
/* 15. Contenu éditorial                                               */
/* ------------------------------------------------------------------ */

.entry-header {
	padding-block: var(--sp-7) var(--sp-5);
	border-bottom: 1px solid var(--c-border);
	margin-bottom: var(--sp-6);
}

.entry-meta {
	color: var(--c-muted);
	font-size: var(--fs-sm);
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-3);
}

.entry-content {
	font-size: var(--fs-base);
}

.entry-content > * + * { margin-top: var(--sp-4); }

.entry-content h2 { margin-top: var(--sp-6); }
.entry-content h3 { margin-top: var(--sp-5); }

.entry-content img { border-radius: var(--radius); }

.entry-content blockquote {
	margin: var(--sp-5) 0;
	padding: var(--sp-4) var(--sp-5);
	border-left: 4px solid var(--c-primary);
	background: var(--c-surface-alt);
	border-radius: 0 var(--radius) var(--radius) 0;
	font-family: var(--font-serif);
	font-size: var(--fs-md);
}

.breadcrumbs {
	color: var(--c-muted);
	font-size: var(--fs-xs);
	padding-block: var(--sp-4);
}

.breadcrumbs a { color: var(--c-muted); }

.breadcrumbs span + span::before {
	content: "›";
	margin-inline: var(--sp-2);
}

/* Pagination */

.pagination {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-2);
	justify-content: center;
	margin-top: var(--sp-7);
}

.pagination .page-numbers {
	display: grid;
	place-items: center;
	min-width: 44px;
	min-height: 44px;
	padding-inline: var(--sp-3);
	border: 1px solid var(--c-border);
	border-radius: var(--radius-sm);
	color: var(--c-ink);
	font-weight: 600;
	font-size: var(--fs-sm);
	text-decoration: none;
}

.pagination .page-numbers:hover { background: var(--c-surface-alt); }

.pagination .page-numbers.current {
	background: var(--c-primary);
	border-color: var(--c-primary);
	color: #fff;
}

/* ------------------------------------------------------------------ */
/* 16. Bandeau d'appel et pied de page                                 */
/* ------------------------------------------------------------------ */

.cta-band {
	background: var(--c-primary-darker);
	color: #fff;
}

.cta-band__inner {
	display: grid;
	gap: var(--sp-5);
	align-items: center;
	padding-block: var(--sp-7);
}

@media (min-width: 860px) {
	.cta-band__inner {
		grid-template-columns: 1.4fr 1fr;
	}
}

.cta-band h2 { color: #fff; margin-bottom: var(--sp-3); }

.cta-band p { color: rgba(255, 255, 255, 0.88); margin-bottom: 0; }

.cta-band__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-3);
}

.site-footer {
	background: var(--c-footer);
	color: #c3b6d2;
	font-size: var(--fs-sm);
	padding-block: var(--sp-7) var(--sp-5);
}

.site-footer a {
	color: #ded3ea;
	text-decoration: none;
}

.site-footer a:hover {
	color: #fff;
	text-decoration: underline;
}

.footer-grid {
	display: grid;
	gap: var(--sp-6);
	grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
	padding-bottom: var(--sp-6);
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.footer-col h3 {
	color: #fff;
	font-size: var(--fs-xs);
	font-weight: 700;
	letter-spacing: 0.09em;
	margin-bottom: var(--sp-4);
	text-transform: uppercase;
}

.footer-col ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.footer-col li { margin-bottom: var(--sp-2); }

.footer-address {
	font-style: normal;
	line-height: 1.7;
}

.footer-address strong {
	display: block;
	color: #fff;
	font-size: var(--fs-xs);
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	margin-top: var(--sp-3);
}

.footer-address strong:first-child { margin-top: 0; }

.social-links {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-2);
	list-style: none;
	margin: var(--sp-4) 0 0;
	padding: 0;
}

.social-links a {
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	border: 1px solid rgba(255, 255, 255, 0.25);
	border-radius: 50%;
	font-size: var(--fs-xs);
	font-weight: 700;
}

.social-links a:hover {
	background: var(--c-primary);
	border-color: var(--c-primary);
	color: #fff;
	text-decoration: none;
}

.footer-bottom {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--sp-3);
	padding-top: var(--sp-5);
	color: #9c8bad;
	font-size: var(--fs-xs);
}

.footer-bottom ul {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-4);
	list-style: none;
	margin: 0;
	padding: 0;
}

/* ------------------------------------------------------------------ */
/* 17. Blocs de fiche                                                  */
/* ------------------------------------------------------------------ */

/* Chapô éditorial en tête d'une page de rubrique. */
.entry-intro {
	max-width: 70ch;
	margin-bottom: var(--sp-6);
}

/* Encadré d'information pratique rattaché à une fiche. */
.entry-note {
	margin: 0 0 var(--sp-6);
	padding: var(--sp-4) var(--sp-5);
	background: var(--c-primary-tint);
	border-left: 4px solid var(--c-primary);
	border-radius: var(--radius-sm);
}

.entry-note__title {
	margin: 0 0 var(--sp-2);
	font-size: var(--fs-md);
}

.entry-note p { margin: 0; }

.entry-note p + p { margin-top: var(--sp-3); }

/* Actions rattachées à une fiche : lien sortant, téléchargement. */
.entry-actions {
	margin: var(--sp-6) 0 0;
}

/* Étiquettes de classement : thématiques, départements. */
.chips {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-2);
	margin: var(--sp-3) 0 0;
	padding: 0;
	list-style: none;
}

.chips a {
	display: inline-block;
	padding: var(--sp-1) var(--sp-3);
	background: var(--c-primary-tint);
	color: var(--c-primary-dark);
	border-radius: var(--radius-pill);
	font-size: var(--fs-xs);
	text-decoration: none;
}

.chips a:hover,
.chips a:focus-visible {
	background: var(--c-primary-tint-2);
}

.chips--accent a {
	background: var(--c-accent-tint);
	color: var(--c-accent-dark);
}

/* Caractéristiques d'une fiche présentées en liste de définitions. */
.facts {
	margin: var(--sp-3) 0 0;
	font-size: var(--fs-sm);
	color: var(--c-muted);
}

.facts__row {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-2);
}

.facts__row + .facts__row { margin-top: var(--sp-1); }

.facts dt {
	font-weight: 600;
	color: var(--c-ink-soft);
}

.facts dd { margin: 0; }

/* État vide : la vue reste lisible tant qu'aucun contenu n'est saisi. */
.empty-state {
	margin: var(--sp-5) 0 0;
	padding: var(--sp-6) var(--sp-5);
	background: var(--c-surface-alt);
	border: 1px dashed var(--c-border-strong);
	border-radius: var(--radius);
	color: var(--c-muted);
	text-align: center;
}

.empty-state p { margin: 0; }

.empty-state p + p { margin-top: var(--sp-2); }

/* Sections d'une fiche ou d'une page de classement. */
.entry-section { margin-top: var(--sp-7); }

.entry-section__title {
	margin: 0 0 var(--sp-4);
	font-size: var(--fs-xl);
}

/* ------------------------------------------------------------------ */
/* 18. Impression                                                      */
/* ------------------------------------------------------------------ */

@media print {
	.site-header,
	.site-footer,
	.quick-access,
	.cta-band,
	.nav-toggle {
		display: none !important;
	}

	body { font-size: 11pt; color: #000; }

	a::after { content: " (" attr(href) ")"; font-size: 9pt; }
}
