/* ==========================================================================
   Celesta v2 - silo ENTREPRISES, pages FILLES. Kit .cvn-
   Parti : LE DEROULE DE LA SOIREE.
   Lecture de SERP : sur soiree d entreprise (590/mois) et animation soiree
   entreprise (880/mois), 70 resultats lus, AUCUN ne cite un feu d artifice,
   un vol de drones ni un effet special. Les listes s arretent au photobooth.
   Le silo ne se bat donc pas sur le mot soiree : il occupe le moment que
   personne ne vend, le POINT D ORGUE. Le kit traduit cela - la page est
   rythmee comme une soiree, et son sommet graphique est la frise horaire.
   Kit VOLONTAIREMENT distinct du .cvm- de la mere 136 : heros SCINDE au lieu
   du heros pleine photo, filets clairs au lieu de plaques noires, aucune
   trame quadrillee.
   Angles droits partout : aucun border-radius dans cette feuille.
   ========================================================================== */

/* -------------------------------------------------------------------------
   1. SOCLE
   ------------------------------------------------------------------------- */
body:has(.cvn-hero),
body:has(.cvn-sec) { background: var(--cv2-abysse); }
body:has(.cvn-hero) main,
body:has(.cvn-sec) main { margin-block-start: 0; }
body:has(.cvn-hero) .wp-block-post-content,
body:has(.cvn-sec) .wp-block-post-content { margin-block-start: 0; }

/* A1bis, 12e recidive possible : les sections RACINE prennent elles-memes les
   19,2px du coeur. Liste EXPLICITE, jamais un > * generique. */
.wp-site-blocks .wp-block-post-content > .cvn-hero,
.wp-site-blocks .wp-block-post-content > .cvn-sec,
.wp-site-blocks .wp-block-post-content > .cvn-appel { margin-block: 0; }

.cvn-hero, .cvn-sec, .cvn-appel {
	--cvn-texte: #DCDDEF;
	--cvn-trait: rgba(86, 181, 235, 0.22);
	--cvn-trait-fort: rgba(86, 181, 235, 0.55);
	--cvn-bord: rgba(255, 255, 255, 0.13);
	--cvn-verre: rgba(255, 255, 255, 0.042);
	--cvn-plaque: rgba(0, 0, 0, 0.94);
}

