/*
Theme Name: Nicolas Titeux
Theme URI: https://nicolas-titeux.com
Author: Nicolas Titeux
Description: Thème par blocs sur mesure, charte anthracite & vert. Pensé pour une production de contenus par API (blocs Gutenberg + compositions).
Requires at least: 6.6
Tested up to: 6.9
Requires PHP: 8.0
Version: 1.1.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: nicolas-titeux
*/

:root {
	--nt-ink: var(--wp--preset--color--anthracite);
	--nt-graphite: var(--wp--preset--color--graphite);
	--nt-paper: var(--wp--preset--color--papier);
	--nt-white: var(--wp--preset--color--blanc);
	--nt-green: var(--wp--preset--color--vert);
	--nt-green-dark: var(--wp--preset--color--vert-fonce);
	--nt-green-pale: var(--wp--preset--color--vert-pale);
	--nt-green-night: var(--wp--preset--color--vert-nuit);
	--nt-grey: var(--wp--preset--color--gris);
	--nt-line: var(--wp--preset--color--ligne);
	--nt-mono: var(--wp--preset--font-family--mono);
	--nt-display: var(--wp--preset--font-family--display);
	--nt-muted-on-dark: rgba(246, 245, 241, 0.72);
	--nt-faint-on-dark: rgba(246, 245, 241, 0.62);
	--nt-hatch: repeating-linear-gradient(45deg, #fff 0 8px, #efede7 8px 16px);
	--nt-section-y: clamp(3rem, 6vw, 5rem);
}

body { text-wrap: pretty; }
.wp-site-blocks > * { margin-block: 0; }
.nt-main > * { margin-block-start: 0; }
:focus-visible { outline: 2px solid var(--nt-green); outline-offset: 2px; }

/* ---------- Utilitaires ---------- */

.nt-dark { background: var(--nt-ink); color: var(--nt-paper); }
.nt-dark a:where(:not(.wp-element-button)) { color: var(--nt-green); }
.nt-dark a:where(:not(.wp-element-button)):hover { color: var(--nt-paper); }
.nt-white { background: var(--nt-white); }
.nt-section { padding-block: var(--nt-section-y) 1.5rem; }
.nt-hero { padding-block: clamp(3.5rem, 8vw, 5.5rem) clamp(3rem, 6vw, 4.5rem); }
.nt-hero__title { margin-block: 1.375rem 0; }
.nt-lead { font-size: 1.0625rem; max-width: 52ch; }
.nt-dark .nt-lead { color: var(--nt-muted-on-dark); }
.nt-small { font-size: 0.875rem; color: var(--nt-graphite); }
.nt-dark .nt-small, .is-style-carte-sombre .nt-small { color: rgba(246, 245, 241, 0.8); }
.nt-mono { font-family: var(--nt-mono); font-size: 0.8125rem; }
.nt-muted { color: var(--nt-grey); }
.nt-path { font-family: var(--nt-mono); font-size: 0.72rem; color: var(--nt-green-dark); margin: 0; }
.is-style-carte-sombre .nt-path { color: var(--nt-green); }

.is-style-kicker {
	font-family: var(--nt-mono);
	font-size: 0.75rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--nt-green);
}
.is-style-carte .is-style-kicker,
.is-style-encadre .is-style-kicker { color: var(--nt-green-dark); letter-spacing: 0.12em; font-size: 0.6875rem; }

/* ---------- Boutons ---------- */

.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent;
	color: inherit;
	border: 1px solid var(--nt-line);
	padding: 0.8rem 1.25rem;
}
.nt-dark .wp-block-button.is-style-outline > .wp-block-button__link { border-color: var(--nt-graphite); }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { border-color: var(--nt-green); color: var(--nt-green); }
.wp-block-button.is-style-sombre > .wp-block-button__link { background: var(--nt-ink); color: var(--nt-paper); }
.wp-block-button.is-style-sombre > .wp-block-button__link:hover { background: var(--nt-graphite); }

/* ---------- En-tête ---------- */

