/**
 * Nouvelle page d’accueil — MédiNeupré
 *
 * Ordinateur : navigation circulaire.
 * Mobile : introduction visuelle et grandes cartes verticales.
 */

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

.mn-homepage {
	position: relative;
	min-height: 100svh;
	overflow: hidden;

	color: var(--mn-color-white);
	background: var(--mn-color-primary-dark);
}

.mn-homepage__main,
.mn-homepage__hero,
.mn-homepage__content {
	position: relative;
	z-index: 1;
	min-height: 100svh;
}

.mn-homepage__background,
.mn-homepage__overlay {
	position: absolute;
	inset: 0;
	pointer-events: none;
}

.mn-homepage__background {
	z-index: 0;

	background-color: #123f59;
	background-image: var(--mn-homepage-background-image, none);
	background-position: center center;
	background-repeat: no-repeat;
	background-size: cover;

	transform: scale(1.015);
}

.mn-homepage__overlay {
	z-index: 1;

	background:
		linear-gradient(
			180deg,
			rgba(1, 29, 52, 0.45) 0%,
			rgba(1, 36, 59, 0.32) 40%,
			rgba(1, 31, 53, 0.62) 100%
		),
		radial-gradient(
			circle at center,
			rgba(0, 88, 111, 0.08) 0%,
			rgba(0, 28, 49, 0.28) 100%
		);
}

.mn-homepage__hero {
	display: flex;
	align-items: center;
	justify-content: center;

	padding: 138px 32px 40px;
}

.mn-homepage__content {
	width: min(100%, 1180px);
	min-height: auto;
	margin: 0 auto;
}

.mn-homepage__mobile {
	display: none;
}

/**
 * Navigation circulaire — ordinateur.
 */
.mn-homepage__desktop {
	display: block;
}

.mn-homepage__circular-navigation {
	position: relative;

	width: min(80vw, 960px);
	height: min(72vh, 690px);
	min-height: 570px;
	margin: 0 auto;
}

.mn-homepage__circle {
	position: absolute;
	top: 49%;
	left: 50%;

	width: min(62vw, 640px);
	aspect-ratio: 1;
	border: 2px solid rgba(255, 255, 255, 0.42);
	border-radius: 50%;

	box-shadow:
		0 0 70px rgba(128, 203, 210, 0.1),
		inset 0 0 70px rgba(0, 88, 111, 0.06);

	transform: translate(-50%, -50%);
}

.mn-homepage__circle::before,
.mn-homepage__circle::after {
	content: "";
	position: absolute;
	border-radius: 50%;
}

.mn-homepage__circle::before {
	display: none;
}

.mn-homepage__circle::after {
	inset: -9px;
	border-top: 5px solid var(--mn-color-secondary);
	border-right: 5px solid transparent;
	border-bottom: 5px solid var(--mn-color-white);
	border-left: 5px solid transparent;
	transform: rotate(34deg);
}

.mn-homepage__central-content {
	position: absolute;
	top: 49%;
	left: 50%;

	display: flex;
	align-items: center;
	flex-direction: column;

	width: min(72vw, 760px);
	text-align: center;

	transform: translate(-50%, -50%);
}

.mn-homepage__central-logo {
	display: flex;
	align-items: center;
	justify-content: center;

	width: 320px;
	height: 260px;
	margin-bottom: 22px;

	transform-origin: center;
	will-change: transform, opacity;

	animation:
		mn-homepage-central-logo-intro
		1.15s
		cubic-bezier(0.16, 1, 0.3, 1)
		both;
}

.mn-homepage__central-logo-image {
	display: block;

	width: 100%;
	height: 100%;
	max-width: none;

	object-fit: contain;

	transform: scale(1.62);
	transform-origin: center;

	filter:
		drop-shadow(0 10px 30px rgba(0, 20, 38, 0.28));
}

.mn-homepage__central-logo-fallback {
	display: flex;
	align-items: center;
	justify-content: center;

	width: 100%;
	height: 100%;

	color: var(--mn-color-white);
	border: 9px solid var(--mn-color-white);
	border-right-color: var(--mn-color-secondary);
	border-radius: 50%;

	font-size: 8rem;
	font-weight: 300;
	line-height: 1;
	letter-spacing: -0.11em;
}

.mn-homepage__title {
	width: 100%;
	margin: 0;

	color: var(--mn-color-white);

	font-size: clamp(1.45rem, 2.1vw, 2.15rem);
	font-weight: 700;
	line-height: 1.1;
	text-align: center;
	white-space: nowrap;

	text-shadow: 0 4px 22px rgba(0, 20, 38, 0.62);

	opacity: 0;
	transform: translateY(18px);

	animation:
		mn-homepage-title-intro
		0.8s
		cubic-bezier(0.22, 1, 0.36, 1)
		0.62s
		both;
}

.mn-homepage__title-line {
	display: inline;
}

.mn-homepage__title-line:first-child::after {
	content: " ";
}

