/*
 * Styles utilitaires globaux Normandy DMC (nm-*), enqueue depuis ce plugin
 * plutot que depuis le theme "normandydmc" : le theme actif sur le site est
 * actuellement Twenty Twenty-Five (choix du client), donc style.css du theme
 * normandydmc n'est jamais charge. Le plugin lev-blocks, lui, est actif
 * independamment du theme actif : ce fichier fonctionne quel que soit le theme.
 */

/* Les sections pleine largeur (hero, bandeaux de couleur, CTA...) gerent deja
   leur propre espacement via padding. Le coeur de Gutenberg ajoute pourtant
   par defaut une marge haute (margin-block-start) sur chaque bloc de premier
   niveau de la zone de contenu via la regle a specificite nulle
   ":root :where(.is-layout-constrained) > *". Sans annuler cette marge,
   elle laisse apparaitre un liseré de la couleur de fond de PAGE (blanc/creme
   clair) entre deux sections dont les fonds sont differents (ex. section
   creme puis footer navy) : ce n'est pas un manque de padding dans la
   section elle-meme, c'est un espace en plus, EN DEHORS d'elle. On l'annule
   specifiquement sur les blocs alignfull, dont l'espacement est deja assure
   par leur propre padding interne. */
.is-layout-constrained > .alignfull {
	margin-block-start: 0;
}

/* Bloc lev-blocks/activity-section : section pleine largeur entierement
   cliquable vers une fiche activite, avec une fleche (juste la pointe, sans
   tige) qui apparait au survol a droite. CSS place ici (plutot que dans un
   style.scss du bloc) car ce fichier est deja charge et fiable sur le site,
   contrairement au pipeline SCSS par bloc qui posait probleme au moment de
   la creation de ce composant. */
.lev-activity-section {
	display: block;
	position: relative;
	text-decoration: none;
	color: inherit;
	padding: 92px 30px;
	transition: filter 0.2s ease;
}
.lev-activity-section__inner {
	max-width: 1180px;
	margin: 0 auto;
}
@media (min-width: 782px) {
	.lev-activity-section__inner {
		padding-right: 80px;
	}
}
.lev-activity-section__eyebrow {
	color: var(--lev-accent);
}
.lev-activity-section__heading {
	color: var(--lev-primary);
	font-size: 1.8rem;
	font-weight: 700;
	margin: 0 0 14px;
	font-family: var(--lev-font-heading);
}
.lev-activity-section__text {
	color: var(--lev-text);
	font-weight: 300;
	line-height: 1.78;
	margin: 0 0 16px;
	max-width: 74ch;
}
.lev-activity-section__meta {
	margin: 0;
}
.lev-activity-section--dark .lev-activity-section__heading {
	color: #ffffff;
}
.lev-activity-section--dark .lev-activity-section__text {
	color: rgba(255, 255, 255, 0.82);
}
.lev-activity-section__arrow {
	position: absolute;
	right: 40px;
	top: 50%;
	width: 26px;
	height: 26px;
	margin-top: -13px;
	opacity: 0;
	transform: translateX(-8px);
	transition: opacity 0.25s ease, transform 0.25s ease;
	pointer-events: none;
}
@media (max-width: 781px) {
	.lev-activity-section__arrow {
		display: none;
	}
}
.lev-activity-section__arrow::before {
	content: "";
	position: absolute;
	top: 4px;
	left: 2px;
	width: 16px;
	height: 16px;
	border-top: 3px solid var(--lev-accent);
	border-right: 3px solid var(--lev-accent);
	transform: rotate(45deg);
}
.lev-activity-section--linked:hover {
	filter: brightness(0.98);
}
.lev-activity-section--linked:hover .lev-activity-section__arrow {
	opacity: 1;
	transform: translateX(0);
}
.lev-activity-section--linked:focus-visible {
	outline: 2px solid var(--lev-accent);
	outline-offset: -2px;
}

/* Bloc lev-blocks/linked-group : enveloppe un contenu existant (titre/texte/
   tag) dans un lien cliquable vers une activite, avec une fleche au survol.
   Contrairement a lev-blocks/activity-section (section pleine largeur avec
   son propre fond), ce bloc s'utilise PLUSIEURS fois a l'interieur d'une
   meme section deja existante (meme eyebrow, meme fond partage). */
