/**
 * BestPermis — feuille de style principale.
 *
 * Direction : signalétique routière. Marquage au sol, plaques de
 * signalisation, cadrans de tableau de bord.
 *
 * Deux accents : le vert de la marque porte l'identité, l'ambre du
 * clignotant porte tout ce qui touche à l'argent et à l'action.
 *
 * Les noms de classes `bp-` d'origine sont conservés : les gabarits
 * existants continuent de fonctionner sans modification.
 *
 * @package BestPermis
 */

/* ============================================================
   1. Jetons
   ============================================================ */

:root {
	/* Charte BestPermis 2025 : bleu #1A597E (60 %), vert #3DD897 (30 %),
	   dégradé bleu → vert (10 %). Le texte est bleu, jamais noir. */

	/* Fonds */
	--bp-asphalte:     #1A597E;
	--bp-asphalte-2:   #154A69;
	--bp-fond:         #F3F7FA;
	--bp-surface:      #FFFFFF;

	/* Texte */
	--bp-encre:        #1A597E;
	--bp-texte:        #35607D;
	--bp-texte-faible: #6F8FA5;
	--bp-sur-sombre:   #FFFFFF;
	--bp-sur-sombre-2: #CFE6F0;

	/* Accents. L'ancien « ambre » (action) devient le vert de la charte :
	   les anciens noms de jetons restent valides pour tout le CSS existant. */
	--bp-vert:         #3DD897;
	--bp-vert-fonce:   #1A597E;
	--bp-vert-vif:     #3DD897;
	--bp-vert-clair:   #E4F9F0;
	--bp-ambre:        #3DD897;
	--bp-ambre-texte:  #1A597E;
	--bp-ambre-clair:  #E4F9F0;
	--bp-degrade:      linear-gradient(118deg, #1A597E 0%, #24858F 48%, #3DD897 100%);

	/* États */
	--bp-erreur:       #C0392B;
	--bp-erreur-clair: #FDECEA;
	--bp-succes:       #0F6E5D;
	--bp-succes-clair: #E2F1EC;

	/* Structure */
	--bp-ligne:        #D5E3EC;
	--bp-ligne-sombre: #2F7096;

	/* La charte n'arrondit presque rien : le parallélogramme est net. */
	--bp-rayon-sm: 3px;
	--bp-rayon:    4px;
	--bp-rayon-lg: 6px;

	--bp-ombre:        0 1px 2px rgba(12, 26, 23, .05), 0 4px 12px rgba(12, 26, 23, .05);
	--bp-ombre-forte:  0 2px 4px rgba(12, 26, 23, .05), 0 12px 32px rgba(12, 26, 23, .09);
	--bp-ombre-haute:  0 4px 8px rgba(12, 26, 23, .06), 0 28px 60px rgba(12, 26, 23, .16);
	--bp-ombre-xl:     0 8px 16px rgba(12, 26, 23, .12), 0 40px 80px rgba(12, 26, 23, .34);

	--bp-titre:    "Saira", "Segoe UI", Arial, sans-serif;
	--bp-corps:    "Saira", "Segoe UI", Arial, sans-serif;
	--bp-condense: "Saira Condensed", "Saira", "Arial Narrow", sans-serif;

	/* Le site occupe l'écran : 1680 px au plus, gouttière qui grandit avec la fenêtre. */
	--bp-largeur: 1680px;
	--bp-gouttiere: clamp(24px, 4vw, 72px);

	--bp-transition: .22s cubic-bezier(.22, .8, .3, 1);
}

/* ============================================================
   2. Base
   ============================================================ */

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

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--bp-fond);
	color: var(--bp-texte);
	font-family: var(--bp-corps);
	font-size: 17px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--bp-titre);
	font-variation-settings: "wdth" 112;
	color: var(--bp-encre);
	line-height: 1.06;
	text-wrap: balance;
	margin: 0 0 .5em;
	font-weight: 700;
	letter-spacing: -.02em;
}

p { margin: 0 0 1.1em; }
p:last-child { margin-bottom: 0; }

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

a {
	color: var(--bp-vert-fonce);
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
	transition: color var(--bp-transition);
}
a:hover { color: var(--bp-vert); }

:focus-visible {
	outline: 3px solid var(--bp-ambre);
	outline-offset: 3px;
	border-radius: 4px;
}

/* Masqué visuellement, lu par les lecteurs d'écran. */
.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.bp-skip {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 200;
	background: var(--bp-encre);
	color: #fff;
	padding: 14px 22px;
	border-radius: 0 0 var(--bp-rayon-sm) 0;
	font-weight: 600;
	text-decoration: none;
}
.bp-skip:focus {
	left: 0;
	color: #fff;
}

.bp-container {
	width: 100%;
	max-width: var(--bp-largeur);
	margin-inline: auto;
	padding-inline: var(--bp-gouttiere);
}

.bp-main { display: block; }

/* ============================================================
   3. Éléments récurrents
   ============================================================ */

/* Étiquette en capitales — reprend le lettrage des panneaux. */
.bp-eyebrow {
	font-family: var(--bp-titre);
	font-variation-settings: "wdth" 100;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--bp-vert-fonce);
	margin: 0 0 14px;
	display: flex;
	align-items: center;
	gap: 10px;
}
.bp-eyebrow::before {
	content: "";
	width: 26px;
	height: 3px;
	background: var(--bp-vert);
	border-radius: 2px;
	flex: none;
}
.bp-eyebrow--sombre { color: var(--bp-vert-vif); }
.bp-eyebrow--sombre::before { background: var(--bp-vert-vif); }

/* Pastille de coche réutilisée dans toutes les listes d'avantages. */
.bp-coche {
	width: 19px;
	height: 19px;
	flex: none;
	border-radius: 50%;
	background: var(--bp-vert-clair);
	color: var(--bp-vert-fonce);
	display: grid;
	place-items: center;
	font-size: 11px;
	font-weight: 700;
	font-style: normal;
	line-height: 1;
}
.bp-coche--sombre {
	background: rgba(46, 214, 175, .16);
	color: var(--bp-vert-vif);
}

/* ============================================================
   4. Boutons
   ============================================================ */

.bp-btn {
	--btn-bg: var(--bp-vert);
	--btn-fg: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	font-family: var(--bp-titre);
	font-variation-settings: "wdth" 105;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: .01em;
	padding: 15px 26px;
	border-radius: 999px;
	border: 1.5px solid transparent;
	background: var(--btn-bg);
	color: var(--btn-fg);
	text-decoration: none;
	cursor: pointer;
	white-space: nowrap;
	transition: transform var(--bp-transition), box-shadow var(--bp-transition), background-color var(--bp-transition), border-color var(--bp-transition);
}
.bp-btn:hover {
	color: var(--btn-fg);
	transform: translateY(-2px);
	box-shadow: 0 10px 24px rgba(27, 156, 133, .3);
}
.bp-btn:active { transform: translateY(0); }