.mn-homepage__title-line--accent {
	display: block;
	margin-top: 8px;

	color: var(--mn-color-secondary);
	font-size: 1.04em;
}

.mn-homepage__title-line--accent::after {
	content: "";
	display: block;

	width: 72px;
	height: 4px;
	margin: 12px auto 0;

	background: var(--mn-color-secondary);
	border-radius: var(--mn-radius-pill);
}

.mn-homepage__orbit-link {
	position: absolute;

	display: flex;
	align-items: center;
	flex-direction: column;
	justify-content: center;
	gap: 8px;

	width: 126px;
	height: 126px;
	min-width: 126px;
	min-height: 126px;
	padding: 14px;

	color: var(--mn-color-primary-dark);
	background: rgba(255, 255, 255, 0.96);
	border: 2px solid var(--mn-color-secondary);
	border-radius: 50%;

	font-size: 1rem;
	font-weight: 700;
	line-height: 1.12;
	text-align: center;
	text-decoration: none;

	box-shadow:
		0 15px 38px rgba(0, 25, 45, 0.24),
		inset 0 1px 0 rgba(255, 255, 255, 0.9);

	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);

	transition:
		color var(--mn-transition-standard),
		background-color var(--mn-transition-standard),
		border-color var(--mn-transition-standard),
		transform var(--mn-transition-standard),
		box-shadow var(--mn-transition-standard);
}

.mn-homepage__orbit-link:hover,
.mn-homepage__orbit-link:focus-visible {
	color: var(--mn-color-white);
	background: rgba(0, 88, 111, 0.95);
	border-color: var(--mn-color-secondary);

	box-shadow:
		0 20px 46px rgba(0, 20, 38, 0.34),
		0 0 0 6px rgba(128, 203, 210, 0.16);
}

.mn-homepage__orbit-link:focus-visible {
	outline: 3px solid var(--mn-color-secondary);
	outline-offset: 5px;
}

.mn-homepage__orbit-icon {
	position: relative;
	display: block;
	width: 45px;
	height: 45px;
	flex: 0 0 45px;
	color: currentColor;
}

.mn-homepage__orbit-icon::before {
	content: "";
	position: absolute;
	inset: 0;
	background-color: currentColor;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-size: contain;
	mask-size: contain;
}

.mn-homepage__orbit-icon[data-homepage-icon="equipe"]::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='black' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='25' cy='19' r='10'/%3E%3Cpath d='M7 52c1-13 7-20 18-20s17 7 18 20H7Z'/%3E%3Ccircle cx='46' cy='23' r='7'/%3E%3Cpath d='M43 36c9-1 14 5 15 15H47'/%3E%3C/g%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='black' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='25' cy='19' r='10'/%3E%3Cpath d='M7 52c1-13 7-20 18-20s17 7 18 20H7Z'/%3E%3Ccircle cx='46' cy='23' r='7'/%3E%3Cpath d='M43 36c9-1 14 5 15 15H47'/%3E%3C/g%3E%3C/svg%3E");
}

.mn-homepage__orbit-icon[data-homepage-icon="news"]::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='black' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='10' y='8' width='39' height='47' rx='3'/%3E%3Cpath d='M49 17h6v34a4 4 0 0 1-4 4H18'/%3E%3Crect x='17' y='16' width='12' height='11'/%3E%3Cpath d='M35 17h8M35 23h8M17 34h26M17 42h26M17 49h18'/%3E%3C/g%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='black' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='10' y='8' width='39' height='47' rx='3'/%3E%3Cpath d='M49 17h6v34a4 4 0 0 1-4 4H18'/%3E%3Crect x='17' y='16' width='12' height='11'/%3E%3Cpath d='M35 17h8M35 23h8M17 34h26M17 42h26M17 49h18'/%3E%3C/g%3E%3C/svg%3E");
}

.mn-homepage__orbit-icon[data-homepage-icon="labo"]::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='black' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 8h20M26 8v8l-5 28a11 11 0 0 0 22 4L38 16V8'/%3E%3Cpath d='M23 37h18M29 44h2M34 49h2'/%3E%3C/g%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='black' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 8h20M26 8v8l-5 28a11 11 0 0 0 22 4L38 16V8'/%3E%3Cpath d='M23 37h18M29 44h2M34 49h2'/%3E%3C/g%3E%3C/svg%3E");
}

.mn-homepage__orbit-icon[data-homepage-icon="centre"]::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='black' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 55h44M15 55V20h34v35M22 20V10h20v10M28 10V6h8v4'/%3E%3Cpath d='M29 17h6M26 28h4M34 28h4M26 36h4M34 36h4M29 55V45h6v10'/%3E%3C/g%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='black' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 55h44M15 55V20h34v35M22 20V10h20v10M28 10V6h8v4'/%3E%3Cpath d='M29 17h6M26 28h4M34 28h4M26 36h4M34 36h4M29 55V45h6v10'/%3E%3C/g%3E%3C/svg%3E");
}