.lev-linked-group {
	display: block;
	position: relative;
	text-decoration: none;
	color: inherit;
}
.lev-linked-group--linked {
	padding-right: 0;
	transition: opacity 0.2s ease;
}
@media (min-width: 782px) {
	.lev-linked-group--linked {
		padding-right: 40px;
	}
}
.lev-linked-group__arrow {
	position: absolute;
	right: 0;
	top: 50%;
	width: 22px;
	height: 22px;
	margin-top: -11px;
	opacity: 0;
	transform: translateX(-8px);
	transition: opacity 0.25s ease, transform 0.25s ease;
	pointer-events: none;
}
@media (max-width: 781px) {
	.lev-linked-group__arrow {
		display: none;
	}
}
.lev-linked-group__arrow::before {
	content: "";
	position: absolute;
	top: 3px;
	left: 2px;
	width: 14px;
	height: 14px;
	border-top: 3px solid var(--lev-accent);
	border-right: 3px solid var(--lev-accent);
	transform: rotate(45deg);
}
.lev-linked-group--linked:hover {
	opacity: 0.86;
}
.lev-linked-group--linked:hover .lev-linked-group__arrow {
	opacity: 1;
	transform: translateX(0);
}
.lev-linked-group--linked:focus-visible {
	outline: 2px solid var(--lev-accent);
	outline-offset: 2px;
}

/* Sur-titre de section (classe "nm-eyebrow") : texte seul, sans trait décoratif */
.nm-eyebrow {
	display: block;
}

/* Tag/pill décoratif pour les stats de destination (<mark class="nm-tag">) */
mark.nm-tag {
	display: inline-block;
	background-color: var(--lev-surface);
	color: var(--lev-accent-dark);
	padding: 4px 12px;
	border-radius: 20px;
	font-size: 0.78rem;
	font-weight: 500;
}

/* Colonne "sticky" qui reste fixe pendant le defilement jusqu'a atteindre le bas
   de la colonne voisine (utiliser la classe "nm-sticky-inner" sur le bloc groupe
   A L'INTERIEUR de la colonne, jamais sur la colonne elle-meme : le support
   "position sticky" natif de Gutenberg pose l'inline style directement sur
   .wp-block-column avec align-self:flex-start, ce qui l'empeche de s'etirer a la
   hauteur de la colonne voisine et annule tout effet de sticky visible) */
.nm-sticky-inner {
	position: sticky;
	top: 120px;
}

/* Mise en page du header */
.nm-header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 1rem;
}

/* Empêche une image de perdre son arrondi pendant une animation/zoom */
.nm-img-clip {
	overflow: hidden;
}

/* Carte cliquable avec soulèvement au survol (ex: cartes "activités
   propriétaires" liées à une page d'activité) */
