/* Pages internes — gabarits ACF + Gutenberg (scopé par body_class via templates). */

.flash-internal {
	background: #0e0e0e;
	color: #8f8f8f;
	--flash-ip-accent: rgba(245, 245, 245, 0.14);
	--flash-ip-accent-2: rgba(245, 245, 245, 0.06);
}

.flash-internal a,
.flash-internal a:visited {
	color: inherit;
}

.flash-internal .flash-ip-shell {
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 24px;
}

.flash-internal .flash-ip-hero {
	padding: 96px 0 56px;
	border-bottom: 1px solid rgba(245, 245, 245, 0.10);
	background:
		radial-gradient(circle at 20% 20%, rgba(245, 245, 245, 0.10), rgba(14, 14, 14, 0) 55%),
		linear-gradient(180deg, rgba(245, 245, 245, 0.04), rgba(14, 14, 14, 0));
}

.flash-internal .flash-ip-hero-wide--no-image {
	padding-top: clamp(4rem, 8vw, 5rem);
	padding-bottom: clamp(1.5rem, 3vw, 2.25rem);
}

.flash-internal .flash-ip-hero-wide--no-image .flash-ip-hero-wide__inner {
	position: relative;
	padding-bottom: 0;
}

.flash-internal .flash-ip-hero-wide {
	position: relative;
	z-index: 0;
	width: 100%;
	background: #0e0e0e;
	border-bottom: 1px solid rgba(245, 245, 245, 0.10);
	/* Le parallaxe translate un calque interne : sans clip, bande vide en haut + image au-dessus du bloc suivant. */
	overflow: hidden;
}

.flash-internal .flash-ip-hero-wide__media {
	position: relative;
	width: 100%;
	height: clamp(140px, 22vw, 280px);
	overflow: hidden;
}

/*
 * Calque d’arrière-plan uniquement : flash-parallax.js applique translateY ici (pas sur __media entier),
 * pour ne pas décaler overlay / titres et éviter le « trou » noir + le chevauchement du scroll.
 */
.flash-internal .flash-ip-hero-wide__parallax-bg {
	position: absolute;
	left: 0;
	width: 100%;
	top: -64px;
	height: calc(100% + 128px);
	z-index: 0;
	overflow: hidden;
	pointer-events: none;
}

.flash-internal .flash-ip-hero-wide__media img,
.flash-internal .flash-ip-hero-wide__parallax-bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* Le contenu sous le hero doit rester au-dessus d’éventuels débords de contexte d’empilement (transform). */
.flash-internal main > *:not(.flash-ip-hero-wide) {
	position: relative;
	z-index: 1;
}

.flash-internal .flash-ip-hero-wide__overlay {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(
			to right,
			rgba(14, 14, 14, 0.92) 0%,
			rgba(14, 14, 14, 0.55) 50%,
			rgba(14, 14, 14, 0.08) 100%
		),
		linear-gradient(
			to top,
			rgba(14, 14, 14, 0.80) 0%,
			rgba(14, 14, 14, 0) 45%
		);
	pointer-events: none;
}

/* Titre et intro superposés sur le hero — ancré en bas à gauche de l'image. */
.flash-internal .flash-ip-hero-wide__inner {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 2;
	padding-bottom: clamp(1.25rem, 3vw, 2.25rem);
}

.flash-internal--data .flash-ip-hero-wide__inner {
	padding-bottom: clamp(1.25rem, 3vw, 2.25rem);
}

.flash-internal .flash-ip-hero-wide__below {
	padding: 54px 0 56px;
	background:
		radial-gradient(circle at 18% 10%, var(--flash-ip-accent), rgba(14, 14, 14, 0) 55%),
		radial-gradient(circle at 92% 0%, var(--flash-ip-accent-2), rgba(14, 14, 14, 0) 48%),
		linear-gradient(180deg, rgba(245, 245, 245, 0.04), rgba(14, 14, 14, 0));
}

.flash-internal .flash-ip-eyebrow {
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	font-weight: 800;
	color: #8f8f8f;
}

.flash-internal .flash-ip-title {
	margin: 14px 0 0;
	font-weight: 900;
	letter-spacing: 0.02em;
	line-height: 1.02;
	font-size: clamp(44px, 5.6vw, 84px);
	color: #f5f5f5;
}

.flash-internal .flash-ip-intro {
	margin-top: 18px;
	max-width: 64ch;
	color: #8f8f8f;
	font-size: 18px;
	line-height: 1.7;
}

.flash-internal .flash-entry-prose,
.flash-internal .flash-entry-prose p,
.flash-internal .flash-entry-prose li,
.flash-internal .flash-entry-prose blockquote {
	color: #8f8f8f;
}

.flash-internal .flash-entry-prose strong,
.flash-internal .flash-entry-prose b {
	color: #f5f5f5;
}

.flash-internal .flash-entry-prose h1,
.flash-internal .flash-entry-prose h2,
.flash-internal .flash-entry-prose h3,
.flash-internal .flash-entry-prose h4 {
	color: #f5f5f5;
}

/* Gutenberg / pages internes : titres en blanc dans la zone de prose. */
.flash-ip-body #flash-entry-prose :is(h1, h2, h3, h4, h5, h6, .wp-block-heading),
#flash-entry-prose :is(h1, h2, h3, h4, h5, h6, .wp-block-heading) {
	color: #ffffff !important;
}