.wp-site-blocks .cvn-hero,
.wp-site-blocks .cvn-sec,
.wp-site-blocks .cvn-appel { color: var(--cvn-texte); }
.wp-site-blocks .cvn-hero h1,
.wp-site-blocks .cvn-sec h2,
.wp-site-blocks .cvn-sec h3,
.wp-site-blocks .cvn-sec h4,
.wp-site-blocks .cvn-appel h2 { color: #ffffff; }

.cvn-int {
	max-width: 1280px;
	margin-inline: auto;
	box-sizing: border-box;
	padding: clamp(60px, 7.4vw, 104px) clamp(20px, 3.2vw, 32px);
}

/* Rail de fonds : quatre tons reellement distincts, jamais deux voisins
   identiques. */
.cvn-sec--noir   { background: #000000; }
.cvn-sec--abysse { background: var(--cv2-abysse); }
.cvn-sec--nuit   { background: var(--cv2-nuit); }
.cvn-sec--marine { background: var(--cv2-marine); }

/* overflow CLIP et non HIDDEN : hidden tuerait tout position sticky. */
.wp-site-blocks .cvn-sec { position: relative; overflow: clip; }
/* A17 : la figure de fond doit rester ABSOLUE. Une regle de pile en > *
   la remettrait dans le flux et la photo occuperait toute la hauteur. */
.wp-site-blocks .cvn-sec > *:not(.cvn-fond) { position: relative; z-index: 1; }

/* -------------------------------------------------------------------------
   2. NEUTRALISATION DES MARGES DU COEUR
   Liste couvrant TOUS les conteneurs du kit des sa creation, y compris ceux
   qui n ont qu un enfant aujourd hui. Dans une grille, cette marge ne separe
   pas : elle RETRECIT l element de 19,2px.
   ------------------------------------------------------------------------- */
.wp-site-blocks .cvn-hero > *,
.wp-site-blocks .cvn-hero__texte > *,
.wp-site-blocks .cvn-hero__int > *,
.wp-site-blocks .cvn-hero__pied > *,
.wp-site-blocks .cvn-hero__jalon > *,
.wp-site-blocks .cvn-sec > *,
.wp-site-blocks .cvn-int > *,
.wp-site-blocks .cvn-tete > *,
.wp-site-blocks .cvn-frise > *,
.wp-site-blocks .cvn-jalon > *,
.wp-site-blocks .cvn-jetons > *,
.wp-site-blocks .cvn-releve > *,
.wp-site-blocks .cvn-releve__bloc > *,
.wp-site-blocks .cvn-disciplines > *,
.wp-site-blocks .cvn-discipline > *,
.wp-site-blocks .cvn-formats > *,
.wp-site-blocks .cvn-format > *,
.wp-site-blocks .cvn-etapes > *,
.wp-site-blocks .cvn-etape > *,
.wp-site-blocks .cvn-conformite > *,
.wp-site-blocks .cvn-conformite__col > *,
.wp-site-blocks .cvn-mentions > *,
.wp-site-blocks .cvn-atouts > *,
.wp-site-blocks .cvn-atout > *,
.wp-site-blocks .cvn-reals > *,
.wp-site-blocks .cvn-realgrille > *,
.wp-site-blocks .cvn-realcarte > *,
.wp-site-blocks .cvn-realcarte__corps > *,
.wp-site-blocks .cvn-appel > *,
.wp-site-blocks .cvn-appel__int > *,
.wp-site-blocks .cvn-faq > * { margin-block: 0; }

/* -------------------------------------------------------------------------
   3. QUI NEUTRALISE REDECLARE
   La neutralisation ci-dessus vaut (0,3,0) et ecrase aussi les marges des
   classes, en (0,2,0). Sans ce bloc, tout se colle.
   ------------------------------------------------------------------------- */
/* Les marges du heros et celles de tout groupe de BOUTONS sont posees plus
   bas, au bloc 4 bis : elles doivent passer APRES la regle des boutons. */

.wp-site-blocks .cvn-tete > .cvn-sur { margin-block-end: 14px; }
.wp-site-blocks .cvn-tete > .cvn-titre { margin-block-end: 18px; }
.wp-site-blocks .cvn-int > .cvn-tete { margin-block-end: clamp(38px, 4.4vw, 58px); }
.wp-site-blocks .cvn-int > .cvn-note { margin-block-start: clamp(26px, 3vw, 36px); }
.wp-site-blocks .cvn-int > .cvn-frise { margin-block-end: clamp(34px, 4vw, 50px); }
/* Composants qui suivent un AUTRE composant, et non la tete de section :
   sans ces lignes ils se collent au precedent. Le releve suit les jetons,
   le bouton final suit les atouts. */
.wp-site-blocks .cvn-int > .cvn-releve { margin-block-start: clamp(34px, 4vw, 50px); }


.wp-site-blocks .cvn-conformite__col > .cvn-sur { margin-block-end: 14px; }
.wp-site-blocks .cvn-conformite__col > .cvn-titre { margin-block-end: 18px; }
.wp-site-blocks .cvn-conformite__col > .cvn-mentions { margin-block-start: clamp(24px, 2.8vw, 32px); }

.wp-site-blocks .cvn-appel__int > .cvn-sur { margin-block-end: 14px; }
.wp-site-blocks .cvn-appel__int > .cvn-appel__titre { margin-block-end: 16px; }
.wp-site-blocks .cvn-appel__int > .cvn-appel__texte { margin-block-end: clamp(24px, 2.8vw, 32px); }

.wp-site-blocks .cvn-faq > details { margin-block-start: 10px; }
.wp-site-blocks .cvn-faq > details:first-of-type { margin-block-start: 0; }

/* -------------------------------------------------------------------------
   4. BOUTONS
   Le kit .cvh- ne vise que .cvh-hero/.cvh-sec : sans ce bloc, les boutons
   retombent sur le style du theme.
   Regle client, rappelee DEUX fois : tous les boutons du site ont la MEME
   taille. Meme padding, meme corps, meme graisse que les autres kits.
   ------------------------------------------------------------------------- */
.wp-site-blocks .cvn-hero .wp-block-button__link,
.wp-site-blocks .cvn-sec .wp-block-button__link,
.wp-site-blocks .cvn-appel .wp-block-button__link {
	background: var(--cv2-degrade-bouton);
	color: #ffffff;
	border-radius: 0;
	border: 0;
	box-sizing: border-box;
	font-size: 14.5px;
	font-weight: 600;
	letter-spacing: 0.03em;
	line-height: 1;
	padding: 16px 28px;
	text-decoration: none;
	transition: box-shadow 0.16s ease, transform 0.16s ease;
}
.wp-site-blocks .cvn-hero .wp-block-button__link:hover,
.wp-site-blocks .cvn-sec .wp-block-button__link:hover,
.wp-site-blocks .cvn-appel .wp-block-button__link:hover {
	box-shadow: 0 8px 24px rgba(12, 103, 222, 0.42);
	transform: translateY(-1px);
}
.wp-site-blocks .cvn-hero .is-style-outline .wp-block-button__link,
.wp-site-blocks .cvn-sec .is-style-outline .wp-block-button__link,
.wp-site-blocks .cvn-appel .is-style-outline .wp-block-button__link {
	background: transparent;
	border: 1px solid rgba(255, 255, 255, 0.55);
	color: #ffffff;
}
.wp-site-blocks .cvn-hero .is-style-outline .wp-block-button__link:hover,
.wp-site-blocks .cvn-sec .is-style-outline .wp-block-button__link:hover,
.wp-site-blocks .cvn-appel .is-style-outline .wp-block-button__link:hover {
	border-color: var(--cv2-ciel);
	box-shadow: none;
}
.wp-site-blocks .cvn-hero .wp-block-buttons,
.wp-site-blocks .cvn-sec .wp-block-buttons,
.wp-site-blocks .cvn-appel .wp-block-buttons { margin-block: 0; gap: 12px; }

/* -------------------------------------------------------------------------
   4 bis. LES MARGES QUI DOIVENT PASSER APRES LES BOUTONS
   ⛔⛔ A17, paye ici aussi : la regle `.cvn-sec .wp-block-buttons
   { margin-block: 0 }` du bloc 4 vaut (0,3,0) et elle est ecrite APRES le
   bloc 3. A egalite de specificite, le DERNIER ECRIT gagne : toutes les
   marges posees sur un groupe de boutons au bloc 3 tombaient, et le heros
   se rendait avec ses cinq elements COLLES a 0px.
   ⚠️ Ne pas remonter ces lignes au bloc 3 en croyant ranger.
   ⚠️ Le conteneur reel des enfants du heros est .cvn-hero__int, et non
   .cvn-hero__texte qui ne porte que le calage vertical.
   ------------------------------------------------------------------------- */
.wp-site-blocks .cvn-hero__int > .cvn-sur { margin-block-end: clamp(16px, 2vw, 22px); }
.wp-site-blocks .cvn-hero__int > .cvn-hero__titre { margin-block-end: clamp(16px, 2vw, 22px); }
.wp-site-blocks .cvn-hero__int > .cvn-hero__chapo { margin-block-end: clamp(24px, 2.8vw, 32px); }
.wp-site-blocks .cvn-hero__int > .wp-block-buttons { margin-block-end: clamp(24px, 2.8vw, 32px); }
.wp-site-blocks .cvn-int > .wp-block-buttons { margin-block-start: clamp(34px, 4vw, 48px); }
.wp-site-blocks .cvn-conformite__col > .wp-block-buttons { margin-block-start: clamp(26px, 3vw, 34px); }

:where(.cvn-hero, .cvn-sec, .cvn-appel) :focus-visible {
	outline: none;
	box-shadow: 0 0 0 2px rgba(86, 181, 235, 0.9), 0 0 0 7px rgba(86, 181, 235, 0.2);
}

/* -------------------------------------------------------------------------
   5. TYPOGRAPHIE COMMUNE
   Le surtitre porte un FILET COURT au-dessus de lui : c est la signature
   discrete du kit, et elle remplace toute puce ou tout badge.
   ------------------------------------------------------------------------- */
.wp-site-blocks .cvn-sur {
	position: relative;
	font-size: var(--cv2-t6);
	font-weight: 700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--cv2-ciel);
	padding-block-start: 18px;
}
.wp-site-blocks .cvn-sur::before {
	content: "";
	position: absolute;
	inset-block-start: 0;
	inset-inline-start: 0;
	width: 46px;
	height: 2px;
	background: var(--cv2-degrade);
}
.wp-site-blocks .cvn-hero__titre {
	/* ⛔ Plafonne par la HAUTEUR de fenetre, jamais par le jeton global :
	   a 49px le titre tenait quatre lignes et faisait deborder le heros de
	   33px. Mesure a 1366x768 : 42px, quatre lignes, debord 0. */
	/* ⛔ TROIS plafonds, et le plus petit gagne : le jeton global, la hauteur
	   de fenetre pour le budget du heros, et 42px parce que la colonne du
	   heros est fixe a 620px par construction. Sans ce dernier, un ecran haut
	   agrandissait le titre jusqu a QUATRE lignes. */
	font-size: min(var(--cv2-t1), 5.5vh, 42px);
	font-weight: 800;
	line-height: 1.08;
	letter-spacing: -0.015em;
	color: #ffffff;
	text-wrap: balance;
	overflow-wrap: break-word;
}
/* ⛔⛔ UN TITRE NE SE BORNE PAS EN CARACTERES.
   Un `max-width: 22ch` posait le titre sur 626px alors que la colonne en
   fait 1216 : la coupure ne tombait plus sur le sens mais la ou le compte
   de caracteres s arretait, et trois titres passaient a TROIS lignes.
   ⭐ La mesure en `ch` vaut pour un PARAGRAPHE, qui se lit ligne a ligne.
   Un titre se lit d un bloc : il prend la largeur de sa colonne.
   ⭐ `text-wrap: balance` repartit ensuite les mots a egalite entre les
   lignes et supprime les orphelins. C est LUI qui choisit la coupure, pas
   une largeur arbitraire. */
.wp-site-blocks .cvn-titre {
	font-size: var(--cv2-t2);
	font-weight: 700;
	line-height: 1.14;
	color: #ffffff;
	text-wrap: balance;
	overflow-wrap: break-word;
}
.wp-site-blocks .cvn-appel__titre {
	font-size: var(--cv2-t2);
	font-weight: 700;
	line-height: 1.14;
	color: #ffffff;
	text-wrap: balance;
	overflow-wrap: break-word;
}
.wp-site-blocks .cvn-hero__titre mark,
.wp-site-blocks .cvn-titre mark,
.wp-site-blocks .cvn-appel__titre mark {
	background: var(--cv2-degrade-titre);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	padding: 0;
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
}
.wp-site-blocks p.cvn-hero__chapo,
.wp-site-blocks p.cvn-chapo,
.wp-site-blocks p.cvn-appel__texte {
	font-size: var(--cv2-t5);
	font-weight: 300;
	line-height: 1.66;
	color: var(--cvn-texte);
	max-width: 88ch;
	margin: 0;
}

/* Le chapo de HEROS garde la borne courte : le voile y est dense a gauche
   et transparent a droite, elargir ferait sortir les glyphes de la zone dense. */
.wp-site-blocks p.cvn-hero__chapo { max-width: 62ch; }
.wp-site-blocks p.cvn-note {
	font-size: var(--cv2-t6);
	font-weight: 400;
	line-height: 1.6;
	color: var(--cvn-texte);
	opacity: 0.82;
	max-width: 74ch;
	margin: 0;
	text-transform: none;
	letter-spacing: 0;
}

/* -------------------------------------------------------------------------
   6. HEROS SCINDE
   La mere 136 porte un heros pleine photo. Les filles portent un heros en
   DEUX COLONNES : le texte vit sur un aplat, la photographie occupe sa propre
   moitie et reste entierement visible. Le contraste est donc deterministe -
   il ne depend d aucun pixel de l image.
   L image est placee EN PREMIER dans le DOM : sur telephone elle passe donc
   naturellement au-dessus du texte, sans regle order.
   ------------------------------------------------------------------------- */
.wp-site-blocks .cvn-hero {
	position: relative;
	background: var(--cv2-abysse);
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	align-items: stretch;
	overflow: clip;
}
.wp-site-blocks .cvn-hero__photo {
	position: relative;
	margin: 0;
	overflow: hidden;
	min-height: clamp(190px, 27vh, 270px);
}
/* C7 : height 100% sur une img se resout en RATIO NATUREL. Absolu obligatoire. */
.wp-site-blocks .cvn-hero__photo img {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
/* Voile LEGER : aucun texte ne repose sur la photographie. Il ne sert qu a
   asseoir le raccord avec la section suivante. Plafond client : 0,62. */
.wp-site-blocks .cvn-hero__photo::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0.34) 0%, rgba(0, 0, 0, 0.06) 44%, rgba(0, 0, 0, 0.40) 100%);
}
.wp-site-blocks .cvn-hero__texte {
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(26px, 4.6vh, 78px) clamp(20px, 3.2vw, 32px) clamp(22px, 3.6vh, 58px);
}
.wp-site-blocks .cvn-hero__int { max-width: 640px; }
/* Les gages : une seule ligne, separee par des filets verticaux. Aucun badge,
   aucune puce - la sobriete est le parti. */