.mn-homepage__orbit-icon[data-homepage-icon="cabinets"]::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='black' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='13' y='8' width='33' height='48' rx='2'/%3E%3Cpath d='M22 13h29v43H22M38 32h.1'/%3E%3C/g%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='black' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='13' y='8' width='33' height='48' rx='2'/%3E%3Cpath d='M22 13h29v43H22M38 32h.1'/%3E%3C/g%3E%3C/svg%3E");
}

.mn-homepage__orbit-label {
	display: block;
	max-width: 96px;
}

/**
 * Positionnement des boutons sur le cercle périphérique.
 *
 * Les quatre boutons latéraux suivent une même trajectoire visuelle.
 * Le bouton « Cabinets à louer » ferme le parcours en partie basse.
 */
.mn-homepage__orbit-link--top-left {
	top: 7%;
	left: 20%;
}

.mn-homepage__orbit-link--top-left:hover,
.mn-homepage__orbit-link--top-left:focus-visible {
	transform: translateY(-4px);
}

.mn-homepage__orbit-link--top-right {
	top: 7%;
	right: 20%;
}

.mn-homepage__orbit-link--top-right:hover,
.mn-homepage__orbit-link--top-right:focus-visible {
	transform: translateY(-4px);
}

.mn-homepage__orbit-link--middle-left {
	top: 49%;
	left: 10%;
	transform: translateY(-50%);
}

.mn-homepage__orbit-link--middle-left:hover,
.mn-homepage__orbit-link--middle-left:focus-visible {
	transform: translateY(calc(-50% - 4px));
}

.mn-homepage__orbit-link--middle-right {
	top: 49%;
	right: 10%;
	transform: translateY(-50%);
}

.mn-homepage__orbit-link--middle-right:hover,
.mn-homepage__orbit-link--middle-right:focus-visible {
	transform: translateY(calc(-50% - 4px));
}

.mn-homepage__orbit-link--bottom {
	bottom: -4%;
	left: 50%;
	transform: translateX(-50%);
}

.mn-homepage__orbit-link--bottom:hover,
.mn-homepage__orbit-link--bottom:focus-visible {
	transform: translate(-50%, -4px);
}

/**
 * Header spécifique à l’accueil — ordinateur.
 */
@media (min-width: 901px) {
	.mn-homepage .mn-site-header {
		position: fixed;
		padding: 20px 34px;
	}

	body.admin-bar .mn-homepage .mn-site-header {
		top: 32px;
	}

	.mn-homepage .mn-site-header__inner {
		width: min(100%, 1440px);
		min-height: 72px;
		padding: 0;

		background: transparent;
		border: 0;
		border-radius: 0;
		box-shadow: none;

		-webkit-backdrop-filter: none;
		backdrop-filter: none;
	}

	.mn-homepage .mn-site-header__logo {
		width: 290px;
		height: 68px;
		opacity: 1;

		-webkit-filter:
			drop-shadow(0 2px 10px rgba(0, 20, 38, 0.34));

		filter:
			drop-shadow(0 1px 1px rgba(255, 255, 255, 0.5))
			drop-shadow(0 3px 12px rgba(0, 25, 45, 0.48));
	}

	.mn-homepage .mn-site-header__menu {
		gap: 18px;
	}

	.mn-homepage .mn-site-header__menu a {
		min-height: 42px;
		padding: 8px 10px;

		color: var(--mn-color-white);
		background: transparent;

		font-size: 1rem;
		font-weight: 500;

		text-shadow: 0 2px 12px rgba(0, 20, 38, 0.5);
	}

	.mn-homepage .mn-site-header__menu a:hover,
	.mn-homepage .mn-site-header__menu a:focus-visible,
	.mn-homepage .mn-site-header__menu .current-menu-item > a,
	.mn-homepage .mn-site-header__menu .current_page_item > a {
		color: var(--mn-color-secondary);
		background: rgba(0, 40, 68, 0.22);
	}

	.mn-homepage .mn-site-header__appointment {
		min-height: 48px;
		padding: 11px 24px;

		color: var(--mn-color-white);
		background: var(--mn-color-secondary);
		border-color: var(--mn-color-secondary);
		border-radius: 7px;

		font-size: 0.98rem;
		font-weight: 600;

		box-shadow: 0 8px 22px rgba(0, 25, 45, 0.2);
	}

	.mn-homepage .mn-site-header__appointment:hover,
	.mn-homepage .mn-site-header__appointment:focus-visible {
		color: var(--mn-color-white);
		background: var(--mn-color-primary);
		border-color: var(--mn-color-secondary);
	}
}

/**
 * Adaptation pour les écrans d’ordinateur plus étroits.
 */
