/*
 * Direction "Journal éditorial d'une communauté vivante" — post 988, hors
 * header/hero (brief direct de Jordan, 22/10/2026 : rupture avec le registre
 * cards/bento/badges ronds type SaaS, référence un magazine imprimé soigné).
 *
 * Remplace entièrement la version précédente de ce fichier (liquid glass +
 * bento grid + cards clonées). Principe structurant : une colonne vertébrale
 * (règle verticale fine + folios numérotés) qui traverse les sections 01→06
 * ci-dessous, pour que la continuité vienne d'un geste graphique répété plutôt
 * que de dégradés de fond qui se poursuivent d'une section à l'autre.
 *
 * ===================== 0. Colonne vertébrale (.nwc-editorial) =====================
 * Appliquée à chaque section listée dans le brief (schedule-bar, split,
 * anniv, confession, ministries, listen, pastoral) — jamais au hero/header,
 * propriété d'autres missions. La règle verticale est un pseudo-élément de la
 * SECTION (top:0 à bottom:0, donc aucun trou au niveau du padding-block) à un
 * inset fixe depuis le bord de la section ; comme toutes ces sections sont
 * des blocs pleine largeur, un inset constant retombe au même pixel d'un
 * écran à l'autre quelle que soit la section → continuité visuelle réelle en
 * descendant la page. L'inset choisi reste strictement inférieur au
 * padding-inline du conteneur (1.5rem mobile / 3rem dès 768px, cf. base.css)
 * pour ne jamais toucher le texte.
 */
/* Évite que le header sticky (#masthead, position: sticky, cf. header.css)
   recouvre le haut de chaque section quand on y arrive par ancre/scrollIntoView.
   Hauteurs mesurées en réel via Playwright (getBoundingClientRect) le
   22/10/2026 sur dev.newwinechurch.lu : ~147,3px à 390px, ~125,9px à 1440px+
   (le token --nwc-header-height de tokens.css, 5.5rem, ne reflète pas la
   hauteur réelle du masthead flottant — cf. remarque similaire déjà faite
   dans etudes-bibliques.css — donc valeurs en dur ici, + 1,5rem de respiration). */
.nwc-editorial {
	position: relative;
	scroll-margin-top: calc(148px + 1.5rem);
}

@media (min-width: 48rem) {
	.nwc-editorial {
		scroll-margin-top: calc(126px + 1.5rem);
	}
}

.nwc-editorial::before {
	content: "";
	position: absolute;
	z-index: 3;
	top: 0;
	bottom: 0;
	left: var(--nwc-space-4);
	width: 1px;
	background: oklch(23% 0.05 265 / 0.14);
	pointer-events: none;
}

@media (min-width: 48rem) {
	.nwc-editorial::before {
		left: 1.75rem;
	}
}

/* Le premier et le dernier tronçon de la colonne reçoivent un petit sérif de
   début/fin (trait perpendiculaire court), geste discret de "cahier" qui
   indique où commence/s'arrête la composition, plutôt que de laisser la
   ligne entrer/sortir du cadre sans marque. */
.nwc-schedule-bar.nwc-editorial::before {
	top: var(--nwc-space-6);
}

.nwc-home-pastoral.nwc-editorial::before {
	bottom: var(--nwc-space-6);
}

/* Folio : numéro de section + libellé court, en JetBrains Mono, discret —
   c'est lui qui porte la numérotation "01 — Horaires", "02 — Derniers
   messages", etc. demandée par Jordan. Flux normal (jamais en position
   absolue dans une marge qui n'existe pas de façon fiable à toutes les
   largeurs) : il démarre exactement où démarre le texte de la section,
   juste à droite de la colonne vertébrale. */
.nwc-folio {
	display: flex;
	align-items: baseline;
	gap: 0.55em;
	margin: 0 0 var(--nwc-space-4);
	font-family: var(--nwc-font-mono);
	font-size: 0.75rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--nwc-slate);
}

.nwc-folio__num {
	color: var(--nwc-gold-deep);
	font-weight: 700;
}

.nwc-folio__dash {
	color: var(--nwc-mist-deep);
}

.nwc-folio--on-glass {
	color: oklch(97% 0.014 83 / 0.65);
}

.nwc-folio--on-glass .nwc-folio__num {
	color: var(--nwc-gold);
}

.nwc-folio--on-glass .nwc-folio__dash {
	color: oklch(97% 0.014 83 / 0.35);
}

.nwc-folio--on-dark {
	color: var(--nwc-mist);
}

.nwc-folio--on-dark .nwc-folio__dash {
	color: var(--nwc-mist-deep);
}

/* Fond cohérent pour toutes les sections éditoriales : variations de
   luminosité OKLCH très subtiles sur le même crème, jamais de retour aux
   dégradés flamboyants de fond (ceux-ci restent réservés aux cartes/boutons,
   règle actée par Jordan le 18/10/2026). .nwc-home-confession est sortie de
   cette liste le 25/10/2026 : elle a désormais son propre fond image (voir
   section 3 plus bas) — les 3 autres sections restent sur ce crème plat. */
.nwc-home-featured,
.nwc-home-ministries,
.nwc-home-blog {
	background: var(--nwc-cream);
}

/* ===================== 1. Horaires / adresse / téléphone ===================== */
/* Direction "ici" (brief Jordan 25/10/2026, capture de référence d'une page
   d'église parisienne) : titre de section en couleur accent + 2 colonnes
   avec barre verticale accent, label capitales, lieu en gras, adresse,
   pastille d'info complémentaire — remplace la ligne unique à séparateurs
   typographiques du 22/10. Colonne vertébrale inchangée.
 *
 * MàJ 25/10/2026 (demande Jordan, référence composant React "LiquidGlassCard"
 * fourni pour des cards météo) : les 2 colonnes deviennent de vraies cards en
 * verre dépoli. Repris des conventions "liquid glass" déjà en place sur ce
 * site (header.css .nwc-masthead__main, home-anniversary.css .nwc-anniv__glass,
 * lien.css .nwc-lc__glass) : fond translucide clair basé sur --nwc-paper,
 * backdrop-filter blur+saturate, bordure 1px très discrète, ombre douce
 * (--nwc-shadow-sm, jamais --nwc-shadow-lg qui serait trop dur ici).
 *
 * Le fond de section restait un crème plat (var(--nwc-cream) uni, partagé
 * avec les 3 autres sections éditoriales ci-dessus) : rien à flouter, donc le
 * verre aurait été invisible. Cette section sort donc de la liste de fond
 * plat partagée et reçoit sa propre texture (::after ci-dessous) : 2 lueurs
 * radiales très douces (or/ambre et brume, tokens existants, jamais une
 * nouvelle couleur) sur base crème + un grain fin en dégradé répété à
 * très faible opacité — juste assez de variation pour que le blur des cards
 * ait une matière à dépolir, sans devenir un motif décoratif visible en soi. */
.nwc-schedule-bar {
	position: relative;
	isolation: isolate;
	padding-block: var(--nwc-space-8) !important;
	border-top: none !important;
	border-bottom: none !important;
}

.nwc-schedule-bar::after {
	content: "";
	position: absolute;
	z-index: 0;
	inset: 0;
	background-color: var(--nwc-cream);
	background-image:
		radial-gradient(52% 60% at 8% 6%, oklch(80% 0.1 75 / 0.22), transparent 70%),
		radial-gradient(48% 55% at 96% 94%, oklch(80% 0.02 262 / 0.3), transparent 70%);
	pointer-events: none;
}

.nwc-schedule-bar > .nwc-container {
	position: relative;
	z-index: 1;
}

/* Vidéo de fond en boucle (brief Jordan 25/10/2026, source : culte réel filmé
   par lui — cf. _team/board.md pour la note vie privée). Chargée en lazy
   (IntersectionObserver, js/schedule-video.js) seulement si
   prefers-reduced-motion n'est pas actif. Desktop/tablette (>=48rem, seuil
   déjà utilisé ailleurs dans ce fichier) charge l'extrait paysage
   (videos/cultes-bg.mp4) ; mobile (<48rem) charge désormais un extrait dédié
   recadré en portrait et très compressé (videos/schedule-bar-bg-mobile.mp4,
   data-src-mobile) — màj 25/10/2026 : Jordan veut la vidéo aussi sur mobile,
   simplement allégée et bien cadrée plutôt que désactivée. object-fit:cover
   ci-dessous s'applique identiquement aux deux formats. En reduced-motion,
   la section garde SEULEMENT la texture fixe ci-dessus (::after). */
.nwc-schedule-bar__bg-video {
	position: absolute;
	inset: 0;
	z-index: -1;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0;
	transition: opacity var(--nwc-duration-slow) var(--nwc-ease);
	pointer-events: none;
}

.nwc-schedule-bar--video-active .nwc-schedule-bar__bg-video {
	opacity: 1;
}

/* Une fois la vidéo active (classe posée par le JS au 1er "canplay"), le
   voile ::after ci-dessus perd son fond crème opaque mais garde ses 2 lueurs
   + son grain : il devient un voile translucide qui laisse transparaître la
   vidéo tout en gardant les cards (.nwc-schedule-col, verre dépoli) lisibles
   par-dessus — même logique "glass" que le reste de la section. */
.nwc-schedule-bar--video-active::after {
	background-color: oklch(97% 0.014 83 / 0.22);
}

