/*
 * Pages publiques des actualités : archive (/actualites/, /actualites/rubrique/<slug>/) et
 * single. Templates : templates/cpt/{archive,single}-actualite.php ; helpers et
 * enqueue (uniquement sur ces pages) : inc/front/actualites.php.
 *
 * Même langage visuel que le reste du site : hero gris à filigrane des armoiries
 * (pages intérieures), cartes blanches arrondies à bordure beige, rouge de marque
 * --tris-brand-red, étiquettes rouge pâle (shortcode [actualites_pilier_public]).
 * Neutres via --component-* / --enfold-* ; mêmes écarts assumés à CLAUDE.md §6.1
 * que les autres CSS du site (voir OVERRIDES.md).
 *
 * Chaque rubrique a un « ton » (couverture des cartes sans image) :
 * .tris-actus-tone--{red|slate|gold|night}, attribué en PHP par
 * theme_actualites_term_style(). Les icônes des pastilles de filtre restent,
 * elles, toutes au rouge de marque.
 */

.tris-actus-hero,
.tris-actus-wrap {
	--tris-actus-accent: var(--tris-brand-red, #c0392b);
	--tris-actus-accent-contrast: #ffffff;
	--tris-actus-accent-soft: #fceeed;
	--tris-actus-accent-soft: color-mix(in srgb, var(--tris-actus-accent) 10%, #ffffff);
	--tris-actus-heading: var(--enfold-main-color-heading, #2f3437);
	--tris-actus-text: #5b6165;
	--tris-actus-muted: #8a9096;
	--tris-actus-border: var(--enfold-main-color-border, #e6d8c9);
	--tris-actus-card-bg: #ffffff;
	--tris-actus-hero-surface: #f1f3f2;
	--tris-actus-hero-line: #e5e7e6;
	--tris-actus-pin: #b57e28;
	--tris-actus-pin-soft: #f6ecdb;
	--tris-actus-radius: 18px;
	--tris-actus-radius-lg: 24px;
	--tris-actus-shadow: 0 1px 2px rgba(31, 26, 22, 0.05), 0 1px 3px rgba(31, 26, 22, 0.04);
	--tris-actus-shadow-hover: 0 22px 44px -12px rgba(31, 26, 22, 0.16), 0 4px 12px rgba(31, 26, 22, 0.05);
	--tris-actus-ease: cubic-bezier(.2, .8, .2, 1);
	--tris-actus-transition: var(--component-transition, 0.25s ease);
	--tris-actus-tone: var(--tris-actus-accent);
}

.tris-actus-hero *,
.tris-actus-wrap * {
	box-sizing: border-box;
}

/* Tons de rubrique ------------------------------------------------------- */

.tris-actus-tone--red { --tris-actus-tone: var(--tris-actus-accent); }
.tris-actus-tone--slate { --tris-actus-tone: var(--enfold-main-color-primary, #5b6165); }
.tris-actus-tone--gold { --tris-actus-tone: #b57e28; }
.tris-actus-tone--night { --tris-actus-tone: var(--enfold-main-color-heading, #2f3437); }

.tris-actus-icon {
	display: block;
	flex: 0 0 auto;
	width: 1em;
	height: 1em;
}

/* =========================================================================
   HERO (archive + single)
   ========================================================================= */

#top .tris-actus-hero {
	position: relative;
	overflow: hidden;
	border-top: 0;
	border-bottom: 1px solid var(--tris-actus-hero-line);
	background-color: var(--tris-actus-hero-surface);
	background-image: var(--tris-actus-hero-bg, none);
	background-repeat: no-repeat;
	background-position: 100% 50%;
	background-size: auto 100%;
}

.tris-actus-hero__inner {
	position: relative;
	max-width: 780px;
	padding: 48px 0 76px;
}

.tris-actus-hero--single .tris-actus-hero__inner {
	max-width: 900px;
	padding-bottom: 56px;
}

/* Fil d'Ariane */
#top .tris-actus-crumbs ol {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 0;
	margin: 0 0 28px;
	padding: 0;
	list-style: none;
	font-size: 0.85rem;
}

#top .tris-actus-crumbs li {
	display: inline-flex;
	align-items: center;
	margin: 0;
	padding: 0;
	color: var(--tris-actus-muted);
}

#top .tris-actus-crumbs li:last-child span {
	display: inline-block;
	max-width: 42ch;
	overflow: hidden;
	color: var(--tris-actus-heading);
	white-space: nowrap;
	text-overflow: ellipsis;
	vertical-align: bottom;
}

#top .tris-actus-crumbs a {
	color: var(--tris-actus-muted);
	text-decoration: none;
	transition: color var(--tris-actus-transition);
}

#top .tris-actus-crumbs a:hover,
#top .tris-actus-crumbs a:focus-visible {
	color: var(--tris-actus-accent);
}

.tris-actus-crumbs__sep.tris-actus-icon {
	width: 14px;
	height: 14px;
	margin: 0 6px;
	opacity: 0.6;
}

.tris-actus-hero__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 12px;
	color: var(--tris-actus-accent);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.tris-actus-hero__eyebrow::before {
	content: "";
	width: 28px;
	height: 2px;
	border-radius: 2px;
	background: currentColor;
}

#top .tris-actus-hero__title {
	margin: 0;
	color: var(--tris-actus-heading);
	line-height: 1.08;
	letter-spacing: -0.01em;
	text-wrap: balance;
	overflow-wrap: anywhere;
}

.tris-actus-hero__intro {
	max-width: 620px;
	margin: 18px 0 0;
	color: var(--tris-actus-text);
	font-size: clamp(1rem, 0.95rem + 0.3vw, 1.125rem);
	line-height: 1.6;
}

#top .tris-actus-hero__stats {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 26px 0 0;
	padding: 0;
	list-style: none;
}

#top .tris-actus-hero__stats li {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	padding: 7px 14px 7px 12px;
	border: 1px solid var(--tris-actus-hero-line);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.72);
	color: var(--tris-actus-heading);
	font-size: 0.84rem;
	font-weight: 500;
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}