/* Pages internes : tableaux lisibles (même couleur que les paragraphes, bordures claires, fond sombre). */
.flash-ip-body #flash-entry-prose :is(.wp-block-table, table) {
	color: #8f8f8f !important;
}
.flash-ip-body #flash-entry-prose :is(.wp-block-table, table) :is(p, span, small, em, i, a, th, td) {
	color: #8f8f8f !important;
}
.flash-ip-body #flash-entry-prose :is(.wp-block-table, table) :is(strong, b) {
	color: #f5f5f5 !important;
}
.flash-ip-body #flash-entry-prose :is(.wp-block-table, table) table,
.flash-ip-body #flash-entry-prose table {
	background: transparent !important;
	border-color: rgba(245, 245, 245, 0.18) !important;
}
.flash-ip-body #flash-entry-prose :is(th, td) {
	background: transparent !important;
	border-color: rgba(245, 245, 245, 0.18) !important;
}
.flash-ip-body #flash-entry-prose thead th {
	background: rgba(245, 245, 245, 0.06) !important;
	border-color: rgba(245, 245, 245, 0.18) !important;
}

.flash-internal .flash-entry-prose a,
.flash-internal .flash-entry-prose a:visited {
	color: #f5f5f5;
	text-decoration-color: rgba(245, 245, 245, 0.35);
}

.flash-internal .flash-entry-prose a:hover,
.flash-internal .flash-entry-prose a:focus-visible {
	text-decoration-color: rgba(245, 245, 245, 0.7);
}

.flash-internal .flash-ip-highlights {
	margin-top: 26px;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.flash-internal .flash-ip-steps {
	margin: 26px 0 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 10px;
	max-width: 70ch;
}

.flash-internal .flash-ip-step {
	display: grid;
	grid-template-columns: 42px 1fr;
	gap: 12px;
	align-items: start;
	padding: 12px 14px;
	border: 1px solid rgba(245, 245, 245, 0.12);
	background: rgba(245, 245, 245, 0.04);
}

.flash-internal .flash-ip-step__num {
	width: 42px;
	height: 42px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(245, 245, 245, 0.18);
	color: #f5f5f5;
	font-weight: 900;
	letter-spacing: .08em;
}

.flash-internal .flash-ip-step__label {
	color: #8f8f8f;
	font-size: 14px;
	line-height: 1.6;
}

.flash-internal .flash-ip-chapters {
	display: grid;
	grid-template-columns: 1fr;
	gap: 14px;
	margin-bottom: 30px;
}

@media (min-width: 768px) {
	.flash-internal .flash-ip-chapters {
		grid-template-columns: repeat(3, 1fr);
	}
}

.flash-internal .flash-ip-chapter {
	border: 1px solid rgba(245, 245, 245, 0.12);
	background: rgba(14, 14, 14, 0.45);
	overflow: hidden;
}

.flash-internal .flash-ip-chapter__media img {
	display: block;
	width: 100%;
	height: 220px;
	object-fit: cover;
}

.flash-internal .flash-ip-chapter__title {
	margin: 0;
	padding: 14px 14px 16px;
	color: #f5f5f5;
	font-size: 16px;
	line-height: 1.25;
	font-weight: 900;
	letter-spacing: .02em;
}

.flash-internal .flash-ip-callout {
	margin-top: 34px;
}

.flash-internal .flash-ip-cards {
	display: grid;
	gap: 10px;
	width: 100%;
	max-width: 520px;
}

.flash-internal .flash-ip-card {
	display: grid;
	grid-template-columns: 14px 1fr;
	gap: 10px;
	align-items: start;
	padding: 12px 14px;
	border: 1px solid rgba(245, 245, 245, 0.12);
	background: rgba(245, 245, 245, 0.04);
}

.flash-internal .flash-ip-card__dot {
	width: 10px;
	height: 10px;
	border-radius: 99px;
	background: rgba(245, 245, 245, 0.55);
	margin-top: 6px;
}

.flash-internal .flash-ip-card__text {
	color: #8f8f8f;
	font-size: 14px;
	line-height: 1.6;
}

.flash-internal .flash-ip-mosaic {
	margin-top: 28px;
	display: grid;
	grid-template-columns: 1fr;
	gap: 12px;
}

@media (min-width: 768px) {
	.flash-internal .flash-ip-mosaic {
		grid-template-columns: 1.2fr 0.8fr;
		grid-template-rows: auto auto;
	}
	.flash-internal .flash-ip-mosaic__item--1 {
		grid-column: 1;
		grid-row: 1 / span 2;
	}
	.flash-internal .flash-ip-mosaic__item--2 {
		grid-column: 2;
		grid-row: 1;
	}
	.flash-internal .flash-ip-mosaic__item--3 {
		grid-column: 2;
		grid-row: 2;
	}
}

.flash-internal .flash-ip-mosaic__item {
	border: 1px solid rgba(245, 245, 245, 0.10);
	overflow: hidden;
	background: rgba(14, 14, 14, 0.35);
}

.flash-internal .flash-ip-mosaic__item img {
	display: block;
	width: 100%;
	height: 240px;
	object-fit: cover;
}

@media (min-width: 768px) {
	.flash-internal .flash-ip-mosaic__item--1 img {
		height: 492px;
	}
}

.flash-internal .flash-ip-chip {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 12px;
	border: 1px solid rgba(245, 245, 245, 0.14);
	background: rgba(14, 14, 14, 0.55);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	font-size: 12px;
	font-weight: 700;
	color: rgba(245, 245, 245, 0.88);
	white-space: nowrap;
}

.flash-internal .flash-ip-chip::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 99px;
	background: rgba(245, 245, 245, 0.55);
}

.flash-internal .flash-ip-cta {
	margin-top: 26px;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 12px 16px;
	border: 1px solid rgba(245, 245, 245, 0.20);
	background: rgba(245, 245, 245, 0.08);
	font-weight: 900;
	letter-spacing: .08em;
	text-transform: uppercase;
	font-size: 12px;
	transition: transform 220ms ease, border-color 220ms ease, background-color 220ms ease;
}

