/*
Theme Name: Svarog v2 – Forge
Theme URI: https://www.crossfit-svarog.ch/
Description: Refonte v2 de CrossFit Svarog & Hyrox (Rennaz) : charte « Forge » tirée du logo. Spécification : docs/brand-v2.md.
Author: CrossFit Svarog & Hyrox
Version: 2.0.0
Requires at least: 6.6
Requires PHP: 7.4
Text Domain: svarog-v2
License: GPLv2 or later
*/

/* ==========================================================================
   0. Fondations
   ========================================================================== */

:root {
	--v2-header-h: 72px;
	--v2-barre-h: 76px;
	--v2-ease: cubic-bezier(.2, .7, .2, 1);
	--v2-forge: var(--wp--preset--gradient--forge);
	--v2-gutter: clamp(1rem, 4vw, 2.5rem);
}

html {
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--v2-header-h) + 1rem);
	-webkit-text-size-adjust: 100%;
}

body {
	background: var(--wp--preset--color--enclume);
	-webkit-font-smoothing: antialiased;
	overflow-x: clip;
}

::selection {
	background: var(--wp--preset--color--etincelle);
	color: var(--wp--preset--color--enclume);
}

img {
	max-width: 100%;
	height: auto;
}

.wp-site-blocks > main,
.wp-site-blocks > * + * {
	margin-block-start: 0;
}

/* Focus visible partout : jaune sur sombre, noir sur clair. */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--wp--preset--color--etincelle);
	outline-offset: 3px;
}
:where(:is(.v2-clair, .is-style-section-claire), :is(.v2-forge, .is-style-section-forge)) :where(a, button, input, select, textarea, summary):focus-visible {
	outline-color: var(--wp--preset--color--enclume);
}

.screen-reader-text:focus {
	background: var(--wp--preset--color--etincelle);
	color: var(--wp--preset--color--enclume);
	clip-path: none;
	padding: 1rem;
	z-index: 100000;
}

/* Texte placeholder [À COMPLÉTER] repérable mais lisible. */
.v2-todo {
	font-style: italic;
	color: var(--wp--preset--color--gris);
}
:is(.v2-clair, .is-style-section-claire) .v2-todo {
	color: var(--wp--preset--color--gris-fonce);
}

/* ==========================================================================
   1. Typographie et motifs de la charte
   ========================================================================== */

h1, h2, h3, h4 {
	text-wrap: balance;
	overflow-wrap: break-word;
	hyphens: manual;
}
p {
	text-wrap: pretty;
}

/* Sur-titre pochoir avec filet. */
:is(.v2-eyebrow, .is-style-sur-titre) {
	display: inline-flex;
	align-items: center;
	gap: .75rem;
	margin: 0 0 1rem;
	font-family: var(--wp--preset--font-family--pochoir);
	font-weight: 800;
	font-size: 1.25rem;
	line-height: 1;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--braise);
}
:is(.v2-eyebrow, .is-style-sur-titre)::before {
	content: "";
	width: 2.5rem;
	height: 4px;
	background: var(--v2-forge);
	flex: none;
}
:is(.v2-clair, .is-style-section-claire) :is(.v2-eyebrow, .is-style-sur-titre),
:is(.v2-forge, .is-style-section-forge) :is(.v2-eyebrow, .is-style-sur-titre) {
	color: var(--wp--preset--color--enclume);
}
:is(.v2-clair, .is-style-section-claire) :is(.v2-eyebrow, .is-style-sur-titre)::before,
:is(.v2-forge, .is-style-section-forge) :is(.v2-eyebrow, .is-style-sur-titre)::before {
	background: var(--wp--preset--color--enclume);
}
.v2-hero :is(.v2-eyebrow, .is-style-sur-titre),
.v2-entete :is(.v2-eyebrow, .is-style-sur-titre) {
	color: var(--wp--preset--color--etincelle);
}

/* Mot surligné dans un titre : jaune sur sombre. */
:is(.v2-mark, mark.has-etincelle-color) {
	color: var(--wp--preset--color--etincelle);
	background: none;
}
:is(.v2-clair, .is-style-section-claire) :is(.v2-mark, mark.has-etincelle-color) {
	color: var(--wp--preset--color--enclume);
	background: linear-gradient(transparent 62%, var(--wp--preset--color--etincelle) 62%, var(--wp--preset--color--etincelle) 92%, transparent 92%);
}

:is(.v2-chapeau, .is-style-chapeau) {
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.5;
	color: var(--wp--preset--color--gris);
	max-width: 38em;
}
:is(.v2-clair, .is-style-section-claire) :is(.v2-chapeau, .is-style-chapeau) {
	color: var(--wp--preset--color--gris-fonce);
}

/* ==========================================================================
   2. Sections
   ========================================================================== */

:is(.v2-section, [class*="is-style-section"]) {
	padding: var(--wp--preset--spacing--70) var(--v2-gutter);
	position: relative;
}
:is(.v2-section, [class*="is-style-section"]) > * {
	max-width: var(--wp--style--global--wide-size);
	margin-inline: auto;
}
:is(.v2-clair, .is-style-section-claire) {
	background: var(--wp--preset--color--magnesie);
	color: var(--wp--preset--color--enclume);
}
:is(.v2-acier, .is-style-section-acier) {
	background: var(--wp--preset--color--acier);
}
:is(.v2-forge, .is-style-section-forge) {
	background: var(--v2-forge);
	color: var(--wp--preset--color--enclume);
}

.v2-section__tete {
	display: flex;
	flex-wrap: wrap;
	align-items: end;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--40);
	margin-bottom: var(--wp--preset--spacing--60);
}
.v2-section__tete h2 {
	margin: 0;
	max-width: 14ch;
}
.v2-section__tete :is(.v2-chapeau, .is-style-chapeau) {
	margin: 0;
	max-width: 32em;
}

/* ==========================================================================
   3. Boutons
   ========================================================================== */

.wp-element-button,
.wp-block-button__link,
.v2-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .6rem;
	min-height: 56px;
	box-sizing: border-box;
	text-align: center;
	cursor: pointer;
	transition: background-color .2s var(--v2-ease), color .2s var(--v2-ease), border-color .2s var(--v2-ease), transform .2s var(--v2-ease);
}
.v2-btn {
	padding: .9rem 1.75rem;
	border: 2px solid var(--wp--preset--color--etincelle);
	background: var(--wp--preset--color--etincelle);
	color: var(--wp--preset--color--enclume);
	font-family: var(--wp--preset--font-family--titre);
	font-weight: 800;
	font-size: 1.375rem;
	line-height: 1.1;
	letter-spacing: .04em;
	text-transform: uppercase;
	text-decoration: none;
}
.v2-btn:hover,
.v2-btn:focus-visible {
	background: var(--wp--preset--color--blanc);
	border-color: var(--wp--preset--color--blanc);
	color: var(--wp--preset--color--enclume);
}
.wp-block-button__link:active,
.v2-btn:active {
	transform: translateY(1px);
}
.v2-btn svg,
.wp-block-button__link svg {
	width: 1.25em;
	height: 1.25em;
	flex: none;
}

/* Contour : secondaire sur fond sombre. */
.is-style-contour .wp-block-button__link,
.v2-btn--contour {
	background: transparent;
	color: var(--wp--preset--color--blanc);
	border-color: var(--wp--preset--color--blanc);
}
.is-style-contour .wp-block-button__link:hover,
.v2-btn--contour:hover {
	background: var(--wp--preset--color--blanc);
	color: var(--wp--preset--color--enclume);
}
:is(.v2-clair, .is-style-section-claire) .is-style-contour .wp-block-button__link,
:is(.v2-clair, .is-style-section-claire) .v2-btn--contour,
:is(.v2-forge, .is-style-section-forge) .v2-btn--contour {
	color: var(--wp--preset--color--enclume);
	border-color: var(--wp--preset--color--enclume);
}
:is(.v2-clair, .is-style-section-claire) .is-style-contour .wp-block-button__link:hover,
:is(.v2-clair, .is-style-section-claire) .v2-btn--contour:hover,
:is(.v2-forge, .is-style-section-forge) .v2-btn--contour:hover {
	background: var(--wp--preset--color--enclume);
	color: var(--wp--preset--color--blanc);
}

/* Noir : CTA principal posé sur le dégradé Forge ou sur Magnésie. */
.v2-btn--noir {
	background: var(--wp--preset--color--enclume);
	border-color: var(--wp--preset--color--enclume);
	color: var(--wp--preset--color--etincelle);
}
.v2-btn--noir:hover,
.v2-btn--noir:focus-visible {
	background: var(--wp--preset--color--blanc);
	border-color: var(--wp--preset--color--enclume);
	color: var(--wp--preset--color--enclume);
}

/* Lien fléché : action tertiaire, cible de 48 px. */
.is-style-lien .wp-block-button__link,
.v2-lien {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	min-height: 48px;
	padding: 0;
	background: none;
	border: 0;
	color: inherit;
	font-family: var(--wp--preset--font-family--titre);
	font-weight: 800;
	font-size: 1.25rem;
	letter-spacing: .05em;
	text-transform: uppercase;
	text-decoration: none;
	box-shadow: inset 0 -3px 0 var(--wp--preset--color--braise);
	transition: box-shadow .2s var(--v2-ease), gap .2s var(--v2-ease);
}
.is-style-lien .wp-block-button__link::after,
.v2-lien::after {
	content: "→";
	font-family: var(--wp--preset--font-family--texte);
	font-weight: 600;
}
.is-style-lien .wp-block-button__link:hover,
.v2-lien:hover {
	box-shadow: inset 0 -3px 0 var(--wp--preset--color--etincelle);
	gap: .85rem;
}
:is(.v2-clair, .is-style-section-claire) .v2-lien,
:is(.v2-forge, .is-style-section-forge) .v2-lien {
	box-shadow: inset 0 -3px 0 var(--wp--preset--color--enclume);
}

.v2-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem 1.5rem;
	margin-top: var(--wp--preset--spacing--40);
}

/* ==========================================================================
   4. En-tête
   ========================================================================== */

.v2-header {
	position: fixed;
	inset: 0 0 auto;
	z-index: 50;
	height: var(--v2-header-h);
	color: var(--wp--preset--color--blanc);
	background: linear-gradient(180deg, rgba(14, 14, 14, .85), rgba(14, 14, 14, 0));
	transition: background-color .3s var(--v2-ease), box-shadow .3s var(--v2-ease);
}
.v2-header.is-solide {
	background-color: var(--wp--preset--color--enclume);
	box-shadow: 0 1px 0 var(--wp--preset--color--acier-clair);
}
.admin-bar .v2-header {
	top: var(--wp-admin--admin-bar--height, 0px);
}
.v2-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	height: 100%;
	max-width: var(--wp--style--global--wide-size);
	margin-inline: auto;
	padding-inline: var(--v2-gutter);
}
.v2-logo {
	display: flex;
	align-items: center;
	min-height: 48px;
	flex: none;
}
.v2-logo img {
	height: 52px;
	width: auto;
}

.v2-header__droite {
	display: flex;
	align-items: center;
	gap: 1.5rem;
}
.v2-header__essai {
	min-height: 48px;
	padding: .55rem 1.1rem;
	font-size: 1.125rem;
}

