/* ── DP – Bannière média + appel à l'action ──────────────────────────── */

.dp-mc {
	--dp-mc-bg: var(--dp-color-primary-soft, #f0f6f8);
	--dp-mc-eyebrow: var(--dp-color-primary, #1a86a2);
	--dp-mc-title: var(--dp-color-text, #3c3c3b);
	--dp-mc-text: var(--dp-color-text-muted, #6b7280);
	--dp-mc-accent: var(--dp-color-primary, #1a86a2);
	--dp-mc-border: var(--dp-color-border, #e5e7eb);
	--dp-mc-button-text: #ffffff;
	--dp-mc-inverted-text: #ffffff;

	--dp-mc-content-fr: 1.1fr;
	--dp-mc-media-fr: 0.9fr;
	--dp-mc-content-padding: 44px;
	--dp-mc-min-height: 380px;
	--dp-mc-gap: 0px;
	--dp-mc-overlay-opacity: 0.58;
	--dp-mc-object-position: center center;

	position: relative;
	display: grid;
	grid-template-columns: var(--dp-mc-content-fr) var(--dp-mc-media-fr);
	gap: var(--dp-mc-gap);
	min-height: var(--dp-mc-min-height);
	overflow: hidden;
	box-sizing: border-box;
	border-radius: var(--dp-mc-radius, var(--dp-radius-lg, 20px));
	background: var(--dp-mc-bg);
	font-family: var(--dp-font-base, inherit);
	font-weight: var(--dp-font-base-weight, 400);
}

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

/* Le visuel est déclaré en premier dans le DOM (il porte l'illustration du
   propos) ; l'ordre visuel se règle ensuite par la position demandée. */
.dp-mc__media { order: 2; }
.dp-mc__content { order: 1; }

.dp-mc--media-left .dp-mc__media { order: 1; }
.dp-mc--media-left .dp-mc__content { order: 2; }

.dp-mc--media-left {
	grid-template-columns: var(--dp-mc-media-fr) var(--dp-mc-content-fr);
}

.dp-mc--no-image {
	grid-template-columns: 1fr;
}

/* ── Fonds ── */
.dp-mc--bg-soft {
	background: var(--dp-mc-bg);
}

.dp-mc--bg-gradient {
	background: var(--dp-gradient-primary, linear-gradient(134.2152deg, #1a86a2 0%, #6eb2d1 100%));
}

.dp-mc--bg-surface {
	background: var(--dp-color-surface, #ffffff);
	border: 1px solid var(--dp-mc-border);
}

.dp-mc--bg-transparent {
	background: transparent;
}

/* ── Visuel ── */
.dp-mc__media {
	position: relative;
	overflow: hidden;
	min-height: 220px;
}

.dp-mc__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: var(--dp-mc-object-position);
}

.dp-mc--fit-contain .dp-mc__media {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 32px;
}

.dp-mc--fit-contain .dp-mc__media img {
	width: auto;
	max-width: 100%;
	height: auto;
	max-height: 100%;
	object-fit: contain;
}

/* Halo : détache un packshot posé sur un aplat clair sans recourir à une ombre
   portée, qui jurerait sur un fond déjà teinté. */
.dp-mc--halo .dp-mc__media::before {
	content: "";
	position: absolute;
	inset: 12%;
	border-radius: 50%;
	background: radial-gradient(
		circle,
		color-mix(in srgb, var(--dp-mc-accent) 22%, transparent) 0%,
		transparent 70%
	);
}

.dp-mc--halo .dp-mc__media img {
	position: relative;
}

/* ── Contenu ── */
.dp-mc__content {
	display: flex;
	align-items: center;
	min-width: 0;
}

.dp-mc__content-inner {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 20px;
	width: 100%;
	padding: var(--dp-mc-content-padding);
}

.dp-mc__copy {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 14px;
	min-width: 0;
}

.dp-mc__badge {
	padding: 4px 12px;
	border-radius: var(--dp-radius-pill, 999px);
	background: var(--dp-mc-accent);
	color: var(--dp-mc-button-text);
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	line-height: 1.6;
}

.dp-mc__eyebrow {
	margin: 0;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--dp-mc-eyebrow);
	line-height: 1.3;
}

.dp-mc__title {
	margin: 0;
	font-size: clamp(1.4rem, 1.05rem + 1.3vw, 2.2rem);
	font-weight: var(--dp-font-heading-weight, 700);
	line-height: 1.18;
	letter-spacing: -0.015em;
	color: var(--dp-mc-title);
	font-family: var(--dp-font-heading, inherit);
}

.dp-mc__text {
	font-size: 1rem;
	line-height: 1.65;
	color: var(--dp-mc-text);
}

.dp-mc__text > :first-child { margin-top: 0; }
.dp-mc__text > :last-child { margin-bottom: 0; }

/* ── Points clés ── */
.dp-mc__bullets {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 2px 0 0;
	padding: 0;
	list-style: none;
}

.dp-mc__bullet {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 0.95rem;
	line-height: 1.5;
	color: var(--dp-mc-title);
}

.dp-mc__check {
	flex: 0 0 auto;
	margin-top: 2px;
	color: var(--dp-mc-accent);
}

/* ── Boutons ── */
.dp-mc__buttons {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin-top: 6px;
}

.dp-mc__button {
	display: inline-flex;
	align-items: baseline;
	gap: 8px;
	padding: 13px 26px;
	border: 1px solid transparent;
	border-radius: var(--dp-mc-button-radius, var(--dp-radius-md, 16px));
	font-size: 0.95rem;
	font-weight: 600;
	line-height: 1.3;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.dp-mc__button--primary {
	background: var(--dp-mc-accent);
	border-color: var(--dp-mc-accent);
	color: var(--dp-mc-button-text);
}

.dp-mc__button--primary:hover,
.dp-mc__button--primary:focus-visible {
	background: var(--dp-color-primary-dark, #14707f);
	border-color: var(--dp-color-primary-dark, #14707f);
	color: var(--dp-mc-button-text);
	text-decoration: none;
}

.dp-mc__button--secondary {
	background: transparent;
	border-color: var(--dp-mc-border);
	color: var(--dp-mc-title);
}

.dp-mc__button--secondary:hover,
.dp-mc__button--secondary:focus-visible {
	border-color: var(--dp-mc-accent);
	color: var(--dp-mc-accent);
	text-decoration: none;
}

.dp-mc__button:focus-visible {
	outline: 2px solid var(--dp-mc-accent);
	outline-offset: 3px;
}

/* Format et poids restent secondaires : même ligne, poids et taille réduits. */
.dp-mc__button-meta {
	font-size: 0.78rem;
	font-weight: 500;
	opacity: 0.75;
	white-space: nowrap;
}

/* ── Design « overlay » ── */
.dp-mc--overlay {
	display: block;
}

.dp-mc--overlay .dp-mc__media {
	position: absolute;
	inset: 0;
	min-height: 0;
}

.dp-mc__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to top,
		rgba(12, 24, 34, var(--dp-mc-overlay-opacity)) 0%,
		rgba(12, 24, 34, calc(var(--dp-mc-overlay-opacity) * 0.5)) 55%,
		rgba(12, 24, 34, calc(var(--dp-mc-overlay-opacity) * 0.25)) 100%
	);
}

.dp-mc--overlay .dp-mc__content {
	position: relative;
	min-height: var(--dp-mc-min-height);
}

.dp-mc--overlay .dp-mc__content-inner {
	max-width: 620px;
}

/* ── Fond sombre : texte inversé ── */
.dp-mc--inverted .dp-mc__title,
.dp-mc--inverted .dp-mc__bullet {
	color: var(--dp-mc-inverted-text);
}

.dp-mc--inverted .dp-mc__text {
	color: var(--dp-mc-inverted-text);
	opacity: 0.9;
}

.dp-mc--inverted .dp-mc__eyebrow {
	color: var(--dp-mc-inverted-text);
	opacity: 0.85;
}

.dp-mc--inverted .dp-mc__check {
	color: var(--dp-mc-inverted-text);
}

.dp-mc--inverted .dp-mc__badge {
	background: rgba(255, 255, 255, 0.2);
	color: var(--dp-mc-inverted-text);
}

/* Sur fond sombre, le bouton plein reprend la couleur claire et le texte
   l'accent : l'accent sur l'accent serait illisible. */
.dp-mc--inverted .dp-mc__button--primary {
	background: var(--dp-mc-inverted-text);
	border-color: var(--dp-mc-inverted-text);
	color: var(--dp-mc-accent);
}

.dp-mc--inverted .dp-mc__button--primary:hover,
.dp-mc--inverted .dp-mc__button--primary:focus-visible {
	background: var(--dp-mc-inverted-text);
	border-color: var(--dp-mc-inverted-text);
	color: var(--dp-color-primary-dark, #14707f);
}

.dp-mc--inverted .dp-mc__button--secondary {
	border-color: rgba(255, 255, 255, 0.55);
	color: var(--dp-mc-inverted-text);
}

.dp-mc--inverted .dp-mc__button--secondary:hover,
.dp-mc--inverted .dp-mc__button--secondary:focus-visible {
	background: rgba(255, 255, 255, 0.14);
	border-color: var(--dp-mc-inverted-text);
	color: var(--dp-mc-inverted-text);
}

.dp-mc--inverted .dp-mc__button:focus-visible {
	outline-color: var(--dp-mc-inverted-text);
}

/* ── Design « strip » ── */
/* Le visuel se dimensionne sur son contenu (colonne `auto`), le texte prend le
   reste. La colonne `auto` doit suivre l'ordre visuel demandé, sinon c'est le
   texte qui se retrouve corseté. */
.dp-mc--strip {
	min-height: 0;
	grid-template-columns: 1fr auto;
	align-items: center;
}

.dp-mc--strip.dp-mc--media-left {
	grid-template-columns: auto 1fr;
}

.dp-mc--strip.dp-mc--no-image {
	grid-template-columns: 1fr;
}

.dp-mc--strip .dp-mc__media {
	min-height: 0;
	width: 132px;
	height: 100%;
	padding: 0;
}

.dp-mc--strip.dp-mc--fit-contain .dp-mc__media {
	padding: 16px;
}

.dp-mc--strip .dp-mc__content-inner {
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 20px;
	padding-block: 22px;
}

/* La bande est un rappel : les ornements verticaux (points clés, badge) n'y ont
   pas leur place. */
.dp-mc--strip .dp-mc__bullets,
.dp-mc--strip .dp-mc__badge {
	display: none;
}

.dp-mc--strip .dp-mc__copy {
	flex: 1 1 260px;
	gap: 6px;
}

.dp-mc--strip .dp-mc__title {
	font-size: clamp(1.1rem, 0.95rem + 0.6vw, 1.45rem);
}

.dp-mc--strip .dp-mc__text {
	font-size: 0.92rem;
}

.dp-mc--strip .dp-mc__buttons {
	margin: 0;
	margin-inline-start: auto;
	flex: 0 0 auto;
}

/* ── Repli tablette / mobile ── */
@media (max-width: 1024px) {
	.dp-mc,
	.dp-mc--media-left {
		grid-template-columns: 1fr;
	}

	/* Le visuel repasse au-dessus du contenu : sur une colonne, l'illustration
	   avant l'argumentaire reste la lecture la plus naturelle. */
	.dp-mc__media { order: 1; }
	.dp-mc__content { order: 2; }

	.dp-mc__media {
		min-height: 240px;
		max-height: 320px;
	}

	.dp-mc--strip {
		grid-template-columns: 1fr;
	}

	.dp-mc--strip .dp-mc__media {
		width: 100%;
		height: 160px;
	}
}

@media (max-width: 640px) {
	.dp-mc {
		--dp-mc-content-padding: 26px;
		--dp-mc-min-height: 0px;
	}

	.dp-mc--overlay .dp-mc__content {
		min-height: 340px;
	}

	.dp-mc__buttons {
		width: 100%;
	}

	.dp-mc__button {
		flex: 1 1 auto;
		justify-content: center;
	}

	.dp-mc--strip .dp-mc__content-inner {
		flex-direction: column;
		align-items: flex-start;
	}

	.dp-mc--strip .dp-mc__buttons {
		margin-inline-start: 0;
	}
}

@supports not (background: color-mix(in srgb, red 10%, transparent)) {
	.dp-mc--halo .dp-mc__media::before {
		background: radial-gradient(circle, var(--dp-color-primary-soft, #e6f1f4) 0%, transparent 70%);
	}
}

@media (prefers-reduced-motion: reduce) {
	.dp-mc__button {
		transition: none;
	}
}