.nm-hover-card {
	display: block;
	text-decoration: none;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.nm-hover-card:hover {
	transform: translateY(-6px);
	box-shadow: 0 16px 32px rgba(var(--lev-primary-rgb), 0.14);
}

/* Animation au survol pour tous les boutons du site (natifs et blocs custom) */
.wp-block-button__link,
.lev-hero__cta {
	transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

/* Empeche la fleche "->" de retomber seule sur une 2e ligne quand le bouton
   se retrouve a l'etroit (ex: colonne etroite d'un encart contact) */
.wp-block-button__link {
	white-space: nowrap;
}
.wp-block-button__link:hover,
.lev-hero__cta:hover {
	transform: translateY(-3px);
	box-shadow: 0 10px 22px rgba(var(--lev-primary-rgb), 0.18);
}

/* Meme pastille, posee sur une section sombre (navy/dore) : le fond creme y
   ferait une tache, on passe donc sur un voile translucide. */
mark.nm-tag--ghost {
	background-color: rgba(255, 255, 255, 0.1);
	color: var(--lev-accent-soft);
}

/* Angles arrondis sur une image de section (bloc image natif + classe
   additionnelle). Passe par une classe plutot que par le support "border"
   natif : celui-ci ajoute a la figure des classes generees (has-custom-border)
   qu'il faudrait reproduire exactement dans le markup ecrit a la main, sous
   peine de "contenu invalide" cote editeur. */
.nm-img-round img {
	border-radius: 20px;
}

/* Liste a puces doree (bloc liste natif + classe "nm-dot-list"). */
.nm-dot-list {
	list-style: none;
	margin-left: 0;
	padding-left: 0;
}
.nm-dot-list li {
	position: relative;
	padding: 18px 0 18px 24px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
	line-height: 1.7;
	font-weight: 300;
}
.nm-dot-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 27px;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background-color: var(--lev-accent);
}

/* Tableau comparatif (bloc "Tableau" natif + classe additionnelle "nm-table") :
   en-tete navy, libelles dores en capitales, lignes alternees et pas de grille
   apparente. Le bloc reste 100 % natif, seule la mise en forme vient d'ici.
   Les selecteurs portent deux classes (.wp-block-table.nm-table) pour passer
   devant les regles de wp-block-library, qui n'en ont qu'une. */
.wp-block-table.nm-table {
	background-color: #fff;
	border: 1px solid rgba(var(--lev-accent-rgb), 0.28);
	border-radius: 20px;
	overflow-x: auto; /* le tableau defile seul sur mobile, la page ne bouge pas */
}
.wp-block-table.nm-table table {
	width: 100%;
	margin: 0;
	border-collapse: collapse;
	border: none;
}
.wp-block-table.nm-table thead {
	background-color: var(--lev-primary);
	border: none;
}
.wp-block-table.nm-table tr {
	border: none;
}
.wp-block-table.nm-table th {
	padding: 16px 18px;
	border: none;
	text-align: left;
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--lev-accent-soft);
}
.wp-block-table.nm-table td {
	padding: 16px 18px;
	border: none;
	border-top: 1px solid rgba(var(--lev-accent-rgb), 0.22);
	font-size: 0.86rem;
	font-weight: 300;
	color: var(--lev-text-strong);
	vertical-align: middle;
}
.wp-block-table.nm-table tbody tr:nth-child(even) td {
	background-color: var(--lev-background);
}
.wp-block-table.nm-table td:first-child {
	font-weight: 500;
	color: var(--lev-primary);
}

/* Méga menus : simples listes de liens, sans cartes (fond/bordure/arrondi retirés) */
.lev-mega-nav .lev-mega-nav__city-card {
	background: none;
	border: 0;
	border-radius: 0;
	padding: 0;
}

/* Sélecteur de langue du header : drapeau + liste déroulante FR / EN */
.lev-mega-nav__lang {
	position: relative;
}
.lev-mega-nav__lang-btn {
	background: none;
	border: 0;
	padding: 0;
	cursor: pointer;
	font-family: inherit;
	gap: 8px;
}
.lev-mega-nav__flag {
	width: 20px;
	height: 14px;
	border-radius: 2px;
	flex: none;
	box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.25);
}
.lev-mega-nav__lang-menu {
	position: absolute;
	top: calc(100% - 10px);
	right: 0;
	min-width: 150px;
	padding: 8px;
	border-radius: 12px;
	background: var(--lev-primary);
	border: 1px solid rgba(var(--lev-accent-rgb), 0.25);
	box-shadow: 0 16px 32px rgba(0, 0, 0, 0.25);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-6px);
	transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
	z-index: 101;
}
.lev-mega-nav__lang:hover .lev-mega-nav__lang-menu,
.lev-mega-nav__lang:focus-within .lev-mega-nav__lang-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
.lev-mega-nav__lang-link {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 9px 10px;
	border-radius: 8px;
	color: rgba(255, 255, 255, 0.72);
	text-decoration: none;
	font-size: 0.84rem;
}
.lev-mega-nav__lang-link:hover {
	background: rgba(255, 255, 255, 0.08);
	color: #fff;
}
.lev-mega-nav__lang-link.is-current {
	color: var(--lev-button);
	font-weight: 600;
}
@media (max-width: 900px) {
	.lev-mega-nav__lang-btn {
		display: none;
	}
	.lev-mega-nav__lang-menu {
		position: static;
		opacity: 1;
		visibility: visible;
		transform: none;
		display: flex;
		gap: 8px;
		padding: 12px 0;
		border: 0;
		box-shadow: none;
		background: none;
	}
}