/* Menu : liste en ligne dès 1100 px, panneau plein écran en dessous. */
.v2-nav__liste {
	display: flex;
	gap: 1.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.v2-nav__liste a {
	display: inline-flex;
	align-items: center;
	min-height: 48px;
	color: var(--wp--preset--color--blanc);
	font-family: var(--wp--preset--font-family--titre);
	font-weight: 800;
	font-size: 1.25rem;
	letter-spacing: .05em;
	text-transform: uppercase;
	text-decoration: none;
	background-image: linear-gradient(var(--wp--preset--color--etincelle), var(--wp--preset--color--etincelle));
	background-size: 0 3px;
	background-repeat: no-repeat;
	background-position: 0 calc(100% - 8px);
	transition: background-size .25s var(--v2-ease);
}
.v2-nav__liste a:hover,
.v2-nav__liste a[aria-current="page"] {
	background-size: 100% 3px;
}
.v2-nav__bouton,
.v2-nav__secours,
.v2-nav__pied {
	display: none;
}

@media (max-width: 1099px) {
	.v2-nav__bouton {
		position: relative;
		z-index: 2;
		display: inline-flex;
		align-items: center;
		gap: .6rem;
		min-height: 48px;
		min-width: 48px;
		padding: 0 .25rem;
		border: 0;
		background: none;
		color: var(--wp--preset--color--blanc);
		font-family: var(--wp--preset--font-family--titre);
		font-weight: 800;
		font-size: 1.25rem;
		letter-spacing: .06em;
		text-transform: uppercase;
		cursor: pointer;
	}
	.v2-nav__barres,
	.v2-nav__barres::before,
	.v2-nav__barres::after {
		display: block;
		width: 26px;
		height: 3px;
		background: currentColor;
		transition: transform .25s var(--v2-ease), background-color .25s;
	}
	.v2-nav__barres {
		position: relative;
	}
	.v2-nav__barres::before,
	.v2-nav__barres::after {
		content: "";
		position: absolute;
		left: 0;
	}
	.v2-nav__barres::before {
		top: -8px;
	}
	.v2-nav__barres::after {
		top: 8px;
	}
	[aria-expanded="true"] .v2-nav__barres {
		background: transparent;
	}
	[aria-expanded="true"] .v2-nav__barres::before {
		transform: translateY(8px) rotate(45deg);
	}
	[aria-expanded="true"] .v2-nav__barres::after {
		transform: translateY(-8px) rotate(-45deg);
	}
	.v2-nav__panneau {
		position: fixed;
		inset: 0;
		z-index: 1;
		display: flex;
		flex-direction: column;
		justify-content: space-between;
		gap: 2rem;
		padding: calc(var(--v2-header-h) + 1.5rem) var(--v2-gutter) calc(2rem + env(safe-area-inset-bottom));
		background: var(--wp--preset--color--enclume);
		overflow-y: auto;
		visibility: hidden;
		opacity: 0;
		transform: translateY(-12px);
		transition: opacity .25s var(--v2-ease), transform .25s var(--v2-ease), visibility 0s .25s;
	}
	.v2-nav.is-ouvert .v2-nav__panneau {
		visibility: visible;
		opacity: 1;
		transform: none;
		transition: opacity .25s var(--v2-ease), transform .25s var(--v2-ease);
	}
	.v2-nav__liste {
		flex-direction: column;
		gap: 0;
	}
	.v2-nav__liste li {
		border-bottom: 1px solid var(--wp--preset--color--acier-clair);
	}
	.v2-nav__liste a {
		display: flex;
		min-height: 64px;
		font-size: clamp(2.25rem, 9vw, 3.25rem);
		line-height: 1;
		background-position: 0 calc(100% - 10px);
	}
	.v2-nav__liste li:nth-child(-n+3) a {
		color: var(--wp--preset--color--etincelle);
	}
	.v2-nav__pied {
		display: grid;
		gap: .75rem;
	}
	.v2-nav__pied .v2-btn {
		width: 100%;
	}
	html:not(.js) .v2-nav__bouton,
	html:not(.js) .v2-nav__panneau {
		display: none;
	}
	html:not(.js) .v2-nav__secours {
		display: inline-flex;
		align-items: center;
		min-height: 48px;
		color: var(--wp--preset--color--blanc);
		font-family: var(--wp--preset--font-family--titre);
		font-weight: 800;
		font-size: 1.25rem;
		text-transform: uppercase;
	}
	.v2-menu-ouvert {
		overflow: hidden;
	}
	.v2-menu-ouvert .v2-header {
		background: var(--wp--preset--color--enclume);
	}
	.v2-menu-ouvert .v2-logo {
		position: relative;
		z-index: 2;
	}
}

@media (max-width: 599px) {
	.v2-header__essai {
		display: none;
	}
	.v2-logo img {
		height: 44px;
	}
}

/* ==========================================================================
   5. Hero et en-têtes de page
   ========================================================================== */

.v2-hero {
	position: relative;
	box-sizing: border-box;
	display: grid;
	align-items: end;
	min-height: 100vh;
	min-height: 100svh;
	padding: calc(var(--v2-header-h) + 2rem) var(--v2-gutter) var(--wp--preset--spacing--60);
	color: var(--wp--preset--color--blanc);
	isolation: isolate;
	overflow: hidden;
}
.v2-hero--court {
	min-height: 72vh;
	min-height: 72svh;
}
.v2-hero__media,
.v2-hero__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: -2;
}
.v2-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		linear-gradient(180deg, rgba(14, 14, 14, .55) 0%, rgba(14, 14, 14, 0) 28%),
		linear-gradient(0deg, rgba(14, 14, 14, .96) 0%, rgba(14, 14, 14, .82) 30%, rgba(14, 14, 14, .25) 62%, rgba(14, 14, 14, 0) 80%),
		linear-gradient(90deg, rgba(14, 14, 14, .55) 0%, rgba(14, 14, 14, 0) 60%);
}
/* Grain : texture « métal » discrète. */
.v2-hero::after,
:is(.v2-forge, .is-style-section-forge)::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	opacity: .14;
	mix-blend-mode: overlay;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
:is(.v2-forge, .is-style-section-forge) {
	position: relative;
	isolation: isolate;
}
.v2-hero__contenu {
	width: 100%;
	max-width: var(--wp--style--global--wide-size);
	margin-inline: auto;
}
.v2-hero h1 {
	margin: 0;
	max-width: 11ch;
	font-size: clamp(3.75rem, min(12vw, 15vh), 10rem);
	line-height: .84;
	letter-spacing: -.005em;
}
.v2-hero--court h1 {
	font-size: clamp(3.5rem, 11vw, 8rem);
	max-width: 14ch;
}
.v2-hero__sous {
	margin: 1.5rem 0 0;
	max-width: 34em;
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.45;
	color: #EDEDED;
}
.v2-hero .v2-actions {
	margin-top: 2rem;
}
:is(.v2-preuves, .is-style-preuves) {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem 1.75rem;
	margin: 2rem 0 0;
	padding: 1.25rem 0 0;
	list-style: none;
	border-top: 1px solid rgba(255, 255, 255, .2);
	font-size: 1rem;
	color: #EDEDED;
}
:is(.v2-preuves, .is-style-preuves) li {
	display: flex;
	align-items: center;
	gap: .5rem;
}
:is(.v2-preuves, .is-style-preuves) svg {
	width: 1.25rem;
	height: 1.25rem;
	color: var(--wp--preset--color--etincelle);
	flex: none;
}

/* Indicateur de défilement (desktop). */
.v2-hero__scroll {
	position: absolute;
	right: var(--v2-gutter);
	bottom: var(--wp--preset--spacing--60);
	writing-mode: vertical-rl;
	font-family: var(--wp--preset--font-family--pochoir);
	font-weight: 800;
	font-size: 1rem;
	letter-spacing: .3em;
	color: var(--wp--preset--color--gris);
	display: none;
}
@media (min-width: 1024px) {
	.v2-hero__scroll {
		display: block;
	}
}

/* ==========================================================================
   6. Bandeau défilant
   ========================================================================== */

.v2-marquee {
	overflow: hidden;
	background: var(--wp--preset--color--etincelle);
	color: var(--wp--preset--color--enclume);
	border-block: 2px solid var(--wp--preset--color--enclume);
}
.v2-marquee__piste {
	display: flex;
	width: max-content;
	animation: v2-defile 38s linear infinite;
}
.v2-marquee:hover .v2-marquee__piste {
	animation-play-state: paused;
}
.v2-marquee ul {
	display: flex;
	margin: 0;
	padding: .9rem 0;
	list-style: none;
}
.v2-marquee li {
	display: flex;
	align-items: center;
	font-family: var(--wp--preset--font-family--titre);
	font-weight: 800;
	font-size: clamp(1.5rem, 3vw, 2.25rem);
	line-height: 1;
	text-transform: uppercase;
	letter-spacing: .03em;
	white-space: nowrap;
}
.v2-marquee li::after {
	content: "";
	width: .5em;
	height: .5em;
	margin-inline: 1.25rem;
	background: var(--wp--preset--color--enclume);
	transform: rotate(45deg);
}
@keyframes v2-defile {
	to {
		transform: translateX(-50%);
	}
}

/* ==========================================================================
   7. Quiz « Quel cours pour toi ? »
   ========================================================================== */

.v2-quiz {
	display: grid;
	gap: var(--wp--preset--spacing--50);
}
@media (min-width: 960px) {
	.v2-quiz {
		grid-template-columns: 5fr 7fr;
		align-items: start;
	}
}
.v2-quiz h2 {
	margin: 0;
}
.v2-quiz__carte {
	background: var(--wp--preset--color--acier);
	border: 1px solid var(--wp--preset--color--acier-clair);
	padding: clamp(1.25rem, 4vw, 2.5rem);
}
.v2-quiz__carte fieldset {
	border: 0;
	margin: 0 0 1.75rem;
	padding: 0;
}
.v2-quiz__carte legend {
	padding: 0;
	margin-bottom: .9rem;
	font-family: var(--wp--preset--font-family--titre);
	font-weight: 800;
	font-size: var(--wp--preset--font-size--x-large);
	line-height: 1;
	text-transform: uppercase;
}
.v2-quiz__carte legend span {
	display: block;
	margin-bottom: .35rem;
	font-family: var(--wp--preset--font-family--pochoir);
	font-size: 1rem;
	letter-spacing: .14em;
	color: var(--wp--preset--color--braise);
}
.v2-quiz__choix {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: .6rem;
}
.v2-quiz__choix label {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 56px;
	padding: .75rem 1rem;
	border: 2px solid var(--wp--preset--color--acier-clair);
	background: var(--wp--preset--color--enclume);
	font-weight: 600;
	cursor: pointer;
	transition: border-color .15s, background-color .15s, color .15s;
}
.v2-quiz__choix input {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
}
.v2-quiz__choix label:hover {
	border-color: var(--wp--preset--color--gris);
}
.v2-quiz__choix input:checked + span {
	color: var(--wp--preset--color--enclume);
}
.v2-quiz__choix label:has(input:checked) {
	background: var(--wp--preset--color--etincelle);
	border-color: var(--wp--preset--color--etincelle);
	color: var(--wp--preset--color--enclume);
}
.v2-quiz__choix label:has(input:focus-visible) {
	outline: 3px solid var(--wp--preset--color--etincelle);
	outline-offset: 3px;
}
.v2-quiz__resultat {
	border-top: 4px solid transparent;
	border-image: var(--v2-forge) 1;
	padding-top: 1.5rem;
}
.v2-quiz__resultat[hidden] {
	display: none;
}
.v2-quiz__resultat h3 {
	margin: 0 0 .5rem;
	font-size: var(--wp--preset--font-size--xx-large);
	color: var(--wp--preset--color--etincelle);
}
.v2-quiz__resultat p {
	margin: 0;
}
/* Sans JS : le quiz est masqué, les cartes programmes suffisent. */
html:not(.js) .v2-quiz__carte form,
html:not(.js) .v2-quiz__resultat {
	display: none;
}
html:not(.js) .v2-quiz__carte::after {
	content: "Les trois programmes sont présentés juste en dessous.";
}

/* ==========================================================================
   8. Cartes programmes
   ========================================================================== */

.v2-programmes {
	display: grid;
	gap: 1rem;
	list-style: none;
	margin: 0;
	padding: 0;
}
@media (min-width: 782px) {
	.v2-programmes {
		grid-template-columns: repeat(3, 1fr);
	}
}
.v2-prog {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-height: clamp(26rem, 60vw, 38rem);
	padding: clamp(1.25rem, 3vw, 2rem);
	overflow: hidden;
	isolation: isolate;
	background: var(--wp--preset--color--acier);
}
.v2-prog img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: -2;
	transition: transform .8s var(--v2-ease);
}
.v2-prog::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(0deg, rgba(14, 14, 14, .97) 0%, rgba(14, 14, 14, .8) 38%, rgba(14, 14, 14, .1) 75%);
}
.v2-prog:hover img,
.v2-prog:focus-within img {
	transform: scale(1.05);
}
.v2-prog__num {
	position: absolute;
	top: clamp(1rem, 3vw, 1.5rem);
	left: clamp(1.25rem, 3vw, 2rem);
	font-family: var(--wp--preset--font-family--pochoir);
	font-weight: 800;
	font-size: 1.25rem;
	letter-spacing: .14em;
	color: var(--wp--preset--color--etincelle);
}
.v2-prog h3 {
	margin: 0 0 .75rem;
	font-size: clamp(3rem, 6vw, 4.5rem);
	line-height: .9;
}
.v2-prog p {
	margin: 0 0 1rem;
	color: #E4E4E4;
}
.v2-prog dl {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	margin: 0 0 1.25rem;
}
.v2-prog dl div {
	display: flex;
	gap: .35rem;
	padding: .3rem .65rem;
	border: 1px solid rgba(255, 255, 255, .35);
	font-size: 1rem;
	line-height: 1.3;
}
.v2-prog dt {
	color: var(--wp--preset--color--gris);
}
.v2-prog dd {
	margin: 0;
	font-weight: 600;
}
/* Lien étiré : toute la carte est cliquable. */
.v2-prog .v2-lien::before {
	content: "";
	position: absolute;
	inset: 0;
}
/* Carte Kids : sans photo (à shooter), sur le dégradé Forge. */
.v2-prog--forge {
	background: var(--v2-forge);
	color: var(--wp--preset--color--enclume);
}
.v2-prog--forge::before {
	display: none;
}
.v2-prog--forge .v2-prog__num {
	color: var(--wp--preset--color--enclume);
}
.v2-prog--forge p {
	color: var(--wp--preset--color--enclume);
}
.v2-prog--forge dl div {
	border-color: rgba(14, 14, 14, .45);
}
.v2-prog--forge dt {
	color: #3A3A3A;
}
.v2-prog--forge .v2-lien {
	box-shadow: inset 0 -3px 0 var(--wp--preset--color--enclume);
}
.v2-prog__picto {
	position: absolute;
	top: 12%;
	right: -6%;
	width: 75%;
	height: auto;
	color: var(--wp--preset--color--enclume);
	opacity: .14;
	z-index: -1;
}