.nt-header { background: var(--nt-ink); color: var(--nt-paper); border-bottom: 1px solid var(--nt-graphite); }
.nt-header__bar { padding-block: 1.375rem; gap: 2rem; }
.nt-logo { font-family: var(--nt-display); font-weight: 600; font-size: 1.0625rem; margin: 0; letter-spacing: 0; }
.nt-logo a { color: inherit; }
.nt-logo a::after { content: "."; color: var(--nt-green); }
.nt-header__nav { gap: 1.75rem; }
.nt-nav { font-family: var(--nt-mono); font-size: 0.78rem; gap: 1.75rem; }
.nt-nav .wp-block-navigation-item__content { color: var(--nt-muted-on-dark); }
.nt-nav .wp-block-navigation-item__content:hover,
.nt-nav .current-menu-item > .wp-block-navigation-item__content { color: var(--nt-green); }
.nt-nav .wp-block-navigation__responsive-container-open,
.nt-nav .wp-block-navigation__responsive-container-close { color: var(--nt-paper); }
.nt-nav .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--nt-ink);
	color: var(--nt-paper);
	padding: 2rem clamp(1rem, 4.5vw, 3.5rem);
}
.nt-nav .is-menu-open .wp-block-navigation__container { gap: 1.25rem; font-size: 1rem; }
.nt-btn-audit > .wp-block-button__link {
	background: transparent;
	border: 1px solid var(--nt-green);
	color: var(--nt-green);
	padding: 0.5rem 0.875rem;
	font-size: 0.78rem;
}
.nt-btn-audit > .wp-block-button__link:hover { background: var(--nt-green); color: var(--nt-green-night); }
@media (max-width: 781px) {
	.nt-btn-audit { display: none; }
}

/* ---------- Titres de section ---------- */

.nt-section-head {
	align-items: baseline !important;
	gap: 1rem;
	border-bottom: 1.5px solid var(--nt-ink);
	padding-bottom: 0.625rem;
	margin-bottom: 1.75rem;
}
.nt-section-head > * { margin: 0; }
.nt-section-head__num { font-family: var(--nt-mono); font-size: 0.75rem; color: var(--nt-green); }
.nt-section-head__title {
	font-family: var(--nt-display);
	font-weight: 500;
	font-size: 1.0625rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	line-height: 1.3;
}
.nt-section-head__aside { margin-left: auto !important; font-family: var(--nt-mono); font-size: 0.75rem; color: var(--nt-grey); }

/* ---------- Cartes ---------- */

.is-style-carte,
.is-style-carte-sombre { padding: 1.625rem 1.5rem; }
.is-style-carte { background: var(--nt-white); border: 1px solid var(--nt-line); }
.is-style-carte-sombre { background: var(--nt-ink); color: var(--nt-paper); }
:is(.is-style-carte, .is-style-carte-sombre) > * { margin-block: 0; }
:is(.is-style-carte, .is-style-carte-sombre) > * + * { margin-block-start: 0.75rem; }
:is(.is-style-carte, .is-style-carte-sombre) h3 { font-size: 1.3125rem; }
:is(.is-style-carte, .is-style-carte-sombre) h3 a { color: inherit; }
:is(.is-style-carte, .is-style-carte-sombre) h3 a:hover { color: var(--nt-green); }
.nt-accent { border-left: 3px solid var(--nt-green) !important; }

.nt-badges { gap: 0.5rem; padding-top: 0.875rem; border-top: 1px solid var(--nt-line); margin-top: 1.125rem !important; }
.is-style-carte-sombre .nt-badges { border-top-color: var(--nt-graphite); }
.nt-badges > p {
	margin: 0;
	background: var(--nt-green-pale);
	color: var(--nt-green-dark);
	font-family: var(--nt-mono);
	font-size: 0.75rem;
	font-weight: 500;
	padding: 0.3rem 0.625rem;
}
.is-style-carte-sombre .nt-badges > p { background: var(--nt-green); color: var(--nt-green-night); }

/* ---------- Chiffres ---------- */

.nt-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--nt-graphite); border-left: 1px solid var(--nt-graphite); }
.nt-stats > * { margin: 0 !important; padding: 1.25rem 1.375rem; border-right: 1px solid var(--nt-graphite); border-bottom: 1px solid var(--nt-graphite); }
.nt-chiffres { display: grid; grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); gap: 1.25rem; padding: 1.625rem 1.75rem; margin-block: 1.75rem !important; }
.nt-chiffres > * { margin: 0 !important; }
.nt-stat > * { margin: 0; }
.nt-stat__value { font-family: var(--nt-display); font-weight: 600; font-size: 2.125rem; line-height: 1.15; color: var(--nt-green); }
.nt-stat__label { font-family: var(--nt-mono); font-size: 0.6875rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--nt-grey); }
.nt-dark .nt-stat__label { color: var(--nt-faint-on-dark); }
.nt-stat__value--neutre { color: inherit; }