.wp-site-blocks .cvn-gages {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 0;
}
/* ⛔⛔ VU A L ECRAN, pas a la mesure : avec le filet en border-inline-start
   sur `li + li`, une ligne qui se coupe COMMENCE par une barre verticale
   orpheline. Le filet doit appartenir a l element QUI PRECEDE, en ::after :
   une barre en fin de ligne se voit à peine, une barre en tete se voit tout
   de suite. */
.wp-site-blocks .cvn-gages > li {
	margin-block: 0;
	display: inline-flex;
	align-items: center;
	font-size: var(--cv2-t6);
	font-weight: 600;
	letter-spacing: 0.06em;
	line-height: 1.4;
	color: var(--cvn-texte);
	padding-inline: 0;
}
.wp-site-blocks .cvn-gages > li:not(:last-child)::after {
	content: "";
	inline-size: 1px;
	block-size: 1.05em;
	background: var(--cvn-trait-fort);
	margin-inline: clamp(12px, 1.4vw, 18px);
	flex: 0 0 auto;
}
.wp-site-blocks .cvn-gages > li + li { border-inline-start: 0; padding-inline-start: 0; }

/* -------------------------------------------------------------------------
   7. TETE DE SECTION
   ------------------------------------------------------------------------- */
/* ⚠️ AUCUNE borne ici : elle retomberait sur le titre. La colonne de
   lecture est portee par le chapo lui-meme (62ch), pas par son conteneur. */