.flash-internal .flash-ip-cta:hover,
.flash-internal .flash-ip-cta:focus-visible {
	transform: translate3d(0, -1px, 0);
	border-color: rgba(245, 245, 245, 0.5);
	background: rgba(245, 245, 245, 0.12);
}

.flash-internal .flash-ip-body {
	padding: 56px 0 92px;
}

.flash-internal .flash-ip-hero-media {
	margin-top: 26px;
	border: 1px solid rgba(245, 245, 245, 0.12);
	background: rgba(14, 14, 14, 0.4);
	overflow: hidden;
}

.flash-internal .flash-ip-hero-media img {
	display: block;
	width: 100%;
	height: auto;
}

.flash-internal .flash-ip-gallery {
	margin-top: 34px;
	display: grid;
	grid-template-columns: 1fr;
	gap: 12px;
}

.flash-internal .flash-ip-fullbleed {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

.flash-internal .flash-ip-fullbleed__inner {
	padding: 0 24px 72px;
}

.flash-internal .flash-ip-gallery--full {
	margin-top: 0;
}

/* Slider galerie (ACF) */
.flash-internal .flash-ip-swiper {
	position: relative;
}

.flash-internal .flash-ip-swiper.swiper-container {
	overflow: hidden;
}

.flash-internal .flash-ip-swiper .swiper-wrapper {
	align-items: stretch;
}

.flash-internal .flash-ip-swiper .swiper-slide {
	overflow: hidden;
}

.flash-internal .flash-ip-swiper .swiper-slide img {
	display: block;
	width: 100%;
	/* Base mobile */
	aspect-ratio: 16 / 9;
	height: auto;
	object-fit: cover;
}

/* Tablet */
@media (min-width: 768px) {
	.flash-internal .flash-ip-swiper .swiper-slide img {
		aspect-ratio: 16 / 10;
	}
}

.flash-internal .flash-ip-swiper__nav {
	position: absolute;
	inset: 50% 10px auto 10px;
	transform: translateY(-50%);
	display: flex;
	justify-content: space-between;
	z-index: 5;
	pointer-events: none;
	width: calc(100% - 20px);
}

.flash-internal .flash-ip-swiper__btn {
	width: 44px;
	height: 44px;
	border: 1px solid rgba(245, 245, 245, 0.18);
	background: rgba(14, 14, 14, 0.55);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	color: #f5f5f5;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-weight: 900;
	line-height: 1;
	transition: transform 220ms ease, border-color 220ms ease, background-color 220ms ease, opacity 220ms ease;
	pointer-events: auto;
	opacity: 1 !important;
	visibility: visible !important;
}

.flash-internal .flash-ip-swiper__btn.swiper-button-disabled {
	opacity: 0.35 !important;
}

/* -------------------------------------------------------------------------- */
/* Identités gabarits — layouts + accents (scopés par .flash-internal--*)     */
/* -------------------------------------------------------------------------- */

.flash-internal .flash-ip-panel--glass {
	border: 1px solid rgba(245, 245, 245, 0.14);
	background: rgba(14, 14, 14, 0.55);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	box-shadow: 0 18px 60px rgba(0, 0, 0, 0.35);
}

/* --- Split (doc / produit) ------------------------------------------------ */

.flash-internal--split .flash-ip-split-head.flash-ip-hero-wide__below {
	padding: 0;
	background: none;
	border-bottom: 0;
}

.flash-internal--split .flash-ip-split-head {
	position: relative;
	border-bottom: 1px solid rgba(245, 245, 245, 0.10);
	background:
		radial-gradient(circle at 12% 0%, var(--flash-ip-accent), rgba(14, 14, 14, 0) 55%),
		linear-gradient(180deg, rgba(245, 245, 245, 0.05), rgba(14, 14, 14, 0));
}

.flash-internal--split .flash-ip-split-head__top {
	position: relative;
	padding: 54px 0 56px;
}

/* Hero "wide" (avec image) : descendre légèrement le contenu (plus proche du bas). */
.flash-internal--split .flash-ip-hero-wide__inner .flash-ip-split-head__top {
	padding: 40px 0 22px;
}

.flash-internal--split .flash-ip-split-head__titlerow {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
	align-items: start;
}

@media (min-width: 1024px) {
	.flash-internal--split .flash-ip-split-head__titlerow {
		grid-template-columns: 1fr auto;
		align-items: end;
		gap: 22px;
	}
}

.flash-internal--split .flash-ip-split-head__cta {
	margin-top: 0;
	white-space: nowrap;
	border-color: rgba(245, 245, 245, 0.22);
	background: rgba(245, 245, 245, 0.08);
}

.flash-internal--split .flash-ip-split-head__intro {
	max-width: 72ch;
}

.flash-internal--split .flash-ip-split-kpis {
	margin-top: 20px;
	display: grid;
	grid-template-columns: 1fr;
	gap: 10px;
}

@media (min-width: 640px) {
	.flash-internal--split .flash-ip-split-kpis {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1024px) {
	.flash-internal--split .flash-ip-split-kpis {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.flash-internal--split .flash-ip-split-kpi {
	display: grid;
	grid-template-columns: 14px 1fr;
	gap: 10px;
	align-items: start;
	padding: 12px 12px;
	border: 1px solid rgba(245, 245, 245, 0.12);
	background: rgba(245, 245, 245, 0.03);
}

.flash-internal--split .flash-ip-split-kpi__dot {
	width: 10px;
	height: 10px;
	border-radius: 99px;
	background: rgba(245, 245, 245, 0.55);
	margin-top: 6px;
	box-shadow: 0 0 0 6px rgba(245, 245, 245, 0.06);
}

.flash-internal--split .flash-ip-split-kpi__text {
	color: #8f8f8f;
	font-size: 13px;
	line-height: 1.55;
}

.flash-internal--split .flash-ip-split-rail__panel {
	border-color: rgba(14, 14, 14, 0.12);
	background: #ffffff;
}

.flash-internal--split .flash-ip-split-rail__thumb {
	border: 1px solid rgba(245, 245, 245, 0.12);
	overflow: hidden;
	background: rgba(14, 14, 14, 0.35);
}

.flash-internal--split .flash-ip-split-rail__thumb img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 5;
	object-fit: cover;
}

.flash-internal--split .flash-ip-split-strip {
	background:
		radial-gradient(circle at 18% 40%, var(--flash-ip-accent-2), rgba(14, 14, 14, 0) 55%),
		linear-gradient(180deg, rgba(245, 245, 245, 0.03), rgba(14, 14, 14, 0));
	border-top: 1px solid rgba(245, 245, 245, 0.08);
	border-bottom: 1px solid rgba(245, 245, 245, 0.08);
}

.flash-internal--split .flash-ip-split-strip__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 12px;
}

@media (min-width: 900px) {
	.flash-internal--split .flash-ip-split-strip__grid {
		grid-template-columns: 1.25fr 0.75fr;
		align-items: stretch;
	}
}

.flash-internal--split .flash-ip-split-strip__a img,
.flash-internal--split .flash-ip-split-strip__b img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 350px;
	object-fit: cover;
	object-position: center;
	border: 1px solid rgba(245, 245, 245, 0.10);
}

@media (min-width: 900px) {
	.flash-internal--split .flash-ip-split-strip__a img,
	.flash-internal--split .flash-ip-split-strip__b img {
		/* Force les 2 visuels à la même hauteur quand ils sont côte à côte. */
		height: 350px;
		max-height: 350px;
	}
}

/* --- Data (dashboard / specs) ---------------------------------------------- */

.flash-internal--data .flash-ip-data-spec {
	position: relative;
	border-bottom: 1px solid rgba(245, 245, 245, 0.10);
	background:
		repeating-linear-gradient(
			90deg,
			rgba(245, 245, 245, 0.04) 0px,
			rgba(245, 245, 245, 0.04) 1px,
			rgba(14, 14, 14, 0) 1px,
			rgba(14, 14, 14, 0) 92px
		),
		linear-gradient(180deg, rgba(245, 245, 245, 0.04), rgba(14, 14, 14, 0));
}

.flash-internal--data .flash-ip-data-spec__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 22px;
	align-items: start;
	padding: 44px 0 46px;
}