/* ---------- Bandeau logos ---------- */

.nt-logos { border-bottom: 1px solid var(--nt-line); padding-block: 1.75rem; }
.nt-logos__row { gap: 1rem 3rem; align-items: center !important; }
.nt-logos__row > * { margin: 0; }
.nt-logos__label { font-family: var(--nt-mono); font-size: 0.6875rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--nt-grey); }
.nt-logos__names { font-family: var(--nt-display); font-weight: 600; font-size: 1.0625rem; color: var(--nt-grey); letter-spacing: 0.02em; }
.nt-logos img { filter: grayscale(1); max-height: 45px; width: auto; }

/* ---------- Encadré, code, FAQ ---------- */

.is-style-encadre { background: var(--nt-green-pale); border-left: 3px solid var(--nt-green); padding: 1.125rem 1.375rem; margin-block: 1.5rem !important; }
.is-style-encadre > * { margin-block: 0; }
.is-style-encadre > * + * { margin-block-start: 0.375rem; }

.wp-block-details { border-bottom: 1px solid var(--nt-line); padding-block: 1.125rem; margin: 0 !important; }
.wp-block-details summary {
	font-family: var(--nt-display);
	font-weight: 600;
	font-size: 1.0625rem;
	list-style: none;
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	cursor: pointer;
}
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: "+"; color: var(--nt-green-dark); font-family: var(--nt-mono); }
.wp-block-details[open] summary::after { content: "−"; }
.wp-block-details > :not(summary) { font-size: 0.9375rem; color: var(--nt-graphite); margin-block-start: 0.5rem; }
.nt-faq { border-top: 1.5px solid var(--nt-ink); }

.is-style-coches { list-style: none; padding-left: 0; }
.is-style-coches li { position: relative; padding-left: 1.75rem; margin-block: 0.5rem; }
.is-style-coches li::before { content: "✓"; position: absolute; left: 0; color: var(--nt-green); font-family: var(--nt-mono); }

/* ---------- Bandeaux d'appel à l'action ---------- */

.nt-cta {
	background: var(--nt-ink);
	color: var(--nt-paper);
	padding: clamp(1.75rem, 4vw, 2.75rem) clamp(1.5rem, 4vw, 3rem);
	gap: 1.5rem 2.5rem;
	margin-block-start: var(--nt-section-y) !important;
}
.nt-cta > * { margin: 0; }
.nt-cta__text { flex: 1 1 28rem; }
.nt-cta__text > * { margin: 0; }
.nt-cta__text > * + * { margin-top: 0.5rem; }
.nt-cta__title { font-size: clamp(1.5rem, 3vw, 2.25rem); line-height: 1.1; flex: 1 1 28rem; }
.nt-cta--vert { background: var(--nt-green); color: var(--nt-green-night); }

/* ---------- Cartes d'articles (boucles) ---------- */

.nt-card { position: relative; background: var(--nt-white); border: 1px solid var(--nt-line); height: 100%; }
.nt-card > * { margin: 0; }
.nt-card:not(.nt-card--texte):not(:has(.nt-card__visual))::before {
	content: "";
	display: block;
	aspect-ratio: 16 / 9;
	background: var(--nt-hatch);
	border-bottom: 1px solid var(--nt-line);
}
.nt-card__visual { border-bottom: 1px solid var(--nt-line); }
.nt-card__body { padding: 1.25rem 1.375rem; }
.nt-card__body > * { margin: 0; }
.nt-card__meta { gap: 0.4rem; font-family: var(--nt-mono); font-size: 0.6875rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--nt-green-dark); }
.nt-card__meta > * { margin: 0; }
.nt-card__meta p::before { content: "· "; }
.nt-card__meta a { position: relative; z-index: 1; color: inherit; }
.nt-card__title { font-size: 1.1875rem; line-height: 1.25; margin-top: 0.5rem !important; }
.nt-card__title a::after { content: ""; position: absolute; inset: 0; }
.nt-card:hover { border-color: var(--nt-green); }

