/* LFC Humain : styles globaux repris du site Lovable (src/styles.css) */
:root {
	--lfc-radius: 12px;
	--lfc-bg: #ffffff;
	--lfc-fg: #11101a;
	--lfc-primary: #7e70ec;
	--lfc-primary-hover: #7163e0;
	--lfc-primary-fg: #fcfcfc;
	--lfc-primary-soft: #ebebff;
	--lfc-secondary: #f0f0ff;
	--lfc-muted: #f4f4fc;
	--lfc-muted-fg: #62626f;
	--lfc-accent-fg: #2b235d;
	--lfc-border: #e4e4eb;
	--lfc-footer: #1a1108;
	--lfc-emerald: #047857;
	--lfc-amber: #b45309;
	--lfc-sky: #0369a1;
	--lfc-rose: #be123c;
	--lfc-font-display: 'Catamaran', 'Inter', system-ui, sans-serif;
	--lfc-font-sans: 'Manrope', 'Inter', system-ui, sans-serif;
	--lfc-shadow-sm: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);
	--lfc-shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);
	--lfc-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);
	--lfc-shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);
}

html { scroll-behavior: smooth; }
body {
	background-color: var(--lfc-bg);
	color: var(--lfc-fg);
	font-family: var(--lfc-font-sans);
	-webkit-font-smoothing: antialiased;
}
h1, h2, h3, .font-display {
	font-family: var(--lfc-font-display);
	font-weight: 900;
	letter-spacing: -0.01em;
	line-height: 1.05;
	color: var(--lfc-fg);
}
a { color: var(--lfc-primary); }