/* ==========================================================================
   9. Étapes numérotées
   ========================================================================== */

.v2-split {
	display: grid;
	gap: var(--wp--preset--spacing--60);
	align-items: center;
}
@media (min-width: 960px) {
	.v2-split {
		grid-template-columns: 1fr 1fr;
	}
	.v2-split--inverse > :first-child {
		order: 2;
	}
}
.v2-split h2 {
	margin-top: 0;
}
.v2-photo {
	position: relative;
	margin: 0;
}
.v2-photo img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
}
.v2-photo--paysage img {
	aspect-ratio: 3 / 2;
}
/* Décalage graphique : bloc Forge derrière la photo. */
.v2-photo--cadre::before {
	content: "";
	position: absolute;
	inset: 1.25rem -1.25rem -1.25rem 1.25rem;
	background: var(--v2-forge);
	z-index: -1;
}
.v2-photo--cadre {
	isolation: isolate;
	margin-right: 1.25rem;
	margin-bottom: 1.25rem;
}
.v2-photo figcaption {
	margin-top: .75rem;
	font-size: 1rem;
	color: var(--wp--preset--color--gris);
}

:is(.v2-etapes, .is-style-etapes) {
	counter-reset: etape;
	list-style: none;
	margin: 2rem 0 0;
	padding: 0;
	display: grid;
	gap: 0;
}
:is(.v2-etapes, .is-style-etapes) li {
	counter-increment: etape;
	display: grid;
	grid-template-columns: 4.5rem 1fr;
	gap: 1rem;
	padding: 1.25rem 0;
	border-top: 1px solid var(--wp--preset--color--acier-clair);
}
:is(.v2-clair, .is-style-section-claire) :is(.v2-etapes, .is-style-etapes) li {
	border-color: #D6D1C4;
}
:is(.v2-etapes, .is-style-etapes) li::before {
	content: counter(etape, decimal-leading-zero);
	font-family: var(--wp--preset--font-family--pochoir);
	font-weight: 800;
	font-size: 3.5rem;
	line-height: .85;
	color: transparent;
	-webkit-text-stroke: 2px var(--wp--preset--color--braise);
}
:is(.v2-clair, .is-style-section-claire) :is(.v2-etapes, .is-style-etapes) li::before {
	-webkit-text-stroke-color: var(--wp--preset--color--enclume);
}
:is(.v2-etapes, .is-style-etapes) h3 {
	margin: 0 0 .35rem;
	font-size: 1.75rem;
}
:is(.v2-etapes, .is-style-etapes) p {
	margin: 0;
}
:is(.v2-clair, .is-style-section-claire) :is(.v2-etapes, .is-style-etapes) p {
	color: #333;
}

/* Timeline d'une séance (pages cours). */
.v2-seance {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 2px;
	list-style: none;
	margin: 0;
	padding: 0;
	background: var(--wp--preset--color--acier-clair);
	border: 2px solid var(--wp--preset--color--acier-clair);
}
.v2-seance li {
	background: var(--wp--preset--color--enclume);
	padding: 1.5rem;
}
.v2-seance__duree {
	display: block;
	font-family: var(--wp--preset--font-family--pochoir);
	font-weight: 800;
	font-size: 2.75rem;
	line-height: 1;
	color: var(--wp--preset--color--etincelle);
}
.v2-seance h3 {
	margin: .75rem 0 .5rem;
	font-size: 1.75rem;
}
.v2-seance p {
	margin: 0;
	color: var(--wp--preset--color--gris);
}

/* ==========================================================================
   10. Planning
   ========================================================================== */

.v2-planning__filtres {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	margin-bottom: 1.25rem;
}
.v2-chip {
	min-height: 48px;
	padding: .5rem 1.1rem;
	border: 2px solid var(--wp--preset--color--acier-clair);
	background: transparent;
	color: inherit;
	font: 600 1rem/1 var(--wp--preset--font-family--texte);
	cursor: pointer;
}
.v2-chip[aria-pressed="true"] {
	background: var(--wp--preset--color--blanc);
	border-color: var(--wp--preset--color--blanc);
	color: var(--wp--preset--color--enclume);
}
.v2-planning__jours {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 2px;
	margin-bottom: 1.25rem;
}
.v2-planning__jours button {
	min-height: 56px;
	padding: .5rem .25rem;
	border: 0;
	border-bottom: 3px solid var(--wp--preset--color--acier-clair);
	background: var(--wp--preset--color--acier);
	color: var(--wp--preset--color--blanc);
	font-family: var(--wp--preset--font-family--titre);
	font-weight: 800;
	font-size: 1.25rem;
	letter-spacing: .04em;
	text-transform: uppercase;
	cursor: pointer;
}
.v2-planning__jours button[aria-selected="true"] {
	background: var(--wp--preset--color--etincelle);
	border-color: var(--wp--preset--color--braise);
	color: var(--wp--preset--color--enclume);
}
.v2-planning__nom {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}
@media (min-width: 782px) {
	.v2-planning__abbr {
		display: none;
	}
	.v2-planning__nom {
		position: static;
		width: auto;
		height: auto;
		overflow: visible;
		clip-path: none;
	}
}
.v2-planning__titre {
	margin: 0 0 .75rem;
	font-size: var(--wp--preset--font-size--x-large);
}
.js .v2-planning__titre {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
}
html:not(.js) .v2-planning__jours {
	display: none;
}
html:not(.js) .v2-planning__jour + .v2-planning__jour {
	margin-top: 2rem;
}
.js .v2-planning__jour:not(.is-actif) {
	display: none;
}
.v2-planning__liste {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 2px;
}
.v2-slot {
	display: grid;
	grid-template-columns: minmax(6.5rem, auto) 1fr;
	grid-template-areas: "heure cours" "heure info";
	column-gap: 1.25rem;
	align-items: center;
	padding: 1rem 1.25rem;
	background: var(--wp--preset--color--acier);
	border-left: 6px solid var(--v2-slot, var(--wp--preset--color--etincelle));
}
.v2-slot[hidden] {
	display: none;
}
@media (min-width: 782px) {
	.v2-slot {
		grid-template-columns: 11rem 12rem 1fr;
		grid-template-areas: "heure cours info";
	}
}
.v2-slot__heure {
	grid-area: heure;
	font-family: var(--wp--preset--font-family--pochoir);
	font-weight: 800;
	font-size: 1.75rem;
	line-height: 1;
}
.v2-slot__cours {
	grid-area: cours;
	font-family: var(--wp--preset--font-family--titre);
	font-weight: 800;
	font-size: 1.5rem;
	line-height: 1.1;
	text-transform: uppercase;
}
.v2-slot__info {
	grid-area: info;
	color: var(--wp--preset--color--gris);
	font-size: 1rem;
}
/* Couleur de chaque type de cours : choisie dans Horaires → Types de cours (style en ligne --v2-slot). */
.v2-planning__vide {
	margin: 0;
	padding: 1.25rem;
	background: var(--wp--preset--color--acier);
	color: var(--wp--preset--color--gris);
	font-style: italic;
}
:is(.v2-note, .is-style-note) {
	margin-top: 1rem;
	font-size: 1rem;
	color: var(--wp--preset--color--gris);
}
:is(.v2-clair, .is-style-section-claire) :is(.v2-note, .is-style-note) {
	color: var(--wp--preset--color--gris-fonce);
}

/* ==========================================================================
   11. Coachs
   ========================================================================== */

.v2-coachs {
	display: grid;
	gap: var(--wp--preset--spacing--40);
	list-style: none;
	margin: 0;
	padding: 0;
}
@media (min-width: 600px) {
	.v2-coachs {
		grid-template-columns: repeat(2, 1fr);
	}
}
.v2-coach {
	position: relative;
}
.v2-coach__photo {
	position: relative;
	overflow: hidden;
	background: var(--wp--preset--color--etincelle);
}
.v2-coach__photo img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	filter: grayscale(1) contrast(1.15);
	mix-blend-mode: multiply;
	transition: filter .5s var(--v2-ease), mix-blend-mode .5s;
}
.v2-coach:hover .v2-coach__photo img,
.v2-coach:focus-within .v2-coach__photo img {
	filter: none;
	mix-blend-mode: normal;
}
.v2-coach h3 {
	margin: 1rem 0 .25rem;
	font-size: clamp(2.5rem, 5vw, 3.5rem);
}
.v2-coach p {
	margin: 0;
	color: var(--wp--preset--color--gris);
}
.v2-coach__role {
	font-family: var(--wp--preset--font-family--pochoir);
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--braise) !important;
}

/* ==========================================================================
   12. Tarifs
   ========================================================================== */

.v2-tarifs {
	display: grid;
	gap: 1rem;
	list-style: none;
	margin: 0;
	padding: 0;
}
@media (min-width: 900px) {
	.v2-tarifs {
		grid-template-columns: repeat(3, 1fr);
		align-items: stretch;
	}
}
:is(.v2-tarif, .is-style-carte-tarif, .is-style-carte-vedette) {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: 2rem clamp(1.25rem, 3vw, 2rem);
	background: var(--wp--preset--color--blanc);
	color: var(--wp--preset--color--enclume);
	border: 2px solid var(--wp--preset--color--enclume);
}
:is(.v2-tarif--star, .is-style-carte-vedette) {
	background: var(--wp--preset--color--enclume);
	color: var(--wp--preset--color--blanc);
	box-shadow: 10px 10px 0 var(--wp--preset--color--braise);
}
.v2-tarif__badge {
	position: absolute;
	top: -1rem;
	left: clamp(1.25rem, 3vw, 2rem);
	padding: .3rem .75rem;
	background: var(--wp--preset--color--etincelle);
	color: var(--wp--preset--color--enclume);
	font-family: var(--wp--preset--font-family--titre);
	font-weight: 800;
	font-size: 1rem;
	letter-spacing: .08em;
	text-transform: uppercase;
}
:is(.v2-tarif, .is-style-carte-tarif, .is-style-carte-vedette) h3 {
	margin: 0 0 1rem;
	font-size: 2.25rem;
}
.v2-tarif__prix {
	margin: 0 0 1rem;
	font-family: var(--wp--preset--font-family--titre);
	font-weight: 800;
	font-size: 1.5rem;
	line-height: 1.1;
	text-transform: uppercase;
}
.v2-tarif__prix strong {
	display: block;
	font-size: clamp(2.25rem, 4vw, 3rem);
	line-height: 1;
}
.v2-tarif__prix .v2-todo {
	display: block;
	margin-top: .35rem;
	font-family: var(--wp--preset--font-family--texte);
	font-size: 1rem;
	font-weight: 400;
	text-transform: none;
}
:is(.v2-tarif, .is-style-carte-tarif, .is-style-carte-vedette) ul {
	margin: 0 0 1.5rem;
	padding: 0;
	list-style: none;
	flex: 1;
}
:is(.v2-tarif, .is-style-carte-tarif, .is-style-carte-vedette) li {
	display: flex;
	gap: .6rem;
	padding: .5rem 0;
	border-top: 1px solid rgba(128, 128, 128, .35);
}
:is(.v2-tarif, .is-style-carte-tarif, .is-style-carte-vedette) li::before {
	content: "✓";
	font-weight: 600;
	color: var(--wp--preset--color--braise);
}
:is(.v2-clair, .is-style-section-claire) :is(.v2-tarif, .is-style-carte-tarif, .is-style-carte-vedette):not(:is(.v2-tarif--star, .is-style-carte-vedette)) li::before {
	color: var(--wp--preset--color--enclume);
}
:is(.v2-tarif--star, .is-style-carte-vedette) .v2-todo {
	color: var(--wp--preset--color--gris);
}
:is(.v2-tarif, .is-style-carte-tarif, .is-style-carte-vedette) .v2-btn {
	width: 100%;
}
:is(.v2-tarif, .is-style-carte-tarif, .is-style-carte-vedette):not(:is(.v2-tarif--star, .is-style-carte-vedette)) .v2-btn {
	background: var(--wp--preset--color--enclume);
	border-color: var(--wp--preset--color--enclume);
	color: var(--wp--preset--color--etincelle);
}
:is(.v2-tarif, .is-style-carte-tarif, .is-style-carte-vedette):not(:is(.v2-tarif--star, .is-style-carte-vedette)) .v2-btn:hover {
	background: var(--wp--preset--color--etincelle);
	border-color: var(--wp--preset--color--enclume);
	color: var(--wp--preset--color--enclume);
}