.nt-featured__item { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); margin-block-start: 3.5rem; }
.nt-featured__item > * { margin: 0 !important; }
.nt-featured__item .wp-block-post-featured-image { min-height: 22rem; }
.nt-featured__item .wp-block-post-featured-image img { height: 100%; object-fit: cover; }
.nt-featured__body { padding: 2.25rem; display: flex; flex-direction: column; gap: 0.875rem; }
.nt-featured__body > * { margin: 0; }
.nt-featured__body .wp-block-post-title a { color: inherit; }
.nt-featured__body .wp-block-post-excerpt__more-link { font-family: var(--nt-mono); font-size: 0.78rem; }
.nt-featured__body .wp-block-post-excerpt { color: var(--nt-muted-on-dark); font-size: 0.9rem; }
@media (max-width: 781px) {
	.nt-featured__item { grid-template-columns: 1fr; }
	.nt-featured__item .wp-block-post-featured-image { min-height: 0; }
}

.nt-chips-bar { border-bottom: 1px solid var(--nt-line); padding-block: 1.125rem; }
.nt-chips-bar__row { gap: 0.5rem; }
.nt-chips-bar__row > * { margin: 0; }
.wp-block-categories.nt-chips { display: flex; flex-wrap: wrap; gap: 0.5rem; list-style: none; padding: 0; margin: 0; }
.nt-chip-all a,
.nt-chips a {
	display: inline-block;
	font-family: var(--nt-mono);
	font-size: 0.78rem;
	color: var(--nt-ink);
	border: 1px solid var(--nt-line);
	padding: 0.375rem 0.75rem;
}
.nt-chips .current-cat a,
.blog .nt-chip-all a { background: var(--nt-ink); border-color: var(--nt-ink); color: var(--nt-paper); }
.nt-chip-all a:hover, .nt-chips a:hover { border-color: var(--nt-green); color: var(--nt-green-dark); }

.nt-pagination { margin-top: 1.5rem; gap: 0.375rem; font-family: var(--nt-mono); font-size: 0.78rem; }
.nt-pagination .page-numbers { border: 1px solid var(--nt-line); padding: 0.5rem 0.8rem; color: var(--nt-ink); }
.nt-pagination .page-numbers.current { background: var(--nt-ink); border-color: var(--nt-ink); color: var(--nt-paper); }

.nt-search .wp-block-search__inside-wrapper { border: 1px solid var(--nt-graphite); padding: 0; }
.nt-search .wp-block-search__input { background: transparent; border: 0; color: inherit; padding: 0.875rem 1rem; font-size: 0.875rem; }
.nt-search .wp-block-search__input::placeholder { color: rgba(246, 245, 241, 0.5); }
.nt-search .wp-block-search__button { margin: 0; border: 0; }

/* ---------- Article ---------- */

.nt-progress { position: sticky; top: 0; z-index: 20; height: 3px; background: var(--nt-line); }
.admin-bar .nt-progress { top: 32px; }
.nt-progress__bar { height: 3px; background: var(--nt-green); transform: scaleX(0); transform-origin: left; }

.nt-article-head { padding-top: 3.5rem; }
.nt-article-head > * { margin-block: 0; }
.nt-article-head .wp-block-post-title { margin-top: 1.375rem; font-size: clamp(2.25rem, 5vw, 3.25rem); }
.nt-breadcrumb { font-family: var(--nt-mono); font-size: 0.75rem; color: var(--nt-grey); }
.nt-breadcrumb a { color: var(--nt-grey); }
.nt-breadcrumb .breadcrumb_last { color: var(--nt-ink); }
.nt-chapeau { margin-top: 1.125rem !important; font-size: 1.125rem; color: var(--nt-graphite); max-width: 60ch; }
.nt-chapeau p { margin: 0; }
.nt-meta { margin-top: 1.5rem !important; gap: 0.5rem 0.875rem; font-family: var(--nt-mono); font-size: 0.75rem; color: var(--nt-grey); align-items: center; }
.nt-meta > * { margin: 0; }
.nt-meta .wp-block-post-author-name { color: var(--nt-ink); }
.nt-badge a { background: var(--nt-green-pale); color: var(--nt-green-dark); padding: 0.2rem 0.5rem; }