/* Titre + ligne téléphone sont posés directement sur le fond de section (pas
   dans une card en verre comme .nwc-schedule-col, qui a son propre
   backdrop-filter et reste lisible par construction). MàJ 25/10/2026 (retour
   Jordan : "voile trop fort, couleurs délavées vs vidéo originale") : voile
   descendu de 0.52 à 0.22 pour laisser les couleurs réelles de la vidéo
   transparaître ; à cette opacité le voile seul ne suffit plus à garantir la
   lecture du titre/téléphone selon la luminosité du plan vidéo du moment, donc
   traitement local (pas un voile de section plus fort) : halo de texte à deux
   calques, un serré pour le contraste de bord et un large pour absorber les
   zones vives de la vidéo derrière, sans dépendre de la lecture d'une image
   en particulier. */
.nwc-schedule-bar--video-active .nwc-schedule-title,
.nwc-schedule-bar--video-active .nwc-schedule-phone {
	text-shadow:
		0 1px 3px oklch(97% 0.014 83 / 0.9),
		0 3px 18px oklch(97% 0.014 83 / 0.85);
}

.nwc-schedule-title {
	margin: 0 0 var(--nwc-space-3);
	font-family: var(--nwc-font-display);
	font-size: var(--nwc-text-h2);
	font-weight: 600;
	line-height: var(--nwc-leading-tight);
	color: var(--nwc-gold-deep);
}

.nwc-schedule-phone {
	margin: 0 0 var(--nwc-space-6);
	font-family: var(--nwc-font-body);
	font-size: var(--nwc-text-small);
	color: var(--nwc-slate);
}

.nwc-schedule-phone a {
	color: var(--nwc-ember);
	text-decoration: none;
	border-bottom: 1px solid oklch(42% 0.15 27 / 0.35);
	transition: border-color var(--nwc-duration-fast) var(--nwc-ease),
		color var(--nwc-duration-fast) var(--nwc-ease);
}

.nwc-schedule-phone a:hover {
	color: var(--nwc-ember-deep);
	border-bottom-color: var(--nwc-ember-deep);
}

.nwc-schedule-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--nwc-space-7);
}

.nwc-schedule-col {
	display: flex;
	gap: var(--nwc-space-4);
	padding: var(--nwc-space-6);
	border-radius: var(--nwc-radius-lg);
	border: 1px solid oklch(80% 0.02 262 / 0.35);
	/* MàJ 25/10/2026 : voile vidéo de section descendu à 0.22 (couleurs vives,
	   demande Jordan) a laissé transparaître des visages à travers la card —
	   fond remonté de 0.55 à 0.88 et blur renforcé (16px -> 22px) pour que le
	   verre dépoli diffuse la couleur de la vidéo sans détails reconnaissables,
	   tout en gardant le texte parfaitement lisible. Le voile de section
	   (.nwc-schedule-bar--video-active::after, 0.22) n'est pas concerné. */
	background: oklch(99% 0.004 90 / 0.88);
	backdrop-filter: blur(22px) saturate(160%);
	-webkit-backdrop-filter: blur(22px) saturate(160%);
	box-shadow: var(--nwc-shadow-sm), 0 1px 0 oklch(100% 0 0 / 0.5) inset;
	transition: box-shadow var(--nwc-duration-fast) var(--nwc-ease),
		transform var(--nwc-duration-fast) var(--nwc-ease);
}

@media (hover: hover) {
	.nwc-schedule-col:hover {
		box-shadow: var(--nwc-shadow-md), 0 1px 0 oklch(100% 0 0 / 0.5) inset;
		transform: translateY(-2px);
	}
}

.nwc-schedule-col__bar {
	flex: 0 0 3px;
	width: 3px;
	border-radius: var(--nwc-radius-sm);
	background: var(--nwc-gold-deep);
}

.nwc-schedule-col__body {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	min-width: 0;
}

.nwc-schedule-col__label {
	margin: 0;
	font-family: var(--nwc-font-mono);
	font-size: var(--nwc-text-eyebrow);
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--nwc-gold-deep);
}

.nwc-schedule-col__place {
	margin: 0;
	font-family: var(--nwc-font-display);
	font-size: var(--nwc-text-h3);
	font-weight: 600;
	line-height: var(--nwc-leading-snug);
	color: var(--nwc-ink);
}

.nwc-schedule-col__address {
	margin: 0;
	font-family: var(--nwc-font-body);
	font-size: var(--nwc-text-small);
	line-height: var(--nwc-leading-body);
	color: var(--nwc-ink-soft);
}

.nwc-schedule-col__address a {
	color: var(--nwc-ink-soft);
	text-decoration: none;
	border-bottom: 1px solid var(--nwc-mist-deep);
	transition: border-color var(--nwc-duration-fast) var(--nwc-ease),
		color var(--nwc-duration-fast) var(--nwc-ease);
}

.nwc-schedule-col__address a:hover {
	color: var(--nwc-gold-deep);
	border-bottom-color: var(--nwc-gold);
}

.nwc-schedule-col__badge {
	display: inline-block;
	width: fit-content;
	margin-top: var(--nwc-space-2);
	padding: 0.3rem 0.75rem;
	border: 1px solid var(--nwc-mist-deep);
	border-radius: var(--nwc-radius-lg);
	font-family: var(--nwc-font-body);
	font-size: var(--nwc-text-small);
	font-weight: 500;
	color: var(--nwc-ink-soft);
}

@media (max-width: 48rem) {
	.nwc-schedule-grid {
		grid-template-columns: 1fr;
		gap: var(--nwc-space-5);
	}

	/* Chaque colonne est désormais une card autonome (verre dépoli, voir
	   .nwc-schedule-col ci-dessus) : l'ancien séparateur en bordure-bas entre
	   colonnes empilées n'a plus de sens, la carte se referme sur elle-même. */
	.nwc-schedule-col {
		padding: var(--nwc-space-5);
	}
}

/* ===================== 2. "À venir" & "Dernier message" ===================== */
/* Remplace les anciennes sections 2 ("Derniers messages", liste de vidéos) et
   3 ("10 ans", encart asymétrique pleine largeur) par UNE section à 2
   colonnes (brief Jordan 25/10/2026, capture de référence d'une page d'église
   parisienne) : "À venir" (notre seul événement réel, le 10e anniversaire) à
   gauche, "Dernier message" (SINGULIER — une seule vidéo, plus de liste) à
   droite. Les 2 titres de colonne reprennent le traitement "couleur accent"
   déjà acté pour "Nos cultes" juste au-dessus (section 1) plutôt que l'encre
   neutre. Fond crème et colonne vertébrale inchangés. L'habillage liquid
   glass/numéral géant de l'ancienne section "10 ans" (css/home-anniversary.css)
   n'est plus utilisé ici : ce fichier reste chargé (dépendance déclarée dans
   functions.php) mais ses classes ne correspondent plus à rien dans le DOM de
   l'accueil — propre, pas de régression, à dequeue dans une prochaine passe
   de nettoyage si Jordan valide. */
.nwc-home-featured {
	padding-block: var(--nwc-space-9) !important;
	border-top: none !important;
}

.nwc-home-featured__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--nwc-space-8);
	align-items: start;
	margin-top: var(--nwc-space-6);
}

.nwc-home-featured__title {
	margin: 0 0 var(--nwc-space-5);
	font-family: var(--nwc-font-display);
	font-weight: 700;
	font-size: var(--nwc-text-h2);
	line-height: var(--nwc-leading-tight);
}

/* Couleurs accent distinctes par colonne (demande de Jordan : "--nwc-gold-deep"
   pour l'un, "--nwc-ember" pour l'autre) — reprend le traitement de
   .nwc-schedule-title (section 1) plutôt qu'un gris neutre. */
.nwc-home-featured__col--event .nwc-home-featured__title {
	color: var(--nwc-gold-deep);
}

.nwc-home-featured__col--video .nwc-home-featured__title {
	color: var(--nwc-ember);
}

/* --- Colonne "À venir" : card affiche + nav ronde + méta (date/titre/lieu/CTA) --- */
.nwc-upcoming-card {
	position: relative;
}

/* .nwc-upcoming-card__frame réutilise .nwc-event-card__frame--contain
   (events-dons.css, déjà en place sur /10ans et le hero) : même habillage
   (coins arrondis, fond dégradé ember/ink en repli, object-fit:contain —
   l'affiche n'est jamais recadrée, règle actée du projet), ajout ici
   uniquement du conteneur pour les flèches de navigation. */
.nwc-upcoming-card__frame {
	position: relative;
}

/* Nouvelle affiche v2 (25/10/2026, demande Jordan) : format PAYSAGE 16:9
   (1280x720), différent de l'ancienne affiche PORTRAIT (1024x1536) encore
   utilisée telle quelle sur le hero et /10ans — .nwc-event-card__frame
   (events-dons.css) impose aspect-ratio:3/4 (portrait) partagé par toutes
   ces cartes. events-dons.css est enqueue APRÈS home-story.css
   (functions.php), donc une simple redéclaration ici serait battue par la
   cascade : sélecteur combiné (spécificité plus haute que la classe seule)
   pour ne toucher QUE cette carte de l'accueil, jamais le hero ni /10ans
   qui gardent la portrait d'origine. object-fit:contain hérité de
   .nwc-event-card__frame--contain suffit toujours à ne jamais recadrer. */
.nwc-upcoming-card__frame.nwc-event-card__frame {
	aspect-ratio: 16 / 9;
}

.nwc-upcoming-card__nav {
	position: absolute;
	z-index: 2;
	right: var(--nwc-space-3);
	bottom: var(--nwc-space-3);
	display: flex;
	gap: 0.5rem;
}