.tris-actus-hero__stats .tris-actus-icon {
	width: 16px;
	height: 16px;
	color: var(--tris-actus-accent);
}

.tris-actus-hero__tags {
	margin-bottom: 16px;
}

/* =========================================================================
   ZONE DE CONTENU
   ========================================================================= */

#top .tris-actus-wrap {
	border-top: 0;
}

.tris-actus {
	display: block;
	padding: 0 0 96px;
	color: var(--tris-actus-text);
}

/* --- Pastilles de rubrique (chevauchent le bas du hero) ------------------ */

.tris-actus-filters {
	position: relative;
	z-index: 2;
	display: flex;
	max-width: 100%;
	width: max-content;
	margin: -30px 0 44px;
	padding: 7px;
	border: 1px solid var(--tris-actus-border);
	border-radius: 20px;
	background: var(--tris-actus-card-bg);
	box-shadow: 0 12px 32px -14px rgba(31, 26, 22, 0.18), var(--tris-actus-shadow);
}

#top .tris-actus-filters__list {
	display: flex;
	flex: 1 1 auto;
	min-width: 0; /* autorise la liste à rétrécir (et donc à défiler) dans le flex parent */
	gap: 4px;
	margin: 0;
	padding: 0;
	list-style: none;
	overflow-x: auto;
	scroll-snap-type: x proximity;
	scroll-padding-inline: 40px;
	scrollbar-width: none;
	overscroll-behavior-x: contain;
}

/* Indices de défilement horizontal (classes posées par actualites.js quand la
   liste déborde) : fondu sur le bord concerné + flèche ronde cliquable. */
.tris-actus-filters::before,
.tris-actus-filters::after {
	content: "";
	position: absolute;
	z-index: 1;
	top: 1px;
	bottom: 1px;
	width: 72px;
	opacity: 0;
	pointer-events: none;
	transition: opacity var(--tris-actus-transition);
}

.tris-actus-filters::before {
	left: 1px;
	border-radius: 19px 0 0 19px;
	background: linear-gradient(to right, var(--tris-actus-card-bg) 45%, rgba(255, 255, 255, 0));
}

.tris-actus-filters::after {
	right: 1px;
	border-radius: 0 19px 19px 0;
	background: linear-gradient(to left, var(--tris-actus-card-bg) 45%, rgba(255, 255, 255, 0));
}

.tris-actus-filters.is-scroll-start::before,
.tris-actus-filters.is-scroll-end::after {
	opacity: 1;
}

#top .tris-actus-filters__arrow {
	position: absolute;
	z-index: 2;
	top: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	margin: -16px 0 0;
	padding: 0;
	border: 1px solid var(--tris-actus-border);
	border-radius: 50%;
	background: var(--tris-actus-card-bg);
	box-shadow: 0 4px 12px -2px rgba(31, 26, 22, 0.16);
	color: var(--tris-actus-accent);
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	transform: scale(0.8);
	transition: opacity var(--tris-actus-transition), transform var(--tris-actus-transition), visibility var(--tris-actus-transition), border-color var(--tris-actus-transition);
}

#top .tris-actus-filters__arrow[hidden] {
	display: none;
}

.tris-actus-filters__arrow--prev { left: 8px; }
.tris-actus-filters__arrow--next { right: 8px; }

.tris-actus-filters__arrow .tris-actus-icon {
	width: 16px;
	height: 16px;
}

#top .tris-actus-filters__arrow:hover {
	border-color: var(--tris-actus-accent);
}

#top .tris-actus-filters.is-scroll-start .tris-actus-filters__arrow--prev,
#top .tris-actus-filters.is-scroll-end .tris-actus-filters__arrow--next {
	opacity: 1;
	visibility: visible;
	transform: scale(1);
}

/* Invitation discrète à glisser : la flèche « suivant » oscille deux fois. */
.tris-actus-filters.is-scroll-end:not(.has-scrolled) .tris-actus-filters__arrow--next .tris-actus-icon {
	animation: tris-actus-nudge 1.4s var(--tris-actus-ease) 0.6s 2;
}

@keyframes tris-actus-nudge {
	0%, 100% { transform: translateX(0); }
	40% { transform: translateX(4px); }
}

.tris-actus-filters__list::-webkit-scrollbar {
	display: none;
}

#top .tris-actus-filters__list li {
	flex: 0 0 auto;
	margin: 0;
	padding: 0;
	scroll-snap-align: start;
}

#top .tris-actus-filters__pill {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	height: 42px;
	padding: 0 10px 0 16px;
	border-radius: 14px;
	color: var(--tris-actus-heading);
	font-size: 0.88rem;
	font-weight: 500;
	line-height: 1;
	text-decoration: none;
	white-space: nowrap;
	transition: background var(--tris-actus-transition), color var(--tris-actus-transition);
}

#top .tris-actus-filters__pill:hover {
	background: var(--component-color-bg, #fbfaf8);
	color: var(--tris-actus-heading);
}

#top .tris-actus-filters__pill:focus-visible {
	outline: 2px solid var(--tris-actus-accent);
	outline-offset: 1px;
}

.tris-actus-filters__icon.tris-actus-icon {
	width: 17px;
	height: 17px;
	color: var(--tris-actus-accent);
}