@media (max-width: 1100px) and (min-width: 901px) {
	.mn-homepage__hero {
		padding-inline: 20px;
	}

	.mn-homepage__circular-navigation {
		width: 92vw;
	}

	.mn-homepage__circle {
		width: 520px;
	}

	.mn-homepage__central-content {
		top: 49%;
		width: min(85vw, 650px);
	}

	.mn-homepage__central-logo {
		width: 280px;
		height: 235px;
		margin-bottom: 18px;
	}

	.mn-homepage__central-logo-image {
		transform: scale(1.42);
	}

	.mn-homepage__title {
		font-size: clamp(1.3rem, 2.3vw, 1.8rem);
	}

	.mn-homepage__orbit-link {
		width: 112px;
		height: 112px;
		min-width: 112px;
		min-height: 112px;
		padding: 12px;
		font-size: 0.9rem;
	}

	.mn-homepage__orbit-icon {
		width: 39px;
		height: 39px;
		flex-basis: 39px;
	}

	.mn-homepage__orbit-link--top-left {
		top: 9%;
		left: 21%;
	}

	.mn-homepage__orbit-link--top-right {
		top: 9%;
		right: 21%;
	}

	.mn-homepage__orbit-link--middle-left {
		top: 49%;
		left: 11%;
	}

	.mn-homepage__orbit-link--middle-right {
		top: 49%;
		right: 11%;
	}

	.mn-homepage__orbit-link--bottom {
		bottom: -2%;
	}
}

/**
 * Version mobile.
 *
 * Cette composition est volontairement distincte de la version ordinateur.
 */