/* Un seul événement réel actuellement (le 10e anniversaire) : les flèches
   restent visibles pour la cohérence visuelle future (d'autres événements
   pourront être ajoutés), mais grisées/désactivées plutôt que masquées —
   aucun faux événement supplémentaire fabriqué pour les justifier. */
.nwc-upcoming-card__arrow {
	width: 2.5rem;
	height: 2.5rem;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	border: 1px solid oklch(97% 0.014 83 / 0.4);
	background: oklch(97% 0.014 83 / 0.16);
	backdrop-filter: blur(10px) saturate(160%);
	-webkit-backdrop-filter: blur(10px) saturate(160%);
	color: var(--nwc-cream);
	opacity: 0.45;
	cursor: not-allowed;
}

.nwc-upcoming-card__arrow:disabled {
	pointer-events: none;
}

.nwc-upcoming-card__arrow svg {
	width: 1.1rem;
	height: 1.1rem;
}

.nwc-upcoming-card__meta {
	margin-top: var(--nwc-space-4);
}

.nwc-upcoming-card__date {
	display: flex;
	align-items: center;
	gap: 0.45em;
	margin: 0 0 0.6rem;
	font-family: var(--nwc-font-mono);
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--nwc-gold-deep);
}

.nwc-upcoming-card__date svg {
	width: 1em;
	height: 1em;
	flex-shrink: 0;
}

.nwc-upcoming-card__name {
	margin: 0 0 0.5rem;
	font-family: var(--nwc-font-display);
	font-weight: 700;
	font-size: var(--nwc-text-h3);
	line-height: var(--nwc-leading-snug);
	color: var(--nwc-ink);
}

.nwc-upcoming-card__place {
	display: flex;
	align-items: center;
	gap: 0.4em;
	margin: 0 0 var(--nwc-space-5);
	font-family: var(--nwc-font-body);
	font-size: 0.875rem;
	color: var(--nwc-ink-soft);
}

.nwc-upcoming-card__place svg {
	width: 0.9em;
	height: 0.9em;
	color: var(--nwc-gold-deep);
	flex-shrink: 0;
}

.nwc-upcoming-card__cta {
	display: inline-flex;
}

/* Demande Jordan (25/10/2026, capture du bouton "En savoir plus") : fond blanc
   plutôt que doré plein. .nwc-upcoming-card__cta partage .nwc-button--primary
   avec les pages 557/880/1815 (components.css) où le fond doré fonctionne
   bien et n'est pas concerné — on scope donc ici via le sélecteur combiné
   (spécificité plus haute que la classe seule, même technique que
   .nwc-upcoming-card__frame.nwc-event-card__frame ci-dessus) pour ne changer
   QUE ce bouton. --nwc-paper retenu comme "blanc" du site (cf. tokens.css :
   --global-palette9, commenté "blanc/quasi-blanc"), jamais de #fff pur.
   Texte en --nwc-ink (encre) plutôt que --nwc-gold-deep : sur --nwc-paper
   (oklch 99%), le gold-deep (oklch 58%) retombe autour de ~3:1 de contraste,
   insuffisant pour un texte de bouton 16px/600 ; l'ink (oklch 23%) donne un
   contraste très large (AAA) et reste cohérent avec le cercle ink/flèche
   crème déjà en place pour ce bouton (règle générale plus haut, fond de
   section clair). Bordure discrète ajoutée pour détacher le bouton du fond
   crème de la section (sans elle, --nwc-paper 99% se distingue mal de
   --nwc-cream 97%). */
.nwc-upcoming-card__cta.nwc-button--primary {
	background-color: var(--nwc-paper);
	color: var(--nwc-ink);
	border: 1.5px solid var(--nwc-mist-deep);
}

.nwc-upcoming-card__cta.nwc-button--primary:hover {
	background-color: var(--nwc-cream);
	color: var(--nwc-ink);
	border-color: var(--nwc-gold-deep);
}

/* --- Colonne "Dernier message" : une seule vidéo (data-count="1" côté HTML,
   js/latest-video.js) — réutilise le gabarit [data-video-index="0"] déjà en
   place (vignette pleine largeur, titre + date en dessous), la variante
   "liste de vidéos secondaires" ci-dessous ne s'applique donc plus ici. */
.nwc-home-featured__video {
	width: 100%;
}

/* !important nécessaire : base.css pose ".nwc-home-latest-videos
   .nwc-latest-video__meta { display:none; }" (mission précédente du même
   jour, qui empilait 2 vignettes SANS titre/date pour aligner la hauteur
   avec la colonne affiche). Cette section redevient SINGULIER (1 vidéo,
   data-count="1") et le brief de référence exige explicitement le titre en
   gras + "Publié le [date]" sous la vignette — remise en place ciblée ici,
   scopée à cette colonne seulement (pas de retour en arrière sur la page
   Messages ni sur un éventuel futur multi-vidéos). */
.nwc-home-featured__col--video .nwc-latest-video__meta {
	display: block !important;
}

.nwc-home-featured__link {
	margin-top: var(--nwc-space-6) !important;
	display: inline-block;
}

.nwc-latest-video__item {
	width: 100%;
}

.nwc-latest-video__frame {
	position: relative;
	border-radius: var(--nwc-radius-lg);
	overflow: hidden;
	background: var(--nwc-ink);
	aspect-ratio: 16 / 9;
}

.nwc-latest-video__thumb {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.nwc-latest-video__play {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	border: none;
	background: transparent;
	cursor: pointer;
	padding: 0;
}

.nwc-latest-video__icon {
	width: 4.25rem;
	height: 4.25rem;
	border-radius: 50%;
	background: oklch(97% 0.014 83 / 0.92);
	position: relative;
	transition: transform var(--nwc-duration-fast) var(--nwc-ease);
}

.nwc-latest-video__icon::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 54%;
	transform: translate(-50%, -50%);
	border-style: solid;
	border-width: 0.65rem 0 0.65rem 1.05rem;
	border-color: transparent transparent transparent var(--nwc-ink);
}

@media (hover: hover) {
	.nwc-latest-video__play:hover .nwc-latest-video__icon {
		transform: scale(1.08);
	}
}

.nwc-latest-video__overlay {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: flex-end;
	padding: var(--nwc-space-4);
	background: linear-gradient(180deg, transparent 50%, oklch(23% 0.05 265 / 0.55) 100%);
	pointer-events: none;
}

.nwc-latest-video__logo {
	display: none;
}

.nwc-latest-video__iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.nwc-latest-video__meta {
	margin-top: var(--nwc-space-4);
	padding-left: var(--nwc-space-2);
	border-left: none;
}

.nwc-latest-video__item[data-video-index="0"] .nwc-latest-video__meta {
	max-width: 42ch;
}

.nwc-latest-video__item[data-video-index="0"] .nwc-latest-video__title {
	font-family: var(--nwc-font-display);
	font-weight: 700;
	font-size: var(--nwc-text-h3);
	color: var(--nwc-ink);
	line-height: var(--nwc-leading-snug);
	margin: 0 0 0.35rem;
}

.nwc-latest-video__item[data-video-index="0"] .nwc-latest-video__date {
	font-family: var(--nwc-font-mono);
	font-size: 0.75rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--nwc-slate);
	margin: 0;
}

/* Vidéos secondaires (index ≥ 1) : liste simple texte, pas une card. La
   vignette devient une petite puce rectangulaire inline (pas un bloc de
   carte), le titre fait office de lien, la date passe en petite légende. */
.nwc-latest-video__item:not([data-video-index="0"]) {
	display: flex;
	align-items: center;
	gap: var(--nwc-space-4);
	padding-top: var(--nwc-space-4);
	border-top: 1px solid oklch(23% 0.05 265 / 0.1);
}

.nwc-latest-video__item:not([data-video-index="0"]) .nwc-latest-video__frame {
	flex: 0 0 auto;
	width: 6.5rem;
	aspect-ratio: 16 / 9;
	border-radius: var(--nwc-radius-sm);
}

.nwc-latest-video__item:not([data-video-index="0"]) .nwc-latest-video__icon {
	width: 2.25rem;
	height: 2.25rem;
}

.nwc-latest-video__item:not([data-video-index="0"]) .nwc-latest-video__icon::before {
	border-width: 0.35rem 0 0.35rem 0.55rem;
}

.nwc-latest-video__item:not([data-video-index="0"]) .nwc-latest-video__meta {
	margin-top: 0;
	flex: 1;
}

.nwc-latest-video__item:not([data-video-index="0"]) .nwc-latest-video__title {
	margin: 0;
	font-family: var(--nwc-font-body);
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--nwc-ink);
	line-height: 1.35;
}

.nwc-latest-video__item:not([data-video-index="0"]) .nwc-latest-video__date {
	margin: 0.15rem 0 0;
	font-family: var(--nwc-font-mono);
	font-size: 0.6875rem;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--nwc-slate-light);
}

/* Empilement mobile : "À venir" puis "Dernier message", même ordre qu'en
   desktop (demande explicite de Jordan), une seule colonne, respiration
   normale entre les 2 cartes. */
@media (max-width: 48rem) {
	.nwc-home-featured__grid {
		grid-template-columns: 1fr;
		gap: var(--nwc-space-8);
	}

	.nwc-upcoming-card__arrow {
		width: 2.25rem;
		height: 2.25rem;
	}
}

/* ===================== 3. Confession de foi — une phrase + lien ===================== */
/* Simplifié (brief Jordan 25/10/2026) : les 3 points doctrinaux détaillés
   (marginalia, badges numérotés) sont retirés d'ici — le contenu complet
   reste sur /confession-de-foi/, rien n'est perdu, juste déplacé. */