.tris-actus-filters__count {
	min-width: 24px;
	padding: 4px 7px;
	border-radius: 999px;
	background: var(--tris-actus-accent-soft);
	color: var(--tris-actus-accent);
	font-size: 0.72rem;
	font-weight: 700;
	text-align: center;
}

#top .tris-actus-filters__pill.is-active {
	background: var(--tris-actus-accent);
	color: var(--tris-actus-accent-contrast);
}

#top .tris-actus-filters__pill.is-active .tris-actus-filters__icon {
	color: var(--tris-actus-accent-contrast);
}

.tris-actus-filters__pill.is-active .tris-actus-filters__count {
	background: rgba(255, 255, 255, 0.22);
	color: var(--tris-actus-accent-contrast);
}

/* --- Étiquettes (mêmes que la section d'accueil) ------------------------- */

.tris-actus-card__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 8px;
	margin-bottom: 12px;
}

#top .tris-actus-tag {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 4px 9px;
	border-radius: 6px;
	background: var(--tris-actus-accent-soft);
	color: var(--tris-actus-accent);
	font-size: 0.66rem;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0.06em;
	text-decoration: none;
	text-transform: uppercase;
}

#top .tris-actus-tag--link:hover,
#top .tris-actus-tag--link:focus-visible {
	background: var(--tris-actus-accent);
	color: var(--tris-actus-accent-contrast);
}

#top .tris-actus-tag--pin {
	background: var(--tris-actus-pin-soft);
	color: var(--tris-actus-pin);
}

.tris-actus-tag .tris-actus-icon {
	width: 12px;
	height: 12px;
}

/* --- Boutons ------------------------------------------------------------- */

#top .tris-actus-btn {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	height: 48px;
	margin: 0;
	padding: 0 22px;
	border: 1.5px solid transparent;
	border-radius: 12px;
	font-family: inherit;
	font-size: 15px;
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	transition: background var(--tris-actus-transition), color var(--tris-actus-transition), border-color var(--tris-actus-transition), filter var(--tris-actus-transition);
}

.tris-actus-btn .tris-actus-icon {
	width: 18px;
	height: 18px;
	transition: transform 0.3s var(--tris-actus-ease);
}

#top .tris-actus-btn--primary {
	background: var(--tris-actus-accent);
	color: var(--tris-actus-accent-contrast);
}

#top .tris-actus-btn--primary:hover {
	filter: brightness(0.92);
	color: var(--tris-actus-accent-contrast);
}

#top .tris-actus-btn--ghost {
	border-color: var(--tris-actus-border);
	background: var(--tris-actus-card-bg);
	color: var(--tris-actus-heading);
}

#top .tris-actus-btn--ghost:hover {
	border-color: var(--tris-actus-accent);
	color: var(--tris-actus-accent);
}

#top .tris-actus-btn--outline {
	border-color: var(--tris-actus-accent);
	background: var(--tris-actus-card-bg);
	color: var(--tris-actus-accent);
}

#top .tris-actus-btn--outline:hover:not(:disabled) {
	background: var(--tris-actus-accent);
	color: var(--tris-actus-accent-contrast);
}

#top .tris-actus-btn:focus-visible {
	outline: 2px solid var(--tris-actus-accent);
	outline-offset: 3px;
}

#top .tris-actus-btn:disabled {
	cursor: progress;
	opacity: 0.75;
}

/* =========================================================================
   « À LA UNE »
   ========================================================================= */

.tris-actus-featured {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
	overflow: hidden;
	margin: 0 0 8px;
	border: 1px solid var(--tris-actus-border);
	border-radius: var(--tris-actus-radius-lg);
	background: var(--tris-actus-card-bg);
	box-shadow: var(--tris-actus-shadow);
	transition: transform 0.45s var(--tris-actus-ease), box-shadow 0.45s var(--tris-actus-ease), border-color var(--tris-actus-transition);
}

.tris-actus-featured:hover,
.tris-actus-featured:focus-within {
	border-color: color-mix(in srgb, var(--tris-actus-accent) 28%, var(--tris-actus-border));
	box-shadow: var(--tris-actus-shadow-hover);
	transform: translateY(-3px);
}

.tris-actus-featured__media {
	position: relative;
	min-height: 360px;
	overflow: hidden;
	background: var(--tris-actus-tone);
}

#top .tris-actus-featured__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
	border-radius: 0;
	object-fit: cover;
	transition: transform 0.8s var(--tris-actus-ease);
}

.tris-actus-featured:hover .tris-actus-featured__img {
	transform: scale(1.04);
}

/* Voile pour garder la date lisible sur une photo. */
.tris-actus-featured__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(20, 22, 24, 0.62) 0%, rgba(20, 22, 24, 0) 55%);
	pointer-events: none;
}

.tris-actus-featured__date {
	position: absolute;
	z-index: 1;
	bottom: 30px;
	left: 34px;
	display: flex;
	flex-direction: column;
	color: #ffffff;
	line-height: 1;
}

.tris-actus-featured__day {
	font-family: 'Newsreader', Georgia, "Times New Roman", serif;
	font-size: clamp(72px, 9vw, 112px);
	font-style: italic;
	font-weight: 500;
	letter-spacing: -0.04em;
}

.tris-actus-featured__month {
	margin-top: 8px;
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	opacity: 0.88;
}

.tris-actus-featured__body {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 48px 52px;
}

.tris-actus-featured__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 16px;
	color: var(--tris-actus-accent);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.tris-actus-featured__pulse {
	position: relative;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--tris-actus-accent);
}

.tris-actus-featured__pulse::after {
	content: "";
	position: absolute;
	inset: -4px;
	border-radius: 50%;
	border: 2px solid var(--tris-actus-accent);
	opacity: 0;
	animation: tris-actus-pulse 2.4s ease-out infinite;
}