@media (max-width: 900px) {
	.mn-homepage {
		min-height: 100svh;
		overflow: visible;

		background: #03162b;
	}

	.mn-homepage__main,
	.mn-homepage__hero,
	.mn-homepage__content {
		min-height: 100svh;
	}

	/**
	 * Photo mobile à sa largeur naturelle, sans zoom ni étirement.
	 *
	 * La photo est portée par un pseudo-élément au format 4/3. Un masque
	 * progressif rend sa partie basse transparente : le fond bleu marine
	 * apparaît alors graduellement, sans ligne de coupure visible.
	 */
	.mn-homepage__background {
		position: absolute;
		top: 0;
		right: 0;
		bottom: auto;
		left: 0;

		height: clamp(760px, 140vw, 960px);
		overflow: hidden;

		background: #03162b;
		transform: none;
	}

	.mn-homepage__background::before {
		content: "";
		position: absolute;
		top: 0;
		left: 0;

		width: 100%;
		aspect-ratio: 4 / 3;

		background-image: var(--mn-homepage-background-image, none);
		background-position: center top;
		background-repeat: no-repeat;
		background-size: 100% auto;

		-webkit-mask-image:
			linear-gradient(
				180deg,
				#000 0%,
				#000 66%,
				rgba(0, 0, 0, 0.96) 72%,
				rgba(0, 0, 0, 0.78) 80%,
				rgba(0, 0, 0, 0.50) 87%,
				rgba(0, 0, 0, 0.22) 94%,
				transparent 100%
			);

		mask-image:
			linear-gradient(
				180deg,
				#000 0%,
				#000 66%,
				rgba(0, 0, 0, 0.96) 72%,
				rgba(0, 0, 0, 0.78) 80%,
				rgba(0, 0, 0, 0.50) 87%,
				rgba(0, 0, 0, 0.22) 94%,
				transparent 100%
			);

		-webkit-mask-repeat: no-repeat;
		mask-repeat: no-repeat;
		-webkit-mask-size: 100% 100%;
		mask-size: 100% 100%;
	}

	/**
	 * Le dégradé conserve la photo lisible dans la partie haute,
	 * puis la prolonge progressivement vers le bleu marine
	 * qui reçoit les boutons de navigation.
	 */
	.mn-homepage__overlay {
		top: 0;
		right: 0;
		bottom: auto;
		left: 0;

		height: clamp(820px, 150vw, 1040px);

		/*
		 * Ce second voile améliore le contraste du logo et du titre.
		 * Il reste volontairement très léger dans la partie haute.
		 */
		background:
			linear-gradient(
				180deg,
				rgba(2, 27, 52, 0.14) 0%,
				rgba(2, 27, 52, 0.16) 34%,
				rgba(2, 25, 49, 0.24) 52%,
				rgba(2, 23, 45, 0.42) 66%,
				rgba(3, 22, 43, 0.66) 78%,
				rgba(3, 22, 43, 0.88) 90%,
				#03162b 100%
			),
			linear-gradient(
				90deg,
				rgba(0, 21, 42, 0.10) 0%,
				rgba(0, 21, 42, 0) 50%,
				rgba(0, 21, 42, 0.10) 100%
			);
	}

	.mn-homepage__hero {
		display: block;
		padding: 0;
	}

	.mn-homepage__content {
		width: 100%;
	}

	.mn-homepage__desktop {
		display: none;
	}

	.mn-homepage__mobile {
		position: relative;
		display: block;

		width: 100%;
		min-height: 100svh;
		padding: 0 0 42px;
	}

	/**
	 * Header sombre conforme à la maquette mobile.
	 */
	.mn-homepage .mn-site-header {
		position: fixed;
		padding: 14px 16px;
	}

	body.admin-bar .mn-homepage .mn-site-header {
		top: 46px;
	}

	.mn-homepage .mn-site-header__inner {
		min-height: 94px;
		padding: 11px 14px 11px 22px;

		background: rgba(2, 27, 54, 0.91);
		border: 1px solid rgba(128, 203, 210, 0.08);
		border-radius: 25px;

		box-shadow:
			0 18px 45px rgba(0, 17, 33, 0.32),
			inset 0 1px 0 rgba(255, 255, 255, 0.04);

		-webkit-backdrop-filter: blur(15px);
		backdrop-filter: blur(15px);
	}

	.mn-homepage .mn-site-header__logo {
		width: min(255px, 64vw);
		height: 62px;
		opacity: 1;

		-webkit-filter:
			drop-shadow(0 1px 1px rgba(255, 255, 255, 0.28))
			drop-shadow(0 4px 14px rgba(0, 18, 36, 0.4));

		filter:
			drop-shadow(0 1px 1px rgba(255, 255, 255, 0.28))
			drop-shadow(0 4px 14px rgba(0, 18, 36, 0.4));
	}

	.mn-homepage .mn-site-header__menu-toggle {
		width: 58px;
		height: 58px;

		color: var(--mn-color-white);
		background: transparent;
		border-radius: 15px;
	}

	.mn-homepage .mn-site-header__menu-toggle-line {
		width: 31px;
		height: 4px;
	}

	.mn-homepage .mn-site-header__navigation {
		top: calc(100% + 10px);

		background: rgba(2, 27, 54, 0.98);
		border-color: rgba(128, 203, 210, 0.18);
	}

	.mn-homepage .mn-site-header__menu a {
		color: var(--mn-color-white);
	}

	.mn-homepage .mn-site-header__menu a:hover,
	.mn-homepage .mn-site-header__menu a:focus-visible,
	.mn-homepage .mn-site-header__menu .current-menu-item > a {
		color: var(--mn-color-white);
		background: rgba(128, 203, 210, 0.18);
	}

	/**
	 * Grande zone photographique avec symbole et titre.
	 *
	 * Sa hauteur correspond approximativement à la partie illustrée
	 * de la maquette. La navigation débute lorsque le dégradé devient
	 * bleu foncé.
	 */
	.mn-homepage__mobile-intro {
		display: flex;
		align-items: center;
		flex-direction: column;
		justify-content: flex-start;

		/*
		 * Le titre reste dans la zone de fondu plutôt que sur une rupture
		 * nette entre la photo et le fond bleu.
		 */
		min-height: clamp(790px, 145vw, 980px);
		padding: clamp(184px, 29vw, 225px) 22px 118px;

		text-align: center;
	}

	.mn-homepage__mobile-logo {
		display: flex;
		align-items: center;
		justify-content: center;

		width: min(350px, 68vw);
		aspect-ratio: 1;
		margin-bottom: 25px;

		transform-origin: center;
		will-change: transform, opacity;

		animation:
			mn-homepage-central-logo-intro
			1.15s
			cubic-bezier(0.16, 1, 0.3, 1)
			both;
	}

	.mn-homepage__mobile-logo-image {
		display: block;

		width: 100%;
		height: 100%;
		max-width: none;

		object-fit: contain;

		filter:
			drop-shadow(0 9px 28px rgba(0, 18, 36, 0.38));
	}

	.mn-homepage__mobile-logo-fallback {
		display: flex;
		align-items: center;
		justify-content: center;

		width: 100%;
		height: 100%;

		color: var(--mn-color-white);
		border: 11px solid var(--mn-color-white);
		border-right-color: var(--mn-color-secondary);
		border-radius: 50%;

		font-size: clamp(7rem, 28vw, 11.5rem);
		font-weight: 300;
		line-height: 1;
		letter-spacing: -0.13em;

		text-shadow: 0 8px 30px rgba(0, 15, 28, 0.42);
	}

	.mn-homepage__mobile-title {
		max-width: 560px;
		margin: 0 auto;

		color: var(--mn-color-white);

		font-size: clamp(2.15rem, 7.5vw, 3.55rem);
		font-weight: 750;
		line-height: 1.08;
		text-align: center;

		text-shadow: 0 5px 22px rgba(0, 15, 30, 0.68);

		opacity: 0;
		transform: translateY(18px);

		animation:
			mn-homepage-title-intro
			0.8s
			cubic-bezier(0.22, 1, 0.36, 1)
			0.62s
			both;
	}

	.mn-homepage__mobile-title span {
		display: block;
	}

	.mn-homepage__mobile-title-accent {
		margin-top: 9px;
		color: var(--mn-color-secondary);
	}

	.mn-homepage__mobile-title::after {
		content: "";
		display: block;

		width: 70px;
		height: 5px;
		margin: 19px auto 0;

		background: var(--mn-color-secondary);
		border-radius: var(--mn-radius-pill);

		box-shadow: 0 0 12px rgba(128, 203, 210, 0.28);
	}

	/**
	 * Grandes cartes de navigation dans la zone bleu foncé.
	 */
	.mn-homepage__mobile-navigation {
		position: relative;
		z-index: 2;

		display: grid;
		gap: 15px;

		width: 100%;
		margin-top: -48px;
		padding: 0 26px 8px;
	}

	.mn-homepage__mobile-card {
		display: grid;
		grid-template-columns: 72px minmax(0, 1fr) 34px;
		align-items: center;
		gap: 18px;

		width: 100%;
		min-height: 112px;
		padding: 18px 29px;

		color: var(--mn-color-white);
		background:
			linear-gradient(
				100deg,
				rgba(49, 157, 173, 0.94) 0%,
				rgba(34, 127, 148, 0.94) 100%
			);

		border: 1px solid rgba(128, 203, 210, 0.18);
		border-radius: 34px;

		font-size: 1.6rem;
		font-weight: 700;
		line-height: 1.2;
		text-decoration: none;

		box-shadow:
			0 18px 34px rgba(0, 15, 31, 0.25),
			inset 0 1px 0 rgba(255, 255, 255, 0.09);

		-webkit-backdrop-filter: blur(8px);
		backdrop-filter: blur(8px);

		transition:
			background-color var(--mn-transition-standard),
			transform var(--mn-transition-standard),
			box-shadow var(--mn-transition-standard);
	}

	.mn-homepage__mobile-card:hover,
	.mn-homepage__mobile-card:focus-visible {
		background:
			linear-gradient(
				100deg,
				rgba(62, 168, 180, 0.98) 0%,
				rgba(39, 139, 158, 0.98) 100%
			);

		box-shadow:
			0 23px 42px rgba(0, 15, 31, 0.3),
			0 0 0 4px rgba(128, 203, 210, 0.14);

		transform: translateY(-3px);
	}

	.mn-homepage__mobile-card:focus-visible {
		outline: 3px solid var(--mn-color-secondary);
		outline-offset: 4px;
	}

	.mn-homepage__mobile-card-icon {
		position: relative;
		display: block;

		width: 63px;
		height: 63px;

		color: currentColor;
	}

	.mn-homepage__mobile-card-icon::before {
		content: "";
		position: absolute;
		inset: 0;

		background-color: currentColor;

		-webkit-mask-position: center;
		mask-position: center;

		-webkit-mask-repeat: no-repeat;
		mask-repeat: no-repeat;

		-webkit-mask-size: contain;
		mask-size: contain;
	}

	.mn-homepage__mobile-card-icon[data-homepage-icon="equipe"]::before {
		-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='black' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='25' cy='19' r='10'/%3E%3Cpath d='M7 52c1-13 7-20 18-20s17 7 18 20H7Z'/%3E%3Ccircle cx='46' cy='23' r='7'/%3E%3Cpath d='M43 36c9-1 14 5 15 15H47'/%3E%3C/g%3E%3C/svg%3E");
		mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='black' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='25' cy='19' r='10'/%3E%3Cpath d='M7 52c1-13 7-20 18-20s17 7 18 20H7Z'/%3E%3Ccircle cx='46' cy='23' r='7'/%3E%3Cpath d='M43 36c9-1 14 5 15 15H47'/%3E%3C/g%3E%3C/svg%3E");
	}

	.mn-homepage__mobile-card-icon[data-homepage-icon="news"]::before {
		-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='black' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='10' y='8' width='39' height='47' rx='3'/%3E%3Cpath d='M49 17h6v34a4 4 0 0 1-4 4H18'/%3E%3Crect x='17' y='16' width='12' height='11'/%3E%3Cpath d='M35 17h8M35 23h8M17 34h26M17 42h26M17 49h18'/%3E%3C/g%3E%3C/svg%3E");
		mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='black' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='10' y='8' width='39' height='47' rx='3'/%3E%3Cpath d='M49 17h6v34a4 4 0 0 1-4 4H18'/%3E%3Crect x='17' y='16' width='12' height='11'/%3E%3Cpath d='M35 17h8M35 23h8M17 34h26M17 42h26M17 49h18'/%3E%3C/g%3E%3C/svg%3E");
	}

	.mn-homepage__mobile-card-icon[data-homepage-icon="labo"]::before {
		-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='black' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 8h20M26 8v8l-5 28a11 11 0 0 0 22 4L38 16V8'/%3E%3Cpath d='M23 37h18M29 44h2M34 49h2'/%3E%3C/g%3E%3C/svg%3E");
		mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='black' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 8h20M26 8v8l-5 28a11 11 0 0 0 22 4L38 16V8'/%3E%3Cpath d='M23 37h18M29 44h2M34 49h2'/%3E%3C/g%3E%3C/svg%3E");
	}

	.mn-homepage__mobile-card-icon[data-homepage-icon="centre"]::before {
		-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='black' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 55h44M15 55V20h34v35M22 20V10h20v10M28 10V6h8v4'/%3E%3Cpath d='M29 17h6M26 28h4M34 28h4M26 36h4M34 36h4M29 55V45h6v10'/%3E%3C/g%3E%3C/svg%3E");
		mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='black' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 55h44M15 55V20h34v35M22 20V10h20v10M28 10V6h8v4'/%3E%3Cpath d='M29 17h6M26 28h4M34 28h4M26 36h4M34 36h4M29 55V45h6v10'/%3E%3C/g%3E%3C/svg%3E");
	}

	.mn-homepage__mobile-card-icon[data-homepage-icon="cabinets"]::before {
		-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='black' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='13' y='8' width='33' height='48' rx='2'/%3E%3Cpath d='M22 13h29v43H22M38 32h.1'/%3E%3C/g%3E%3C/svg%3E");
		mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='black' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='13' y='8' width='33' height='48' rx='2'/%3E%3Cpath d='M22 13h29v43H22M38 32h.1'/%3E%3C/g%3E%3C/svg%3E");
	}

	.mn-homepage__mobile-card-label {
		min-width: 0;
	}

	.mn-homepage__mobile-card-arrow {
		display: flex;
		align-items: center;
		justify-content: center;
		justify-self: end;

		width: 30px;
		height: 42px;
	}

	.mn-homepage__mobile-card-arrow svg {
		display: block;
		width: 30px;
		height: 30px;
	}
}