/* ==========================================================================
   13. FAQ
   ========================================================================== */

.v2-faq {
	border-top: 2px solid currentColor;
}
.v2-faq details {
	border-bottom: 1px solid rgba(128, 128, 128, .45);
}
.v2-faq summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	min-height: 64px;
	padding: 1rem 0;
	font-family: var(--wp--preset--font-family--titre);
	font-weight: 800;
	font-size: clamp(1.375rem, 2.5vw, 1.75rem);
	line-height: 1.15;
	text-transform: uppercase;
	cursor: pointer;
	list-style: none;
}
.v2-faq summary::-webkit-details-marker {
	display: none;
}
.v2-faq summary::after {
	content: "+";
	flex: none;
	display: grid;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	border: 2px solid currentColor;
	font-family: var(--wp--preset--font-family--texte);
	font-size: 1.5rem;
	font-weight: 400;
	transition: transform .25s var(--v2-ease);
}
.v2-faq details[open] summary::after {
	transform: rotate(45deg);
}
.v2-faq details p {
	margin: 0 0 1.25rem;
	max-width: 46em;
}

/* ==========================================================================
   14. CTA final (dégradé Forge)
   ========================================================================== */

.v2-cta-final {
	padding-block: var(--wp--preset--spacing--80);
	text-align: left;
	overflow: hidden;
}
.v2-cta-final h2 {
	margin: 0;
	font-size: clamp(3.5rem, 12vw, 10rem);
	line-height: .84;
	max-width: 10ch;
}
.v2-cta-final p {
	max-width: 30em;
	font-size: var(--wp--preset--font-size--large);
	font-weight: 600;
}
.v2-cta__marteau {
	position: absolute;
	right: -4%;
	bottom: -10%;
	width: min(52vw, 640px);
	height: auto;
	opacity: .12;
	z-index: -1;
	color: var(--wp--preset--color--enclume);
}

/* ==========================================================================
   15. Pied de page
   ========================================================================== */

.v2-footer {
	padding: var(--wp--preset--spacing--70) var(--v2-gutter) calc(var(--wp--preset--spacing--40) + var(--v2-barre-h));
	background: var(--wp--preset--color--enclume);
	border-top: 1px solid var(--wp--preset--color--acier-clair);
}
@media (min-width: 782px) {
	.v2-footer {
		padding-bottom: var(--wp--preset--spacing--40);
	}
}
.v2-footer__grille {
	display: grid;
	gap: var(--wp--preset--spacing--50);
	max-width: var(--wp--style--global--wide-size);
	margin-inline: auto;
}
@media (min-width: 782px) {
	.v2-footer__grille {
		grid-template-columns: 1.3fr 1fr 1fr 1fr;
	}
}
.v2-footer h2 {
	margin: 0 0 1rem;
	font-size: 1.5rem;
	letter-spacing: .06em;
	color: var(--wp--preset--color--braise);
}
.v2-footer ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
.v2-footer li a,
.v2-footer address a {
	display: inline-flex;
	align-items: center;
	min-height: 48px;
}
.v2-footer address {
	font-style: normal;
}
.v2-footer p,
.v2-footer address {
	margin: 0 0 .5rem;
	color: var(--wp--preset--color--gris);
}
.v2-footer a {
	color: var(--wp--preset--color--blanc);
}
.v2-footer__logo img {
	width: 140px;
	height: auto;
}
.v2-footer__signature {
	display: block;
	width: 100%;
	max-width: var(--wp--style--global--wide-size);
	margin: var(--wp--preset--spacing--60) auto 0;
	color: var(--wp--preset--color--acier);
}
.v2-footer__bas {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: .5rem 2rem;
	max-width: var(--wp--style--global--wide-size);
	margin: 1.5rem auto 0;
	padding-top: 1rem;
	border-top: 1px solid var(--wp--preset--color--acier-clair);
	font-size: 1rem;
	color: var(--wp--preset--color--gris);
}
.v2-footer__bas ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0 1.5rem;
}
.v2-qualicert {
	display: inline-flex;
	margin-top: 1rem;
	background: var(--wp--preset--color--blanc);
	padding: .5rem;
}
.v2-qualicert img {
	width: 96px;
	height: auto;
}

/* ==========================================================================
   16. Barre CTA mobile
   ========================================================================== */

.v2-barre {
	position: fixed;
	inset: auto 0 0;
	z-index: 40;
	display: grid;
	grid-template-columns: auto 1fr;
	gap: .5rem;
	padding: .6rem var(--v2-gutter) calc(.6rem + env(safe-area-inset-bottom));
	background: rgba(14, 14, 14, .94);
	backdrop-filter: blur(8px);
	border-top: 1px solid var(--wp--preset--color--acier-clair);
	transform: translateY(0);
	transition: transform .3s var(--v2-ease);
}
.v2-barre .v2-btn {
	min-height: 56px;
	padding-inline: 1rem;
}
.v2-barre .v2-btn--contour {
	width: 56px;
	padding: 0;
}
.v2-barre.is-cachee {
	transform: translateY(110%);
}
@media (min-width: 782px) {
	.v2-barre {
		display: none;
	}
}

/* ==========================================================================
   17. Pages : contenus, formulaires, cartes
   ========================================================================== */

.v2-entete {
	padding: calc(var(--v2-header-h) + var(--wp--preset--spacing--60)) var(--v2-gutter) var(--wp--preset--spacing--60);
	border-bottom: 1px solid var(--wp--preset--color--acier-clair);
}
.v2-entete > * {
	max-width: var(--wp--style--global--wide-size);
	margin-inline: auto;
}
.v2-entete h1 {
	margin: 0;
	font-size: clamp(3.5rem, 11vw, 8rem);
	line-height: .86;
}

.v2-grille-3 {
	display: grid;
	gap: 1rem;
	list-style: none;
	margin: 0;
	padding: 0;
}
@media (min-width: 782px) {
	.v2-grille-3 {
		grid-template-columns: repeat(3, 1fr);
	}
}
:is(.v2-carte, .is-style-carte) {
	padding: clamp(1.25rem, 3vw, 2rem);
	background: var(--wp--preset--color--acier);
	border: 1px solid var(--wp--preset--color--acier-clair);
}
:is(.v2-clair, .is-style-section-claire) :is(.v2-carte, .is-style-carte) {
	background: var(--wp--preset--color--blanc);
	border-color: #D6D1C4;
}
:is(.v2-carte, .is-style-carte) h3 {
	margin: 0 0 .5rem;
	font-size: 1.875rem;
}
:is(.v2-carte, .is-style-carte) p {
	margin: 0;
}
:is(.v2-carte, .is-style-carte) svg {
	width: 2.5rem;
	height: 2.5rem;
	margin-bottom: 1rem;
	color: var(--wp--preset--color--etincelle);
}
:is(.v2-clair, .is-style-section-claire) :is(.v2-carte, .is-style-carte) svg {
	color: var(--wp--preset--color--enclume);
}

/* Stations Hyrox. */
.v2-stations {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 2px;
	list-style: none;
	margin: 0;
	padding: 0;
	counter-reset: station;
	background: var(--wp--preset--color--acier-clair);
	border: 2px solid var(--wp--preset--color--acier-clair);
}
@media (min-width: 782px) {
	.v2-stations {
		grid-template-columns: repeat(4, 1fr);
	}
}
.v2-stations li {
	counter-increment: station;
	position: relative;
	padding: 1.25rem;
	background: var(--wp--preset--color--enclume);
	min-height: 11rem;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
}
.v2-stations li::before {
	content: counter(station);
	position: absolute;
	top: .75rem;
	right: 1rem;
	font-family: var(--wp--preset--font-family--pochoir);
	font-weight: 800;
	font-size: 2.5rem;
	line-height: 1;
	color: transparent;
	-webkit-text-stroke: 1.5px var(--wp--preset--color--braise);
}
.v2-stations svg {
	width: 2.75rem;
	height: 2.75rem;
	margin-bottom: auto;
	color: var(--wp--preset--color--etincelle);
}
.v2-stations strong {
	display: block;
	margin-top: 1rem;
	font-family: var(--wp--preset--font-family--titre);
	font-weight: 800;
	font-size: 1.5rem;
	line-height: 1;
	text-transform: uppercase;
}
.v2-stations span {
	font-size: 1rem;
	color: var(--wp--preset--color--gris);
}