.nt-article-visual { margin-top: 2.5rem !important; border: 1px solid var(--nt-line); }
.nt-article-visual img { width: 100%; max-height: 28rem; object-fit: cover; }

.nt-article-grid { display: grid; grid-template-columns: 220px minmax(0, 680px); gap: 4.5rem; padding-block: 3.5rem 1.5rem; }
.nt-article-grid > * { margin: 0 !important; }
.nt-toc { position: sticky; top: 1.5rem; align-self: start; border-top: 1.5px solid var(--nt-ink); padding-top: 0.75rem; font-size: 0.84rem; }
.nt-toc__title { font-family: var(--nt-mono); font-size: 0.6875rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--nt-grey); margin: 0 0 0.625rem; }
.nt-toc__list { list-style: none; margin: 0; padding: 0; counter-reset: toc; }
.nt-toc__list li { counter-increment: toc; border-left: 2px solid var(--nt-line); padding: 0.375rem 0 0.375rem 0.625rem; }
.nt-toc__list li.is-active { border-left-color: var(--nt-green); font-weight: 600; }
.nt-toc__list a { color: var(--nt-graphite); }
.nt-toc__list li.is-active a { color: var(--nt-ink); }
@media (max-width: 959px) {
	.nt-article-grid { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
	.nt-toc { position: static; }
}

.nt-prose { font-size: 1.03rem; line-height: 1.75; }
.nt-prose > * + * { margin-block-start: 0.875rem; }
.nt-prose h2 { margin-block-start: 2.5rem; scroll-margin-top: 1.5rem; }
.nt-prose h2:first-child { margin-block-start: 0; }
.nt-prose h3 { margin-block-start: 2rem; }
.nt-prose ul, .nt-prose ol { padding-left: 1.25rem; }
.nt-prose img { height: auto; }
.nt-prose .wp-block-table table { border-collapse: collapse; width: 100%; font-size: 0.9rem; }
.nt-prose .wp-block-table th, .nt-prose .wp-block-table td { border: 1px solid var(--nt-line); padding: 0.5rem 0.75rem; }
.nt-prose .wp-block-table thead { background: var(--nt-white); border-bottom: 1.5px solid var(--nt-ink); }

.nt-article-foot { margin-top: 2.25rem !important; padding-top: 1.125rem; border-top: 1px solid var(--nt-line); gap: 0.75rem; font-family: var(--nt-mono); font-size: 0.75rem; }
.nt-article-foot > * { margin: 0; }
.nt-tags { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.nt-tags a { border: 1px solid var(--nt-line); padding: 0.3rem 0.625rem; color: var(--nt-ink); }
.nt-tags a::before { content: "#"; }
.nt-tags .wp-block-post-terms__separator { display: none; }

/* ---------- Pages ---------- */

.nt-page-head { padding-block: 3.5rem 2.5rem; border-bottom: 1.5px solid var(--nt-ink); margin-bottom: 3rem !important; }
.nt-page-head > * { margin-block: 0; }
.nt-page-head .wp-block-post-title { margin-top: 0.875rem; font-size: clamp(2rem, 4.5vw, 2.75rem); }
.nt-page-content { padding-bottom: 1.5rem; }

.nt-form-card { background: var(--nt-paper); color: var(--nt-ink); padding: 2rem; }
.nt-form-card > * { margin-block: 0; }
.nt-form-card > * + * { margin-block-start: 1rem; }

.nt-steps-num { font-family: var(--nt-display); font-weight: 600; font-size: 2.5rem; line-height: 1; color: var(--nt-green); }
.nt-quote { font-family: var(--nt-display); font-weight: 500; font-size: 1.3125rem; line-height: 1.4; }

/* ---------- Pied de page ---------- */

.nt-footer { margin-top: 3rem; }
.nt-footer__cols { border-top: 1.5px solid var(--nt-ink); padding-block: 2rem 1.125rem; font-size: 0.84rem; gap: 2rem; }
.nt-footer__cols .wp-block-column > * { margin-block: 0; }
.nt-footer__cols .wp-block-column > * + * { margin-block-start: 0.5rem; }
.nt-footer__label { font-family: var(--nt-mono); font-size: 0.6875rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--nt-grey); }
.nt-footer__contact { font-family: var(--nt-mono); font-size: 0.75rem; color: var(--nt-grey); line-height: 1.8; }
.nt-footer__links { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.25rem; }
.nt-footer__links a { color: var(--nt-ink); }
.nt-footer__links a:hover { color: var(--nt-green-dark); }
.nt-footer__legal { border-top: 1px solid var(--nt-line); padding-block: 0.875rem 1.625rem; font-family: var(--nt-mono); font-size: 0.72rem; color: var(--nt-grey); gap: 0.5rem 1.5rem; }
.nt-footer__legal > * { margin: 0; }
.nt-footer__legal a { color: var(--nt-grey); }

/* ---------- Menu : sous-menus Services / Métiers ---------- */

.nt-nav .wp-block-navigation__submenu-container {
	background: var(--nt-ink) !important;
	border: 1px solid var(--nt-graphite) !important;
	padding: 0.5rem 0;
	min-width: 16rem !important;
}
.nt-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 0.5rem 1rem; }
.nt-nav .wp-block-navigation-submenu__toggle { color: var(--nt-muted-on-dark); font-family: inherit; font-size: inherit; padding: 0; }
.nt-nav .wp-block-navigation-submenu__toggle:hover,
.nt-nav .wp-block-navigation-submenu__toggle[aria-expanded="true"] { color: var(--nt-green); }
.nt-nav .is-menu-open .wp-block-navigation__submenu-container { border: 0 !important; padding: 0.5rem 0 0 1rem; }

