/*!
 * Neo Finance – styles complémentaires des pages Elementor.
 * Les couleurs, typographies et espacements principaux sont réglés dans Elementor ;
 * ce fichier ajoute les effets, les décors et les composants dynamiques.
 */

/* ------------------------------------------------------------ Base */
html { scroll-behavior: smooth; }
body.nf-site { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; overflow-x: clip; }
.nf-site [data-elementor-type] { overflow-x: clip; }
.nf-site h1.elementor-heading-title, .nf-site h2.elementor-heading-title { text-wrap: balance; }
.nf-site .nf-pretty .elementor-heading-title { text-wrap: pretty; }
.nf-site .elementor-widget-text-editor p { margin-top: 0; }
.nf-site .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.nf-site .elementor-icon-box-description { margin: 0; }
.nf-site .elementor-icon-box-title { margin-top: 0; }
.nf-site .elementor-widget-icon .elementor-icon-wrapper { line-height: 0; }
.nf-site .elementor-widget-icon .elementor-icon { vertical-align: top; }
.nf-ico { display: inline-block; width: 1em; height: 1em; vertical-align: middle; flex: none; }

/* ----------------------------------------------- En-tête (sticky) */
.nf-site-header { position: relative; z-index: 100; }
body.nf-sticky .nf-site-header {
	position: sticky;
	top: calc(var(--wp-admin--admin-bar--height, 0px) - var(--nf-topbar-h, 52px));
}
@media (max-width: 600px) {
	body.admin-bar.nf-sticky .nf-site-header { top: calc(0px - var(--nf-topbar-h, 52px)); }
}
.nf-header { box-shadow: 0 1px 0 #eee; transition: box-shadow .35s, padding .35s; }
.nf-header > .e-con-inner { position: static; }
.nf-site-header.is-scrolled .nf-header {
	box-shadow: 0 8px 24px rgba(11, 60, 58, .12);
	--padding-top: 6px !important;
	--padding-bottom: 6px !important;
}
.nf-logo img { transition: height .35s; display: block; }
.nf-site-header.is-scrolled .nf-logo img { height: 44px !important; }

.nf-topbar-mail { align-self: stretch !important; display: flex; }
.nf-topbar-mail .elementor-button { height: 100%; display: flex; align-items: center; }
.nf-topbar-social { align-self: center !important; }

.nf-header-phone .elementor-icon-box-wrapper { align-items: center; }
.nf-header-phone .elementor-icon-box-title,
.nf-header-phone .elementor-icon-box-title a { white-space: nowrap; }
.nf-header-phone .elementor-icon-box-description { white-space: nowrap; }
.nf-header-contact .elementor-button { white-space: nowrap; }

/* Menu principal ([nf_menu]) */
.nf-nav-widget { position: static !important; }
.nf-nav-wrap { display: flex; align-items: center; justify-content: flex-start; }
.nf-menu { display: flex; align-items: center; gap: clamp(18px, 2vw, 30px); list-style: none; margin: 0; padding: 0; white-space: nowrap; }
.nf-menu > li { position: relative; padding: 10px 0; margin: 0; }
.nf-menu a {
	position: relative; display: inline-flex; align-items: center; gap: 6px;
	font-family: 'Inter', sans-serif; font-size: 15px; font-weight: 500; line-height: 1.2;
	color: #1c1c1c; text-transform: uppercase; text-decoration: none; transition: color .25s;
}
.nf-menu a:hover, .nf-menu a:focus-visible { color: #0B7A6E; }
.nf-menu > .current-menu-item > a,
.nf-menu > .current-menu-ancestor > a,
.nf-menu > .current-menu-parent > a { color: #5B6766; }
.nf-menu > li > a::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: -6px; height: 2px; border-radius: 2px;
	background: #12D6E0; transform: scaleX(0); transform-origin: left; transition: transform .35s cubic-bezier(.6, 0, .2, 1);
}
.nf-menu > li > a:hover::after { transform: scaleX(1); }
.nf-menu .nf-ico-chevron { width: 10px; height: 10px; }
.nf-menu .sub-menu {
	position: absolute; top: 100%; left: 0; min-width: 270px; margin: 0; padding: 8px 0; list-style: none;
	background: #fff; border-top: 3px solid #12D6E0; box-shadow: 0 12px 30px rgba(0, 0, 0, .12); z-index: 60;
	opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .25s, transform .25s, visibility .25s;
}
.nf-menu li:hover > .sub-menu, .nf-menu li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.nf-menu .sub-menu li { margin: 0; }
.nf-menu .sub-menu a { display: block; padding: 10px 20px; font-size: 14px; font-weight: 400; text-transform: none; white-space: normal; }
.nf-menu .sub-menu a:hover { background: #E3FAFB; color: #0B7A6E; }
/* Écrans de 1240 à 1439 px : menu resserré pour que les 5 entrées, le téléphone et le bouton Contact tiennent sur une ligne */
@media (min-width: 1240px) and (max-width: 1439px) {
	.nf-menu { gap: 16px; }
	.nf-menu a { font-size: 14px; }
}

.nf-nav-wrap .nf-burger {
	display: none; align-items: center; justify-content: center; flex: none;
	width: 46px; height: 46px; padding: 0; border: 0; border-radius: 6px;
	background: #E3FAFB; color: #0B7A6E; font-size: 20px; cursor: pointer; box-shadow: none;
}
.nf-nav-wrap .nf-burger:hover, .nf-nav-wrap .nf-burger:focus { background: #12D6E0; color: #2D2257; }
.nf-burger .nf-ico-times, .nf-burger[aria-expanded="true"] .nf-ico-bars { display: none; }
.nf-burger[aria-expanded="true"] .nf-ico-times { display: inline-block; }
.nf-mobile-panel {
	position: absolute; left: 0; right: 0; top: 100%; z-index: 70;
	max-height: calc(100vh - 110px); overflow: auto;
	padding: 8px clamp(20px, 4vw, 40px) 18px; background: #fff;
	border-top: 1px solid #eee; box-shadow: 0 16px 30px rgba(11, 60, 58, .12);
}
.nf-mobile-panel[hidden] { display: none; }
.nf-mobile-menu { list-style: none; margin: 0; padding: 0; }
.nf-mobile-menu li { margin: 0; }
.nf-mobile-menu > li > a {
	display: block; padding: 12px 0; border-bottom: 1px solid #f0f0f0;
	font-family: 'Inter', sans-serif; font-size: 15px; font-weight: 500; color: #1c1c1c; text-transform: uppercase; text-decoration: none;
}
.nf-mobile-menu > .menu-item-has-children > a { border-bottom: 0; padding-bottom: 6px; }
.nf-mobile-menu .sub-menu { list-style: none; margin: 0; padding: 0 0 6px; border-bottom: 1px solid #f0f0f0; }
.nf-mobile-menu .sub-menu a { display: block; padding: 8px 0 8px 16px; font-size: 14px; color: #0B7A6E; text-decoration: none; }
.nf-mobile-menu .current-menu-item > a { color: #5B6766; }
.nf-mobile-menu > li:last-child > a { border-bottom: 0; }

@media (max-width: 1239px) {
	.nf-nav { display: none; }
	.nf-nav-wrap .nf-burger { display: inline-flex; }
	.nf-nav-widget { order: 3; flex-grow: 0 !important; margin-left: 0 !important; width: auto !important; }
	.nf-logo { margin-right: auto !important; }
}
@media (max-width: 699px) { .nf-hide-700 { display: none !important; } }
@media (max-width: 479px) { .nf-hide-480 { display: none !important; } }
.nf-menu-missing { margin: 0; font-size: 13px; color: #b32d2e; }

/* ------------------------------------------------------ Badges */
.nf-tag { position: relative; }
.nf-tag::after {
	content: ""; position: absolute; left: 0; bottom: -7px; width: 64px; max-width: 100%; height: 2px; border-radius: 2px;
	background: #12D6E0; transform: scaleX(0); transform-origin: left; transition: transform .9s cubic-bezier(.6, 0, .2, 1) .25s;
}
.nf-js .nf-tag.nf-in::after { transform: scaleX(1); }

.nf-pill .elementor-heading-title {
	display: inline-flex; align-items: center; gap: 6px;
	padding: 3px 3px 3px 12px; border: 1.5px solid rgba(255, 255, 255, .7); border-radius: 20px;
}
.nf-pill .elementor-heading-title span { background: #0B7A6E; color: #fff; padding: 3px 10px; border-radius: 16px; }

/* ------------------------------------------------------ Boutons */
.nf-btn .elementor-button {
	background-image: linear-gradient(#12D6E0, #12D6E0);
	background-repeat: no-repeat; background-size: 0% 100%; background-position: left center;
	transition: background-size .45s cubic-bezier(.6, 0, .2, 1), color .3s, background-color .3s;
}
.nf-btn .elementor-button:hover, .nf-btn .elementor-button:focus-visible { background-size: 100% 100%; }
.nf-btn-alt .elementor-button { background-image: linear-gradient(#0B7A6E, #0B7A6E); }
.nf-btn .elementor-button-text::after {
	content: "\2192"; display: inline-block; width: 0; margin-left: 0; opacity: 0; overflow: hidden; vertical-align: bottom;
	transform: translateX(-8px); transition: width .35s, margin .35s, opacity .3s, transform .35s;
}
.nf-btn .elementor-button:hover .elementor-button-text::after { width: 1em; margin-left: .45em; opacity: 1; transform: none; }
body.nf-motion-off .nf-btn .elementor-button { background-image: none; }
body.nf-motion-off .nf-btn .elementor-button:hover { background-color: #12D6E0 !important; }
body.nf-motion-off .nf-btn .elementor-button-text::after { display: none; }

/* ------------------------------------------------------- Cartes */
.nf-card { transition: transform .45s cubic-bezier(.2, .7, .2, 1), box-shadow .45s, background-color .45s; }
.nf-card:hover { transform: translateY(-7px); box-shadow: 0 20px 44px rgba(11, 122, 110, .18) !important; }
.nf-card::after {
	content: ""; position: absolute; inset: 0; z-index: 3; pointer-events: none;
	border: 2px solid #12D6E0; border-radius: inherit;
	clip-path: inset(0 100% 100% 0); transition: clip-path .6s cubic-bezier(.6, 0, .2, 1);
}
.nf-card:hover::after { clip-path: inset(0 0 0 0); }
body.nf-motion-off .nf-card:hover { transform: none; }
body.nf-motion-off .nf-card::after { display: none; }

.nf-icon .elementor-icon,
.nf-iconhost .elementor-icon { transition: background-color .4s, color .4s, fill .4s, transform .55s cubic-bezier(.3, 1.5, .5, 1); }
.nf-card:hover .nf-icon .elementor-icon,
.nf-iconhost:hover .elementor-icon { background-color: #12D6E0 !important; color: #2D2257 !important; fill: #2D2257 !important; transform: rotate(-10deg) scale(1.06); }
.nf-card:hover .nf-icon .elementor-icon svg,
.nf-iconhost:hover .elementor-icon svg { fill: #2D2257 !important; }
.nf-icon-shadow .elementor-icon { box-shadow: 0 4px 14px rgba(0, 0, 0, .06); }

.nf-zoom { overflow: hidden; }
.nf-zoom img { transition: transform 1.1s cubic-bezier(.2, .7, .2, 1); }
.nf-card:hover .nf-zoom img { transform: scale(1.07); }

.nf-service-card { height: 100%; }
.nf-ratio-card img { width: 100%; aspect-ratio: 1.63; object-fit: cover; display: block; }
.nf-ratio-portrait img { width: 100%; aspect-ratio: .605; object-fit: cover; object-position: center !important; display: block; }
.nf-ratio-photo img { width: 100%; aspect-ratio: 1.2; object-fit: cover; display: block; }
.nf-ratio-wide img { width: 100%; aspect-ratio: 1.85; object-fit: cover; display: block; }

/* Liste à puces « anneau » */
.nf-ring-list .elementor-icon-list-item { align-items: center; }
.nf-ring-list .elementor-icon-list-icon {
	box-sizing: border-box; width: 12px !important; min-width: 12px; height: 12px; flex: none; padding: 0 !important; margin-inline-end: 10px;
	border: 3px solid #12D6E0; border-radius: 50%;
}
.nf-ring-list .elementor-icon-list-icon svg, .nf-ring-list .elementor-icon-list-icon i { display: none; }
.nf-ring-list.nf-ring-top .elementor-icon-list-item { align-items: flex-start; }
.nf-ring-list.nf-ring-top .elementor-icon-list-icon { margin-top: .42em; }

/* Compteurs : grand chiffre en filigrane + libellé superposé */
.nf-stat .elementor-counter { position: relative; height: 100px; display: flex; align-items: center; justify-content: center; text-align: center; }
.nf-stat .elementor-counter .elementor-counter-number-wrapper { position: absolute; top: 0; left: 0; right: 0; display: flex; justify-content: center; line-height: 1; }
.nf-stat .elementor-counter .elementor-counter-title { position: relative; z-index: 1; max-width: 240px; margin: 0 auto; flex: none; }

/* Photos type polaroïd */
.nf-polaroid {
	background: #fff; padding: 18px 18px 30px; border-radius: 6px;
	box-shadow: 0 10px 40px rgba(0, 0, 0, .12); transform: rotate(-4deg);
	transition: transform .6s cubic-bezier(.2, .7, .2, 1), box-shadow .6s;
}
.nf-polaroid:hover { transform: rotate(0) scale(1.03) !important; box-shadow: 0 26px 54px rgba(0, 0, 0, .2) !important; z-index: 2; }
.nf-polaroid img { display: block; width: 100%; }
.nf-polaroid-ceo { width: 100% !important; max-width: 440px !important; }
.nf-polaroid-ceo img { aspect-ratio: .86; object-fit: cover; object-position: center top !important; }

.nf-testi-photos { position: relative; aspect-ratio: 1.03; }
.nf-testi-photo { position: absolute !important; border-radius: 4px; }
.nf-testi-photo-1 { left: 0; top: 0; width: 66% !important; max-width: 66% !important; padding: 3.2% 3.2% 7%; transform: rotate(-4deg); box-shadow: 0 10px 30px rgba(0, 0, 0, .12); }
.nf-testi-photo-2 { right: 0; bottom: 0; width: 48% !important; max-width: 48% !important; padding: 3% 3% 6%; transform: rotate(4deg); box-shadow: 0 10px 30px rgba(0, 0, 0, .14); }
.nf-testi-photo img { aspect-ratio: 1.05; object-fit: cover; }
.nf-testi-photo-1 img { object-position: 30% center !important; }
.nf-testi-photo-2 img { object-position: center 30% !important; }

/* Avatars flottants (Rejoindre notre équipe) */
.nf-recruit > .e-con-inner { position: static; }
.nf-avatar img { border-radius: 50%; object-fit: cover !important; object-position: center 12% !important; filter: grayscale(1); border: 3px solid #fff; box-shadow: 0 6px 18px rgba(0, 0, 0, .18); }

/* Équipe */
.nf-team-photo img { border-radius: 50%; object-position: center 8% !important; background: #eef1f3; filter: grayscale(1); transition: filter .6s, transform .6s cubic-bezier(.2, .7, .2, 1); }
.nf-card:hover .nf-team-photo img { filter: none; transform: scale(1.04); }
.nf-team-name .elementor-heading-title a { text-decoration: underline; text-underline-offset: 4px; color: inherit; }

/* Témoignages */
.nf-initials { flex: none !important; width: auto !important; }
.nf-initials .elementor-heading-title {
	width: 58px; height: 58px; border-radius: 50%; background: #E3FAFB;
	display: flex; align-items: center; justify-content: center;
}
.nf-testi-author::after {
	content: ""; flex: none; align-self: flex-end; width: 46px; height: 37px; opacity: .15;
	background: var(--nf-deco-quote) center / contain no-repeat; transform: rotate(180deg);
}
.nf-testi-slider.is-ready { display: grid !important; }
.nf-testi-slider.is-ready > .nf-testi-slide { grid-area: 1 / 1; transition: opacity .6s ease, transform .6s ease, visibility .6s; }
.nf-testi-slider.is-ready > .nf-testi-slide:not(.is-active) { opacity: 0; visibility: hidden; transform: translateX(18px); }
body:not(.elementor-editor-active) .nf-testi-slider:not(.is-ready) > .nf-testi-slide:not(:first-child) { display: none; }
.nf-testi-dots { display: flex; gap: 8px; justify-content: center; margin-top: 20px; }
.nf-testi-dots .nf-dot { width: 10px; height: 10px; padding: 0; border: 0; border-radius: 50%; background: #C9D6D6; cursor: pointer; box-shadow: none; transition: background-color .3s, transform .3s; }
.nf-testi-dots .nf-dot:hover, .nf-testi-dots .nf-dot:focus { background: #12D6E0; }
.nf-testi-dots .nf-dot[aria-current="true"] { background: #0B7A6E; transform: scale(1.15); }

/* Bouton vidéo */
.nf-play .elementor-icon { position: relative; box-shadow: 0 0 0 14px rgba(255, 255, 255, .28); transition: box-shadow .3s, transform .3s; }
.nf-play .elementor-icon:hover { box-shadow: 0 0 0 22px rgba(255, 255, 255, .3); }
.nf-play .elementor-icon svg { transform: translateX(9%); }
.nf-play .elementor-icon::before,
.nf-play .elementor-icon::after {
	content: ""; position: absolute; inset: 0; border-radius: 50%; pointer-events: none;
	border: 2px solid rgba(255, 255, 255, .75); animation: nfPulse 2.4s cubic-bezier(.2, .6, .3, 1) infinite;
}
.nf-play .elementor-icon::after { animation-delay: 1.2s; }
.nf-play-line .elementor-icon {
	background-image: linear-gradient(#0B7A6E, #0B7A6E);
	background-repeat: no-repeat; background-size: .75em 3px; background-position: 50% calc(50% + .62em);
}
.nf-play-line .elementor-icon svg { transform: translate(9%, -14%); }
@keyframes nfPulse { 0% { transform: scale(1); opacity: .85; } 100% { transform: scale(1.75); opacity: 0; } }
body.nf-motion-off .nf-play .elementor-icon::before,
body.nf-motion-off .nf-play .elementor-icon::after { display: none; }

.nf-lightbox { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; padding: 24px; background: rgba(4, 30, 30, .9); }
.nf-lightbox__inner { position: relative; width: min(960px, 100%); aspect-ratio: 16 / 9; background: #000; }
.nf-lightbox__inner iframe, .nf-lightbox__inner video { display: block; width: 100%; height: 100%; border: 0; }
.nf-lightbox .nf-lightbox__close { position: absolute; top: -46px; right: 0; padding: 0; border: 0; background: none; color: #fff; font-size: 32px; line-height: 1; cursor: pointer; box-shadow: none; }

/* Contenus divers */
.nf-others .elementor-icon-list-item { padding: 11px 0 11px 30px !important; margin: 0 !important; border-bottom: 1px solid #E6E6E6; }
.nf-others .elementor-icon-list-text { text-decoration: underline; text-underline-offset: 3px; }
.nf-contact-line .elementor-icon-box-description a { color: inherit; word-break: break-all; }
.nf-underline a { text-decoration: underline; text-underline-offset: 3px; }
.nf-logo-box { width: 100px !important; height: 100px; flex: none; display: flex; align-items: center; justify-content: center; background: #fff; }
.nf-partners img { display: block; margin: 0 auto; width: 100%; max-width: 1200px; }
.nf-map iframe { height: clamp(360px, 48vw, 650px) !important; filter: grayscale(.1); }
.nf-map .elementor-widget-google_maps, .nf-map .elementor-custom-embed { height: 100%; }

.nf-quote-card { position: relative; z-index: 2; }


/* Bloc mis en exergue */
.nf-callout { padding: 18px 22px; background: #E3FAFB; border-left: 4px solid #12D6E0; border-radius: 0 10px 10px 0; }
.nf-callout-dark { background: rgba(255, 255, 255, .1); border-radius: 10px; border: 1px solid rgba(255, 255, 255, .18); border-left: 4px solid #12D6E0; }
.nf-accent .elementor-heading-title span { color: #2D2257; }
.nf-site .nf-balance .elementor-heading-title { text-wrap: balance; }
/* Bandeau des pages suivi d'une section vert clair : ce fond remonte jusqu'à la photo, sous la carte blanche
   (hauteurs = chevauchement de la carte sur la photo : 230 / 200 / 170 px) */
.e-con.nf-hero-light { background: linear-gradient(to bottom, transparent 230px, #E3FAFB 230px); }
@media (max-width: 1024px) { .e-con.nf-hero-light { background: linear-gradient(to bottom, transparent 200px, #E3FAFB 200px); } }
@media (max-width: 767px) { .e-con.nf-hero-light { background: linear-gradient(to bottom, transparent 170px, #E3FAFB 170px); } }

/* Vue d'ensemble (accueil) : chaque service mène à sa page ; survol discret */
.nf-overview-links .elementor-icon-list-text { transition: transform .25s ease, color .25s ease; }
.nf-overview-links .elementor-icon-list-item a:hover .elementor-icon-list-text,
.nf-overview-links .elementor-icon-list-item a:focus-visible .elementor-icon-list-text { transform: translateX(4px); }
body.nf-motion-off .nf-overview-links .elementor-icon-list-text { transform: none !important; }

/* Cartes de services cliquables (A propos, Nos services) */
a.nf-service-tile, a.nf-service-tile:hover, a.nf-service-tile:focus { color: inherit; text-decoration: none; }
.nf-more .elementor-heading-title::after { content: "\2192"; display: inline-block; margin-left: 6px; transition: transform .3s ease; }
.nf-service-tile:hover .nf-more .elementor-heading-title::after, .nf-service-tile:focus-visible .nf-more .elementor-heading-title::after { transform: translateX(4px); }

/* Logos « Ils nous font confiance » */
.nf-logo-tile img { display: block; width: 100%; height: auto; border: 1px solid #E3ECEC; border-radius: 10px; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; }
.nf-logo-tile img:hover { transform: translateY(-3px); border-color: #BDEFF2; box-shadow: 0 10px 24px rgba(11, 122, 110, .12); }
body.nf-motion-off .nf-logo-tile img:hover { transform: none; }

/* Crédit du pied de page : logo ClicMagic blanc et discret ; au survol, « Clic » reprend l'orange de la marque */
.nf-credit { --align-items: baseline !important; }
.nf-credit-logo { flex: none !important; line-height: 0; }
.elementor-widget-image.nf-credit-logo a { position: relative; display: block; transform: translateY(37.3%); } /* pose la ligne de base du logo (62,7 % de sa hauteur) sur celle du texte, quelle que soit sa taille */
.elementor-widget-image.nf-credit-logo img { display: block; max-width: none; height: auto; }
.nf-credit-logo a:where(:has(img[src*="nf-logo-clicmagic-blanc"]))::after { content: ""; position: absolute; inset: 0; background: var(--nf-credit-clic) center / 100% 100% no-repeat; opacity: 0; transition: opacity .35s ease; pointer-events: none; }
.nf-credit-logo a:hover::after, .nf-credit-logo a:focus-visible::after { opacity: 1; }
.nf-competence .elementor-widget-icon { flex: none; }

/* Étapes de la méthodologie */
.nf-step { position: relative; }
.nf-step-num { width: auto !important; }
.nf-step-num .elementor-heading-title {
	width: 64px; height: 64px; border-radius: 50%; background: #12D6E0; box-shadow: 0 0 0 8px rgba(18, 214, 224, .18);
	display: flex; align-items: center; justify-content: center;
}
@media (min-width: 1140px) {
	.e-con.nf-step:not(:last-child)::after {
		content: "\2192"; position: absolute; right: -36px; top: 18px;
		font: 700 26px/1 'Plus Jakarta Sans', sans-serif; color: #0B7A6E;
	}
}

/* Frise du parcours (page « Parcours Expert Dirigeant ») */
.nf-timeline { isolation: isolate; }
.e-con.nf-timeline::after { content: ""; position: absolute; left: 23px; top: 30px; bottom: 30px; width: 2px; background: #BDEFF2; z-index: -1; pointer-events: none; }
.nf-step-num { flex: none !important; }
.nf-step-sm .elementor-heading-title { width: 48px; height: 48px; box-shadow: 0 0 0 6px rgba(18, 214, 224, .18); }
.nf-bank-logo { flex: none !important; }
.nf-bank-logo img { display: block; height: auto; }
@media (min-width: 1025px) {
	.e-con.nf-sticky-col { position: sticky !important; top: 120px; }
}
@media (max-width: 480px) {
	.nf-bank-logo img { width: 72px !important; }
	.nf-timeline-item { --gap: 12px !important; column-gap: 12px !important; }
}

/* Bouton « haut » du thème masqué : le site a déjà le sien (.nf-totop). */
.nf-site #ast-scroll-top, .nf-site #scroll-top, .nf-site .generate-back-to-top, .nf-site #kt-scroll-up, .nf-site #kt-scroll-up-reader { display: none !important; }

/* Superpositions exactes de la maquette */
.e-con.nf-ov-cta::before { --nf-edge: max(0px, 100% - 1274px); background-image: linear-gradient(90deg, rgba(11, 64, 62, .97) 0, rgba(11, 64, 62, .97) calc(var(--nf-edge) + 40px), rgba(11, 64, 62, .88) calc(var(--nf-edge) + 274px), rgba(11, 64, 62, .3) calc(var(--nf-edge) + 670px), rgba(11, 64, 62, .1) 100%) !important; }
/* Photo affichée à sa taille réelle (jamais agrandie) : alignée à droite sur grand écran. */
.e-con.nf-bg-fit { background-size: auto 100% !important; background-position: 70% center !important; }
@media (min-width: 1275px) { .e-con.nf-bg-fit { background-position: right center !important; } }
.e-con.nf-ov-video::before { background-image: linear-gradient(90deg, #fff 0%, rgba(255, 255, 255, .55) 22%, rgba(255, 255, 255, 0) 50%) !important; }
.e-con.nf-ov-video-about::before { background-image: linear-gradient(90deg, #fff 0%, rgba(255, 255, 255, .5) 18%, rgba(255, 255, 255, 0) 45%), linear-gradient(0deg, rgba(255, 255, 255, .8) 0%, rgba(255, 255, 255, 0) 18%) !important; }

/* Parallaxe (calque créé par le script) */
.nf-parallax { isolation: isolate; }
.nf-parallax.has-layer { background-image: none !important; }
.nf-parallax-layer { position: absolute; inset: 0; z-index: -1; pointer-events: none; background-repeat: no-repeat; background-size: cover; will-change: transform; transform: scale(1.06); }

/* ----------------------------------------------- Motifs décoratifs */
[class*="nf-deco-"] { isolation: isolate; }
.e-con[class*="nf-deco-"]::before,
.e-con[class*="nf-deco-"]::after { pointer-events: none; z-index: -1; background-repeat: no-repeat; }
.e-con.nf-deco-map-left::before,
.e-con.nf-deco-map-about::before,
.e-con.nf-deco-dots-valeur::before,
.e-con.nf-deco-dots-team::before {
	content: "" !important; display: block; position: absolute; border: 0; mix-blend-mode: normal; border-radius: 0;
}
.e-con.nf-deco-map-left::before { left: -70px; top: 30px; width: 640px; height: 340px; background: var(--nf-deco-map) center / contain no-repeat; opacity: .07; }
.e-con.nf-deco-dots-tr::after { content: ""; position: absolute; right: -78px; top: -6px; width: 60px; height: 60px; background: var(--nf-deco-dots) 0 0 / 60px 60px; filter: grayscale(1); opacity: .35; }
.e-con.nf-deco-dots-br::after { content: ""; position: absolute; right: -78px; bottom: -66px; width: 80px; height: 80px; background: var(--nf-deco-dots) 0 0 / 80px 80px; opacity: .55; }
.e-con.nf-deco-arc::after { content: ""; position: absolute; left: 36%; top: -40px; width: 900px; height: 900px; background: var(--nf-deco-arc) center / contain no-repeat; opacity: .1; }
.e-con.nf-deco-dots-why::after { content: ""; position: absolute; right: -20px; top: -10px; width: 56px; height: 56px; background: var(--nf-deco-dots) 0 0 / 56px 56px; filter: grayscale(1); opacity: .3; }
.e-con.nf-deco-quote::after { content: ""; position: absolute; right: 0; top: 0; width: 150px; height: 120px; background: var(--nf-deco-quote) center / contain no-repeat; opacity: .15; }
.e-con.nf-deco-quote-high::after { top: -50px; }
.e-con.nf-quote-end { padding-bottom: 50px !important; }
.e-con.nf-quote-end::after { content: ""; position: absolute; right: 30px; bottom: 10px; width: 46px; height: 37px; background: var(--nf-deco-quote) center / contain no-repeat; transform: rotate(180deg); opacity: .15; pointer-events: none; }
.e-con.nf-deco-map-center::after { content: ""; position: absolute; left: 50%; top: 40px; width: 1300px; max-width: 94%; height: 700px; transform: translateX(-50%); background: var(--nf-deco-map) center / contain no-repeat; opacity: .12; }
.e-con.nf-deco-dots-footer::after { content: ""; position: absolute; left: 0; top: 110px; width: 70px; height: 120px; background: var(--nf-deco-dots) 0 0 / 70px 70px repeat; opacity: .35; }
.e-con.nf-deco-map-about::before { left: -60px; top: 280px; width: 640px; height: 360px; background: var(--nf-deco-map) center / contain no-repeat; opacity: .07; }
.e-con.nf-deco-dots-about::after { content: ""; position: absolute; right: -70px; top: 0; width: 74px; height: 74px; background: var(--nf-deco-dots) 0 0 / 74px 74px; opacity: .45; }
.e-con.nf-deco-dots-valeur::before { left: 0; top: 0; width: 100px; height: 60px; background: var(--nf-deco-dots) 0 0 / 60px 60px repeat; opacity: .35; }
.e-con.nf-deco-circles::after { content: ""; position: absolute; left: 50%; top: 95px; width: 560px; height: 560px; transform: translateX(-50%); background: var(--nf-deco-circles) center / contain no-repeat; opacity: .95; }
.e-con.nf-deco-dots-team::before { left: 3%; top: 75px; width: 110px; height: 110px; background: var(--nf-deco-dots) 0 0 / 55px 55px repeat; opacity: .5; }
.e-con.nf-deco-dots-card::after { content: ""; position: absolute; right: 20px; top: 20px; width: 66px; height: 66px; background: var(--nf-deco-dots) 0 0 / 66px 66px; opacity: .22; }
.e-con.nf-deco-arc-team::after { content: ""; position: absolute; right: -240px; top: 380px; width: 620px; height: 620px; background: var(--nf-deco-arc) center / contain no-repeat; opacity: .1; }
@media (max-width: 767px) {
	.e-con.nf-deco-dots-tr::after, .e-con.nf-deco-dots-br::after, .e-con.nf-deco-dots-about::after, .e-con.nf-deco-dots-why::after { display: none; }
}

/* --------------------------------------------- Apparition au défilement */
.nf-js .nf-reveal { opacity: 0; transform: translateY(26px); transition: opacity .7s cubic-bezier(.2, .7, .2, 1), transform .7s cubic-bezier(.2, .7, .2, 1); }
.nf-js .nf-reveal.nf-in { opacity: 1; transform: none; }

/* --------------------------------------------------------- Formulaires */
.nf-form { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 0; }
.nf-form .nf-full { grid-column: 1 / -1; }
.nf-form .nf-input {
	box-sizing: border-box; width: 100%; min-width: 0; height: 48px; margin: 0; padding: 0 16px;
	border: 0; border-radius: 8px; background: #fff; color: #1c1c1c; box-shadow: none; outline: none;
	font-family: 'Inter', sans-serif; font-size: 15px; line-height: 1.4; transition: box-shadow .25s;
}
.nf-form textarea.nf-input { height: 96px; min-height: 96px; padding: 12px 16px; line-height: 1.2; resize: vertical; }
.nf-form .nf-input::placeholder { color: #9A9A9A; opacity: 1; }
.nf-form .nf-input:focus { border-color: transparent; box-shadow: inset 0 -3px 0 #2D2257; }
.nf-form .nf-input.is-invalid { box-shadow: inset 0 -3px 0 #C62828; }
.nf-form--contact .nf-input { border: 1px solid #DCE5E4; }
.nf-form--newsletter { gap: 12px; padding: 0 8px; }

.nf-form .nf-submit {
	box-sizing: border-box; height: 48px; margin: 0; padding: 0 20px; border: 0; border-radius: 8px;
	background-color: #0B7A6E; color: #fff; box-shadow: none; cursor: pointer;
	font-family: 'Plus Jakarta Sans', sans-serif; font-size: 15px; font-weight: 600; letter-spacing: .01em; text-transform: none;
	background-image: linear-gradient(#12D6E0, #12D6E0); background-repeat: no-repeat; background-size: 0% 100%; background-position: left center;
	transition: background-size .45s cubic-bezier(.6, 0, .2, 1), color .3s, opacity .3s;
}
.nf-form .nf-submit:hover, .nf-form .nf-submit:focus { background-color: #0B7A6E; background-size: 100% 100%; color: #2D2257; }
.nf-form--newsletter .nf-submit { background-color: #12D6E0; color: #2D2257; background-image: linear-gradient(#0B7A6E, #0B7A6E); }
.nf-form--newsletter .nf-submit:hover, .nf-form--newsletter .nf-submit:focus { background-color: #12D6E0; color: #fff; }
body.nf-motion-off .nf-form .nf-submit { background-image: none; }
body.nf-motion-off .nf-form .nf-submit:hover { background-color: #12D6E0; }
body.nf-motion-off .nf-form--newsletter .nf-submit:hover { background-color: #0B7A6E; }
.nf-form.is-sending .nf-submit { opacity: .7; pointer-events: none; }
.nf-form .nf-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.nf-form .nf-form__msg { margin: 0; font-family: 'Inter', sans-serif; font-size: 14px; line-height: 1.4; color: #0B403C; }
.nf-form .nf-form__msg:empty { display: none; }
.nf-form .nf-form__msg.is-error { color: #A11A1A; font-weight: 500; }
.nf-form--newsletter .nf-form__msg { color: #CFDEDD; }
.nf-form--newsletter .nf-form__msg.is-error { color: #FFB4B4; }

.nf-select { position: relative; }
.nf-form .nf-select__btn {
	box-sizing: border-box; width: 100%; height: 48px; margin: 0; padding: 0 16px; border: 0; border-radius: 8px;
	display: flex; align-items: center; justify-content: space-between; gap: 10px; text-align: left;
	background: #fff; color: #444; box-shadow: none; cursor: pointer;
	font-family: 'Inter', sans-serif; font-size: 15px; font-weight: 400; text-transform: none;
}
.nf-form .nf-select__btn:hover, .nf-form .nf-select__btn:focus { background: #fff; color: #444; box-shadow: inset 0 -3px 0 #2D2257; }
.nf-select__btn .nf-ico { width: 12px; height: 12px; color: #0B7A6E; transition: transform .25s; }
.nf-select__btn[aria-expanded="true"] .nf-ico { transform: rotate(180deg); }
.nf-select__list {
	position: absolute; left: 0; right: 0; top: calc(100% + 6px); z-index: 20; display: flex; flex-direction: column;
	margin: 0; padding: 6px; list-style: none; background: #fff; border-radius: 8px; box-shadow: 0 14px 34px rgba(11, 60, 58, .18);
}
.nf-select__list[hidden] { display: none; }
.nf-select__list li { margin: 0; padding: 11px 12px; border-radius: 6px; cursor: pointer; font-family: 'Inter', sans-serif; font-size: 15px; color: #1c1c1c; }
.nf-select__list li[aria-selected="true"] { background: #E3FAFB; color: #0B7A6E; }
.nf-select__list li:hover, .nf-select__list li:focus { background: #0B7A6E; color: #fff; outline: none; }
@media (max-width: 480px) {
	.nf-form--devis, .nf-form--contact { grid-template-columns: 1fr; }
}

/* ------------------------------------------------------ Retour en haut */
.nf-totop {
	position: fixed; right: 34px; bottom: 34px; z-index: 80; width: 38px; height: 38px; padding: 0;
	display: flex; align-items: center; justify-content: center; border: 0; border-radius: 4px;
	background: #0B7A6E; color: #fff; cursor: pointer; box-shadow: none;
	opacity: 0; visibility: hidden; transform: translateY(10px); transition: opacity .3s, transform .3s, visibility .3s, background-color .3s;
}
.nf-totop.is-visible { opacity: 1; visibility: visible; transform: none; }
.nf-totop:hover, .nf-totop:focus { background: #12D6E0; color: #2D2257; }
.nf-totop svg { width: 14px; height: 14px; }
@media (max-width: 767px) { .nf-totop { right: 16px; bottom: 16px; } }

/* ------------------------------------------------------ Accessibilité */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.nf-site *, .nf-site *::before, .nf-site *::after { animation: none !important; transition: none !important; }
	.nf-btn .elementor-button { background-image: none; }
	.nf-btn .elementor-button:hover { background-color: #12D6E0 !important; }
	.nf-btn .elementor-button-text::after { display: none; }
}