@keyframes tris-actus-pulse {
	0% { transform: scale(0.6); opacity: 0.7; }
	80%, 100% { transform: scale(1.8); opacity: 0; }
}

#top .tris-actus-featured__title {
	margin: 0 0 14px;
	color: var(--tris-actus-heading);
	font-size: clamp(1.75rem, 1.2rem + 1.5vw, 2.5rem);
	line-height: 1.12;
	letter-spacing: -0.01em;
	text-wrap: balance;
}

#top .tris-actus-featured__link {
	color: inherit;
	text-decoration: none;
	transition: color var(--tris-actus-transition);
}

/* Lien étiré : toute la carte est cliquable, un seul lien pour les lecteurs d'écran. */
.tris-actus-featured__link::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	border-radius: inherit;
}

#top .tris-actus-featured__link:focus-visible {
	outline: none;
}

.tris-actus-featured__link:focus-visible::after {
	outline: 3px solid var(--tris-actus-accent);
	outline-offset: -3px;
}

.tris-actus-featured:hover .tris-actus-featured__link {
	color: var(--tris-actus-accent);
}

.tris-actus-featured__excerpt {
	margin: 0;
	color: var(--tris-actus-text);
	font-size: 1.02rem;
	line-height: 1.65;
}

.tris-actus-featured__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 28px;
}

/* Le PDF passe au-dessus du lien étiré. */
#top .tris-actus-featured__pdf {
	z-index: 2;
}

.tris-actus-featured:hover .tris-actus-btn--primary .tris-actus-icon {
	transform: translateX(4px);
}

/* =========================================================================
   COUVERTURE SANS IMAGE (cartes + « À la une »)
   ========================================================================= */

.tris-actus-cover {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	background-color: color-mix(in srgb, var(--tris-actus-tone) 9%, #ffffff);
	background-image: radial-gradient(color-mix(in srgb, var(--tris-actus-tone) 20%, transparent) 1.2px, transparent 1.7px);
	background-size: 16px 16px;
}

.tris-actus-cover__badge {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 68px;
	height: 68px;
	border-radius: 20px;
	background: #ffffff;
	box-shadow: 0 10px 24px -8px color-mix(in srgb, var(--tris-actus-tone) 45%, transparent), 0 1px 2px rgba(31, 26, 22, 0.06);
	color: var(--tris-actus-tone);
	transition: transform 0.5s var(--tris-actus-ease);
}

.tris-actus-cover__badge .tris-actus-icon {
	width: 30px;
	height: 30px;
}

.tris-actus-cover__watermark.tris-actus-icon {
	position: absolute;
	right: -26px;
	bottom: -34px;
	width: 180px;
	height: 180px;
	color: var(--tris-actus-tone);
	opacity: 0.1;
	stroke-width: 1.2;
	transform: rotate(-12deg);
	transition: transform 0.7s var(--tris-actus-ease);
}

/* Variante « À la une » : aplat du ton, motif clair. */
.tris-actus-cover--featured {
	background-color: var(--tris-actus-tone);
	background-image:
		radial-gradient(rgba(255, 255, 255, 0.16) 1.2px, transparent 1.7px),
		linear-gradient(150deg, rgba(255, 255, 255, 0.12) 0%, rgba(0, 0, 0, 0.18) 100%);
	background-size: 18px 18px, 100% 100%;
}

.tris-actus-cover--featured .tris-actus-cover__watermark.tris-actus-icon {
	top: 50%;
	right: -40px;
	bottom: auto;
	width: 300px;
	height: 300px;
	margin-top: -170px;
	color: #ffffff;
	opacity: 0.16;
	stroke-width: 1;
}

.tris-actus-featured:hover .tris-actus-cover__watermark,
.tris-actus-card:hover .tris-actus-cover__watermark {
	transform: rotate(-4deg) scale(1.05);
}

/* =========================================================================
   GRILLE DE CARTES
   ========================================================================= */

.tris-actus__head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 10px 24px;
	margin: 56px 0 22px;
}

.tris-actus-featured + .tris-actus__head,
.tris-actus-filters + .tris-actus__head {
	margin-top: 0;
}

.tris-actus-featured + .tris-actus__head {
	margin-top: 56px;
}

#top .tris-actus__heading {
	margin: 0;
	color: var(--tris-actus-heading);
	font-size: clamp(1.5rem, 1.1rem + 1.1vw, 2rem);
	line-height: 1.15;
}

#top .tris-actus__reset {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--tris-actus-heading);
	font-size: 0.9rem;
	font-weight: 600;
	text-decoration: none;
	transition: color var(--tris-actus-transition);
}

.tris-actus__reset .tris-actus-icon {
	width: 16px;
	height: 16px;
	transition: transform 0.3s var(--tris-actus-ease);
}

#top .tris-actus__reset:hover,
#top .tris-actus__reset:focus-visible {
	color: var(--tris-actus-accent);
}

.tris-actus__reset:hover .tris-actus-icon {
	transform: translateX(3px);
}

#top .tris-actus__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 28px;
	margin: 0;
	padding: 0;
	list-style: none;
}

#top .tris-actus__item {
	display: flex;
	margin: 0;
	padding: 0;
	list-style: none;
}

/* Révélation au scroll (classes posées par actualites.js uniquement). */
.tris-actus__item[data-actus-reveal] {
	transition:
		opacity 0.7s var(--tris-actus-ease) var(--tris-actus-delay, 0ms),
		transform 0.7s var(--tris-actus-ease) var(--tris-actus-delay, 0ms);
}

.tris-actus__item.is-reveal-pending {
	opacity: 0;
	transform: translateY(32px);
}