/* ---------- Hero : variantes (références, métiers) ---------- */

.nt-hero__title--m { font-size: clamp(2.25rem, 4.6vw, 3.25rem); }
.nt-dark .nt-breadcrumb, .nt-dark .nt-breadcrumb a { color: var(--nt-faint-on-dark); }
.nt-dark .nt-breadcrumb .breadcrumb_last { color: var(--nt-paper); }
.nt-hero .wp-block-buttons { margin-top: 1.75rem; }

.nt-logo-box { display: inline-block; background: var(--nt-white); padding: 0.5rem 0.75rem; margin: 0; line-height: 0; }
.nt-logo-box img { height: 40px; width: auto; }
.nt-logo-crop img { height: 39px !important; width: 112px !important; object-fit: cover; object-position: 50% 48%; margin-block: -6px; }

.nt-tags-outline { gap: 0.625rem; margin-top: 1.125rem !important; }
.nt-tags-outline > p { margin: 0; font-family: var(--nt-mono); font-size: 0.75rem; border: 1px solid var(--nt-graphite); padding: 0.3rem 0.625rem; color: var(--nt-muted-on-dark); }

.nt-bigstats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.875rem; }
.nt-bigstats > * { margin: 0 !important; border-top: 3px solid var(--nt-green); padding-top: 0.875rem; }
.nt-bigstats .nt-stat__value { font-size: clamp(2.5rem, 4.4vw, 3.25rem); line-height: 1; letter-spacing: -0.03em; }
.nt-bigstats .nt-stat__label { margin-top: 0.375rem; }

.nt-ref-box { border: 1px solid var(--nt-graphite); padding: 1.75rem; }
.nt-ref-box > * { margin-block: 0; }
.nt-ref-box > * + * { margin-block-start: 1.25rem; }
.nt-ref-box .nt-bigstats .nt-stat__value { font-size: clamp(2.25rem, 3.8vw, 2.75rem); }
.nt-ref-box__caption { font-family: var(--nt-mono); font-size: 0.72rem; color: var(--nt-faint-on-dark); margin-top: 0.875rem !important; }

/* ---------- Référence : fiche, contexte, résultats ---------- */