/* MàJ 25/10/2026 (demande de Jordan : "le background de cette section, tu
   peux utiliser le même background que pour le hero") : fond crème plat
   remplacé par la même image que le hero (hero-accueil-bg.jpg, voir
   hero-liquidglass.css — fond or/ambre à formes géométriques en V) pour
   créer un rappel visuel entre le premier écran et cette section. Sortie de
   la règle de fond crème partagée ci-dessus : traitement propre à cette
   section désormais, les autres sections éditoriales (featured, ministères,
   blog) restent inchangées sur fond crème plat.

   Deux dégradés crème (haut ET bas) plutôt qu'un seul comme sur le hero :
   cette section est encadrée de deux sections déjà sur fond clair ("À venir
   / Dernier message" au-dessus, "Ministères" en dessous) — sans ce double
   raccord aux deux bords, le fond doré/texturé romprait la continuité de la
   colonne vertébrale éditoriale (fonds clairs cohérents, retour de Jordan du
   18/10/2026) à CHAQUE bord de section, pas seulement en bas comme pour le
   hero (qui est en haut de page, sans section claire au-dessus à raccorder).
   Zones resserrées (0%→16% et 84%→100%) pour garder l'image bien visible au
   centre tout en assurant une coupure nette et symétrique aux deux bords. */
.nwc-home-confession {
	position: relative;
	isolation: isolate;
	padding-block: var(--nwc-space-9) !important;
	background-color: var(--nwc-cream);
	background-image:
		linear-gradient(180deg,
			var(--nwc-cream) 0%,
			transparent 16%,
			transparent 84%,
			var(--nwc-cream) 100%),
		url("../images/hero-accueil-bg.jpg");
	background-size: 100% 100%, cover;
	background-position: center, center 55%;
	background-repeat: no-repeat, no-repeat;
}

.nwc-home-confession .nwc-container {
	position: relative;
	max-width: 52rem;
}

/* Voile de lisibilité (même logique que .nwc-hero__intro::before dans
   hero-liquidglass.css, pour le même problème de fond image) : le texte
   (folio "03", phrase de la confession de foi, bouton ghost) reste en encre
   foncée --nwc-ink sur ce fond désormais doré/texturé — un wash crème doux
   derrière tout le bloc de texte (pas de changement de couleur de texte, pas
   de variante --on-glass pensée pour du texte clair) garantit le contraste
   sans masquer complètement l'image. z-index:-1 dans le contexte
   d'empilement isolé créé par isolation:isolate sur .nwc-home-confession
   (parent) : ce voile peint au-dessus du fond de la section mais sous le
   texte réel du conteneur. Dégradé radial à bords doux (pas un bloc net),
   même esprit que le hero. */
.nwc-home-confession .nwc-container::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: -2.5rem -3rem;
	background: radial-gradient(ellipse 90% 85% at 50% 50%,
		oklch(97% 0.014 83 / 0.82) 0%,
		oklch(97% 0.014 83 / 0.55) 55%,
		transparent 85%);
	pointer-events: none;
}

.nwc-faith-statement {
	font-family: var(--nwc-font-display);
	font-weight: 600;
	font-size: clamp(1.9rem, 1.4rem + 2.2vw, 3.1rem);
	line-height: 1.15;
	letter-spacing: -0.01em;
	color: var(--nwc-ink);
	margin: var(--nwc-space-5) 0 0;
	max-width: 34ch;
}

.nwc-home-confession__cta {
	margin-top: var(--nwc-space-6);
	display: inline-block;
}

/* ===================== 4. Ministères — carrousel de cards photo ===================== */
/* Refonte demandée par Jordan le 25/10/2026, référence nouvellevie.com
   section "Départements" : abandon du sommaire/table des matières (compteur
   CSS + ligne pointillée) pour un carrousel horizontal de cards portrait
   (~2:3) pleine carte, nom du ministère en surimpression. Mécanique de
   défilement réutilisée de js/home-etudes-carousel.js (scrollBy() natif +
   scroll-snap, swipe tactile géré par l'overflow-x, sans JS supplémentaire)
   via son sélecteur désormais générique [data-nwc-carousel].
   Aucune photo de la communauté n'est actuellement validée pour un usage
   public par ministère (cf. _team/savoir_interne.md, règle non négociable du
   projet) : chaque card affiche donc un fond texturé (dégradé OKLCH de la
   palette du site + icône déjà existante de la fiche), jamais un visage ou
   une scène inventée — à remplacer par de vraies photos dès qu'elles seront
   fournies et validées par Jordan. */
.nwc-home-ministries {
	padding-block: var(--nwc-space-9) !important;
}

.nwc-ministries-head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--nwc-space-3) var(--nwc-space-6);
	margin: var(--nwc-space-3) 0 var(--nwc-space-7);
}

.nwc-ministries-head .nwc-eyebrow {
	flex: 1 1 100%;
	margin: 0 0 var(--nwc-space-2);
}

.nwc-ministries-head__title {
	margin: 0 !important;
	font-family: var(--nwc-font-display);
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: -0.01em;
	font-size: clamp(2.5rem, 2rem + 4vw, 5.5rem);
	line-height: 0.95;
	color: var(--nwc-ink);
}

/* Grille statique 3×2 (remplace le carrousel du 25/10/2026, même jour :
   brief Jordan "NotchedProjectCard" React/Tailwind — composant de référence
   = grille, jamais un carrousel — réimplémenté ici en CSS vanilla pur, cf.
   notes détaillées sur la technique de l'encoche juste avant .nwc-ministries-card).
   Pas de vraie photo validée par ministère (règle de confidentialité du
   projet, cf. _team/savoir_interne.md) : la "cover" de chaque card réutilise
   le même dégradé texturé OKLCH que l'ancien carrousel, à la place d'une
   photo, avec l'icône du ministère en grand dans la cover. */
.nwc-ministries-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--nwc-space-7) var(--nwc-space-5);
	margin: 0;
	padding: 0;
	list-style: none;
}

.nwc-ministries-grid__item {
	min-width: 0;
}

/*
 * Technique de l'encoche concave (brief Jordan 25/10/2026, composant React
 * "NotchedProjectCard") — traduction directe en CSS natif, sans Tailwind :
 * l'original pose déjà ses coins avec border-radius + un radial-gradient
 * pour la jonction, aucune magie propre à Tailwind à réinventer.
 *
 * 1. .nwc-ministries-card__notch est un carré (--notch-block) peint dans la
 *    couleur DERRIÈRE la card (le crème de section, --notch-bg), collé en
 *    bas-droite de la cover, avec un border-top-left-radius qui "mord" un
 *    quart de cercle concave dans l'image.
 * 2. Deux .nwc-ministries-card__fillet (~28px) recousent, chacun avec un
 *    radial-gradient (transparent → --notch-bg), les deux coins vifs
 *    restants : celui où le bord HAUT de l'encoche rencontre le bord DROIT
 *    de la cover, et celui où son bord GAUCHE rencontre le bord BAS — sans
 *    eux, ces deux jonctions resteraient des angles à 90° bruts.
 * 3. La pastille flèche (--notch-disc) est nichée au centre de l'encoche,
 *    inset de (--notch-block - --notch-disc) / 2 des deux bords.
 * Un seul jeu de règles, réutilisé tel quel par les 6 cards (aucune
 * duplication par ministère) via la classe partagée .nwc-ministries-card.
 */
.nwc-ministries-card {
	--notch-block: 5rem;    /* 80px, carré de l'encoche */
	--notch-disc: 4rem;     /* 64px, diamètre de la pastille flèche */
	--notch-fillet: 1.75rem;/* 28px, recoud les 2 jonctions restantes */
	--notch-bg: var(--nwc-cream); /* couleur de section derrière la card */
	display: flex;
	flex-direction: column;
	height: 100%;
}

.nwc-ministries-card__cover {
	position: relative;
	aspect-ratio: 4 / 3;
	border-radius: var(--nwc-radius-lg);
	overflow: hidden;
	isolation: isolate;
	background: var(--nwc-ink);
}

/* Textures de fond par carte (2 variations subtiles sur la même encre,
   alternées, jamais de retour aux dégradés violet/bleu génériques proscrits
   par Jordan) — tant qu'aucune vraie photo n'est fournie pour ce ministère. */
.nwc-ministries-card__cover::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background:
		radial-gradient(130% 90% at 85% 0%, oklch(58% 0.14 68 / 0.55) 0%, transparent 55%),
		radial-gradient(120% 100% at 10% 100%, oklch(42% 0.1 265 / 0.6) 0%, transparent 60%),
		linear-gradient(165deg, oklch(23% 0.05 265) 0%, oklch(16% 0.035 265) 100%);
}

.nwc-ministries-grid__item:nth-child(2n) .nwc-ministries-card__cover::before {
	background:
		radial-gradient(130% 90% at 15% 0%, oklch(58% 0.14 68 / 0.5) 0%, transparent 55%),
		radial-gradient(120% 100% at 90% 100%, oklch(42% 0.15 27 / 0.45) 0%, transparent 60%),
		linear-gradient(195deg, oklch(21% 0.045 265) 0%, oklch(15% 0.03 265) 100%);
}

/* Card "Chorale" : vraie photo fournie par Jordan (25/10/2026), remplace le
   fond texturé générique. Voile dégradé sombre en haut (le "06" en overlay
   y reste lisible, le fond photo est clair/blanc) — rien de nécessaire en
   bas, l'encoche/pastille restent peintes en solide par-dessus (cf. notes
   ci-dessus), indépendantes de l'image. */