/**
 * Téléphones de largeur moyenne.
 */
@media (max-width: 600px) {
	.mn-homepage__background {
		height: clamp(720px, 150vw, 830px);
	}

	.mn-homepage .mn-site-header {
		padding: 9px;
	}

	body.admin-bar .mn-homepage .mn-site-header {
		top: 46px;
	}

	.mn-homepage .mn-site-header__inner {
		min-height: 74px;
		padding: 8px 9px 8px 15px;
		border-radius: 20px;
	}

	.mn-homepage .mn-site-header__logo {
		width: min(205px, 58vw);
		height: 51px;
	}

	.mn-homepage .mn-site-header__menu-toggle {
		width: 49px;
		height: 49px;
	}

	.mn-homepage .mn-site-header__menu-toggle-line {
		width: 26px;
		height: 3px;
	}

	.mn-homepage__mobile-intro {
		min-height: clamp(735px, 155vw, 845px);
		padding: 158px 17px 105px;
	}

	.mn-homepage__mobile-logo {
		width: min(305px, 69vw);
		margin-bottom: 24px;
	}

	.mn-homepage__mobile-title {
		max-width: 470px;
		font-size: clamp(2rem, 8.7vw, 2.85rem);
	}

	.mn-homepage__mobile-navigation {
		gap: 12px;
		margin-top: -42px;
		padding-inline: 16px;
	}

	.mn-homepage__mobile-card {
		grid-template-columns: 58px minmax(0, 1fr) 27px;
		gap: 14px;

		min-height: 92px;
		padding: 15px 20px;

		border-radius: 27px;

		font-size: clamp(1.2rem, 5.2vw, 1.52rem);
	}

	.mn-homepage__mobile-card-icon {
		width: 52px;
		height: 52px;
	}

	.mn-homepage__mobile-card-arrow,
	.mn-homepage__mobile-card-arrow svg {
		width: 25px;
		height: 25px;
	}
}