@media (min-width: 1024px) {
	.flash-internal--data .flash-ip-data-spec__grid {
		grid-template-columns: 1.15fr 0.85fr;
		gap: 28px;
		align-items: end;
	}
}

.flash-internal--data .flash-ip-data-spec__aside {
	display: grid;
	gap: 14px;
	justify-items: stretch;
}

.flash-internal--data .flash-ip-data-specbar {
	display: grid;
	grid-template-columns: 1fr;
	gap: 8px;
}

@media (min-width: 640px) {
	.flash-internal--data .flash-ip-data-specbar {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.flash-internal--data .flash-ip-data-specbar__item {
	padding: 10px 12px;
	border: 1px solid rgba(245, 245, 245, 0.12);
	background: rgba(14, 14, 14, 0.35);
	color: #8f8f8f;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	border-left: 3px solid rgba(245, 245, 245, 0.35);
}

.flash-internal--data .flash-ip-data-spec__cta {
	margin-top: 0;
	border-color: rgba(245, 245, 245, 0.22);
	background: rgba(245, 245, 245, 0.08);
}

/* CTA "Télécharger le dossier pédagogique" : plus visible (fond blanc / texte noir) */
.flash-internal--data .flash-ip-data-spec__cta.flash-ip-cta {
	background: #ffffff;
	color: #0e0e0e !important;
	border-color: rgba(255, 255, 255, 0.9);
	box-shadow: 0 16px 48px rgba(0, 0, 0, 0.35);
	margin-top: 10px;
}

.flash-internal--data .flash-ip-data-spec__cta.flash-ip-cta:hover,
.flash-internal--data .flash-ip-data-spec__cta.flash-ip-cta:focus-visible {
	background: rgba(255, 255, 255, 0.94);
	color: #0e0e0e !important;
	border-color: #ffffff;
	transform: translate3d(0, -1px, 0);
}

.flash-internal--data .flash-ip-data-spec__cta.flash-ip-cta:hover :is(span, i, svg, .material-icons),
.flash-internal--data .flash-ip-data-spec__cta.flash-ip-cta:focus-visible :is(span, i, svg, .material-icons),
.flash-internal--data .flash-ip-data-spec__cta.flash-ip-cta:active :is(span, i, svg, .material-icons) {
	color: #0e0e0e !important;
}

.flash-internal--data .flash-ip-bottom-cta {
	padding: 0 0 92px;
}

.flash-internal--data .flash-ip-bottom-cta .flash-ip-shell {
	display: flex;
	justify-content: center;
}

.flash-internal--data .flash-ip-bottom-cta .flash-ip-cta {
	margin-top: 0;
}

.flash-internal--data .flash-ip-data-rail__panel {
	border-color: rgba(14, 14, 14, 0.12);
	background: #ffffff;
}

.flash-internal--data .flash-ip-data-rail__thumb {
	border: 1px solid rgba(245, 245, 245, 0.12);
	overflow: hidden;
	background: rgba(14, 14, 14, 0.35);
}

.flash-internal--data .flash-ip-data-rail__thumb img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 10;
	object-fit: cover;
}

.flash-internal--data .flash-ip-data-matrix {
	background:
		radial-gradient(circle at 80% 30%, var(--flash-ip-accent-2), rgba(14, 14, 14, 0) 55%),
		linear-gradient(180deg, rgba(245, 245, 245, 0.03), rgba(14, 14, 14, 0));
	border-top: 1px solid rgba(245, 245, 245, 0.08);
	border-bottom: 1px solid rgba(245, 245, 245, 0.08);
}

.flash-internal--data .flash-ip-data-matrix__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 12px;
}