/* Spécificité volontairement renforcée (classe répétée) : doit l'emporter
   sur .nwc-ministries-grid__item:nth-child(2n) ...::before ci-dessus, qui a
   une spécificité plus élevée que .nwc-ministries-card--chorale seul. */
.nwc-ministries-grid__item .nwc-ministries-card--chorale.nwc-ministries-card--chorale .nwc-ministries-card__cover::before {
	background:
		linear-gradient(180deg, oklch(12% 0.01 265 / 0.6) 0%, oklch(12% 0.01 265 / 0) 32%),
		url('../images/ministere-chorale.jpg');
	background-size: cover;
	background-position: center 30%;
}

.nwc-ministries-card--chorale .nwc-ministries-card__icon {
	display: none;
}

.nwc-ministries-card__num {
	position: absolute;
	top: var(--nwc-space-3);
	left: var(--nwc-space-4);
	z-index: 1;
	font-family: var(--nwc-font-mono);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	color: oklch(97% 0.014 83 / 0.5);
}

.nwc-ministries-card__icon {
	position: absolute;
	inset: 0;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--nwc-gold);
	opacity: 0.55;
}

.nwc-ministries-card__icon svg {
	/* ~25-35% de la largeur de la card selon le nombre de colonnes (demande
	   Jordan 08/11/2026 : combler le vide des 5 cards sans photo). */
	width: clamp(5.5rem, 4rem + 6vw, 8rem);
	height: clamp(5.5rem, 4rem + 6vw, 8rem);
	/* Plus d'animation ici (retour Jordan 08/11/2026 : un bounce/pulse sur
	   toute l'icône n'est "pas une vraie icône animée"). L'icône entière
	   reste fixe ; seuls des éléments INTERNES précis bougent, ciblés via
	   les classes .nwc-mic-* ajoutées dans nwc_get_ministeres() (functions.php).
	   Détail par ministère ci-dessous. */
}

/* 1. Étude biblique — la page de droite du livre pivote légèrement sur la
   reliure (transform-origin sur la tranche gauche de cette page, qui est
   la reliure), en boucle lente. */
.nwc-mic-book-page {
	transform-box: fill-box;
	transform-origin: 0% 50%;
	animation: nwc-mic-book-page 5s ease-in-out infinite;
}

@keyframes nwc-mic-book-page {
	0%, 100% { transform: rotate(0deg) scaleX(1); }
	50%      { transform: rotate(-4deg) scaleX(0.84); }
}

/* 2. Cellule de maison — une petite fenêtre qui s'allume doucement à
   l'intérieur (opacité pulsée), le reste de la maison reste fixe. */
.nwc-mic-window {
	animation: nwc-mic-window-glow 3.4s ease-in-out infinite;
}

@keyframes nwc-mic-window-glow {
	0%, 100% { opacity: 0.22; }
	50%      { opacity: 1; }
}

/* 3. Évangélisation — les deux arcs du haut-parleur sont les ondes sonores :
   chaque onde se trace (stroke-dasharray/dashoffset, pathLength="1" pour
   normaliser), s'intensifie puis s'estompe en partant du haut-parleur,
   décalage de phase entre les deux arcs pour un effet de propagation. */
.nwc-mic-wave {
	transform-box: fill-box;
	transform-origin: 0% 50%;
	stroke-dasharray: 1;
	opacity: 0;
	animation: nwc-mic-wave 2.6s ease-in-out infinite;
}

.nwc-mic-wave-1 { animation-delay: 0s; }
.nwc-mic-wave-2 { animation-delay: 0.45s; }

@keyframes nwc-mic-wave {
	0%   { stroke-dashoffset: 1; opacity: 0; transform: scale(0.82); }
	30%  { stroke-dashoffset: 0; opacity: 1; transform: scale(1); }
	65%  { stroke-dashoffset: 0; opacity: 0.9; transform: scale(1); }
	100% { stroke-dashoffset: 0; opacity: 0; transform: scale(1.12); }
}

/* 4. Veillée de prière — la lune reste fixe, deux petites étoiles
   scintillent à côté d'elle (apparition/disparition douce, décalées). */
.nwc-mic-star {
	animation: nwc-mic-star-twinkle 3s ease-in-out infinite;
}

.nwc-mic-star-1 { animation-delay: 0s; }
.nwc-mic-star-2 { animation-delay: 1.3s; }

@keyframes nwc-mic-star-twinkle {
	0%, 100% { opacity: 0; }
	50%      { opacity: 1; }
}

/* 5. Groupe de jeunes — le contour des deux silhouettes se dessine en
   boucle lente (stroke-dasharray/dashoffset, pathLength="1"), suggérant le
   rassemblement, décalage de phase entre les deux traits. */
.nwc-mic-draw {
	stroke-dasharray: 1;
	stroke-dashoffset: 1;
	animation: nwc-mic-draw 4.5s ease-in-out infinite;
}

.nwc-mic-draw-2 { animation-delay: 0.3s; }

@keyframes nwc-mic-draw {
	0%       { stroke-dashoffset: 1; }
	35%, 70% { stroke-dashoffset: 0; }
	100%     { stroke-dashoffset: 1; }
}

@media (prefers-reduced-motion: reduce) {
	.nwc-mic-book-page,
	.nwc-mic-window,
	.nwc-mic-wave,
	.nwc-mic-star,
	.nwc-mic-draw {
		animation: none;
	}

	/* États statiques cohérents : rien ne doit rester figé "à moitié
	   dessiné" ou invisible quand l'animation est désactivée. */
	.nwc-mic-book-page { transform: none; }
	.nwc-mic-window,
	.nwc-mic-star { opacity: 1; }
	.nwc-mic-wave {
		opacity: 1;
		stroke-dashoffset: 0;
		transform: none;
	}
	.nwc-mic-draw {
		stroke-dashoffset: 0;
	}
}

/* 1. Le carré qui mord l'encoche — peint dans le crème de section. */
.nwc-ministries-card__notch {
	position: absolute;
	right: 0;
	bottom: 0;
	z-index: 2;
	width: var(--notch-block);
	height: var(--notch-block);
	background: var(--notch-bg);
	border-top-left-radius: calc(var(--notch-block) - var(--notch-disc) / 2);
}

/* 2. Les deux jonctions à recoudre. */
.nwc-ministries-card__fillet {
	position: absolute;
	z-index: 2;
	width: var(--notch-fillet);
	height: var(--notch-fillet);
}

.nwc-ministries-card__fillet--top {
	right: 0;
	bottom: var(--notch-block);
	background-image: radial-gradient(circle at top left, transparent calc(var(--notch-fillet) - 0.5px), var(--notch-bg) var(--notch-fillet), transparent 100%);
}

.nwc-ministries-card__fillet--left {
	right: var(--notch-block);
	bottom: 0;
	background-image: radial-gradient(circle at top left, transparent calc(var(--notch-fillet) - 0.5px), var(--notch-bg) var(--notch-fillet), transparent 100%);
}

/* 3. La pastille flèche, nichée dans l'encoche. */
.nwc-ministries-card__arrow {
	position: absolute;
	right: calc((var(--notch-block) - var(--notch-disc)) / 2);
	bottom: calc((var(--notch-block) - var(--notch-disc)) / 2);
	z-index: 3;
	display: flex;
	align-items: center;
	justify-content: center;
	width: var(--notch-disc);
	height: var(--notch-disc);
	border-radius: 50%;
	background: var(--nwc-paper);
	color: var(--nwc-ink);
	transition: background var(--nwc-duration-fast) var(--nwc-ease),
		color var(--nwc-duration-fast) var(--nwc-ease);
}

.nwc-ministries-card__arrow svg {
	width: 1.15rem;
	height: 1.15rem;
	transition: transform var(--nwc-duration-fast) var(--nwc-ease);
}

@media (hover: hover) {
	.nwc-ministries-card:hover .nwc-ministries-card__arrow {
		background: var(--nwc-gold-deep);
		color: var(--nwc-cream);
	}

	.nwc-ministries-card:hover .nwc-ministries-card__arrow svg {
		transform: translate(2px, -2px);
	}
}

.nwc-ministries-card__body {
	padding: var(--nwc-space-4) var(--nwc-space-1) 0;
}

.nwc-ministries-card__title {
	margin: 0 0 0.35rem;
	font-family: var(--nwc-font-display);
	font-weight: 800;
	font-size: clamp(1.2rem, 1.05rem + 0.4vw, 1.4rem);
	line-height: var(--nwc-leading-tight);
	color: var(--nwc-ink);
}

.nwc-ministries-card__desc {
	margin: 0;
	font-family: var(--nwc-font-body);
	font-size: 0.9375rem;
	line-height: var(--nwc-leading-snug);
	color: var(--nwc-ink-soft);
}

@media (max-width: 64rem) {
	.nwc-ministries-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 36rem) {
	.nwc-ministries-head__title {
		font-size: clamp(2.25rem, 2rem + 6vw, 3.5rem);
	}

	.nwc-ministries-grid {
		grid-template-columns: 1fr;
		gap: var(--nwc-space-6);
	}

	.nwc-ministries-card {
		--notch-block: 4.25rem;
		--notch-disc: 3.5rem;
		--notch-fillet: 1.5rem;
	}
}