.bp-btn--primary { --btn-bg: var(--bp-vert); --btn-fg: #fff; }

.bp-btn--ambre { --btn-bg: var(--bp-ambre); --btn-fg: #2B1400; }
.bp-btn--ambre:hover { box-shadow: 0 10px 24px rgba(255, 138, 31, .36); }

.bp-btn--light { --btn-bg: #fff; --btn-fg: var(--bp-encre); }
.bp-btn--light:hover { box-shadow: 0 10px 24px rgba(0, 0, 0, .2); }

.bp-btn--ghost {
	--btn-bg: transparent;
	--btn-fg: var(--bp-encre);
	border-color: var(--bp-ligne);
}
.bp-btn--ghost:hover {
	--btn-bg: #fff;
	border-color: var(--bp-vert);
	box-shadow: var(--bp-ombre);
}

.bp-btn--ghost-light {
	--btn-bg: rgba(231, 241, 237, .06);
	--btn-fg: var(--bp-sur-sombre);
	border-color: rgba(231, 241, 237, .32);
}
.bp-btn--ghost-light:hover {
	--btn-bg: rgba(231, 241, 237, .16);
	box-shadow: none;
}

.bp-btn--bloc { width: 100%; padding: 16px 22px; }

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

.bp-header {
	position: sticky;
	top: 0;
	z-index: 60;
	background: rgba(241, 244, 242, .86);
	backdrop-filter: saturate(160%) blur(14px);
	-webkit-backdrop-filter: saturate(160%) blur(14px);
	border-bottom: 1px solid transparent;
	transition: border-color var(--bp-transition), background-color var(--bp-transition);
}
.bp-header.is-stuck {
	border-bottom-color: var(--bp-ligne);
	background: rgba(241, 244, 242, .96);
}

.bp-header__inner {
	display: flex;
	align-items: center;
	gap: 28px;
	min-height: 74px;
	transition: min-height var(--bp-transition);
}
.is-stuck .bp-header__inner { min-height: 62px; }

.bp-header__brand { margin-right: auto; }

.bp-brand {
	font-family: var(--bp-titre);
	font-variation-settings: "wdth" 118;
	font-weight: 800;
	font-size: 21px;
	letter-spacing: -.015em;
	color: var(--bp-encre);
	text-decoration: none;
	display: flex;
	align-items: center;
	gap: 9px;
}
.bp-brand:hover { color: var(--bp-encre); }
.bp-brand::before {
	content: "";
	width: 11px;
	height: 11px;
	border-radius: 3px;
	background: var(--bp-vert);
	box-shadow: 0 0 0 4px var(--bp-vert-clair);
	flex: none;
}
.bp-brand__name { display: block; }
.bp-brand__tagline {
	display: block;
	font-family: var(--bp-corps);
	font-size: 12px;
	font-weight: 400;
	letter-spacing: 0;
	color: var(--bp-texte-faible);
}

/* Le logo envoyé depuis l'admin remplace le texte. */
.custom-logo-link { display: inline-flex; align-items: center; }
.custom-logo { max-height: 48px; width: auto; }

.bp-nav {
	display: flex;
	align-items: center;
	gap: 12px;
}

.bp-menu {
	display: flex;
	align-items: center;
	gap: 4px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.bp-menu li { position: relative; }
.bp-menu a {
	display: block;
	font-size: 15px;
	font-weight: 500;
	color: var(--bp-texte);
	text-decoration: none;
	padding: 9px 14px;
	border-radius: 999px;
	white-space: nowrap;
	transition: color var(--bp-transition), background-color var(--bp-transition);
}
.bp-menu a:hover,
.bp-menu .current-menu-item > a,
.bp-menu .current_page_item > a {
	color: var(--bp-encre);
	background: rgba(12, 26, 23, .05);
}

/* Sous-menus */
.bp-menu .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 210px;
	background: var(--bp-surface);
	border: 1px solid var(--bp-ligne);
	border-radius: var(--bp-rayon-sm);
	box-shadow: var(--bp-ombre-forte);
	list-style: none;
	margin: 6px 0 0;
	padding: 6px;
	display: none;
	z-index: 10;
}
.bp-menu li:hover > .sub-menu,
.bp-menu li:focus-within > .sub-menu { display: block; }
.bp-menu .sub-menu a { border-radius: 6px; }

.bp-menu-notice {
	display: block;
	font-size: 12px;
	color: var(--bp-ambre-texte);
	background: var(--bp-ambre-clair);
	padding: 6px 10px;
	border-radius: 6px;
	text-decoration: none;
}

.bp-social {
	display: flex;
	align-items: center;
	gap: 6px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.bp-social__link {
	width: 34px;
	height: 34px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: rgba(12, 26, 23, .05);
	color: var(--bp-encre);
	font-family: var(--bp-titre);
	font-weight: 700;
	font-size: 13px;
	text-decoration: none;
	transition: background-color var(--bp-transition), color var(--bp-transition);
}
.bp-social__link:hover { background: var(--bp-vert); color: #fff; }

.bp-header__tel {
	font-family: var(--bp-titre);
	font-variation-settings: "wdth" 105;
	font-weight: 700;
	font-size: 15px;
	color: var(--bp-encre);
	text-decoration: none;
	display: flex;
	align-items: center;
	gap: 7px;
	white-space: nowrap;
}
.bp-header__tel:hover { color: var(--bp-vert-fonce); }

.bp-header__cta { margin-left: 4px; }

/* Bouton hamburger */
.bp-burger {
	display: none;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1.5px solid var(--bp-ligne);
	border-radius: 12px;
	background: var(--bp-surface);
	cursor: pointer;
	align-items: center;
	justify-content: center;
}
.bp-burger__box {
	position: relative;
	display: block;
	width: 18px;
	height: 12px;
}
.bp-burger__bar,
.bp-burger__bar::before,
.bp-burger__bar::after {
	position: absolute;
	left: 0;
	width: 18px;
	height: 2px;
	background: var(--bp-encre);
	border-radius: 2px;
	transition: transform var(--bp-transition), opacity var(--bp-transition);
}
.bp-burger__bar { top: 5px; }
.bp-burger__bar::before { content: ""; top: -5px; }
.bp-burger__bar::after { content: ""; top: 5px; }

.bp-burger[aria-expanded="true"] .bp-burger__bar { background: transparent; }
.bp-burger[aria-expanded="true"] .bp-burger__bar::before { transform: translateY(5px) rotate(45deg); }
.bp-burger[aria-expanded="true"] .bp-burger__bar::after { transform: translateY(-5px) rotate(-45deg); }

/* ============================================================
   6. Hero
   ============================================================ */

/* Photo en plein cadre (posée en ligne par le gabarit), sous un voile
   sombre dégradé : opaque côté texte, plus léger côté configurateur. */
.bp-hero {
	position: relative;
	background-color: var(--bp-asphalte);
	background-size: cover;
	background-position: 62% center;
	background-repeat: no-repeat;
	color: var(--bp-sur-sombre);
	overflow: hidden;
	border-radius: 0 0 var(--bp-rayon-lg) var(--bp-rayon-lg);
}
.bp-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(90% 80% at 85% 10%, rgba(46, 214, 175, .18), transparent 60%),
		linear-gradient(100deg, rgba(12, 26, 23, .96) 0%, rgba(12, 26, 23, .86) 42%, rgba(12, 26, 23, .55) 72%, rgba(12, 26, 23, .35) 100%);
	pointer-events: none;
}
/* Marquage au sol qui traverse le hero. */
.bp-hero::after {
	content: "";
	position: absolute;
	left: -10%;
	right: -10%;
	bottom: 86px;
	height: 6px;
	background: repeating-linear-gradient(
		90deg,
		rgba(231, 241, 237, .14) 0 46px,
		transparent 46px 92px
	);
	transform: rotate(-1.6deg);
	pointer-events: none;
}

.bp-hero__inner {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
	gap: 64px;
	align-items: center;
	padding-block: 96px 128px;
}

.bp-hero__title {
	font-variation-settings: "wdth" 120;
	font-weight: 800;
	font-size: clamp(38px, 6.6vw, 92px);
	letter-spacing: -.032em;
	color: #fff;
	margin-bottom: 22px;
}
.bp-hero__title .bp-accent {
	color: var(--bp-vert-vif);
	white-space: nowrap;
}

.bp-hero__lede {
	font-size: clamp(17px, 1.5vw, 20px);
	color: var(--bp-sur-sombre-2);
	max-width: 46ch;
	margin-bottom: 34px;
}

.bp-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 13px;
	margin-bottom: 40px;
}

.bp-hero__proofs {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 26px;
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: 14.5px;
	color: var(--bp-sur-sombre-2);
}
.bp-hero__proofs li {
	display: flex;
	align-items: center;
	gap: 8px;
}

/* ---------- Configurateur : auto ou moto, puis la formule ---------- */
.bp-config {
	background: var(--bp-surface);
	border-radius: var(--bp-rayon-lg);
	box-shadow: var(--bp-ombre-xl);
	color: var(--bp-texte);
	padding: 22px 22px 20px;
	position: relative;
}
.bp-config__titre {
	font-family: var(--bp-titre);
	font-variation-settings: "wdth" 112;
	font-weight: 800;
	font-size: 18px;
	color: var(--bp-encre);
	margin: 0 0 4px;
}
.bp-config__sous {
	font-size: 13.5px;
	color: var(--bp-texte-faible);
	margin: 0 0 16px;
}
.bp-config__actions { margin: 14px 0 0; }
.bp-config [data-bp-panel][hidden] { display: none !important; }

.bp-seg {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 4px;
	background: var(--bp-fond);
	border: 1px solid var(--bp-ligne);
	border-radius: 999px;
	padding: 4px;
	margin-bottom: 14px;
}
.bp-seg button {
	border: none;
	background: transparent;
	border-radius: 999px;
	padding: 11px 10px;
	cursor: pointer;
	font-family: var(--bp-titre);
	font-variation-settings: "wdth" 105;
	font-weight: 700;
	font-size: 14.5px;
	color: var(--bp-texte);
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	transition: background-color var(--bp-transition), color var(--bp-transition), box-shadow var(--bp-transition);
}
.bp-seg button[aria-pressed="true"] {
	background: var(--bp-encre);
	color: #fff;
	box-shadow: var(--bp-ombre);
}
.bp-seg svg { width: 18px; height: 18px; }

/* Zones explicites : sans elles, l'algorithme de grille place le prix
   (ligne fixée, colonne libre) avant le nom. */
.bp-offre {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	grid-template-areas:
		"nom prix"
		"detail prix";
	gap: 6px 14px;
	align-items: center;
	padding: 14px;
	border: 1.5px solid var(--bp-ligne);
	border-radius: var(--bp-rayon);
	background: var(--bp-surface);
	text-decoration: none;
	color: inherit;
	transition: border-color var(--bp-transition), box-shadow var(--bp-transition), transform var(--bp-transition);
}
.bp-offre + .bp-offre { margin-top: 10px; }
.bp-offre:hover {
	border-color: var(--bp-vert);
	box-shadow: var(--bp-ombre);
	transform: translateY(-1px);
	color: inherit;
}
.bp-offre--vedette {
	border-color: var(--bp-vert);
	background: linear-gradient(180deg, #fff, var(--bp-vert-clair));
}
.bp-offre__nom {
	grid-area: nom;
	font-family: var(--bp-titre);
	font-variation-settings: "wdth" 110;
	font-weight: 700;
	font-size: 16px;
	color: var(--bp-encre);
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
}
.bp-offre__tag {
	font-family: var(--bp-titre);
	font-size: 10.5px;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
	background: var(--bp-ambre);
	color: #2B1400;
	padding: 3px 8px;
	border-radius: 999px;
}
.bp-offre__detail {
	grid-area: detail;
	font-size: 13.5px;
	color: var(--bp-texte);
}
.bp-offre__prix {
	grid-area: prix;
	font-family: var(--bp-titre);
	font-variation-settings: "wdth" 118;
	font-weight: 800;
	font-size: 30px;
	letter-spacing: -.03em;
	color: var(--bp-encre);
	line-height: 1;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
	text-align: right;
}
.bp-offre__prix small {
	display: block;
	font-size: 13px;
	font-weight: 700;
	font-variation-settings: "wdth" 100;
	letter-spacing: 0;
	color: var(--bp-texte-faible);
	margin-bottom: 2px;
}
.bp-offre__eur { font-size: 17px; }

/* ============================================================
   7. Carte de commande
   ============================================================ */

.bp-order-card {
	background: var(--bp-surface);
	border-radius: var(--bp-rayon-lg);
	padding: 24px 26px 26px;
	box-shadow: var(--bp-ombre-xl);
	color: var(--bp-texte);
	position: relative;
}
.bp-hero__media .bp-order-card {
	position: absolute;
	left: -52px;
	right: 34px;
	bottom: -46px;
}

.bp-order-card__ribbon {
	position: absolute;
	top: -13px;
	left: 26px;
	background: var(--bp-ambre);
	color: #2B1400;
	font-family: var(--bp-titre);
	font-variation-settings: "wdth" 100;
	font-size: 11.5px;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
	padding: 6px 14px;
	border-radius: 999px;
}

.bp-order-card__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 14px;
	padding-bottom: 16px;
	margin-bottom: 16px;
	border-bottom: 1px dashed var(--bp-ligne);
}
.bp-order-card__name {
	font-family: var(--bp-titre);
	font-variation-settings: "wdth" 112;
	font-weight: 700;
	font-size: 19px;
	color: var(--bp-encre);
	line-height: 1.2;
}
.bp-order-card__meta {
	font-size: 13.5px;
	color: var(--bp-texte-faible);
	margin: 2px 0 0;
}

.bp-price {
	font-family: var(--bp-titre);
	font-variation-settings: "wdth" 118;
	font-weight: 800;
	font-size: 42px;
	letter-spacing: -.03em;
	color: var(--bp-encre);
	line-height: 1;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}
.bp-price small { font-size: 21px; font-weight: 700; }

.bp-instalments {
	background: var(--bp-ambre-clair);
	color: var(--bp-ambre-texte);
	border-radius: var(--bp-rayon-sm);
	padding: 10px 13px;
	font-size: 13.5px;
	font-weight: 500;
	display: flex;
	align-items: center;
	gap: 9px;
	margin: 0 0 16px;
}
.bp-instalments strong { font-weight: 700; }

.bp-secure-note {
	margin: 13px 0 0;
	font-size: 12px;
	color: var(--bp-texte-faible);
	text-align: center;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
}

/* ============================================================
   8. Sections
   ============================================================ */

.bp-section { padding-block: 96px; }
.bp-section--tight { padding-block: 76px; }

.bp-section--dark {
	background: var(--bp-asphalte);
	color: var(--bp-sur-sombre);
	position: relative;
	overflow: hidden;
}
/* Texture de route très atténuée : la section sombre n'est plus un aplat.
   Le chemin est relatif à cette feuille de style. */
.bp-section--dark::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: url( "../img/pages/formations.jpg" );
	background-size: cover;
	background-position: center;
	opacity: .09;
	pointer-events: none;
}
/* Le contenu repasse au-dessus de la texture. */
.bp-section--dark > * {
	position: relative;
	z-index: 1;
}
.bp-section--dark .bp-section__title,
.bp-section--dark h2,
.bp-section--dark h3 { color: #fff; }
.bp-section--dark .bp-section__lede,
.bp-section--dark p { color: var(--bp-sur-sombre-2); }

.bp-section--light { background: var(--bp-surface); }

.bp-section__narrow {
	max-width: 780px;
}

.bp-section__head {
	max-width: 62ch;
	margin-bottom: 44px;
}

.bp-section__title {
	font-size: clamp(30px, 3.9vw, 46px);
	letter-spacing: -.025em;
	margin-bottom: 14px;
}

.bp-section__lede {
	font-size: 17.5px;
	margin: 0;
}

.bp-section__note {
	margin-top: 26px;
	font-size: 13.5px;
	color: var(--bp-texte-faible);
	max-width: 78ch;
}
.bp-section--dark .bp-section__note { color: var(--bp-sur-sombre-2); }

/* ============================================================
   9. Chiffres clés — cadrans de tableau de bord
   ============================================================ */

.bp-stats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.bp-stats__item {
	background: var(--bp-surface);
	border: 1px solid var(--bp-ligne);
	border-radius: var(--bp-rayon);
	padding: 26px 22px;
	text-align: center;
	transition: transform var(--bp-transition), box-shadow var(--bp-transition), border-color var(--bp-transition);
}
.bp-stats__item:hover {
	transform: translateY(-3px);
	box-shadow: var(--bp-ombre-forte);
	border-color: transparent;
}

/* Le balisage utilise un <span> : sans `display: block`, largeur, hauteur
   et marges automatiques sont ignorées, le SVG s'étire sur toute la
   largeur et le nombre part hors du cadran. */
.bp-gauge {
	display: block;
	position: relative;
	/* 150 px : à cette taille, l'intérieur du demi-cercle offre 104 px de
	   large à la hauteur du nombre, contre 90 px pour « 25 000+ ». */
	width: 164px;
	margin: 0 auto 12px;
}
/* `height: auto` laisse le ratio du viewBox fixer la hauteur : plus d'écart
   entre la boîte et le dessin, donc plus de décalage à rattraper. */
.bp-gauge svg {
	display: block;
	width: 100%;
	height: auto;
	overflow: visible;
}

.bp-stats__value {
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	/* La ligne de base de l'arc est à y=60 sur les 68 du viewBox, soit
	   11,8 % de la hauteur. On pose le nombre juste au-dessus. */
	bottom: 21%;
	white-space: nowrap;
	text-align: center;
	/* Sans hauteur de ligne fixe, celle du corps de page (1,65) décale
	   le nombre de plus de dix pixels vers le bas. */
	line-height: 1;
	font-family: var(--bp-titre);
	font-variation-settings: "wdth" 108;
	font-weight: 800;
	font-size: 21px;
	letter-spacing: -.03em;
	color: var(--bp-encre);
	font-variant-numeric: tabular-nums;
}

.bp-stats__label {
	display: block;
	font-size: 13.5px;
	color: var(--bp-texte-faible);
	font-weight: 500;
}

/* ============================================================
   10. Grilles et cartes
   ============================================================ */

.bp-grid {
	display: grid;
	gap: 22px;
}
.bp-grid--formations { grid-template-columns: repeat(3, 1fr); }
.bp-grid--formules   { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.bp-grid--atouts     { grid-template-columns: repeat(3, 1fr); }
.bp-grid--temoignages { grid-template-columns: repeat(3, 1fr); }

.bp-card {
	position: relative;
	background: var(--bp-surface);
	border: 1px solid var(--bp-ligne);
	border-radius: var(--bp-rayon);
	transition: transform var(--bp-transition), box-shadow var(--bp-transition), border-color var(--bp-transition);
}

/* --- Plaque de formation --- */
.bp-card--formation {
	display: flex;
	flex-direction: column;
	padding: 0;
	overflow: hidden;
	text-decoration: none;
	color: inherit;
}
.bp-card--formation::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 100%;
	height: 4px;
	background: var(--bp-vert);
	z-index: 2;
	transition: right .32s cubic-bezier(.22, .8, .3, 1);
}
.bp-card--formation:hover {
	transform: translateY(-4px);
	box-shadow: var(--bp-ombre-forte);
	border-color: transparent;
}
.bp-card--formation:hover::before { right: 0; }

.bp-card__photo {
	display: block;
	height: 158px;
	background-color: var(--bp-asphalte-2);
	background-size: cover;
	background-position: center;
	position: relative;
	overflow: hidden;
}
.bp-card__photo::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(12, 26, 23, .10) 0%, rgba(12, 26, 23, .42) 100%);
	transition: opacity .3s ease;
}
.bp-card--formation:hover .bp-card__photo::after { opacity: .65; }

.bp-card__body {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 0 24px 24px;
}

.bp-card__icon {
	width: 50px;
	height: 50px;
	border-radius: 14px;
	background: var(--bp-surface);
	color: var(--bp-vert-fonce);
	display: grid;
	place-items: center;
	margin: -25px 0 15px;
	position: relative;
	z-index: 2;
	box-shadow: var(--bp-ombre);
	transition: background-color var(--bp-transition), color var(--bp-transition);
}
.bp-card--formation:hover .bp-card__icon {
	background: var(--bp-vert);
	color: #fff;
}
.bp-card__icon svg { width: 24px; height: 24px; }

.bp-card__title {
	font-size: 19px;
	font-variation-settings: "wdth" 110;
	margin: 0 0 7px;
}
.bp-card__title a { text-decoration: none; color: inherit; }

.bp-card__text {
	font-size: 15px;
	color: var(--bp-texte);
	margin: 0;
}

.bp-card__foot {
	margin-top: auto;
	padding-top: 18px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}
.bp-card__from {
	font-family: var(--bp-titre);
	font-variation-settings: "wdth" 112;
	font-weight: 700;
	font-size: 15px;
	color: var(--bp-encre);
	font-variant-numeric: tabular-nums;
}
.bp-card__from span {
	color: var(--bp-texte-faible);
	font-weight: 400;
	font-size: 13px;
}
.bp-card__arrow {
	font-family: var(--bp-titre);
	font-weight: 700;
	font-size: 14px;
	color: var(--bp-vert-fonce);
	display: flex;
	align-items: center;
	gap: 6px;
	transition: gap var(--bp-transition);
}
.bp-card--formation:hover .bp-card__arrow { gap: 10px; }

/* --- Carte atout --- */
.bp-card--atout {
	padding: 28px 26px;
}
.bp-card--atout .bp-card__icon {
	margin: 0 0 16px;
	background: var(--bp-vert-clair);
	box-shadow: none;
}
.bp-card--atout:hover {
	transform: translateY(-3px);
	box-shadow: var(--bp-ombre-forte);
	border-color: transparent;
}

/* --- Carte formule --- */
.bp-card--formule {
	display: flex;
	flex-direction: column;
	border-radius: var(--bp-rayon-lg);
	padding: 30px;
}
.bp-card--formule:hover {
	transform: translateY(-3px);
	box-shadow: var(--bp-ombre-forte);
}
.bp-card--formule.is-featured {
	border-color: transparent;
	box-shadow: var(--bp-ombre-haute);
	outline: 2px solid var(--bp-vert);
	outline-offset: -2px;
}
.bp-card--formule .bp-card__title {
	font-size: 23px;
	font-variation-settings: "wdth" 112;
	margin-bottom: 6px;
}

.bp-card__badge {
	position: absolute;
	top: 22px;
	right: 24px;
	background: var(--bp-vert-clair);
	color: var(--bp-vert-fonce);
	font-family: var(--bp-titre);
	font-variation-settings: "wdth" 100;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
	padding: 6px 12px;
	border-radius: 999px;
}

.bp-card__desc {
	font-size: 14.5px;
	color: var(--bp-texte-faible);
	margin: 0 0 22px;
	max-width: 34ch;
}

.bp-card__price {
	display: flex;
	align-items: baseline;
	gap: 10px;
	padding-bottom: 20px;
	margin: 0 0 20px;
	border-bottom: 1px dashed var(--bp-ligne);
}
.bp-card__price strong {
	font-family: var(--bp-titre);
	font-variation-settings: "wdth" 118;
	font-weight: 800;
	font-size: 42px;
	letter-spacing: -.03em;
	color: var(--bp-encre);
	line-height: 1;
	font-variant-numeric: tabular-nums;
}
.bp-card__price-note {
	font-size: 13.5px;
	color: var(--bp-texte-faible);
	order: 2;
}

.bp-card__list {
	list-style: none;
	margin: 0 0 24px;
	padding: 0;
	display: grid;
	gap: 10px;
}
.bp-card__list li {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 15px;
}
.bp-card__list .bp-coche { margin-top: 2px; }

.bp-card__cta {
	margin: auto 0 0;
	display: grid;
	gap: 9px;
}

/* --- Témoignage --- */
.bp-card--temoignage {
	background: var(--bp-fond);
	border-color: transparent;
	padding: 28px 26px;
	display: flex;
	flex-direction: column;
}
.bp-section--light .bp-card--temoignage { background: var(--bp-fond); }

.bp-stars {
	color: var(--bp-ambre);
	font-size: 15px;
	letter-spacing: 2px;
	margin: 0 0 14px;
}
.bp-card--temoignage blockquote {
	margin: 0 0 20px;
	font-size: 16.5px;
	color: var(--bp-encre);
	line-height: 1.6;
}
.bp-author {
	margin-top: auto;
	display: flex;
	align-items: center;
	gap: 12px;
}
.bp-author__badge {
	width: 40px;
	height: 40px;
	flex: none;
	border-radius: 50%;
	background: var(--bp-vert);
	color: #fff;
	display: grid;
	place-items: center;
	font-family: var(--bp-titre);
	font-weight: 800;
	font-size: 15px;
	overflow: hidden;
}
.bp-author__badge img { width: 100%; height: 100%; object-fit: cover; }
.bp-author__name {
	font-weight: 700;
	color: var(--bp-encre);
	font-size: 15px;
	line-height: 1.3;
	display: block;
}
.bp-author__meta {
	font-size: 13px;
	color: var(--bp-texte-faible);
	display: block;
}

/* ============================================================
   11. Parcours en quatre étapes
   ============================================================ */

.bp-steps {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0;
	position: relative;
	list-style: none;
	margin: 0;
	padding: 0;
}
/* La route qui relie les étapes. */
.bp-steps::before {
	content: "";
	position: absolute;
	top: 27px;
	left: 8%;
	right: 8%;
	height: 3px;
	background: repeating-linear-gradient(
		90deg,
		rgba(231, 241, 237, .22) 0 16px,
		transparent 16px 32px
	);
}

.bp-step {
	position: relative;
	padding: 0 18px;
}
.bp-step__num {
	position: relative;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--bp-asphalte-2);
	border: 2px solid var(--bp-ligne-sombre);
	color: var(--bp-vert-vif);
	display: grid;
	place-items: center;
	font-family: var(--bp-titre);
	font-variation-settings: "wdth" 115;
	font-weight: 800;
	font-size: 18px;
	margin-bottom: 20px;
	font-variant-numeric: tabular-nums;
}
.bp-step:first-child .bp-step__num {
	background: var(--bp-vert);
	border-color: var(--bp-vert);
	color: #06120F;
}
.bp-step h3 {
	font-size: 18px;
	margin: 0 0 8px;
	font-variation-settings: "wdth" 110;
}
.bp-step p {
	font-size: 15px;
	margin: 0;
}