.nt-fiche { border-bottom: 1px solid var(--nt-line); padding-block: 1.25rem; }
.nt-fiche__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem; }
.nt-fiche__grid > * { margin: 0 !important; }
.nt-fiche__grid p { margin: 0; }
.nt-fiche__label { font-family: var(--nt-mono); font-size: 0.6875rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--nt-grey); }
.nt-fiche__value { font-weight: 600; }
@media (max-width: 781px) {
	.nt-fiche__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.nt-split { gap: clamp(2rem, 5vw, 3.5rem); }
.nt-split .nt-section-head { margin-bottom: 0; }
.nt-split__intro { margin-top: 1.125rem !important; font-family: var(--nt-display); font-weight: 500; font-size: 1.3125rem; line-height: 1.35; }
.nt-lede { font-family: var(--nt-display); font-weight: 500; font-size: clamp(1.25rem, 2.2vw, 1.5rem); line-height: 1.35; letter-spacing: -0.01em; }
.nt-body { font-size: 1.03rem; line-height: 1.75; }
.nt-body > * { margin-block: 0; }
.nt-body > * + * { margin-block-start: 1rem; }

.nt-placeholder {
	min-height: 16rem;
	margin-top: 0.875rem !important;
	border: 1px solid var(--nt-line);
	background: var(--nt-hatch);
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--nt-mono);
	font-size: 0.75rem;
	color: var(--nt-grey);
	text-align: center;
	padding: 1rem;
}
.nt-placeholder > * { margin: 0; }

.nt-table { border-top: 1.5px solid var(--nt-ink); margin: 0; }
.nt-table table { border-collapse: collapse; width: 100%; font-family: var(--nt-mono); font-size: 0.84rem; }
.nt-table thead { border: 0; }
.nt-table th { font-weight: 400; font-size: 0.6875rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--nt-grey); text-align: right; padding: 0.625rem 0; border: 0; border-bottom: 1px solid var(--nt-line); }
.nt-table td { text-align: right; padding: 0.875rem 0; border: 0; border-bottom: 1px solid var(--nt-line); }
.nt-table :is(th, td) + :is(th, td) { padding-left: 1.25rem; }
.nt-table td:first-child { text-align: left; font-family: var(--wp--preset--font-family--body); font-size: 0.9375rem; }
.nt-table th:first-child { text-align: left; }
.nt-table td:nth-child(2) { color: var(--nt-grey); }
.nt-table td:last-child { color: var(--nt-green-dark); font-weight: 500; }
.nt-table figcaption { font-family: var(--nt-mono); font-size: 0.72rem; color: var(--nt-grey); text-align: left; }

.nt-back { margin-top: 2.5rem !important; border-top: 1.5px solid var(--nt-ink); padding-top: 1.375rem; }
.nt-back > * { margin: 0; }
.nt-back a { font-family: var(--nt-display); font-weight: 600; font-size: 1.1875rem; color: var(--nt-ink); }
.nt-back a:hover { color: var(--nt-green-dark); }

/* ---------- Cartes références ---------- */

.nt-ref-card { position: relative; background: var(--nt-white); border: 1px solid var(--nt-line); height: 100%; }
.nt-ref-card > * { margin: 0; }
.nt-ref-card:hover { border-color: var(--nt-ink); }
.nt-ref-card__visual { margin: 0; border-bottom: 1px solid var(--nt-line); }
.nt-ref-card__visual img { width: 100%; height: 12.5rem; object-fit: cover; display: block; }
.nt-ref-card:not(:has(.nt-ref-card__visual))::before {
	content: "";
	display: block;
	height: 12.5rem;
	background: var(--nt-hatch);
	border-bottom: 1px solid var(--nt-line);
}
.nt-ref-card__body { padding: 1.5rem 1.625rem; }
.nt-ref-card__body > * { margin-block: 0; }
.nt-ref-card__top { align-items: center !important; min-height: 2.5rem; }
.nt-ref-card__top > * { margin: 0; }
.nt-ref-card__top img { height: 30px; width: auto; }
.nt-ref-card__sector { font-family: var(--nt-mono); font-size: 0.6875rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--nt-grey); }
.nt-ref-card h3 { margin-top: 1rem; font-size: 1.375rem; }
.nt-ref-card h3 a { color: inherit; }
.nt-ref-card h3 a::after { content: ""; position: absolute; inset: 0; }
.nt-ref-card .nt-badges { align-items: center; }

.nt-accounts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-left: 1px solid var(--nt-line); }
.nt-accounts > * { margin: 0 !important; padding: 1.375rem 1.5rem; border-right: 1px solid var(--nt-line); border-bottom: 1px solid var(--nt-line); }
.nt-accounts p { margin: 0; }
.nt-accounts__name { font-family: var(--nt-display); font-weight: 600; font-size: 1.25rem; }
.nt-accounts__sector { font-family: var(--nt-mono); font-size: 0.72rem; color: var(--nt-grey); }
@media (max-width: 781px) {
	.nt-accounts { grid-template-columns: 1fr; }
}