/* ===================== 5. Études bibliques — carrousel ===================== */
/* Historique : carrousel horizontal (brief Jordan 25/10/2026, revenant sur le
   format "2 cards mises en avant" posé plus tôt le même jour) : les 39
   études défilent via [nwc_etudes_carousel] (functions.php), JS natif
   js/home-etudes-carousel.js (scroll-snap + flèches, déjà enqueue). Style de
   card : fond en dégradé diagonal (encre/braise/or, 3 teintes alternées sur
   nth-child(3n)) texturé d'un motif de fines rayures diagonales blanches
   semi-transparentes, badge pilule catégorie, titre 2 lignes, temps de
   lecture réel (calculé sur le nombre de mots de chaque étude, ~200
   mots/min — jamais une date).

   Retouche 25/10/2026 (3e passage le même jour, capture Jordan) — 3 demandes :
   1) Plein largeur : le carrousel était centré dans .nwc-container (capé à
      --nwc-content-width=72rem), marges visibles de chaque côté. Sorti du
      conteneur via le classique `margin-inline: calc(50% - 50vw)` SANS fixer
      de `width` en vw (piège documenté dans secondary-pages.css ligne ~356) :
      un bloc flex en `width:auto` avec ces marges négatives recalcule
      automatiquement sa largeur = celle du viewport, sans jamais dépendre du
      scrollbar-gap d'un `100vw` explicite. `padding-inline` remis au même
      gutter que .nwc-container pour que cards/flèches restent alignées avec
      le reste du site (plein cadre, pas collé au bord physique de l'écran).
   2) Défilement automatique : voir js/home-etudes-carousel.js — avance d'une
      card toutes les 4,5s en boucle (retour au début après la dernière),
      pause complète sur hover/focus/touch/clic flèche, désactivé si
      prefers-reduced-motion (la nav manuelle aux flèches reste intacte).
   3) Cards agrandies + bug de lisibilité corrigé, 2e passage (capture
      Jordan, le chevauchement badge/titre était TOUJOURS visible sur les
      libellés longs type "SERVICE, RELATIONS ET AMOUR"/"LOUANGE,
      TÉMOIGNAGE ET JOIE" malgré la 1ère correction du jour) :
      - Cause réelle trouvée : la 1ère correction combinait
        `-webkit-line-clamp:2` ET une `height` fixe (2.6rem) SUR LE MÊME
        élément, lui-même enfant d'un flex column. Calcul refait : à
        font-size 0.75rem/line-height 1.3, 2 lignes de texte + le padding
        vertical (0.4rem×2) demandent ~2.75rem — plus que les 2.6rem
        fixés. `-webkit-line-clamp` (modèle de boîte `-webkit-box`, pas un
        flux normal) ne coupe pas toujours proprement quand la `height`
        imposée est plus petite que son propre contenu dans ce contexte :
        le texte déborde visuellement par-dessus le titre en dessous au
        lieu d'être rogné — exactement le bug de la capture.
      - Correction robuste : double conteneur. `.nwc-etudes-carousel__card-badge`
        (le conteneur pilule) est un bloc normal, `height` fixe (2.9rem,
        calcul correct : 2×1.3×0.75rem + 2×0.4rem de padding + marge de
        sécurité) + `overflow:hidden` — un découpage physique garanti,
        indépendant du support de `-webkit-line-clamp`. Le texte lui-même
        est dans un enfant `.nwc-etudes-carousel__card-badge-text` qui
        porte `-webkit-line-clamp:2` (ellipse propre si supporté) ; même
        s'il échoue, le parent au-dessus le rogne quand même — aucun
        chevauchement possible avec le titre, quel que soit le navigateur
        ou le libellé.
      - Cards réglées à 13.75rem desktop (entre les 11.5rem de la 1ère
        version et les 15rem de la 2e, calcul exact pour 5 cards pleinement
        visibles à 1440px en plein largeur : 1440 - 2×48px de marge
        carrousel - 88px de 2 flèches - 24px de gap flèches/piste - 8px de
        padding piste = 1224px ; 5×220px de card + 4×24px de gap = 1196px,
        tient avec marge). 12.5rem conservé en mobile (<48rem).

   4) Retouche 25/10/2026 (4e passage, correction de direction de Jordan) :
      le "titre fantôme" persistant n'était PAS un problème de hauteur fixe
      du badge (déjà réglé au passage précédent) mais un vrai bug de couleur
      — la règle `.nwc-etudes-carousel__card-title { color: var(--nwc-cream) }`
      (spécificité classe seule, 0,1,0) perdait systématiquement face à
      `.entry-content h3` dans la règle groupée de base.css ("h1, h2, h3, …,
      .entry-content h1, .entry-content h2, .entry-content h3, …" → color:
      var(--nwc-ink)), car le carrousel est rendu à l'intérieur de
      `.entry-content` sur la page d'accueil et `.entry-content h3` a une
      spécificité classe+élément (0,1,1) supérieure. Résultat : TOUS les
      titres du carrousel s'affichaient en encre foncée sur fond sombre,
      lisibles par chance sur les cards claires (or), quasi invisibles sur
      les cards sombres — exactement le bug "titre fantôme" signalé, présent
      sur 100% des 39 cards, pas seulement "certaines". Même mécanisme déjà
      documenté/corrigé sur `.nwc-pastoral-quote` plus bas dans ce fichier.
      Vérifié via CDP `CSS.getMatchedStylesForNode` (pas une simple lecture
      de fichier) sur dev.newwinechurch.lu/ : confirmé que `.entry-content h3`
      gagnait réellement la cascade au runtime.

      Jordan a aussi demandé explicitement de reprendre le style de carte qui
      fonctionne sur /etudes-bibliques/ (`.nwc-eb-card` dans
      css/etudes-bibliques.css) plutôt que de corriger uniquement la couleur :
      remplacement complet du visuel de carte par une copie fidèle de cette
      référence — 5 variantes de dégradé OKLCH (plus de rayures diagonales,
      qui n'existent pas sur la référence), reflet "sheen" diagonal unique,
      scrim dégradé sombre→transparent dans un conteneur `__card-body` dédié
      (garantit la lisibilité du titre quelle que soit la couleur du fond à
      cet endroit précis de la carte, indépendamment du bug de spécificité
      ci-dessus — ceinture et bretelles), badge pilule SANS hauteur fixe ni
      line-clamp (flux normal, comme la référence : aucun risque de
      chevauchement structurel, plus besoin du double-conteneur
      `__card-badge-text` du passage précédent), titre en `-webkit-line-clamp:
      2` directement sur le titre (comme la référence). Sélecteur de couleur
      du titre élargi en `.nwc-etudes-carousel .nwc-etudes-carousel__card-title`
      (spécificité 0,2,0 = 20) pour battre `.entry-content h3` avec marge,
      plus seulement 0,1,0 = 10 qui perdait de peu. `min-height:20rem` reprise
      telle quelle de la référence (plus d'aspect-ratio 4/5). Variante de
      dégradé posée en PHP (`nwc-etudes-carousel__card--1` à `--5`, cycle sur
      l'index) plutôt qu'en nth-child CSS, même logique que
      page-etudes-bibliques.php ($nwc_eb_variant).

   5) Retouche 25/10/2026 (5e passage, demande Jordan) : 4 cards pleinement
      visibles à 1440px au lieu de 5 — largeur de card portée de 13.75rem à
      18rem (voir calcul exact sur la règle `.nwc-etudes-carousel__item`
      ci-dessous). Mobile (<48rem) inchangé, 12.5rem toujours correct. */
.nwc-home-blog {
	padding-block: var(--nwc-space-9) !important;
	border-top: none !important;
}

.nwc-home-blog__head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--nwc-space-4);
	margin: 0 0 var(--nwc-space-7);
}

.nwc-home-blog__title {
	margin: 0;
	font-family: var(--nwc-font-display);
	font-size: var(--nwc-text-h2);
	font-weight: 800;
	letter-spacing: -0.01em;
	text-transform: uppercase;
	line-height: var(--nwc-leading-tight);
	color: var(--nwc-ink);
}

.nwc-home-blog__link {
	font-family: var(--nwc-font-body);
	font-size: var(--nwc-text-small);
	font-weight: 600;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: var(--nwc-gold-deep);
	text-decoration: underline;
	text-decoration-color: var(--nwc-gold);
	text-underline-offset: 0.25em;
	white-space: nowrap;
	transition: color var(--nwc-duration-fast) var(--nwc-ease),
		text-decoration-color var(--nwc-duration-fast) var(--nwc-ease);
}

.nwc-home-blog__link:hover {
	color: var(--nwc-ember);
	text-decoration-color: var(--nwc-ember);
}

@media (max-width: 48rem) {
	.nwc-home-blog__head {
		flex-direction: column;
		align-items: flex-start;
		gap: var(--nwc-space-3);
	}
}

/* Carrousel : piste en scroll-snap, flèches rondes superposées (mêmes codes
   visuels que les autres carrousels du site — ministères, lien-carousel).
   Plein largeur : voir note "Retouche 25/10/2026" ci-dessus. */
.nwc-etudes-carousel {
	position: relative;
	display: flex;
	align-items: center;
	gap: var(--nwc-space-3);
	margin-inline: calc(50% - 50vw);
	padding-inline: var(--nwc-space-5);
}

@media (min-width: 48rem) {
	.nwc-etudes-carousel {
		padding-inline: var(--nwc-space-7);
	}
}

.nwc-etudes-carousel__track {
	display: flex;
	gap: var(--nwc-space-5);
	margin: 0;
	padding: var(--nwc-space-2) var(--nwc-space-1) var(--nwc-space-4);
	list-style: none;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-padding-inline: var(--nwc-space-1);
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}

.nwc-etudes-carousel__track::-webkit-scrollbar {
	display: none;
}