.wp-site-blocks .cvn-tete { max-width: none; }
.wp-site-blocks .cvn-tete--large { max-width: none; }

/* -------------------------------------------------------------------------
   8. LA FRISE HORAIRE - signature du kit
   Une soiree se lit sur une ligne de temps. Chaque jalon est un carre pose
   sur un filet continu ; le jalon du POINT D ORGUE est le seul a porter un
   aplat et un carre en degrade. C est le sommet graphique de la page, et il
   dit exactement ce que la page vend.
   Angles droits : le marqueur est un CARRE, jamais une pastille.
   ------------------------------------------------------------------------- */
.wp-site-blocks .cvn-frise {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	align-items: stretch;
	grid-auto-rows: 1fr;
	gap: 0;
}
.wp-site-blocks .cvn-jalon {
	position: relative;
	height: 100%;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: clamp(26px, 3vw, 34px) clamp(18px, 2.2vw, 26px) clamp(24px, 2.8vw, 30px);
	background: transparent;
	transition: background-color 0.24s ease;
}
/* Le filet continu : chaque jalon porte son propre segment, et ils se
   joignent. Un filet unique en ::before sur le conteneur ne saurait pas se
   couper au bon endroit quand la frise passe sur deux lignes. */
.wp-site-blocks .cvn-jalon::before {
	content: "";
	position: absolute;
	inset-block-start: 0;
	inset-inline: 0;
	height: 1px;
	background: var(--cvn-trait);
}
.wp-site-blocks .cvn-jalon::after {
	content: "";
	position: absolute;
	inset-block-start: -4px;
	inset-inline-start: clamp(18px, 2.2vw, 26px);
	width: 9px;
	height: 9px;
	background: var(--cv2-ciel);
}
.wp-site-blocks .cvn-jalon--orgue { background: var(--cvn-verre); }
.wp-site-blocks .cvn-jalon--orgue::before { background: var(--cvn-trait-fort); }
.wp-site-blocks .cvn-jalon--orgue::after {
	inset-block-start: -6px;
	width: 13px;
	height: 13px;
	background: var(--cv2-degrade);
}
.wp-site-blocks p.cvn-jalon__heure {
	font-size: var(--cv2-t6);
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--cv2-ciel);
	margin: 0;
	font-variant-numeric: tabular-nums;
}
.wp-site-blocks .cvn-jalon--orgue p.cvn-jalon__heure { color: #ffffff; }
.wp-site-blocks .cvn-jalon__nom {
	font-size: var(--cv2-t-vignette);
	font-weight: 700;
	line-height: 1.24;
	color: #ffffff;
	margin: 0;
	min-height: calc(2 * 1.24em);
	overflow-wrap: break-word;
}
.wp-site-blocks p.cvn-jalon__txt {
	font-size: 15px;
	font-weight: 300;
	line-height: 1.7;
	color: var(--cvn-texte);
	margin: 0;
}

/* -------------------------------------------------------------------------
   9. LES JETONS ET LE RELEVE
   Les jetons citent le vocabulaire que la SERP repete sans exception :
   photobooth, casino, blind test, magicien. Ils sont VOLONTAIREMENT ternes -
   ils posent le decor. Le releve qui les suit porte, lui, tout le contraste.
   ------------------------------------------------------------------------- */
.wp-site-blocks .cvn-jetons {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}
.wp-site-blocks .cvn-jetons > li {
	margin-block: 0;
	box-sizing: border-box;
	padding: 9px 16px;
	border: 1px solid var(--cvn-trait);
	font-size: var(--cv2-t6);
	font-weight: 500;
	letter-spacing: 0.04em;
	line-height: 1.3;
	color: var(--cvn-texte);
	opacity: 0.62;
}
.wp-site-blocks .cvn-releve {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(24px, 3vw, 40px);
	align-items: start;
}
.wp-site-blocks .cvn-releve__bloc {
	box-sizing: border-box;
	border-block-start: 2px solid var(--cv2-bleu);
	padding-block-start: clamp(20px, 2.4vw, 28px);
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.wp-site-blocks .cvn-releve__cle {
	font-size: var(--cv2-t6);
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--cv2-ciel);
	margin: 0;
}
.wp-site-blocks .cvn-releve__titre {
	font-size: var(--cv2-t3);
	font-weight: 700;
	line-height: 1.22;
	color: #ffffff;
	margin: 0;
	overflow-wrap: break-word;
}
.wp-site-blocks p.cvn-releve__txt {
	font-size: 15px;
	font-weight: 300;
	line-height: 1.7;
	color: var(--cvn-texte);
	margin: 0;
}

/* -------------------------------------------------------------------------
   10. LES TROIS DISCIPLINES
   Trois colonnes separees par un filet d un pixel, SANS aucun fond : le vide
   est le materiau. Un chiffre romain tres discret tient lieu de reperage.
   ------------------------------------------------------------------------- */
.wp-site-blocks .cvn-disciplines {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	align-items: stretch;
	grid-auto-rows: 1fr;
	gap: 0;
}
.wp-site-blocks .cvn-discipline {
	height: 100%;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	gap: clamp(12px, 1.4vw, 16px);
	padding: clamp(28px, 3.2vw, 38px) 0 clamp(26px, 3vw, 34px);
	border-block-start: 1px solid var(--cvn-trait);
}
.wp-site-blocks p.cvn-discipline__num {
	font-size: var(--cv2-t6);
	font-weight: 700;
	letter-spacing: 0.28em;
	color: var(--cv2-ciel);
	margin: 0;
}
.wp-site-blocks .cvn-discipline__nom {
	font-size: var(--cv2-t3);
	font-weight: 700;
	line-height: 1.2;
	color: #ffffff;
	margin: 0;
	overflow-wrap: break-word;
}
.wp-site-blocks p.cvn-discipline__txt {
	font-size: 15px;
	font-weight: 300;
	line-height: 1.7;
	color: var(--cvn-texte);
	margin: 0;
}
.wp-site-blocks .cvn-discipline__lien { margin: 0; }
.wp-site-blocks .cvn-discipline__lien a,
.wp-site-blocks .cvn-format__lien a {
	font-size: var(--cv2-t6);
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--cv2-ciel);
	text-decoration: none;
	transition: color 0.2s ease;
}
.wp-site-blocks .cvn-discipline__lien a:hover,
.wp-site-blocks .cvn-format__lien a:hover { color: #ffffff; }
.wp-site-blocks .cvn-discipline > .cvn-discipline__lien { margin-block-start: auto; padding-block-start: clamp(16px, 1.8vw, 20px); }

/* -------------------------------------------------------------------------
   11. LES FORMATS DE SOIREE
   Une LISTE reglee, pas une grille de tuiles : la mere 136 porte deja douze
   jetons en grille, et deux kits voisins ne doivent pas se ressembler.
   Chaque ligne : le nom a gauche, la precision a droite, un filet au-dessus.
   ------------------------------------------------------------------------- */
.wp-site-blocks .cvn-formats {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 0;
}
.wp-site-blocks .cvn-format {
	box-sizing: border-box;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 8px clamp(24px, 3vw, 44px);
	padding-block: clamp(20px, 2.4vw, 26px);
	border-block-start: 1px solid var(--cvn-trait);
	transition: border-color 0.24s ease;
}
.wp-site-blocks .cvn-format:last-child { border-block-end: 1px solid var(--cvn-trait); }
.wp-site-blocks .cvn-format:hover { border-color: var(--cvn-trait-fort); }
.wp-site-blocks p.cvn-format__nom {
	font-size: var(--cv2-t4);
	font-weight: 700;
	line-height: 1.24;
	color: #ffffff;
	margin: 0;
	overflow-wrap: break-word;
}
.wp-site-blocks p.cvn-format__txt {
	font-size: 15px;
	font-weight: 300;
	line-height: 1.7;
	color: var(--cvn-texte);
	margin: 0;
	text-transform: none;
	letter-spacing: 0;
}

/* -------------------------------------------------------------------------
   12. LE DEROULE DE PRODUCTION
   ------------------------------------------------------------------------- */
.wp-site-blocks .cvn-etapes {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	align-items: stretch;
	grid-auto-rows: 1fr;
	gap: 0;
}
.wp-site-blocks .cvn-etape {
	height: 100%;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: clamp(22px, 2.6vw, 30px) clamp(18px, 2.2vw, 26px) clamp(22px, 2.6vw, 28px);
	border-block-start: 1px solid var(--cvn-trait);
}
.wp-site-blocks p.cvn-etape__num {
	font-size: var(--cv2-t6);
	font-weight: 700;
	letter-spacing: 0.24em;
	color: var(--cv2-ciel);
	margin: 0;
	font-variant-numeric: tabular-nums;
}
.wp-site-blocks .cvn-etape__nom {
	font-size: var(--cv2-t4);
	font-weight: 700;
	line-height: 1.26;
	color: #ffffff;
	margin: 0;
	overflow-wrap: break-word;
}
.wp-site-blocks p.cvn-etape__txt {
	font-size: 15px;
	font-weight: 300;
	line-height: 1.7;
	color: var(--cvn-texte);
	margin: 0;
}

/* -------------------------------------------------------------------------
   13. CONFORMITE - deux colonnes, le texte a gauche, les mentions a droite
   ------------------------------------------------------------------------- */
.wp-site-blocks .cvn-conformite {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(30px, 3.6vw, 52px);
	align-items: start;
}
.wp-site-blocks .cvn-mentions {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 0;
}
.wp-site-blocks .cvn-mentions > li {
	margin-block: 0;
	box-sizing: border-box;
	padding-block: clamp(14px, 1.6vw, 18px);
	border-block-start: 1px solid var(--cvn-trait);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.7;
	color: #ffffff;
}
.wp-site-blocks .cvn-mentions > li:last-child { border-block-end: 1px solid var(--cvn-trait); }

/* -------------------------------------------------------------------------
   14. LES ATOUTS
   ------------------------------------------------------------------------- */
.wp-site-blocks .cvn-atouts {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	align-items: stretch;
	grid-auto-rows: 1fr;
	gap: clamp(18px, 2.2vw, 26px);
}
.wp-site-blocks .cvn-atout {
	height: 100%;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: clamp(24px, 2.8vw, 32px) clamp(22px, 2.6vw, 28px);
	background: var(--cvn-verre);
	border: 1px solid var(--cvn-bord);
	transition: border-color 0.24s ease, background-color 0.24s ease;
}
.wp-site-blocks .cvn-atout:hover {
	border-color: rgba(12, 103, 222, 0.55);
	background-color: rgba(12, 103, 222, 0.10);
}
.wp-site-blocks .cvn-atout__nom {
	font-size: var(--cv2-t4);
	font-weight: 700;
	line-height: 1.26;
	color: #ffffff;
	margin: 0;
	overflow-wrap: break-word;
}
.wp-site-blocks p.cvn-atout__txt {
	font-size: 15px;
	font-weight: 300;
	line-height: 1.7;
	color: var(--cvn-texte);
	margin: 0;
}

/* -------------------------------------------------------------------------
   15. REALISATIONS - alimentees AUTOMATIQUEMENT par un core/query sur le
   terme 181 Soiree d entreprise. Tant que le terme est vide, le filtre
   celesta_atelier_masquer_reals_vides fait disparaitre la section ENTIERE.
   ------------------------------------------------------------------------- */
.wp-site-blocks .cvn-realgrille {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(18px, 2.2vw, 26px);
	align-items: stretch;
	grid-auto-rows: 1fr;
	list-style: none;
	margin: 0;
	padding: 0;
}
.wp-site-blocks .cvn-realgrille > li { margin: 0; list-style: none; }
.wp-site-blocks .cvn-realcarte {
	height: 100%;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	background: var(--cvn-verre);
	border: 1px solid var(--cvn-bord);
	overflow: clip;
	transition: border-color 0.24s ease, transform 0.24s ease;
}
.wp-site-blocks .cvn-realcarte:hover { border-color: rgba(12, 103, 222, 0.55); transform: translateY(-3px); }
.wp-site-blocks .cvn-realcarte .wp-block-post-featured-image {
	margin: 0;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	flex: 0 0 auto;
}
.wp-site-blocks .cvn-realcarte .wp-block-post-featured-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s ease;
}
.wp-site-blocks .cvn-realcarte:hover .wp-block-post-featured-image img { transform: scale(1.04); }
.wp-site-blocks .cvn-realcarte__corps {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	gap: 10px;
	box-sizing: border-box;
	padding: clamp(20px, 2.4vw, 26px) clamp(18px, 2.2vw, 24px) clamp(18px, 2.2vw, 22px);
}
.wp-site-blocks .cvn-badge-real,
.wp-site-blocks .cvn-badge-real a {
	font-size: var(--cv2-t6);
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--cv2-ciel);
	text-decoration: none;
}
.wp-site-blocks .cvn-realcarte h3 {
	font-size: var(--cv2-t-vignette);
	font-weight: 700;
	line-height: 1.26;
	color: #ffffff;
	overflow-wrap: break-word;
}
.wp-site-blocks .cvn-realcarte h3 a { color: #ffffff; text-decoration: none; }
.wp-site-blocks .cvn-realcarte h3 a:hover { color: var(--cv2-ciel); }
.wp-site-blocks .cvn-realcarte .wp-block-post-excerpt__excerpt {
	font-size: 15px;
	font-weight: 300;
	line-height: 1.7;
	color: var(--cvn-texte);
	margin: 0;
}
.wp-site-blocks .cvn-realcarte .wp-block-read-more {
	margin-block-start: auto;
	padding-block-start: 14px;
	border-block-start: 1px solid var(--cvn-trait);
	font-size: var(--cv2-t6);
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--cv2-ciel);
	text-decoration: none;
	align-self: stretch;
}
.wp-site-blocks .cvn-realcarte .wp-block-read-more:hover { color: #ffffff; }

/* -------------------------------------------------------------------------
   16. BANDEAU D APPEL - photographie de fond, texte sur PLAQUE
   Le contraste se calcule sur un aplat plein, jamais sur la photo.
   ------------------------------------------------------------------------- */
.wp-site-blocks figure.cvn-fond,
.wp-site-blocks .cvn-fond {
	position: absolute;
	inset: 0;
	z-index: 0;
	margin: 0;
	overflow: hidden;
	pointer-events: none;
}
.wp-site-blocks .cvn-fond img {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.wp-site-blocks .cvn-fond::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0.44) 0%, rgba(0, 0, 0, 0.20) 42%, rgba(0, 0, 0, 0.40) 100%);
}
.wp-site-blocks .cvn-appel {
	position: relative;
	background: var(--cv2-abysse);
	overflow: clip;
}
/* A17 : la figure de fond doit rester ABSOLUE. Sans le :not, une regle de
   pile la remettrait dans le flux et la section grandirait de toute la
   hauteur de la photo. Le piege s est presente TROIS fois sur ce chantier. */