/* ─── Formats d'images imposés (aucun autre format accepté) ────────────────────
   Header / hero : 1200 × 700   ·   Horizontal : 570 × 450   ·   Vertical : 700 × 1200
   Une photo à côté d'un texte est TOUJOURS horizontale (570 × 450) : elle ne s'étire
   jamais avec la hauteur du texte, la colonne se centre simplement en face. */
.wp-block-columns:has(> .wp-block-column > figure.wp-block-image:only-child) {
	align-items: center;
}
.wp-block-column > figure.wp-block-image:only-child {
	margin: 0;
}
.wp-block-column > figure.wp-block-image:only-child:not(.lev-img-vertical) img,
.wp-block-column > figure.wp-block-image.lev-img-565 img {
	width: 100% !important;
	height: auto !important;
	aspect-ratio: 57 / 45 !important;
	object-fit: cover !important;
	border-radius: 18px;
}
/* Format vertical 700 × 1200 (classe « lev-img-vertical » sur le bloc image) */
.wp-block-column > figure.wp-block-image.lev-img-vertical img,
.wp-block-image.lev-img-team img {
	width: 100% !important;
	height: auto !important;
	aspect-ratio: 7 / 12 !important;
	object-fit: cover !important;
	border-radius: 18px;
}
/* Photo verticale à côté d'un texte : sur ordinateur elle prend la hauteur du texte
   (jamais plus haute que lui, avec un minimum pour rester lisible) ; le 700 × 1200
   ne s'applique donc qu'aux photos verticales seules. Sur mobile, format 4 / 5. */
@media (min-width: 782px) {
	.wp-block-columns:has(> .wp-block-column > figure.wp-block-image.lev-img-vertical:only-child) {
		align-items: stretch;
	}
	.wp-block-columns:has(> .wp-block-column > figure.wp-block-image.lev-img-vertical:only-child) > .wp-block-column:not(:has(> figure.wp-block-image.lev-img-vertical:only-child)) {
		align-self: center;
	}
	.wp-block-column:has(> figure.wp-block-image.lev-img-vertical:only-child) {
		display: flex;
	}
	.wp-block-column > figure.wp-block-image.lev-img-vertical:only-child {
		position: relative;
		flex: 1 1 auto;
		width: 100%;
		min-height: 380px;
	}
	.wp-block-column > figure.wp-block-image.lev-img-vertical:only-child img {
		position: absolute;
		inset: 0;
		height: 100% !important;
		aspect-ratio: auto !important;
	}
}
@media (max-width: 781px) {
	.wp-block-column > figure.wp-block-image.lev-img-vertical:only-child img {
		aspect-ratio: 4 / 5 !important;
	}
}
/* Format header 1200 × 700 (classe « lev-img-header ») */
.wp-block-image.lev-img-header img {
	width: 100%;
	height: auto;
	aspect-ratio: 12 / 7;
	object-fit: cover;
}

/* ─── Articles de blog (single post) ─────────────────────────────────────────
   Habillage provisoire, aux couleurs et polices du site. Le gabarit « single »
   (base de données) fournit le bandeau titre, le contenu, le CTA et la navigation. */
.lev-post-hero {
	font-family: var(--lev-font-body);
}
.lev-post-hero .wp-block-cover__inner-container {
	width: 100%;
}
.lev-post-eyebrow,
.lev-post-eyebrow a {
	color: var(--lev-accent-light);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 2.2px;
	text-transform: uppercase;
	text-decoration: none;
}
.lev-post-eyebrow {
	margin: 0 0 18px;
}
.lev-post-title {
	font-family: var(--lev-font-heading);
	font-weight: 700;
	letter-spacing: -0.01em;
	margin: 0 0 18px;
	max-width: 900px;
	text-wrap: balance;
}
.lev-post-date {
	margin: 0;
	letter-spacing: 0.02em;
}