/**
 * Téléphones très étroits.
 */
@media (max-width: 380px) {
	.mn-homepage__background {
		height: 690px;
	}

	.mn-homepage .mn-site-header__logo {
		width: 175px;
	}

	.mn-homepage__mobile-intro {
		min-height: 710px;
		padding: 145px 14px 96px;
	}

	.mn-homepage__mobile-logo {
		width: min(265px, 70vw);
		margin-bottom: 20px;
	}

	.mn-homepage__mobile-title {
		font-size: 2rem;
	}

	.mn-homepage__mobile-navigation {
		padding-inline: 11px;
	}

	.mn-homepage__mobile-card {
		grid-template-columns: 50px minmax(0, 1fr) 23px;
		gap: 11px;

		min-height: 84px;
		padding: 13px 16px;

		border-radius: 23px;
		font-size: 1.15rem;
	}

	.mn-homepage__mobile-card-icon {
		width: 46px;
		height: 46px;
	}
}

/**
 * Animation d’ouverture du symbole central.
 */
@keyframes mn-homepage-central-logo-intro {
	0% {
		opacity: 0;
		transform: scale(0.35) rotate(-8deg);
	}

	65% {
		opacity: 1;
		transform: scale(1.08) rotate(1deg);
	}

	100% {
		opacity: 1;
		transform: scale(1) rotate(0);
	}
}

/**
 * Apparition différée du titre.
 */
@keyframes mn-homepage-title-intro {
	0% {
		opacity: 0;
		transform: translateY(18px);
	}

	100% {
		opacity: 1;
		transform: translateY(0);
	}
}