/* ============================================================
   12. Onglets de tarifs
   ============================================================ */

.bp-tabs-bar {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 20px;
	margin-bottom: 34px;
}
.bp-tabs-bar .bp-section__head { margin-bottom: 0; }

.bp-tabs {
	display: inline-flex;
	background: var(--bp-surface);
	border: 1px solid var(--bp-ligne);
	border-radius: 999px;
	padding: 5px;
	gap: 4px;
}
.bp-tab {
	border: none;
	background: transparent;
	font-family: var(--bp-titre);
	font-variation-settings: "wdth" 105;
	font-weight: 700;
	font-size: 14.5px;
	color: var(--bp-texte);
	padding: 10px 22px;
	border-radius: 999px;
	cursor: pointer;
	transition: background-color var(--bp-transition), color var(--bp-transition);
}
.bp-tab[aria-selected="true"] { background: var(--bp-encre); color: #fff; }
.bp-tab:not([aria-selected="true"]):hover {
	background: rgba(12, 26, 23, .05);
	color: var(--bp-encre);
}

/* ============================================================
   13. Bandeau d'appel à l'action
   ============================================================ */

.bp-cta { padding-block: 0 96px; }

.bp-cta__inner {
	position: relative;
	border-radius: var(--bp-rayon-lg);
	padding: 64px 48px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 40px;
	flex-wrap: wrap;
	overflow: hidden;
	background-color: var(--bp-vert-fonce);
	background-size: cover;
	background-position: 62% center;
	color: #fff;
}
.bp-cta__inner::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(100deg, rgba(10, 60, 51, .94) 0%, rgba(15, 110, 93, .86) 46%, rgba(10, 40, 35, .62) 100%);
}
.bp-cta__text,
.bp-cta__actions { position: relative; z-index: 1; }

.bp-cta__title {
	color: #fff;
	font-size: clamp(28px, 3.4vw, 40px);
	letter-spacing: -.025em;
	margin: 0 0 10px;
}
.bp-cta__lede {
	color: rgba(255, 255, 255, .86);
	font-size: 17px;
	margin: 0;
}
.bp-cta__actions {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
	margin: 0;
}

/* ============================================================
   14. Pages courantes
   ============================================================ */

.bp-page__header {
	background-color: var(--bp-asphalte);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	color: var(--bp-sur-sombre);
	padding-block: 92px;
	margin-bottom: 64px;
	border-radius: 0 0 var(--bp-rayon-lg) var(--bp-rayon-lg);
	position: relative;
	overflow: hidden;
}
/* Voile de lisibilité : le titre doit rester lisible quelle que soit la
   photo posée derrière, y compris une photo claire. */
.bp-page__header::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(120% 100% at 80% 0%, rgba(46, 214, 175, .16), transparent 62%),
		linear-gradient(100deg, rgba(12, 26, 23, .95) 0%, rgba(12, 26, 23, .82) 50%, rgba(12, 26, 23, .60) 100%);
	pointer-events: none;
}
.bp-page__header > * { position: relative; z-index: 1; }

/* Par défaut sur fond clair : la 404 place ces éléments hors de l'en-tête. */
.bp-page__title {
	color: var(--bp-encre);
	font-variation-settings: "wdth" 116;
	font-size: clamp(32px, 4.6vw, 56px);
	letter-spacing: -.028em;
	margin: 0 0 12px;
}
.bp-page__lede {
	color: var(--bp-texte);
	font-size: clamp(16px, 1.4vw, 19px);
	max-width: 56ch;
	margin: 0;
}

/* Dans l'en-tête sombre, on inverse. */
.bp-page__header .bp-page__title { color: #fff; }
.bp-page__header .bp-page__lede { color: var(--bp-sur-sombre-2); }

.bp-page__eyebrow {
	font-family: var(--bp-titre);
	font-variation-settings: "wdth" 100;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--bp-ambre-texte);
	margin: 0 0 14px;
}


.bp-404__links {
	list-style: none;
	margin: 28px 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}
.bp-404__links a {
	display: inline-flex;
	align-items: center;
	font-family: var(--bp-titre);
	font-weight: 700;
	font-size: 14.5px;
	color: var(--bp-encre);
	text-decoration: none;
	background: var(--bp-surface);
	border: 1.5px solid var(--bp-ligne);
	border-radius: 999px;
	padding: 11px 20px;
	transition: border-color var(--bp-transition), box-shadow var(--bp-transition);
}
.bp-404__links a:hover {
	border-color: var(--bp-vert);
	box-shadow: var(--bp-ombre);
}

/* Visuel mis à la une d'une page ou d'une formation. */
.bp-page__media {
	margin: 0 0 56px;
}
.bp-page__media img {
	width: 100%;
	border-radius: var(--bp-rayon-lg);
	box-shadow: var(--bp-ombre-forte);
	display: block;
}

.bp-page__terms {
	margin-top: 28px;
	font-size: 14px;
	color: var(--bp-texte-faible);
}

/* Fin de page : sans bandeau d'appel, il faut un peu d'air. */
.bp-page { padding-bottom: 8px; }

.bp-empty {
	background: var(--bp-surface);
	border: 1px dashed var(--bp-ligne);
	border-radius: var(--bp-rayon);
	padding: 40px 28px;
	text-align: center;
	color: var(--bp-texte-faible);
	margin-bottom: 28px;
}

/* Listes d'articles */
.bp-grid--posts { grid-template-columns: repeat(3, 1fr); }

.bp-card--post {
	display: flex;
	flex-direction: column;
	padding: 0;
	overflow: hidden;
}
.bp-card--post:hover {
	transform: translateY(-3px);
	box-shadow: var(--bp-ombre-forte);
	border-color: transparent;
}
.bp-card__media { display: block; }
.bp-card__media img {
	display: block;
	width: 100%;
	height: 190px;
	object-fit: cover;
}
.bp-card--post .bp-card__title { padding: 22px 24px 0; }
.bp-card--post .bp-card__text { padding: 0 24px 24px; }