.lev-post-content {
	font-family: var(--lev-font-body);
	color: var(--lev-text);
	font-size: 1.05rem;
	font-weight: 300;
	line-height: 1.85;
}
.lev-post-content > p:first-of-type,
.lev-post-content > p:first-child {
	font-size: 1.2rem;
	line-height: 1.7;
	color: var(--lev-text-strong);
}
.lev-post-content p {
	margin: 0 0 1.4em;
}
.lev-post-content strong,
.lev-post-content b {
	font-weight: 500;
	color: var(--lev-primary);
}
.lev-post-content h2,
.lev-post-content h3,
.lev-post-content h4 {
	font-family: var(--lev-font-heading);
	color: var(--lev-primary);
	letter-spacing: -0.01em;
	line-height: 1.25;
	text-wrap: balance;
}
.lev-post-content h2 {
	font-size: clamp(1.6rem, 2.6vw, 2.1rem);
	font-weight: 700;
	margin: 2.2em 0 0.7em;
}
.lev-post-content h3 {
	font-size: 1.35rem;
	font-weight: 700;
	margin: 2em 0 0.6em;
}
.lev-post-content h4 {
	font-size: 1.1rem;
	margin: 1.6em 0 0.5em;
}
.lev-post-content a {
	color: var(--lev-accent-dark);
	font-weight: 500;
	text-decoration: underline;
	text-decoration-color: rgba(var(--lev-accent-rgb), 0.5);
	text-underline-offset: 3px;
	transition: color 0.2s, text-decoration-color 0.2s;
}
.lev-post-content a:hover {
	color: var(--lev-primary);
	text-decoration-color: var(--lev-primary);
}
.lev-post-content ul,
.lev-post-content ol {
	margin: 0 0 1.6em;
	padding-left: 1.3em;
}
.lev-post-content li {
	margin-bottom: 0.5em;
	padding-left: 0.2em;
}
.lev-post-content li::marker {
	color: var(--lev-accent);
}
.lev-post-content figure,
.lev-post-content .wp-block-image {
	margin: 2.2em 0;
}
.lev-post-content img {
	height: auto;
	max-width: 100%;
	border-radius: 18px;
}
.lev-post-content figcaption {
	margin-top: 0.8em;
	font-size: 0.82rem;
	color: var(--lev-text);
	text-align: center;
	opacity: 0.85;
}
.lev-post-content blockquote {
	margin: 2.2em 0;
	padding: 1.4em 1.8em;
	border: 0;
	border-radius: 18px;
	background: var(--lev-surface);
	font-family: var(--lev-font-heading);
	font-size: 1.15rem;
	font-style: italic;
	color: var(--lev-primary);
}
.lev-post-content blockquote p:last-child {
	margin-bottom: 0;
}
.lev-post-content table {
	width: 100%;
	border-collapse: collapse;
	margin: 2em 0;
	font-size: 0.92rem;
}
.lev-post-content th {
	background: var(--lev-primary);
	color: #fff;
	text-align: left;
	padding: 12px 16px;
}
.lev-post-content td {
	padding: 12px 16px;
	border-bottom: 1px solid rgba(var(--lev-primary-rgb), 0.1);
}
.lev-post-content hr {
	border: 0;
	height: 1px;
	background: rgba(var(--lev-primary-rgb), 0.15);
	margin: 3em 0;
}

/* Sommaire (extension Luckywp Table of Contents) */
.lev-post-content .lwptoc {
	margin: 0 0 2.4em;
}
.lev-post-content .lwptoc_i {
	background: var(--lev-surface);
	border: 0;
	border-radius: 18px;
	padding: 24px 28px;
	font-family: var(--lev-font-body);
}
.lev-post-content .lwptoc_header {
	font-family: var(--lev-font-heading);
	font-size: 1.15rem;
	font-weight: 700;
	color: var(--lev-primary);
	margin-bottom: 10px;
}
.lev-post-content .lwptoc_toggle a,
.lev-post-content .lwptoc_item a {
	text-decoration: none;
	font-weight: 400;
	color: var(--lev-primary);
}
.lev-post-content .lwptoc_item a:hover {
	color: var(--lev-accent-dark);
}
.lev-post-content .lwptoc_item_number {
	color: var(--lev-accent-dark);
	font-weight: 600;
}