.tris-actus-card {
	position: relative;
	display: flex;
	flex-direction: column;
	width: 100%;
	overflow: hidden;
	border: 1px solid var(--tris-actus-border);
	border-radius: var(--tris-actus-radius);
	background: var(--tris-actus-card-bg);
	box-shadow: var(--tris-actus-shadow);
	transition: transform 0.4s var(--tris-actus-ease), box-shadow 0.4s var(--tris-actus-ease), border-color var(--tris-actus-transition);
}

.tris-actus-card:hover,
.tris-actus-card:focus-within {
	border-color: color-mix(in srgb, var(--tris-actus-tone) 32%, var(--tris-actus-border));
	box-shadow: var(--tris-actus-shadow-hover);
	transform: translateY(-5px);
}

.tris-actus-card__media {
	position: relative;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: color-mix(in srgb, var(--tris-actus-tone) 9%, #ffffff);
}

#top .tris-actus-card__img {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
	border-radius: 0;
	object-fit: cover;
	transition: transform 0.7s var(--tris-actus-ease);
}

.tris-actus-card:hover .tris-actus-card__img {
	transform: scale(1.05);
}

.tris-actus-card:hover .tris-actus-cover__badge {
	transform: translateY(-3px) scale(1.06);
}

.tris-actus-card__date {
	position: absolute;
	z-index: 1;
	top: 14px;
	left: 14px;
	display: inline-flex;
	align-items: baseline;
	gap: 6px;
	padding: 7px 12px;
	border-radius: 12px;
	background: rgba(255, 255, 255, 0.9);
	box-shadow: 0 2px 10px rgba(31, 26, 22, 0.08);
	color: var(--tris-actus-heading);
	line-height: 1;
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
}

.tris-actus-card__day {
	font-family: 'Newsreader', Georgia, "Times New Roman", serif;
	font-size: 1.4rem;
	font-weight: 600;
}

.tris-actus-card__month {
	color: var(--tris-actus-muted);
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.tris-actus-card__body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	padding: 22px 24px 20px;
}

#top .tris-actus-card__title {
	margin: 0 0 10px;
	color: var(--tris-actus-heading);
	font-size: 1.32rem;
	line-height: 1.25;
	overflow-wrap: anywhere;
}

#top .tris-actus-card__link {
	color: inherit;
	text-decoration: none;
	transition: color var(--tris-actus-transition);
}

.tris-actus-card__link::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	border-radius: inherit;
}

#top .tris-actus-card__link:focus-visible {
	outline: none;
}

.tris-actus-card__link:focus-visible::after {
	outline: 3px solid var(--tris-actus-accent);
	outline-offset: -3px;
}

.tris-actus-card:hover .tris-actus-card__link {
	color: var(--tris-actus-accent);
}

.tris-actus-card__excerpt {
	display: -webkit-box;
	margin: 0;
	overflow: hidden;
	color: var(--tris-actus-text);
	font-size: 0.93rem;
	line-height: 1.6;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	line-clamp: 3;
}

.tris-actus-card__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-top: auto;
	padding-top: 18px;
}

.tris-actus-card__more {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	color: var(--tris-actus-accent);
	font-size: 0.86rem;
	font-weight: 600;
}

.tris-actus-card__more .tris-actus-icon {
	width: 16px;
	height: 16px;
	transition: transform 0.3s var(--tris-actus-ease);
}

.tris-actus-card:hover .tris-actus-card__more .tris-actus-icon {
	transform: translateX(5px);
}

#top .tris-actus-card__pdf {
	position: relative;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 11px;
	border: 1px solid var(--tris-actus-border);
	border-radius: 999px;
	background: var(--tris-actus-card-bg);
	color: var(--tris-actus-heading);
	font-size: 0.74rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-decoration: none;
	transition: border-color var(--tris-actus-transition), color var(--tris-actus-transition);
}

.tris-actus-card__pdf .tris-actus-icon {
	width: 15px;
	height: 15px;
	color: var(--tris-actus-accent);
}

#top .tris-actus-card__pdf:hover,
#top .tris-actus-card__pdf:focus-visible {
	border-color: var(--tris-actus-accent);
	color: var(--tris-actus-accent);
}

#top .tris-actus-card__pdf:focus-visible {
	outline: 2px solid var(--tris-actus-accent);
	outline-offset: 2px;
}

/* --- Squelettes de chargement ------------------------------------------- */

#top .tris-actus-skeleton {
	display: flex;
	flex-direction: column;
	gap: 12px;
	overflow: hidden;
	padding-bottom: 26px;
	border: 1px solid var(--tris-actus-border);
	border-radius: var(--tris-actus-radius);
	background: var(--tris-actus-card-bg);
}