.nwc-etudes-carousel__item {
	flex: 0 0 auto;
	width: 18rem; /* 288px — calculé pour 4 cards pleinement visibles à 1440px plein largeur (demande Jordan 25/10/2026, 5e passage : 4 cards au lieu de 5, voir note ci-dessus). 1440 - 2×48px marge carrousel - 88px 2 flèches - 24px gap flèches/piste - 8px padding piste - 3×24px gap entre 4 cards = 1152px disponibles ; 1152/4 = 288px exact. */
	scroll-snap-align: start;
}

/* Carte : copie fidèle de .nwc-eb-card (css/etudes-bibliques.css, page
   /etudes-bibliques/ — référence de Jordan), seule la largeur/scroll-snap
   change pour le contexte carrousel. Voir note "Retouche 25/10/2026 (4e
   passage)" en tête de section pour le détail des bugs corrigés. */
.nwc-etudes-carousel__card {
	position: relative;
	isolation: isolate;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	width: 100%;
	min-height: 20rem;
	border-radius: var(--nwc-radius-lg);
	border: 1px solid oklch(97% 0.014 83 / 0.14);
	box-shadow: var(--nwc-shadow-md);
	overflow: hidden;
	text-decoration: none;
	filter: brightness(1) saturate(1);
	transition:
		transform var(--nwc-duration-fast) var(--nwc-ease),
		box-shadow var(--nwc-duration-fast) var(--nwc-ease),
		border-color var(--nwc-duration-fast) var(--nwc-ease),
		filter var(--nwc-duration-fast) var(--nwc-ease);
}

/* 5 variantes de dégradé OKLCH, identiques à .nwc-eb-card--1..5. Posées en
   PHP (nwc-etudes-carousel__card--1 à --5, cycle sur l'index — voir
   functions.php) et non en nth-child, même logique que
   page-etudes-bibliques.php ($nwc_eb_variant). Plus de rayures diagonales :
   elles n'existent pas sur la référence. */
.nwc-etudes-carousel__card--1 {
	background: linear-gradient(135deg, oklch(30% 0.055 264) 0%, oklch(20% 0.045 263) 55%, oklch(37% 0.06 262) 100%);
}

.nwc-etudes-carousel__card--2 {
	background: linear-gradient(135deg, oklch(48% 0.16 30) 0%, oklch(34% 0.13 27) 55%, oklch(55% 0.17 35) 100%);
}

.nwc-etudes-carousel__card--3 {
	background: linear-gradient(135deg, oklch(66% 0.15 70) 0%, oklch(50% 0.145 65) 55%, oklch(74% 0.135 75) 100%);
}

.nwc-etudes-carousel__card--4 {
	background: linear-gradient(135deg, oklch(23% 0.05 265) 0%, oklch(34% 0.13 27) 65%, oklch(42% 0.15 27) 100%);
}

.nwc-etudes-carousel__card--5 {
	background: linear-gradient(135deg, oklch(58% 0.14 68) 0%, oklch(42% 0.13 50) 55%, oklch(42% 0.15 27) 100%);
}

/* Reflet diagonal discret, identique à .nwc-eb-card__sheen. */
.nwc-etudes-carousel__card-sheen {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background: linear-gradient(165deg, oklch(97% 0.014 83 / 0.22) 0%, transparent 35%);
	mix-blend-mode: screen;
}

.nwc-etudes-carousel__card:hover,
.nwc-etudes-carousel__card:focus-within {
	transform: translateY(-8px) scale(1.015);
	border-color: oklch(74% 0.135 75 / 0.65);
	box-shadow: 0 28px 56px oklch(23% 0.05 265 / 0.38), 0 10px 20px oklch(23% 0.05 265 / 0.22);
	filter: brightness(1.12) saturate(1.2);
}

.nwc-etudes-carousel__card:hover .nwc-etudes-carousel__card-sheen,
.nwc-etudes-carousel__card:focus-within .nwc-etudes-carousel__card-sheen {
	background: linear-gradient(165deg, oklch(97% 0.014 83 / 0.34) 0%, transparent 45%);
}

/* Scrim dégradé sombre→transparent, identique à .nwc-eb-card__body :
   garantit la lisibilité du badge/titre quelle que soit la couleur du fond
   à cet endroit précis de la carte, indépendamment de la variante --1..--5. */
.nwc-etudes-carousel__card-body {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	gap: var(--nwc-space-2);
	padding: var(--nwc-space-5) var(--nwc-space-4) var(--nwc-space-4);
	background: linear-gradient(to top, oklch(15% 0.03 265 / 0.82) 0%, oklch(15% 0.03 265 / 0.35) 70%, transparent 100%);
}

/* Badge SANS hauteur fixe ni line-clamp (flux normal, comme la référence) :
   aucun risque structurel de chevauchement avec le titre, quel que soit le
   libellé catégorie (y compris "SERVICE, RELATIONS ET AMOUR", "LOUANGE,
   TÉMOIGNAGE ET JOIE", etc.). */
.nwc-etudes-carousel__card-badge {
	align-self: flex-start;
	font-family: var(--nwc-font-mono);
	font-size: 0.72rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--nwc-ink);
	background: var(--nwc-cream);
	border-radius: var(--nwc-radius-sm);
	padding: 0.25rem 0.6rem;
}

/* Sélecteur élargi (.nwc-etudes-carousel ancêtre + classe du titre,
   spécificité 0,2,0 = 20) : nécessaire pour battre "h1, h2, h3, …,
   .entry-content h1, .entry-content h2, .entry-content h3, …" de base.css
   (color: var(--nwc-ink)), dont le sélecteur ".entry-content h3" a une
   spécificité classe+élément (0,1,1) supérieure à ".nwc-etudes-carousel__card-title"
   seul (0,1,0) — le carrousel est rendu dans .entry-content sur l'accueil.
   Même mécanisme que .nwc-pastoral-quote plus bas dans ce fichier. Sans ça
   le titre (encre très sombre) devient un "titre fantôme" quasi invisible
   sur les variantes de fond sombres — c'était la cause réelle du bug
   persistant, pas un problème de hauteur. */