/* Formulaires. */
.v2-form {
	display: grid;
	gap: 1.25rem;
}
.v2-form label {
	display: block;
	margin-bottom: .4rem;
	font-weight: 600;
}
.v2-form .v2-aide {
	display: block;
	font-weight: 400;
	font-size: 1rem;
	color: var(--wp--preset--color--gris);
}
.v2-form input[type="text"],
.v2-form input[type="email"],
.v2-form input[type="tel"],
.v2-form select,
.v2-form textarea {
	width: 100%;
	min-height: 56px;
	box-sizing: border-box;
	padding: .8rem 1rem;
	border: 2px solid var(--wp--preset--color--gris);
	border-radius: 0;
	background: var(--wp--preset--color--enclume);
	color: var(--wp--preset--color--blanc);
	font: inherit;
	font-size: 1.0625rem;
}
.v2-form input:focus,
.v2-form select:focus,
.v2-form textarea:focus {
	border-color: var(--wp--preset--color--etincelle);
	outline: 3px solid var(--wp--preset--color--etincelle);
	outline-offset: 0;
}
.v2-form .v2-form__check {
	display: flex;
	gap: .75rem;
	align-items: flex-start;
	min-height: 48px;
	font-weight: 400 !important;
}
.v2-form__check input {
	width: 1.5rem;
	height: 1.5rem;
	margin: .1rem 0 0;
	accent-color: var(--wp--preset--color--etincelle);
	flex: none;
}
.v2-form .v2-btn {
	width: 100%;
}
.v2-form__note {
	margin: 0;
	font-size: 1rem;
	color: var(--wp--preset--color--gris);
}
/* Envoi : messages d'erreur et de succès (surfaces sombres : Braise et Étincelle ≥ 4,5:1). */
.v2-form__erreur,
.v2-form__succes {
	margin: 0;
	padding: 1rem 1.25rem;
	border-left: 6px solid var(--wp--preset--color--braise);
	background: var(--wp--preset--color--enclume);
	font-weight: 600;
}
.v2-form__succes {
	border-left-color: var(--wp--preset--color--etincelle);
}
.v2-form .v2-form__erreur-champ {
	display: block;
	font-weight: 600;
	font-size: 1rem;
	color: var(--wp--preset--color--braise);
}
.v2-form [aria-invalid="true"] {
	border-color: var(--wp--preset--color--braise);
}
/* Champ piège anti-spam : hors écran, ignoré des lecteurs d'écran. */
.v2-form__piege {
	position: absolute !important;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* Liste de coordonnées. */
.v2-coord {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 2px;
}
.v2-coord li {
	display: grid;
	grid-template-columns: 2.5rem 1fr;
	gap: 1rem;
	align-items: center;
	padding: 1rem 1.25rem;
	background: var(--wp--preset--color--acier);
}
.v2-coord svg {
	width: 1.75rem;
	height: 1.75rem;
	color: var(--wp--preset--color--etincelle);
}
.v2-coord strong {
	display: block;
	font-family: var(--wp--preset--font-family--titre);
	font-weight: 800;
	font-size: 1.25rem;
	letter-spacing: .05em;
	text-transform: uppercase;
}
.v2-coord a {
	display: inline-flex;
	align-items: center;
	min-height: 48px;
	font-weight: 600;
}

/* Carte chargée au clic. */
.v2-carte-plan {
	position: relative;
	aspect-ratio: 16 / 10;
	background: var(--wp--preset--color--acier);
	border: 1px solid var(--wp--preset--color--acier-clair);
	display: grid;
	place-items: center;
	text-align: center;
	padding: 1rem;
}
.v2-carte-plan iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

/* Avis : emplacement à compléter. */
.v2-avis {
	display: grid;
	gap: 1rem;
	list-style: none;
	margin: 0;
	padding: 0;
}
@media (min-width: 782px) {
	.v2-avis {
		grid-template-columns: repeat(3, 1fr);
	}
}
.v2-avis li {
	padding: 2rem;
	border: 2px dashed var(--wp--preset--color--acier-clair);
	color: var(--wp--preset--color--gris);
}
.v2-avis li::before {
	content: "“";
	display: block;
	font-family: var(--wp--preset--font-family--titre);
	font-size: 5rem;
	line-height: .6;
	color: var(--wp--preset--color--braise);
}

/* Contenu libre (pages légales). */
.v2-prose {
	max-width: 46rem;
	margin-inline: auto;
	padding: var(--wp--preset--spacing--60) var(--v2-gutter);
}
.v2-prose h2 {
	font-size: var(--wp--preset--font-size--x-large);
}

/* ==========================================================================
   18. Apparition au défilement (JS + mouvement autorisé uniquement)
   ========================================================================== */

@media (prefers-reduced-motion: no-preference) {
	.js [data-v2-reveal] {
		opacity: 0;
		transform: translateY(28px);
		transition: opacity .7s var(--v2-ease), transform .7s var(--v2-ease);
	}
	.js [data-v2-reveal].is-visible {
		opacity: 1;
		transform: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}
	.v2-marquee__piste {
		animation: none;
		width: auto;
		flex-wrap: wrap;
	}
	.v2-marquee__piste ul[aria-hidden] {
		display: none;
	}
	.v2-marquee ul {
		flex-wrap: wrap;
		justify-content: center;
		row-gap: .5rem;
	}
}

/* Corps : place pour la barre mobile. */
@media (max-width: 781px) {
	body {
		padding-bottom: 0;
	}
}

/* ==========================================================================
   19. Mosaïque « La box » et variantes de mise en page
   ========================================================================== */

:is(.v2-mosaique, .is-style-mosaique) {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	grid-auto-rows: clamp(9rem, 28vw, 15rem);
	gap: .5rem;
}
:is(.v2-mosaique, .is-style-mosaique) img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.v2-mosaique__a {
	grid-column: span 2;
	grid-row: span 2;
}
@media (min-width: 782px) {
	:is(.v2-mosaique, .is-style-mosaique) {
		grid-template-columns: repeat(4, 1fr);
		grid-auto-rows: clamp(10rem, 16vw, 16rem);
	}
	.v2-mosaique__a {
		grid-column: 1 / span 2;
		grid-row: 1 / span 2;
	}
	.v2-mosaique__b {
		grid-column: 3 / span 2;
	}
}

@media (min-width: 960px) {
	.v2-split--horaires {
		grid-template-columns: 5fr 7fr;
		align-items: start;
	}
	.v2-split--faq {
		grid-template-columns: 5fr 7fr;
		align-items: start;
	}
}
.v2-section--faq {
	padding-top: 0;
}
:is(.v2-chapeau, .is-style-chapeau) svg {
	width: 1.25em;
	height: 1.25em;
	vertical-align: -.2em;
	color: var(--wp--preset--color--etincelle);
}

/* ==========================================================================
   20. Ajustements après recette visuelle
   ========================================================================== */

/* Les listes en grille gardent le centrage des sections. */
:is(.v2-section, [class*="is-style-section"]) > ul,
:is(.v2-section, [class*="is-style-section"]) > ol,
:is(.v2-section, [class*="is-style-section"]) > div {
	margin-inline: auto;
}
.v2-footer__signature text {
	font-family: "Big Shoulders Stencil Display", "Big Shoulders Display", Impact, sans-serif;
}
.v2-footer__signature {
	color: #1F1F1F;
}

@media (max-width: 781px) {
	:is(.v2-section, [class*="is-style-section"]) {
		padding-block: 3rem;
	}
	.v2-section__tete {
		margin-bottom: 1.75rem;
	}
	.v2-hero .v2-btn {
		font-size: 1.25rem;
		width: 100%;
	}
	.v2-hero h1 {
		font-size: clamp(3.5rem, 17vw, 5rem);
	}
	:is(.v2-preuves, .is-style-preuves) {
		gap: .35rem 1rem;
		margin-top: 1.5rem;
		padding-top: 1rem;
	}
	.v2-prog {
		min-height: 24rem;
	}
	.v2-coachs {
		grid-template-columns: repeat(2, 1fr);
		gap: .75rem;
	}
	.v2-coach h3 {
		font-size: 2rem;
	}
	.v2-coach__role {
		font-size: 1rem;
	}
	.v2-split {
		gap: 2rem;
	}
	.v2-slot {
		grid-template-columns: 6.25rem 1fr;
		column-gap: 1rem;
		padding: .85rem 1rem;
	}
	.v2-slot__heure {
		font-size: 1.375rem;
	}
	.v2-quiz__choix label {
		min-height: 52px;
		padding: .6rem .9rem;
	}
	.v2-quiz__carte fieldset {
		margin-bottom: 1.25rem;
	}
	:is(.v2-etapes, .is-style-etapes) li {
		grid-template-columns: 3.5rem 1fr;
		padding: 1rem 0;
	}
	:is(.v2-etapes, .is-style-etapes) li::before {
		font-size: 2.75rem;
	}
	.v2-avis {
		display: flex;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		gap: .75rem;
		margin-inline: calc(var(--v2-gutter) * -1);
		padding-inline: var(--v2-gutter);
	}
	.v2-avis li {
		flex: 0 0 82%;
		scroll-snap-align: start;
		padding: 1.5rem;
	}
	.v2-cta-final {
		padding-block: 4rem;
	}
}

@media (min-width: 1024px) {
	.v2-hero h1 {
		max-width: 17ch;
	}
	.v2-hero {
		padding-bottom: 2.5rem;
	}
	.v2-hero .v2-actions {
		margin-top: 1.5rem;
	}
}

/* Hero mobile : la photo occupe le haut (visage et barre visibles), le texte vient dessous. */
@media (max-width: 781px) {
	.v2-hero {
		min-height: 0;
		padding-top: 44svh;
		padding-bottom: 2.5rem;
	}
	.v2-hero--court {
		padding-top: 38svh;
	}
	.v2-hero__media,
	.v2-hero__media img {
		inset: 0 0 auto;
		height: 74svh;
	}
	.v2-hero__media img {
		object-position: 50% 20% !important;
	}
	.v2-hero::before {
		background:
			linear-gradient(180deg, rgba(14, 14, 14, .6) 0%, rgba(14, 14, 14, 0) 14%),
			linear-gradient(180deg, rgba(14, 14, 14, 0) 34svh, rgba(14, 14, 14, .85) 50svh, var(--wp--preset--color--enclume) 74svh);
	}
	.v2-hero :is(.v2-preuves, .is-style-preuves) {
		display: none;
	}
	.v2-hero__sous {
		margin-top: 1rem;
	}
}

/* Hero sans photo (Kids, en attendant le shooting) : dégradé Forge, texte noir. */
.v2-hero--forge {
	background: var(--v2-forge);
	color: var(--wp--preset--color--enclume);
}
.v2-hero--forge::before {
	display: none;
}
.v2-hero--forge :is(.v2-eyebrow, .is-style-sur-titre),
.v2-hero--forge :is(.v2-mark, mark.has-etincelle-color),
.v2-hero--forge .v2-hero__sous {
	color: var(--wp--preset--color--enclume);
}
.v2-hero--forge :is(.v2-eyebrow, .is-style-sur-titre)::before {
	background: var(--wp--preset--color--enclume);
}
.v2-hero--forge .v2-lien {
	box-shadow: inset 0 -3px 0 var(--wp--preset--color--enclume);
}
.v2-hero--forge :focus-visible {
	outline-color: var(--wp--preset--color--enclume);
}
.v2-hero__picto {
	position: absolute;
	right: -4%;
	top: 8%;
	width: min(70vw, 620px);
	height: auto;
	opacity: .13;
	z-index: -1;
}
.v2-hero__note {
	margin: 1.5rem 0 0;
	font-size: 1rem;
	font-style: italic;
	color: var(--wp--preset--color--gris);
}
.v2-hero--forge .v2-hero__note {
	color: #2A2A2A;
}
.v2-planning__vide--rien {
	font-style: normal;
}
@media (max-width: 781px) {
	.v2-hero--forge {
		padding-top: calc(var(--v2-header-h) + 3rem);
	}
}
body:has(.v2-hero--forge) .v2-header,
body:has(.v2-entete) .v2-header {
	background-color: var(--wp--preset--color--enclume);
}
@media (max-width: 781px) {
	.v2-stations li {
		min-height: 8.5rem;
		padding: 1rem;
	}
	:is(.v2-carte, .is-style-carte) {
		padding: 1.25rem;
	}
	:is(.v2-carte, .is-style-carte) svg {
		width: 2rem;
		height: 2rem;
		margin-bottom: .5rem;
	}
}
.v2-hero--nu {
	min-height: 0;
	padding-top: calc(var(--v2-header-h) + var(--wp--preset--spacing--70));
	border-bottom: 1px solid var(--wp--preset--color--acier-clair);
}
.v2-hero--nu::before,
.v2-hero--nu::after {
	display: none;
}
@media (max-width: 781px) {
	.v2-hero--nu {
		padding-top: calc(var(--v2-header-h) + 3rem);
	}
}
body:has(.v2-hero--nu) .v2-header {
	background-color: var(--wp--preset--color--enclume);
}

/* ==========================================================================
   21. Pages internes : lexique, options, profils, essai
   ========================================================================== */

.v2-split--haut {
	align-items: start;
}
.v2-lexique {
	display: grid;
	gap: 2px;
	margin: 0;
	padding: 0;
	list-style: none;
	background: var(--wp--preset--color--acier-clair);
	border: 2px solid var(--wp--preset--color--acier-clair);
}
@media (min-width: 782px) {
	.v2-lexique {
		grid-template-columns: repeat(3, 1fr);
	}
}
.v2-lexique li {
	padding: 1.5rem;
	background: var(--wp--preset--color--enclume);
}
.v2-lexique strong {
	display: block;
	margin-bottom: .35rem;
	font-family: var(--wp--preset--font-family--titre);
	font-weight: 800;
	font-size: 1.75rem;
	text-transform: uppercase;
	color: var(--wp--preset--color--etincelle);
}
.v2-lexique span {
	color: var(--wp--preset--color--gris);
}

.v2-options {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem 2.5rem;
	margin: var(--wp--preset--spacing--50) auto 0;
	padding: 1.5rem 0 0;
	list-style: none;
	border-top: 2px solid var(--wp--preset--color--enclume);
}
.v2-options li {
	display: flex;
	flex-direction: column;
}
.v2-options strong {
	font-family: var(--wp--preset--font-family--titre);
	font-weight: 800;
	font-size: 1.25rem;
	letter-spacing: .04em;
	text-transform: uppercase;
}
.v2-options span {
	font-family: var(--wp--preset--font-family--pochoir);
	font-weight: 800;
	font-size: 2rem;
	line-height: 1.1;
}
.v2-options .v2-todo {
	font-family: var(--wp--preset--font-family--texte);
	font-weight: 400;
	font-size: 1rem;
}
.v2-qualicert--grand {
	justify-self: center;
	padding: 1.5rem;
	margin: 0;
}
.v2-qualicert--grand img {
	width: min(320px, 60vw);
}

.v2-profil__photos {
	position: relative;
	padding-bottom: 4rem;
}
.v2-coach__photo--couleur img {
	filter: none;
	mix-blend-mode: normal;
}
.v2-profil__photos .v2-coach__photo {
	width: 78%;
}
.v2-profil__action {
	position: absolute;
	right: 0;
	bottom: 0;
	width: 52%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	border: 6px solid var(--wp--preset--color--enclume);
}
:is(.v2-acier, .is-style-section-acier) .v2-profil__action {
	border-color: var(--wp--preset--color--acier);
}
.v2-fiche {
	margin: 1.5rem 0 0;
	border-top: 1px solid var(--wp--preset--color--acier-clair);
}
.v2-fiche div {
	display: grid;
	grid-template-columns: 10rem 1fr;
	gap: 1rem;
	padding: .9rem 0;
	border-bottom: 1px solid var(--wp--preset--color--acier-clair);
}
.v2-fiche dt {
	font-family: var(--wp--preset--font-family--titre);
	font-weight: 800;
	font-size: 1.25rem;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--wp--preset--color--braise);
}
.v2-fiche dd {
	margin: 0;
}

.v2-infos {
	margin: 1.5rem 0 0;
	padding: 0;
	list-style: none;
}
.v2-infos li {
	padding: .75rem 0;
	border-bottom: 1px solid var(--wp--preset--color--acier-clair);
}
.v2-infos strong {
	display: block;
}
.v2-carte-plan + .v2-photo {
	margin-top: 1rem;
}
.v2-carte-plan p {
	max-width: 28em;
	margin: 0 auto 1rem;
	color: var(--wp--preset--color--gris);
}