@media (min-width: 900px) {
	.flash-internal--data .flash-ip-data-matrix__grid {
		grid-template-columns: 0.78fr 1.22fr;
		align-items: stretch;
	}
}

.flash-internal--data .flash-ip-data-matrix__a img,
.flash-internal--data .flash-ip-data-matrix__b img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 350px;
	object-fit: cover;
	object-position: center;
	border: 1px solid rgba(245, 245, 245, 0.10);
	outline: 1px solid rgba(245, 245, 245, 0.12);
	outline-offset: -10px;
}

@media (min-width: 900px) {
	.flash-internal--data .flash-ip-data-matrix__a img,
	.flash-internal--data .flash-ip-data-matrix__b img {
		/* Force les 2 visuels à la même hauteur quand ils sont côte à côte. */
		height: 350px;
		max-height: 350px;
	}
}

/* --- Editorial (couverture + deck) ---------------------------------------- */

.flash-internal--editorial .flash-ip-editorial-cover .flash-ip-hero-wide__media {
	height: clamp(200px, 34vh, 400px);
}

.flash-internal--editorial .flash-ip-editorial-cover__media {
	position: relative;
}

.flash-internal--editorial .flash-ip-editorial-cover__overlay {
	background:
		linear-gradient(
			to right,
			rgba(14, 14, 14, 0.92) 0%,
			rgba(14, 14, 14, 0.55) 50%,
			rgba(14, 14, 14, 0.08) 100%
		),
		linear-gradient(
			to top,
			rgba(14, 14, 14, 0.80) 0%,
			rgba(14, 14, 14, 0) 45%
		);
}

.flash-internal--editorial .flash-ip-editorial-cover__content {
	position: absolute;
	inset: 0;
	width: 100%;
	max-width: none;
	margin: 0;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: 28px 24px 34px;
	z-index: 2;
}

.flash-internal--editorial .flash-ip-editorial-cover__eyebrow {
	color: rgba(245, 245, 245, 0.72);
}

.flash-internal--editorial .flash-ip-editorial-cover__title {
	max-width: 18ch;
	text-shadow: 0 18px 70px rgba(0, 0, 0, 0.55);
}

.flash-internal--editorial .flash-ip-editorial-cover__lede {
	max-width: 52ch;
	color: rgba(245, 245, 245, 0.78);
}

.flash-internal--editorial .flash-ip-editorial-cover__lede p {
	color: inherit;
}

.flash-internal--editorial .flash-ip-editorial-cover__cta {
	margin-top: 18px;
}

.flash-internal--editorial .flash-ip-editorial-cover__cta-btn {
	margin-top: 0;
	border-color: rgba(245, 245, 245, 0.22);
	background: rgba(245, 245, 245, 0.10);
}

.flash-internal--editorial .flash-ip-editorial-fallback {
	padding: 72px 0 40px;
	border-bottom: 1px solid rgba(245, 245, 245, 0.10);
	background:
		radial-gradient(circle at 20% 0%, var(--flash-ip-accent-2), rgba(14, 14, 14, 0) 55%),
		linear-gradient(180deg, rgba(245, 245, 245, 0.04), rgba(14, 14, 14, 0));
}

.flash-internal--editorial .flash-ip-editorial-deck {
	padding: 44px 0 10px;
	border-bottom: 1px solid rgba(245, 245, 245, 0.08);
}

.flash-internal--editorial .flash-ip-editorial-deck__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 22px;
	align-items: start;
}

@media (min-width: 1024px) {
	.flash-internal--editorial .flash-ip-editorial-deck__grid {
		grid-template-columns: 1.05fr 0.95fr;
		gap: 28px;
	}
}

.flash-internal--editorial .flash-ip-editorial-deck__grid--single {
	grid-template-columns: 1fr;
}

@media (min-width: 1024px) {
	.flash-internal--editorial .flash-ip-editorial-deck__grid--single {
		grid-template-columns: 1fr;
	}
}

.flash-internal--editorial .flash-ip-editorial-rail__panel {
	border-color: rgba(245, 245, 245, 0.14);
	background: rgba(245, 245, 245, 0.04);
}

.flash-internal--editorial .flash-ip-editorial-rail__img {
	border: 1px solid rgba(245, 245, 245, 0.12);
	overflow: hidden;
	background: rgba(14, 14, 14, 0.35);
}

.flash-internal--editorial .flash-ip-editorial-rail__img img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 4;
	object-fit: cover;
}

.flash-internal--editorial .flash-ip-editorial-title {
	font-size: clamp(40px, 5.2vw, 78px);
	letter-spacing: 0.02em;
}

.flash-internal--editorial .flash-ip-editorial-lede {
	font-size: clamp(16px, 1.35vw, 20px);
	line-height: 1.75;
}

.flash-internal--editorial .flash-ip-editorial-pulls {
	display: grid;
	gap: 12px;
}

.flash-internal--editorial .flash-ip-editorial-pull {
	margin: 0;
	padding: 0;
	border-left: 3px solid rgba(245, 245, 245, 0.35);
	padding-left: 16px;
}

.flash-internal--editorial .flash-ip-editorial-pull__quote {
	margin: 0;
	color: #f5f5f5;
	font-weight: 900;
	font-size: clamp(18px, 2.1vw, 26px);
	line-height: 1.25;
	letter-spacing: 0.02em;
}

.flash-internal--editorial .flash-ip-editorial-body {
	padding-top: 44px;
}

.flash-internal--editorial .flash-ip-editorial-prose {
	max-width: min(72ch, 100%);
	margin: 0 auto;
}