.wp-site-blocks .cvn-appel > *:not(.cvn-fond) { position: relative; z-index: 1; }
.wp-site-blocks .cvn-appel .cvn-fond::after {
	background:
		linear-gradient(90deg, rgba(0, 0, 0, 0.62) 0%, rgba(0, 0, 0, 0.40) 50%, rgba(0, 0, 0, 0.14) 100%),
		linear-gradient(180deg, rgba(0, 0, 0, 0.32) 0%, rgba(0, 0, 0, 0.10) 42%, rgba(0, 0, 0, 0.36) 100%);
}
/* -------------------------------------------------------------------------
   17 bis. LA PLAQUE D APPEL EN VERRE DEPOLI
   Demande client du 26/08 : un effet de verre à cet endroit.
   ⭐⭐ CE QUI REND LA CHOSE POSSIBLE ICI, c est que le flou est MESURE et
   non suppose. `backdrop-filter: blur()` etale reellement les pics : un
   projecteur isole derriere la plaque ne compte plus pour sa valeur propre
   mais pour la moyenne de son voisinage. La sonde simule donc le flou par
   image integrale AVANT de chercher le pire pixel - c est la seule facon
   d autoriser un verre la ou une plaque pleine etait jusqu ici obligatoire.
   ⚠️ Le voile de la section est peint DERRIERE la plaque : il fait donc
   partie de ce que le flou traverse, et la mesure doit l inclure.
   ⛔⛔ 0,86 a ete pose puis REGARDE : l effet etait imperceptible, un
   panneau noir et non du verre. Une mesure verte ne fait pas un rendu.
   Ouvrir le verre demandait de payer ailleurs, en trois gestes :
     1. le VOILE de la bande est renforce a gauche (0,62 au lieu de 0,50),
        la ou vit la plaque - c est lui qui achete la transparence ;
     2. le SURTITRE passe du ciel au blanc ;
     3. le degrade du <mark> s eclaircit : ciel vers blanc, au lieu de
        bleu vers ciel. Son extremite sombre valait 1,39, elle vaut 3,78.
   Mesure des TROIS photos du silo, flou 56px, opacite 0,76, voile renforce :
     138 blanc 8,63 - chapo 6,42 - extremite du mark 3,78
     140 blanc 8,83 - chapo 6,57 - extremite du mark 3,87
     142 blanc 11,08 - chapo 8,25 - extremite du mark 4,85
   ⛔ Ne PAS alleger davantage sans remesurer les TROIS photos : a 0,72
   l extremite du mark retombe a 3,44 sur la plus claire.
   ⭐ Transmittance 24% contre 6% pour la plaque pleine : la photographie
   est QUATRE fois plus presente au travers, en flou. C est le parti.
   ⛔ Rayon ZERO malgre l usage courant du glassmorphisme : regle client.
   ------------------------------------------------------------------------- */