:is(.v2-checklist, .is-style-coches) {
	margin: 1rem 0 0;
	padding: 0;
	list-style: none;
}
:is(.v2-checklist, .is-style-coches) li {
	display: flex;
	gap: .75rem;
	padding: .65rem 0;
	border-bottom: 1px solid var(--wp--preset--color--acier-clair);
}
:is(.v2-checklist, .is-style-coches) li::before {
	content: "✓";
	font-weight: 600;
	color: var(--wp--preset--color--etincelle);
}

/* Page Essai : texte + formulaire au premier écran. */
.v2-essai {
	display: grid;
	gap: var(--wp--preset--spacing--50);
	max-width: var(--wp--style--global--wide-size);
	margin-inline: auto;
	padding: calc(var(--v2-header-h) + var(--wp--preset--spacing--50)) var(--v2-gutter) var(--wp--preset--spacing--60);
	box-sizing: content-box;
}
@media (min-width: 960px) {
	.v2-essai {
		grid-template-columns: 6fr 5fr;
		align-items: start;
	}
}
.v2-essai h1 {
	margin: 0;
	font-size: clamp(3.25rem, 8vw, 6.5rem);
	line-height: .86;
}
.v2-essai :is(.v2-preuves, .is-style-preuves) {
	border-top-color: var(--wp--preset--color--acier-clair);
}
.v2-essai__photo {
	margin-top: 2rem;
}
.v2-essai__form {
	padding: clamp(1.25rem, 4vw, 2.25rem);
	background: var(--wp--preset--color--acier);
	border-top: 6px solid transparent;
	border-image: var(--v2-forge) 1;
}
.v2-essai__form h2 {
	margin: 0;
	font-size: var(--wp--preset--font-size--x-large);
}
.v2-essai__form p {
	margin: 0;
}
@media (max-width: 959px) {
	.v2-essai__photo {
		display: none;
	}
	.v2-essai :is(.v2-preuves, .is-style-preuves) {
		margin-top: 1.25rem;
	}
}
body:has(.v2-essai) .v2-header {
	background-color: var(--wp--preset--color--enclume);
}
/* Modèle « Page de conversion » (Essai, Merci) : pas de bouton d'essai dans l'en-tête, pas de barre mobile (absente du modèle). */
.page-template-page-conversion .v2-header__essai {
	display: none;
}
.v2-nav__liste a,
.v2-footer li a {
	min-width: 48px;
}

/* ==========================================================================
   22. Accueil mobile plus court (recette : 12 180 px → objectif < v1)
   ========================================================================== */

/* Quiz : une question à la fois (JS). */
.js .v2-quiz__carte fieldset.is-attente {
	display: none;
}

@media (max-width: 781px) {
	/* Programmes : carrousel horizontal à défilement aimanté. */
	.v2-programmes {
		display: flex;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		gap: .75rem;
		margin-inline: calc(var(--v2-gutter) * -1) !important;
		padding-inline: var(--v2-gutter);
		scroll-padding-inline: var(--v2-gutter);
		scrollbar-width: none;
	}
	.v2-programmes::-webkit-scrollbar {
		display: none;
	}
	.v2-prog {
		flex: 0 0 84%;
		min-height: 30rem;
		scroll-snap-align: start;
	}
	.v2-defile-indice {
		display: block;
		margin: .75rem 0 0;
		font-size: 1rem;
		color: var(--wp--preset--color--gris);
	}

	.v2-photo img {
		aspect-ratio: 3 / 2;
	}

	:is(.v2-mosaique, .is-style-mosaique) {
		grid-auto-rows: 6.5rem;
	}

	.v2-grille-3 :is(.v2-carte, .is-style-carte) svg {
		display: none;
	}
	.v2-grille-3 {
		gap: .5rem;
	}

	.v2-footer__grille {
		grid-template-columns: 1fr 1fr;
		gap: 2rem 1rem;
	}
	.v2-footer__grille > :first-child {
		grid-column: 1 / -1;
	}
	.v2-footer__grille > :nth-child(2) {
		grid-column: 1 / -1;
	}
	.v2-footer {
		padding-top: 3.5rem;
	}
	.v2-footer__signature {
		margin-top: 2rem;
	}
}
@media (min-width: 782px) {
	.v2-defile-indice {
		display: none;
	}
}
@media (max-width: 781px) {
	.v2-footer__logo img {
		width: 96px;
	}
	.v2-footer h2 {
		margin-bottom: .25rem;
	}
	.v2-footer p {
		margin-bottom: .25rem;
	}
	.v2-split--horaires :is(.v2-chapeau, .is-style-chapeau),
	.v2-section__tete :is(.v2-chapeau, .is-style-chapeau) {
		font-size: 1.0625rem;
	}
	.v2-faq summary {
		min-height: 56px;
		padding: .75rem 0;
		font-size: 1.3rem;
	}
	:is(.v2-etapes, .is-style-etapes) h3 {
		font-size: 1.5rem;
	}
	.v2-quiz :is(.v2-chapeau, .is-style-chapeau) {
		display: none;
	}
}
.v2-form__lien {
	display: inline-flex;
	align-items: center;
	min-height: 48px;
	margin-top: -1rem;
	justify-self: start;
	font-size: 1rem;
}

/* ==========================================================================
   23. Blocs natifs (contenu éditable dans wp-admin)
   ========================================================================== */

/* Pictos : une classe v2-icone-<nom> sur un groupe ou une carte affiche assets/icons/<nom>.svg. */
.v2-icone-bouclier { --v2-icone: url("assets/icons/bouclier.svg"); }
.v2-icone-burpee { --v2-icone: url("assets/icons/burpee.svg"); }
.v2-icone-check { --v2-icone: url("assets/icons/check.svg"); }
.v2-icone-coach { --v2-icone: url("assets/icons/coach.svg"); }
.v2-icone-course { --v2-icone: url("assets/icons/course.svg"); }
.v2-icone-enfant { --v2-icone: url("assets/icons/enfant.svg"); }
.v2-icone-etoile { --v2-icone: url("assets/icons/etoile.svg"); }
.v2-icone-farmers { --v2-icone: url("assets/icons/farmers.svg"); }
.v2-icone-fleche { --v2-icone: url("assets/icons/fleche.svg"); }
.v2-icone-groupe { --v2-icone: url("assets/icons/groupe.svg"); }
.v2-icone-horloge { --v2-icone: url("assets/icons/horloge.svg"); }
.v2-icone-insta { --v2-icone: url("assets/icons/insta.svg"); }
.v2-icone-mail { --v2-icone: url("assets/icons/mail.svg"); }
.v2-icone-marteau { --v2-icone: url("assets/icons/marteau.svg"); }
.v2-icone-niveaux { --v2-icone: url("assets/icons/niveaux.svg"); }
.v2-icone-parking { --v2-icone: url("assets/icons/parking.svg"); }
.v2-icone-pin { --v2-icone: url("assets/icons/pin.svg"); }
.v2-icone-rameur { --v2-icone: url("assets/icons/rameur.svg"); }
.v2-icone-sandbag { --v2-icone: url("assets/icons/sandbag.svg"); }
.v2-icone-skierg { --v2-icone: url("assets/icons/skierg.svg"); }
.v2-icone-sled-pull { --v2-icone: url("assets/icons/sled-pull.svg"); }
.v2-icone-sled-push { --v2-icone: url("assets/icons/sled-push.svg"); }
.v2-icone-tel { --v2-icone: url("assets/icons/tel.svg"); }
.v2-icone-wallball { --v2-icone: url("assets/icons/wallball.svg"); }
:is(.is-style-carte, .v2-station)[class*="v2-icone-"]::before,
.is-style-preuves li::before,
.v2-btn-tel .wp-block-button__link::before {
	content: "";
	display: block;
	width: 2.5rem;
	height: 2.5rem;
	margin-bottom: 1rem;
	background: var(--wp--preset--color--etincelle);
	-webkit-mask: var(--v2-icone, url("assets/icons/check.svg")) center / contain no-repeat;
	mask: var(--v2-icone, url("assets/icons/check.svg")) center / contain no-repeat;
}
:is(.is-style-section-claire) .is-style-carte[class*="v2-icone-"]::before {
	background: var(--wp--preset--color--enclume);
}

/* Contenu des pages : les sections vont bord à bord. */
.v2-contenu > *,
.wp-block-post-content > * {
	margin-block: 0;
}
.wp-block-group.alignfull,
.v2-contenu > .wp-block-group {
	max-width: none;
}

/* Mot surligné (format « Surligner ») : jaune sur sombre, souligné jaune sous texte noir sur clair et sur Forge. */
mark.has-etincelle-color {
	background: none !important;
}
:is(.is-style-section-claire, .v2-clair, .is-style-section-forge, .v2-hero--forge, .is-style-carte-tarif) mark.has-etincelle-color {
	color: var(--wp--preset--color--enclume) !important;
	background: linear-gradient(transparent 62%, var(--wp--preset--color--etincelle) 62%, var(--wp--preset--color--etincelle) 92%, transparent 92%) !important;
}
.v2-hero--forge mark.has-etincelle-color {
	background: none !important;
}

/* Hero (bloc Couverture) : voile maison, contenu en bas à gauche, image prioritaire. */
.wp-block-cover.v2-hero {
	padding: calc(var(--v2-header-h) + 2rem) var(--v2-gutter) var(--wp--preset--spacing--60);
	align-items: end;
}
.wp-block-cover.v2-hero::before {
	content: none;
}
.wp-block-cover.v2-hero .wp-block-cover__background {
	opacity: 1;
	background:
		linear-gradient(180deg, rgba(14, 14, 14, .55) 0%, rgba(14, 14, 14, 0) 28%),
		linear-gradient(0deg, rgba(14, 14, 14, .96) 0%, rgba(14, 14, 14, .82) 30%, rgba(14, 14, 14, .25) 62%, rgba(14, 14, 14, 0) 80%),
		linear-gradient(90deg, rgba(14, 14, 14, .55) 0%, rgba(14, 14, 14, 0) 60%) !important;
}
.wp-block-cover.v2-hero--forge .wp-block-cover__background {
	background: var(--v2-forge) !important;
}
.wp-block-cover.v2-hero .wp-block-cover__inner-container {
	width: 100%;
	max-width: var(--wp--style--global--wide-size);
	margin-inline: auto;
	z-index: 2;
	color: inherit;
}
.wp-block-cover.v2-hero::after {
	z-index: 1;
}
.wp-block-cover .v2-hero__media {
	z-index: 0;
}
.wp-block-cover .v2-hero__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.wp-block-cover.v2-hero h1 {
	margin-block: 0;
}
.v2-hero .is-style-sur-titre {
	margin-bottom: 1rem;
}
.v2-hero__sous {
	margin-top: 1.5rem;
}
.v2-hero .v2-hero__note {
	margin: 1.5rem 0 0;
	font-size: 1rem;
	font-style: italic;
	color: var(--wp--preset--color--gris);
}
.v2-hero--forge .v2-hero__note {
	color: #2A2A2A;
}
.v2-hero--forge,
.v2-hero--forge .wp-block-cover__inner-container {
	color: var(--wp--preset--color--enclume) !important;
}

/* Boutons : CTA principal fléché, marqueur v2-cta (barre mobile masquée quand il est visible). */
.wp-block-button.v2-cta .wp-block-button__link::after {
	content: "→";
	font-family: var(--wp--preset--font-family--texte);
	font-weight: 600;
	margin-left: .25rem;
}
.is-style-noir .wp-block-button__link {
	background: var(--wp--preset--color--enclume);
	border-color: var(--wp--preset--color--enclume);
	color: var(--wp--preset--color--etincelle);
}
.is-style-noir .wp-block-button__link:hover,
.is-style-noir .wp-block-button__link:focus-visible {
	background: var(--wp--preset--color--blanc);
	border-color: var(--wp--preset--color--enclume);
	color: var(--wp--preset--color--enclume);
}
:is(.is-style-section-claire, .is-style-section-forge, .v2-hero--forge, .v2-prog--forge, .is-style-carte-tarif) .is-style-lien .wp-block-button__link {
	box-shadow: inset 0 -3px 0 var(--wp--preset--color--enclume);
}
.wp-block-buttons.v2-actions {
	margin-top: var(--wp--preset--spacing--40);
}