.flash-internal--editorial .flash-ip-editorial-prose > p:first-of-type::first-letter {
	float: left;
	font-weight: 900;
	color: #f5f5f5;
	font-size: clamp(44px, 4.6vw, 64px);
	line-height: 0.85;
	padding-right: 12px;
	margin-top: 6px;
}

.flash-internal--editorial .flash-ip-editorial-zigzag {
	background:
		radial-gradient(circle at 10% 40%, var(--flash-ip-accent-2), rgba(14, 14, 14, 0) 55%),
		linear-gradient(180deg, rgba(245, 245, 245, 0.03), rgba(14, 14, 14, 0));
	border-top: 1px solid rgba(245, 245, 245, 0.08);
	border-bottom: 1px solid rgba(245, 245, 245, 0.08);
}

.flash-internal--editorial .flash-ip-editorial-zigzag__row {
	display: grid;
	grid-template-columns: 1fr;
	gap: 12px;
	align-items: stretch;
	margin-top: 18px;
}

@media (min-width: 900px) {
	.flash-internal--editorial .flash-ip-editorial-zigzag__row {
		grid-template-columns: 1fr 1fr;
		gap: 18px;
		margin-top: 22px;
	}
}

.flash-internal--editorial .flash-ip-editorial-zigzag__media img {
	display: block;
	width: 100%;
	height: clamp(220px, 30vw, 460px);
	object-fit: cover;
	border: 1px solid rgba(245, 245, 245, 0.10);
}

.flash-internal--editorial .flash-ip-editorial-videos {
	margin-top: 0;
	grid-template-columns: 1fr;
}