/* Pagination */
.bp-pagination {
	margin: 44px 0 0;
}
.bp-pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
}
.bp-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 42px;
	padding: 0 14px;
	border-radius: 999px;
	border: 1.5px solid var(--bp-ligne);
	background: var(--bp-surface);
	font-family: var(--bp-titre);
	font-weight: 700;
	font-size: 14.5px;
	color: var(--bp-encre);
	text-decoration: none;
	transition: border-color var(--bp-transition), background-color var(--bp-transition), color var(--bp-transition);
}
.bp-pagination .page-numbers:hover { border-color: var(--bp-vert); }
.bp-pagination .page-numbers.current {
	background: var(--bp-encre);
	border-color: var(--bp-encre);
	color: #fff;
}
.bp-pagination .page-numbers.dots {
	border-color: transparent;
	background: transparent;
}

/* Pied de page : compléments */
.bp-footer__hours {
	margin-top: 16px;
	font-size: 14px;
	color: var(--bp-sur-sombre-2);
}
.bp-footer__widgets { margin-top: 20px; }

/* Bloc « dossier élève » dans l'écran de commande en admin. */
.bp-order-extra { margin-top: 16px; }
.bp-order-extra h4 { margin: 0 0 8px; }

.bp-prose {
	font-size: 17px;
}
.bp-prose > * + * { margin-top: 1.1em; }
.bp-prose h2 { font-size: clamp(24px, 2.6vw, 32px); margin-top: 1.6em; }
.bp-prose h3 { font-size: 21px; margin-top: 1.4em; }
.bp-prose ul,
.bp-prose ol { padding-left: 1.3em; }
.bp-prose li + li { margin-top: .4em; }
.bp-prose img { border-radius: var(--bp-rayon); }
.bp-prose blockquote {
	margin: 1.6em 0;
	padding: 4px 0 4px 22px;
	border-left: 3px solid var(--bp-vert);
	color: var(--bp-encre);
	font-size: 19px;
}

.bp-prose--columns { columns: 2; column-gap: 48px; }
.bp-prose--columns > * { break-inside: avoid; }
.bp-prose--columns > *:first-child { margin-top: 0; }

/* ============================================================
   15. Formulaires
   ============================================================ */

.bp-form { display: grid; gap: 18px; max-width: 640px; }

.bp-form__row {
	display: grid;
	gap: 6px;
	margin: 0;
}
.bp-form__row label,
.bp-form label {
	font-family: var(--bp-titre);
	font-variation-settings: "wdth" 105;
	font-size: 13.5px;
	font-weight: 700;
	color: var(--bp-encre);
}
/* L'astérisque des champs obligatoires. */
.bp-form__row label span[aria-hidden] { color: var(--bp-ambre-texte); }

/* Deux champs côte à côte, empilés en mobile. */
.bp-form__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px;
}

/* Piège à robots : invisible, mais pas via `display:none`,
   que certains automates savent contourner. */
.bp-form__trap {
	position: absolute !important;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.bp-form__legal {
	font-size: 13px;
	color: var(--bp-texte-faible);
	margin: 0;
}

.bp-form__submit { margin: 4px 0 0; }

.bp-form__notice {
	border-radius: var(--bp-rayon-sm);
	padding: 14px 16px;
	font-size: 15px;
	margin: 0 0 4px;
}
.bp-form__notice--ok    { background: var(--bp-succes-clair); color: var(--bp-succes); }
.bp-form__notice--error { background: var(--bp-erreur-clair); color: var(--bp-erreur); }

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="password"],
input[type="search"],
input[type="url"],
input[type="date"],
input[type="number"],
select,
textarea {
	width: 100%;
	font-family: var(--bp-corps);
	font-size: 16px;
	color: var(--bp-encre);
	background: var(--bp-surface);
	border: 1.5px solid var(--bp-ligne);
	border-radius: var(--bp-rayon-sm);
	padding: 13px 15px;
	transition: border-color var(--bp-transition), box-shadow var(--bp-transition);
}
input:focus,
select:focus,
textarea:focus {
	outline: none;
	border-color: var(--bp-vert);
	box-shadow: 0 0 0 3px rgba(27, 156, 133, .16);
}
textarea { min-height: 150px; resize: vertical; }

/* Coordonnées */

.bp-coords { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.bp-coords__item {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 16px;
}
.bp-coords__item a { text-decoration: none; font-weight: 500; }
.bp-coords__item::before {
	content: "";
	width: 8px;
	height: 8px;
	flex: none;
	border-radius: 2px;
	background: var(--bp-vert);
}

/* Page contact : le texte à gauche, le formulaire à droite. */
.bp-contact {
	display: grid;
	grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
	gap: 56px;
	align-items: start;
}
.bp-contact__form {
	background: var(--bp-surface);
	border: 1px solid var(--bp-ligne);
	border-radius: var(--bp-rayon-lg);
	padding: 32px;
	box-shadow: var(--bp-ombre);
}
.bp-contact__form .bp-form { max-width: none; }
.bp-contact__subtitle {
	font-size: 20px;
	margin: 28px 0 12px;
}
.bp-contact__intro .bp-prose + .bp-contact__subtitle,
.bp-contact__form > .bp-contact__subtitle:first-child { margin-top: 0; }

/* ============================================================
   16. WooCommerce
   ============================================================ */

.woocommerce-notices-wrapper:empty { display: none; }

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	list-style: none;
	border-radius: var(--bp-rayon-sm);
	padding: 15px 18px;
	margin: 0 0 24px;
	font-size: 15px;
	border-left: 4px solid var(--bp-vert);
	background: var(--bp-vert-clair);
	color: var(--bp-vert-fonce);
}
.woocommerce-error {
	border-left-color: var(--bp-erreur);
	background: var(--bp-erreur-clair);
	color: var(--bp-erreur);
}
.woocommerce-message .button,
.woocommerce-info .button { float: right; }

/* Boutons WooCommerce alignés sur ceux du thème. */
.woocommerce .button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.wc-block-components-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	font-family: var(--bp-titre);
	font-variation-settings: "wdth" 105;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.2;
	padding: 15px 26px;
	border: 1.5px solid transparent;
	border-radius: 999px;
	background: var(--bp-vert);
	color: #fff;
	text-decoration: none;
	cursor: pointer;
	transition: transform var(--bp-transition), box-shadow var(--bp-transition), background-color var(--bp-transition);
}
.woocommerce .button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover {
	background: var(--bp-vert-fonce);
	color: #fff;
	transform: translateY(-2px);
	box-shadow: 0 10px 24px rgba(27, 156, 133, .3);
}

.woocommerce #payment #place_order,
.woocommerce-checkout #place_order {
	background: var(--bp-ambre);
	color: #2B1400;
	width: 100%;
	font-size: 16px;
	padding: 17px 26px;
}
.woocommerce #payment #place_order:hover,
.woocommerce-checkout #place_order:hover {
	background: #F07F14;
	color: #2B1400;
	box-shadow: 0 10px 24px rgba(255, 138, 31, .36);
}

/* Panier et commande */
.woocommerce table.shop_table {
	width: 100%;
	border: 1px solid var(--bp-ligne);
	border-radius: var(--bp-rayon);
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
	background: var(--bp-surface);
	margin-bottom: 28px;
}
.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
	padding: 16px 18px;
	text-align: left;
	border-bottom: 1px solid var(--bp-ligne);
	font-size: 15px;
}
.woocommerce table.shop_table th {
	font-family: var(--bp-titre);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--bp-texte-faible);
	background: var(--bp-fond);
}
.woocommerce table.shop_table tr:last-child td { border-bottom: none; }
.woocommerce table.shop_table .amount {
	font-family: var(--bp-titre);
	font-weight: 700;
	color: var(--bp-encre);
	font-variant-numeric: tabular-nums;
}

.woocommerce .cart_totals h2,
.woocommerce-checkout h3,
.woocommerce-billing-fields h3,
.woocommerce-additional-fields h3,
#order_review_heading {
	font-family: var(--bp-titre);
	font-size: 21px;
	margin: 0 0 18px;
}

.woocommerce-checkout .col2-set {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0;
}
.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 { width: 100%; float: none; }

.woocommerce form .form-row {
	display: grid;
	gap: 6px;
	margin: 0 0 16px;
	padding: 0;
}
.woocommerce form .form-row label {
	font-family: var(--bp-titre);
	font-size: 13.5px;
	font-weight: 700;
	color: var(--bp-encre);
}
.woocommerce form .form-row .required { color: var(--bp-ambre-texte); text-decoration: none; }
.woocommerce form .form-row-first,
.woocommerce form .form-row-last { width: 100%; float: none; }

.woocommerce-checkout #payment {
	background: var(--bp-fond);
	border: 1px solid var(--bp-ligne);
	border-radius: var(--bp-rayon);
	padding: 24px;
}
.woocommerce-checkout #payment ul.payment_methods {
	list-style: none;
	margin: 0 0 20px;
	padding: 0 0 20px;
	border-bottom: 1px dashed var(--bp-ligne);
	display: grid;
	gap: 12px;
}
.woocommerce-checkout #payment ul.payment_methods li {
	background: var(--bp-surface);
	border: 1.5px solid var(--bp-ligne);
	border-radius: var(--bp-rayon-sm);
	padding: 14px 16px;
}
.woocommerce-checkout #payment div.payment_box {
	background: transparent;
	padding: 10px 0 0;
	font-size: 14px;
	color: var(--bp-texte);
}
.woocommerce-checkout #payment div.payment_box::before { display: none; }

/* Boutique */
.woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 22px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.woocommerce ul.products li.product {
	background: var(--bp-surface);
	border: 1px solid var(--bp-ligne);
	border-radius: var(--bp-rayon);
	padding: 24px;
	margin: 0;
	width: auto;
	float: none;
	text-align: left;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--bp-titre);
	font-size: 19px;
	padding: 0;
	margin: 0 0 8px;
}
.woocommerce ul.products li.product .price {
	font-family: var(--bp-titre);
	font-weight: 800;
	font-size: 24px;
	color: var(--bp-encre);
}

.woocommerce div.product .product_title {
	font-family: var(--bp-titre);
	font-size: clamp(28px, 3.4vw, 40px);
}
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	font-family: var(--bp-titre);
	font-weight: 800;
	font-size: 34px;
	color: var(--bp-encre);
}

.woocommerce .quantity input.qty { width: 84px; text-align: center; }

/* Le mode « service » cache les éléments sans objet pour une formation. */
body.bp-service-checkout .woocommerce-shipping-fields,
body.bp-service-checkout .shipping,
body.bp-service-checkout .woocommerce-shipping-totals { display: none !important; }

/* ============================================================
   17. Pied de page
   ============================================================ */

.bp-footer {
	background: var(--bp-asphalte);
	color: var(--bp-sur-sombre-2);
	padding-block: 62px 34px;
	margin-top: 96px;
}
.bp-footer a { color: var(--bp-sur-sombre-2); text-decoration: none; }
.bp-footer a:hover { color: var(--bp-vert-vif); }