.wp-site-blocks .cvn-appel__int {
	position: relative;
	z-index: 1;
	max-width: 760px;
	box-sizing: border-box;
	background: rgba(0, 0, 0, 0.76);
	-webkit-backdrop-filter: blur(56px) saturate(140%);
	backdrop-filter: blur(56px) saturate(140%);
	padding: clamp(30px, 3.4vw, 46px) clamp(26px, 3.2vw, 44px) clamp(26px, 3vw, 36px);
	border: 1px solid rgba(255, 255, 255, 0.16);
	/* Le liseré interieur d un pixel est l arete de lumiere du verre ; l ombre
	   portee le detache de la photographie. Sans elle, le verre flotte. */
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.14),
		0 30px 70px rgba(0, 0, 0, 0.50);
}
/* ⚠️ Sans flou, le verre ne protege plus rien : la plaque redevient pleine. */
/* Le ciel ne tient pas sur un verre a 0,76 : le surtitre passe en blanc. */
.wp-site-blocks .cvn-appel__int > .cvn-sur { color: #ffffff; }
/* ⛔ Le degrade de marque va du bleu #0C67DE au ciel. Sur un verre, son
   extremite SOMBRE tombe a 1,39 : invisible. Sur cette plaque, et sur elle
   seule, il s eclaircit et va du ciel au blanc. */
.wp-site-blocks .cvn-appel__int .cvn-appel__titre mark {
	background: linear-gradient(90deg, var(--cv2-ciel), #ffffff);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

/* ⚠️ Sans flou, le verre ne protege plus rien : la plaque redevient pleine,
   et les deux adaptations ci-dessus n ont plus lieu d etre. */
@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
	.wp-site-blocks .cvn-appel__int {
		background: var(--cvn-plaque);
		border-color: var(--cvn-bord);
	}
	.wp-site-blocks .cvn-appel__int > .cvn-sur { color: var(--cv2-ciel); }
	.wp-site-blocks .cvn-appel__int .cvn-appel__titre mark { background: var(--cv2-degrade-titre); }
}

/* -------------------------------------------------------------------------
   17. FAQ - AUCUN motif propre, VOLONTAIREMENT
   accueil.css habille deja details/summary avec un chevron. Redeclarer ici un
   marqueur produirait la COLLISION DE KITS deja payee une fois : le chevron
   devenait un losange plein et aucune sonde ne le signalait.
   On ne pose donc que la largeur et les marges.
   ------------------------------------------------------------------------- */
.wp-site-blocks .cvn-faq { max-width: 900px; }

/* -------------------------------------------------------------------------
   18. ANIMATIONS
   accueil.js retire .cvh-anim au bout de 1,2 s : le seul crochet fiable est
   .cvh-vu SEUL. Et l etat de repos ne masque RIEN.
   ------------------------------------------------------------------------- */
@keyframes cvnMonte {
	from { opacity: 0; transform: translateY(24px); }
	to   { opacity: 1; transform: none; }
}
.wp-site-blocks .cvn-hero__int > *,
.wp-site-blocks .cvn-tete > *,
.wp-site-blocks .cvn-frise > .cvn-jalon,
.wp-site-blocks .cvn-jetons > li,
.wp-site-blocks .cvn-releve > .cvn-releve__bloc,
.wp-site-blocks .cvn-disciplines > .cvn-discipline,
.wp-site-blocks .cvn-formats > .cvn-format,
.wp-site-blocks .cvn-etapes > .cvn-etape,
.wp-site-blocks .cvn-atouts > .cvn-atout,
.wp-site-blocks .cvn-realgrille > .cvn-realcarte,
.wp-site-blocks .cvn-faq > details,
.wp-site-blocks .cvn-appel__int > * { opacity: 1; }

.wp-site-blocks .cvn-hero__int > .cvh-vu,
.wp-site-blocks .cvn-tete > .cvh-vu,
.wp-site-blocks .cvn-frise > .cvh-vu,
.wp-site-blocks .cvn-releve > .cvh-vu,
.wp-site-blocks .cvn-disciplines > .cvh-vu,
.wp-site-blocks .cvn-formats > .cvh-vu,
.wp-site-blocks .cvn-etapes > .cvh-vu,
.wp-site-blocks .cvn-atouts > .cvh-vu,
.wp-site-blocks .cvn-realgrille > .cvh-vu,
.wp-site-blocks .cvn-faq > .cvh-vu,
.wp-site-blocks .cvn-appel__int > .cvh-vu {
	animation: cvnMonte 0.7s cubic-bezier(0.22, 0.61, 0.36, 1) backwards;
}

@media (prefers-reduced-motion: reduce) {
	.wp-site-blocks .cvn-hero__int > .cvh-vu,
	.wp-site-blocks .cvn-tete > .cvh-vu,
	.wp-site-blocks .cvn-frise > .cvh-vu,
	.wp-site-blocks .cvn-releve > .cvh-vu,
	.wp-site-blocks .cvn-disciplines > .cvh-vu,
	.wp-site-blocks .cvn-formats > .cvh-vu,
	.wp-site-blocks .cvn-etapes > .cvh-vu,
	.wp-site-blocks .cvn-atouts > .cvh-vu,
	.wp-site-blocks .cvn-realgrille > .cvh-vu,
	.wp-site-blocks .cvn-faq > .cvh-vu,
	.wp-site-blocks .cvn-appel__int > .cvh-vu { animation: none; }
	.wp-site-blocks .cvn-atout,
	.wp-site-blocks .cvn-realcarte,
	.wp-site-blocks .cvn-jalon,
	.wp-site-blocks .cvn-format,
	.wp-site-blocks .cvn-realcarte .wp-block-post-featured-image img { transition: none; }
	.wp-site-blocks .cvn-atout:hover,
	.wp-site-blocks .cvn-realcarte:hover { transform: none; }
}

/* =========================================================================
   19. PALIERS RESPONSIVES
   Ecrits EN FIN DE FICHIER : une redeclaration posee plus bas ecraserait une
   media query ecrite plus haut. Toute reecriture d un composant reprend ses
   paliers ICI, a la suite.
   ========================================================================= */

@media (min-width: 640px) {
	/* ⛔⛔ MESURE A L ECRAN : les quatre gages pesent 717px pour une colonne
	   de heros de 601. Ils ne PEUVENT pas tenir sur une ligne, et la coupure
	   laissait un filet pendant en bout de ligne. Ils passent donc en 2 x 2,
	   regles par des filets : plus aucune coupure, plus aucun orphelin.
	   ⚠️ Ne pas revenir a une ligne unique en croyant faire plus sobre :
	   le calcul a ete fait, elle ne rentre pas. */
	.wp-site-blocks .cvn-gages {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0;
	}
	.wp-site-blocks .cvn-gages > li::after { display: none; }
	.wp-site-blocks .cvn-gages > li { padding-block: clamp(9px, 1vw, 12px); }
	.wp-site-blocks .cvn-gages > li:nth-child(even) {
		border-inline-start: 1px solid var(--cvn-trait);
		padding-inline-start: clamp(16px, 1.9vw, 26px);
	}
	.wp-site-blocks .cvn-gages > li:nth-child(n+3) { border-block-start: 1px solid var(--cvn-trait); }
	.wp-site-blocks .cvn-format { grid-template-columns: minmax(0, 0.86fr) minmax(0, 1.14fr); }
	.wp-site-blocks .cvn-etapes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.wp-site-blocks .cvn-atouts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.wp-site-blocks .cvn-realgrille { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.wp-site-blocks .cvn-mentions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.wp-site-blocks .cvn-mentions > li:nth-child(-n+2) { border-block-start: 1px solid var(--cvn-trait); }
}

@media (min-width: 900px) {
	.wp-site-blocks .cvn-frise { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.wp-site-blocks .cvn-disciplines { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	/* Les filets VERTICAUX ne s ajoutent qu ici : sur une colonne unique ils
	   couperaient la lecture au lieu de la structurer. */
	.wp-site-blocks .cvn-discipline + .cvn-discipline {
		border-inline-start: 1px solid var(--cvn-trait);
		padding-inline-start: clamp(24px, 2.8vw, 40px);
	}
	.wp-site-blocks .cvn-discipline { padding-inline-end: clamp(24px, 2.8vw, 40px); }
	.wp-site-blocks .cvn-discipline:last-child { padding-inline-end: 0; }
	.wp-site-blocks .cvn-etapes { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.wp-site-blocks .cvn-atouts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.wp-site-blocks .cvn-realgrille { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.wp-site-blocks .cvn-releve { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.wp-site-blocks .cvn-conformite { grid-template-columns: minmax(0, 1.06fr) minmax(0, 0.94fr); }
	.wp-site-blocks .cvn-mentions { grid-template-columns: minmax(0, 1fr); }
	.wp-site-blocks .cvn-mentions > li:nth-child(-n+2) { border-block-start: 1px solid var(--cvn-trait); }
}

/* --- 980px : le heros se SCINDE en deux colonnes ------------------------- */
@media (min-width: 980px) {
	.wp-site-blocks .cvn-hero {
		grid-template-columns: minmax(0, 1.04fr) minmax(0, 0.96fr);
		min-height: calc(100vh - var(--cvn-hdr, 114px));
		min-height: calc(100svh - var(--cvn-hdr, 114px));
	}
	/* Placement EXPLICITE plutot que order : l image est premiere dans le DOM
	   pour passer au-dessus du texte sur telephone, et elle doit se retrouver
	   a DROITE ici. grid-column dit lequel sans ambiguite. */
	.wp-site-blocks .cvn-hero__texte { grid-column: 1; grid-row: 1; }
	.wp-site-blocks .cvn-hero__photo {
		grid-column: 2;
		grid-row: 1;
		min-height: 0;
		border-inline-start: 1px solid var(--cvn-bord);
	}
	/* Le texte se cale sur la gouttiere du site, pas sur le bord de l ecran :
	   sans ce max(), la colonne flotte au milieu de son aplat sur grand ecran. */
	.wp-site-blocks .cvn-hero__texte {
		padding-inline-start: max(clamp(20px, 3.2vw, 32px), calc((100vw - 1280px) / 2));
		padding-inline-end: clamp(32px, 4vw, 64px);
	}
	.wp-site-blocks .cvn-hero__int { max-width: 620px; margin-inline-start: 0; }
}

/* --- sous 980px : aucune regle du palier superieur ne survit ------------- */
@media (max-width: 979.98px) {
	.wp-site-blocks .cvn-hero__photo { border-inline-start: 0; }
}

@media (max-width: 899.98px) {
	.wp-site-blocks .cvn-discipline + .cvn-discipline { border-inline-start: 0; padding-inline-start: 0; }
}

@media (max-width: 639.98px) {
	/* ⚠️ A 0,22em d interlettrage, le surtitre du heros tenait TROIS
	   lignes sur 335px de large. Il en tient deux a 0,14em. */
	.wp-site-blocks .cvn-sur { letter-spacing: 0.14em; }
	.wp-site-blocks .cvn-gages { gap: 6px 0; }
	.wp-site-blocks .cvn-gages > li { padding-inline-end: 12px; }
	.wp-site-blocks .cvn-gages > li + li { padding-inline-start: 12px; }
}


/* ---------- CONFORMITE : les mentions restent au regard (client, 27/08) ----------
   C est l ENFANT qui colle, jamais la colonne : la colonne doit s ETIRER pour
   donner sa course au collant, d ou le passage de align-items: start a stretch.
   Course MESUREE sur la 138 : colonne voisine 485 px, liste 249 px, soit
   236 px de defilement pendant lesquels les mentions restent lues.
   ⚠ L ancetre .cvn-sec est en overflow: clip, qui ne cree PAS de conteneur
   de defilement : le collant fonctionne. Avec hidden il ne fonctionnerait pas.
   ⚠ Desactive sous 980 px : sur un ecran etroit un bloc fige mange la
   hauteur utile. Repli 114 px si la variable de header n est pas publiee. */
@media (min-width: 981px) {
	.wp-site-blocks .cvn-conformite {
		align-items: stretch;
	}
	.wp-site-blocks .cvn-conformite__col > .cvn-mentions {
		position: sticky;
		top: calc(var(--cvs-header, 114px) + 28px);
	}
}