.nwc-etudes-carousel .nwc-etudes-carousel__card-title {
	margin: 0;
	font-family: var(--nwc-font-display);
	font-size: 1.1rem;
	font-weight: 800;
	line-height: var(--nwc-leading-snug);
	color: var(--nwc-cream);
	text-shadow: 0 2px 10px oklch(15% 0.03 265 / 0.5);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.nwc-etudes-carousel__card-reading {
	display: flex;
	align-items: center;
	gap: var(--nwc-space-2);
	font-family: var(--nwc-font-mono);
	font-size: 0.78rem;
	color: oklch(97% 0.014 83 / 0.75);
}

/* Lien overlay (toute la card cliquable) + repère d'action "Lire l'article"
   + bouton PDF — copie fidèle de .nwc-eb-card__link/__actions/__cta/__pdf
   (css/etudes-bibliques.css, page /etudes-bibliques/, référence de Jordan) :
   retour explicite du 25/10/2026, les éléments n'apparaissent QU'AU SURVOL
   sur la référence et ça n'avait pas été reproduit ici. Même mécanique
   exacte (max-height:0 + opacity:0 au repos, déployés au :hover/:focus-within
   de la card) et même structure (card redevenue <article>, lien overlay
   séparé en z-index:2, actions en z-index:3 au-dessus pour que le PDF reste
   cliquable) — nécessaire pour permettre un second lien (PDF) dans la card,
   ce qu'une card = <a> unique interdisait (lien imbriqué invalide en HTML). */
.nwc-etudes-carousel__card-link {
	position: absolute;
	inset: 0;
	z-index: 2;
}

.nwc-etudes-carousel__card-actions {
	position: relative;
	z-index: 3;
	display: flex;
	align-items: center;
	gap: var(--nwc-space-2);
	margin-top: 0;
	max-height: 0;
	opacity: 0;
	overflow: hidden;
	transform: translateY(8px);
	transition: opacity var(--nwc-duration-fast) var(--nwc-ease),
		transform var(--nwc-duration-fast) var(--nwc-ease),
		max-height var(--nwc-duration-fast) var(--nwc-ease),
		margin-top var(--nwc-duration-fast) var(--nwc-ease);
}

.nwc-etudes-carousel__card:hover .nwc-etudes-carousel__card-actions,
.nwc-etudes-carousel__card:focus-within .nwc-etudes-carousel__card-actions {
	opacity: 1;
	transform: translateY(0);
	max-height: 3rem;
	margin-top: var(--nwc-space-1);
}

.nwc-etudes-carousel__card-cta {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	flex: 1 1 auto;
	justify-content: center;
	font-family: var(--nwc-font-mono);
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.01em;
	color: var(--nwc-ink);
	background: var(--nwc-cream);
	border-radius: var(--nwc-radius-sm);
	padding: 0.5rem 0.9rem;
	transition: background var(--nwc-duration-fast) var(--nwc-ease);
}

.nwc-etudes-carousel__card:hover .nwc-etudes-carousel__card-cta,
.nwc-etudes-carousel__card:focus-within .nwc-etudes-carousel__card-cta {
	background: var(--nwc-gold);
}

.nwc-etudes-carousel__card-pdf {
	position: relative;
	flex: 0 0 auto;
	font-family: var(--nwc-font-mono);
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	color: var(--nwc-cream);
	background: oklch(97% 0.014 83 / 0.16);
	border: 1px solid oklch(97% 0.014 83 / 0.3);
	border-radius: var(--nwc-radius-sm);
	padding: 0.5rem 0.9rem;
	text-decoration: none;
	transition: background var(--nwc-duration-fast) var(--nwc-ease), border-color var(--nwc-duration-fast) var(--nwc-ease);
}

.nwc-etudes-carousel__card-pdf:hover,
.nwc-etudes-carousel__card-pdf:focus-visible {
	background: oklch(97% 0.014 83 / 0.3);
	border-color: oklch(97% 0.014 83 / 0.5);
}

/* Flèches de navigation — retour Jordan 25/10/2026 (capture) : "pas assez
   visibles", fines et faible contraste sur le fond crème de la section
   (.nwc-home-blog). Cercle agrandi, bordure franche ajoutée (plus de
   box-shadow seul — oklch(.../.06) quasi invisible sur fond crème), icône
   plus épaisse (stroke-width 2 → 2.5, posé directement ici car l'icône est
   dessinée en `currentColor`), ombre portée renforcée pour détacher le
   cercle du fond au lieu de s'y fondre. */
.nwc-etudes-carousel__arrow {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 3.25rem;
	height: 3.25rem;
	border: 1.5px solid oklch(23% 0.05 265 / 0.16);
	border-radius: 50%;
	background: var(--nwc-cream);
	color: var(--nwc-ink);
	box-shadow: 0 4px 12px oklch(23% 0.05 265 / 0.16), 0 1px 3px oklch(23% 0.05 265 / 0.1);
	cursor: pointer;
	transition: background var(--nwc-duration-fast) var(--nwc-ease),
		color var(--nwc-duration-fast) var(--nwc-ease),
		border-color var(--nwc-duration-fast) var(--nwc-ease),
		box-shadow var(--nwc-duration-fast) var(--nwc-ease),
		opacity var(--nwc-duration-fast) var(--nwc-ease);
}

.nwc-etudes-carousel__arrow svg {
	width: 1.4rem;
	height: 1.4rem;
	stroke-width: 2.5;
}

.nwc-etudes-carousel__arrow:hover:not(:disabled) {
	background: var(--nwc-gold-deep);
	color: var(--nwc-cream);
	border-color: var(--nwc-gold-deep);
	box-shadow: 0 6px 16px oklch(23% 0.05 265 / 0.22), 0 2px 4px oklch(23% 0.05 265 / 0.14);
}

.nwc-etudes-carousel__arrow:disabled {
	opacity: 0.35;
	cursor: default;
}

@media (max-width: 48rem) {
	.nwc-etudes-carousel {
		gap: var(--nwc-space-2);
	}

	.nwc-etudes-carousel__item {
		width: 12.5rem; /* agrandi (brief lisibilité 25/10/2026), contre 9.5rem avant */
	}

	.nwc-etudes-carousel__arrow {
		width: 2.75rem;
		height: 2.75rem;
	}

	.nwc-etudes-carousel__arrow svg {
		width: 1.25rem;
		height: 1.25rem;
	}
}

/* ===================== 6. Couple pastoral — portrait asymétrique ===================== */
.nwc-home-pastoral {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	background: var(--nwc-ink-soft) !important;
	padding-block: var(--nwc-space-10) !important;
}

/* MàJ 25/10/2026 (retour Jordan, capture : coupure nette visible en toute
   première rangée de pixels de la section, juste avant la bascule sur le
   fond sombre) : la jointure avec la section précédente (.nwc-home-blog /
   "Études bibliques", fond --nwc-cream, cf. règle partagée en tête de
   fichier) était une coupure brutale clair -> --nwc-ink-soft, sans transition
   — .nwc-home-pastoral pose son fond en solid (`background` !important
   ci-dessous) directement contre le crème de la section au-dessus. Reprend
   la même technique que les 2 dégradés haut/bas déjà posés sur
   .nwc-home-confession (section 3 plus haut dans ce fichier) : un
   linear-gradient --nwc-cream -> transparent, ajouté en PREMIER calque
   (donc au-dessus des 2 radiaux existants) sur ce pseudo-élément déjà présent
   (z-index:0, sous le contenu réel via .nwc-home-pastoral .nwc-container
   {z-index:1}). Hauteur de transition volontairement courte (5rem, "quelques
   rem" demandés par Jordan) pour rester un simple adoucissement de bord, pas
   un dégradé qui mange la section. */
.nwc-home-pastoral::before {
	content: "";
	position: absolute;
	z-index: 0;
	inset: 0;
	pointer-events: none;
	background:
		linear-gradient(180deg, var(--nwc-cream) 0, transparent 5rem),
		radial-gradient(50% 65% at 8% 100%, oklch(74% 0.135 75 / 0.12), transparent 70%),
		radial-gradient(45% 55% at 100% 0%, oklch(42% 0.15 27 / 0.2), transparent 70%);
}

.nwc-home-pastoral .nwc-container {
	position: relative;
	z-index: 1;
}

.nwc-pastoral-layout {
	display: grid;
	grid-template-columns: minmax(0, 0.8fr) minmax(0, 1fr);
	gap: var(--nwc-space-9);
	align-items: center;
}

/* Portrait pleine hauteur, décalé hors de l'alignement de grille (asymétrie
   volontaire) plutôt qu'un format carte centrée photo-gauche/texte-droite. */
.nwc-pastoral-photo {
	position: relative;
	isolation: isolate;
	border-radius: var(--nwc-radius-md);
	overflow: hidden;
	box-shadow: var(--nwc-shadow-lg);
	border: 1px solid oklch(97% 0.014 83 / 0.14);
	max-width: none;
	margin: 0;
	aspect-ratio: 4 / 5;
}

@media (min-width: 62rem) {
	.nwc-pastoral-photo {
		margin-top: calc(-1 * var(--nwc-space-7));
		margin-bottom: calc(-1 * var(--nwc-space-7));
		margin-left: calc(-1 * var(--nwc-space-6));
	}
}

.nwc-pastoral-photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: auto;
}

.nwc-pastoral-photo__caption {
	position: absolute;
	inset-inline: 0;
	bottom: 0;
	background: none;
	background-image: linear-gradient(180deg, transparent 0%, oklch(23% 0.05 265 / 0.78) 100%);
	padding: var(--nwc-space-7) var(--nwc-space-5) var(--nwc-space-4);
}

.nwc-pastoral-photo__name {
	font-family: var(--nwc-font-display);
	font-size: var(--nwc-text-h3);
	color: var(--nwc-cream);
	margin: 0 0 0.2rem;
}

.nwc-pastoral-photo__role {
	font-family: var(--nwc-font-mono);
	font-size: 0.75rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--nwc-mist);
	opacity: 0.85;
	margin: 0;
}

/* Citation en grand, traitement magazine, pas un h2 plat. Guillemets
   typographiques en filigrane plutôt qu'un bloc centré symétrique. */
.nwc-pastoral-text {
	position: relative;
}

/* .nwc-home-pastoral .nwc-pastoral-quote (et non .nwc-pastoral-quote seul) :
   nécessaire pour battre "h1, h2, h3, h4, h5, h6, .entry-content h1,
   .entry-content h2, .entry-content h3, .wp-block-kadence-advancedheading"
   de base.css (color: var(--nwc-ink)), dont le sélecteur ".entry-content h2"
   a une spécificité classe+élément (0,1,1) supérieure à ".nwc-pastoral-quote"
   seul (0,1,0) — même mécanisme de conflit que le h2 manuscrit documenté
   juste au-dessus dans base.css. Sans ça la citation (encre très sombre)
   devient quasi invisible sur le fond ink-soft de la section pastorale. */
.nwc-home-pastoral .nwc-pastoral-quote {
	position: relative;
	font-family: var(--nwc-font-display);
	font-weight: 400;
	font-size: clamp(1.9rem, 1.5rem + 2vw, 3rem);
	line-height: 1.12;
	letter-spacing: -0.01em;
	margin: 0 0 var(--nwc-space-5);
	color: var(--nwc-cream);
	max-width: 18ch;
}

.nwc-pastoral-quote::before {
	content: "\201C";
	position: absolute;
	top: -0.3em;
	left: -0.05em;
	transform: translateX(-100%);
	font-size: 2.2em;
	color: oklch(74% 0.135 75 / 0.35);
	pointer-events: none;
}

/* Cercle+flèche au survol (mécanique commune dans components.css, voir
   .nwc-button:has(> .nwc-button__arrow)) : fond de section sombre
   (var(--nwc-ink-soft) ci-dessus) donc variante .nwc-button--on-dark
   (cercle clair + icône foncée) plutôt que la variante claire par défaut
   utilisée par "En savoir plus"/"Voir tous les messages"/"Lire notre
   confession de foi", qui vivent sur fond crème. */
.nwc-home-pastoral__cta {
	margin-top: var(--nwc-space-6);
}

.nwc-home-pastoral .nwc-callout-note {
	background: none !important;
	border: none;
	border-top: 1px solid oklch(97% 0.014 83 / 0.18);
	border-radius: 0;
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
	padding-top: var(--nwc-space-4);
}

@media (max-width: 62rem) {
	.nwc-pastoral-layout {
		grid-template-columns: 1fr;
		gap: var(--nwc-space-6);
	}

	.nwc-pastoral-photo {
		aspect-ratio: 4 / 3;
		max-width: 28rem;
		margin-inline: auto;
	}

	.nwc-pastoral-quote {
		max-width: none;
	}

	.nwc-pastoral-quote::before {
		position: static;
		display: block;
		transform: none;
		margin-bottom: -0.3em;
	}
}

/* ===================== Mouvement : réduction ===================== */
@media (prefers-reduced-motion: reduce) {
	.nwc-etudes-carousel__card:hover,
	.nwc-etudes-carousel__arrow:hover {
		transform: none;
	}
}