/* Listes : arguments, étapes, étiquettes, liste cochée, lexique, fiches. */
.wp-block-list:is(.is-style-preuves, .is-style-etapes, .is-style-puces, .is-style-coches, .v2-lexique, .v2-options, .v2-fiche, .v2-infos, .v2-seance, .v2-avis) {
	list-style: none;
	padding-left: 0;
}
.is-style-preuves li {
	display: flex;
	align-items: center;
	gap: .5rem;
}
.is-style-preuves li::before {
	width: 1.25rem;
	height: 1.25rem;
	margin: 0;
	flex: none;
}
.is-style-etapes li {
	display: block;
	position: relative;
	padding-left: 4.5rem;
	min-height: 3.5rem;
}
.is-style-etapes li::before {
	position: absolute;
	left: 0;
	top: 1.25rem;
}
.is-style-etapes li strong,
.v2-seance li strong {
	display: block;
	margin-bottom: .35rem;
	font-family: var(--wp--preset--font-family--titre);
	font-weight: 800;
	font-size: 1.75rem;
	line-height: 1;
	text-transform: uppercase;
}
.is-style-etapes li br,
.v2-seance li br {
	display: none;
}
.is-style-puces {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	margin: 0 0 1.25rem;
}
.is-style-puces li {
	padding: .3rem .65rem;
	border: 1px solid rgba(255, 255, 255, .35);
	font-size: 1rem;
	line-height: 1.3;
	color: var(--wp--preset--color--gris);
}
.is-style-puces strong {
	color: var(--wp--preset--color--blanc);
	font-weight: 600;
}
.v2-prog--forge .is-style-puces li {
	border-color: rgba(14, 14, 14, .45);
	color: #3A3A3A;
}
.v2-prog--forge .is-style-puces strong {
	color: var(--wp--preset--color--enclume);
}
.v2-seance {
	counter-reset: seance;
}
.v2-seance li {
	counter-increment: seance;
}
.v2-seance li::before {
	content: counter(seance, decimal-leading-zero);
	display: block;
	margin-bottom: .75rem;
	font-family: var(--wp--preset--font-family--pochoir);
	font-weight: 800;
	font-size: 2.75rem;
	line-height: 1;
	color: var(--wp--preset--color--etincelle);
}
.v2-seance li {
	color: var(--wp--preset--color--gris);
}
.v2-seance li strong {
	color: var(--wp--preset--color--blanc);
}
.v2-lexique li strong {
	display: block;
	margin-bottom: .35rem;
	font-family: var(--wp--preset--font-family--titre);
	font-weight: 800;
	font-size: 1.75rem;
	text-transform: uppercase;
	color: var(--wp--preset--color--etincelle);
}
.v2-lexique li {
	color: var(--wp--preset--color--gris);
}
.v2-options li {
	font-family: var(--wp--preset--font-family--pochoir);
	font-weight: 800;
	font-size: 2rem;
	line-height: 1.1;
}
.v2-options li strong,
.v2-fiche li strong,
.v2-infos li strong {
	display: block;
	font-family: var(--wp--preset--font-family--titre);
	font-weight: 800;
	font-size: 1.25rem;
	letter-spacing: .04em;
	text-transform: uppercase;
}
.v2-fiche li strong {
	color: var(--wp--preset--color--braise);
}
.v2-fiche {
	margin: 1.5rem 0 0;
	border-top: 1px solid var(--wp--preset--color--acier-clair);
}
.v2-fiche li {
	padding: .9rem 0;
	border-bottom: 1px solid var(--wp--preset--color--acier-clair);
}
.v2-options em,
.v2-fiche em {
	font-family: var(--wp--preset--font-family--texte);
	font-size: 1rem;
	font-weight: 400;
}

/* Placeholders [À COMPLÉTER] en italique : un peu atténués. */
.wp-block-post-content em {
	color: var(--wp--preset--color--gris);
}
:is(.is-style-section-claire, .is-style-carte-tarif) em {
	color: var(--wp--preset--color--gris-fonce);
}
.is-style-section-forge em,
.v2-hero--forge em,
.v2-prog--forge em {
	color: #2A2A2A;
}

/* Quiz (bloc dynamique) à côté de son titre. */
@media (min-width: 960px) {
	.v2-split--quiz {
		grid-template-columns: 5fr 7fr;
		align-items: start;
	}
}

/* Cartes programmes (blocs Couverture dans une grille). */
.v2-programmes {
	display: grid;
	gap: 1rem;
}
@media (min-width: 782px) {
	.v2-programmes {
		grid-template-columns: repeat(3, 1fr);
	}
}
.wp-block-cover.v2-prog {
	align-items: stretch;
	padding: clamp(1.25rem, 3vw, 2rem);
	min-height: clamp(26rem, 60vw, 38rem);
}
.wp-block-cover.v2-prog::before {
	content: none;
}
.wp-block-cover.v2-prog .wp-block-cover__background {
	opacity: 1;
	background: linear-gradient(0deg, rgba(14, 14, 14, .97) 0%, rgba(14, 14, 14, .8) 38%, rgba(14, 14, 14, .1) 75%) !important;
}
.wp-block-cover.v2-prog--forge .wp-block-cover__background {
	background: var(--v2-forge) !important;
}
.wp-block-cover.v2-prog img.wp-block-cover__image-background {
	z-index: 0;
	transition: transform .8s var(--v2-ease);
}
.v2-prog:hover img.wp-block-cover__image-background,
.v2-prog:focus-within img.wp-block-cover__image-background {
	transform: scale(1.05);
}
.wp-block-cover.v2-prog .wp-block-cover__inner-container {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	width: 100%;
	position: static;
	z-index: auto;
}
.wp-block-cover.v2-prog .wp-block-cover__inner-container > * {
	position: relative;
	z-index: 2;
	margin-block: 0 .75rem;
}
.v2-prog .v2-prog__num {
	position: absolute !important;
	top: clamp(1rem, 3vw, 1.5rem);
	left: clamp(1.25rem, 3vw, 2rem);
	font-family: var(--wp--preset--font-family--pochoir);
	font-weight: 800;
	font-size: 1.25rem;
	letter-spacing: .14em;
	color: var(--wp--preset--color--etincelle);
}
.v2-prog--forge .v2-prog__num,
.v2-prog--forge {
	color: var(--wp--preset--color--enclume) !important;
}
.v2-prog .wp-block-button__link::before {
	content: "";
	position: absolute;
	inset: 0;
}
.v2-prog .wp-block-buttons {
	position: static !important;
}
.v2-prog .wp-block-button {
	position: static;
}
.v2-prog--forge::after {
	content: "";
	position: absolute;
	top: 12%;
	right: -6%;
	width: 75%;
	aspect-ratio: 1;
	z-index: 1;
	opacity: .14;
	background: var(--wp--preset--color--enclume);
	-webkit-mask: var(--v2-icone) center / contain no-repeat;
	mask: var(--v2-icone) center / contain no-repeat;
}

/* Images : photo encadrée, coachs en duotone, profils, QualiCert. */
.wp-block-image.v2-photo {
	margin: 0;
}
.is-style-duotone {
	margin: 0;
	background: var(--wp--preset--color--etincelle);
	overflow: hidden;
}
.is-style-duotone img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	filter: grayscale(1) contrast(1.15);
	mix-blend-mode: multiply;
	transition: filter .5s var(--v2-ease);
}
.v2-coach:hover .is-style-duotone img,
.v2-coach:focus-within .is-style-duotone img {
	filter: none;
	mix-blend-mode: normal;
}
.v2-coach h3 {
	margin: 1rem 0 .25rem;
	font-size: clamp(2.5rem, 5vw, 3.5rem);
}
.v2-coach p {
	margin: 0;
}
.v2-profil__portrait {
	width: 78%;
	margin: 0;
}
.v2-profil__portrait img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
}
.wp-block-image.v2-profil__action {
	position: absolute;
	right: 0;
	bottom: 0;
	width: 52%;
	margin: 0;
	border: 6px solid var(--wp--preset--color--enclume);
}
.is-style-section-acier .wp-block-image.v2-profil__action {
	border-color: var(--wp--preset--color--acier);
}
.v2-profil__action img {
	display: block;
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
}
.v2-qualicert-grand {
	justify-self: center;
	margin: 0;
	padding: 1.5rem;
	background: var(--wp--preset--color--blanc);
}
.v2-qualicert-grand img {
	width: min(320px, 60vw);
	height: auto;
}

/* Galerie « Mosaïque » : grille éditoriale, la box choisit ses photos. */
.wp-block-gallery.is-style-mosaique {
	display: grid !important;
	grid-template-columns: repeat(2, 1fr);
	grid-auto-rows: 6.5rem;
	gap: .5rem !important;
}
.wp-block-gallery.is-style-mosaique > .wp-block-image {
	width: auto !important;
	margin: 0 !important;
}
.wp-block-gallery.is-style-mosaique > .wp-block-image img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
}
.wp-block-gallery.is-style-mosaique > .wp-block-image:first-child {
	grid-column: span 2;
	grid-row: span 2;
}
.wp-block-gallery.is-style-mosaique > .wp-block-image:nth-child(2) {
	grid-column: span 2;
}
@media (min-width: 782px) {
	.wp-block-gallery.is-style-mosaique {
		grid-template-columns: repeat(4, 1fr);
		grid-auto-rows: clamp(10rem, 16vw, 16rem);
	}
	.wp-block-gallery.is-style-mosaique > .wp-block-image:first-child {
		grid-column: 1 / span 2;
		grid-row: 1 / span 2;
	}
	.wp-block-gallery.is-style-mosaique > .wp-block-image:nth-child(2) {
		grid-column: 3 / span 2;
	}
}

/* Cartes tarifs. */
:is(.is-style-carte-tarif, .is-style-carte-vedette) .wp-block-heading {
	margin-top: 0;
}
.is-style-carte-vedette .v2-tarif__badge {
	position: absolute;
	top: -1rem;
	left: clamp(1.25rem, 3vw, 2rem);
	margin: 0;
	padding: .3rem .75rem;
	background: var(--wp--preset--color--etincelle);
	color: var(--wp--preset--color--enclume);
	font-family: var(--wp--preset--font-family--titre);
	font-weight: 800;
	font-size: 1rem;
	letter-spacing: .08em;
	text-transform: uppercase;
}
.v2-tarif__prix strong {
	display: block;
	font-size: clamp(2.25rem, 4vw, 3rem);
	line-height: 1;
}
.v2-tarif__prix em {
	display: block;
	margin-top: .35rem;
	font-family: var(--wp--preset--font-family--texte);
	font-size: 1rem;
	font-weight: 400;
	text-transform: none;
}
.v2-tarif__actions {
	margin-top: auto;
}
.v2-tarif__actions .wp-block-button,
.v2-tarif__actions .wp-block-button__link {
	width: 100%;
}
.is-style-carte-tarif .v2-tarif__actions .wp-block-button__link {
	background: var(--wp--preset--color--enclume);
	border-color: var(--wp--preset--color--enclume);
	color: var(--wp--preset--color--etincelle);
}
.is-style-carte-tarif .wp-block-list {
	flex: 1;
}

/* Stations Hyrox (groupes en grille). */
.v2-stations > .v2-station {
	margin: 0;
}
.v2-station p {
	margin: 0;
}
.v2-station p:first-of-type strong {
	display: block;
	margin-top: 1rem;
	font-family: var(--wp--preset--font-family--titre);
	font-weight: 800;
	font-size: 1.5rem;
	line-height: 1;
	text-transform: uppercase;
}
.v2-station p + p {
	font-size: 1rem;
	color: var(--wp--preset--color--gris);
}
.v2-station::before {
	width: 2.75rem !important;
	height: 2.75rem !important;
	margin-bottom: auto !important;
}

/* FAQ (blocs Détails). */
.v2-faq .wp-block-details {
	margin: 0;
}
.v2-faq .wp-block-details p {
	margin: 0 0 1.25rem;
}

/* CTA final : marteau décoratif. */
.v2-cta-final.v2-icone-marteau::after {
	content: "";
	position: absolute;
	right: -4%;
	bottom: -10%;
	width: min(52vw, 640px);
	aspect-ratio: 1;
	opacity: .12;
	z-index: -1;
	background: var(--wp--preset--color--enclume);
	-webkit-mask: var(--v2-icone) center / contain no-repeat;
	mask: var(--v2-icone) center / contain no-repeat;
	mix-blend-mode: normal;
}
.v2-cta-final h2 {
	margin-top: 0;
}

/* Avis : emplacements à compléter. */
.v2-avis li em {
	font-style: normal;
}

/* Bloc Coordonnées. */
.v2-coordonnees--pied ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
.v2-coordonnees--pied a,
.v2-coordonnees--adresse a {
	display: inline-flex;
	align-items: center;
	min-height: 48px;
}
.v2-coordonnees--adresse address {
	font-style: normal;
}

