/* ==========================================================
   Montagne Zéro Déchet — blocs d'affichage
   ========================================================== */
.mzd {
	/* Couleurs officielles MZD */
	--mzd-navy: #375791;
	--mzd-pink: #DA486A;
	--mzd-gold: #EDCD73;
	--mzd-sky: #B4C5E1;
	--mzd-snow: #F9FBFB;
	--mzd-accent: var(--mzd-navy);
	--mzd-ink: #1C2B48;
	--mzd-muted: #5E6B84;
	--mzd-line: #DCE4F0;
	--mzd-soft: var(--mzd-snow);
	color: var(--mzd-ink);
	font-family: inherit;
	line-height: 1.45;
}
.mzd *, .mzd *::before, .mzd *::after { box-sizing: border-box; }
.mzd h2, .mzd h3, .mzd p, .mzd ol, .mzd ul { margin: 0; }

/* ---------- Les 3 projets (background switcher) ---------- */
.mzd-switch {
	position: relative; overflow: hidden; isolation: isolate;
	border-radius: 18px; background: #1C2B48; min-height: 480px;
}
.mzd-switch__bg {
	position: absolute; inset: 0; z-index: -2;
	background: var(--mzd-img, none) center / cover no-repeat, linear-gradient(135deg, var(--mzd-p), #1C2B48 88%);
	opacity: 0; transform: scale(1.06);
	transition: opacity .7s ease, transform 1.4s ease;
}
.mzd-switch__bg.is-active { opacity: 1; transform: scale(1); }
.mzd-switch::after {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background: linear-gradient(180deg, rgba(0,0,0,.05) 0%, rgba(0,0,0,.25) 45%, rgba(0,0,0,.72) 100%);
}
.mzd-switch__panels { display: grid; grid-template-columns: repeat(var(--mzd-n, 3), minmax(0, 1fr)); min-height: 480px; }
.mzd-switch__panel {
	position: relative; display: flex; flex-direction: column; justify-content: flex-end; gap: 10px;
	padding: 32px 28px; color: #fff !important; text-decoration: none !important; cursor: pointer;
	border-left: 1px solid rgba(255,255,255,.22); transition: background .35s ease;
}
.mzd-switch__panel:first-child { border-left: 0; }
.mzd-switch__panel::before {
	content: ""; position: absolute; left: 28px; right: 28px; top: 0; height: 3px;
	background: var(--mzd-gold); transform: scaleX(0); transform-origin: left; transition: transform .45s ease;
}
.mzd-switch__panel.is-active { background: rgba(255,255,255,.07); }
.mzd-switch__panel.is-active::before { transform: scaleX(1); }
.mzd-switch__panel:focus-visible { outline: 2px solid #fff; outline-offset: -6px; }
.mzd-switch__num { font-size: 13px; letter-spacing: .18em; opacity: .75; font-weight: 600; }
.mzd-switch__title { font-size: clamp(20px, 2.1vw, 28px); line-height: 1.15; font-weight: 800; text-transform: uppercase; letter-spacing: .01em; }
.mzd-switch__text {
	font-size: 15px; opacity: 0; max-height: 0; transform: translateY(8px); overflow: hidden;
	transition: opacity .4s ease, transform .4s ease, max-height .4s ease;
}
.mzd-switch__panel.is-active .mzd-switch__text { opacity: .9; max-height: 6em; transform: none; }
.mzd-switch__cta { font-size: 14px; font-weight: 700; display: inline-flex; gap: 6px; align-items: center; }
.mzd-switch__cta span { transition: transform .3s ease; }
.mzd-switch__panel:hover .mzd-switch__cta span { transform: translateX(4px); }

@media (max-width: 767px) {
	.mzd-switch { min-height: 0; background: none; }
	.mzd-switch::after, .mzd-switch__bgs { display: none; }
	.mzd-switch__panels { grid-template-columns: 1fr; min-height: 0; gap: 10px; }
	.mzd-switch__panel {
		min-height: 190px; border: 0; border-radius: 14px; overflow: hidden; isolation: isolate;
		background: var(--mzd-img, none) center / cover no-repeat, linear-gradient(135deg, var(--mzd-p), #1C2B48 88%) !important;
	}
	.mzd-switch__panel::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(0,0,0,.1), rgba(0,0,0,.7)); }
	.mzd-switch__panel::before { display: none; }
	.mzd-switch__text { opacity: .9; max-height: none; transform: none; }
}

/* ---------- Blocs ---------- */
.mzd-block { max-width: 1140px; margin: 0 auto; padding: clamp(20px, 3vw, 36px); border: 1px solid var(--mzd-line); border-radius: 18px; background: #fff; }
.mzd-block + .mzd-block, .mzd-switch + .mzd-block { margin-top: 40px; }
.mzd-block__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px 24px; margin-bottom: 28px; }
.mzd-block__title { font-size: clamp(22px, 2.4vw, 30px); line-height: 1.2; font-weight: 800; color: var(--mzd-navy); }
.mzd-block__title::after { content: ""; display: block; width: 56px; height: 4px; border-radius: 2px; background: var(--mzd-pink); margin-top: 10px; }
.mzd-block__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: clamp(24px, 4vw, 48px); align-items: start; }
@media (max-width: 880px) { .mzd-block__grid { grid-template-columns: 1fr; } }

.mzd-ico { width: 42px; height: 42px; color: var(--mzd-accent); flex: none; }