.tris-actus-skeleton__media,
.tris-actus-skeleton__line {
	display: block;
	background: linear-gradient(90deg, #f2efea 0%, #faf8f5 45%, #f2efea 90%);
	background-size: 220% 100%;
	animation: tris-actus-shimmer 1.3s linear infinite;
}

.tris-actus-skeleton__media {
	aspect-ratio: 16 / 10;
	margin-bottom: 10px;
}

.tris-actus-skeleton__line {
	height: 12px;
	margin: 0 24px;
	border-radius: 6px;
}

.tris-actus-skeleton__line.is-short { width: 30%; }
.tris-actus-skeleton__line.is-title { width: 78%; height: 20px; }
.tris-actus-skeleton__line.is-medium { width: 60%; }

@keyframes tris-actus-shimmer {
	from { background-position: 120% 0; }
	to { background-position: -120% 0; }
}

/* --- « Afficher plus » / fin de liste ------------------------------------ */

.tris-actus__more {
	position: relative;
	display: flex;
	justify-content: center;
	margin-top: 48px;
}

.tris-actus__more[hidden] {
	display: none;
}

.tris-actus__more-count {
	min-width: 26px;
	padding: 4px 8px;
	border-radius: 999px;
	background: var(--tris-actus-accent-soft);
	color: var(--tris-actus-accent);
	font-size: 0.75rem;
	font-weight: 700;
	transition: background var(--tris-actus-transition), color var(--tris-actus-transition);
}

.tris-actus-btn--outline:hover:not(:disabled) .tris-actus__more-count {
	background: rgba(255, 255, 255, 0.22);
	color: var(--tris-actus-accent-contrast);
}

/* Déclencheur du chargement automatique, juste sous la liste. */
.tris-actus__sentinel {
	position: absolute;
	top: 0;
	left: 0;
	width: 1px;
	height: 1px;
}

.tris-actus__end {
	display: flex;
	align-items: center;
	gap: 16px;
	width: 100%;
	max-width: 420px;
	margin: 0;
	color: var(--tris-actus-muted);
	font-size: 0.88rem;
	text-align: center;
	white-space: nowrap;
}

.tris-actus__end::before,
.tris-actus__end::after {
	content: "";
	flex: 1 1 auto;
	height: 1px;
	background: var(--tris-actus-border);
}

/* --- Pagination (repli sans JS) ------------------------------------------ */

.tris-actus__pagination {
	margin-top: 44px;
}

.tris-actus__pagination[hidden] {
	display: none;
}

#top .tris-actus__pagination ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}

#top .tris-actus__pagination li {
	margin: 0;
	padding: 0;
}

#top .tris-actus__pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	height: 44px;
	padding: 0 12px;
	border: 1px solid var(--tris-actus-border);
	border-radius: 12px;
	background: var(--tris-actus-card-bg);
	color: var(--tris-actus-heading);
	font-weight: 600;
	text-decoration: none;
	transition: border-color var(--tris-actus-transition), color var(--tris-actus-transition);
}

#top .tris-actus__pagination a.page-numbers:hover {
	border-color: var(--tris-actus-accent);
	color: var(--tris-actus-accent);
}

#top .tris-actus__pagination .page-numbers.current {
	border-color: var(--tris-actus-accent);
	background: var(--tris-actus-accent);
	color: var(--tris-actus-accent-contrast);
}

#top .tris-actus__pagination .page-numbers.dots {
	border-color: transparent;
	background: none;
}

/* --- Aucun résultat ----------------------------------------------------- */

.tris-actus-empty {
	max-width: 640px;
	margin: 0 auto;
	padding: 52px 36px;
	border: 1px solid var(--tris-actus-border);
	border-radius: var(--tris-actus-radius-lg);
	background: var(--tris-actus-card-bg);
	text-align: center;
}

.tris-actus-empty__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 68px;
	height: 68px;
	margin-bottom: 18px;
	border-radius: 50%;
	background: var(--tris-actus-accent-soft);
	color: var(--tris-actus-accent);
}

.tris-actus-empty__icon .tris-actus-icon {
	width: 30px;
	height: 30px;
}

#top .tris-actus-empty__title {
	margin: 0 0 10px;
	color: var(--tris-actus-heading);
	font-size: 1.6rem;
}

.tris-actus-empty__text {
	margin: 0 0 22px;
}

/* =========================================================================
   SINGLE
   ========================================================================= */

.tris-actu-single {
	display: block;
	padding: 56px 0 96px;
	color: var(--tris-actus-text);
}

.tris-actu-single__article {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 320px;
	align-items: start;
	gap: 64px;
}

.tris-actu-single__main {
	min-width: 0;
	max-width: 760px;
}

/* Image à la une */
#top .tris-actu-single__figure {
	margin: 0 0 36px;
}

#top .tris-actu-single__img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 520px;
	border: 1px solid var(--tris-actus-border);
	border-radius: var(--tris-actus-radius-lg);
	object-fit: cover;
}

.tris-actu-single__caption {
	margin-top: 10px;
	color: var(--tris-actus-muted);
	font-size: 0.85rem;
}

/* Chapeau (extrait manuel) — sinon le premier paragraphe en tient lieu. */
.tris-actu-single__lead,
.tris-actu-single__content > p:first-child {
	margin: 0 0 1.3em;
	color: var(--tris-actus-heading);
	font-family: 'Newsreader', Georgia, "Times New Roman", serif;
	font-size: clamp(1.3rem, 1.1rem + 0.7vw, 1.6rem);
	font-weight: 400;
	line-height: 1.45;
}

.tris-actu-single__lead + .tris-actu-single__content > p:first-child {
	color: var(--tris-actus-text);
	font-family: inherit;
	font-size: inherit;
	line-height: inherit;
}

/* Typographie du contenu éditorial */
.tris-actu-single__content {
	font-size: 1.0625rem;
	line-height: 1.75;
}

.tris-actu-single__content::after {
	content: "";
	display: table;
	clear: both;
}

#top .tris-actu-single__content p {
	margin: 0 0 1.25em;
}

#top .tris-actu-single__content h2,
#top .tris-actu-single__content h3,
#top .tris-actu-single__content h4 {
	margin: 1.8em 0 0.6em;
	color: var(--tris-actus-heading);
	line-height: 1.2;
}

#top .tris-actu-single__content h2 { font-size: 1.75rem; }
#top .tris-actu-single__content h3 { font-size: 1.4rem; }
#top .tris-actu-single__content h4 { font-size: 1.15rem; }

#top .tris-actu-single__content a {
	color: var(--tris-actus-accent);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

#top .tris-actu-single__content a:hover {
	text-decoration-thickness: 2px;
}