.bp-footer__grid {
	display: grid;
	grid-template-columns: 1.6fr 1fr 1fr 1fr;
	gap: 40px;
	padding-bottom: 38px;
	border-bottom: 1px solid var(--bp-ligne-sombre);
}
.bp-footer .bp-brand { color: #fff; margin-bottom: 14px; }
.bp-footer .bp-brand:hover { color: #fff; }
.bp-footer__grid p { font-size: 14.5px; max-width: 34ch; }

.bp-footer__title,
.bp-widget__title {
	font-family: var(--bp-titre);
	font-variation-settings: "wdth" 105;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: #fff;
	margin: 0 0 16px;
}

.bp-footer__links {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 10px;
}
.bp-footer__links a { font-size: 14.5px; }

.bp-footer__bottom {
	padding-top: 24px;
	display: flex;
	justify-content: space-between;
	gap: 18px;
	flex-wrap: wrap;
	font-size: 13.5px;
}
.bp-footer .bp-social__link {
	background: rgba(231, 241, 237, .08);
	color: var(--bp-sur-sombre);
}
.bp-footer .bp-social__link:hover { background: var(--bp-vert); color: #fff; }

.bp-widget { margin-bottom: 26px; }

/* ============================================================
   18. Barre de commande collante
   ============================================================ */

/* Cachée en haut de page, elle apparaît une fois le hero dépassé.
   En mobile, la feuille de style la garde toujours visible. */
.bp-barre {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 70;
	background: rgba(255, 255, 255, .97);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	border-top: 1px solid var(--bp-ligne);
	transform: translateY(110%);
	transition: transform .32s cubic-bezier(.22, .8, .3, 1);
}
.bp-barre.is-visible { transform: none; }
.bp-barre__inner {
	display: flex;
	align-items: center;
	gap: 14px;
	min-height: 68px;
	padding-bottom: env(safe-area-inset-bottom);
}
.bp-barre__offre {
	display: flex;
	align-items: center;
	gap: 18px;
	margin-right: auto;
	min-width: 0;
}
.bp-barre__offre[hidden] { display: none; }
.bp-barre__texte {
	font-size: 14.5px;
	color: var(--bp-texte);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.bp-barre__texte b {
	font-family: var(--bp-titre);
	font-weight: 700;
	color: var(--bp-encre);
}
.bp-barre__prix {
	font-family: var(--bp-titre);
	font-variation-settings: "wdth" 115;
	font-weight: 800;
	font-size: 22px;
	color: var(--bp-encre);
	letter-spacing: -.02em;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}
.bp-barre .bp-btn { padding: 11px 18px; font-size: 14px; }

/* ============================================================
   19. Apparitions au défilement
   ============================================================ */

.bp-reveal {
	opacity: 0;
	transform: translateY(30px) scale(.985);
	transition: opacity .75s cubic-bezier(.22, .8, .3, 1), transform .75s cubic-bezier(.22, .8, .3, 1);
}
.bp-reveal.is-visible {
	opacity: 1;
	transform: none;
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*,
	*::before,
	*::after {
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
	}
	.bp-reveal { opacity: 1; transform: none; }
}

/* ============================================================
   22. Bandeau de confiance
   ============================================================ */

.bp-confiance {
	margin-top: -34px;
	position: relative;
	z-index: 2;
}
.bp-confiance__inner {
	background: var(--bp-surface);
	border: 1px solid var(--bp-ligne);
	border-radius: var(--bp-rayon);
	box-shadow: var(--bp-ombre-forte);
	display: grid;
	grid-template-columns: repeat(4, 1fr);
}
.bp-confiance__item {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 18px 22px;
	font-size: 14.5px;
	color: var(--bp-texte);
}
.bp-confiance__item + .bp-confiance__item { border-left: 1px solid var(--bp-ligne); }
.bp-confiance__item strong {
	display: block;
	font-family: var(--bp-titre);
	font-variation-settings: "wdth" 108;
	font-weight: 700;
	font-size: 15px;
	color: var(--bp-encre);
}
.bp-confiance__ico {
	width: 38px;
	height: 38px;
	flex: none;
	border-radius: 11px;
	background: var(--bp-vert-clair);
	color: var(--bp-vert-fonce);
	display: grid;
	place-items: center;
}
.bp-confiance__ico svg { width: 19px; height: 19px; }

/* ============================================================
   23. Comparateur de formules et conseil
   ============================================================ */

.bp-compare .bp-card--formule { padding: 34px 32px 30px; }
.bp-compare .bp-card__badge {
	top: -13px;
	left: 28px;
	right: auto;
	background: var(--bp-ambre);
	color: #2B1400;
	font-size: 11.5px;
	letter-spacing: .12em;
	padding: 6px 14px;
}
/* Le prix en très grand : c'est l'information numéro un de la carte. */
.bp-grand-prix strong {
	font-variation-settings: "wdth" 120;
	font-size: 62px;
	letter-spacing: -.04em;
}
.bp-grand-prix strong small { font-size: 26px; font-weight: 700; }
.bp-compare .bp-card__list li { align-items: flex-start; }
.bp-card__list small {
	display: block;
	font-size: 13px;
	color: var(--bp-texte-faible);
	margin-top: 1px;
}

/* Le repère que tout le monde a en tête : le minimum réglementaire. */
.bp-conseil {
	margin-top: 22px;
	background: var(--bp-fond);
	border: 1px solid var(--bp-ligne);
	border-radius: var(--bp-rayon-lg);
	padding: 28px 30px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 22px 40px;
}
.bp-section--light .bp-conseil { background: var(--bp-fond); }
.bp-conseil__titre {
	grid-column: 1 / -1;
	font-family: var(--bp-titre);
	font-variation-settings: "wdth" 112;
	font-weight: 800;
	font-size: 20px;
	color: var(--bp-encre);
	margin: 0;
}
.bp-conseil__col { font-size: 15px; }
.bp-conseil__col b {
	display: flex;
	align-items: center;
	gap: 9px;
	font-family: var(--bp-titre);
	font-variation-settings: "wdth" 108;
	font-weight: 700;
	font-size: 15.5px;
	color: var(--bp-encre);
	margin-bottom: 6px;
}
.bp-conseil__puce {
	width: 10px;
	height: 10px;
	border-radius: 3px;
	background: var(--bp-vert);
	flex: none;
}
.bp-conseil__puce--ambre { background: var(--bp-ambre); }
.bp-conseil__verdict {
	grid-column: 1 / -1;
	display: flex;
	gap: 14px;
	align-items: flex-start;
	background: var(--bp-ambre-clair);
	border-radius: var(--bp-rayon);
	padding: 16px 18px;
	color: var(--bp-ambre-texte);
	font-size: 15px;
	margin: 0;
}
.bp-conseil__verdict strong {
	font-family: var(--bp-titre);
	font-weight: 800;
	color: var(--bp-ambre-texte);
	white-space: nowrap;
}

/* ============================================================
   24. Témoignage en grand
   ============================================================ */

.bp-temoin {
	position: relative;
	border-radius: var(--bp-rayon-lg);
	overflow: hidden;
	color: #fff;
	background-color: var(--bp-vert-fonce);
	background-size: cover;
	background-position: center;
	padding: 72px 56px;
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr);
	gap: 48px;
	align-items: end;
}
.bp-temoin::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(100deg, rgba(10, 60, 51, .95) 0%, rgba(12, 26, 23, .86) 55%, rgba(12, 26, 23, .55) 100%);
}
.bp-temoin > * { position: relative; z-index: 1; }
.bp-temoin__guillemet {
	display: block;
	font-family: var(--bp-titre);
	font-variation-settings: "wdth" 125;
	font-weight: 800;
	font-size: 110px;
	line-height: .6;
	color: var(--bp-vert-vif);
	margin-bottom: 18px;
}
.bp-temoin blockquote {
	margin: 0 0 22px;
	font-family: var(--bp-titre);
	font-variation-settings: "wdth" 108;
	font-weight: 600;
	font-size: clamp(24px, 2.8vw, 36px);
	line-height: 1.22;
	letter-spacing: -.02em;
	color: #fff;
	text-wrap: balance;
}
.bp-temoin__auteur {
	display: flex;
	align-items: center;
	gap: 12px;
	color: var(--bp-sur-sombre-2);
	font-size: 15px;
}
.bp-temoin__auteur b { color: #fff; font-family: var(--bp-titre); font-weight: 700; }
.bp-temoin__pastille {
	width: 42px;
	height: 42px;
	flex: none;
	border-radius: 50%;
	background: var(--bp-vert);
	color: #fff;
	display: grid;
	place-items: center;
	font-family: var(--bp-titre);
	font-weight: 800;
}
.bp-temoin__google {
	background: rgba(255, 255, 255, .08);
	border: 1px solid rgba(255, 255, 255, .18);
	border-radius: var(--bp-rayon);
	padding: 24px;
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}
.bp-temoin__label {
	font-family: var(--bp-titre);
	font-variation-settings: "wdth" 105;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--bp-vert-vif);
	margin: 0 0 8px;
}
.bp-temoin__google p { color: var(--bp-sur-sombre-2); font-size: 14.5px; margin: 0 0 14px; }
.bp-temoin__google p:last-child { margin-bottom: 0; }
.bp-btn--sm { padding: 11px 18px; font-size: 14px; }

/* ============================================================
   25. Questions fréquentes
   ============================================================ */

.bp-faq { max-width: 820px; }
.bp-faq details {
	background: var(--bp-surface);
	border: 1px solid var(--bp-ligne);
	border-radius: var(--bp-rayon);
	margin-bottom: 10px;
	overflow: hidden;
}
.bp-faq summary {
	list-style: none;
	cursor: pointer;
	padding: 20px 24px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	font-family: var(--bp-titre);
	font-variation-settings: "wdth" 108;
	font-weight: 700;
	font-size: 17px;
	color: var(--bp-encre);
}
.bp-faq summary::-webkit-details-marker { display: none; }
.bp-faq summary::after {
	content: "+";
	flex: none;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: var(--bp-vert-clair);
	color: var(--bp-vert-fonce);
	display: grid;
	place-items: center;
	font-weight: 700;
	font-size: 19px;
	transition: transform var(--bp-transition), background-color var(--bp-transition), color var(--bp-transition);
}
.bp-faq details[open] summary::after {
	transform: rotate(45deg);
	background: var(--bp-vert);
	color: #fff;
}
.bp-faq__reponse {
	padding: 0 24px 22px;
	font-size: 15.5px;
	max-width: 68ch;
}
.bp-faq__reponse p { margin: 0 0 .8em; }
.bp-faq__reponse p:last-child { margin-bottom: 0; }

/* ============================================================
   26. Rendus alternatifs des shortcodes
   Liste de formations, parcours en prose, citation seule, questions
   à plat. Disponibles pour les pages intérieures ou un autre thème.
   ============================================================ */

.bp-liste { list-style: none; margin: 22px 0 0; padding: 0; border-top: 1px solid var(--bp-ligne); }
.bp-liste li { border-bottom: 1px solid var(--bp-ligne); }
.bp-liste a {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	padding: 16px 0;
	text-decoration: none;
	color: var(--bp-encre);
	font-family: var(--bp-titre);
	font-weight: 700;
	font-size: 19px;
}
.bp-liste a span { font-family: var(--bp-corps); font-weight: 400; font-size: 15px; color: var(--bp-texte-faible); text-align: right; flex: none; align-self: center; }
.bp-liste a:hover { color: var(--bp-vert-fonce); }

.bp-prose-etapes p { font-size: 17px; margin: 0 0 .9em; }
.bp-prose-etapes strong { font-family: var(--bp-titre); font-weight: 700; color: inherit; }

.bp-citation blockquote {
	margin: 0;
	padding-left: 22px;
	border-left: 3px solid var(--bp-vert);
	font-family: var(--bp-titre);
	font-size: 24px;
	line-height: 1.35;
	color: var(--bp-encre);
}
.bp-citation__signature { margin: 12px 0 0; font-size: 15px; color: var(--bp-texte-faible); }

.bp-questions { margin-top: 4px; }
.bp-question { margin-top: 26px; }
.bp-question h3 { font-size: 20px; margin-bottom: 6px; }
.bp-question p { font-size: 16px; }

/* ============================================================
   28. Charte graphique BestPermis 2025
   Saira (titres bold italic, sous-titres bold, chiffres condensés),
   le parallélogramme incliné comme trait identitaire, le dégradé
   bleu → vert, le logo. Placée avant l'adaptatif pour que le mobile
   garde le dernier mot.
   ============================================================ */

/* --- Typographie --- */
h1, h2, h3, h4, h5, h6,
.bp-section__title, .bp-page__title, .bp-hero__title, .bp-cta__title,
.bp-config__titre, .bp-conseil__titre, .bp-order-card__name {
	font-family: var(--bp-titre);
	font-style: italic;
	font-weight: 700;
	font-variation-settings: normal;
	letter-spacing: -.01em;
	line-height: 1.1;
}
/* Sous-titres : Saira Bold, droit. */
.bp-card__title, .bp-footer__title, .bp-step h3, .bp-question h3, .bp-faq summary,
.bp-temoin__auteur b, .bp-author__name, .bp-confiance__item strong, .bp-offre__nom, .bp-barre__texte b {
	font-family: var(--bp-titre);
	font-style: normal;
	font-weight: 700;
	font-variation-settings: normal;
	letter-spacing: 0;
}
/* Accroches en italique, texte courant droit. */
.bp-section__lede, .bp-hero__lede, .bp-page__lede, .bp-card__desc, .bp-cta__lede { font-style: italic; }
/* Chiffres : Saira Condensed SemiBold. */
.bp-price, .bp-grand-prix strong, .bp-card__price strong, .bp-offre__prix,
.bp-stats__value, .bp-barre__prix, .bp-step__num, .bp-card__from {
	font-family: var(--bp-condense);
	font-style: normal;
	font-weight: 600;
	font-variation-settings: normal;
	letter-spacing: 0;
}
.bp-offre__prix small, .bp-card__price-note { font-family: var(--bp-corps); font-weight: 400; }
.bp-btn, .bp-tab, .bp-seg button, .bp-eyebrow, .bp-card__badge, .bp-offre__tag, .bp-order-card__ribbon {
	font-family: var(--bp-titre);
	font-variation-settings: normal;
}

/* --- Le parallélogramme : étiquettes de section --- */
.bp-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0;
	margin: 0 0 16px;
	padding: 6px 22px 6px 16px;
	background: var(--bp-encre);
	color: #fff;
	font-size: 12.5px;
	font-weight: 700;
	font-style: normal;
	letter-spacing: .12em;
	text-transform: uppercase;
	border-radius: 0;
	clip-path: polygon(0 0, 100% 0, calc(100% - 12px) 100%, 0 100%);
}
.bp-eyebrow::before { display: none; }
.bp-eyebrow--sombre { background: var(--bp-vert); color: var(--bp-encre); }
.bp-hero .bp-eyebrow--sombre { background: rgba(255, 255, 255, .92); }

/* --- Boutons : fond incliné, texte droit --- */
.bp-btn {
	position: relative;
	isolation: isolate;
	background: transparent;
	border-color: transparent;
	border-radius: 0;
	padding: 14px 30px;
	font-style: italic;
	font-weight: 700;
	letter-spacing: .01em;
}
.bp-btn::before {
	content: "";
	position: absolute;
	inset: 0 7px;
	z-index: -1;
	background: var(--btn-bg);
	border: 1.5px solid var(--btn-bd, transparent);
	transform: skewX(-14deg);
	transition: filter var(--bp-transition), background-color var(--bp-transition);
}
.bp-btn:hover { transform: none; box-shadow: none; }
.bp-btn:hover::before { filter: brightness(1.07); }
.bp-btn--primary { --btn-bg: var(--bp-encre); --btn-fg: #fff; }
.bp-btn--vert, .bp-btn--ambre { --btn-bg: var(--bp-vert); --btn-fg: var(--bp-encre); }
.bp-btn--vert:hover, .bp-btn--ambre:hover { box-shadow: none; }
.bp-btn--light { --btn-bg: #fff; --btn-fg: var(--bp-encre); }
.bp-btn--ghost { --btn-bg: transparent; --btn-fg: var(--bp-encre); --btn-bd: var(--bp-encre); border-color: transparent; }
.bp-btn--ghost:hover { --btn-bg: transparent; border-color: transparent; box-shadow: none; }
.bp-btn--ghost:hover::before { background: rgba(26, 89, 126, .06); }
.bp-btn--ghost-light { --btn-bg: transparent; --btn-fg: #fff; --btn-bd: rgba(255, 255, 255, .75); border-color: transparent; backdrop-filter: none; }
.bp-btn--ghost-light:hover::before { background: rgba(255, 255, 255, .12); }
.bp-btn--bloc { padding-inline: 22px; }

/* --- Étiquettes --- */
.bp-card__badge, .bp-offre__tag, .bp-order-card__ribbon, .bp-formule__badge {
	border-radius: 0;
	background: var(--bp-vert);
	color: var(--bp-encre);
	font-style: italic;
	font-weight: 700;
	text-transform: none;
	letter-spacing: 0;
	font-size: 12.5px;
	padding: 4px 16px 4px 12px;
	clip-path: polygon(0 0, 100% 0, calc(100% - 8px) 100%, 0 100%);
}
.bp-compare .bp-card__badge { background: var(--bp-vert); color: var(--bp-encre); }

/* --- Onglets et sélecteur --- */
.bp-tabs { background: none; border: none; border-radius: 0; padding: 0; gap: 6px; }
.bp-tab {
	border-radius: 0;
	clip-path: polygon(10px 0, 100% 0, calc(100% - 10px) 100%, 0 100%);
	padding: 10px 26px;
	background: var(--bp-fond);
	color: var(--bp-encre);
	font-style: italic;
}
.bp-tab[aria-selected="true"] { background: var(--bp-encre); color: #fff; }
.bp-tab:not([aria-selected="true"]):hover { background: var(--bp-vert-clair); color: var(--bp-encre); }
.bp-seg { border-radius: 0; padding: 0; gap: 6px; background: none; border: none; }
.bp-seg button {
	border-radius: 0;
	clip-path: polygon(10px 0, 100% 0, calc(100% - 10px) 100%, 0 100%);
	background: var(--bp-fond);
	font-style: italic;
}
.bp-seg button[aria-pressed="true"] { background: var(--bp-encre); color: #fff; box-shadow: none; }

/* --- Hero : dégradé de la charte, filet du monogramme --- */
.bp-hero {
	background-color: #1A597E;
	background-image: var(--bp-degrade);
	background-size: cover;
	background-position: center;
	border-radius: 0;
}
/* L'image en ligne (le filet) se pose PAR-DESSUS le dégradé. */
.bp-hero[style] { background-image: var(--bp-hero-lignes, none), var(--bp-degrade); }
.bp-hero::before { display: none; }
.bp-hero::after { display: none; }
.bp-hero__inner { padding-block: 84px 112px; }
.bp-hero__lede { color: #fff; opacity: .92; }
.bp-hero__proofs { color: #fff; }
.bp-coche--sombre { background: rgba(255, 255, 255, .18); color: #fff; }

/* Le dispositif signature : trois étiquettes inclinées empilées. */
.bp-slogan {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	margin: 0 0 24px;
	line-height: 1;
	color: #fff;
}
.bp-slogan__ligne {
	position: relative;
	display: inline-block;
	padding: .16em .55em .2em .45em;
	clip-path: polygon(.38em 0, 100% 0, calc(100% - .38em) 100%, 0 100%);
	white-space: nowrap;
}
.bp-slogan__ligne--vert {
	background: #fff;
	color: var(--bp-encre);
	font-size: clamp(22px, 2.6vw, 34px);
	z-index: 2;
}
/* La grande ligne : le fond incliné est porté par un enfant, pour que la
   pastille « A » puisse dépasser sans être rognée par le clip-path.
   Taille bornée pour tenir dans la colonne de gauche (571 px au plus large). */
.bp-slogan__ligne--bleu {
	background: none;
	clip-path: none;
	padding: 0;
	color: #fff;
	font-size: clamp(34px, 4.4vw, 54px);
	letter-spacing: -.02em;
	margin: -.12em 0 0 .5em;
	z-index: 1;
}
.bp-slogan__fond {
	display: inline-block;
	background: var(--bp-encre);
	padding: .16em .55em .2em .45em;
	clip-path: polygon(.38em 0, 100% 0, calc(100% - .38em) 100%, 0 100%);
}
.bp-slogan__ligne:nth-child(3) { margin: -.14em 0 0 3.4em; z-index: 2; }
/* Le « A » de l'apprenti, dans sa pastille blanche. */
.bp-slogan__a {
	position: absolute;
	top: -.62em;
	right: .55em;
	width: .95em;
	height: .95em;
	border-radius: 50%;
	background: #fff;
	color: var(--bp-vert);
	display: grid;
	place-items: center;
	font-size: .9em;
	font-style: normal;
	font-weight: 800;
	line-height: 1;
	transform: rotate(-8deg);
	clip-path: none;
}

/* --- Configurateur --- */
.bp-config { border-radius: var(--bp-rayon-lg); box-shadow: 0 30px 70px rgba(12, 45, 66, .32); }
.bp-hero__media .bp-order-card, .bp-order-card { border-radius: var(--bp-rayon-lg); }
.bp-offre { border-radius: var(--bp-rayon); }
.bp-offre--vedette { background: var(--bp-vert-clair); border-color: var(--bp-vert); }

/* --- Cadrans --- */
.bp-stats__item { border-radius: var(--bp-rayon); }

/* --- Cartes --- */
.bp-card, .bp-card--formation, .bp-card--formule, .bp-card--atout, .bp-card--temoignage { border-radius: var(--bp-rayon-lg); }
.bp-card--formation::before { height: 5px; }
.bp-card__icon { border-radius: var(--bp-rayon); }
.bp-compare .bp-card--formule.is-featured { outline-color: var(--bp-vert); }
.bp-conseil { border-radius: var(--bp-rayon-lg); }
.bp-conseil__verdict { border-radius: var(--bp-rayon); }

/* --- Section sombre : bleu de la charte, motif étoiles (conseils) --- */
.bp-section--dark::before {
	background-image: url( "../img/charte/etoiles.svg" );
	background-size: 240px 240px;
	background-repeat: repeat;
	opacity: 1;
}
.bp-step__num { background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .28); color: var(--bp-vert); }
.bp-step:first-child .bp-step__num { background: var(--bp-vert); border-color: var(--bp-vert); color: var(--bp-encre); }

/* --- Témoignage, bandeau final : voiles bleus --- */
.bp-temoin { border-radius: var(--bp-rayon-lg); }
.bp-temoin::before { background: linear-gradient(100deg, rgba(26, 89, 126, .96) 0%, rgba(26, 89, 126, .86) 55%, rgba(26, 89, 126, .55) 100%); }
.bp-temoin__guillemet { font-variation-settings: normal; }
.bp-cta__inner { border-radius: var(--bp-rayon-lg); }
.bp-cta__inner::before { background: linear-gradient(118deg, rgba(26, 89, 126, .96) 0%, rgba(36, 133, 143, .92) 55%, rgba(61, 216, 151, .82) 100%); }

/* --- En-tête : le logo --- */
.bp-brand::before { display: none; }
.bp-brand--logo { display: flex; align-items: center; gap: 10px; }
.bp-brand__mono { height: 40px; width: auto; display: block; }
.bp-brand__mot { height: 20px; width: auto; display: block; }
.bp-header { background: rgba(255, 255, 255, .92); }
.bp-header.is-stuck { background: rgba(255, 255, 255, .98); }
.bp-menu a { border-radius: 0; font-weight: 500; }
.bp-menu a:hover, .bp-menu .current-menu-item > a, .bp-menu .current_page_item > a {
	background: none;
	color: var(--bp-encre);
	box-shadow: inset 0 -2px 0 var(--bp-vert);
}
.bp-header__tel { font-variation-settings: normal; }
.bp-burger { border-radius: 4px; }

/* --- Pied de page --- */
.bp-footer__lockup { display: block; height: 118px; width: auto; margin-bottom: 14px; }
.bp-footer__slogan { font-style: italic; color: #fff; font-size: 15px; margin: 0 0 12px; }
.bp-footer .bp-social__link { border-radius: 4px; }

/* --- Divers --- */
.bp-faq details, .bp-faq summary::after, .bp-instalments, .bp-secure-note, .bp-page__header, .bp-bande__photo { border-radius: var(--bp-rayon); }
.bp-faq summary::after { border-radius: 50%; }
.bp-page__header { border-radius: 0; }
.bp-page__header::before { background: linear-gradient(100deg, rgba(26, 89, 126, .96) 0%, rgba(26, 89, 126, .84) 50%, rgba(36, 133, 143, .62) 100%); }
.bp-confiance__inner { border-radius: var(--bp-rayon-lg); }
.bp-confiance__ico { border-radius: var(--bp-rayon); }
.woocommerce .button, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #payment #place_order, .woocommerce-checkout #place_order {
	border-radius: 0;
	font-family: var(--bp-titre);
	font-style: italic;
	font-variation-settings: normal;
	clip-path: polygon(10px 0, 100% 0, calc(100% - 10px) 100%, 0 100%);
}
.woocommerce #payment #place_order, .woocommerce-checkout #place_order { background: var(--bp-vert); color: var(--bp-encre); }
.woocommerce #payment #place_order:hover, .woocommerce-checkout #place_order:hover { background: #33C889; color: var(--bp-encre); }

/* ============================================================
   29. Toutes les formules par groupe (packs), hors forfait,
       documents à fournir, dépôt du dossier après paiement
   ============================================================ */
.bp-section--formules { padding-top: 56px; }
.bp-tabs-bar { align-items: center; }
.bp-tabs--grand .bp-tab { padding: 14px 34px; font-size: 17px; }
.bp-tabs--grand .bp-tab[aria-selected="true"] { background: var(--bp-vert); color: var(--bp-encre); }

.bp-groupes { display: grid; gap: 44px; }
.bp-groupe__head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 6px 18px;
	margin: 0 0 22px;
	padding-left: 16px;
	border-left: 4px solid var(--bp-vert);
}
.bp-groupe__titre { margin: 0; font-size: 24px; font-style: normal; }
.bp-groupe__note { margin: 0; color: var(--bp-texte); font-size: 15px; font-style: italic; }

.bp-packs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; align-items: stretch; }
.bp-packs--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.bp-packs--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 760px; }
.bp-packs--1 { grid-template-columns: minmax(0, 1fr); max-width: 380px; }
.bp-pack {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 26px 22px 20px;
	background: var(--bp-surface);
	border: 1.5px solid var(--bp-ligne);
	border-radius: var(--bp-rayon-lg);
	transition: transform var(--bp-transition), box-shadow var(--bp-transition), border-color var(--bp-transition);
}
.bp-pack:hover { transform: translateY(-3px); box-shadow: 0 18px 40px rgba(26, 89, 126, .14); border-color: var(--bp-encre); }
.bp-pack.is-featured { border-color: var(--bp-vert); box-shadow: 0 0 0 3px rgba(61, 216, 151, .25); }
.bp-pack__badge {
	position: absolute;
	top: -13px;
	left: 18px;
	background: var(--bp-vert);
	color: var(--bp-encre);
	font-family: var(--bp-titre);
	font-style: italic;
	font-weight: 700;
	font-size: 12.5px;
	line-height: 1.4;
	padding: 4px 16px 4px 12px;
	clip-path: polygon(0 0, 100% 0, calc(100% - 8px) 100%, 0 100%);
	white-space: nowrap;
}
.bp-pack__nom { margin: 2px 0 0; font-size: 20px; font-style: normal; line-height: 1.2; }
.bp-pack__heures { margin: 0; line-height: 1.05; color: var(--bp-encre); }
.bp-pack__heures strong { font-family: var(--bp-condense); font-weight: 600; font-size: 40px; letter-spacing: 0; }
.bp-pack__heures span { display: block; font-size: 13.5px; color: var(--bp-texte); margin-top: 2px; }
.bp-pack__resume { margin: 0 0 10px; font-size: 14.5px; font-style: italic; color: var(--bp-texte); }
/* Le bloc prix + 4× + détail + bouton est poussé en bas : toute la rangée s'aligne. */
.bp-pack__prix { margin: auto 0 0; padding-top: 12px; border-top: 1px dashed var(--bp-ligne); display: flex; align-items: baseline; gap: 6px; }
.bp-pack__prix strong { font-family: var(--bp-condense); font-weight: 600; font-size: 34px; color: var(--bp-encre); line-height: 1; }
.bp-pack__prix small { font-size: 11.5px; text-transform: uppercase; letter-spacing: .08em; color: var(--bp-texte-faible); }
.bp-pack__prix--devis strong { font-size: 20px; font-family: var(--bp-titre); font-style: italic; }
.bp-pack__4x { margin: -4px 0 0; font-size: 13.5px; font-weight: 600; color: #178A5E; }
.bp-pack__detail { margin: 2px 0 0; font-size: 14px; }
.bp-pack__detail summary { cursor: pointer; color: var(--bp-encre); font-weight: 600; list-style: none; display: flex; align-items: center; gap: 8px; }
.bp-pack__detail summary::-webkit-details-marker { display: none; }
.bp-pack__detail summary::before { content: "+"; display: inline-grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: var(--bp-fond); font-weight: 700; flex: none; }
.bp-pack__detail[open] summary::before { content: "−"; }
.bp-pack__detail ul { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 7px; color: var(--bp-texte); }
.bp-pack__detail li { display: flex; gap: 8px; align-items: flex-start; }
.bp-pack__detail li .bp-coche { margin-top: 1px; }
.bp-pack__detail li small { display: block; color: var(--bp-texte-faible); font-size: 12.5px; }
.bp-pack__cta { margin: 0; padding-top: 12px; }
.bp-confiance--suite { margin-top: 0; padding-top: 40px; }

/* Tableaux hors forfait */
.bp-tarifs-tables { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; align-items: start; }
.bp-tarifs-table { background: var(--bp-surface); border: 1.5px solid var(--bp-ligne); border-radius: var(--bp-rayon-lg); padding: 20px 22px; }
.bp-tarifs-table__titre { margin: 0 0 12px; font-size: 18px; font-style: normal; }
.bp-tarifs-table table { width: 100%; border-collapse: collapse; font-size: 14.5px; }
.bp-tarifs-table th { text-align: left; font-weight: 500; color: var(--bp-texte); padding: 9px 12px 9px 0; border-bottom: 1px solid var(--bp-ligne); }
.bp-tarifs-table td { text-align: right; white-space: nowrap; font-family: var(--bp-condense); font-weight: 600; font-size: 17px; color: var(--bp-encre); padding: 9px 0; border-bottom: 1px solid var(--bp-ligne); }
.bp-tarifs-table tr:last-child th, .bp-tarifs-table tr:last-child td { border-bottom: none; }

/* Documents à fournir */
.bp-documents { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.bp-documents li { display: grid; grid-template-columns: 30px 1fr; gap: 12px; padding: 14px 16px; background: var(--bp-surface); border: 1.5px solid var(--bp-ligne); border-radius: var(--bp-rayon); }
.bp-documents__num { font-family: var(--bp-condense); font-weight: 600; color: var(--bp-vert); font-size: 20px; line-height: 1.1; }
.bp-documents li strong { display: block; color: var(--bp-encre); }
.bp-documents li span span { color: var(--bp-texte); font-size: 14.5px; }
.bp-documents__tag { display: inline-block; margin-left: 8px; font-size: 11.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; color: var(--bp-texte-faible); }

/* Dépôt des documents après paiement */
.bp-dossier { margin: 32px 0; padding: 28px; background: var(--bp-surface); border: 2px solid var(--bp-vert); border-radius: var(--bp-rayon-lg); }
.bp-dossier__head h2 { margin: 0 0 8px; font-size: 26px; }
.bp-dossier__head p { margin: 0 0 18px; color: var(--bp-texte); }
.bp-dossier__notice { padding: 12px 16px; border-radius: var(--bp-rayon); margin: 0 0 16px; font-weight: 600; }
.bp-dossier__notice--ok { background: var(--bp-vert-clair); color: #146B4A; }
.bp-dossier__notice--erreur { background: #FDECEC; color: #9B2C2C; }
.bp-dossier__liste { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.bp-dossier__item { display: grid; grid-template-columns: minmax(0, 1fr) minmax(220px, 300px); gap: 8px 20px; align-items: center; padding: 14px 16px; border: 1.5px solid var(--bp-ligne); border-radius: var(--bp-rayon); }
.bp-dossier__item.is-recu { border-color: var(--bp-vert); background: var(--bp-vert-clair); }
.bp-dossier__item strong { display: block; color: var(--bp-encre); }
.bp-dossier__aide { margin: 2px 0 0; font-size: 13.5px; color: var(--bp-texte); }
.bp-dossier__etat { display: inline-block; margin-left: 8px; font-size: 12px; font-weight: 700; color: #146B4A; }
.bp-dossier__requis { display: inline-block; margin-left: 8px; font-size: 11.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; color: var(--bp-texte-faible); }
.bp-dossier input[type="file"] { width: 100%; font-size: 13.5px; }
.bp-dossier__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 20px; margin: 18px 0 0; }
.bp-dossier__note { font-size: 13px; color: var(--bp-texte-faible); }

/* ============================================================
   30. Tunnel de commande
   ============================================================ */
/* WooCommerce impose img { height: auto } sur ses pages : le logo s'étalait. */
.woocommerce-page .bp-brand__mono, .woocommerce .bp-brand__mono { height: 40px; width: auto; }
.woocommerce-page .bp-brand__mot, .woocommerce .bp-brand__mot { height: 20px; width: auto; }
.woocommerce-page .bp-footer__lockup, .woocommerce .bp-footer__lockup { height: 118px; width: auto; }

/* Messages : l'icône ne chevauche plus le texte. */
.woocommerce-message, .woocommerce-info, .woocommerce-error {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 16px;
	padding-left: 48px;
	border-radius: var(--bp-rayon);
}
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before {
	position: absolute;
	left: 18px;
	top: 50%;
	transform: translateY(-50%);
	color: inherit;
}
.woocommerce-message .button, .woocommerce-info .button { float: none; margin-left: auto; }
.woocommerce-error li { list-style: none; }
/* « … a été ajouté à votre panier » n'apporte rien sur la page de paiement. */
body.woocommerce-checkout .woocommerce-notices-wrapper .woocommerce-message { display: none; }
.woocommerce-form-coupon-toggle .woocommerce-info { background: var(--bp-surface); border-left-color: var(--bp-ligne); color: var(--bp-texte); margin-bottom: 28px; }

/* Deux colonnes : le formulaire à gauche, le récapitulatif collant à droite. */
.bp-commerce { padding-block: 44px 72px; }
form.woocommerce-checkout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(320px, 400px);
	grid-template-rows: auto 1fr;
	gap: 20px 56px;
	align-items: start;
}
form.woocommerce-checkout .col2-set { grid-column: 1; grid-row: 1 / span 2; }
form.woocommerce-checkout #order_review_heading { grid-column: 2; grid-row: 1; margin: 0; }
form.woocommerce-checkout #order_review {
	grid-column: 2;
	grid-row: 2;
	position: sticky;
	top: 90px;
	background: var(--bp-surface);
	border: 1.5px solid var(--bp-ligne);
	border-radius: var(--bp-rayon-lg);
	padding: 22px;
}
form.woocommerce-checkout .woocommerce-NoticeGroup { grid-column: 1 / -1; }
.woocommerce-checkout .col2-set .col-2 { margin-top: 12px; }
.woocommerce-checkout .col2-set h3 { padding-top: 6px; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select, .woocommerce form .form-row .select2-container .select2-selection {
	border: 1.5px solid var(--bp-ligne);
	border-radius: var(--bp-rayon-sm);
	padding: 12px 14px;
	font: inherit;
	color: var(--bp-encre);
	background: var(--bp-surface);
}
.woocommerce form .form-row input.input-text:focus, .woocommerce form .form-row textarea:focus { outline: 2px solid var(--bp-vert); outline-offset: 1px; border-color: var(--bp-vert); }
.woocommerce form .form-row textarea { min-height: 96px; }
.woocommerce-checkout #payment { background: var(--bp-fond); margin-top: 16px; }
.woocommerce-checkout #payment .place-order { padding: 0; }
.woocommerce-checkout #payment .place-order #place_order { float: none; display: block; width: 100%; padding: 16px 20px; font-size: 16px; }
/* WooCommerce donne le focus au message au chargement : pas de halo vert autour. */
.woocommerce-error:focus, .woocommerce-message:focus, .woocommerce-info:focus { outline: none; }
.woocommerce-checkout #payment ul.payment_methods li > .woocommerce-info { margin: 0; }
.woocommerce-checkout .woocommerce-privacy-policy-text { font-size: 12.5px; color: var(--bp-texte-faible); }
.woocommerce-checkout table.shop_table td.product-name { font-weight: 600; color: var(--bp-encre); }
.woocommerce-checkout .bp-retirer { display: block; margin-top: 4px; font-size: 12.5px; font-weight: 500; color: var(--bp-texte-faible); text-decoration: underline; }
.woocommerce-checkout .bp-retirer:hover { color: #9B2C2C; }
/* Une formule se commande à l'unité : la quantité n'apporte rien, et le montant reste sur une ligne. */
.woocommerce-checkout table.shop_table .product-quantity { display: none; }
.woocommerce-checkout table.shop_table td.product-total, .woocommerce-checkout table.shop_table .amount { white-space: nowrap; }
.woocommerce-checkout table.shop_table td.product-name { padding-right: 12px; }
.woocommerce-order { display: grid; gap: 28px; }
.woocommerce-order .woocommerce-thankyou-order-received { font-family: var(--bp-titre); font-style: italic; font-weight: 700; font-size: 24px; color: var(--bp-encre); }
.woocommerce-order ul.order_details { display: flex; flex-wrap: wrap; gap: 10px 28px; list-style: none; margin: 0; padding: 16px 20px; background: var(--bp-fond); border-radius: var(--bp-rayon); }
.woocommerce-order ul.order_details li { font-size: 13px; text-transform: uppercase; letter-spacing: .06em; color: var(--bp-texte-faible); }
.woocommerce-order ul.order_details li strong { display: block; font-size: 16px; text-transform: none; letter-spacing: 0; color: var(--bp-encre); }

/* ============================================================
   31. Mouvement : entrée du hero, bouton WhatsApp
   ============================================================ */
@media (prefers-reduced-motion: no-preference) {
	.bp-slogan__ligne { animation: bp-entree-gauche .7s cubic-bezier(.22, .8, .3, 1) both; }
	.bp-slogan__ligne:nth-child(2) { animation-delay: .12s; }
	.bp-slogan__ligne:nth-child(3) { animation-delay: .24s; }
	.bp-slogan__a { animation: bp-pop .5s cubic-bezier(.34, 1.56, .64, 1) .55s both; }
	.bp-hero .bp-eyebrow { animation: bp-entree-haut .6s ease-out both; }
	.bp-hero__lede { animation: bp-entree-haut .7s ease-out .35s both; }
	.bp-hero__actions { animation: bp-entree-haut .7s ease-out .45s both; }
	.bp-hero__proofs { animation: bp-entree-haut .7s ease-out .55s both; }
}
@keyframes bp-entree-gauche { from { opacity: 0; transform: translateX(-40px); } to { opacity: 1; transform: none; } }
@keyframes bp-entree-haut { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes bp-pop { from { opacity: 0; transform: rotate(-8deg) scale(.3); } to { opacity: 1; transform: rotate(-8deg) scale(1); } }

.bp-whatsapp {
	position: fixed;
	right: 22px;
	bottom: 22px;
	z-index: 60;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 12px 20px 12px 14px;
	background: #25D366;
	color: #fff;
	font-family: var(--bp-titre);
	font-style: italic;
	font-weight: 700;
	font-size: 15px;
	text-decoration: none;
	border-radius: 999px;
	box-shadow: 0 12px 30px rgba(0, 0, 0, .2);
	transition: transform var(--bp-transition), box-shadow var(--bp-transition), bottom .3s ease;
}
.bp-whatsapp:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 16px 36px rgba(0, 0, 0, .24); }
.bp-whatsapp svg { flex: none; }
body.bp-barre-visible .bp-whatsapp { bottom: 94px; }

/* ============================================================
   32. Pages documentaires : règlement intérieur, matrice GDE
   ============================================================ */
.bp-prose .bp-lead { font-size: 19px; font-style: italic; color: var(--bp-encre); }
.bp-prose h2 { font-size: 22px; margin-top: 36px; }
.bp-mentions { margin: 48px 0 0; padding: 22px 24px; background: var(--bp-fond); border: 1.5px solid var(--bp-ligne); border-radius: var(--bp-rayon-lg); font-size: 14px; }
.bp-mentions__titre { margin: 0 0 12px; font-family: var(--bp-titre); font-weight: 700; color: var(--bp-encre); }
.bp-mentions dl { margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 8px 24px; }
.bp-mentions dl div { display: grid; grid-template-columns: 150px 1fr; gap: 8px; }
.bp-mentions dt { color: var(--bp-texte-faible); }
.bp-mentions dd { margin: 0; color: var(--bp-encre); font-weight: 600; }
.bp-mentions__ref { margin: 14px 0 0; color: var(--bp-texte-faible); font-size: 12.5px; }

/* La matrice sort de la colonne de lecture : cinq niveaux sur trois colonnes ont besoin de place. */
.bp-gde { display: grid; gap: 14px; margin: 32px 0; --gde: var(--bp-encre); }
.bp-prose .bp-gde { width: min(1240px, calc(100vw - 2 * var(--bp-gouttiere) - 16px)); position: relative; left: 50%; transform: translateX(-50%); }
.bp-gde__entete { display: grid; grid-template-columns: 220px repeat(3, 1fr); gap: 14px; padding: 0 18px; font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--bp-texte-faible); }
.bp-gde__niveau { display: grid; grid-template-columns: 220px 1fr; gap: 0; background: var(--bp-surface); border: 1.5px solid var(--bp-ligne); border-left: 6px solid var(--gde); border-radius: var(--bp-rayon-lg); overflow: hidden; }
.bp-gde__niveau--5 { --gde: #1A597E; }
.bp-gde__niveau--4 { --gde: #F0A03A; }
.bp-gde__niveau--3 { --gde: #7DC24B; }
.bp-gde__niveau--2 { --gde: #E2477A; }
.bp-gde__niveau--1 { --gde: #3DD897; }
.bp-gde__tete { display: flex; flex-direction: column; gap: 6px; padding: 22px 18px; background: color-mix(in srgb, var(--gde) 10%, #fff); }
.bp-gde__num { font-family: var(--bp-condense); font-weight: 600; font-size: 64px; line-height: .9; color: var(--gde); }
.bp-gde__tete h2 { margin: 0; font-size: 18px; line-height: 1.25; }
.bp-gde__cols { display: grid; grid-template-columns: repeat(3, 1fr); }
.bp-gde__cols > div { padding: 18px; font-size: 14px; border-left: 1px solid var(--bp-ligne); }
.bp-gde__cols h3 { margin: 0 0 8px; font-size: 14px; font-style: normal; color: var(--gde); }
.bp-gde__cols p { margin: 0 0 8px; color: var(--bp-texte); }
.bp-gde__cols ul { margin: 0; padding-left: 18px; color: var(--bp-texte); display: grid; gap: 3px; }
.bp-prose .bp-gde ul li { margin: 0; }

/* ============================================================
   33. Aides au financement, règlement partiel
   ============================================================ */
.bp-financements { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.bp-financement {
	display: grid;
	grid-template-columns: 150px minmax(0, 1fr);
	gap: 22px;
	align-items: center;
	padding: 24px;
	background: var(--bp-surface);
	border: 1.5px solid var(--bp-ligne);
	border-radius: var(--bp-rayon-lg);
	text-decoration: none;
	color: inherit;
	transition: transform var(--bp-transition), box-shadow var(--bp-transition), border-color var(--bp-transition);
}
.bp-financement:hover { transform: translateY(-3px); box-shadow: 0 18px 40px rgba(26, 89, 126, .14); border-color: var(--bp-encre); }
.bp-financement__logo { display: grid; place-items: center; min-height: 96px; padding: 12px; background: var(--bp-fond); border-radius: var(--bp-rayon); }
.bp-financement__logo img { max-width: 126px; max-height: 80px; width: auto; height: auto; }
.bp-financement__badge { font-family: var(--bp-titre); font-weight: 700; font-size: 15px; line-height: 1.2; text-align: center; color: var(--bp-encre); padding: 10px 12px; border: 2px solid var(--bp-encre); border-radius: 4px; }
.bp-financement--cpf .bp-financement__badge { border-color: #000091; color: #000091; }
.bp-financement--labaz .bp-financement__badge { border-color: #E1000F; color: #E1000F; }
.bp-financement__titre { display: block; font-family: var(--bp-titre); font-weight: 700; font-size: 19px; color: var(--bp-encre); margin-bottom: 6px; }
.bp-financement__texte { display: block; font-size: 14.5px; color: var(--bp-texte); margin-bottom: 10px; }
.bp-financement__lien { display: inline-block; font-family: var(--bp-titre); font-style: italic; font-weight: 700; font-size: 14px; color: var(--bp-encre); box-shadow: inset 0 -2px 0 var(--bp-vert); }

/* Choix du montant réglé au paiement */
.woocommerce form .form-row.bp-reglement { padding: 18px 18px 8px; background: var(--bp-vert-clair); border: 1.5px solid var(--bp-vert); border-radius: var(--bp-rayon); }
.woocommerce form .form-row.bp-reglement > label:first-child { font-size: 16px; margin-bottom: 8px; }
.woocommerce form .form-row.bp-reglement .woocommerce-input-wrapper { display: grid; gap: 8px; }
.woocommerce form .form-row.bp-reglement label.radio { display: flex; align-items: center; gap: 10px; font-family: var(--bp-corps); font-weight: 500; font-size: 15px; color: var(--bp-encre); cursor: pointer; }
.woocommerce form .form-row.bp-reglement input.input-radio { width: 18px; height: 18px; accent-color: var(--bp-encre); margin: 0; }
.woocommerce form .form-row.bp-montant { margin-top: -6px; padding: 0 18px 18px; background: var(--bp-vert-clair); border: 1.5px solid var(--bp-vert); border-top: none; border-radius: 0 0 var(--bp-rayon) var(--bp-rayon); }
.bp-reste-note { margin: 18px 0 0; padding: 14px 16px; background: var(--bp-vert-clair); border-left: 4px solid var(--bp-vert); border-radius: var(--bp-rayon-sm); color: var(--bp-encre); font-weight: 600; }

/* ============================================================
   20. Adaptatif
   ============================================================ */

@media (max-width: 1080px) {
	.bp-hero__inner {
		grid-template-columns: 1fr;
		gap: 40px;
		padding-block: 72px 96px;
	}
	.bp-hero::after { display: none; }
	.bp-confiance__inner { grid-template-columns: 1fr 1fr; }
	.bp-confiance__item:nth-child(3) { border-left: none; }
	.bp-confiance__item:nth-child(n+3) { border-top: 1px solid var(--bp-ligne); }
	.bp-temoin { grid-template-columns: 1fr; padding: 48px 32px; }

	.bp-stats { grid-template-columns: repeat(2, 1fr); }
	.bp-grid--formations,
	.bp-grid--atouts,
	.bp-grid--temoignages { grid-template-columns: repeat(2, 1fr); }
	.woocommerce ul.products { grid-template-columns: repeat(2, 1fr); }

	.bp-steps { grid-template-columns: repeat(2, 1fr); row-gap: 40px; }
	.bp-steps::before { display: none; }

	.bp-footer__grid { grid-template-columns: 1fr 1fr; }
	.bp-prose--columns { columns: 1; }
	.bp-grid--posts { grid-template-columns: repeat(2, 1fr); }
	.bp-contact { grid-template-columns: 1fr; gap: 40px; }
	.bp-packs, .bp-packs--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.bp-tarifs-tables { grid-template-columns: 1fr; }
	.bp-financements { grid-template-columns: 1fr; }
	.bp-gde__entete { display: none; }
	.bp-gde__niveau { grid-template-columns: 1fr; }
	.bp-gde__tete { flex-direction: row; align-items: center; gap: 16px; }
	.bp-gde__num { font-size: 44px; }
	.bp-gde__cols { grid-template-columns: 1fr; }
	.bp-gde__cols > div { border-left: none; border-top: 1px solid var(--bp-ligne); }
	.bp-mentions dl div { grid-template-columns: 1fr; gap: 2px; }
}

@media (max-width: 860px) {
	body { font-size: 16px; padding-bottom: 78px; }

	.bp-burger {
		display: inline-flex;
		order: 3;
	}

	/* Menu déroulant plein écran. */
	.bp-nav {
		display: none;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		flex-direction: column;
		align-items: stretch;
		gap: 8px;
		background: var(--bp-surface);
		border-top: 1px solid var(--bp-ligne);
		border-bottom: 1px solid var(--bp-ligne);
		box-shadow: var(--bp-ombre-forte);
		padding: 18px var(--bp-gouttiere) 22px;
		max-height: calc(100vh - 74px);
		overflow-y: auto;
	}
	.bp-nav.is-open { display: flex; }
	.bp-header { position: sticky; }
	.bp-header__inner { position: relative; }

	.bp-menu {
		flex-direction: column;
		align-items: stretch;
		gap: 2px;
	}
	.bp-menu a {
		padding: 13px 14px;
		font-size: 16.5px;
	}
	.bp-menu .sub-menu {
		position: static;
		display: block;
		box-shadow: none;
		border: none;
		margin: 0 0 0 14px;
		padding: 0;
	}
	.bp-header__tel {
		justify-content: center;
		padding: 12px;
		font-size: 16px;
		border-top: 1px solid var(--bp-ligne);
		margin-top: 6px;
	}
	.bp-header__cta { margin: 6px 0 0; justify-content: center; }
	.bp-social { justify-content: center; margin-top: 6px; }

	.bp-section { padding-block: 68px; }
	.bp-cta { padding-block: 0 68px; }
	.bp-cta__inner { padding: 40px 28px; }

	.bp-grid--formations,
	.bp-grid--formules,
	.bp-grid--atouts,
	.bp-grid--temoignages { grid-template-columns: 1fr; }
	.woocommerce ul.products { grid-template-columns: 1fr; }

	.bp-steps { grid-template-columns: 1fr; }
	.bp-step { padding: 0; }

	.bp-footer__grid { grid-template-columns: 1fr; gap: 30px; }
	.bp-footer { margin-top: 68px; }
	.bp-liste a { flex-direction: column; gap: 2px; }
	.bp-liste a span { flex: 0 1 auto; text-align: left; }
	.bp-grid--posts { grid-template-columns: 1fr; }
	.bp-form__grid { grid-template-columns: 1fr; gap: 18px; }
	.bp-contact__form { padding: 24px 20px; }

	.bp-page__header { padding-block: 62px; margin-bottom: 48px; }

	.bp-barre { transform: none; }
	form.woocommerce-checkout { grid-template-columns: 1fr; }
	form.woocommerce-checkout .col2-set, form.woocommerce-checkout #order_review_heading, form.woocommerce-checkout #order_review { grid-column: 1; grid-row: auto; position: static; }
	.bp-whatsapp { right: 14px; bottom: 94px; padding: 13px; }
	.bp-whatsapp span { display: none; }
	.bp-barre__texte { display: none; }
	.bp-barre__offre { flex: 0 0 auto; }
	.bp-barre__prix { white-space: nowrap; }
	.bp-hero .bp-eyebrow--sombre { font-size: 11px; letter-spacing: .08em; padding: 5px 16px 5px 12px; }
	.bp-barre__inner { gap: 10px; min-height: 64px; }
	.bp-barre .bp-btn { flex: 1; padding: 13px 14px; }
	.bp-conseil { grid-template-columns: 1fr; padding: 22px 20px; }
	.bp-grand-prix strong { font-size: 52px; }
	.bp-hero__title { font-size: clamp(38px, 11vw, 56px); }
	.bp-slogan__ligne--vert { font-size: clamp(18px, 5vw, 24px); }
	.bp-slogan__ligne--bleu { font-size: clamp(30px, 9.4vw, 48px); margin-left: .3em; }
	.bp-slogan__ligne:nth-child(3) { margin-left: 2.2em; }

	/* Les tableaux WooCommerce défilent dans leur propre conteneur. */
	.woocommerce-cart-form,
	.woocommerce table.shop_table_responsive { overflow-x: auto; }
}

@media (max-width: 520px) {
	.bp-hero__inner { padding-block: 52px 68px; }
	.bp-config { padding: 18px 16px 16px; }
	.bp-offre { grid-template-columns: 1fr; grid-template-areas: "nom" "detail" "prix"; }
	.bp-offre__prix { text-align: left; }
	.bp-confiance__inner { grid-template-columns: 1fr; }
	.bp-confiance__item { border-left: none !important; }
	.bp-confiance__item + .bp-confiance__item { border-top: 1px solid var(--bp-ligne); }
	.bp-card__price strong { font-size: 36px; }
	.bp-grand-prix strong { font-size: 44px; }
	.bp-stats { grid-template-columns: 1fr; }
	.bp-packs, .bp-packs--3, .bp-packs--2 { grid-template-columns: 1fr; max-width: none; }
	.bp-tabs--grand { width: 100%; }
	.bp-tabs--grand .bp-tab { flex: 1; padding: 12px 10px; font-size: 15px; text-align: center; }
	.bp-dossier { padding: 20px 16px; }
	.bp-dossier__item { grid-template-columns: 1fr; }
	.bp-financement { grid-template-columns: 1fr; }
	.bp-financement__logo { min-height: 72px; }
}

/* ============================================================
   21. Impression
   ============================================================ */

@media print {
	.bp-whatsapp,
	.bp-header,
	.bp-barre,
	.bp-cta,
	.bp-footer,
	.bp-skip { display: none !important; }
	body { background: #fff; font-size: 12pt; }
	.bp-reveal { opacity: 1; transform: none; }
}
