/*
 * Fiche formation « 2027 » (woocommerce/content-single-product-2027.php, bascule dans inc/fiche-produit.php).
 * Identité reprise du gabarit InDesign CATALOGUE-2027 (05/11/2026, page A5 à l'italienne), structure de page de vente :
 * contenu à gauche, carte d'inscription à droite qui reste à l'écran (décision du 05/11/2026).
 *  - bleu Axélérance (nuancier C100 M86 J41 N37) = $blue du thème ; gris des libellés (C48 M36 J52 N22) = $grey ;
 *  - encadré « Programme » : bleu à 10 % d'opacité ; coins arrondis 4 mm ; pastilles blanches, ombre portée 15 % ;
 *  - Hurme Geometric Sans 4 : titre 16 pt gras, intertitres 10 pt gras, texte 8 pt, libellés 7 pt gras capitales.
 */

.fiche {
	--fiche-bleu: #0a2851;
	--fiche-gris: #81816e;
	--fiche-texte: #141a24;
	--fiche-fond: rgba(10, 40, 81, .1);
	--fiche-fond-leger: rgba(10, 40, 81, .05);
	--fiche-corail: linear-gradient(145deg, #ff6f61, #e65c4f);
	--fiche-rayon: 20px;
	--fiche-ombre: 0 4px 12px rgba(10, 40, 81, .15);
	color: var(--fiche-texte);
	font-family: HurmeGeometricSans4, Arial, sans-serif;
	font-size: 1rem;
	line-height: 1.5;
}

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

.fiche__conteneur {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 24px;
}

/* ── Partie principale : en-tête et contenu à gauche, carte d'inscription à droite ── */

.fiche__principal {
	--fiche-haut-ecran: 24px; /* marge haute de la carte collée (la barre de navigation du thème défile avec la page) */
	background: #fff;
	padding: 40px 0 56px;
}

.fiche__ariane {
	display: flex;
	flex-wrap: wrap;
	gap: .25rem .5rem;
	margin-bottom: 2rem;
	color: var(--fiche-gris);
	font-size: .8125rem;
}
.fiche__ariane a { color: var(--fiche-gris); text-decoration: underline; text-underline-offset: 2px; }
.fiche__ariane a:hover { color: var(--fiche-bleu); }

.fiche__grille {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 360px;
	grid-template-rows: auto 1fr;
	grid-template-areas:
		"entete aside"
		"corps  aside";
	column-gap: 56px;
}
.fiche__entete { grid-area: entete; }
.fiche__aside  { grid-area: aside; }
.fiche__corps  { grid-area: corps; }

/* La carte reste à l'écran pendant le défilement, sur grand écran et si elle tient dans la fenêtre (sinon son bas
   serait inaccessible : .is-longue, posée par assets/js/fiche-produit.js) */
@media (min-width: 961px) {
	.fiche__carte { position: sticky; top: var(--fiche-haut-ecran); }
	.fiche__carte.is-longue { position: static; }
}

.fiche__surtitre {
	margin: 0 0 .5rem;
	color: var(--fiche-bleu);
	font-size: .8125rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.fiche__titre {
	margin: 0 0 1rem;
	color: var(--fiche-bleu);
	font-size: clamp(1.75rem, 1.2rem + 1.6vw, 2.375rem);
	font-weight: 700;
	line-height: 1.15;
}

.fiche__insecable { white-space: nowrap; }

/* Le thème impose ses titres partout (style.css : h2 corail, marges et tailles en !important, h1 en capitales
   sur petit écran) : on les neutralise dans la fiche seulement. */
.fiche h1.fiche__titre { font-size: clamp(1.75rem, 1.2rem + 1.6vw, 2.375rem) !important; text-transform: none !important; }
.fiche h2.fiche__intertitre {
	width: auto;
	margin: 0 0 .35rem !important;
	color: var(--fiche-bleu) !important;
	font-size: 1.25rem !important;
}
.fiche .fiche__programme h2.fiche__intertitre { margin-bottom: .75rem !important; }
.fiche .fiche__sessions h2.fiche__intertitre { margin-bottom: 1rem !important; }
.fiche .fiche__indicateurs h2.fiche__intertitre { margin-bottom: .25rem !important; }
.fiche h3.fiche__programme-groupe { font-size: .8125rem !important; }
.fiche h3.fiche__session-titre { font-size: 1.0625rem !important; color: var(--fiche-bleu) !important; }

.fiche__accroche { margin: 0; font-size: 1.125rem; line-height: 1.5; }
.fiche__accroche-complement { margin-top: .6rem; color: #4a5160; font-size: .9375rem; }
.fiche__accroche-complement p { margin: 0 0 .35rem; }
.fiche__accroche-complement a { color: var(--fiche-bleu); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }

.fiche__corps { padding-top: 1rem; }
.fiche__bloc { margin-top: 2rem; }
.fiche__corps > .fiche__bloc:first-child { margin-top: 1rem; }

/* Public visé et prérequis côte à côte quand la place le permet */
.fiche__duo {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
	gap: 0 2.5rem;
}

.fiche__intertitre {
	margin: 0 0 .35rem;
	color: var(--fiche-bleu);
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1.25;
}

.fiche__texte,
.fiche__texte p { margin: 0; }
.fiche__texte p + p { margin-top: .5rem; }

.fiche__puces {
	margin: 0;
	padding: 0;
	list-style: none;
}
.fiche__puces li {
	position: relative;
	margin: 0 0 .3rem;
	padding-left: 1.1rem;
}
.fiche__puces li::before {
	content: "•";
	position: absolute;
	left: 0;
	color: var(--fiche-bleu);
	font-weight: 700;
}

/* ── Carte d'inscription : pastilles « Durée » et « Tarif », achat, informations pratiques ── */

.fiche__carte {
	padding: 1.5rem;
	background: #fff;
	border: 1px solid rgba(10, 40, 81, .1);
	border-radius: var(--fiche-rayon);
	box-shadow: 0 10px 30px rgba(10, 40, 81, .12);
}

.fiche__pastilles {
	display: flex;
	flex-wrap: wrap;
	gap: .75rem;
}

.fiche__pastille {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	gap: .15rem;
	padding: .8rem 1rem .9rem;
	background: var(--fiche-fond-leger);
	border-radius: 14px;
}

.fiche__pastille-libelle {
	color: var(--fiche-gris);
	font-size: .6875rem;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	white-space: nowrap;
}

.fiche__pastille-valeur {
	color: var(--fiche-bleu);
	font-size: 1.3125rem;
	font-weight: 700;
	line-height: 1.2;
	white-space: nowrap;
}
.fiche__pastille-valeur del { color: var(--fiche-gris); font-size: .8em; font-weight: 400; }
.fiche__pastille-valeur ins { text-decoration: none; }
.fiche__des { font-size: .7em; font-weight: 600; }

.fiche__achat { margin-top: 1.25rem; }

/* Bouton d'achat (woocommerce/single-product/add-to-cart/simple.php) : le prix est déjà dans la pastille */
.fiche__achat form.cart {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: .6rem;
	margin: 0;
	padding: 0 1.5rem;
	background: var(--fiche-corail);
	border-radius: 14px;
	box-shadow: 0 6px 16px rgba(230, 92, 79, .3);
	transition: transform .2s ease, box-shadow .2s ease;
}
.fiche__achat form.cart:hover { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(230, 92, 79, .35); }
.fiche__achat form.cart > svg { flex-shrink: 0; }
.fiche__achat form.cart .price { display: none; }
.fiche .fiche__achat form.cart { margin-bottom: 0 !important; }
.fiche__achat form.cart button.single_add_to_cart_button {
	height: auto !important;
	min-height: 3.25rem;
	margin: 0;
	padding: 0 !important;
	line-height: 1.2;
	background: none;
	border: 0;
	color: #fff;
	font-family: inherit;
	font-size: 1.0625rem;
	font-weight: 700;
	cursor: pointer;
}

/* Formation à variantes (ALUR) : choix de la formule puis bouton */
.fiche__achat--variantes form.cart {
	display: block;
	padding: 0;
	background: none;
	box-shadow: none;
}
.fiche__achat--variantes form.cart:hover { transform: none; box-shadow: none; }
.fiche__achat--variantes table.variations { width: 100%; margin: 0 0 1rem; border: 0; }
.fiche__achat--variantes table.variations th,
.fiche__achat--variantes table.variations td { display: block; padding: 0; border: 0; text-align: left; }
.fiche__achat--variantes table.variations label { color: var(--fiche-bleu); font-weight: 700; }
.fiche__achat--variantes table.variations select {
	width: 100%;
	min-width: 0;
	margin-top: .35rem;
	padding: .65rem .9rem;
	border: 1px solid rgba(10, 40, 81, .25);
	border-radius: 12px;
	background: #fff;
	color: var(--fiche-texte);
	font-family: inherit;
	font-size: 1rem;
}
.fiche__achat--variantes .reset_variations { display: inline-block; margin-top: .35rem; color: var(--fiche-gris); font-size: .875rem; }
.fiche__achat--variantes .woocommerce-variation-price { display: none; }
.fiche__achat--variantes .woocommerce-variation-add-to-cart {
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 0 1.5rem;
	background: var(--fiche-corail);
	border-radius: 14px;
}
.fiche__achat--variantes .woocommerce-variation-add-to-cart.woocommerce-variation-add-to-cart-disabled { opacity: .55; }
.fiche .fiche__achat--variantes .single_add_to_cart_button,
.fiche .fiche__achat--variantes .single_add_to_cart_button.disabled {
	height: auto !important;
	min-height: 3.25rem;
	padding: 0 !important;
	background: none !important;
	opacity: 1 !important;
	border: 0;
	color: #fff;
	font-family: inherit;
	font-size: 1.0625rem;
	font-weight: 700;
	cursor: pointer;
}
.fiche .fiche__achat--variantes .quantity { display: none !important; } /* une formation = une place */

.fiche__indisponible {
	display: block;
	margin: 0;
	text-align: center;
	padding: .8rem 1.25rem;
	background: var(--fiche-fond);
	border-radius: 14px;
	color: var(--fiche-bleu);
	font-weight: 700;
}

/* Fiche pas encore ouverte : lien vers le formulaire de contact prérempli */
.fiche__informer {
	display: block;
	margin-top: .75rem;
	padding: .9rem 1.25rem;
	border-radius: 14px;
	background: var(--fiche-corail);
	box-shadow: 0 6px 16px rgba(230, 92, 79, .3);
	color: #fff !important;
	font-weight: 700;
	text-align: center;
	text-decoration: none !important;
	transition: transform .2s ease, box-shadow .2s ease;
}
.fiche__informer:hover { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(230, 92, 79, .35); }

.fiche .ax-offre-meme-prix {
	margin-top: 1rem;
	padding: .75rem 1rem;
	background: var(--fiche-fond-leger);
	border-radius: 14px;
	color: var(--fiche-texte);
	font-size: .9375rem;
}
.fiche .ax-offre-meme-prix p { margin: 0 0 .25rem; color: inherit; }
.fiche .ax-offre-meme-prix a { color: var(--fiche-bleu); font-weight: 700; }

.fiche__pratique {
	display: grid;
	gap: .65rem;
	margin: 1.25rem 0 0;
	padding: 1.25rem 0 0;
	border-top: 1px solid var(--fiche-fond);
	list-style: none;
	font-size: .875rem;
	line-height: 1.45;
}
.fiche__pratique li { display: flex; gap: .6rem; align-items: flex-start; }
.fiche__pratique svg { flex-shrink: 0; margin-top: .15rem; color: var(--fiche-bleu); }
.fiche__pratique strong { color: var(--fiche-bleu); }
.fiche__pratique a { color: var(--fiche-bleu); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
.fiche__etapes { display: block; color: var(--fiche-gris); font-size: .8125rem; }

.fiche .fiche__carte .fiche__note { margin: 1rem 0 0; }

.fiche__fiche-pdf {
	display: inline-flex;
	gap: .4rem;
	align-items: center;
	margin-top: 1rem;
	color: var(--fiche-bleu);
	font-size: .875rem;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* ── Encadré « Programme » ─────────────────────────────────────────────────── */

.fiche__programme {
	margin-top: 2rem;
	padding: 1.75rem 2rem 1.5rem;
	background: var(--fiche-fond);
	border-radius: var(--fiche-rayon);
}
.fiche__programme .fiche__intertitre { margin-bottom: .75rem; }

.fiche__programme-groupe {
	margin: 1.25rem 0 .25rem;
	color: var(--fiche-gris);
	font-size: .8125rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
}
.fiche__programme .fiche__intertitre + .fiche__programme-groupe { margin-top: .25rem; }

.fiche__programme-intro { margin: 0 0 .5rem; color: var(--fiche-gris); font-size: .9375rem; }

.fiche__modules {
	margin: 0;
	padding: 0;
	list-style: none;
}

.fiche__module summary,
.fiche__module-ligne {
	display: flex;
	gap: 1rem;
	align-items: baseline;
	padding: .55rem 0;
}
.fiche__module summary { cursor: pointer; list-style: none; }
.fiche__module summary::-webkit-details-marker { display: none; }
.fiche__module summary:hover .fiche__module-titre { color: var(--fiche-bleu); text-decoration: underline; text-underline-offset: 3px; }
.fiche__module summary:focus-visible { outline: 2px solid var(--fiche-bleu); outline-offset: 2px; border-radius: 6px; }

.fiche__module-num {
	flex-shrink: 0;
	min-width: 1.6rem;
	color: var(--fiche-bleu);
	font-size: .9375rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}
.fiche__module-titre { flex: 1; }
.fiche__module-chevron {
	flex-shrink: 0;
	align-self: center;
	color: var(--fiche-bleu);
	opacity: .45;
	transition: transform .2s ease, opacity .2s ease;
}
.fiche__module details[open] .fiche__module-chevron { transform: rotate(180deg); opacity: .8; }

.fiche__module-detail {
	margin: 0 0 .6rem 2.6rem;
	padding: .75rem 1rem;
	background: rgba(255, 255, 255, .7);
	border-radius: 12px;
	font-size: .9375rem;
}
.fiche__module-detail p { margin: .2rem 0; }
.fiche__module-sous-titre { color: var(--fiche-bleu); font-weight: 700; }
.fiche__module-sous-titre:not(:first-child) { margin-top: .6rem !important; }
.fiche .programme-underline { text-decoration: underline; }

.fiche__quiz {
	display: inline-block;
	margin-top: .5rem !important;
	padding: .2rem .65rem;
	background: var(--fiche-fond);
	border-radius: 999px;
	color: var(--fiche-bleu);
	font-size: .75rem;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
}
.fiche__quiz--final { background: var(--fiche-bleu); color: #fff; }

/* Programme en texte libre (ancien champ HTML sans « Module n ») : replié au-delà de 26rem */
.fiche__programme-libre-contenu { max-height: 26rem; overflow: hidden; font-size: .9375rem; }
.fiche__programme-libre.is-replie .fiche__programme-libre-contenu {
	-webkit-mask-image: linear-gradient(#000 70%, transparent);
	mask-image: linear-gradient(#000 70%, transparent);
}
.fiche__programme-libre.is-ouvert .fiche__programme-libre-contenu { max-height: none; }
.fiche__programme-libre-contenu p,
.fiche__programme-libre-contenu ul { margin: 0 0 .5rem; }
.fiche__programme-libre-contenu img.emoji { width: 1em; height: 1em; vertical-align: -.1em; }
.fiche__voir-tout {
	margin-top: .75rem;
	padding: 0;
	background: none;
	border: 0;
	color: var(--fiche-bleu);
	font-family: inherit;
	font-size: .9375rem;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}

.fiche__pdf { width: 100%; height: 32rem; background: #fff; border-radius: 12px; }
.fiche__telecharger {
	display: inline-block;
	margin-top: 1rem;
	color: var(--fiche-bleu);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.fiche__corps > .fiche__programme:first-child { margin-top: 1rem; }

.fiche__note {
	margin: 2.5rem 0 0;
	color: var(--fiche-gris);
	font-size: .8125rem;
	font-style: italic;
}
.fiche__note a { color: inherit; text-decoration: underline; }

/* ── Sessions, indicateurs, méthodologie ───────────────────────────────────── */

.fiche__sessions .fiche__intertitre { margin-bottom: 1rem; }
.fiche__sessions-grille {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 1rem;
}
.fiche__session {
	padding: 1.25rem 1.5rem;
	background: #fff;
	border-radius: var(--fiche-rayon);
	box-shadow: var(--fiche-ombre);
}
.fiche__session-titre { margin: 0 0 .25rem; color: var(--fiche-bleu); font-size: 1.0625rem; font-weight: 700; }
.fiche__session-periode { margin: 0 0 .75rem; color: var(--fiche-gris); font-size: .875rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.fiche__session-dates { margin: 0; padding: 0; list-style: none; font-size: .9375rem; }
.fiche__session-dates li { padding: .3rem 0; border-top: 1px solid var(--fiche-fond); }
.fiche__session-date--examen { color: var(--fiche-bleu); font-weight: 700; }
.fiche__session-horaires { margin: .75rem 0 0; color: var(--fiche-gris); font-size: .875rem; }

.fiche__indicateurs .fiche__intertitre { margin-bottom: .25rem; }
.fiche__chiffres {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
	gap: 1rem;
	margin: 1rem 0;
}
.fiche__chiffre {
	display: flex;
	flex-direction: column;
	padding: 1.1rem 1.25rem;
	background: var(--fiche-fond-leger);
	border-radius: var(--fiche-rayon);
}
.fiche__chiffre strong { color: var(--fiche-bleu); font-size: 2rem; font-weight: 700; line-height: 1.1; }
.fiche__chiffre span { margin-top: .25rem; font-size: .9375rem; }
.fiche__chiffre small { color: var(--fiche-gris); font-size: .8125rem; }

.fiche__repli + .fiche__repli { margin-top: 1rem; }
.fiche__repli {
	background: var(--fiche-fond);
	border-radius: var(--fiche-rayon);
}
.fiche__repli summary {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.1rem 1.5rem;
	color: var(--fiche-bleu);
	font-size: 1.0625rem;
	font-weight: 700;
	cursor: pointer;
	list-style: none;
}
.fiche__repli summary::-webkit-details-marker { display: none; }
.fiche__repli summary::after { content: "+"; font-size: 1.4rem; line-height: 1; }
.fiche__repli[open] summary::after { content: "–"; }
.fiche__repli-contenu { padding: 0 1.5rem 1.25rem; font-size: .9375rem; }
.fiche__repli-contenu p { margin: 0 0 .6rem; }

/* ── Bandeau d'inscription fixe (bas d'écran) ──────────────────────────────── */

.fiche__barre {
	position: fixed;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 90;
	padding: .65rem 0;
	background: #fff;
	box-shadow: 0 -4px 16px rgba(10, 40, 81, .12);
	transform: translateY(110%);
	transition: transform .25s ease;
}
.fiche__barre.is-visible { transform: none; }
.fiche__barre-contenu { display: flex; gap: 1.25rem; align-items: center; }
.fiche__barre-titre {
	flex: 1;
	min-width: 0;
	margin: 0;
	overflow: hidden;
	color: var(--fiche-bleu);
	font-weight: 700;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.fiche__barre-prix { margin: 0; color: var(--fiche-bleu); font-size: 1.25rem; font-weight: 700; white-space: nowrap; }
.fiche__barre-prix del { color: var(--fiche-gris); font-size: .8em; font-weight: 400; }
.fiche__barre-prix ins { text-decoration: none; }
.fiche__barre-form { margin: 0; }
.fiche .fiche__barre-bouton {
	display: inline-block;
	padding: .8rem 1.4rem;
	background: var(--fiche-corail);
	border: 0;
	border-radius: 12px;
	color: #fff;
	font-family: inherit;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
}
@media (prefers-reduced-motion: reduce) { .fiche__barre { transition: none; } }

/* ── Tablette et mobile : une colonne ; titre, carte d'inscription, puis le contenu ── */

@media (max-width: 960px) {
	.fiche__grille {
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: auto;
		grid-template-areas: "entete" "aside" "corps";
	}
	.fiche__aside { margin-top: 1.5rem; }
	.fiche__carte { max-width: 34rem; }
}

@media (max-width: 600px) {
	.fiche__principal { padding-top: 24px; }
	.fiche__carte { padding: 1.1rem; }
	.fiche__ariane { margin-bottom: 1.25rem; }
	.fiche__programme { padding: 1.25rem 1.1rem 1rem; }
	.fiche__module-detail { margin-left: 0; }
	.fiche__pastilles { flex-wrap: nowrap; }
	.fiche__pastille { flex: 1 1 0; padding: .7rem .9rem; }
	.fiche__pastille-libelle { white-space: normal; }
	.fiche__barre-titre { display: none; }
	.fiche__barre-contenu { justify-content: space-between; }
}