/* Étiquettes */
.lev-post-tags {
	margin-top: 2.4em;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.lev-post-tags a {
	display: inline-block;
	padding: 6px 14px;
	border-radius: 40px;
	background: var(--lev-surface);
	color: var(--lev-accent-dark);
	font-size: 0.78rem;
	font-weight: 500;
	text-decoration: none;
}
.lev-post-tags a:hover {
	background: var(--lev-accent);
	color: #fff;
}
.lev-post-tags .wp-block-post-terms__separator {
	display: none;
}

/* Précédent / suivant */
.lev-post-nav a {
	color: var(--lev-primary);
	font-family: var(--lev-font-heading);
	font-weight: 700;
	text-decoration: none;
}
.lev-post-nav a:hover {
	color: var(--lev-accent-dark);
}
.lev-post-nav .post-navigation-link-previous,
.lev-post-nav .post-navigation-link-next {
	max-width: 48%;
}

@media (max-width: 781px) {
	.lev-post-hero {
		min-height: 380px !important;
		padding-top: 96px !important;
		padding-bottom: 40px !important;
	}
	.lev-post-content {
		font-size: 1rem;
	}
	.lev-post-nav .post-navigation-link-previous,
	.lev-post-nav .post-navigation-link-next {
		max-width: 100%;
	}
}
.lev-post-hero .lev-post-eyebrow,
.lev-post-hero .lev-post-date,
.lev-post-hero .lev-post-title {
	padding-left: 0;
	padding-right: 0;
	margin-left: 0 !important;
	margin-right: auto !important;
}
.lev-post-hero .lev-post-date {
	color: rgba(255, 255, 255, 0.78) !important;
}
.lev-post-content .lwptoc,
.lev-post-content .lwptoc_i {
	width: 100%;
	box-sizing: border-box;
}

/* Pas de filet de couleur sur les citations des articles ni des fiches d'activité */
.lev-post-content blockquote,
.lev-post-content .wp-block-quote {
	border: 0 !important;
}
.entry-content .wp-block-quote,
.wp-block-post-content .wp-block-quote {
	border-left: 0 !important;
	border-width: 0 !important;
}

/* Cartes d'actualité de l'accueil : même hauteur */
.wp-block-columns:has(> .wp-block-column > .wp-block-group > .wp-block-image) > .wp-block-column > .wp-block-group {
	height: 100%;
}

/* Tableaux comparatifs : lisibles sur mobile, sans dépasser de l'écran */
@media (max-width: 781px) {
	.wp-block-table {
		overflow-x: auto;
	}
	.wp-block-table table,
	.entry-content table {
		width: 100%;
		min-width: 0;
		font-size: 0.78rem;
		table-layout: auto;
	}
	.wp-block-table th,
	.wp-block-table td {
		padding: 8px 10px;
		white-space: normal;
		word-break: normal;
		overflow-wrap: anywhere;
	}
}

/* Menu fixe : la barre reste en haut de l'écran pendant le défilement (ordinateur et mobile).
   Le « sticky » doit porter sur l'élément <header> du thème, parent direct du contenu,
   sinon il ne peut pas bouger (il resterait cantonné à la hauteur de son propre parent). */
.wp-site-blocks > header.wp-block-template-part,
header.wp-block-template-part:has(> .lev-mega-nav) {
	position: sticky;
	top: 0;
	z-index: 200;
}
body.admin-bar .wp-site-blocks > header.wp-block-template-part,
body.admin-bar header.wp-block-template-part:has(> .lev-mega-nav) {
	top: var(--wp-admin--admin-bar--height, 32px);
}


/* Formats imposés : carte « highlight » horizontale 570 × 450 (plus d'étirement avec le texte) */
.lev-highlight-card__media {
	height: auto !important;
	min-height: 0 !important;
	align-self: center;
}
.lev-highlight-card__media img {
	height: auto !important;
	aspect-ratio: 57 / 45;
	object-fit: cover;
}

/* Fiches activités : images de galerie au format horizontal 570 × 450 */
.nm-img-clip {
	height: auto !important;
}
.nm-img-clip img {
	width: 100% !important;
	height: auto !important;
	aspect-ratio: 57 / 45 !important;
	object-fit: cover !important;
}

/* Bandeau partenaires (accueil) : logos à hauteur homogène */
.lev-partner-logo img{height:56px;width:auto;object-fit:contain}

/* ─── Échelle typographique réduite (retour client : textes trop gros) ───────
   Titres et gros textes nettement réduits, paragraphes très légèrement. */
html body .lev-hero__heading,
html body .lev-hero h1 {
	font-size: clamp(28px, 2.2vw + 14px, 38px) !important;
	line-height: 1.15;
}
html body .lev-hero__subheading {
	font-size: clamp(15px, 0.5vw + 12px, 17.5px) !important;
}
html body .has-xx-large-font-size { font-size: clamp(26px, 1.8vw + 12px, 34px) !important; }
html body .has-x-large-font-size  { font-size: clamp(22px, 1.2vw + 12px, 26px) !important; }
html body .has-large-font-size    { font-size: clamp(18px, 0.6vw + 12px, 20px) !important; }
html body .has-medium-font-size   { font-size: clamp(15px, 0.35vw + 12px, 16.5px) !important; }
html body main p,
html body main li { font-size: clamp(15px, 0.3vw + 12px, 16px); }
html body h3.lev-feature-card__heading { font-size: 17px !important; }
html body .lev-highlight-card__heading { font-size: clamp(20px, 1vw + 12px, 24px) !important; }
/* gros chiffres / titres posés en style inline (bandeaux de chiffres, encarts) */
html body [style*="font-size:3rem"]   { font-size: 2.3rem !important; }
html body [style*="font-size:2.6rem"] { font-size: 2.1rem !important; }
html body [style*="font-size:2.3rem"] { font-size: 1.85rem !important; }
html body [style*="font-size:2.2rem"] { font-size: 1.8rem !important; }
html body [style*="font-size:2.1rem"] { font-size: 1.7rem !important; }
html body [style*="font-size:1.8rem"] { font-size: 1.5rem !important; }
html body [style*="font-size:1.7rem"] { font-size: 1.45rem !important; }
html body [style*="font-size:1.6rem"] { font-size: 1.35rem !important; }
html body [style*="font-size:1.5rem"] { font-size: 1.3rem !important; }

/* Texte justifié (demande client) : paragraphes de contenu des pages listées, + classe .nm-justify utilisable partout */
.nm-justify { text-align: justify; hyphens: auto; }
body.page-id-241 main p:not(.has-text-align-center):not(.has-text-align-right):not(.nm-eyebrow),
body.page-id-1166 main p:not(.has-text-align-center):not(.has-text-align-right):not(.nm-eyebrow),
body.page-id-1169 main p:not(.has-text-align-center):not(.has-text-align-right):not(.nm-eyebrow),
body.page-id-1167 main p:not(.has-text-align-center):not(.has-text-align-right):not(.nm-eyebrow),
body.page-id-1163 main p:not(.has-text-align-center):not(.has-text-align-right):not(.nm-eyebrow),
body.page-id-2638 main p:not(.has-text-align-center):not(.has-text-align-right):not(.nm-eyebrow) {
	text-align: justify;
	hyphens: auto;
}

/* Logo du menu en image (assets/logo-normandy-dmc.png, 300 × 159) */
.lev-mega-nav__logo img {
	display: block;
	height: 54px;
	width: auto;
}
@media (max-width: 781px) {
	.lev-mega-nav__logo img {
		height: 44px;
	}
}

/* Vidéo verticale (Short) de l'accueil : sur mobile, plus étroite que sa carte et détachée des chiffres clés. */
@media (max-width: 781px) {
	.wp-block-column:has(> .ndmc-short) {
		margin-top: 28px;
	}
	.ndmc-short {
		margin: 1.75rem auto 1.5rem !important;
		max-width: min(250px, 72%) !important;
	}
	.ndmc-short figcaption {
		margin-inline: -12%;
	}
}