#top .tris-actu-single__content ul,
#top .tris-actu-single__content ol {
	margin: 0 0 1.4em;
	padding: 0 0 0 1.4em;
}

#top .tris-actu-single__content ul {
	padding-left: 0;
	list-style: none;
}

#top .tris-actu-single__content ul > li {
	position: relative;
	margin: 0 0 0.5em;
	padding-left: 1.4em;
}

#top .tris-actu-single__content ul > li::before {
	content: "";
	position: absolute;
	top: 0.72em;
	left: 0.2em;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--tris-actus-accent);
}

#top .tris-actu-single__content ol > li {
	margin: 0 0 0.5em;
	padding-left: 0.3em;
}

#top .tris-actu-single__content ol > li::marker {
	color: var(--tris-actus-accent);
	font-weight: 700;
}

#top .tris-actu-single__content blockquote {
	margin: 1.8em 0;
	padding: 6px 0 6px 24px;
	border-left: 3px solid var(--tris-actus-accent);
	color: var(--tris-actus-heading);
	font-family: 'Newsreader', Georgia, "Times New Roman", serif;
	font-size: 1.35rem;
	font-style: italic;
	line-height: 1.5;
}

#top .tris-actu-single__content img {
	max-width: 100%;
	height: auto;
	border-radius: 14px;
}

#top .tris-actu-single__content table {
	width: 100%;
	margin: 0 0 1.5em;
	border-collapse: collapse;
	font-size: 0.95rem;
}

#top .tris-actu-single__content th,
#top .tris-actu-single__content td {
	padding: 10px 12px;
	border-bottom: 1px solid var(--tris-actus-border);
	text-align: left;
}

#top .tris-actu-single__content hr {
	margin: 2em 0;
	border: 0;
	border-top: 1px solid var(--tris-actus-border);
}

/* Document PDF */
.tris-actu-doc {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 18px 22px;
	margin: 36px 0 0;
	padding: 22px 24px;
	border: 1px solid var(--tris-actus-border);
	border-radius: var(--tris-actus-radius);
	background: var(--tris-actus-card-bg);
	box-shadow: var(--tris-actus-shadow);
}

.tris-actu-doc__icon {
	position: relative;
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: 58px;
	height: 66px;
	border-radius: 14px;
	background: var(--tris-actus-accent-soft);
	color: var(--tris-actus-accent);
}

.tris-actu-doc__icon .tris-actus-icon {
	width: 28px;
	height: 28px;
	margin-top: -8px;
}

.tris-actu-doc__ext {
	position: absolute;
	bottom: 8px;
	font-size: 0.6rem;
	font-weight: 800;
	letter-spacing: 0.1em;
}

.tris-actu-doc__body {
	flex: 1 1 220px;
	min-width: 0;
}

#top .tris-actu-doc__title {
	margin: 0 0 4px;
	color: var(--tris-actus-muted);
	font-family: inherit !important;
	font-size: 0.72rem;
	font-weight: 700 !important;
	letter-spacing: 0.1em;
	text-transform: uppercase !important;
}

.tris-actu-doc__name {
	margin: 0;
	color: var(--tris-actus-heading);
	font-size: 1rem;
	font-weight: 600;
	overflow-wrap: anywhere;
}

.tris-actu-doc__size {
	color: var(--tris-actus-muted);
	font-weight: 400;
}

.tris-actu-doc__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

#top .tris-actu-doc__actions .tris-actus-btn {
	height: 44px;
	padding: 0 18px;
	font-size: 14px;
}

.tris-actu-doc__actions .tris-actus-btn--primary:hover .tris-actus-icon {
	transform: translateY(2px);
}

/* Retour */
#top .tris-actu-single__back {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 40px;
	color: var(--tris-actus-heading);
	font-weight: 600;
	text-decoration: none;
	transition: color var(--tris-actus-transition);
}

.tris-actu-single__back .tris-actus-icon {
	width: 18px;
	height: 18px;
	transition: transform 0.3s var(--tris-actus-ease);
}

#top .tris-actu-single__back:hover,
#top .tris-actu-single__back:focus-visible {
	color: var(--tris-actus-accent);
}

.tris-actu-single__back:hover .tris-actus-icon {
	transform: translateX(-4px);
}

/* Colonne latérale */
.tris-actu-single__aside {
	position: sticky;
	top: 130px;
}

.tris-actu-panel {
	padding: 26px;
	border: 1px solid var(--tris-actus-border);
	border-radius: var(--tris-actus-radius);
	background: var(--tris-actus-card-bg);
	box-shadow: var(--tris-actus-shadow);
}

#top .tris-actu-panel__title {
	margin: 0 0 14px;
	color: var(--tris-actus-heading);
	font-size: 1.35rem;
	line-height: 1.2;
}

#top .tris-actu-panel__facts {
	margin: 0 0 22px;
	padding: 0;
}

.tris-actu-panel__facts > div {
	padding: 12px 0;
	border-bottom: 1px solid var(--tris-actus-border);
}

.tris-actu-panel__facts > div:first-child {
	border-top: 1px solid var(--tris-actus-border);
}

#top .tris-actu-panel__facts dt {
	margin: 0 0 3px;
	color: var(--tris-actus-muted);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

#top .tris-actu-panel__facts dd {
	margin: 0;
	color: var(--tris-actus-heading);
	font-size: 0.95rem;
	font-weight: 600;
}

#top .tris-actu-panel__facts dd a {
	color: var(--tris-actus-accent);
	text-decoration: none;
}

#top .tris-actu-panel__facts dd a:hover {
	text-decoration: underline;
}

