/* ==========================================================================
   JNM Nocturne — styles complémentaires à theme.json
   Chargé sur le site ET dans l'éditeur.
   Sommaire : 1. Base  2. En-tête  3. Pied de page  4. Styles de blocs
              5. Projets  6. Conseils & articles  7. Formulaires
              8. Animations  9. Utilitaires  10. Responsive
   ========================================================================== */

:root {
	--jnm-nuit: var(--wp--preset--color--background, #0D1320);
	--jnm-dore: var(--wp--preset--color--primary, #C9A876);
	--jnm-ivoire: var(--wp--preset--color--foreground, #E9E6DF);
	--jnm-corps: var(--wp--preset--color--foreground-alt, #C9C5BB);
	--jnm-secondaire: var(--wp--preset--color--secondary, #B4B0A6);
	--jnm-pied: var(--wp--preset--color--pied, #8E8A80);
	--jnm-filet: rgba(201, 168, 118, 0.3);
	--jnm-filet-doux: rgba(201, 168, 118, 0.2);
	--jnm-ease: cubic-bezier(0.22, 1, 0.36, 1);
	--jnm-marge: clamp(24px, 5vw, 72px);
	--jnm-serif: var(--wp--preset--font-family--cormorant, "Cormorant Garamond", Georgia, serif);
	--jnm-sans: var(--wp--preset--font-family--work-sans, "Work Sans", Arial, sans-serif);
}

/* 1. Base
   -------------------------------------------------------------------------- */

html,
body {
	background: var(--jnm-nuit);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

::selection {
	background: var(--jnm-dore);
	color: var(--jnm-nuit);
}

/* Les grands blocs du gabarit s'enchaînent sans espace. */
.wp-site-blocks > * + *,
.wp-site-blocks > main,
main.jnm-main > * + * {
	margin-block-start: 0;
}

/* Les sections pleine largeur d'une page s'enchaînent sans espace parasite. */
.wp-block-post-content > .alignfull,
.wp-block-post-content > .alignfull + * {
	margin-block-start: 0;
}
.wp-block-post-content > .alignfull {
	margin-block-end: 0;
}

h1, h2, h3, h4, .wp-block-heading {
	text-wrap: balance;
	hyphens: manual;
}

p {
	text-wrap: pretty;
}

strong, b {
	font-weight: 500;
}

img {
	height: auto;
}

/* Images de couverture sans arrondi, sans ombre */
.wp-block-image img,
.wp-block-post-featured-image img {
	border-radius: 0;
}

/* Rendu pleine largeur des visuels en « cover » */
.wp-block-image.is-resized img {
	object-fit: cover;
}

/* 2. En-tête
   -------------------------------------------------------------------------- */

.jnm-site-header {
	position: relative;
	z-index: 50;
}

.jnm-header {
	padding: 30px var(--jnm-marge);
	border-bottom: 1px solid rgba(201, 168, 118, 0.25);
	gap: 32px;
}

.jnm-header .wp-block-site-logo img {
	height: 46px;
	width: auto;
}

/* En-tête superposé à la photo : accueil et pages projet */
.home .jnm-site-header,
.single-projet .jnm-site-header,
.jnm-header-superpose .jnm-site-header {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
}

.home .jnm-header,
.single-projet .jnm-header,
.jnm-header-superpose .jnm-header {
	border-bottom: 0;
}

/* Accueil : menu centré, pas de logo dans la barre */
.home .jnm-header {
	justify-content: center;
}
.home .jnm-header .wp-block-site-logo {
	display: none;
}

body.admin-bar.home .jnm-site-header,
body.admin-bar.single-projet .jnm-site-header {
	top: 0;
}

/* Menu */
.jnm-header .jnm-nav {
	margin-left: auto;
}

.home .jnm-header .jnm-nav {
	margin-right: auto;
}

.jnm-nav .wp-block-navigation__container {
	gap: 44px;
}

.jnm-nav .wp-block-navigation-item__content {
	padding-bottom: 3px;
	border-bottom: 1px solid transparent;
	transition: color 0.3s ease, border-color 0.3s ease;
}

.jnm-nav .wp-block-navigation-item__content:hover,
.jnm-nav .wp-block-navigation-item__content:focus {
	color: var(--jnm-dore);
}

.jnm-nav .current-menu-item > .wp-block-navigation-item__content,
.home .jnm-nav .jnm-nav-cta > .wp-block-navigation-item__content {
	color: var(--jnm-dore);
	border-bottom-color: var(--jnm-dore);
}

/* Bouton « hamburger » : deux traits, le second doré */
.jnm-nav .wp-block-navigation__responsive-container-open {
	width: 34px;
	height: 34px;
	padding: 4px;
	color: var(--jnm-ivoire);
}

.jnm-nav .wp-block-navigation__responsive-container-open svg {
	display: none;
}

.jnm-nav .wp-block-navigation__responsive-container-open {
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

.jnm-nav .wp-block-navigation__responsive-container-open::before,
.jnm-nav .wp-block-navigation__responsive-container-open::after {
	content: "";
	display: block;
	width: 26px;
	height: 1px;
	background: var(--jnm-ivoire);
	margin: 3px auto;
	flex: 0 0 1px;
}

.jnm-nav .wp-block-navigation__responsive-container-open::after {
	background: var(--jnm-dore);
}

/* Menu mobile plein écran */
.jnm-nav .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--jnm-nuit) !important;
	color: var(--jnm-ivoire) !important;
	padding: 24px;
	animation: jnm-menu-fade 0.45s ease both;
}

.jnm-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	align-items: center;
	justify-content: center;
	min-height: calc(100vh - 120px);
	padding-top: 0;
}

.jnm-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	align-items: center;
	gap: 32px;
}

.jnm-nav .is-menu-open .wp-block-navigation-item {
	font-size: 13px;
	letter-spacing: 0.28em;
	animation: jnm-menu-link 0.5s ease both;
}

.jnm-nav .is-menu-open .wp-block-navigation-item:nth-child(1) { animation-delay: 0.10s; }
.jnm-nav .is-menu-open .wp-block-navigation-item:nth-child(2) { animation-delay: 0.18s; }
.jnm-nav .is-menu-open .wp-block-navigation-item:nth-child(3) { animation-delay: 0.26s; }
.jnm-nav .is-menu-open .wp-block-navigation-item:nth-child(4) { animation-delay: 0.34s; }
.jnm-nav .is-menu-open .wp-block-navigation-item:nth-child(5) { animation-delay: 0.42s; }
.jnm-nav .is-menu-open .wp-block-navigation-item:nth-child(6) { animation-delay: 0.50s; }

.jnm-nav .is-menu-open .jnm-nav-cta > .wp-block-navigation-item__content {
	color: var(--jnm-dore);
	border-bottom-color: var(--jnm-dore);
}

.jnm-nav .wp-block-navigation__responsive-container-close {
	top: 24px;
	right: 24px;
	color: var(--jnm-ivoire);
}

/* Neutralise la mise en forme du menu mobile d'Extendable (alignement à gauche,
   filets, gras) — sélecteurs volontairement plus spécifiques que ceux du parent. */
html .jnm-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container,
html .jnm-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item {
	align-items: center !important;
}

html .jnm-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container {
	gap: 32px !important;
	width: auto !important;
}

html.has-modal-open .jnm-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content > ul.wp-block-navigation__container > li.wp-block-navigation-item {
	border-bottom: 0 !important;
	padding: 0 !important;
	width: auto !important;
}

html.has-modal-open .jnm-nav .wp-block-navigation__responsive-container .wp-block-navigation__responsive-dialog ul.wp-block-navigation__container > li > a.wp-block-navigation-item__content {
	font-size: 13px !important;
	font-weight: 400 !important;
	letter-spacing: 0.28em !important;
}

html.has-modal-open .jnm-nav .wp-block-navigation__responsive-container-close {
	background: transparent !important;
	top: 24px !important;
}

html .jnm-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	align-items: center !important;
	justify-content: center !important;
	min-height: calc(100vh - 48px) !important;
	padding-top: 0 !important;
}

html.has-modal-open body .jnm-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content ul.wp-block-navigation__container {
	flex-direction: column !important;
	justify-content: center !important;
	align-items: center !important;
	width: 100% !important;
	gap: 0 !important;
}

html.has-modal-open body .jnm-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content ul.wp-block-navigation__container > li + li {
	margin-top: 32px !important;
}

.jnm-nav .site-logo-title.cloned-for-mobile {
	display: none !important;
}

@keyframes jnm-menu-fade {
	from { opacity: 0; }
	to { opacity: 1; }
}

@keyframes jnm-menu-link {
	from { opacity: 0; transform: translateY(14px); }
	to { opacity: 1; transform: none; }
}

/* 3. Pied de page
   -------------------------------------------------------------------------- */

.jnm-footer {
	border-top: 1px solid var(--jnm-filet-doux);
	padding: 48px var(--jnm-marge);
	color: var(--jnm-pied);
	font-size: 12.5px;
	line-height: 1.9;
	font-weight: 300;
	gap: 24px;
}

.jnm-footer p {
	margin: 0;
}

.jnm-footer a {
	color: var(--jnm-pied);
	transition: color 0.3s ease;
}

.jnm-footer a:hover,
.jnm-footer a:focus {
	color: var(--jnm-dore);
}

.jnm-footer__liens {
	gap: 32px;
	font-size: 11px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

/* 4. Styles de blocs
   -------------------------------------------------------------------------- */

/* Surtitre doré (L'AGENCE, MISSIONS…) */
.is-style-jnm-surtitre,
.jnm-kicker {
	font-family: var(--jnm-sans);
	font-size: 11px;
	font-weight: 400;
	letter-spacing: 0.34em;
	line-height: 1.6;
	text-transform: uppercase;
	color: var(--jnm-dore);
}

.is-style-jnm-surtitre a,
.jnm-kicker a {
	color: inherit;
}

/* Italique doré (numéros, lieux, sous-titres) */
.is-style-jnm-italique,
.jnm-italique {
	font-family: var(--jnm-serif);
	font-style: italic;
	font-weight: 400;
	font-size: 20px;
	line-height: 1.4;
	color: var(--jnm-dore);
}

/* Chapô d'article */
.is-style-jnm-chapo {
	font-size: var(--wp--preset--font-size--chapo);
	line-height: 1.85;
	color: var(--jnm-ivoire);
}

/* Étiquette de fiche (TYPE DE PROJET, SURFACE…) */
.is-style-jnm-label {
	font-size: 10px;
	font-weight: 400;
	letter-spacing: 0.28em;
	line-height: 1.5;
	text-transform: uppercase;
	color: var(--jnm-dore);
	margin-bottom: 8px !important;
}

.is-style-jnm-label + p {
	margin-top: 0 !important;
}

/* Mentions (pied de page, petites lignes) */
.is-style-jnm-mentions {
	font-size: 12.5px;
	line-height: 1.9;
	color: var(--jnm-pied);
}

/* Citation italique (titre ou paragraphe) */
.is-style-jnm-citation {
	font-family: var(--jnm-serif);
	font-style: italic;
	font-weight: 400;
	line-height: 1.45;
	text-wrap: balance;
}

/* Trait vertical doré */
hr.wp-block-separator.is-style-jnm-trait,
.jnm-trait {
	width: 1px !important;
	max-width: 1px;
	height: 56px;
	border: 0 !important;
	background: var(--jnm-dore) !important;
	opacity: 1;
	margin-left: auto !important;
	margin-right: auto !important;
}

hr.wp-block-separator.is-style-jnm-trait.jnm-trait-gauche {
	margin-left: max(0px, calc((100% - var(--wp--style--global--content-size, 860px)) / 2)) !important;
	height: 48px;
}

/* Filet court doré (40 px) */
hr.wp-block-separator.is-style-jnm-filet-court {
	width: 40px !important;
	max-width: 40px;
	height: 1px;
	border: 0 !important;
	background: var(--jnm-dore) !important;
	opacity: 1;
	margin-left: auto !important;
	margin-right: auto !important;
}

/* Filet standard */
hr.wp-block-separator:not([class*="is-style-jnm"]) {
	border: 0;
	border-top: 1px solid var(--jnm-filet);
	background: none !important;
	opacity: 1;
}

/* Zoom au survol */
.is-style-jnm-zoom,
.jnm-zoom,
.jnm-carte .wp-block-post-featured-image {
	overflow: hidden;
}

.is-style-jnm-zoom img,
.jnm-zoom img,
.jnm-carte .wp-block-post-featured-image img,
.is-style-jnm-projet .wp-block-media-text__media img {
	transition: transform 0.7s var(--jnm-ease);
}

.is-style-jnm-zoom:hover img,
.jnm-zoom:hover img,
.jnm-carte:hover .wp-block-post-featured-image img,
.is-style-jnm-projet:hover .wp-block-media-text__media img {
	transform: scale(1.03);
}

/* Groupe : filet doré en haut */
.is-style-jnm-filet-haut,
.jnm-section {
	border-top: 1px solid var(--jnm-filet);
}

/* Fiche (projet, contact) */
.is-style-jnm-fiche {
	border-top: 1px solid var(--jnm-dore);
	padding-top: 28px;
	font-size: 13px;
	line-height: 1.7;
	color: var(--jnm-ivoire);
}

.is-style-jnm-fiche > * + * {
	margin-top: 26px;
}

.is-style-jnm-fiche p {
	margin-top: 0;
	margin-bottom: 0;
}

/* Encadré doré (FAQ) */
.is-style-jnm-encadre {
	border: 1px solid rgba(201, 168, 118, 0.35);
	padding: 40px 44px;
}

.is-style-jnm-encadre h2 {
	font-size: 30px;
	font-weight: 500;
	margin: 0 0 28px;
}

.is-style-jnm-encadre h3 {
	font-size: 21px;
	font-weight: 500;
	color: var(--jnm-dore);
	margin: 0 0 10px;
}

.is-style-jnm-encadre p {
	font-size: 14.5px;
	margin: 0 0 24px;
}

.is-style-jnm-encadre p:last-child {
	margin-bottom: 0;
}

/* Colonnes séparées par un filet vertical */
.wp-block-columns.is-style-jnm-separateurs {
	gap: 0;
}

.wp-block-columns.is-style-jnm-separateurs > .wp-block-column {
	padding: 0 32px;
}

.wp-block-columns.is-style-jnm-separateurs > .wp-block-column + .wp-block-column {
	border-left: 1px solid var(--jnm-filet);
}

/* Bouton « lien souligné » */
.wp-block-button.is-style-jnm-lien .wp-block-button__link {
	background: transparent !important;
	color: var(--jnm-ivoire) !important;
	border: 0;
	border-bottom: 1px solid var(--jnm-ivoire);
	padding: 0 0 4px;
	font-size: 11px;
	letter-spacing: 0.26em;
	transition: color 0.3s ease, border-color 0.3s ease;
}

.wp-block-button.is-style-jnm-lien .wp-block-button__link:hover,
.wp-block-button.is-style-jnm-lien .wp-block-button__link:focus {
	color: var(--jnm-dore) !important;
	border-bottom-color: var(--jnm-dore);
}

/* Bouton « pastille » (sous-menu des missions) */
.wp-block-button.is-style-jnm-pastille .wp-block-button__link {
	background: transparent !important;
	color: var(--jnm-ivoire) !important;
	border: 1px solid rgba(233, 230, 223, 0.35);
	padding: 10px 24px;
	font-size: 11px;
	letter-spacing: 0.22em;
	transition: color 0.3s ease, border-color 0.3s ease;
}

.wp-block-button.is-style-jnm-pastille .wp-block-button__link:hover,
.wp-block-button.is-style-jnm-pastille .wp-block-button__link:focus,
.wp-block-button.is-style-jnm-pastille .wp-block-button__link[aria-current] {
	color: var(--jnm-dore) !important;
	border-color: var(--jnm-dore);
}

/* Bouton contour doré — alias de la classe du guide d'intégration */
.jnm-btn a {
	border: 1px solid var(--jnm-dore) !important;
	color: var(--jnm-dore) !important;
	background: transparent !important;
	border-radius: 0 !important;
}

.jnm-btn a:hover {
	background: var(--jnm-dore) !important;
	color: var(--jnm-nuit) !important;
}

.wp-block-button__link {
	transition: background-color 0.4s ease, color 0.4s ease, border-color 0.4s ease;
}

/* Bandeau (bloc Couverture) */
.wp-block-cover.is-style-jnm-bandeau {
	overflow: hidden;
}

/* Image + texte « projet » (accueil) */
.wp-block-media-text.is-style-jnm-projet {
	grid-template-columns: 57% auto;
	column-gap: 0;
}

.wp-block-media-text.is-style-jnm-projet.has-media-on-the-right {
	grid-template-columns: auto 57%;
}

.wp-block-media-text.is-style-jnm-projet .wp-block-media-text__media {
	overflow: hidden;
}

.wp-block-media-text.is-style-jnm-projet .wp-block-media-text__media img {
	height: 440px;
	width: 100%;
	object-fit: cover;
}

.wp-block-media-text.is-style-jnm-projet .wp-block-media-text__content {
	padding: 0 0 0 56px;
}

.wp-block-media-text.is-style-jnm-projet.has-media-on-the-right .wp-block-media-text__content {
	padding: 0 56px 0 0;
}

.wp-block-media-text.is-style-jnm-projet .wp-block-media-text__content > * {
	margin-top: 0;
	margin-bottom: 0;
}

.wp-block-media-text.is-style-jnm-projet .wp-block-media-text__content > * + * {
	margin-top: 14px;
}

.wp-block-media-text.is-style-jnm-projet h3 {
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 400;
}

.wp-block-media-text.is-style-jnm-projet h3 a {
	color: inherit;
}

/* Liens dans le corps de texte */
.wp-block-post-content p a:not(.wp-block-button__link),
.wp-block-post-content li a,
.jnm-texte a {
	color: var(--jnm-ivoire);
	border-bottom: 1px solid var(--jnm-filet);
	transition: color 0.3s ease, border-color 0.3s ease;
}

.wp-block-post-content p a:not(.wp-block-button__link):hover,
.wp-block-post-content li a:hover,
.jnm-texte a:hover {
	color: var(--jnm-dore);
	border-bottom-color: var(--jnm-dore);
}

.wp-block-post-content .is-style-jnm-surtitre a,
.wp-block-post-content .wp-block-media-text a,
.wp-block-post-content .wp-block-post-title a,
.wp-block-post-content .jnm-footer a {
	border-bottom: 0;
}

/* Listes */
.wp-block-post-content ul.wp-block-list,
.wp-block-post-content ol.wp-block-list {
	padding-left: 22px;
}

.wp-block-post-content .wp-block-list li + li {
	margin-top: 12px;
}

.wp-block-post-content .wp-block-list li::marker {
	color: var(--jnm-dore);
}

/* Numérotation italique dans un titre (mentions légales : « 1. ») */
.jnm-num {
	font-style: italic;
	color: var(--jnm-dore);
}

/* 5. Projets
   -------------------------------------------------------------------------- */

/* Carte projet : toute la carte est cliquable via le lien du titre */
.jnm-carte {
	position: relative;
}

.jnm-carte .wp-block-post-featured-image {
	margin: 0;
}

.jnm-carte .wp-block-post-featured-image img {
	width: 100%;
	height: 320px;
	object-fit: cover;
	display: block;
}

.jnm-carte .wp-block-post-excerpt {
	margin: 16px 0 6px;
}

.jnm-carte .wp-block-post-excerpt__excerpt {
	margin: 0;
}

.jnm-carte .wp-block-post-excerpt__more-text {
	display: none;
}

.jnm-carte .wp-block-post-title {
	font-size: 28px;
	line-height: 1.2;
	margin: 0;
}

.jnm-carte .wp-block-post-title a {
	color: var(--jnm-ivoire);
	transition: color 0.3s ease;
}

.jnm-carte .wp-block-post-title a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.jnm-carte:hover .wp-block-post-title a {
	color: var(--jnm-dore);
}

.jnm-carte__texte {
	margin-top: 0 !important;
}

/* Grille de la page Projets */
.jnm-grille-projets .wp-block-post-template.is-layout-grid {
	gap: 64px 44px;
}

/* Le premier projet est mis à la une, pleine largeur */
.jnm-grille-projets--vedette .wp-block-post-template > li:first-child {
	grid-column: 1 / -1;
}

.jnm-grille-projets--vedette .wp-block-post-template > li:first-child .wp-block-post-featured-image {
	position: relative;
}

.jnm-grille-projets--vedette .wp-block-post-template > li:first-child .wp-block-post-featured-image img {
	height: 540px;
}

.jnm-grille-projets--vedette .wp-block-post-template > li:first-child .wp-block-post-featured-image::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 55%, rgba(13, 19, 32, 0.85) 100%);
	pointer-events: none;
}

.jnm-grille-projets--vedette .wp-block-post-template > li:first-child .jnm-carte__texte {
	position: absolute;
	left: 48px;
	bottom: 40px;
	right: 48px;
	z-index: 1;
}

.jnm-grille-projets--vedette .wp-block-post-template > li:first-child .wp-block-post-excerpt {
	font-size: 19px;
	margin: 0 0 10px;
}

.jnm-grille-projets--vedette .wp-block-post-template > li:first-child .wp-block-post-title {
	font-size: var(--wp--preset--font-size--xx-large);
}

/* Petites cartes (Agence, autres projets) */
.jnm-grille-compacte .jnm-carte .wp-block-post-featured-image img {
	height: 280px;
}

.jnm-autres-projets .jnm-carte .wp-block-post-featured-image img {
	height: auto;
	aspect-ratio: 16 / 10;
}

.jnm-autres-projets .jnm-carte .wp-block-post-excerpt {
	font-size: 18px;
	margin-top: 18px;
}

.jnm-autres-projets .jnm-carte .wp-block-post-title {
	font-size: 30px;
}

/* Images de la galerie projet : ratio d'origine, pas de recadrage */
.jnm-galerie .wp-block-image {
	margin: 0;
}

.jnm-galerie .wp-block-image img {
	width: 100%;
	height: auto;
	display: block;
}

.jnm-galerie .wp-block-columns {
	align-items: flex-start;
}

/* Visionneuse (agrandissement au clic) : fond nuit */
.wp-lightbox-overlay .scrim {
	background-color: var(--jnm-nuit) !important;
	opacity: 0.96 !important;
}

.wp-lightbox-overlay .close-button {
	color: var(--jnm-ivoire);
}

/* 6. Conseils & articles
   -------------------------------------------------------------------------- */

/* Liste numérotée des conseils */
.jnm-liste-conseils .wp-block-post-template {
	counter-reset: jnm-conseil;
	margin: 0;
	padding: 0;
	list-style: none;
}

.jnm-liste-conseils .wp-block-post-template > li {
	counter-increment: jnm-conseil;
	position: relative;
	display: grid;
	grid-template-columns: 72px 1fr;
	gap: 32px;
	align-items: baseline;
	padding: 40px 0;
	margin: 0;
	border-top: 1px solid var(--jnm-filet);
}

.jnm-liste-conseils .wp-block-post-template > li:last-child {
	border-bottom: 1px solid var(--jnm-filet);
}

.jnm-liste-conseils .wp-block-post-template > li::before {
	content: counter(jnm-conseil, decimal-leading-zero);
	font-family: var(--jnm-serif);
	font-style: italic;
	font-size: 24px;
	color: var(--jnm-dore);
}

.jnm-conseil {
	display: grid;
	grid-template-columns: 1fr auto;
	column-gap: 32px;
	align-items: baseline;
}

.jnm-conseil > * {
	margin: 0 !important;
}

.jnm-conseil .wp-block-post-title {
	grid-column: 1;
	font-size: 30px;
	font-weight: 500;
	line-height: 1.2;
	margin-bottom: 10px !important;
}

.jnm-conseil .wp-block-post-title a {
	color: var(--jnm-ivoire);
}

.jnm-conseil .wp-block-post-title a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.jnm-conseil:hover .wp-block-post-title a {
	color: var(--jnm-dore);
}

.jnm-conseil .wp-block-post-excerpt {
	grid-column: 1;
	font-family: var(--jnm-sans);
	font-style: normal;
	font-size: 14.5px;
	line-height: 1.85;
	color: var(--jnm-secondaire);
	max-width: 62ch;
}

.jnm-conseil .wp-block-post-excerpt__excerpt {
	margin: 0;
}

.jnm-conseil .wp-block-post-excerpt__more-text {
	display: none;
}

.jnm-conseil .wp-block-read-more {
	grid-column: 2;
	grid-row: 1;
	font-size: 11px;
	letter-spacing: 0.26em;
	text-transform: uppercase;
	color: var(--jnm-dore);
	border-bottom: 1px solid var(--jnm-dore);
	padding-bottom: 3px;
	white-space: nowrap;
	justify-self: end;
}

/* Article */
.jnm-article .wp-block-post-content {
	font-size: 15.5px;
	line-height: 1.95;
	color: var(--jnm-corps);
}

.jnm-article .wp-block-post-content > h2 {
	font-size: 32px;
	font-weight: 500;
	margin: 40px 0 18px;
}

.jnm-article .wp-block-post-content > h3 {
	font-size: 24px;
	font-weight: 500;
	margin: 32px 0 14px;
}

.jnm-article .wp-block-post-content > p {
	margin-top: 0;
	margin-bottom: 14px;
}

.jnm-article .wp-block-post-content > .is-style-jnm-chapo:first-child {
	margin-bottom: 40px;
}

.jnm-article .wp-block-post-content > .is-style-jnm-encadre {
	margin-top: 56px;
}

.jnm-article-nav {
	font-size: 11px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	gap: 24px;
}

.jnm-article-nav a {
	color: var(--jnm-ivoire);
}

.jnm-article-nav a:hover {
	color: var(--jnm-dore);
}

.jnm-article-nav .post-navigation-link-next {
	text-align: right;
	margin-left: auto;
}

mark.jnm-a-verifier {
	background: rgba(201, 168, 118, 0.25);
	color: var(--jnm-ivoire);
	outline: 1px dashed var(--jnm-dore);
	padding: 0 2px;
}

/* 7. Formulaires (Contact Form 7, WPForms, formulaire HTML)
   -------------------------------------------------------------------------- */

.jnm-formulaire label,
.jnm-formulaire .wpforms-field-label,
.jnm-formulaire .jnm-champ-label {
	display: block;
	font-size: 10px !important;
	font-weight: 400 !important;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: var(--jnm-dore) !important;
	margin-bottom: 10px;
}

.jnm-formulaire input[type="text"],
.jnm-formulaire input[type="email"],
.jnm-formulaire input[type="tel"],
.jnm-formulaire input[type="url"],
.jnm-formulaire input[type="number"],
.jnm-formulaire select,
.jnm-formulaire textarea {
	width: 100% !important;
	max-width: 100% !important;
	background: transparent !important;
	border: 0 !important;
	border-bottom: 1px solid rgba(233, 230, 223, 0.35) !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	color: var(--jnm-ivoire) !important;
	font-family: var(--jnm-sans);
	font-size: 15px !important;
	font-weight: 300;
	padding: 10px 0 !important;
	height: auto !important;
	outline: none;
	transition: border-color 0.3s ease;
}

.jnm-formulaire input:focus,
.jnm-formulaire select:focus,
.jnm-formulaire textarea:focus {
	border-bottom-color: var(--jnm-dore) !important;
}

.jnm-formulaire ::placeholder {
	color: rgba(233, 230, 223, 0.4);
}

.jnm-formulaire select option {
	color: var(--jnm-nuit);
	background: var(--jnm-ivoire);
}

.jnm-formulaire textarea {
	min-height: 140px;
	resize: vertical;
}

.jnm-formulaire input[type="checkbox"] {
	accent-color: var(--jnm-dore);
	width: 16px;
	height: 16px;
	margin: 0 10px 0 0;
	vertical-align: middle;
}

/* Case de consentement : texte normal, pas une étiquette dorée */
.jnm-formulaire .wpcf7-acceptance label,
.jnm-formulaire .wpforms-field-gdpr-checkbox label,
.jnm-formulaire .jnm-consentement label {
	display: inline;
	font-size: 12.5px !important;
	letter-spacing: 0;
	text-transform: none;
	color: var(--jnm-secondaire) !important;
	line-height: 1.7;
}

.jnm-formulaire .wpcf7-list-item {
	margin: 0;
}

.jnm-formulaire input[type="submit"],
.jnm-formulaire button[type="submit"],
.jnm-formulaire .wpforms-submit {
	background: transparent !important;
	border: 1px solid var(--jnm-dore) !important;
	border-radius: 0 !important;
	color: var(--jnm-dore) !important;
	font-family: var(--jnm-sans) !important;
	font-size: 11px !important;
	font-weight: 400 !important;
	letter-spacing: 0.26em;
	text-transform: uppercase;
	padding: 18px 48px !important;
	height: auto !important;
	cursor: pointer;
	transition: background-color 0.4s ease, color 0.4s ease;
}

.jnm-formulaire input[type="submit"]:hover,
.jnm-formulaire button[type="submit"]:hover,
.jnm-formulaire .wpforms-submit:hover {
	background: var(--jnm-dore) !important;
	color: var(--jnm-nuit) !important;
}

/* Contact Form 7 : grille deux colonnes via les classes fournies dans le modèle */
.jnm-formulaire .jnm-grille-form {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 28px;
}

.jnm-formulaire .jnm-grille-form .jnm-plein {
	grid-column: 1 / -1;
}

.jnm-formulaire .jnm-grille-form p {
	margin: 0;
}

.jnm-formulaire .wpcf7-not-valid-tip,
.jnm-formulaire .wpforms-error {
	color: #E3A28C !important;
	font-size: 12px;
	margin-top: 6px;
}

.jnm-formulaire .wpcf7-response-output {
	border: 1px solid var(--jnm-filet) !important;
	margin: 24px 0 0 !important;
	padding: 14px 18px !important;
	font-size: 13.5px;
	color: var(--jnm-ivoire);
}

/* 8. Animations
   -------------------------------------------------------------------------- */

/* Bandeau : zoom lent de l'image, apparition du contenu */
.jnm-js .is-style-jnm-bandeau .wp-block-cover__image-background {
	animation: jnm-zoom-lent 2.6s var(--jnm-ease) both;
}

.jnm-js .is-style-jnm-bandeau .wp-block-cover__inner-container > * {
	animation: jnm-monte 1.1s var(--jnm-ease) both;
}

.jnm-js .is-style-jnm-bandeau .wp-block-cover__inner-container > *:nth-child(1) { animation-delay: 0.15s; }
.jnm-js .is-style-jnm-bandeau .wp-block-cover__inner-container > *:nth-child(2) { animation-delay: 0.33s; }
.jnm-js .is-style-jnm-bandeau .wp-block-cover__inner-container > *:nth-child(3) { animation-delay: 0.51s; }

.jnm-js .is-style-jnm-bandeau .wp-block-cover__inner-container .wp-block-image {
	animation: jnm-logo 1.8s var(--jnm-ease) 0.5s both;
}

@keyframes jnm-zoom-lent {
	from { transform: scale(1.06); }
	to { transform: scale(1); }
}

@keyframes jnm-monte {
	from { opacity: 0; transform: translateY(26px); }
	to { opacity: 1; transform: none; }
}

@keyframes jnm-logo {
	from { opacity: 0; transform: scale(0.95); }
	to { opacity: 1; transform: none; }
}

/* Révélation au défilement (classes posées par jnm.js) */
.jnm-js .jnm-reveal {
	opacity: 0;
	transform: translateY(var(--jnm-reveal-y, 32px));
	transition: opacity 1s var(--jnm-ease), transform 1s var(--jnm-ease);
	transition-delay: var(--jnm-delay, 0s);
}

.jnm-js .jnm-reveal.is-visible {
	opacity: 1;
	transform: none;
}

/* Traits dorés qui se déploient */
.jnm-js hr.is-style-jnm-trait.jnm-trait-anim {
	transform: scaleY(0);
	transform-origin: top;
	transition: transform 1.3s var(--jnm-ease) 0.25s;
}

.jnm-js hr.is-style-jnm-trait.jnm-trait-anim.is-visible {
	transform: scaleY(1);
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-delay: 0s !important;
		transition-duration: 0.01ms !important;
	}
}

/* 9. Utilitaires
   -------------------------------------------------------------------------- */

.jnm-max-30 { max-width: 30ch; margin-left: auto !important; margin-right: auto !important; }
.jnm-max-76 { max-width: 76ch; }

/* H2 « citation signée » de l'accueil : « … » — J.M */
.jnm-citation-signee em {
	color: var(--jnm-dore);
	font-style: italic;
	font-size: 0.77em;
}

/* Étapes numérotées (écart vertical réduit ; l'écart horizontal vient du bloc) */
.wp-block-group.jnm-etapes {
	row-gap: 56px;
}

.jnm-etape__num {
	flex: 0 0 44px;
	line-height: 1.2 !important;
}

.jnm-etape h2,
.jnm-etape h3 {
	font-weight: 500;
}

/* En-tête de projet : le texte s'aligne sur la marge de page */
.jnm-projet-bandeau .wp-block-cover__inner-container {
	width: 100%;
	max-width: 1776px;
	margin-left: auto;
	margin-right: auto;
}

.jnm-max-62 { max-width: 62ch; margin-left: auto !important; margin-right: auto !important; }
.jnm-max-34 { max-width: 34ch; margin-left: auto !important; margin-right: auto !important; }
.jnm-nowrap-desktop { white-space: nowrap; }

/* 10. Responsive
   -------------------------------------------------------------------------- */

@media (min-width: 782px) {
	.jnm-mobile-only {
		display: none !important;
	}
}

@media (max-width: 1100px) {
	.jnm-grille-projets .wp-block-post-template.is-layout-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.jnm-nav .wp-block-navigation__container {
		gap: 28px;
	}
}

@media (max-width: 781px) {
	.jnm-desktop-only {
		display: none !important;
	}

	.jnm-nowrap-desktop {
		white-space: normal;
	}

	.jnm-header {
		padding: 18px 24px;
	}

	.home .jnm-header {
		justify-content: flex-end;
	}

	.home .jnm-header .jnm-nav {
		margin-right: 0;
	}

	.jnm-etapes {
		grid-template-columns: 1fr !important;
		row-gap: 40px !important;
	}

	.jnm-header .wp-block-site-logo img {
		height: 36px;
	}

	.jnm-footer {
		flex-direction: column;
		align-items: flex-start !important;
		padding: 36px 24px 44px;
	}

	.jnm-footer__liens {
		gap: 24px;
	}

	/* Bandeaux */
	.wp-block-cover.is-style-jnm-bandeau {
		min-height: 520px !important;
	}

	.wp-block-cover.jnm-citation-plein {
		min-height: 420px !important;
	}

	/* Colonnes séparées : filets horizontaux */
	.wp-block-columns.is-style-jnm-separateurs {
		gap: 48px;
	}
	.wp-block-columns.is-style-jnm-separateurs > .wp-block-column {
		padding: 0;
	}
	.wp-block-columns.is-style-jnm-separateurs > .wp-block-column + .wp-block-column {
		border-left: 0;
		border-top: 1px solid var(--jnm-filet);
		padding-top: 48px;
	}

	/* Image + texte projet */
	.wp-block-media-text.is-style-jnm-projet,
	.wp-block-media-text.is-style-jnm-projet.has-media-on-the-right {
		grid-template-columns: 100% !important;
	}
	.wp-block-media-text.is-style-jnm-projet .wp-block-media-text__media img {
		height: 260px;
	}
	.wp-block-media-text.is-style-jnm-projet .wp-block-media-text__content,
	.wp-block-media-text.is-style-jnm-projet.has-media-on-the-right .wp-block-media-text__content {
		padding: 24px 0 0;
	}

	/* Cartes */
	.jnm-carte .wp-block-post-featured-image img,
	.jnm-grille-compacte .jnm-carte .wp-block-post-featured-image img {
		height: 240px;
	}
	.jnm-grille-projets .wp-block-post-template.is-layout-grid {
		grid-template-columns: 1fr;
		gap: 44px;
	}
	.jnm-grille-projets--vedette .wp-block-post-template > li:first-child .wp-block-post-featured-image img {
		height: 400px;
	}
	.jnm-grille-projets--vedette .wp-block-post-template > li:first-child .jnm-carte__texte {
		left: 24px;
		right: 24px;
		bottom: 28px;
	}

	/* Fiche projet sur deux colonnes */
	.is-style-jnm-fiche.jnm-fiche-grille {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 22px 16px;
	}
	.is-style-jnm-fiche.jnm-fiche-grille > * + * {
		margin-top: 0;
	}

	/* Encadré */
	.is-style-jnm-encadre {
		padding: 28px 22px;
	}

	/* Conseils */
	.jnm-liste-conseils .wp-block-post-template > li {
		grid-template-columns: 1fr;
		gap: 8px;
		padding: 32px 0;
	}
	.jnm-conseil {
		grid-template-columns: 1fr;
	}
	.jnm-conseil .wp-block-read-more {
		grid-column: 1;
		grid-row: auto;
		justify-self: start;
		margin-top: 16px !important;
	}
	.jnm-conseil .wp-block-post-title {
		font-size: 25px;
	}

	/* Formulaire */
	.jnm-formulaire .jnm-grille-form {
		grid-template-columns: 1fr;
	}

	.jnm-article-nav {
		flex-direction: column;
		align-items: flex-start !important;
	}
	.jnm-article-nav .post-navigation-link-next {
		text-align: left;
		margin-left: 0;
	}
}

/* Focus : contour doré au clavier uniquement */
a:focus:not(:focus-visible),
button:focus:not(:focus-visible) {
	outline: none;
}

a:focus-visible,
button:focus-visible {
	outline: 1px solid var(--jnm-dore);
	outline-offset: 4px;
}
