/* =========================================================
   Vitrine des solutions
   ========================================================= */

.nf-showcase { display: grid !important; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(40px, 7vw, 112px) !important; align-items: center; }
.nf-showcase + .nf-showcase { margin-top: clamp(96px, 12vw, 176px) !important; }
.nf-showcase.is-reversed > :first-child { order: 2; }
.nf-showcase > .wp-block-column { flex-basis: auto !important; }
@media (max-width: 900px) {
	.nf-showcase { grid-template-columns: 1fr; }
	.nf-showcase.is-reversed > :first-child { order: 0; }
}
.nf-media-stack { position: relative; }
.nf-media-stack .wp-block-image { margin: 0; }
.nf-media-stack .wp-block-image img { width: 100%; aspect-ratio: 4 / 4.6; object-fit: cover; border-radius: var(--nf-r-l); display: block; }
.nf-float-card {
	position: absolute !important;
	right: -28px;
	bottom: 48px;
	width: min(300px, 78%);
	margin: 0 !important;
	background: #fff;
	border-radius: 20px;
	padding: 22px 22px 20px;
	box-shadow: var(--nf-shadow);
	display: grid;
	gap: 6px;
}
.is-reversed .nf-float-card { right: auto; left: -28px; }
.nf-float-card p { margin: 0; }
.nf-float-card__eyebrow { font-size: 12.5px; font-weight: 600; color: var(--nf-muted); }
.nf-float-card__title { font-size: 17px; font-weight: 700; font-stretch: 110%; color: var(--nf-ink); line-height: 1.25; }
.nf-float-card__field { margin-top: 8px !important; padding: 11px 14px; border: 1px solid var(--nf-line); border-radius: 10px; font-size: 14px; color: var(--nf-muted); }
.nf-float-card__action { margin-top: 4px !important; padding: 11px 14px; border-radius: 10px; background: var(--nf-signal); color: #fff; font-weight: 600; font-size: 14px; text-align: center; }
.nf-float-card__meta { display: flex; justify-content: space-between; font-size: 13.5px; color: var(--nf-slate); }
.nf-float-card__bar { height: 6px; border-radius: 6px; background: linear-gradient(90deg, var(--nf-signal) 0 34%, var(--nf-mist) 34% 100%); margin-top: 6px !important; }
@media (max-width: 600px) { .nf-float-card, .is-reversed .nf-float-card { right: 12px; left: auto; bottom: -24px; width: 76%; } .nf-media-stack { margin-bottom: 24px; } }

.nf-badge { display: inline-flex !important; align-items: center; gap: 8px; margin: 0 0 18px; padding: 7px 14px; border-radius: 999px; background: #FBEDE3; color: var(--nf-signal-dark); font-size: 14px; font-weight: 600; }
.nf-product__name { margin: 0 0 18px; font-size: clamp(2.6rem, 4.6vw, 4rem); font-stretch: 118%; letter-spacing: -.035em; line-height: 1; }
.nf-product__text { font-size: var(--wp--preset--font-size--lead); color: var(--nf-ink); line-height: 1.5; margin: 0 0 28px; }
.nf-showcase .wp-block-list.is-style-nf-checks { margin: 0 0 36px; color: var(--nf-slate); }

.nf-roadmap { margin-top: clamp(80px, 9vw, 128px) !important; display: flex !important; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px 40px; padding: 28px 32px; border-radius: var(--nf-r-m); border: 1.5px dashed #B7C8D3; }
.nf-roadmap p { margin: 0; }
.nf-roadmap__text { font-weight: 500; color: var(--nf-ink); max-width: 64ch; }

/* =========================================================
   Secteurs (mosaïque)
   ========================================================= */

.nf-tiles { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 270px; gap: 16px; }
.nf-tiles > * { margin: 0 !important; }
.nf-tiles > :first-child { grid-column: span 2; grid-row: span 2; }
.nf-tiles > :nth-child(6) { grid-column: span 2; }
.wp-block-cover.nf-tile {
	min-height: 0 !important;
	height: 100%;
	padding: 26px !important;
	border-radius: 22px;
	overflow: hidden;
	align-items: flex-end;
	isolation: isolate;
}
.nf-tile .wp-block-cover__image-background { transition: transform 1.2s var(--nf-ease); }
.nf-tile:hover .wp-block-cover__image-background { transform: scale(1.06); }
.nf-tile .wp-block-cover__inner-container { width: 100%; color: #fff; }
.nf-tile h3 { margin: 0; font-size: 22px; color: #fff; font-stretch: 110%; line-height: 1.15; }
.nf-tiles > :first-child h3 { font-size: clamp(26px, 2.6vw, 36px); }
.nf-tile h3 a { color: inherit; }
.nf-tile h3 a::after { content: ""; position: absolute; inset: 0; z-index: 3; }
.nf-tile__text { margin: 0; font-size: 15px; line-height: 1.5; color: rgba(255, 255, 255, .88); max-height: 0; opacity: 0; overflow: hidden; transition: max-height .6s var(--nf-ease), margin .5s var(--nf-ease), opacity .45s ease; }
.nf-tile:hover .nf-tile__text, .nf-tile:focus-within .nf-tile__text, .nf-tiles > :first-child .nf-tile__text { max-height: 7em; opacity: 1; margin-top: 10px; }
.nf-tile .nf-tag { display: inline-flex; margin: 0 0 12px; padding: 4px 11px; border-radius: 999px; background: rgba(255, 255, 255, .16); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); font-size: 12.5px; font-weight: 600; color: #fff; }
@media (hover: none) { .nf-tile__text { max-height: 7em; opacity: 1; margin-top: 8px; } }
@media (max-width: 1000px) {
	.nf-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 240px; }
	.nf-tiles > :first-child { grid-column: span 2; grid-row: span 1; }
	.nf-tiles > :nth-child(6) { grid-column: span 1; }
}
@media (max-width: 560px) {
	.nf-tiles { grid-template-columns: 1fr; grid-auto-rows: 220px; }
	.nf-tiles > :first-child { grid-column: auto; }
}

/* =========================================================
   Bandeau conformité (sombre)
   ========================================================= */

.nf-band { position: relative; overflow: hidden; background: var(--nf-night); color: #CADADE; padding-block: var(--nf-section); isolation: isolate; }
.nf-band::before {
	content: "";
	position: absolute;
	right: -8%;
	top: -10%;
	width: min(720px, 70vw);
	aspect-ratio: 1;
	background: url("../img/netfine-prism.svg") center / contain no-repeat;
	opacity: .1;
	z-index: -1;
	transform: translateY(var(--nf-band-shift, 0));
}
.nf-band::after { content: ""; position: absolute; inset: 0; background: radial-gradient(60% 80% at 10% 0%, rgba(208, 106, 39, .28), transparent 60%); z-index: -1; }
.nf-band h2, .nf-band h3 { color: #fff; }
.nf-band .nf-kicker { color: var(--nf-glacier); }
.nf-band__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: clamp(40px, 7vw, 120px); align-items: start; }
.nf-band__grid h2 { margin: 0 0 24px; max-width: 16ch; }
.nf-band__grid > :first-child p { color: #CADADE; max-width: 46ch; }
.nf-band__items { display: grid; gap: 0; }
.nf-band__item { padding: 28px 0; border-top: 1px solid rgba(242, 177, 132, .22); display: grid; grid-template-columns: 56px 1fr; gap: 0 20px; }
.nf-band__item:last-child { border-bottom: 1px solid rgba(242, 177, 132, .22); }
.nf-band__item h3 { margin: 0 0 6px; font-size: 21px; grid-column: 2; }
.nf-band__item p { margin: 0; grid-column: 2; font-size: 16px; }
.nf-band__item [class*="nf-ico-"]::before { position: absolute; }
.nf-band__item h3[class*="nf-ico-"] { position: relative; }
.nf-band__item h3[class*="nf-ico-"]::before { left: -76px; top: -4px; width: 48px; height: 48px; margin: 0; border-radius: 14px; background-color: rgba(242, 177, 132, .14); background-size: 22px; }
.nf-band .wp-block-button.is-style-nf-link .wp-block-button__link { color: var(--nf-glacier); }
.nf-band .wp-block-button.is-style-nf-link .wp-block-button__link:hover { color: #fff; }
@media (max-width: 900px) { .nf-band__grid { grid-template-columns: 1fr; } }

/* =========================================================
   Méthode (étapes)
   ========================================================= */

.nf-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; counter-reset: nf-step; position: relative; }
.nf-steps::before { content: ""; position: absolute; left: 24px; right: 24px; top: 24px; height: 1px; background: linear-gradient(90deg, var(--nf-signal), var(--nf-line)); }
.nf-steps li { position: relative; counter-increment: nf-step; padding-top: 76px; color: var(--nf-slate); }
.nf-steps li::before {
	content: counter(nf-step);
	position: absolute;
	top: 0;
	left: 0;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: #fff;
	border: 1.5px solid var(--nf-signal);
	color: var(--nf-signal);
	display: grid;
	place-items: center;
	font-weight: 700;
	font-stretch: 115%;
}
.nf-steps li strong { display: block; margin-bottom: 8px; font-size: 21px; font-stretch: 112%; color: var(--nf-ink); letter-spacing: -.01em; }
@media (max-width: 900px) {
	.nf-steps { grid-template-columns: 1fr; gap: 0; }
	.nf-steps::before { left: 24px; right: auto; top: 24px; bottom: 24px; width: 1px; height: auto; background: linear-gradient(180deg, var(--nf-signal), var(--nf-line)); }
	.nf-steps li { padding: 0 0 36px 76px; }
}

/* =========================================================
   Partenaires (texte + image)
   ========================================================= */

.nf-split { display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(40px, 7vw, 112px) !important; align-items: center; }
.nf-split > .wp-block-column { flex-basis: auto !important; }
.nf-split .wp-block-image { margin: 0; }
.nf-split .wp-block-image img { width: 100%; aspect-ratio: 5 / 4; object-fit: cover; border-radius: var(--nf-r-l); display: block; }
.nf-split h2 { margin: 0 0 24px; }
.nf-split .wp-block-list.is-style-nf-checks { margin: 28px 0 36px; }
@media (max-width: 900px) { .nf-split { grid-template-columns: 1fr; } }

/* =========================================================
   Actualités
   ========================================================= */

.nf-news { padding-block: 0 var(--nf-section); }
.nf-news.nf-news--home { padding: 0; width: auto; }
.nf-news__grid { gap: 28px !important; }
.nf-news__card { display: flex; flex-direction: column; gap: 10px; }
.nf-news__image { margin: 0 0 8px !important; overflow: hidden; border-radius: var(--nf-r-m); background: var(--nf-mist); }
.nf-news__image img { transition: transform 1s var(--nf-ease); }
.nf-news__card:hover .nf-news__image img { transform: scale(1.04); }
.nf-news__date { font-size: 14px; color: var(--nf-muted); }
.nf-news__title { margin: 0; font-size: 22px; line-height: 1.25; }
.nf-news__title a { color: var(--nf-ink); }
.nf-news__title a:hover { color: var(--nf-signal); }
.nf-news__excerpt { color: var(--nf-slate); font-size: 16px; }
.nf-news__excerpt p { margin: 0; }
.nf-pagination { margin-top: 48px; gap: 8px; }
@media (max-width: 900px) { .nf-news__grid { grid-template-columns: 1fr !important; } }

/* =========================================================
   FAQ (bloc Détails)
   ========================================================= */

.nf-faq { display: grid !important; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(32px, 7vw, 112px) !important; align-items: start; }
.nf-faq > .wp-block-column { flex-basis: auto !important; }
.nf-faq h2 { margin: 0 0 16px; }
.nf-faq .wp-block-details { border-bottom: 1px solid var(--nf-line); margin: 0 !important; }
.nf-faq .wp-block-details:first-of-type { border-top: 1px solid var(--nf-line); }
.nf-faq .wp-block-details summary {
	list-style: none;
	position: relative;
	padding: 26px 56px 26px 0;
	font-size: 19px;
	font-weight: 620;
	font-stretch: 106%;
	color: var(--nf-ink);
	cursor: pointer;
	transition: color .25s ease;
}
.nf-faq .wp-block-details summary::-webkit-details-marker { display: none; }
.nf-faq .wp-block-details summary::after {
	content: "";
	position: absolute;
	right: 4px;
	top: 50%;
	width: 34px;
	height: 34px;
	margin-top: -17px;
	border-radius: 50%;
	background: var(--nf-mist) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23003045' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M12 6v12M6 12h12'/%3E%3C/svg%3E") center / 16px no-repeat;
	transition: transform .4s var(--nf-ease), background-color .25s;
}
.nf-faq .wp-block-details[open] summary::after { transform: rotate(45deg); background-color: #FBEDE3; }
.nf-faq .wp-block-details summary:hover { color: var(--nf-signal); }
.nf-faq .wp-block-details > :not(summary) { margin: 0 0 26px; color: var(--nf-slate); max-width: 64ch; }
@media (max-width: 900px) { .nf-faq { grid-template-columns: 1fr; } }

/* =========================================================
   Appel à l'action final
   ========================================================= */

.nf-cta-wrap { padding: 0 var(--nf-gutter) var(--nf-section); }
.wp-block-cover.nf-cta {
	max-width: var(--nf-wrap);
	margin-inline: auto;
	min-height: 460px !important;
	border-radius: 32px;
	overflow: hidden;
	padding: clamp(40px, 6vw, 88px) !important;
	align-items: flex-end;
}
.nf-cta .wp-block-cover__inner-container { width: 100%; color: #fff; display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 32px; }
.nf-cta h2 { color: #fff; margin: 0 0 12px; max-width: 16ch; }
.nf-cta p { margin: 0; color: rgba(255, 255, 255, .85); }
.nf-cta .wp-block-buttons { margin: 0; }

/* =========================================================
   Contenu éditorial (articles, pages simples)
   ========================================================= */

body.nf-no-hero .nf-content { width: min(100% - 2 * var(--nf-gutter), 760px); margin: 0 auto; padding-bottom: var(--nf-section); }
.nf-prose { padding-bottom: 40px; }
.nf-prose > * { max-width: 760px; }
body.nf-no-hero .nf-content h2, .nf-prose h2 { font-size: clamp(1.8rem, 3vw, 2.4rem); margin-top: 2em; }
.nf-article__media { margin-block: 0 48px; }
.nf-article__image img { border-radius: var(--nf-r-l); }
.nf-article__back { padding-bottom: var(--nf-section); }

/* 404 & recherche */
.nf-404 { padding-block: clamp(80px, 12vw, 160px); background: radial-gradient(60% 60% at 80% 20%, #FBEDE3, transparent 70%); }
.nf-404__code { margin: 0; font-size: clamp(120px, 22vw, 260px); font-weight: 800; font-stretch: 125%; letter-spacing: -.06em; line-height: .85; color: transparent; -webkit-text-stroke: 1.5px var(--nf-signal); }
.nf-404__title { margin: 24px 0 16px; font-size: clamp(2rem, 4vw, 3.2rem); }
.nf-404__text { max-width: 56ch; color: var(--nf-slate); }
.nf-404__links { margin-top: 32px; }
.nf-search { max-width: 560px; margin-top: 28px; }
.nf-search .wp-block-search__inside-wrapper { border: 1.5px solid var(--nf-line); border-radius: 999px; padding: 6px; background: #fff; }
.nf-search .wp-block-search__input { border: 0; padding: 10px 16px; font: inherit; background: transparent; }
.nf-search .wp-block-search__button { border-radius: 999px; margin: 0; }

/* =========================================================
   Pied de page
   ========================================================= */

.nf-footer { background: var(--nf-night); color: #A9BFCC; font-size: 15px; padding-top: clamp(64px, 8vw, 104px); }
.nf-footer a { color: #DCE7EE; transition: color .2s; }
.nf-footer a:hover { color: #fff; }
.nf-footer__top { display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; padding-bottom: 56px; border-bottom: 1px solid rgba(169, 191, 204, .16); }
.nf-footer__logo img { width: 220px; height: auto; display: block; }
.nf-footer__about { margin: 22px 0 0; max-width: 42ch; }
.nf-footer__news-title { margin: 0 0 8px; font-size: 24px; color: #fff; }
.nf-footer__news-text { margin: 0 0 20px; }
.nf-newsletter { display: flex; gap: 8px; padding: 6px; border-radius: 999px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .12); max-width: 480px; }
.nf-newsletter input { flex: 1; min-width: 0; border: 0; background: transparent; color: #fff; font: inherit; padding: 10px 16px; }
.nf-newsletter input::placeholder { color: #7F97A6; }
.nf-newsletter button { border: 0; border-radius: 999px; padding: 0 22px; min-height: 46px; background: var(--nf-signal); color: #fff; font: inherit; font-weight: 600; cursor: pointer; transition: background-color .25s; }
.nf-newsletter button:hover { background: var(--nf-signal-dark); }
.nf-footer__cols { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px; padding-block: 56px; }
.nf-footer__heading { margin: 0 0 16px; font-size: 15px; font-weight: 600; color: #fff; font-stretch: 100%; letter-spacing: 0; }
.nf-footer__links { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.nf-footer__address { margin: 0 0 14px; }
.nf-footer__bottom { display: flex !important; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px 32px; padding-block: 28px 36px; border-top: 1px solid rgba(169, 191, 204, .16); font-size: 14px; }
.nf-footer__bottom p { margin: 0; }
.nf-footer__legal { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px 24px; }
.nf-footer__legal li:last-child a { color: #6F8796; }
@media (max-width: 900px) {
	.nf-footer__top { grid-template-columns: 1fr; }
	.nf-footer__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) { .nf-footer__cols { grid-template-columns: 1fr; } }

/* =========================================================
   Éditeur : neutraliser le positionnement fixe
   ========================================================= */

.editor-styles-wrapper .nf-header { position: relative; }
.editor-styles-wrapper .nf-drawer, .editor-styles-wrapper .nf-scrim, .editor-styles-wrapper .nf-skip { display: none; }
.editor-styles-wrapper html.js .nf-reveal, .editor-styles-wrapper .nf-reveal { opacity: 1; transform: none; }

/* =========================================================
   Mouvement réduit
   ========================================================= */

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
	html.js .nf-reveal { opacity: 1; transform: none; }
}

/* =========================================================
   Ajustements de mise en page
   ========================================================= */

.wp-block-cover.has-custom-content-position.nf-hero .wp-block-cover__inner-container,
.wp-block-cover.has-custom-content-position.nf-page-hero .wp-block-cover__inner-container { width: 100% !important; max-width: var(--nf-wrap) !important; margin: 0 auto !important; position: relative; }
.nf-hero h1 { max-width: 17ch; }
.nf-scrollcue { right: 0; bottom: 6px; }
.nf-kicker { margin-bottom: 0 !important; }
.nf-kicker + :is(h1, h2, h3) { margin-top: 14px !important; }
.nf-footer .nf-footer__cols > *, .nf-footer .nf-footer__top > *,
.nf-main .nf-section__head > *, .nf-main .nf-band__grid > *, .nf-main .nf-band__items > *,
.nf-main .nf-tiles > *, .nf-main .nf-showcase > *, .nf-main .nf-split > *, .nf-main .nf-faq > * { margin-block-start: 0 !important; }
.nf-footer__brand > * + *, .nf-footer__news > * + * { margin-block-start: 0; }
.nf-cta .wp-block-cover__inner-container > * { margin-block-start: 0 !important; }