.tris-actu-panel__label {
	margin: 0 0 10px;
	color: var(--tris-actus-muted);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.tris-actu-share {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

#top .tris-actu-share__btn {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	height: 44px;
	margin: 0;
	padding: 0 14px;
	border: 1px solid var(--tris-actus-border);
	border-radius: 12px;
	background: var(--tris-actus-card-bg);
	color: var(--tris-actus-heading);
	font-family: inherit;
	font-size: 0.9rem;
	font-weight: 500;
	text-align: left;
	text-decoration: none;
	cursor: pointer;
	transition: border-color var(--tris-actus-transition), color var(--tris-actus-transition), background var(--tris-actus-transition);
}

#top .tris-actu-share__btn[hidden] {
	display: none;
}

.tris-actu-share__btn .tris-actus-icon {
	width: 18px;
	height: 18px;
	color: var(--tris-actus-accent);
}

#top .tris-actu-share__btn:hover,
#top .tris-actu-share__btn:focus-visible {
	border-color: var(--tris-actus-accent);
	color: var(--tris-actus-accent);
}

#top .tris-actu-share__btn:focus-visible {
	outline: 2px solid var(--tris-actus-accent);
	outline-offset: 2px;
}

#top .tris-actu-share__btn.is-done {
	border-color: var(--tris-actus-accent);
	background: var(--tris-actus-accent-soft);
	color: var(--tris-actus-accent);
}

/* « À lire aussi » */
.tris-actu-related {
	margin-top: 80px;
	padding: 56px 0 0;
	border-top: 1px solid var(--tris-actus-border);
}

.tris-actu-related .tris-actus__head {
	margin-top: 0;
}

/* =========================================================================
   RESPONSIVE
   ========================================================================= */

@media (max-width: 1100px) {
	#top .tris-actus__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 22px;
	}

	.tris-actu-single__article {
		grid-template-columns: minmax(0, 1fr) 280px;
		gap: 40px;
	}

	.tris-actus-featured__body {
		padding: 40px;
	}
}

@media (max-width: 900px) {
	.tris-actus-featured {
		grid-template-columns: 1fr;
	}

	.tris-actus-featured__media {
		min-height: 240px;
	}

	.tris-actu-single__article {
		grid-template-columns: 1fr;
	}

	.tris-actu-single__main {
		max-width: none;
	}

	.tris-actu-single__aside {
		position: static;
	}

	.tris-actu-share {
		flex-direction: row;
		flex-wrap: wrap;
	}

	#top .tris-actu-share__btn {
		width: auto;
	}
}

@media (max-width: 767px) {
	/* Mots-clés et non pourcentages : avec une image plus large que le bandeau,
	   un % > 100 la décalerait vers la GAUCHE. Ici le bord droit reste collé. */
	#top .tris-actus-hero {
		background-size: auto 65%;
		background-position: right bottom;
	}

	.tris-actus-hero__inner {
		padding: 32px 0 64px;
	}

	.tris-actus-hero--single .tris-actus-hero__inner {
		padding-bottom: 40px;
	}

	#top .tris-actus-crumbs ol {
		margin-bottom: 20px;
	}

	#top .tris-actus-crumbs li:last-child span {
		max-width: 22ch;
	}

	/* Pastilles : défilement horizontal pleine largeur. */
	.tris-actus-filters {
		width: 100%;
		margin-bottom: 32px;
	}

	.tris-actus-featured__body {
		padding: 28px 24px 30px;
	}

	.tris-actus-featured__date {
		bottom: 22px;
		left: 24px;
	}

	.tris-actus-featured__actions .tris-actus-btn {
		flex: 1 1 auto;
	}

	.tris-actu-single {
		padding: 36px 0 72px;
	}

	.tris-actu-doc {
		padding: 20px;
	}

	.tris-actu-doc__actions {
		width: 100%;
	}

	.tris-actu-doc__actions .tris-actus-btn {
		flex: 1 1 auto;
	}

	.tris-actu-related {
		margin-top: 56px;
		padding-top: 40px;
	}
}

@media (max-width: 680px) {
	#top .tris-actus__grid {
		grid-template-columns: 1fr;
		gap: 18px;
	}

	.tris-actus__head {
		margin-top: 40px;
	}

	.tris-actus-featured + .tris-actus__head {
		margin-top: 44px;
	}
}

/* =========================================================================
   ACCESSIBILITÉ — mouvements réduits
   ========================================================================= */

@media (prefers-reduced-motion: reduce) {
	.tris-actus-hero *,
	.tris-actus-wrap * {
		animation: none !important;
		transition: none !important;
	}

	.tris-actus-card:hover,
	.tris-actus-card:focus-within,
	.tris-actus-featured:hover,
	.tris-actus-featured:focus-within {
		transform: none;
	}

	.tris-actus__item.is-reveal-pending {
		opacity: 1;
		transform: none;
	}
}

/* =========================================================================
   IMPRESSION (avis officiels souvent imprimés)
   ========================================================================= */

@media print {
	#header,
	#footer,
	#socket,
	.tris-actus-crumbs,
	.tris-actu-share,
	.tris-actu-panel__label,
	.tris-actu-single__back,
	.tris-actu-related,
	.tris-actu-doc__actions {
		display: none !important;
	}

	#top .tris-actus-hero {
		border: 0;
		background: none;
	}

	.tris-actus-hero__inner {
		padding: 0 0 16px;
	}

	#top .tris-actus-hero__stats li {
		border: 0;
		padding: 0;
	}

	.tris-actu-single {
		padding: 0;
	}

	.tris-actu-single__article {
		display: block;
	}

	.tris-actu-single__aside {
		position: static;
		margin-top: 24px;
	}

	.tris-actu-panel,
	.tris-actu-doc {
		box-shadow: none;
	}

	.tris-actu-doc__name::after {
		content: " — " attr(data-url);
	}
}