/* Tuiles chiffres clés */
.mzd-tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.mzd-tile { border: 1px solid var(--mzd-line); border-bottom: 3px solid var(--mzd-sky); border-radius: 14px; padding: 22px 14px 18px; text-align: center; background: #fff; display: flex; flex-direction: column; align-items: center; }
.mzd-tile__num { font-size: clamp(26px, 3vw, 34px); font-weight: 800; line-height: 1.1; margin-top: 10px; font-variant-numeric: tabular-nums; color: var(--mzd-navy); }
.mzd-tile__unit { font-size: .55em; font-weight: 700; color: var(--mzd-muted); }
.mzd-tile__lbl { font-size: 14px; color: var(--mzd-muted); margin-top: 4px; }
.mzd-tile__lbl .mzd-y { display: block; font-weight: 700; color: var(--mzd-pink); }
.mzd-tile.is-empty { opacity: .45; }

/* Grand chiffre */
.mzd-hero { background: var(--mzd-soft); border: 1px solid var(--mzd-line); border-top: 4px solid var(--mzd-pink); border-radius: 16px; padding: 36px 28px; text-align: center; display: flex; flex-direction: column; align-items: center; }
.mzd-hero__num { font-size: clamp(56px, 7vw, 88px); font-weight: 800; line-height: 1; color: var(--mzd-accent); margin-top: 12px; font-variant-numeric: tabular-nums; }
.mzd-hero__lbl { font-size: 19px; font-weight: 600; margin-top: 6px; }
.mzd-hero__detail { list-style: none; padding: 0; margin-top: 22px; display: grid; gap: 6px; text-align: left; font-size: 15px; color: var(--mzd-muted); }
.mzd-hero__detail li { display: flex; align-items: center; gap: 8px; }
.mzd-hero__detail strong { color: var(--mzd-ink); font-variant-numeric: tabular-nums; }
.mzd-dot { width: 10px; height: 10px; border-radius: 50%; flex: none; }

/* Graphique */
.mzd-chart__title { text-align: center; font-size: 18px; font-weight: 700; margin-bottom: 14px; color: var(--mzd-navy); }
.mzd-chart__box { position: relative; height: 380px; max-width: 460px; margin: 0 auto; }
.mzd-chart__empty { display: none; position: absolute; inset: 0; align-items: center; justify-content: center; color: var(--mzd-muted); }
.mzd-chart__box.is-empty canvas { visibility: hidden; }
.mzd-chart__box.is-empty .mzd-chart__empty { display: flex; }
.mzd-legend { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 2px 16px; margin-top: 18px; font-size: 14px; }
.mzd-item { display: flex; align-items: center; gap: 8px; width: 100%; background: none !important; border: 0 !important; padding: 4px 6px !important; border-radius: 6px; font: inherit !important; font-size: 14px !important; color: inherit !important; text-align: left; cursor: pointer; line-height: 1.3; box-shadow: none !important; text-transform: none !important; letter-spacing: normal !important; }
.mzd-item:hover, .mzd-item:focus-visible { background: rgba(180,197,225,.25) !important; }
.mzd-item.is-off { opacity: .4; }
.mzd-item.is-off .mzd-n { text-decoration: line-through; }
.mzd-n { flex: 1; }
.mzd-v { font-variant-numeric: tabular-nums; color: var(--mzd-ink); font-weight: 600; }
.mzd-hint { text-align: center; font-size: 12px; color: var(--mzd-muted); margin-top: 10px !important; }

/* Filtres */
.mzd-pills { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-bottom: 10px; }
.mzd-pill {
	--c: var(--mzd-accent);
	display: inline-flex; align-items: center; gap: 6px; border: 1.5px solid var(--c) !important; background: transparent !important;
	color: var(--mzd-ink) !important; padding: 6px 13px !important; border-radius: 999px !important; cursor: pointer;
	font: inherit !important; font-size: 14px !important; line-height: 1.2 !important; transition: background .2s, color .2s;
	box-shadow: none !important; text-transform: none !important; letter-spacing: normal !important;
}
.mzd-pill .mzd-pc { font-size: 12px; font-weight: 700; color: var(--c); }
.mzd-pill:hover { background: rgba(180,197,225,.2) !important; }
.mzd-pill.is-active { background: var(--c) !important; color: var(--on, #fff) !important; }
.mzd-pill.is-active .mzd-pc { color: var(--on, #fff); }
.mzd-pill.is-light .mzd-pc { color: var(--mzd-ink); }
.mzd-pill:disabled { opacity: .35; cursor: default; }
.mzd-select { display: flex; align-items: center; justify-content: center; gap: 8px; font-size: 13px; color: var(--mzd-muted); margin: 0 0 8px; }
.mzd-select select { font: inherit; font-size: 14px; color: var(--mzd-ink); padding: 4px 8px; border: 1px solid var(--mzd-sky); border-radius: 6px; background: #fff; width: auto; min-height: 0; height: auto; }
.mzd-block__head .mzd-select { margin: 0; }

/* Déchets principaux */
.mzd-top { margin-top: 36px; padding-top: 28px; border-top: 1px solid var(--mzd-line); }
.mzd-top__title { font-size: 18px; font-weight: 700; color: var(--mzd-navy); margin-bottom: 16px !important; }
.mzd-top__list { list-style: none; padding: 0 !important; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-flow: column; gap: 10px 32px; counter-reset: mzd; }
.mzd-top__list li { counter-increment: mzd; display: flex; align-items: baseline; gap: 12px; font-size: 15px; padding: 6px 0; border-bottom: 1px dashed var(--mzd-line); }
.mzd-top__list li::before { content: counter(mzd); font-weight: 800; color: var(--mzd-pink); min-width: 1.4em; font-size: 18px; }
.mzd-top__list .mzd-n { flex: 1; }
@media (max-width: 640px) {
	.mzd-top__list { grid-template-columns: 1fr; grid-auto-flow: row; }
	.mzd-chart__box { height: 320px; }
	.mzd-legend { grid-template-columns: 1fr 1fr; gap: 2px 8px; font-size: 13px; }
	.mzd-tiles { gap: 10px; }
	.mzd-tile { padding: 16px 8px 14px; }
}

/* ---------- En-tête MZD : bannière + présentation ---------- */
/* Pleine largeur : s'insère dans un modèle d'en-tête Elementor (Theme Builder) comme dans une page */
.mzd-head { width: 100%; background: #fff; padding-bottom: clamp(28px, 4vw, 48px); }
.mzd-head.is-compact { padding-bottom: 0; }
.mzd-head__banner { position: relative; overflow: hidden; line-height: 0; max-width: 1920px; margin: 0 auto; }

/* Navigation sous la bannière */
/* Barre : [espace] [navigation centrée] [recherche + menu] */
.mzd-head__bar {
	display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center;
	border-top: 1px solid var(--mzd-line); border-bottom: 1px solid var(--mzd-line); background: #fff;
	padding: 0 clamp(12px, 3vw, 40px); min-height: 50px;
}
.mzd-head__bar.no-nav { border-top: 0; }
.mzd-head__nav { min-width: 0; }
.mzd-head__nav ul { list-style: none; margin: 0 auto !important; padding: 0 !important; display: flex; flex-wrap: wrap; justify-content: center; gap: 0 clamp(8px, 2.5vw, 36px); }
.mzd-head__actions { display: flex; justify-content: flex-end; align-items: center; gap: 8px; }
.mzd-head__btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 40px; min-width: 40px; padding: 0 10px;
	border-radius: 999px; color: var(--mzd-navy) !important; text-decoration: none !important;
	font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; transition: background .2s, color .2s;
}
.mzd-head__btn svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; flex: none; }
.mzd-head__btn:hover, .mzd-head__btn:focus-visible { background: rgba(180,197,225,.35); }
.mzd-head__btn--menu { background: var(--mzd-navy); color: #fff !important; }
.mzd-head__btn--menu.has-label { padding: 0 14px 0 16px; }
.mzd-head__btn--menu:hover, .mzd-head__btn--menu:focus-visible { background: var(--mzd-pink); color: #fff !important; }
.mzd-head__nav li { margin: 0; padding: 0; }
.mzd-head__link {
	position: relative; display: block; padding: 14px 4px; font-size: 14px; font-weight: 700; letter-spacing: .06em;
	text-transform: uppercase; color: var(--mzd-navy) !important; text-decoration: none !important; transition: color .2s;
}
.mzd-head__link::after {
	content: ""; position: absolute; left: 4px; right: 4px; bottom: -1px; height: 3px; border-radius: 2px;
	background: var(--mzd-pink); transform: scaleX(0); transition: transform .3s ease;
}
.mzd-head__link:hover::after, .mzd-head__link:focus-visible::after, .mzd-head__link.is-current::after { transform: scaleX(1); }
.mzd-head__link.is-current { color: var(--mzd-pink) !important; }
.mzd-head__link.is-home { color: var(--mzd-ink) !important; }
.mzd-head__nav + .mzd-head__body { padding-top: clamp(24px, 3vw, 40px); }
@media (max-width: 900px) {
	.mzd-head__bar { grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
	.mzd-head__bar > .mzd-head__spacer:first-child { display: none; }
	.mzd-head__nav ul { justify-content: flex-start; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; gap: 0 18px;
		-webkit-mask-image: linear-gradient(90deg, #000 85%, transparent); mask-image: linear-gradient(90deg, #000 85%, transparent); }
	.mzd-head__link { white-space: nowrap; }
}
@media (max-width: 640px) {
	.mzd-head__btn--menu.has-label span { display: none; }
	.mzd-head__btn--menu.has-label { padding: 0 10px; }
	.mzd-head__nav ul { justify-content: flex-start; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; gap: 0 18px; }
	.mzd-head__nav ul::-webkit-scrollbar { display: none; }
	.mzd-head__link { white-space: nowrap; font-size: 13px; padding: 12px 2px; }
}
.mzd-ban-svg, .mzd-ban-img { display: block; width: 100%; height: auto; }
.mzd-ban-mask { fill: #fff; }
.mzd-head__body {
	display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: clamp(24px, 5vw, 72px);
	max-width: 1240px; margin: 0 auto; padding: clamp(8px, 2vw, 24px) clamp(16px, 4vw, 48px) 0; align-items: start;
}
.mzd-head__kicker { font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--mzd-pink); }
.mzd-head__title { font-size: clamp(32px, 4.6vw, 58px); line-height: 1.02; font-weight: 800; color: var(--mzd-navy); margin: 10px 0 0 !important; letter-spacing: -.01em; text-transform: uppercase; }
.mzd-head__sub { margin-top: 16px !important; }
.mzd-head__sub span {
	display: inline-block; font-size: clamp(15px, 1.4vw, 18px); font-weight: 700; color: var(--mzd-ink);
	background: linear-gradient(transparent 58%, var(--mzd-gold) 58%, var(--mzd-gold) 92%, transparent 92%); padding: 0 4px;
}
.mzd-head__lead { margin-top: 26px; padding-left: 20px; border-left: 4px solid var(--mzd-pink); }
.mzd-head__lead p { font-size: clamp(17px, 1.55vw, 20px); line-height: 1.55; color: var(--mzd-ink); }
.mzd-head__lead strong { color: var(--mzd-navy); }
.mzd-head__text { padding-top: clamp(0px, 4.5vw, 64px); display: grid; gap: 18px; }
.mzd-head__text p { font-size: 16px; line-height: 1.7; color: var(--mzd-muted); }
.mzd-head__text p + p { padding-top: 18px; border-top: 1px solid var(--mzd-line); }
.mzd-head__text strong { color: var(--mzd-ink); }


/* Tracé animé des montagnes */
.mzd-head.has-anim.is-ready .mzd-ban-line { stroke-dasharray: 1; stroke-dashoffset: 1; }
.mzd-head.has-anim.is-ready .mzd-ban-svg > g, .mzd-head.has-anim.is-ready .mzd-ban-svg > path:not(.mzd-ban-line):not(.mzd-ban-mask) { opacity: 0; }
.mzd-head.has-anim.is-play .mzd-ban-line { animation: mzdDraw 2.6s cubic-bezier(.45,.05,.2,1) forwards; }
.mzd-head.has-anim.is-play .mzd-ban-line:nth-of-type(2) { animation-delay: .15s; }
.mzd-head.has-anim.is-play .mzd-ban-line:nth-of-type(3) { animation-delay: .3s; }
.mzd-head.has-anim.is-play .mzd-ban-svg > g, .mzd-head.has-anim.is-play .mzd-ban-svg > path:not(.mzd-ban-line):not(.mzd-ban-mask) { animation: mzdFade .9s ease 1.1s forwards; }
@keyframes mzdDraw { to { stroke-dashoffset: 0; } }
@keyframes mzdFade { to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
	.mzd-head.has-anim .mzd-ban-line { stroke-dasharray: none !important; animation: none !important; }
	.mzd-head.has-anim .mzd-ban-svg > g, .mzd-head.has-anim .mzd-ban-svg > path { opacity: 1 !important; animation: none !important; }
}

@media (max-width: 880px) {
	.mzd-head__body { grid-template-columns: 1fr; }
	.mzd-head__text { padding-top: 0; }
}
@media (max-width: 640px) {
	/* sur mobile, la bannière est recadrée sur le logo et « Une montagne de ressources » */
	.mzd-ban-svg { width: 230%; margin-left: -50%; }
}

/* ==========================================================
   Page Campagne
   ========================================================== */
.mzd-page { max-width: 1140px; margin: 0 auto; padding: 0 clamp(0px, 2vw, 16px); }
.mzd-page > * + * { margin-top: clamp(56px, 8vw, 104px) !important; }
.mzd-sec__intro { font-size: 17px; line-height: 1.6; color: var(--mzd-muted); max-width: 720px; margin-top: 4px !important; }

/* Boutons */
.mzd-btn {
	display: inline-flex; align-items: center; gap: 10px; padding: 13px 22px; border-radius: 999px;
	font-size: 15px; font-weight: 700; line-height: 1.2; text-decoration: none !important; transition: background .2s, color .2s, transform .2s;
	border: 2px solid transparent;
}
.mzd-btn span { transition: transform .25s ease; }
.mzd-btn:hover span { transform: translateX(4px); }
.mzd-btn--primary { background: var(--mzd-navy); color: #fff !important; }
.mzd-btn--primary:hover, .mzd-btn--primary:focus-visible { background: var(--mzd-pink); }
.mzd-btn--pink { background: var(--mzd-pink); color: #fff !important; }
.mzd-btn--pink:hover, .mzd-btn--pink:focus-visible { background: var(--mzd-navy); }
.mzd-btn--ghost { border-color: var(--mzd-navy); color: var(--mzd-navy) !important; background: #fff; }
.mzd-btn--ghost:hover, .mzd-btn--ghost:focus-visible { background: var(--mzd-navy); color: #fff !important; }
.mzd-btn--soon { background: var(--mzd-snow) !important; color: var(--mzd-muted) !important; border: 2px dashed var(--mzd-sky); cursor: default; font-weight: 600; }

/* Introduction */
.mzd-intro { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(28px, 5vw, 64px); align-items: center; padding-top: clamp(24px, 4vw, 48px); }
.mzd-intro__title { font-size: clamp(34px, 5vw, 60px); line-height: 1.02; font-weight: 800; color: var(--mzd-navy); text-transform: uppercase; margin: 10px 0 0 !important; letter-spacing: -.01em; }
.mzd-intro__title::after { content: ""; display: block; width: 64px; height: 5px; border-radius: 3px; background: var(--mzd-pink); margin-top: 18px; }
.mzd-intro__body { margin-top: 22px; display: grid; gap: 14px; }
.mzd-intro__body p { font-size: 17px; line-height: 1.65; color: var(--mzd-ink); }
.mzd-intro__body p + p { color: var(--mzd-muted); }
.mzd-intro__body strong { color: var(--mzd-navy); }
.mzd-intro__obj { margin-top: 22px !important; }
.mzd-intro__obj span {
	font-size: clamp(17px, 1.6vw, 20px); font-weight: 800; color: var(--mzd-ink); line-height: 1.5;
	background: linear-gradient(transparent 60%, var(--mzd-gold) 60%, var(--mzd-gold) 92%, transparent 92%);
	-webkit-box-decoration-break: clone; box-decoration-break: clone; padding: 0 4px;
}
.mzd-intro__ctas { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }

.mzd-intro__visual {
	position: relative; aspect-ratio: 4 / 4.4; border-radius: 22px; overflow: hidden;
	background: linear-gradient(160deg, var(--mzd-navy) 0%, #24406F 60%, #1C2B48 100%);
	box-shadow: 0 24px 48px -28px rgba(28,43,72,.55);
}
.mzd-intro__visual.has-img { background: var(--mzd-sky); }
/* Affiche MZD : format portrait, affichée en entier */
.mzd-intro__visual.is-poster { aspect-ratio: 1116 / 1574; background: #B9D3E3; max-width: 470px; width: 100%; justify-self: center; border-radius: 18px; }
.mzd-intro__visual.is-poster .mzd-intro__badge { right: 18px; bottom: 22px; }
.mzd-intro__img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; object-fit: cover; }
.mzd-intro__ridge { position: absolute; left: 0; right: 0; bottom: 0; width: 100%; height: 48%; }
.mzd-intro__goal { position: absolute; top: 12%; left: 10%; right: 10%; color: #fff; display: flex; flex-direction: column; }
.mzd-intro__goal span { font-size: 13px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--mzd-gold); }
.mzd-intro__goal strong { font-size: clamp(64px, 9vw, 112px); line-height: .95; font-weight: 800; letter-spacing: -.02em; }
.mzd-intro__goal em { font-style: normal; font-size: clamp(18px, 2vw, 24px); font-weight: 700; margin-top: 6px; }
.mzd-intro__badge {
	position: absolute; right: 18px; bottom: 18px; width: 128px; height: 128px; border-radius: 50%;
	background: var(--mzd-pink); color: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center;
	box-shadow: 0 10px 24px -10px rgba(0,0,0,.4); padding: 10px; transform: rotate(-6deg);
}
.mzd-intro__badge strong { font-size: 40px; line-height: 1; font-weight: 800; }
.mzd-intro__badge span { font-size: 12px; font-weight: 700; line-height: 1.2; margin-top: 4px; }
@media (max-width: 880px) {
	.mzd-intro { grid-template-columns: 1fr; }
	.mzd-intro__visual { aspect-ratio: 16 / 11; }
	.mzd-intro__visual.is-poster { aspect-ratio: 1116 / 1574; max-width: 400px; }
	.mzd-intro__visual.is-poster .mzd-intro__badge { right: 12px; bottom: 16px; }
	.mzd-intro__badge { width: 104px; height: 104px; }
	.mzd-intro__badge strong { font-size: 32px; }
}

/* Caractérisation : 3 étapes */
.mzd-steps { list-style: none; padding: 0 !important; margin: 32px 0 0 !important; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(16px, 2.5vw, 28px); counter-reset: none; }
.mzd-step {
	position: relative; background: #fff; border: 1px solid var(--mzd-line); border-radius: 18px; padding: 28px 24px 26px;
	border-top: 5px solid var(--mzd-sky); margin: 0 !important;
}
.mzd-step:nth-child(2) { border-top-color: var(--mzd-gold); }
.mzd-step:nth-child(3) { border-top-color: var(--mzd-pink); }
.mzd-step:not(:last-child)::after {
	content: "→"; position: absolute; right: calc(-1 * clamp(16px, 2.5vw, 28px) / 2 - 13px); top: 50%; transform: translateY(-50%);
	width: 26px; height: 26px; border-radius: 50%; background: var(--mzd-navy); color: #fff; font-size: 14px; line-height: 26px; text-align: center; z-index: 1;
}
.mzd-step__num { position: absolute; top: 18px; right: 22px; font-size: 34px; font-weight: 800; color: var(--mzd-sky); line-height: 1; }
.mzd-step .mzd-ico { width: 46px; height: 46px; }
.mzd-step__title { font-size: 21px; font-weight: 800; color: var(--mzd-navy); margin-top: 16px !important; }
.mzd-step__text { font-size: 15.5px; line-height: 1.6; color: var(--mzd-muted); margin-top: 8px !important; }
@media (max-width: 880px) {
	.mzd-steps { grid-template-columns: 1fr; }
	.mzd-step:not(:last-child)::after { content: "↓"; right: auto; left: 50%; top: auto; bottom: -22px; transform: translateX(-50%); }
}

/* Participer */
.mzd-part { background: var(--mzd-snow); border: 1px solid var(--mzd-line); border-radius: 22px; padding: clamp(24px, 4vw, 48px); }
.mzd-part__cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(16px, 2.5vw, 28px); margin-top: 28px; }
.mzd-cta { background: #fff; border: 1px solid var(--mzd-line); border-radius: 18px; padding: 28px; display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.mzd-cta .mzd-ico { width: 44px; height: 44px; }
.mzd-cta--2 .mzd-ico { color: var(--mzd-pink); }
.mzd-cta__title { font-size: 21px; font-weight: 800; color: var(--mzd-navy); margin-top: 6px !important; }
.mzd-cta__text { font-size: 15.5px; line-height: 1.6; color: var(--mzd-muted); flex: 1; margin-bottom: 10px !important; }
@media (max-width: 760px) { .mzd-part__cards { grid-template-columns: 1fr; } }

/* Autres projets */
.mzd-others .mzd-switch { margin-top: 24px; min-height: 360px; }
.mzd-others .mzd-switch__panels { min-height: 360px; }

/* ==========================================================
   Ressources liées : webinaires, fiches actions, témoignages
   ========================================================== */
.mzd-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: clamp(16px, 2.5vw, 28px); margin-top: 28px; }
.mzd-card {
	display: flex; flex-direction: column; background: #fff; border: 1px solid var(--mzd-line); border-radius: 18px; overflow: hidden;
	text-decoration: none !important; color: inherit !important; transition: transform .25s ease, box-shadow .25s ease, border-color .25s;
}
.mzd-card:hover, .mzd-card:focus-visible { transform: translateY(-4px); box-shadow: 0 18px 36px -22px rgba(28,43,72,.45); border-color: var(--mzd-sky); }
.mzd-card__media { position: relative; display: block; aspect-ratio: 16 / 9; background: var(--mzd-sky); overflow: hidden; }
.mzd-card--fiche .mzd-card__media { aspect-ratio: 4 / 3; }
.mzd-card__media img { width: 100% !important; height: 100% !important; object-fit: cover; display: block; transition: transform .5s ease; }
.mzd-card:hover .mzd-card__media img { transform: scale(1.04); }
.mzd-card__ph { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: linear-gradient(150deg, var(--mzd-navy), #24406F); color: #fff; }
.mzd-card--fiche .mzd-card__ph { background: linear-gradient(150deg, var(--mzd-sky), #9FB3D6); color: var(--mzd-navy); }
.mzd-card__ph svg { width: 54px; height: 54px; fill: none; stroke: currentColor; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.mzd-card__play { position: absolute; left: 14px; bottom: 14px; width: 44px; height: 44px; border-radius: 50%; background: var(--mzd-pink); color: #fff; display: flex; align-items: center; justify-content: center; }
.mzd-card__play svg { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 0; }
.mzd-card__play svg circle { display: none; }
.mzd-card__body { display: flex; flex-direction: column; gap: 8px; padding: 18px 20px 20px; flex: 1; }
.mzd-card__tag { font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--mzd-pink); }
.mzd-card--fiche .mzd-card__tag { color: var(--mzd-navy); }
.mzd-card__title { font-size: 18px; line-height: 1.3; font-weight: 800; color: var(--mzd-ink); }
.mzd-card__text { font-size: 14.5px; line-height: 1.55; color: var(--mzd-muted); }
.mzd-card__more { margin-top: auto; padding-top: 6px; font-size: 14px; font-weight: 700; color: var(--mzd-navy); }
.mzd-card__more span { display: inline-block; transition: transform .25s; }
.mzd-card:hover .mzd-card__more span { transform: translateX(4px); }

.mzd-quotes { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: clamp(16px, 2.5vw, 28px); margin-top: 28px; }
.mzd-quote { position: relative; margin: 0; background: var(--mzd-snow); border: 1px solid var(--mzd-line); border-left: 5px solid var(--mzd-gold); border-radius: 18px; padding: 44px 26px 24px; display: flex; flex-direction: column; gap: 18px; }
.mzd-quote::before { content: "“"; position: absolute; top: -6px; right: 20px; font-size: 96px; line-height: 1; font-family: Georgia, serif; color: var(--mzd-gold); }
.mzd-quote blockquote { margin: 0; padding: 0; border: 0; font-size: 16.5px; line-height: 1.65; color: var(--mzd-ink); font-style: italic; quotes: none; background: none; }
.mzd-quote figcaption { margin-top: auto; display: flex; flex-direction: column; gap: 4px; font-size: 14px; }
.mzd-quote figcaption strong { color: var(--mzd-navy); font-size: 15px; }
.mzd-quote figcaption a { color: var(--mzd-pink) !important; font-weight: 700; text-decoration: none !important; }
.mzd-quote figcaption a:hover { text-decoration: underline !important; }

.mzd-cards > :only-child, .mzd-quotes > :only-child { max-width: 420px; }

.mzd-card__meta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 10px; }
.mzd-card__date { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; color: var(--mzd-muted); }
.mzd-card__date em { font-style: normal; font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--mzd-ink); background: var(--mzd-gold); padding: 3px 8px; border-radius: 999px; }

/* ==========================================================
   Page Adopt'1 Spot
   ========================================================== */
/* Visuel « Le protocole » */
.mzd-intro__visual.is-protocol { display: flex; flex-direction: column; justify-content: flex-start; padding: clamp(28px, 4vw, 44px); color: #fff; }
.mzd-proto__kicker { font-size: 13px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--mzd-gold); position: relative; }
.mzd-proto { list-style: none; margin: 18px 0 0 !important; padding: 0 !important; display: grid; gap: 16px; position: relative; }
.mzd-proto li { display: grid; grid-template-columns: 76px 1fr; align-items: center; gap: 14px; margin: 0; padding-bottom: 16px; border-bottom: 1px solid rgba(255,255,255,.18); }
.mzd-proto li:last-child { border-bottom: 0; }
.mzd-proto strong { font-size: clamp(54px, 6vw, 72px); line-height: .9; font-weight: 800; color: #fff; text-align: center; }
.mzd-proto li:nth-child(2) strong { color: var(--mzd-gold); }
.mzd-proto li:nth-child(3) strong { color: var(--mzd-sky); }
.mzd-proto span { font-size: 16px; line-height: 1.4; font-weight: 600; color: rgba(255,255,255,.92); }
@media (max-width: 880px) { .mzd-intro__visual.is-protocol { aspect-ratio: auto; padding-bottom: 90px; } }

.mzd-steps.is-plain .mzd-step::after { display: none; }

/* ---------- Carte des spots ---------- */
.mzd-map__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 20px; margin-top: 22px; }
.mzd-map__bar .mzd-pills { justify-content: flex-start; margin: 0; }
.mzd-map__bar .mzd-select { margin: 0; }
.mzd-map__frame { position: relative; margin-top: 16px; border-radius: 22px; overflow: hidden; border: 1px solid var(--mzd-line); box-shadow: 0 24px 48px -32px rgba(28,43,72,.5); }
.mzd-map__canvas { height: clamp(420px, 62vh, 620px); background: #EAF0F8; z-index: 0; }
.mzd-map__count {
	position: absolute; right: 16px; top: 16px; z-index: 500; margin: 0 !important; pointer-events: none;
	background: #fff; color: var(--mzd-navy); font-weight: 800; font-size: 14px; padding: 8px 14px; border-radius: 999px;
	box-shadow: 0 6px 16px -8px rgba(28,43,72,.5);
}
/* Fond de carte aux tons MZD (bleu doux) */
.mzd-map .leaflet-tile-pane { filter: saturate(.35) hue-rotate(-8deg) brightness(1.04) contrast(.95); }
.mzd-map .leaflet-control-zoom { border: 0 !important; box-shadow: 0 6px 16px -8px rgba(28,43,72,.5) !important; border-radius: 12px !important; overflow: hidden; }
.mzd-map .leaflet-control-zoom a { color: var(--mzd-navy) !important; width: 36px !important; height: 36px !important; line-height: 36px !important; font-size: 20px !important; }
.mzd-map .leaflet-bar a:hover { background: var(--mzd-snow) !important; }
.mzd-map .leaflet-control-attribution { font-size: 10px; background: rgba(255,255,255,.8); }
.mzd-map .leaflet-container { font-family: inherit; }

/* Repères */
.mzd-pin-wrap { background: none !important; border: 0 !important; }
.mzd-pin {
	display: block; width: 26px; height: 26px; border-radius: 50% 50% 50% 0; transform: rotate(-45deg);
	background: var(--c, #375791); border: 3px solid #fff; box-shadow: 0 4px 10px -2px rgba(28,43,72,.55); transition: transform .2s;
}
.mzd-pin::after { content: ""; position: absolute; left: 50%; top: 50%; width: 7px; height: 7px; margin: -3.5px 0 0 -3.5px; border-radius: 50%; background: #fff; }
.mzd-pin-wrap:hover .mzd-pin, .mzd-pin-wrap:focus .mzd-pin { transform: rotate(-45deg) scale(1.15); }
.mzd-pin { position: relative; }
.mzd-pin.is-mini { width: 16px; height: 16px; border-width: 2px; box-shadow: none; }
.mzd-pin.is-mini::after { width: 4px; height: 4px; margin: -2px 0 0 -2px; }

.mzd-cluster {
	display: flex !important; align-items: center; justify-content: center; border-radius: 50%;
	background: var(--mzd-navy, #375791); color: #fff; font-weight: 800; font-size: 14px;
	box-shadow: 0 0 0 6px rgba(180,197,225,.55), 0 6px 14px -6px rgba(28,43,72,.6);
}
.mzd-cluster span { line-height: 1; }
.mzd-cluster.is-mini { display: inline-flex !important; width: 20px; height: 20px; font-size: 11px; box-shadow: 0 0 0 3px rgba(180,197,225,.55); }

/* Fiche au clic */
.mzd-popup .leaflet-popup-content-wrapper { border-radius: 16px; padding: 0; box-shadow: 0 18px 40px -16px rgba(28,43,72,.55); }
.mzd-popup .leaflet-popup-content { margin: 0; width: auto !important; min-width: 220px; }
.mzd-popup a.leaflet-popup-close-button { color: var(--mzd-muted, #5E6B84) !important; top: 8px !important; right: 8px !important; }
.mzd-pop { display: flex; flex-direction: column; gap: 8px; padding: 18px 20px 16px; font-size: 14px; line-height: 1.45; color: #1C2B48; }
.mzd-pop__status { align-self: flex-start; font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #fff; background: var(--c); padding: 3px 9px; border-radius: 999px; }
.mzd-pop__title { font-size: 16px; line-height: 1.3; color: #375791; padding-right: 14px; }
.mzd-pop__adopt { color: #5E6B84; }
.mzd-pop__adopt em { display: block; font-style: normal; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #1C2B48; }
.mzd-pop__tags { display: flex; flex-wrap: wrap; gap: 6px; }
.mzd-pop__tag { font-size: 12px; font-weight: 700; padding: 3px 9px; border-radius: 999px; background: var(--c); }
.mzd-pop__meta { font-size: 12.5px; color: #5E6B84; }
.mzd-pop__link { font-weight: 700; color: #DA486A !important; text-decoration: none !important; }
.mzd-pop__link:hover { text-decoration: underline !important; }

.mzd-map__legend { display: flex; flex-wrap: wrap; gap: 10px 24px; margin-top: 14px; font-size: 14px; color: var(--mzd-muted); }
.mzd-map__key { display: inline-flex; align-items: center; gap: 10px; }
@media (max-width: 640px) {
	.mzd-map__canvas { height: 440px; }
	.mzd-map__bar { flex-direction: column; align-items: flex-start; }
}

.mzd-res__help { margin-top: 20px !important; padding: 18px 22px; border: 2px dashed var(--mzd-sky); border-radius: 16px; background: var(--mzd-snow); color: var(--mzd-muted); font-size: 15px; line-height: 1.6; }
.mzd-res__help strong { display: block; color: var(--mzd-pink); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 4px; }

/* Logo Adopt'1 Spot cliquable (remplace le visuel de l'introduction) */
.mzd-intro__visual.is-logo {
	aspect-ratio: auto; background: none; box-shadow: none; overflow: visible; border-radius: 0;
	display: flex; align-items: center; justify-content: center; text-decoration: none !important;
}
a.mzd-intro__visual.is-logo { cursor: pointer; }
.mzd-logo__img { display: block; width: min(100%, 320px) !important; height: auto !important; transition: transform .35s cubic-bezier(.3,1.4,.5,1), filter .35s; filter: drop-shadow(0 8px 12px rgba(28,43,72,.12)); }
a.mzd-intro__visual.is-logo:hover .mzd-logo__img, a.mzd-intro__visual.is-logo:focus-visible .mzd-logo__img { transform: scale(1.05) rotate(-3deg); filter: drop-shadow(0 12px 18px rgba(28,43,72,.2)); }
a.mzd-intro__visual.is-logo:focus-visible { outline: 3px solid var(--mzd-pink); outline-offset: 8px; border-radius: 50%; }
@media (max-width: 880px) { .mzd-logo__img { width: min(70%, 240px) !important; } }

.mzd-map__error { display: flex; align-items: center; justify-content: center; height: 100%; margin: 0 !important; padding: 24px; text-align: center; color: var(--mzd-muted); font-size: 15px; }

.mzd-map__empty { position: absolute; inset: 0; z-index: 450; display: flex; align-items: center; justify-content: center; margin: 0 !important; pointer-events: none; font-weight: 700; color: var(--mzd-navy); background: rgba(255,255,255,.55); }

/* Carte « bientôt disponible » */
.mzd-soon { position: relative; height: clamp(320px, 45vh, 440px); background: linear-gradient(180deg, #F9FBFB 0%, #EAF0F8 100%); display: flex; align-items: center; justify-content: center; overflow: hidden; }
.mzd-soon__ridge { position: absolute; left: 0; right: 0; bottom: 0; width: 100%; height: 55%; }
.mzd-soon__content { position: relative; display: flex; flex-direction: column; align-items: center; gap: 18px; text-align: center; padding: 0 20px; }
.mzd-soon__pin { display: inline-flex; padding: 10px; animation: mzdBounce 2.2s ease-in-out infinite; }
.mzd-soon__pin .mzd-pin { width: 38px; height: 38px; border-width: 4px; }
.mzd-soon__pin .mzd-pin::after { width: 10px; height: 10px; margin: -5px 0 0 -5px; }
.mzd-soon__txt { margin: 0 !important; font-size: clamp(22px, 3vw, 32px); font-weight: 800; color: var(--mzd-navy); text-transform: uppercase; letter-spacing: .02em; background: #fff; padding: 12px 26px; border-radius: 999px; box-shadow: 0 14px 30px -18px rgba(28,43,72,.5); }
@keyframes mzdBounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
@media (prefers-reduced-motion: reduce) { .mzd-soon__pin { animation: none; } }

/* ==========================================================
   Adopt'1 Spot — cartographie des acteurs (pictogrammes proportionnels)
   ========================================================== */
.mzd-act__grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.6fr); gap: clamp(24px, 4vw, 48px); align-items: start; }
@media (max-width: 880px) { .mzd-act__grid { grid-template-columns: 1fr; } }
.mzd-act .mzd-hero .mzd-act__open { margin-top: 22px; }
.mzd-act__open svg { flex: none; }
.mzd-act__main .mzd-pills { justify-content: flex-start; }
.mzd-act__viz { position: relative; width: 100%; min-height: 300px; margin-top: 6px; }
.mzd-act__note { font-size: 13px; color: var(--mzd-muted); margin-top: 10px !important; text-align: center; }
.mzd-act__empty { display: flex; align-items: center; justify-content: center; height: 100%; color: var(--mzd-muted); margin: 0 !important; text-align: center; }

.mzd-bub {
	position: absolute; border-radius: 50%; border: 0 !important; padding: 0 !important; margin: 0;
	background: var(--c) !important; color: var(--on, #fff) !important; cursor: pointer;
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; text-align: center;
	box-shadow: 0 10px 22px -12px rgba(28,43,72,.55), inset 0 0 0 3px rgba(255,255,255,.35);
	transition: left .6s cubic-bezier(.3,1.2,.4,1), top .6s cubic-bezier(.3,1.2,.4,1), width .6s, height .6s, transform .25s, opacity .25s, box-shadow .25s;
	animation: mzdPop .7s cubic-bezier(.3,1.5,.5,1) both; font: inherit !important; line-height: 1 !important; text-transform: none !important; letter-spacing: normal !important;
}
.mzd-bub:hover, .mzd-bub:focus-visible { transform: scale(1.06); z-index: 2; box-shadow: 0 16px 30px -12px rgba(28,43,72,.6), inset 0 0 0 3px rgba(255,255,255,.5); }
.mzd-bub:focus-visible { outline: 3px solid var(--mzd-ink); outline-offset: 3px; }
.mzd-bub.is-active { transform: scale(1.08); z-index: 3; box-shadow: 0 0 0 4px #fff, 0 0 0 7px var(--mzd-pink), 0 16px 30px -12px rgba(28,43,72,.6); }
.mzd-bub.is-dim { opacity: .45; }
.mzd-bub svg { flex: none; }
.mzd-bub__n { font-weight: 800; line-height: 1; font-variant-numeric: tabular-nums; }
.mzd-bub__l { font-size: 11.5px; font-weight: 700; line-height: 1.15; max-width: 82%; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; margin-top: 2px; }
.mzd-bub.is-small .mzd-bub__l { display: none; }
.mzd-bub.is-tiny .mzd-bub__n { display: none; }
@keyframes mzdPop { from { opacity: 0; transform: scale(.2); } to { opacity: 1; transform: scale(1); } }
@media (prefers-reduced-motion: reduce) { .mzd-bub { animation: none; transition: none; } }

/* Liste des acteurs d'une filière */
.mzd-act__detail { display: none; margin-top: 28px; border: 1px solid var(--mzd-line); border-radius: 18px; overflow: hidden; background: #fff; }
.mzd-act__detail.is-open { display: block; animation: mzdFadeUp .35s ease both; }
@keyframes mzdFadeUp { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.mzd-act__dhead { display: flex; align-items: center; gap: 16px; padding: 18px 22px; background: var(--c); color: var(--on, #fff); }
.mzd-act__dico { width: 54px; height: 54px; border-radius: 50%; background: rgba(255,255,255,.22); display: flex; align-items: center; justify-content: center; flex: none; }
.mzd-act__dhead > div { flex: 1; }
.mzd-act__dtitle { font-size: 20px; font-weight: 800; margin: 0 !important; color: inherit; }
.mzd-act__dsub { font-size: 14px; margin: 2px 0 0 !important; opacity: .9; color: inherit; }
.mzd-act__dclose { background: rgba(255,255,255,.22) !important; color: inherit !important; border: 0 !important; width: 36px; height: 36px; border-radius: 50% !important; font-size: 22px !important; line-height: 1 !important; cursor: pointer; padding: 0 !important; }
.mzd-act__list { list-style: none; margin: 0 !important; padding: 8px 22px 16px !important; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 0 28px; }
.mzd-act__item { display: grid; grid-template-columns: auto 1fr; grid-template-areas: "st who" "st where"; column-gap: 12px; align-items: center; padding: 12px 0; border-bottom: 1px dashed var(--mzd-line); margin: 0 !important; }
.mzd-act__st { grid-area: st; font-size: 10.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; padding: 4px 8px; border-radius: 999px; background: var(--mzd-navy); color: #fff; align-self: start; margin-top: 2px; }
.mzd-act__st.is-termine { background: var(--mzd-pink); }
.mzd-act__who { grid-area: who; font-weight: 700; color: var(--mzd-ink); font-size: 15px; }
.mzd-act__where { grid-area: where; font-size: 13.5px; color: var(--mzd-muted); }

/* Fenêtre (pop-up) du graphique */
.mzd-modal { border: 0; padding: 0; border-radius: 24px; width: min(92vw, 760px); max-height: 90vh; overflow: auto; box-shadow: 0 40px 80px -30px rgba(28,43,72,.6); background: #fff; color: var(--mzd-ink); }
.mzd-modal::backdrop { background: rgba(28,43,72,.55); backdrop-filter: blur(3px); }
.mzd-modal[open] { animation: mzdFadeUp .3s ease both; }
.mzd-modal:not([open]) { display: none; }
.mzd-modal__inner { position: relative; padding: clamp(22px, 4vw, 40px); }
.mzd-modal__title { font-size: 22px; font-weight: 800; color: var(--mzd-navy); margin: 0 40px 16px 0 !important; }
.mzd-modal__close { position: absolute; top: 16px; right: 16px; width: 40px; height: 40px; border-radius: 50% !important; border: 0 !important; background: var(--mzd-snow) !important; color: var(--mzd-navy) !important; font-size: 26px !important; line-height: 1 !important; cursor: pointer; padding: 0 !important; }
.mzd-modal__close:hover { background: var(--mzd-sky) !important; }
.mzd-modal .mzd-pills { margin-bottom: 14px; }
html.mzd-noscroll { overflow: hidden; }
.mzd-act__keys { margin-top: 14px; }
.mzd-act__key.is-sel { background: rgba(218,72,106,.1) !important; }
.mzd-act__key.is-sel .mzd-n { font-weight: 800; color: var(--mzd-pink); }

/* Espace entre les chiffres et leur texte */
.mzd-hero__detail li { gap: 0 !important; justify-content: center; }
.mzd-hero__detail strong { margin-right: .45em; }
.mzd-hero__lbl { margin-top: 10px !important; }
.mzd-tile__num { display: flex; align-items: baseline; justify-content: center; gap: .3em; }
.mzd-tile__lbl { margin-top: 8px !important; }
.mzd-pill .mzd-pc { margin-left: .25em; }
.mzd-pills.no-count .mzd-pc { display: none; }
.mzd-v { padding-left: 12px; }
.mzd-top__list li::before { margin-right: .3em; }
.mzd-proto strong { margin-right: .2em; }
/* Légende de la cartographie */
.mzd-act__keys { display: flex !important; flex-wrap: wrap; justify-content: center; gap: 8px 18px !important; }
.mzd-act__key { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; color: var(--mzd-ink); }
.mzd-act__kico { width: 26px; height: 26px; border-radius: 50%; background: var(--c); color: var(--on, #fff); display: inline-flex; align-items: center; justify-content: center; flex: none; }
.mzd-bub { cursor: default; }
.mzd-bub__l { font-size: 12.5px; margin-top: 6px; }

/* Nom de la filière : visible seulement au survol (ou au toucher / au clavier) */
.mzd-bub .mzd-bub__l {
	display: block !important; position: absolute; left: 50%; bottom: calc(100% + 10px); transform: translate(-50%, 6px);
	max-width: none; white-space: nowrap; -webkit-line-clamp: unset; margin: 0;
	background: #fff; color: var(--mzd-ink); font-size: 13px; font-weight: 700; padding: 7px 12px; border-radius: 999px;
	box-shadow: 0 10px 24px -10px rgba(28,43,72,.55); opacity: 0; pointer-events: none; transition: opacity .2s, transform .2s; z-index: 5;
}
.mzd-bub .mzd-bub__l::after { content: ""; position: absolute; left: 50%; top: 100%; margin-left: -6px; border: 6px solid transparent; border-top-color: #fff; }
.mzd-bub:hover .mzd-bub__l, .mzd-bub:focus .mzd-bub__l, .mzd-bub:focus-visible .mzd-bub__l { opacity: 1; transform: translate(-50%, 0); }
.mzd-bub:hover, .mzd-bub:focus { z-index: 6; }
.mzd-bub:focus { outline: none; }
.mzd-bub:focus-visible { outline: 3px solid var(--mzd-ink); outline-offset: 3px; }

/* ==========================================================
   Vidéo YouTube (miniature + lecture au clic)
   ========================================================== */
.mzd-video__stage { position: relative; max-width: 980px; margin: 30px auto 0; padding: 0 0 22px 22px; }
/* formes décoratives aux couleurs MZD derrière la vidéo */
.mzd-video__stage::before { content: ""; position: absolute; left: 0; bottom: 0; width: 62%; height: 72%; border-radius: 26px; background: var(--mzd-gold); }
.mzd-video__stage::after { content: ""; position: absolute; right: -12px; top: -14px; width: 120px; height: 120px; border-radius: 50%; background: var(--mzd-sky); opacity: .7; }
.mzd-video__frame {
	position: relative; z-index: 1; aspect-ratio: 16 / 9; border-radius: 22px; overflow: hidden; background: var(--mzd-navy);
	box-shadow: 0 30px 60px -30px rgba(28,43,72,.6);
}
.mzd-video__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.mzd-video__poster {
	position: absolute; inset: 0; width: 100%; height: 100%; padding: 0 !important; margin: 0; border: 0 !important; border-radius: 0 !important;
	background: var(--mzd-navy) !important; cursor: pointer; display: block;
}
.mzd-video__poster img { width: 100% !important; height: 100% !important; object-fit: cover; display: block; transition: transform .6s ease, filter .4s; }
.mzd-video__poster::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(28,43,72,0) 45%, rgba(28,43,72,.55) 100%); transition: opacity .3s; }
.mzd-video__poster:hover img, .mzd-video__poster:focus-visible img { transform: scale(1.03); filter: saturate(1.08); }
.mzd-video__play {
	position: absolute; left: 50%; top: 50%; z-index: 2; width: 92px; height: 92px; margin: -46px 0 0 -46px; border-radius: 50%;
	background: var(--mzd-pink); color: #fff; display: flex; align-items: center; justify-content: center;
	box-shadow: 0 0 0 10px rgba(218,72,106,.28), 0 16px 32px -10px rgba(0,0,0,.45); transition: transform .3s cubic-bezier(.3,1.5,.5,1), box-shadow .3s;
	animation: mzdPulse 2.4s ease-out infinite;
}
.mzd-video__play svg { width: 40px; height: 40px; margin-left: 5px; }
.mzd-video__poster:hover .mzd-video__play, .mzd-video__poster:focus-visible .mzd-video__play { transform: scale(1.1); }
.mzd-video__poster:focus-visible { outline: 4px solid var(--mzd-gold); outline-offset: -4px; }
.mzd-video__hint {
	position: absolute; z-index: 2; left: 24px; bottom: 20px; color: #fff; font-size: 14px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase;
}
@keyframes mzdPulse { 0% { box-shadow: 0 0 0 0 rgba(218,72,106,.45), 0 16px 32px -10px rgba(0,0,0,.45); } 70% { box-shadow: 0 0 0 22px rgba(218,72,106,0), 0 16px 32px -10px rgba(0,0,0,.45); } 100% { box-shadow: 0 0 0 0 rgba(218,72,106,0), 0 16px 32px -10px rgba(0,0,0,.45); } }
@media (prefers-reduced-motion: reduce) { .mzd-video__play { animation: none; } }
.mzd-video__note { max-width: 980px; margin: 12px auto 0 !important; padding-left: 22px; font-size: 12.5px; color: var(--mzd-muted); }
.mzd-video__note a { color: var(--mzd-navy) !important; font-weight: 700; }
@media (max-width: 640px) {
	.mzd-video__stage { padding: 0 0 14px 14px; }
	.mzd-video__stage::after { width: 70px; height: 70px; right: 0; top: -8px; }
	.mzd-video__play { width: 68px; height: 68px; margin: -34px 0 0 -34px; }
	.mzd-video__play svg { width: 30px; height: 30px; }
	.mzd-video__hint { display: none; }
	.mzd-video__note { padding-left: 14px; }
}

/* ==========================================================
   Campagne — carte des kits de caractérisation (SVG)
   ========================================================== */
.mzd-kits__grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: clamp(22px, 4vw, 44px); margin-top: 28px; align-items: start; }
@media (max-width: 880px) { .mzd-kits__grid { grid-template-columns: 1fr; } }
.mzd-kits__map { background: linear-gradient(180deg, #F9FBFB 0%, #EEF3FA 100%); border: 1px solid var(--mzd-line); border-radius: 22px; padding: clamp(14px, 2.5vw, 26px); }
.mzd-fr { position: relative; width: 100%; }
.mzd-fr__svg { display: block; width: 100%; height: auto; overflow: visible; }
.mzd-fr__land { fill: #fff; stroke: var(--mzd-sky); stroke-width: 3; stroke-linejoin: round; filter: drop-shadow(0 10px 18px rgba(28,43,72,.10)); }
.mzd-fr__massif { fill: var(--mzd-sky); opacity: .55; }
.mzd-fr__lbl { font-size: 22px; font-weight: 700; fill: #7F8FAD; letter-spacing: .04em; font-family: inherit; }
.mzd-kit__pin {
	position: absolute; width: 0; height: 0; padding: 0 !important; margin: 0; border: 0 !important; background: none !important; cursor: pointer; z-index: 2;
}
.mzd-kit__pin .mzd-pin { position: absolute; left: -11px; top: -30px; width: 22px; height: 22px; border-width: 3px; transition: transform .2s; }
.mzd-kit__pin .mzd-pin::after { width: 6px; height: 6px; margin: -3px 0 0 -3px; }
.mzd-kit__pin:hover, .mzd-kit__pin:focus-visible, .mzd-kit__pin.is-on { z-index: 10; }
.mzd-kit__pin:hover .mzd-pin, .mzd-kit__pin:focus-visible .mzd-pin, .mzd-kit__pin.is-on .mzd-pin { transform: rotate(-45deg) scale(1.3); --c: var(--mzd-navy) !important; background: var(--mzd-navy); }
.mzd-kit__pin:focus { outline: none; }
.mzd-kit__tip {
	position: absolute; left: 0; bottom: 38px; transform: translate(-50%, 6px); min-width: 180px; max-width: 240px; white-space: normal; text-align: left;
	background: #fff; color: var(--mzd-ink); padding: 10px 14px; border-radius: 14px; box-shadow: 0 14px 30px -12px rgba(28,43,72,.55);
	opacity: 0; pointer-events: none; transition: opacity .2s, transform .2s; display: flex; flex-direction: column; gap: 2px; font-size: 13px; line-height: 1.35;
}
.mzd-kit__tip::after { content: ""; position: absolute; left: 50%; top: 100%; margin-left: -7px; border: 7px solid transparent; border-top-color: #fff; }
.mzd-kit__tip strong { color: var(--mzd-navy); font-size: 14px; }
.mzd-kit__tip span { color: var(--mzd-muted); }
.mzd-kit__tip em { font-style: normal; font-size: 11.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--mzd-pink); margin-top: 2px; }
.mzd-kit__pin:hover .mzd-kit__tip, .mzd-kit__pin:focus-visible .mzd-kit__tip, .mzd-kit__pin.is-on .mzd-kit__tip { opacity: 1; transform: translate(-50%, 0); }
.mzd-kits__count { margin: 12px 0 0 !important; font-size: 14px; color: var(--mzd-muted); text-align: center; }
.mzd-kits__count strong { color: var(--mzd-pink); font-size: 18px; margin-right: .3em; }
/* Liste des lieux */
.mzd-kits__list { list-style: none; margin: 0 !important; padding: 0 !important; display: grid; gap: 8px; max-height: 620px; overflow: auto; padding-right: 4px !important; }
.mzd-kits__list li { margin: 0; }
.mzd-kit__item {
	width: 100%; text-align: left; display: grid; grid-template-columns: 1fr; gap: 2px; padding: 12px 16px !important; border-radius: 14px !important;
	background: #fff !important; border: 1px solid var(--mzd-line) !important; border-left: 4px solid var(--mzd-pink) !important; color: var(--mzd-ink) !important; cursor: pointer;
	font: inherit !important; line-height: 1.35 !important; text-transform: none !important; letter-spacing: normal !important; transition: background .2s, transform .2s, box-shadow .2s;
}
.mzd-kit__item:hover, .mzd-kit__item:focus-visible, .mzd-kit__item.is-on { background: var(--mzd-snow) !important; transform: translateX(3px); box-shadow: 0 8px 18px -12px rgba(28,43,72,.45); border-left-color: var(--mzd-navy) !important; }
.mzd-kit__city { font-size: 16px; font-weight: 800; color: var(--mzd-navy); }
.mzd-kit__name { font-size: 14px; color: var(--mzd-ink); }
.mzd-kit__meta { font-size: 12.5px; color: var(--mzd-muted); }
@media (max-width: 640px) {
	.mzd-fr__lbl { font-size: 30px; }
	.mzd-kit__pin .mzd-pin { left: -9px; top: -25px; width: 18px; height: 18px; }
	.mzd-kit__tip { min-width: 150px; font-size: 12px; }
	.mzd-kits__list { max-height: none; }
}

/* Zoom « Alpes » de la carte des kits */
.mzd-kits__zoom { justify-content: center; margin: 0 0 10px; }
.mzd-fr { overflow: hidden; border-radius: 14px; --zs: 2.6; }
.mzd-fr__inner { position: relative; transform-origin: 0 0; transition: transform .7s cubic-bezier(.4,.1,.2,1); }
.mzd-fr.is-zoom .mzd-fr__inner { transform: translate(calc(50% - var(--zx) * var(--zs) * 1%), calc(50% - var(--zy) * var(--zs) * 1%)) scale(var(--zs)); }
.mzd-kit__pin { transform-origin: 0 0; transition: transform .7s cubic-bezier(.4,.1,.2,1); }
.mzd-fr.is-zoom .mzd-kit__pin { transform: scale(calc(1 / var(--zs))); }
.mzd-fr.is-zoom .mzd-fr__lbl { font-size: 9px; }
.mzd-fr.is-zoom .mzd-kit__pin:not([data-alps="1"]) { opacity: 0; pointer-events: none; }
@media (prefers-reduced-motion: reduce) { .mzd-fr__inner, .mzd-kit__pin { transition: none; } }

/* ---------- Carte des spots Adopt'1 Spot (SVG) ---------- */
.mzd-fr.is-zoom .mzd-fr__lbl { opacity: 0; }
.mzd-fr__lbl { transition: opacity .4s; }
.mzd-sp__zoom { margin: 0 0 12px !important; justify-content: center; }
.mzd-sp__pin {
	position: absolute; width: 0; height: 0; padding: 0 !important; margin: 0; border: 0 !important; background: none !important;
	cursor: pointer; z-index: 2; transition: opacity .35s, visibility .35s; box-shadow: none !important; min-height: 0 !important;
}
.mzd-fr:not(.is-zoom) .mzd-sp__pin[data-l="z"], .mzd-fr.is-zoom .mzd-sp__pin[data-l="fr"],
.mzd-fr:not(.is-zoom) .mzd-sp__city { opacity: 0; visibility: hidden; pointer-events: none; }
.mzd-fr.is-zoom .mzd-sp__pin, .mzd-fr.is-zoom .mzd-sp__city { transform: scale(calc(1 / var(--zs))); }
.mzd-sp__dot {
	--dd: calc(var(--d) * var(--k, 1));
	position: absolute; left: calc(var(--dd) / -2); top: calc(var(--dd) / -2); width: var(--dd); height: var(--dd); border-radius: 50%;
	background: var(--f); border: 2.5px solid #fff; box-shadow: 0 4px 10px -3px rgba(28,43,72,.55); transition: transform .2s;
}
.mzd-sp__pin:hover, .mzd-sp__pin:focus-visible, .mzd-sp__pin.is-on { z-index: 10; }
.mzd-sp__pin:hover .mzd-sp__dot, .mzd-sp__pin:focus-visible .mzd-sp__dot, .mzd-sp__pin.is-on .mzd-sp__dot { transform: scale(1.22); box-shadow: 0 0 0 3px var(--mzd-navy), 0 6px 14px -4px rgba(28,43,72,.6); }
.mzd-sp__pin:focus { outline: none; }
.mzd-sp__tip {
	position: absolute; left: 0; bottom: calc(var(--d) / 2 + 10px); transform: translate(calc(-50% + var(--dx, 0px)), 6px);
	display: flex; flex-direction: column; gap: 3px; min-width: 180px; max-width: 250px; width: max-content; padding: 10px 13px; border-radius: 12px;
	background: #fff; box-shadow: 0 14px 30px -12px rgba(28,43,72,.55); text-align: left; font-size: 12.5px; line-height: 1.35; color: var(--mzd-ink);
	opacity: 0; pointer-events: none; transition: opacity .18s, transform .18s; white-space: normal;
}
.mzd-sp__pin.is-below .mzd-sp__tip { bottom: auto; top: calc(var(--d) / 2 + 10px); }
.mzd-sp__tip strong { color: var(--mzd-navy); font-size: 13.5px; margin-bottom: 2px; }
.mzd-sp__tip em { font-style: normal; font-size: 11.5px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--mzd-pink); }
.mzd-sp__pin:hover .mzd-sp__tip, .mzd-sp__pin:focus-visible .mzd-sp__tip, .mzd-sp__pin.is-on .mzd-sp__tip { opacity: 1; transform: translate(calc(-50% + var(--dx, 0px)), 0); }
.mzd-sp__line { display: flex; align-items: baseline; gap: 7px; }
.mzd-sp__more { color: var(--mzd-muted); font-style: italic; padding-left: 15px; }
.mzd-sp__st { flex: none; display: inline-block; width: 8px; height: 8px; border-radius: 50%; transform: translateY(-1px); }
.mzd-sp__city { position: absolute; width: 0; height: 0; z-index: 1; pointer-events: none; transition: opacity .35s, visibility .35s; }
.mzd-sp__city::before { content: ""; position: absolute; left: -3px; top: -3px; width: 6px; height: 6px; border-radius: 50%; background: #7F8FAD; }
.mzd-sp__city { font-size: 12px; font-weight: 700; color: #7F8FAD; letter-spacing: .03em; white-space: nowrap; line-height: 0; text-indent: 8px; }
.mzd-sp__keys { display: flex; justify-content: center; flex-wrap: wrap; gap: 6px 18px; margin: 6px 0 0 !important; font-size: 13px; color: var(--mzd-muted); }
.mzd-sp__key { display: inline-flex; align-items: center; gap: 7px; }

.mzd-sp__list { list-style: none; margin: 0 !important; padding: 0 4px 0 0 !important; display: grid; gap: 8px; max-height: 640px; overflow: auto; position: relative; }
.mzd-sp__grp { margin: 0; border-radius: 14px; background: #fff; border: 1px solid var(--mzd-line); border-left: 4px solid var(--mzd-sky); transition: background .2s, border-color .2s, box-shadow .2s; }
.mzd-sp__grp.is-on, .mzd-sp__grp:hover { background: var(--mzd-snow); border-left-color: var(--mzd-navy); box-shadow: 0 8px 18px -12px rgba(28,43,72,.45); }
.mzd-sp__head {
	display: block; width: 100%; text-align: left; padding: 10px 14px 4px !important; margin: 0; border: 0 !important; background: none !important; box-shadow: none !important;
	font: inherit; font-size: 15px !important; font-weight: 800 !important; color: var(--mzd-navy) !important; cursor: pointer; line-height: 1.3; min-height: 0 !important; text-transform: none !important; letter-spacing: 0 !important;
}
.mzd-sp__head:focus-visible { outline: 2px solid var(--mzd-navy); outline-offset: -2px; border-radius: 12px; }
.mzd-sp__spots { list-style: none; margin: 0 !important; padding: 0 14px 10px !important; display: grid; gap: 2px; font-size: 13.5px; }
.mzd-sp__spots li { display: flex; align-items: baseline; gap: 8px; margin: 0; color: var(--mzd-ink); }
.mzd-sp__spots a { color: var(--mzd-ink) !important; text-decoration: none !important; border-bottom: 1px dotted #9AA8C2; }
.mzd-sp__spots a:hover { color: var(--mzd-pink) !important; border-bottom-color: var(--mzd-pink); }
@media (max-width: 880px) { .mzd-sp__list { max-height: 420px; } }
@media (max-width: 600px) { .mzd-sp__pin { --k: .72; } .mzd-sp__dot { border-width: 2px; } .mzd-sp__tip { min-width: 150px; max-width: 200px; font-size: 12px; } .mzd-sp__city { font-size: 10.5px; } }
.mzd-fr.is-zoom .mzd-fr__land { stroke-width: calc(3px / var(--zs)); filter: none; }
.mzd .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); white-space: nowrap; }
/* Fiches actions : 3 colonnes */
.mzd-res--fiche .mzd-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 960px) { .mzd-res--fiche .mzd-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px) { .mzd-res--fiche .mzd-cards { grid-template-columns: 1fr; } }

/* ==========================================================
 * PAGE CHARTE
 * ========================================================== */
/* Intro : « sceau » des signataires */
.mzd-seal {
	position: relative; overflow: hidden; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center;
	aspect-ratio: 1 / 1; max-width: 460px; width: 100%; justify-self: center; padding: clamp(26px, 4vw, 44px) !important;
	border-radius: 28px !important; background: linear-gradient(155deg, #4466A3 0%, var(--mzd-navy) 50%, #2A4373 100%) !important; color: #fff;
	box-shadow: 0 30px 60px -32px rgba(28,43,72,.7);
}
.mzd-seal__kicker { margin: 0 0 8px !important; font-size: 12px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #C9D6EC; }
.mzd-seal__num { margin: 0 !important; font-size: clamp(68px, 10vw, 116px); font-weight: 900; line-height: 1; letter-spacing: -.03em; }
.mzd-seal__lbl { margin: 8px 0 0 !important; font-size: clamp(17px, 1.8vw, 21px); font-weight: 700; }
.mzd-seal__facts { list-style: none; margin: clamp(20px, 3vw, 30px) 0 0 !important; padding: 0 !important; display: grid; grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); gap: 10px; width: 100%; }
.mzd-seal__facts li { margin: 0; display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 12px 8px; border-radius: 14px; background: rgba(255,255,255,.10); }
.mzd-seal__facts strong { font-size: clamp(20px, 2.2vw, 26px); font-weight: 900; line-height: 1; color: #fff; }
.mzd-seal__facts span { font-size: 12.5px; line-height: 1.25; color: rgba(255,255,255,.88); }

/* Portfolio des filières : cartes à retourner */
.mzd-flips { list-style: none; margin: 32px 0 0 !important; padding: 0 !important; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); gap: clamp(14px, 2vw, 22px); }
/* Les deux faces sont superposées dans la même case : la carte prend la hauteur de la face la plus haute, rien n'est coupé */
.mzd-flip { margin: 0; perspective: 1400px; display: grid; }
.mzd-flip__inner { position: relative; display: grid; min-height: 280px; transform-style: preserve-3d; transition: transform .65s cubic-bezier(.3,.7,.2,1); }
.mzd-flip.is-flipped .mzd-flip__inner, .mzd-flip.is-hover .mzd-flip__inner { transform: rotateY(180deg); }
.mzd-flip__face {
	grid-area: 1 / 1; position: relative; display: flex; flex-direction: column; border-radius: 18px; overflow: hidden; min-width: 0;
	-webkit-backface-visibility: hidden; backface-visibility: hidden; box-sizing: border-box;
}
/* Recto */
.mzd-flip__front {
	width: 100%; margin: 0; padding: 20px 20px 22px !important; border: 0 !important; text-align: left; cursor: pointer; font: inherit;
	background: linear-gradient(180deg, rgba(255,255,255,.06) 0%, rgba(0,0,0,0) 45%, rgba(0,0,0,.16) 100%), var(--c) !important; color: var(--ink) !important;
	justify-content: space-between; gap: 10px;
	box-shadow: 0 16px 30px -22px rgba(28,43,72,.8); text-transform: none !important; letter-spacing: 0 !important; line-height: 1.2; min-height: 0 !important;
	transition: box-shadow .25s;
}
.mzd-flip__front:hover { box-shadow: 0 22px 40px -22px rgba(28,43,72,.9); }
.mzd-flip__front:focus-visible { outline: 3px solid var(--mzd-navy); outline-offset: 3px; }
.mzd-flip__picto { display: inline-flex; align-items: center; justify-content: center; width: 84px; height: 84px; border-radius: 22px; background: rgba(255,255,255,.16); }
.mzd-flip__picto-svg { width: 54px; height: 54px; display: block; }
.mzd-flip__kicker { display: block; font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; opacity: .9; margin-top: auto; }
.mzd-flip__name { display: block; font-size: clamp(19px, 1.75vw, 22px); font-weight: 800; line-height: 1.22; hyphens: manual; overflow-wrap: anywhere; word-break: normal; white-space: normal; overflow: visible; text-overflow: clip; margin-top: -4px; }
.mzd-flip__hint { position: absolute; top: 14px; right: 14px; display: inline-flex; align-items: center; gap: 6px; padding: 7px; border-radius: 999px; background: rgba(255,255,255,.16); font-size: 12.5px; font-weight: 700; }
.mzd-flip__hint-txt { max-width: 0; overflow: hidden; white-space: nowrap; transition: max-width .3s; }
.mzd-flip__front:hover .mzd-flip__hint-txt, .mzd-flip__front:focus-visible .mzd-flip__hint-txt { max-width: 80px; padding-right: 4px; }
/* Verso */
.mzd-flip__back {
	transform: rotateY(180deg); background: #fff; border: 1px solid var(--mzd-line); border-top: 6px solid var(--c);
	padding: 18px 18px 14px; gap: 10px; box-shadow: 0 16px 30px -22px rgba(28,43,72,.8);
}
.mzd-flip:not(.is-flipped):not(.is-hover) .mzd-flip__back { pointer-events: none; visibility: hidden; transition: visibility 0s .35s; }
.mzd-flip.is-flipped .mzd-flip__front, .mzd-flip.is-hover .mzd-flip__front { pointer-events: none; }
.mzd-flip__bname { margin: 0 !important; padding-right: 26px; display: flex; align-items: center; gap: 10px; font-size: 15.5px; font-weight: 800; line-height: 1.25; color: var(--mzd-ink); }
.mzd-flip__bpicto { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 12px; background: var(--c); color: var(--ink); }
.mzd-flip__bpicto .mzd-flip__picto-svg { width: 30px; height: 30px; }
.mzd-flip__btxt { margin: -4px 0 0 !important; font-size: 13px; line-height: 1.4; color: var(--mzd-muted); }
.mzd-flip__actions { display: grid; gap: 8px; margin-top: auto; }
.mzd-flip__btn {
	display: flex; align-items: center; gap: 10px; padding: 11px 13px; border-radius: 12px; font-size: 14.5px; font-weight: 700; line-height: 1.25;
	text-decoration: none !important; transition: background .2s, transform .2s, color .2s;
}
.mzd-flip__btn .mzd-ico, .mzd-flip__hint .mzd-ico, .mzd-flip__close .mzd-ico { flex: none; width: 20px; height: 20px; color: inherit !important; margin: 0 !important; }
.mzd-flip__btn small { display: block; font-size: 12px; font-weight: 600; opacity: .85; margin-top: 1px; }
.mzd-flip__btn.is-dl { background: var(--c); color: var(--ink) !important; }
.mzd-flip__btn.is-dl:hover, .mzd-flip__btn.is-dl:focus-visible { filter: brightness(1.12); transform: translateY(-1px); }
.mzd-flip__btn.is-link { background: #fff; color: var(--mzd-ink) !important; border: 1.5px solid var(--mzd-line); }
.mzd-flip__btn.is-link:hover, .mzd-flip__btn.is-link:focus-visible { border-color: var(--c); transform: translateY(-1px); }
.mzd-flip__btn.is-soon { background: #F3F5F9; color: var(--mzd-muted); border: 1px dashed #C9D3E3; }
.mzd-flip__arrow { margin-left: auto; }
.mzd-flip__close {
	position: absolute; top: 8px; right: 8px; display: inline-flex; align-items: center; gap: 2px; margin: 0; padding: 4px !important; border: 0 !important; background: none !important; border-radius: 8px;
	box-shadow: none !important; font: inherit; font-size: 12.5px !important; font-weight: 700 !important; color: var(--mzd-muted) !important; cursor: pointer; min-height: 0 !important; text-transform: none !important; letter-spacing: 0 !important;
}
.mzd-flip__close .mzd-ico { width: 18px; height: 18px; color: inherit !important; }
.mzd-flip__close:hover { color: var(--mzd-navy) !important; }
@media (prefers-reduced-motion: reduce) { .mzd-flip__inner { transition: none; } }

/* Filières en préparation */
.mzd-prep { margin-top: 26px; padding: 18px 20px; border-radius: 16px; background: var(--mzd-snow); border: 1px dashed #C9D3E3; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; }
.mzd-prep__title { margin: 0 !important; font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--mzd-pink); }
.mzd-prep__list { list-style: none; margin: 0 !important; padding: 0 !important; display: flex; flex-wrap: wrap; gap: 8px; }
.mzd-prep__item { margin: 0; display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; background: #fff; border: 1px solid var(--mzd-line); font-size: 13.5px; font-weight: 600; color: var(--mzd-navy); }
.mzd-prep__item .mzd-ico { width: 15px; height: 15px; color: #7F8FAD; }
@media (max-width: 900px) { .mzd-intro__visual.mzd-seal { aspect-ratio: auto; max-width: 420px; } }

@media (max-width: 560px) {
	.mzd-flips { gap: 10px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.mzd-flip__inner { min-height: 220px; }
	.mzd-flip__front { padding: 14px 14px 16px !important; }
	.mzd-flip__picto { width: 60px; height: 60px; border-radius: 16px; }
	.mzd-flip__picto-svg { width: 38px; height: 38px; }
	.mzd-flip__hint { top: 8px; right: 8px; }
	.mzd-flip__name { font-size: 16px; }
	.mzd-flip__kicker { font-size: 10.5px; letter-spacing: .06em; }
	.mzd-flip__back { padding: 14px 10px 10px; gap: 8px; }
	.mzd-flip__bname { font-size: 14px; padding-right: 22px; gap: 7px; }
	.mzd-flip__bpicto { display: none; }
	.mzd-flip__btn { padding: 8px 9px; gap: 7px; font-size: 13px; }
	.mzd-flip__btn .mzd-ico { width: 17px; height: 17px; }
	.mzd-flip__btn small { font-size: 10.5px; }
	.mzd-flip__arrow { display: none; }
}

/* Kits : liste plus aérée + fenêtre des coordonnées */
.mzd-kit__item { gap: 6px !important; padding: 14px 18px !important; }
.mzd-kit__name { margin-top: 2px; line-height: 1.4; }
.mzd-kit__meta { margin-top: 2px; }
.mzd-kit__cta { margin-top: 6px; font-size: 13px; font-weight: 800; color: var(--mzd-pink); }
.mzd-kit__tip small { margin-top: 4px; font-size: 11.5px; color: var(--mzd-navy); font-weight: 700; }
.mzd-kits__hint { margin: 4px 0 0 !important; font-size: 13px; color: var(--mzd-muted); text-align: center; }
.mzd-kdlg {
	width: min(92vw, 440px); max-height: 88vh; margin: auto; padding: 28px 28px 24px !important; border: 0 !important; border-radius: 22px;
	background: #fff; color: var(--mzd-ink); box-shadow: 0 40px 80px -30px rgba(28,43,72,.6); overflow: auto;
}
.mzd-kdlg::backdrop { background: rgba(28,43,72,.45); backdrop-filter: blur(2px); }
.mzd-kdlg[open] { animation: mzd-dlg-in .25s ease; }
@keyframes mzd-dlg-in { from { opacity: 0; transform: translateY(10px) scale(.98); } to { opacity: 1; transform: none; } }
.mzd-kdlg__close {
	position: absolute; top: 12px; right: 12px; width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; padding: 0 !important;
	border: 0 !important; border-radius: 50% !important; background: var(--mzd-snow) !important; color: var(--mzd-navy) !important; font-size: 24px !important; line-height: 1 !important; cursor: pointer; box-shadow: none !important; min-height: 0 !important;
}
.mzd-kdlg__close:hover { background: #E6ECF5 !important; }
.mzd-kdlg__kicker { margin: 0 0 6px !important; font-size: 11.5px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--mzd-pink); padding-right: 40px; }
.mzd-kdlg__title { margin: 0 !important; font-size: 21px !important; font-weight: 800; line-height: 1.25; color: var(--mzd-navy); padding-right: 30px; text-transform: none !important; }
.mzd-kdlg__place { margin: 6px 0 0 !important; font-size: 14px; color: var(--mzd-muted); }
.mzd-kdlg__body { display: grid; gap: 10px; margin-top: 20px; }
.mzd-kdlg__who { margin: 0 0 4px !important; font-size: 16px; font-weight: 700; color: var(--mzd-ink); display: grid; gap: 2px; }
.mzd-kdlg__lbl { font-size: 12px; font-weight: 700; color: var(--mzd-muted); text-transform: uppercase; letter-spacing: .06em; }
.mzd-kdlg__line {
	display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 14px; border: 1.5px solid var(--mzd-line);
	color: var(--mzd-navy) !important; text-decoration: none !important; font-weight: 700; font-size: 15px; overflow-wrap: anywhere; transition: border-color .2s, background .2s;
}
.mzd-kdlg__line:hover, .mzd-kdlg__line:focus-visible { border-color: var(--mzd-navy); background: var(--mzd-snow); }
.mzd-kdlg__line svg { flex: none; width: 20px; height: 20px; fill: none; stroke: var(--mzd-pink); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.mzd-kdlg__infos { margin: 4px 0 0 !important; padding: 10px 14px; border-radius: 12px; background: #FBF4DC; font-size: 14px; color: var(--mzd-ink); }

/* Fil d'Ariane */
.mzd-crumbs { max-width: 1140px; margin: 0 auto; padding: 14px clamp(16px, 2vw, 16px) 4px; }
.mzd-crumbs ol { list-style: none; margin: 0 !important; padding: 0 !important; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 0; font-size: 13.5px; line-height: 1.4; }
.mzd-crumbs li { margin: 0; display: inline-flex; align-items: center; color: var(--mzd-muted); }
.mzd-crumbs a { color: var(--mzd-navy) !important; text-decoration: none !important; font-weight: 600; border-bottom: 1px solid transparent; transition: border-color .2s; }
.mzd-crumbs a:hover, .mzd-crumbs a:focus-visible { border-bottom-color: currentColor; }
.mzd-crumbs [aria-current] { color: var(--mzd-ink); font-weight: 700; }
.mzd-crumbs__sep { width: 15px; height: 15px; margin: 0 6px; fill: none; stroke: #9AA8C2; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.mzd-head + .mzd-page > .mzd-intro, .mzd-head + .mzd-page > :first-child { padding-top: clamp(16px, 3vw, 36px); }

/* Graphique Adopt'1 Spot : légende dans une petite fenêtre */
.mzd-chart.has-legend-pop { position: relative; }
.mzd-legend-toggle {
	display: flex; align-items: center; gap: 8px; margin: 14px auto 0; padding: 9px 16px !important; border-radius: 999px !important;
	border: 1.5px solid var(--mzd-line) !important; background: #fff !important; color: var(--mzd-navy) !important; font: inherit; font-size: 14px !important; font-weight: 700 !important;
	cursor: pointer; box-shadow: none !important; text-transform: none !important; letter-spacing: 0 !important; line-height: 1.2 !important; min-height: 0 !important;
}
.mzd-legend-toggle:hover, .mzd-legend-toggle[aria-expanded="true"] { border-color: var(--mzd-navy) !important; background: var(--mzd-snow) !important; }
.mzd-legend-toggle svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.mzd-legend-pop {
	position: absolute; left: 50%; bottom: 56px; transform: translateX(-50%); z-index: 20; width: min(100%, 560px); overflow: auto; box-sizing: border-box;
	padding: 16px 18px 12px; border-radius: 18px; background: #fff; border: 1px solid var(--mzd-line); box-shadow: 0 24px 50px -20px rgba(28,43,72,.55);
	animation: mzd-dlg-in .2s ease;
}
.mzd-legend-pop[hidden] { display: none; }
.mzd-legend-pop__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 6px; }
.mzd-legend-pop__head strong { font-size: 15px; color: var(--mzd-navy); }
.mzd-legend-pop__close {
	width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; padding: 0 !important; border: 0 !important; border-radius: 50% !important;
	background: var(--mzd-snow) !important; color: var(--mzd-navy) !important; font-size: 22px !important; line-height: 1 !important; cursor: pointer; box-shadow: none !important; min-height: 0 !important;
}
.mzd-legend-pop .mzd-legend { margin-top: 4px; }
.mzd-legend-pop .mzd-hint { margin-top: 8px !important; }

/* Kits : la commune bien visible, le reste en plus petit, bouton « Contacter pour réserver » */
.mzd-kit__item { gap: 0 !important; padding: 16px 18px !important; }
.mzd-kit__city { font-size: 19px !important; font-weight: 800; line-height: 1.2; color: var(--mzd-navy); margin-bottom: 10px; }
.mzd-kit__name { font-size: 13.5px !important; line-height: 1.4; color: var(--mzd-ink); margin: 0; }
.mzd-kit__meta { font-size: 12px !important; color: var(--mzd-muted); margin-top: 3px; }
.mzd-kit__cta {
	justify-self: start; display: inline-flex; align-items: center; gap: 6px; margin-top: 12px; padding: 7px 14px; border-radius: 999px;
	background: var(--mzd-pink); color: #fff !important; font-size: 12.5px; font-weight: 800; line-height: 1.2; transition: background .2s;
}
.mzd-kit__item:hover .mzd-kit__cta, .mzd-kit__item:focus-visible .mzd-kit__cta, .mzd-kit__item.is-on .mzd-kit__cta { background: var(--mzd-navy); }
@media (max-width: 520px) { .mzd-legend-pop .mzd-legend { grid-template-columns: 1fr; } .mzd-legend-pop { padding: 14px 14px 10px; } }

/* Kits : liste réduite à la commune (le détail est dans la fenêtre) */
.mzd-kits__list { gap: 6px !important; }
.mzd .mzd-kit__item {
	display: flex !important; flex-direction: row !important; align-items: center !important; justify-content: space-between !important; gap: 12px !important;
	width: 100% !important; padding: 13px 16px 13px 18px !important; min-height: 0 !important; height: auto !important; white-space: normal !important; text-align: left !important;
}
.mzd .mzd-kit__item .mzd-kit__city { margin: 0 !important; font-size: 17px !important; font-weight: 800 !important; line-height: 1.25 !important; color: var(--mzd-navy) !important; }
.mzd-kit__go { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; background: var(--mzd-snow); color: var(--mzd-pink); transition: background .2s, color .2s; }
.mzd-kit__go svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.mzd-kit__item:hover .mzd-kit__go, .mzd-kit__item:focus-visible .mzd-kit__go, .mzd-kit__item.is-on .mzd-kit__go { background: var(--mzd-pink); color: #fff; }