/* ---------- Métiers : cartes, lignes, étapes, formules ---------- */

.nt-linkcard { position: relative; display: flex; flex-direction: column; }
.nt-linkcard:hover { border-color: var(--nt-ink); }
.nt-linkcard h3 a::after { content: ""; position: absolute; inset: 0; }
.nt-linkcard__foot { margin-top: auto !important; padding-top: 0.75rem; border-top: 1px solid var(--nt-line); gap: 0.5rem; font-family: var(--nt-mono); font-size: 0.75rem; }
.nt-linkcard > .nt-small { margin-bottom: 1rem; }
.is-style-carte-sombre .nt-linkcard__foot { border-top-color: var(--nt-graphite); }
.nt-linkcard__foot > * { margin: 0; }
.nt-linkcard__ref { color: var(--nt-grey); }
.is-style-carte-sombre .nt-linkcard__ref { color: var(--nt-faint-on-dark); }
.nt-linkcard__go { color: var(--nt-green-dark); margin-left: auto !important; }
.is-style-carte-sombre .nt-linkcard__go { color: var(--nt-green); }

.nt-rows > * { margin: 0 !important; }
.nt-row {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr) 11rem 6rem;
	gap: 1.5rem;
	align-items: baseline;
	padding-block: 1.125rem;
	border-bottom: 1px solid var(--nt-line);
}
.nt-row > * { margin: 0 !important; }
.nt-row h3 { font-size: 1.1875rem; }
.nt-row h3 a { color: inherit; }
.nt-row h3 a::after { content: ""; position: absolute; inset: 0; }
.nt-row:hover h3 a { color: var(--nt-green-dark); }
.nt-row__ref { font-family: var(--nt-mono); font-size: 0.75rem; color: var(--nt-grey); }
.nt-row__go { font-family: var(--nt-mono); font-size: 0.75rem; color: var(--nt-green-dark); text-align: right; }
@media (max-width: 781px) {
	.nt-row { grid-template-columns: 1fr; gap: 0.375rem; }
	.nt-row__go { text-align: left; }
}

.nt-steps-list { border-top: 1.5px solid var(--nt-ink); }
.nt-steps-list > * { margin: 0 !important; }
.nt-step { display: grid; grid-template-columns: 3.5rem minmax(0, 1fr); gap: 1.25rem; padding-block: 1.125rem; border-bottom: 1px solid var(--nt-line); }
.nt-step > * { margin: 0 !important; }
.nt-step__num { font-family: var(--nt-display); font-weight: 600; font-size: 1.5rem; line-height: 1.2; color: var(--nt-green); }
.nt-step__body > * { margin: 0; }
.nt-step__body h3 { font-size: 1.125rem; }

.nt-offer { display: flex; flex-direction: column; }
.nt-offer .wp-block-buttons { margin-top: auto !important; padding-top: 1.375rem; }
.nt-offer .wp-block-button, .nt-offer .wp-block-button__link { width: 100%; text-align: center; }
.nt-offer .is-style-coches { font-size: 0.875rem; }
.nt-offer .is-style-coches li { margin-block: 0.375rem; }
.nt-offer.is-style-carte-sombre { border-top: 3px solid var(--nt-green); }
.nt-offer.is-style-carte-sombre .is-style-coches { color: rgba(246, 245, 241, 0.85); }
.nt-offer.is-style-carte .is-style-outline > .wp-block-button__link { border-color: var(--nt-ink); }
.nt-price { font-family: var(--nt-display); font-weight: 600; font-size: 1.875rem; line-height: 1.2; }
.nt-price em { font-style: normal; font-weight: 400; font-size: 0.9375rem; color: var(--nt-grey); }
.is-style-carte-sombre .nt-price em { color: var(--nt-faint-on-dark); }

.nt-links { gap: 0.5rem; }
.nt-links > * { margin: 0; }
.nt-links a {
	display: inline-block;
	font-family: var(--nt-mono);
	font-size: 0.78rem;
	color: var(--nt-ink);
	background: var(--nt-white);
	border: 1px solid var(--nt-line);
	padding: 0.5rem 0.8rem;
}
.nt-links a:hover { border-color: var(--nt-green); color: var(--nt-green-dark); }