/**
 * Réduction des animations selon les préférences système.
 */
@media (prefers-reduced-motion: reduce) {
	.mn-homepage *,
	.mn-homepage *::before,
	.mn-homepage *::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}
}

/**
 * Variante d’accueil plus lumineuse.
 */
@media (min-width: 901px) {
	.mn-homepage__overlay {
		background:
			linear-gradient(
				180deg,
				rgba(1, 29, 52, 0.24) 0%,
				rgba(1, 36, 59, 0.16) 42%,
				rgba(1, 31, 53, 0.38) 100%
			),
			radial-gradient(
				circle at 50% 46%,
				rgba(159, 230, 235, 0.16) 0%,
				rgba(0, 28, 49, 0.12) 68%
			);
	}

	.mn-homepage__background {
		filter: saturate(0.94) brightness(1.12);
	}

	.mn-homepage__orbit-link {
		background: rgba(255, 255, 255, 0.985);
		box-shadow:
			0 15px 38px rgba(0, 25, 45, 0.16),
			inset 0 1px 0 rgba(255, 255, 255, 0.94);
	}
}

/**
 * Ajustement accueil — espacement entre le logo central et le titre.
 * Le logo PNG est agrandi visuellement par transform: scale(); cet espace
 * complémentaire évite que son contour ne touche le texte.
 */
@media (min-width: 901px) {
	.mn-homepage__central-logo {
		margin-bottom: 66px;
	}

	.mn-homepage__title {
		position: relative;
		z-index: 2;
	}
}


/* === Version 2.2.3 : cadrage façade desktop/mobile === */
@media (min-width: 901px) {
	.mn-homepage__background {
		background-position: center top;
		background-size: 100% auto;
		transform: none;
	}

	.mn-homepage__hero {
		padding-top: 132px;
		padding-bottom: 26px;
	}
}

@media (max-width: 900px) {
	.mn-homepage__background {
		height: clamp(700px, 125vw, 900px);
	}

	.mn-homepage__background::before {
		left: 50%;
		width: min(100%, 920px);
		aspect-ratio: 16 / 13;
		background-position: center top;
		transform: translateX(-50%);
	}

	.mn-homepage__overlay {
		height: clamp(740px, 132vw, 940px);
	}

	.mn-homepage__mobile-intro {
		min-height: clamp(720px, 132vw, 910px);
		padding-bottom: 100px;
	}
}


/* === Version 2.3.1 : soulignement du menu sur l’accueil === */
.mn-homepage .mn-site-header__menu a {
	position: relative;
}

.mn-homepage .mn-site-header__menu a::after {
	content: "";
	position: absolute;
	right: 12px;
	bottom: 6px;
	left: 12px;
	height: 2px;
	background: var(--mn-color-secondary);
	border-radius: 999px;
	opacity: 0;
	transform: scaleX(0.45);
	transition:
		opacity var(--mn-transition-fast),
		transform var(--mn-transition-fast);
}

.mn-homepage .mn-site-header__menu a:hover::after,
.mn-homepage .mn-site-header__menu a:focus-visible::after,
.mn-homepage .mn-site-header__menu .current-menu-item > a::after,
.mn-homepage .mn-site-header__menu .current_page_item > a::after {
	opacity: 1;
	transform: scaleX(1);
}

@media (max-width: 1100px) and (min-width: 901px) {
	.mn-homepage .mn-site-header__menu a::after {
		background: var(--mn-color-white);
	}
}

/**
 * Version 3.0.7 — header d’accueil opaque.
 *
 * L’image de fond continue à défiler sous l’en-tête fixe, mais la barre
 * d’en-tête est totalement opaque afin qu’aucun détail de l’image ne reste
 * visible derrière le logo, le menu ou le bouton de rendez-vous.
 */
.mn-homepage .mn-site-header {
	background: linear-gradient(105deg, #02182b 0%, #03243a 54%, #052f43 100%) !important;
	box-shadow: 0 8px 24px rgba(0, 24, 40, 0.28);
	-webkit-backdrop-filter: none !important;
	backdrop-filter: none !important;
}

.mn-homepage .mn-site-header__inner {
	background: transparent !important;
	-webkit-backdrop-filter: none !important;
	backdrop-filter: none !important;
}

@media (max-width: 900px) {
	.mn-homepage .mn-site-header {
		background: #02182b !important;
	}

	.mn-homepage .mn-site-header__inner {
		background: #052a40 !important;
	}
}



/* Version 3.0.8 — espace actualité de l’accueil sans chevauchement mobile. */
@media(max-width:760px){.mn-home-news--single{position:relative;z-index:3;margin-top:0!important}.mn-home-news-featured--compact{grid-template-columns:1fr!important}.mn-home-news-featured--compact .mn-home-news-featured__body{min-width:0}.mn-home-news-featured--compact h2{overflow-wrap:anywhere}}