/* En-tête : bloc Navigation natif (menu « menu-v2 »), menu plein écran sous 1 100 px. */
.v2-header .wp-block-site-logo img {
	height: 52px;
	width: auto;
}
.v2-nav-principal .wp-block-navigation-item__content {
	display: inline-flex;
	align-items: center;
	min-height: 48px;
	min-width: 48px;
	font-family: var(--wp--preset--font-family--titre);
	font-weight: 800;
	font-size: 1.25rem;
	letter-spacing: .05em;
	text-transform: uppercase;
	text-decoration: none;
	background-image: linear-gradient(var(--wp--preset--color--etincelle), var(--wp--preset--color--etincelle));
	background-size: 0 3px;
	background-repeat: no-repeat;
	background-position: 0 calc(100% - 8px);
	transition: background-size .25s var(--v2-ease);
}
.v2-nav-principal .wp-block-navigation-item__content:hover,
.v2-nav-principal .current-menu-item > .wp-block-navigation-item__content,
.v2-nav-principal [aria-current="page"] {
	background-size: 100% 3px;
}
.v2-nav-principal .wp-block-navigation__container {
	gap: 1.5rem;
}
.v2-nav-principal .wp-block-navigation__responsive-container-open,
.v2-nav-principal .wp-block-navigation__responsive-container-close {
	width: 48px;
	height: 48px;
	align-items: center;
	justify-content: center;
	color: var(--wp--preset--color--blanc);
}
.v2-nav-principal .wp-block-navigation__responsive-container-open svg,
.v2-nav-principal .wp-block-navigation__responsive-container-close svg {
	width: 32px;
	height: 32px;
}
@media (min-width: 600px) and (max-width: 1099px) {
	.v2-nav-principal .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}
	.v2-nav-principal .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
		display: none;
	}
}
.v2-nav-principal .wp-block-navigation__responsive-container.is-menu-open {
	padding: var(--v2-header-h) var(--v2-gutter) 2rem;
	background: var(--wp--preset--color--enclume) !important;
}
.v2-nav-principal .is-menu-open .wp-block-navigation__responsive-container-close {
	display: flex;
	top: 12px;
	right: var(--v2-gutter);
}
.v2-nav-principal .is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: 1rem;
	align-items: stretch !important;
}
.v2-nav-principal .is-menu-open .wp-block-navigation__container {
	gap: 0 !important;
	align-items: stretch !important;
	width: 100%;
}
.v2-nav-principal .is-menu-open .wp-block-navigation-item {
	border-bottom: 1px solid var(--wp--preset--color--acier-clair);
}
.v2-nav-principal .is-menu-open .wp-block-navigation-item__content {
	min-height: 64px;
	font-size: clamp(2.25rem, 9vw, 3.25rem);
	line-height: 1;
	padding: .2rem 0 !important;
	background-position: 0 calc(100% - 10px);
}
.v2-nav-principal .is-menu-open .wp-block-navigation-item:nth-child(-n+3) .wp-block-navigation-item__content {
	color: var(--wp--preset--color--etincelle);
}

/* Barre mobile (blocs Boutons). */
.v2-barre {
	display: block;
}
.v2-barre .wp-block-buttons {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: .5rem;
	width: 100%;
}
.v2-barre .wp-block-button__link {
	width: 100%;
	min-height: 56px;
	padding-inline: 1rem;
}
.v2-btn-tel {
	--v2-icone: url("assets/icons/tel.svg");
}
.v2-btn-tel .wp-block-button__link::before {
	width: 1.25rem;
	height: 1.25rem;
	margin: 0;
	background: currentColor;
}
@media (min-width: 782px) {
	.v2-barre {
		display: none;
	}
}

/* Pied de page : navigation verticale, cibles de 48 px. */
.v2-nav-pied .wp-block-navigation__container {
	gap: 0 !important;
}
.v2-nav-pied .wp-block-navigation-item__content {
	display: inline-flex;
	align-items: center;
	min-height: 48px;
	min-width: 48px;
	text-decoration: underline;
}
.v2-footer__bas p {
	margin: 0;
}
.v2-footer__bas a {
	display: inline-flex;
	align-items: center;
	min-height: 48px;
}
.v2-footer .wp-block-image.v2-qualicert {
	display: inline-block;
	margin: 1rem 0 0;
}
.v2-header__essai .wp-block-button__link {
	min-height: 48px;
	padding: .55rem 1.1rem;
	font-size: 1.125rem;
}
.wp-block-cover.v2-prog .wp-block-cover__inner-container {
	flex: 1;
}
.v2-cta-final.v2-icone-marteau::after {
	inset: auto -4% -10% auto;
}
:is(.is-style-section-acier, .v2-acier) .v2-slot {
	background: var(--wp--preset--color--enclume);
}
.v2-stations > .v2-station {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-height: 11rem;
	padding: 1.25rem;
	background: var(--wp--preset--color--enclume);
	counter-increment: station;
}
.v2-stations > .v2-station::after {
	content: counter(station);
	position: absolute;
	top: .75rem;
	right: 1rem;
	font-family: var(--wp--preset--font-family--pochoir);
	font-weight: 800;
	font-size: 2.5rem;
	line-height: 1;
	color: transparent;
	-webkit-text-stroke: 1.5px var(--wp--preset--color--braise);
}
@media (max-width: 781px) {
	.v2-stations > .v2-station {
		min-height: 8.5rem;
		padding: 1rem;
	}
}
:is(.is-style-coches, .is-style-carte-tarif .wp-block-list, .is-style-carte-vedette .wp-block-list) li {
	display: block;
	position: relative;
	padding-left: 1.6rem;
}
:is(.is-style-coches, .is-style-carte-tarif .wp-block-list, .is-style-carte-vedette .wp-block-list) li::before {
	position: absolute;
	left: 0;
}
.v2-hero--forge .wp-block-cover__background::after {
	content: "";
	position: absolute;
	top: 8%;
	right: -4%;
	width: min(70vw, 620px);
	aspect-ratio: 1;
	opacity: .13;
	background: var(--wp--preset--color--enclume);
	-webkit-mask: url("assets/icons/enfant.svg") center / contain no-repeat;
	mask: url("assets/icons/enfant.svg") center / contain no-repeat;
}
.is-style-section-claire .is-style-carte-vedette em {
	color: var(--wp--preset--color--gris);
}

/* Liens dans un chapeau : cible tactile de 48 px sans décaler le texte. */
.is-style-chapeau a {
	display: inline-block;
	padding-block: .75rem;
	margin-block: -.75rem;
}

@media (max-width: 781px) {
	/* Hero : la hauteur suit le contenu (la photo occupe le haut), malgré la hauteur minimale du bloc Couverture. */
	.wp-block-cover.v2-hero {
		min-height: 0 !important;
		padding-top: 44svh;
		padding-bottom: 2.5rem;
	}
	.wp-block-cover.v2-hero--court {
		padding-top: 38svh;
	}
	.wp-block-cover.v2-hero--forge {
		padding-top: calc(var(--v2-header-h) + 3rem);
	}
	.wp-block-cover.v2-hero .wp-block-cover__image-background,
	.wp-block-cover.v2-hero .v2-hero__media {
		inset: 0 0 auto;
		height: 74svh;
	}
	.wp-block-cover.v2-hero:not(.v2-hero--forge) .wp-block-cover__background {
		background:
			linear-gradient(180deg, rgba(14, 14, 14, .6) 0%, rgba(14, 14, 14, 0) 14%),
			linear-gradient(180deg, rgba(14, 14, 14, 0) 34svh, rgba(14, 14, 14, .85) 50svh, var(--wp--preset--color--enclume) 74svh) !important;
	}
	.wp-block-cover.v2-hero .is-style-preuves {
		display: none;
	}
	/* Programmes : carrousel horizontal. */
	.v2-programmes {
		display: flex;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		gap: .75rem;
		margin-inline: calc(var(--v2-gutter) * -1) !important;
		padding-inline: var(--v2-gutter);
		scroll-padding-inline: var(--v2-gutter);
		scrollbar-width: none;
	}
	.wp-block-cover.v2-prog {
		flex: 0 0 84%;
		min-height: 30rem;
		scroll-snap-align: start;
	}
	.v2-grille-3 .is-style-carte::before {
		display: none;
	}
}
@media (max-width: 599px) {
	.wp-block-buttons.v2-header__essai {
		display: none;
	}
}
.v2-nav-principal .wp-block-navigation__responsive-container.is-menu-open {
	--navigation-layout-justification-setting: flex-start;
	--navigation-layout-justify: flex-start;
	--navigation-layout-align: flex-start;
}
.v2-nav-principal .is-menu-open .wp-block-navigation-item__content {
	text-align: left;
}

/* Sans JavaScript, le menu plein écran ne s'ouvre pas : lien « Menu » vers le plan du site du pied de page. */
.v2-nav-secours {
	display: none;
	margin: 0;
}
@media (max-width: 1099px) {
	html:not(.js) .v2-nav-principal {
		display: none;
	}
	html:not(.js) .v2-nav-secours {
		display: block;
	}
	.v2-nav-secours a {
		display: inline-flex;
		align-items: center;
		min-height: 48px;
		color: var(--wp--preset--color--blanc);
		font-family: var(--wp--preset--font-family--titre);
		font-weight: 800;
		font-size: 1.25rem;
		text-transform: uppercase;
	}
}

/* Éditeur de blocs : sections pleine largeur comme sur le site, quiz affiché (l'iframe n'a pas la classe .js). */
.editor-styles-wrapper .is-root-container > * {
	max-width: none !important;
	margin-inline: 0 !important;
}
.editor-styles-wrapper .v2-quiz__carte form {
	display: block !important;
}
.editor-styles-wrapper .v2-quiz__carte::after {
	content: none !important;
}
.editor-styles-wrapper .wp-block-cover.v2-hero {
	min-height: 0 !important;
	padding-top: 40vh;
}

/* v3 : crédits des photos d'illustration (bloc dépliable en pied de page). */
.v2-credits {
	flex-basis: 100%;
	order: 3;
	font-size: 1rem;
	color: var(--wp--preset--color--gris);
}
.v2-credits summary {
	display: inline-flex;
	align-items: center;
	min-height: 48px;
	cursor: pointer;
	text-decoration: underline;
}
.v2-credits p {
	margin: 0 0 .5rem !important;
}
.v2-credits ul {
	display: block !important;
	margin: 0;
	padding: 0;
	list-style: none;
}
.v2-credits li a {
	display: inline-flex !important;
	align-items: center;
	min-height: 48px !important;
	color: var(--wp--preset--color--gris);
}

/* Colonne unique : sections, heros et CTA alignés sur la même largeur (1 320 px), marges calculées sur le conteneur. */
:is([class*="is-style-section"], .v2-entete),
.wp-block-cover.v2-hero {
	padding-inline: max(var(--v2-gutter), calc((100% - var(--wp--style--global--wide-size)) / 2)) !important;
}
:is([class*="is-style-section"], .v2-entete) > *,
.wp-block-cover.v2-hero .wp-block-cover__inner-container {
	max-width: none !important;
	margin-inline: 0 !important;
}
.v2-cta-final > h2 {
	max-width: 10ch !important;
}
.v2-cta-final > p:not(.is-style-sur-titre) {
	max-width: 30em !important;
}
@media (max-width: 781px) {
	.v2-programmes,
	.v2-avis {
		margin-inline: calc(var(--v2-gutter) * -1) !important;
	}
}

/* Grilles et rangées : WordPress ajoute une marge haute à chaque bloc sauf le premier (mise en page « flux »),
   ce qui décalait de 16 px toutes les cartes et colonnes après la première. Les écarts viennent du gap de la grille. */
:where(.v2-programmes, .v2-coachs, .v2-grille-3, .v2-tarifs, .v2-stations, .v2-split, .v2-essai, .v2-section__tete, .v2-footer__grille, .v2-footer__bas, .v2-header__inner, .v2-header__droite, .v2-barre, .wp-block-gallery.is-style-mosaique) > * {
	margin-block: 0 !important;
}

/* Cartes programmes : même hauteur réservée au texte (3 lignes) et aux étiquettes, pour aligner titres et liens. */
.v2-prog .wp-block-cover__inner-container > p:not(.v2-prog__num) {
	min-height: 3lh;
}
@media (max-width: 1199px) {
	.v2-prog .wp-block-cover__inner-container > .is-style-puces {
		min-height: calc(4.5rem + .5rem);
		align-content: flex-start;
	}
}

/* Cartes tarifs : titre, prix, liste et bouton sur des rangées communes (sous-grille), quelle que soit la longueur du prix. */
@media (min-width: 900px) {
	.v2-tarifs {
		grid-template-rows: repeat(4, auto);
		gap: 0 1rem;
	}
	.v2-tarifs > :is(.is-style-carte-tarif, .is-style-carte-vedette) {
		display: grid;
		grid-row: span 4;
		grid-template-rows: subgrid;
		row-gap: 0;
	}
	.v2-tarifs .wp-block-list {
		align-self: start;
	}
	.v2-tarifs .v2-tarif__actions {
		align-self: end;
	}
}