@media (min-width: 900px) {
	.flash-internal--editorial .flash-ip-editorial-videos {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* Ticker highlights (legacy / compat) */
.flash-internal .flash-ip-split-ticker {
	margin-top: 18px;
	display: flex;
	flex-wrap: nowrap;
	gap: 10px;
	overflow-x: auto;
	padding-bottom: 6px;
	scrollbar-width: thin;
}

.flash-internal .flash-ip-split-ticker__item {
	flex: 0 0 auto;
	padding: 10px 12px;
	border: 1px solid rgba(245, 245, 245, 0.12);
	background: rgba(245, 245, 245, 0.04);
	color: #8f8f8f;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	white-space: nowrap;
}

/* Desktop-first: centrer & agrandir progressivement */
@media (min-width: 1024px) {
	.flash-internal .flash-ip-fullbleed__inner {
		max-width: 1240px;
		margin: 0 auto;
	}
	.flash-internal .flash-ip-swiper.swiper-container {
		max-width: 1180px;
		margin: 0 auto;
	}
	.flash-internal .flash-ip-swiper .swiper-slide img {
		aspect-ratio: 3 / 2;
	}
	.flash-internal .flash-ip-swiper__btn {
		width: 48px;
		height: 48px;
	}
}

@media (min-width: 1280px) {
	.flash-internal .flash-ip-fullbleed__inner {
		max-width: 1320px;
	}
	.flash-internal .flash-ip-swiper.swiper-container {
		max-width: 1260px;
	}
	.flash-internal .flash-ip-swiper__nav {
		inset: 50% 14px auto 14px;
		width: calc(100% - 28px);
	}
}

@media (min-width: 1440px) {
	.flash-internal .flash-ip-fullbleed__inner {
		max-width: 1400px;
	}
	.flash-internal .flash-ip-swiper.swiper-container {
		max-width: 1340px;
	}
	.flash-internal .flash-ip-swiper__btn {
		width: 52px;
		height: 52px;
	}
}

.flash-internal .flash-ip-swiper__btn:hover,
.flash-internal .flash-ip-swiper__btn:focus-visible {
	transform: translate3d(0, -1px, 0);
	border-color: rgba(245, 245, 245, 0.55);
	background: rgba(14, 14, 14, 0.75);
}

.flash-internal .flash-ip-swiper__btn[disabled] {
	opacity: 0.35;
	cursor: not-allowed;
}

@media (min-width: 768px) {
	.flash-internal .flash-ip-gallery {
		grid-template-columns: repeat(3, 1fr);
	}
}

.flash-internal .flash-ip-gallery img {
	width: 100%;
	height: 240px;
	object-fit: cover;
	display: block;
	border: 1px solid rgba(245, 245, 245, 0.10);
}

@media (min-width: 768px) {
	.flash-internal--grid .flash-ip-gallery {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* Surcharges "plugin galerie" (scopées) — force une grille responsive. */
.flash-internal .flash-ip-gallery--full img {
	width: 100% !important;
	height: auto !important;
	display: block !important;
}

/* Envira Gallery: neutralise layout, on transforme en Swiper */
.flash-internal .flash-ip-gallery--full .envira-gallery-wrap,
.flash-internal .flash-ip-gallery--full .envira-gallery-public,
.flash-internal .flash-ip-gallery--full .envira-gallery-container {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

.flash-internal .flash-ip-gallery--full .envira-gallery-item {
	float: none !important;
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
}

.flash-internal .flash-ip-gallery--full .envira-gallery-item a {
	display: block !important;
}

.flash-internal .flash-ip-gallery--full ul,
.flash-internal .flash-ip-gallery--full ol {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

.flash-internal .flash-ip-gallery--full .gallery,
.flash-internal .flash-ip-gallery--full ul,
.flash-internal .flash-ip-gallery--full .wp-block-gallery,
.flash-internal .flash-ip-gallery--full .blocks-gallery-grid {
	display: grid !important;
	grid-template-columns: 1fr !important;
	gap: 12px !important;
}

@media (min-width: 640px) {
	.flash-internal .flash-ip-gallery--full .gallery,
	.flash-internal .flash-ip-gallery--full ul,
	.flash-internal .flash-ip-gallery--full .wp-block-gallery,
	.flash-internal .flash-ip-gallery--full .blocks-gallery-grid {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}

@media (min-width: 1024px) {
	.flash-internal .flash-ip-gallery--full .gallery,
	.flash-internal .flash-ip-gallery--full ul,
	.flash-internal .flash-ip-gallery--full .wp-block-gallery,
	.flash-internal .flash-ip-gallery--full .blocks-gallery-grid {
		grid-template-columns: repeat(3, 1fr) !important;
	}
}

.flash-internal .flash-ip-gallery--full .gallery-item,
.flash-internal .flash-ip-gallery--full li,
.flash-internal .flash-ip-gallery--full figure {
	margin: 0 !important;
	/*
	 * WordPress [gallery] injecte un style inline "width: 33%" (ou 50 %, 25 %…)
	 * sur chaque .gallery-item. Dans un grid CSS, ce pourcentage est relatif au
	 * conteneur grid entier, pas à la colonne — d'où les vignettes trop étroites
	 * sur mobile (1 col) et tablette (2 col). "auto" laisse le grid décider.
	 */
	width: auto !important;
	max-width: none !important;
}

.flash-internal .flash-ip-gallery--full a {
	text-decoration: none !important;
}

.flash-internal .flash-ip-grid-split {
	display: grid;
	grid-template-columns: 1fr;
	gap: 32px;
}

@media (min-width: 1024px) {
	.flash-internal .flash-ip-grid-split {
		grid-template-columns: 1.2fr 0.8fr;
		gap: 44px;
		align-items: start;
	}
}

.flash-internal .flash-ip-grid-split--single {
	grid-template-columns: 1fr;
}

@media (min-width: 1024px) {
	.flash-internal .flash-ip-grid-split--single {
		grid-template-columns: 1fr;
		gap: 28px;
	}
}

.flash-internal .flash-ip-extra-block {
	margin-top: 36px;
}

/* Encadrés texte (sidebar, bloc complémentaire) : fond blanc + texte foncé pour alléger la lecture. */
.flash-internal .flash-ip-panel {
	border: 1px solid rgba(14, 14, 14, 0.12);
	background: #ffffff;
	color: #0e0e0e;
	padding: 18px 18px 16px;
	box-shadow: 0 18px 60px rgba(0, 0, 0, 0.25);
}

.flash-internal .flash-ip-panel .flash-entry-prose,
.flash-internal .flash-ip-panel .flash-entry-prose p,
.flash-internal .flash-ip-panel .flash-entry-prose li,
.flash-internal .flash-ip-panel .flash-entry-prose blockquote {
	color: rgba(14, 14, 14, 0.82);
}

.flash-internal .flash-ip-panel .flash-entry-prose strong,
.flash-internal .flash-ip-panel .flash-entry-prose b {
	color: #0e0e0e;
}

.flash-internal .flash-ip-panel .flash-entry-prose a,
.flash-internal .flash-ip-panel .flash-entry-prose a:visited {
	color: #0e0e0e;
	text-decoration-color: rgba(14, 14, 14, 0.35);
}

.flash-internal .flash-ip-panel .flash-entry-prose a:hover,
.flash-internal .flash-ip-panel .flash-entry-prose a:focus-visible {
	text-decoration-color: rgba(14, 14, 14, 0.7);
}

.flash-internal .flash-ip-panel .flash-ip-cta {
	color: #0e0e0e;
	border-color: rgba(14, 14, 14, 0.22);
	background: rgba(14, 14, 14, 0.06);
}

.flash-internal .flash-ip-panel .flash-ip-cta:hover,
.flash-internal .flash-ip-panel .flash-ip-cta:focus-visible {
	border-color: rgba(14, 14, 14, 0.45);
	background: rgba(14, 14, 14, 0.1);
}

.flash-internal .flash-ip-panel h2,
.flash-internal .flash-ip-panel h3 {
	margin-top: 0;
	color: #0e0e0e;
}

.flash-internal .flash-ip-panel--sticky {
	position: sticky;
	top: 18px;
}

.flash-internal .flash-ip-panel--rail {
	border-color: rgba(14, 14, 14, 0.12);
	background: #ffffff;
}

.flash-internal .flash-ip-panel strong,
.flash-internal .flash-ip-panel b {
	color: #0e0e0e;
}

.flash-internal .flash-ip-videos {
	margin-top: 30px;
	display: grid;
	gap: 14px;
}

.flash-internal .flash-ip-video {
	border: 1px solid rgba(245, 245, 245, 0.12);
	background: rgba(14, 14, 14, 0.4);
	padding: 12px;
}

.flash-internal .flash-ip-video .wp-embed-responsive,
.flash-internal .flash-ip-video iframe {
	max-width: 100%;
}

/* -------------------------------------------------------------------------- */
/* Dynamisme — pages internes uniquement (JS : internal-pages.js)            */
/* -------------------------------------------------------------------------- */

/* Barre de progression de lecture (fixed, scaleX via JS) */
.flash-ip-scroll-progress {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	height: 2px;
	z-index: 99998;
	pointer-events: none;
	transform-origin: 0 50%;
	transform: scaleX(0);
	background: linear-gradient(90deg, rgba(245, 245, 245, 0.2), rgba(245, 245, 245, 0.85));
	will-change: transform;
}

/* Halo curseur sur bandeaux Split / Data */
.flash-internal .flash-ip-cursor-glow {
	--flash-ip-spot-x: 22%;
	--flash-ip-spot-y: 12%;
}

.flash-internal .flash-ip-cursor-glow::before {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 0;
	background: radial-gradient(
		420px circle at var(--flash-ip-spot-x) var(--flash-ip-spot-y),
		rgba(245, 245, 245, 0.075),
		transparent 62%
	);
	mix-blend-mode: screen;
	opacity: 0.85;
}

.flash-internal .flash-ip-cursor-glow > * {
	position: relative;
	z-index: 1;
}

/* Apparition en cascade (listes KPI, spec bar, pulls, cards) */
.flash-internal .flash-ip-stagger-children > * {
	opacity: 0;
	transform: translate3d(0, 14px, 0);
	transition:
		opacity 0.55s ease,
		transform 0.68s cubic-bezier(0.22, 1, 0.36, 1);
}

.flash-internal .flash-ip-stagger-children.flash-ip-stagger--in > * {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

.flash-internal .flash-ip-stagger-children.flash-ip-stagger--in > *:nth-child(1) {
	transition-delay: 35ms;
}
.flash-internal .flash-ip-stagger-children.flash-ip-stagger--in > *:nth-child(2) {
	transition-delay: 75ms;
}
.flash-internal .flash-ip-stagger-children.flash-ip-stagger--in > *:nth-child(3) {
	transition-delay: 115ms;
}
.flash-internal .flash-ip-stagger-children.flash-ip-stagger--in > *:nth-child(4) {
	transition-delay: 155ms;
}
.flash-internal .flash-ip-stagger-children.flash-ip-stagger--in > *:nth-child(5) {
	transition-delay: 195ms;
}
.flash-internal .flash-ip-stagger-children.flash-ip-stagger--in > *:nth-child(6) {
	transition-delay: 235ms;
}
.flash-internal .flash-ip-stagger-children.flash-ip-stagger--in > *:nth-child(7) {
	transition-delay: 275ms;
}
.flash-internal .flash-ip-stagger-children.flash-ip-stagger--in > *:nth-child(8) {
	transition-delay: 315ms;
}
.flash-internal .flash-ip-stagger-children.flash-ip-stagger--in > *:nth-child(9) {
	transition-delay: 355ms;
}
.flash-internal .flash-ip-stagger-children.flash-ip-stagger--in > *:nth-child(10) {
	transition-delay: 395ms;
}
.flash-internal .flash-ip-stagger-children.flash-ip-stagger--in > *:nth-child(11) {
	transition-delay: 435ms;
}
.flash-internal .flash-ip-stagger-children.flash-ip-stagger--in > *:nth-child(12) {
	transition-delay: 475ms;
}

/* Tilt 3D léger au survol */
.flash-internal .flash-ip-tilt {
	transform-style: preserve-3d;
	transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
	will-change: transform;
}

/* Cadre enveloppant pour le tilt des images de galerie grille */
.flash-internal .flash-ip-img-frame {
	overflow: hidden;
	display: block;
	line-height: 0;
	border: 1px solid rgba(245, 245, 245, 0.10);
}

.flash-internal .flash-ip-img-frame img {
	display: block;
	width: 100%;
	height: 240px;
	object-fit: cover;
	transition: transform 0.35s ease;
	pointer-events: none;
}

/* Curseur zoom sur les items de mosaïque et chapitres */
.flash-internal .flash-ip-mosaic__item,
.flash-internal .flash-ip-chapter__media {
	cursor: zoom-in;
}

/* -------------------------------------------------------------------------- */
/* Lightbox                                                                    */
/* -------------------------------------------------------------------------- */
.flash-ip-lightbox {
	display: none;
	position: fixed;
	inset: 0;
	z-index: 99999;
}

.flash-ip-lightbox--open {
	display: flex;
	align-items: center;
	justify-content: center;
}

.flash-ip-lightbox__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.88);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}

.flash-ip-lightbox__stage {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	max-width: calc(100vw - 40px);
	max-height: calc(100vh - 40px);
}

.flash-ip-lightbox__img {
	display: block;
	max-width: calc(100vw - 40px);
	max-height: calc(100vh - 80px);
	width: auto;
	height: auto;
	object-fit: contain;
	box-shadow: 0 32px 80px rgba(0, 0, 0, 0.65);
	animation: flash-lb-in 0.28s cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes flash-lb-in {
	from {
		opacity: 0;
		transform: scale(0.92);
	}
	to {
		opacity: 1;
		transform: scale(1);
	}
}

.flash-ip-lightbox__close {
	position: fixed;
	top: 16px;
	right: 18px;
	width: 40px;
	height: 40px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(245, 245, 245, 0.22);
	background: rgba(14, 14, 14, 0.65);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	color: #f5f5f5;
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
	transition: background 220ms ease, border-color 220ms ease;
	z-index: 2;
}

.flash-ip-lightbox__close:hover,
.flash-ip-lightbox__close:focus-visible {
	background: rgba(14, 14, 14, 0.9);
	border-color: rgba(245, 245, 245, 0.5);
}

@media (prefers-reduced-motion: reduce) {
	.flash-ip-lightbox__img {
		animation: none;
	}
}

/* Hero : léger “respiration” sur l’image (calque parallaxe séparé du conteneur __media) */
@media (prefers-reduced-motion: no-preference) {
	.flash-internal .flash-ip-hero-wide__parallax-bg img {
		animation: flash-ip-hero-drift 24s ease-in-out infinite alternate;
	}
}

@keyframes flash-ip-hero-drift {
	0% {
		transform: scale(1) translate3d(0, 0, 0);
	}
	100% {
		transform: scale(1.042) translate3d(0, -0.35%, 0);
	}
}

@media (prefers-reduced-motion: reduce) {
	.flash-internal .flash-ip-stagger-children > * {
		opacity: 1;
		transform: none;
		transition: none;
	}

	.flash-internal .flash-ip-hero-wide__parallax-bg img {
		animation: none;
	}

	.flash-internal .flash-ip-tilt {
		transform: none !important;
		transition: none;
	}
}