/* Boutons */
.lfc-btn .elementor-button,
a.lfc-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
	border-radius: 6px; padding: .75rem 1.25rem;
	font-family: var(--lfc-font-sans); font-weight: 600; font-size: .875rem;
	background: var(--lfc-primary); color: var(--lfc-primary-fg);
	transition: background-color .2s ease, color .2s ease;
	text-decoration: none;
}
.lfc-btn .elementor-button:hover, a.lfc-btn:hover { background: var(--lfc-primary-hover); color: var(--lfc-primary-fg); }
.lfc-btn--soft .elementor-button, a.lfc-btn--soft { background: var(--lfc-primary-soft); color: var(--lfc-primary); }
.lfc-btn--soft .elementor-button:hover, a.lfc-btn--soft:hover { background: #dcdcfb; color: var(--lfc-primary); }

/* Cartes */
.lfc-card {
	background: #fff; border: 1px solid var(--lfc-border); border-radius: 16px;
	box-shadow: var(--lfc-shadow-sm); transition: box-shadow .3s ease, transform .3s ease;
}
.lfc-card:hover { box-shadow: var(--lfc-shadow-xl); transform: translateY(-4px); }
.lfc-card img { transition: transform .7s ease; }
.lfc-card:hover img { transform: scale(1.05); }

/* Déroulants (accordéon / bascule Elementor) */
.lfc-accordion .elementor-accordion-item,
.lfc-accordion .elementor-toggle-item {
	border: 1px solid var(--lfc-border) !important; border-radius: 16px; margin-bottom: .75rem; overflow: hidden; background: #fff;
	transition: border-color .2s ease, box-shadow .2s ease;
}
.lfc-accordion .elementor-tab-title.elementor-active { color: var(--lfc-fg); }
.lfc-accordion .elementor-accordion-item:has(.elementor-active),
.lfc-accordion .elementor-toggle-item:has(.elementor-active) {
	border-color: rgb(126 112 236 / .4) !important; box-shadow: var(--lfc-shadow-sm);
}

/* Contenu riche (articles, pages légales) */
.prose-lfc { color: var(--lfc-fg); font-size: 1.0625rem; line-height: 1.75; }
.prose-lfc h1, .prose-lfc h2, .prose-lfc h3, .prose-lfc h4 {
	font-family: var(--lfc-font-display); font-weight: 900; letter-spacing: -0.01em;
	margin-top: 2rem; margin-bottom: 1rem; line-height: 1.15;
}
.prose-lfc h1 { font-size: 2.25rem; }
.prose-lfc h2 { font-size: 1.875rem; }
.prose-lfc h3 { font-size: 1.5rem; }
.prose-lfc h4 { font-size: 1.25rem; }
.prose-lfc p { margin: 1rem 0; }
.prose-lfc a { color: var(--lfc-primary); text-decoration: underline; text-underline-offset: 3px; }
.prose-lfc a:hover { opacity: .8; }
.prose-lfc strong { font-weight: 700; }
.prose-lfc ul, .prose-lfc ol { padding-left: 1.5rem; margin: 1rem 0; }
.prose-lfc ul { list-style: disc; }
.prose-lfc ol { list-style: decimal; }
.prose-lfc li { margin: .5rem 0; }
.prose-lfc img { max-width: 100%; height: auto; border-radius: 12px; margin: 1.5rem 0; }
.prose-lfc blockquote {
	border-left: 4px solid var(--lfc-primary); padding: .5rem 1.25rem; font-style: italic;
	color: var(--lfc-muted-fg); margin: 1.5rem 0; background: var(--lfc-muted); border-radius: 0 8px 8px 0;
}
.prose-lfc hr { border: 0; border-top: 1px solid var(--lfc-border); margin: 2rem 0; }
.prose-lfc table { width: 100%; border-collapse: collapse; margin: 1.5rem 0; }
.prose-lfc th, .prose-lfc td { border: 1px solid var(--lfc-border); padding: .75rem; text-align: left; }
.prose-lfc th { background: var(--lfc-muted); font-weight: 700; }
.prose-lfc iframe { max-width: 100%; border-radius: 12px; }

/* Bouton latéral « Parlons-en » */
.lfc-side-cta {
	position: fixed; right: 0; top: 50%; transform: translateY(-50%); z-index: 40;
	display: flex; align-items: center; gap: .5rem;
	background: var(--lfc-primary); color: var(--lfc-primary-fg);
	box-shadow: var(--lfc-shadow-lg); border-radius: 12px 0 0 12px;
	padding: .625rem; text-decoration: none; transition: background-color .2s ease;
}
.lfc-side-cta:hover, .lfc-side-cta:focus { background: var(--lfc-primary-hover); color: var(--lfc-primary-fg); }
.lfc-side-cta__label { display: none; }
@media (min-width: 768px) {
	.lfc-side-cta { flex-direction: column; padding: 1rem .75rem; }
	.lfc-side-cta svg { width: 16px; height: 16px; }
	.lfc-side-cta__label {
		display: inline; font-size: .875rem; font-weight: 600; letter-spacing: .025em;
		writing-mode: vertical-rl; transform: rotate(180deg);
	}
}

/* Barre mobile */
.lfc-mobile-bar {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 40;
	display: grid; grid-template-columns: repeat(3, 1fr);
	border-top: 1px solid var(--lfc-border); background: rgb(255 255 255 / .95);
	-webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
	box-shadow: 0 -4px 16px rgba(0,0,0,.08);
}
.lfc-mobile-bar__item {
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
	padding: .625rem 0; font-size: 11px; font-weight: 600; color: var(--lfc-fg);
	border-right: 1px solid var(--lfc-border); text-decoration: none;
}
.lfc-mobile-bar__title { display: flex; align-items: center; gap: 4px; }
.lfc-mobile-bar__title svg { color: var(--lfc-primary); }
.lfc-mobile-bar__num { font-size: 10px; font-weight: 400; color: var(--lfc-muted-fg); }
.lfc-mobile-bar__item--mail {
	flex-direction: row; gap: 6px; font-size: 12px; border-right: 0;
	background: var(--lfc-primary); color: var(--lfc-primary-fg);
}
.lfc-mobile-bar__item--mail:hover { background: var(--lfc-primary-hover); color: var(--lfc-primary-fg); }
@media (max-width: 767px) { body { padding-bottom: 64px; } }
@media (min-width: 768px) { .lfc-mobile-bar { display: none; } }

/* ------------------------------------------------------------------
 * Mise en page commune (sections Elementor)
 * ------------------------------------------------------------------ */
.lfc-soft { background-color: rgb(235 235 255 / .5); }
.lfc-eyebrow .elementor-heading-title { font-family: var(--lfc-font-sans); font-size: .875rem; font-weight: 600; color: var(--lfc-primary); }
.lfc-h2 .elementor-heading-title { font-size: 2.25rem; }
.lfc-muted, .lfc-muted p { color: rgb(17 16 26 / .7); }
.lfc-bar { border-left: 4px solid var(--lfc-primary); padding-left: 1.25rem; }
.lfc-link .elementor-button {
	background: transparent; padding: 0; color: var(--lfc-fg); font-weight: 600; font-size: .875rem;
	font-family: var(--lfc-font-sans);
}
.lfc-link .elementor-button:hover { background: transparent; color: var(--lfc-primary); }
.lfc-link--primary .elementor-button { color: var(--lfc-primary); }
.lfc-link .elementor-button-icon svg { width: 16px; height: 16px; }

/* Hero */
.lfc-hero h1.elementor-heading-title { font-size: 2.25rem; line-height: 1.05; }
@media (min-width: 1024px) { .lfc-hero h1.elementor-heading-title { font-size: 3.75rem; } }
.lfc-hero-card {
	background: #fff; border: 1px solid var(--lfc-border); border-radius: 16px; padding: 1.25rem; max-width: 28rem;
	box-shadow: 0 8px 30px -12px rgba(0,0,0,.12);
}
.lfc-hero-card__head { display: flex; align-items: center; gap: .75rem; margin-bottom: 1rem; }
.lfc-hero-card__icon { width: 44px; height: 44px; border-radius: 12px; background: var(--lfc-primary); color: #fff; display: flex; align-items: center; justify-content: center; }
.lfc-hero-card__name { font-weight: 700; }
.lfc-hero-card__sub { font-size: .875rem; color: var(--lfc-muted-fg); }
.lfc-hero-card__bar { position: relative; height: 4px; border-radius: 999px; background: rgb(126 112 236 / .15); margin-bottom: 1rem; overflow: hidden; }
.lfc-hero-card__bar::after { content: ""; position: absolute; inset: 0 auto 0 0; width: 33%; border-radius: 999px; background: var(--lfc-primary); }
.lfc-hero-card p { font-size: .875rem; line-height: 1.625; color: rgb(17 16 26 / .8); margin: 0; }

/* Cartes des pôles (accueil) */
.lfc-pole .elementor-icon-box-icon .elementor-icon {
	width: 56px; height: 56px; border-radius: 8px; border: 1px solid; display: inline-flex; align-items: center; justify-content: center;
	font-size: 24px; box-shadow: var(--lfc-shadow-sm);
}
.lfc-pole .elementor-icon-box-title { font-family: var(--lfc-font-display); font-weight: 900; font-size: 1.5rem; line-height: 1.15; margin-bottom: 1rem; }
.lfc-pole .elementor-icon-box-description { font-size: .875rem; line-height: 1.625; color: rgb(17 16 26 / .7); }
.lfc-pole--emerald .elementor-icon { color: var(--lfc-emerald); background: #ecfdf5; border-color: #a7f3d0; }
.lfc-pole--amber .elementor-icon { color: var(--lfc-amber); background: #fffbeb; border-color: #fde68a; }
.lfc-pole--sky .elementor-icon { color: var(--lfc-sky); background: #f0f9ff; border-color: #bae6fd; }
.lfc-pole--rose .elementor-icon { color: var(--lfc-rose); background: #fff1f2; border-color: #fecdd3; }
.lfc-pole--emerald .lfc-pole__more .elementor-button { color: var(--lfc-emerald); }
.lfc-pole--amber .lfc-pole__more .elementor-button { color: var(--lfc-amber); }
.lfc-pole--sky .lfc-pole__more .elementor-button { color: var(--lfc-sky); }
.lfc-pole--rose .lfc-pole__more .elementor-button { color: var(--lfc-rose); }
.lfc-pole:hover .elementor-button-icon { transform: translateX(4px); }
.lfc-pole .elementor-button-icon { transition: transform .2s ease; }

/* Chiffres */
.lfc-stat { border-left: 2px solid var(--lfc-primary); padding-left: 1.25rem; }
.lfc-stat .elementor-counter-number-wrapper, .lfc-stat .lfc-stat__value .elementor-heading-title {
	font-family: var(--lfc-font-display); font-weight: 900; font-size: 3rem; line-height: 1; margin-bottom: .5rem; color: var(--lfc-fg);
}
@media (min-width: 1024px) { .lfc-stat .lfc-stat__value .elementor-heading-title { font-size: 3.75rem; } }
.lfc-stat .lfc-stat__label { font-size: .875rem; color: rgb(17 16 26 / .7); }

/* Carte des agences */
.lfc-agences__grid { display: grid; gap: 2.5rem; align-items: stretch; }
@media (min-width: 1024px) { .lfc-agences__grid { grid-template-columns: 1.4fr 1fr; } .lfc-agences__map { margin-left: -2rem; } }
@media (min-width: 1280px) { .lfc-agences__map { margin-left: -4rem; } }
.lfc-agences__map { display: flex; align-items: center; justify-content: center; min-height: 420px; }
@media (min-width: 1024px) { .lfc-agences__map { min-height: 560px; } }
.lfc-agences__map svg { width: 100%; height: 100%; max-height: 640px; }
.lfc-agences__dot { cursor: pointer; outline: none; }
.lfc-agences__halo { fill: hsl(285 60% 55%); opacity: 0; }
.lfc-agences__pt { fill: hsl(285 45% 45%); stroke: #fff; stroke-width: 1; transition: all .2s ease; }
.lfc-agences__dot text { display: none; font: 600 11px ui-sans-serif, system-ui; fill: var(--lfc-fg); paint-order: stroke; stroke: #fff; stroke-width: 3; }
.lfc-agences__dot.is-active .lfc-agences__halo { opacity: .18; }
.lfc-agences__dot.is-active .lfc-agences__pt { r: 7; fill: hsl(285 65% 50%); stroke-width: 2; }
.lfc-agences__dot.is-active text { display: block; }
.lfc-agences__intro { border-left: 4px solid var(--lfc-primary); padding-left: 1.25rem; margin-bottom: 1.5rem; }
.lfc-agences__intro h2 { font-size: 2.25rem; margin: 0 0 .75rem; }
.lfc-agences__intro p { color: rgb(17 16 26 / .7); line-height: 1.625; margin: 0; }
.lfc-agences__slider { position: relative; }
.lfc-agences__card {
	display: block; background: #fff; border: 1px solid var(--lfc-border); border-radius: 16px; overflow: hidden;
	box-shadow: var(--lfc-shadow-lg); transition: box-shadow .2s ease; color: var(--lfc-fg); text-decoration: none;
}
.lfc-agences__card[hidden] { display: none; }
.lfc-agences__card:hover { box-shadow: var(--lfc-shadow-xl); color: var(--lfc-fg); }
.lfc-agences__img { position: relative; display: block; aspect-ratio: 16 / 7; overflow: hidden; background: linear-gradient(135deg, var(--lfc-primary-soft), rgb(126 112 236 / .2)); }
.lfc-agences__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.lfc-agences__img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,.4), transparent); }
.lfc-agences__region { position: absolute; top: .75rem; right: .75rem; z-index: 1; background: rgb(255 255 255 / .9); font-size: .75rem; font-weight: 700; letter-spacing: .05em; padding: .25rem .75rem; border-radius: 4px; }
.lfc-agences__body { display: block; padding: 1.5rem; }
.lfc-agences__name { display: block; font-family: var(--lfc-font-display); font-weight: 900; font-size: 1.5rem; margin-bottom: 1rem; }
.lfc-agences__line { display: flex; align-items: flex-start; gap: .625rem; font-size: .875rem; color: rgb(17 16 26 / .8); margin-bottom: .625rem; }
.lfc-agences__line svg { color: var(--lfc-primary); flex-shrink: 0; margin-top: 2px; }
.lfc-agences__more { display: inline-flex; align-items: center; gap: .5rem; margin-top: 1.25rem; font-size: .875rem; font-weight: 600; color: var(--lfc-primary); }
.lfc-agences__nav {
	position: absolute; top: 50%; z-index: 2; display: none; width: 40px; height: 40px; border-radius: 999px; padding: 0;
	align-items: center; justify-content: center; background: #fff; color: var(--lfc-fg); border: 1px solid var(--lfc-border); box-shadow: var(--lfc-shadow-md); cursor: pointer;
}
.lfc-agences__nav:hover { background: var(--lfc-primary); color: #fff; }
.lfc-agences__nav--prev { left: 0; transform: translate(-50%, -50%); }
.lfc-agences__nav--next { right: 0; transform: translate(50%, -50%); }
@media (min-width: 768px) { .lfc-agences__nav { display: flex; } }
.lfc-agences__dots { display: flex; justify-content: center; gap: .5rem; margin-top: 1.25rem; }
.lfc-agences__dots button { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 999px; background: var(--lfc-border); cursor: pointer; transition: all .2s ease; }
.lfc-agences__dots button.is-active { width: 24px; background: var(--lfc-primary); }
.lfc-agences__pills { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; padding: 2rem 0 0; margin: 3.5rem 0 0; border-top: 1px solid var(--lfc-border); }
.lfc-agences__pills a {
	display: inline-flex; align-items: center; gap: .375rem; border: 1px solid var(--lfc-border); border-radius: 999px; background: #fff;
	padding: .5rem 1rem; font-size: .875rem; font-weight: 500; color: var(--lfc-fg); text-decoration: none; transition: all .2s ease;
}
.lfc-agences__pills a svg { color: var(--lfc-primary); }
.lfc-agences__pills a:hover { border-color: rgb(126 112 236 / .5); color: var(--lfc-primary); }

/* Carrousels (articles, témoignages) */
.lfc-carousel__track {
	display: flex !important; flex-wrap: nowrap !important; gap: 24px; overflow-x: auto; scroll-snap-type: x mandatory;
	scrollbar-width: none; -ms-overflow-style: none;
}
.lfc-carousel__track::-webkit-scrollbar { display: none; }
.lfc-carousel__track > * { scroll-snap-align: start; flex: 0 0 100% !important; max-width: 100%; }
@media (min-width: 768px) { .lfc-carousel__track > * { flex-basis: calc(50% - 12px) !important; max-width: calc(50% - 12px); } }
@media (min-width: 1024px) { .lfc-posts .lfc-carousel__track > * { flex-basis: calc(25% - 18px) !important; max-width: calc(25% - 18px); } }
.lfc-carousel__nav { display: flex; justify-content: center; gap: .5rem; margin-top: 2rem; }
.lfc-carousel--end .lfc-carousel__nav { justify-content: flex-end; margin-top: 1.5rem; }
.lfc-carousel__nav button {
	width: 32px; height: 32px; padding: 0; border-radius: 999px; border: 1px solid var(--lfc-border); background: #fff; color: var(--lfc-fg);
	display: inline-flex; align-items: center; justify-content: center; cursor: pointer;
}
.lfc-carousel__nav button:hover { background: var(--lfc-secondary); color: var(--lfc-fg); }
.lfc-posts { max-width: 80rem; margin: 0 auto; }
.lfc-posts__item { display: block; color: var(--lfc-fg); text-decoration: none; }
.lfc-posts__img { position: relative; display: block; aspect-ratio: 16 / 10; border-radius: 16px; overflow: hidden; background: var(--lfc-muted); margin-bottom: 1rem; }
.lfc-posts__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.lfc-posts__item:hover .lfc-posts__img img { transform: scale(1.05); }
.lfc-posts__ph { display: block; width: 100%; height: 100%; background: linear-gradient(135deg, var(--lfc-primary-soft), rgb(126 112 236 / .2)); }
.lfc-posts__date { position: absolute; top: .75rem; right: .75rem; background: var(--lfc-primary); color: #fff; font-size: .75rem; font-weight: 600; padding: .375rem .75rem; border-radius: 999px; box-shadow: var(--lfc-shadow-md); }
.lfc-posts__title { display: block; font-family: var(--lfc-font-display); font-weight: 900; font-size: 1rem; line-height: 1.375; transition: color .2s ease; }
.lfc-posts__item:hover .lfc-posts__title { color: var(--lfc-primary); }

/* Témoignages */
.lfc-avis { background: #fff; border: 1px solid var(--lfc-border); border-radius: 16px; padding: 1.5rem; box-shadow: var(--lfc-shadow-sm); }
.lfc-avis__stars { color: #fbbf24; letter-spacing: 2px; font-size: 1rem; }
.lfc-avis__name .elementor-heading-title { font-family: var(--lfc-font-sans); font-weight: 700; font-size: 1rem; }
.lfc-avis__text { font-size: .875rem; line-height: 1.625; color: rgb(17 16 26 / .7); flex: 1; }
.lfc-avis__foot { border-top: 1px solid var(--lfc-border); padding-top: 1rem; }

/* FAQ et texte SEO */
.lfc-faq .elementor-tab-title, .lfc-faq .elementor-toggle-title { font-family: var(--lfc-font-sans); font-weight: 700; }
.lfc-seo { font-size: .9375rem; line-height: 1.75; color: rgb(17 16 26 / .8); }
.lfc-seo h2 { font-size: 1.875rem; margin: 2rem 0 1rem; }
.lfc-seo h3 { font-size: 1.375rem; margin: 1.5rem 0 .75rem; }
.lfc-seo ul { padding-left: 1.5rem; list-style: disc; }

/* En-tête et pied de page */
.lfc-header { background: rgb(255 255 255 / .95); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); border-bottom: 1px solid var(--lfc-border); }
.lfc-site-header { position: sticky; top: 0; z-index: 50; }
.admin-bar .lfc-site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .lfc-site-header { top: 0; } }
.lfc-header .elementor-nav-menu a, .lfc-header .menu a { font-size: .875rem; font-weight: 500; color: rgb(17 16 26 / .8); }
.lfc-footer { background: var(--lfc-footer); color: #fff; margin-top: 6rem; }
.lfc-footer h4, .lfc-footer .elementor-heading-title { color: #fff; font-size: 1.125rem; }
.lfc-footer, .lfc-footer p, .lfc-footer li, .lfc-footer a { color: rgb(255 255 255 / .7); font-size: .875rem; }
.lfc-footer a:hover { color: var(--lfc-primary); }
.lfc-footer .elementor-icon-list-icon svg { fill: var(--lfc-primary); }
.lfc-footer__bottom, .lfc-footer__bottom a, .lfc-footer__bottom p { font-size: .75rem; color: rgb(255 255 255 / .6); }
.lfc-footer__bottom { border-top: 1px solid rgb(255 255 255 / .1); }

/* ------------------------------------------------------------------
 * Corrections du kit Elementor (v1.2)
 * ------------------------------------------------------------------ */
body .elementor-widget-heading .elementor-heading-title,
body .elementor-widget-icon-box .elementor-icon-box-title,
body .elementor-widget-icon-box .elementor-icon-box-title a { color: var(--lfc-fg); }
body .lfc-eyebrow .elementor-heading-title { color: var(--lfc-primary); }
body .lfc-footer .elementor-heading-title { color: #fff; }
body .lfc-btn .elementor-button { background: var(--lfc-primary); color: var(--lfc-primary-fg); border-radius: 6px; padding: .875rem 1.5rem; font-size: .875rem; font-weight: 600; }
body .lfc-btn--pill .elementor-button { border-radius: 999px; }
body .lfc-btn--soft .elementor-button { background: var(--lfc-primary-soft); color: var(--lfc-primary); padding: .625rem 1rem; }
body .lfc-link .elementor-button,
body .lfc-link .elementor-button:hover,
body .lfc-link .elementor-button:focus { background: transparent !important; padding: 0 !important; box-shadow: none; border: 0; }
body .lfc-link .elementor-button { color: var(--lfc-fg); }
body .lfc-link .elementor-button:hover { color: var(--lfc-primary); }
body .lfc-link--primary .elementor-button, body .lfc-link--primary .elementor-button:hover { color: var(--lfc-primary); }
body .lfc-pole--emerald .lfc-pole__more .elementor-button { color: var(--lfc-emerald); }
body .lfc-pole--amber .lfc-pole__more .elementor-button { color: var(--lfc-amber); }
body .lfc-pole--sky .lfc-pole__more .elementor-button { color: var(--lfc-sky); }
body .lfc-pole--rose .lfc-pole__more .elementor-button { color: var(--lfc-rose); }
body .lfc-pole .elementor-icon-box-wrapper { margin-bottom: 1.25rem; }
body .lfc-pole .elementor-icon-box-icon { margin-bottom: 1.25rem; }
body .lfc-agences__nav, body .lfc-agences__dots button, body .lfc-carousel__nav button, body .lfc-burger {
	font-family: var(--lfc-font-sans); text-transform: none; letter-spacing: 0; line-height: 1;
}
body .lfc-agences__nav { background: #fff; color: var(--lfc-fg); padding: 0; border: 1px solid var(--lfc-border); border-radius: 999px; }
body .lfc-agences__nav:hover, body .lfc-agences__nav:focus { background: var(--lfc-primary); color: #fff; }
body .lfc-agences__dots button { background: var(--lfc-border); border: 0; padding: 0; border-radius: 999px; }
body .lfc-agences__dots button.is-active { background: var(--lfc-primary); }
body .lfc-carousel__nav button { background: #fff; color: var(--lfc-fg); border: 1px solid var(--lfc-border); padding: 0; border-radius: 999px; }
body .lfc-carousel__nav button:hover, body .lfc-carousel__nav button:focus { background: var(--lfc-secondary); color: var(--lfc-fg); }
body .lfc-side-cta, body .lfc-side-cta:hover { color: #fff; }
body .lfc-side-cta svg { stroke: #fff; }
.lfc-agences__name { color: var(--lfc-fg); }
.lfc-seo-toc { counter-reset: toc; list-style: none; padding: 0; margin: 0; }
.lfc-seo-toc li { counter-increment: toc; display: flex; gap: .75rem; font-size: .875rem; line-height: 1.375; margin-bottom: 1rem; color: rgb(17 16 26 / .7); }
.lfc-seo-toc li::before { content: counter(toc, decimal-leading-zero); color: var(--lfc-muted-fg); font-variant-numeric: tabular-nums; }
.lfc-seo .elementor-tab-title { padding: 1.25rem 1.5rem; font-size: 1.125rem; }
.lfc-seo .elementor-tab-title a { color: var(--lfc-fg); }
.lfc-seo .elementor-tab-content { padding: 0 1.5rem 1.5rem; border-top: 0 !important; }
.lfc-avis__foot { display: flex; align-items: center; gap: .75rem; font-size: .875rem; }
.lfc-avis__foot small { font-size: .75rem; color: var(--lfc-muted-fg); }
.lfc-avis__badge { width: 36px; height: 36px; border-radius: 4px; display: inline-block; flex-shrink: 0; }
.lfc-avis__badge--rose { background: #f43f5e; }
.lfc-avis__badge--blue { background: #3b82f6; }
.lfc-avis { height: 100%; }

/* ------------------------------------------------------------------
 * En-tête : navigation
 * ------------------------------------------------------------------ */
.lfc-header .elementor-widget-image img { height: 72px; width: auto; }
.lfc-nav__list { display: flex; align-items: center; gap: .25rem; list-style: none; margin: 0; padding: 0; }
.lfc-nav__list > li { position: relative; }
.lfc-nav__list a { display: inline-flex; align-items: center; gap: .25rem; padding: .5rem .75rem; border-radius: 6px; font-size: .875rem; font-weight: 500; color: rgb(17 16 26 / .8); text-decoration: none; transition: color .2s ease; }
.lfc-nav__list a:hover, .lfc-nav__list .current-menu-item > a, .lfc-nav__list .current-menu-ancestor > a { color: var(--lfc-primary); }
.lfc-nav__list .menu-item-has-children > a::after { content: ""; width: 14px; height: 14px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat; }
.lfc-nav__list .sub-menu {
	position: absolute; left: 0; top: 100%; z-index: 60; min-width: 18rem; list-style: none; margin: 0; padding: .5rem;
	background: #fff; border: 1px solid var(--lfc-border); border-radius: 12px; box-shadow: var(--lfc-shadow-lg);
	opacity: 0; visibility: hidden; transform: translateY(.5rem); transition: all .15s ease;
}
.lfc-nav__list li:hover > .sub-menu, .lfc-nav__list li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: translateY(.25rem); }
.lfc-nav__list .sub-menu a { display: block; padding: .5rem .75rem; color: var(--lfc-fg); }
.lfc-nav__list .sub-menu a:hover { background: var(--lfc-primary-soft); color: var(--lfc-accent-fg); }
.lfc-burger { display: none; background: transparent !important; border: 0 !important; padding: .5rem !important; color: var(--lfc-fg) !important; border-radius: 6px; cursor: pointer; }
.lfc-burger__close { display: none; }
.lfc-burger[aria-expanded="true"] .lfc-burger__open { display: none; }
.lfc-burger[aria-expanded="true"] .lfc-burger__close { display: block; }
.lfc-mnav { position: absolute; left: 0; right: 0; top: 100%; background: #fff; border-bottom: 1px solid var(--lfc-border); padding: 0 1rem 1rem; box-shadow: var(--lfc-shadow-md); }
.lfc-mnav[hidden] { display: none; }
.lfc-mnav__list { list-style: none; margin: 0; padding: 0; }
.lfc-mnav__list a { display: block; padding: .5rem; font-size: 1rem; font-weight: 600; color: var(--lfc-fg); text-decoration: none; border-radius: 6px; }
.lfc-mnav__list a:hover { background: var(--lfc-primary-soft); }
.lfc-mnav__list .sub-menu { list-style: none; margin: 0 0 0 .5rem; padding: 0 0 0 .75rem; border-left: 2px solid var(--lfc-border); }
.lfc-mnav__list .sub-menu a { font-weight: 500; font-size: .9375rem; }
.lfc-mnav__cv { display: flex; justify-content: center; margin-top: .75rem; }
@media (max-width: 1024px) {
	.lfc-nav { display: none; }
	.lfc-burger { display: inline-flex; }
}
.lfc-header .e-con-inner { position: relative; }
.lfc-phone .elementor-button { color: rgb(17 16 26 / .8) !important; font-weight: 600 !important; }
.lfc-phone .elementor-button-icon { color: var(--lfc-primary); }
.lfc-phone .elementor-button-icon svg { fill: var(--lfc-primary); }

/* Pied de page */
.lfc-footer .elementor-icon-list-item a, .lfc-footer .elementor-icon-list-text { color: rgb(255 255 255 / .7); font-size: .875rem; transition: color .2s ease; }
.lfc-footer .elementor-icon-list-item a:hover .elementor-icon-list-text { color: var(--lfc-primary); }
.lfc-footer .elementor-icon-list-icon i, .lfc-footer .elementor-icon-list-icon svg { color: var(--lfc-primary); fill: var(--lfc-primary); }
.lfc-footer .elementor-social-icon { background: rgb(255 255 255 / .1) !important; border-radius: 999px; }
.lfc-footer .elementor-social-icon:hover { background: var(--lfc-primary) !important; }
.lfc-footer .elementor-widget-image img { height: 80px; width: auto; }
.lfc-footer__bottom .elementor-icon-list-item a .elementor-icon-list-text { font-size: .75rem; color: rgb(255 255 255 / .6); }

/* En-tête et pied : tailles des éléments (v1.2.1) */
.lfc-header > .e-con-inner { flex-wrap: nowrap; min-height: 80px; }
.lfc-header .elementor-widget-image, .lfc-footer .elementor-widget-image { width: auto !important; max-width: none !important; flex: 0 0 auto; }
.lfc-header .elementor-widget-image img { height: 72px !important; width: auto !important; max-width: none; }
.lfc-footer .elementor-widget-image img { height: 80px !important; width: auto !important; max-width: none; }
.lfc-header__menu { flex: 1 1 auto; display: flex; justify-content: center; }
.lfc-header > .e-con-inner > .e-con { flex: 0 0 auto; width: auto; }
.lfc-nav__list a { white-space: nowrap; }
body .lfc-phone .elementor-button { background: transparent !important; padding: 0 !important; box-shadow: none !important; }

/* Gabarits PHP (v1.3) */
.lfc-pole-nav { top: 80px; }
.admin-bar .lfc-pole-nav { top: 112px; }
@media (max-width: 782px) { .admin-bar .lfc-pole-nav { top: 80px; } }
html { scroll-behavior: smooth; }
.lfc-tw .scroll-mt-32 { scroll-margin-top: 8rem; }

/* Pages Elementor bâties avec les classes du Lovable (v1.3) */
html body .lfc-tw .elementor-widget:not(:last-child), html body .lfc-tw .elementor-element { margin-block-end: 0; }
html body .lfc-tw.e-con, html body .lfc-tw .e-con { --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px; --gap: 0px; --row-gap: 0px; --column-gap: 0px; }
html body .lfc-tw .elementor-heading-title { font-size: inherit; line-height: inherit; color: inherit; letter-spacing: inherit; }
html body .lfc-tw .elementor-widget-heading .elementor-heading-title:is(div,p,span) { font-family: inherit; font-weight: inherit; }
html body .lfc-tw .elementor-widget-text-editor { color: inherit; }
html body .lfc-tw .lfc-cover .elementor-widget-container, html body .lfc-tw .lfc-cover img { width: 100%; height: 100%; }
html body .lfc-tw .lfc-cover img { object-fit: cover; border-radius: inherit; display: block; }
.lfc-elbtn .elementor-button { display: inline-flex !important; align-items: center; gap: .5rem; border-radius: 999px !important; background: var(--lfc-acc, var(--primary)) !important; color: #fff !important; padding: .875rem 1.5rem !important; font-size: .875rem !important; font-weight: 600 !important; line-height: 1.25rem !important; border: 0 !important; transition: opacity .2s; }
.lfc-elbtn .elementor-button:hover { opacity: .9; }
.lfc-elbtn .elementor-button-content-wrapper { gap: .5rem; align-items: center; }
.lfc-elbtn .elementor-button-icon svg { width: 1rem; height: 1rem; fill: currentColor; }
.lfc-elbtn--outline .elementor-button { background: transparent !important; color: var(--lfc-acc-text) !important; border: 2px solid var(--lfc-acc) !important; padding: .625rem 1.25rem !important; transition: background-color .2s, color .2s; }
.lfc-elbtn--outline .elementor-button:hover { background: var(--lfc-acc) !important; color: #fff !important; opacity: 1; }
.lfc-acc-rose { --lfc-acc: oklch(58.6% 0.253 17.585); --lfc-acc-text: oklch(51.4% 0.222 16.935); }
.lfc-acc-emerald { --lfc-acc: oklch(59.6% 0.145 163.225); --lfc-acc-text: oklch(50.8% 0.118 165.612); }
.lfc-acc-amber { --lfc-acc: oklch(66.6% 0.179 58.318); --lfc-acc-text: oklch(55.5% 0.163 48.998); }
.lfc-acc-sky { --lfc-acc: oklch(58.8% 0.158 241.966); --lfc-acc-text: oklch(50% 0.134 242.749); }
.lfc-acc-primary { --lfc-acc: var(--primary); --lfc-acc-text: var(--primary); }
/* FAQ (accordéon Elementor) */
.lfc-faq .elementor-accordion { display: flex; flex-direction: column; gap: 1rem; }
.lfc-faq .elementor-accordion-item { border: 1px solid var(--border) !important; border-radius: 1rem; background: #fff; padding: 0 1.5rem; }
.lfc-faq .elementor-tab-title { display: flex !important; flex-direction: row-reverse; justify-content: space-between; align-items: center; gap: 1rem; padding: 1.25rem 0 !important; border: 0 !important; font-family: var(--font-display, 'Catamaran'), sans-serif !important; font-size: 1.125rem !important; font-weight: 500 !important; color: var(--foreground) !important; line-height: 1.4; }
.lfc-faq .elementor-tab-title a { color: inherit !important; }
.lfc-faq .elementor-accordion-icon { color: var(--muted-foreground) !important; font-size: .875rem; }
.lfc-faq .elementor-tab-content { border: 0 !important; padding: 0 0 1.25rem !important; color: oklch(0.18 0.02 285 / .8); font-size: .875rem; line-height: 1.625; }
/* Listes à coches (formules d'abonnement) */
.lfc-checks ul { list-style: none !important; padding: 0 !important; margin: 0 !important; display: flex; flex-direction: column; gap: .75rem; }
.lfc-checks--compact ul { gap: .5rem; }
.lfc-checks li { position: relative; padding-left: 1.75rem !important; font-size: .875rem; line-height: 1.625; }
.lfc-checks--compact li { font-weight: 600; }
.lfc-checks li::before { content: ""; position: absolute; left: 0; top: .2rem; width: 1rem; height: 1rem; background: var(--primary); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / contain no-repeat; }
.lfc-checks--hl li::before { background: var(--primary-foreground); }
.lfc-plan-btn .elementor-button { display: flex !important; width: 100%; justify-content: center; align-items: center; gap: .5rem; border-radius: .625rem !important; padding: .75rem 1.5rem !important; font-size: .875rem !important; font-weight: 600 !important; background: var(--primary-soft) !important; color: var(--primary) !important; border: 0 !important; }
.lfc-plan-btn .elementor-button:hover { background: oklch(0.95 0.04 285 / .7) !important; }
.lfc-plan-btn--hl .elementor-button { background: #fff !important; color: var(--foreground) !important; }
.lfc-plan-btn--hl .elementor-button:hover { background: rgb(255 255 255 / .9) !important; }
.lfc-plan-btn .elementor-button-icon svg, .lfc-elbtn .elementor-button-icon svg { width: 1rem; height: 1rem; fill: currentColor; }
.lfc-logo-14 img { height: 3.5rem; width: auto; }
html body .lfc-tw .lfc-deco, html body .lfc-tw .lfc-deco > .elementor-widget-container { position: static !important; height: 0; }

/* Hello Elementor force white-space:nowrap sur les boutons : on rétablit le comportement du Lovable */
html body .lfc-tw :where(button) { white-space: normal; }

/* Bouton [button] hérité de l'ancien site (fiches : « Télécharger la fiche ») */
html body a.lfc-btn-dl { display: inline-flex; align-items: center; gap: .5rem; margin-top: 1rem; padding: .7rem 1.4rem; border-radius: .5rem; background: var(--primary) !important; color: #fff !important; font-weight: 600; font-size: .95rem; text-decoration: none !important; line-height: 1.2; }
html body a.lfc-btn-dl:hover { opacity: .9; color: #fff !important; }
