/* Lavibel — finitions qui ne passent pas par les réglages d'Elementor.
   Tout ce qui est couleur, taille de texte, marges et espacements se règle dans Elementor. */

@font-face {
	font-family: "Nunito";
	src: url("../fonts/nunito.woff2") format("woff2");
	font-weight: 200 1000;
	font-style: normal;
	font-display: swap;
}

html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; }
:target, [id] { scroll-margin-top: 96px; }

/* Titres : pas de césure au milieu d'un mot, lignes équilibrées */
.elementor-heading-title { hyphens: none; text-wrap: balance; }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }

/* En-tête collant */
#masthead { position: sticky; top: 0; z-index: 50; }
.admin-bar #masthead { top: 32px; }
@media (max-width: 782px) { .admin-bar #masthead { top: 0; } }
.lv-logo-nom a, .lv-logo-nom .elementor-heading-title a { color: inherit; }
.lv-entete .lv-menu .hfe-nav-menu__toggle { margin-left: auto; }
.lv-entete .lv-menu .hfe-nav-menu-icon { padding: 12px; border-radius: 12px; }
@media (max-width: 1024px) {
	.lv-entete .lv-menu nav.hfe-dropdown { box-shadow: 0 12px 24px rgba(31, 42, 82, .08); }
	.lv-entete .lv-menu .hfe-dropdown li.menu-item a { padding-left: 24px !important; }
}

/* Boutons en pilule, sans retour à la ligne */
.elementor-button { white-space: nowrap; transition: background-color .2s, color .2s, border-color .2s, transform .2s; }
.lv-bouton .elementor-button { min-height: 48px; display: inline-flex; align-items: center; }
.lv-bouton .elementor-button:hover { transform: translateY(-1px); }
.lv-appel-entete .elementor-button { min-height: 50px; }
@media (max-width: 767px) {
	.lv-boutons > .elementor-widget-button { flex: 1 1 100%; }
	.lv-boutons .elementor-button { width: 100%; justify-content: center; }
}

/* Photo d'accueil */
.lv-photo-hero img { width: 100%; aspect-ratio: 11 / 8; object-fit: cover; display: block; }

/* Textes */
.lv-gras { font-weight: 700; }
.lv-gras p { line-height: 1.4; }
.lv-discret { opacity: .82; }
.lv-tel a { color: inherit; text-decoration: none; }

/* Services : 4 colonnes, 2 sur tablette, 1 sur mobile */
.lv-grille-services > .e-con { flex: 1 1 0; min-width: 0; }
@media (max-width: 1024px) { .lv-grille-services > .e-con { flex: 1 1 calc(50% - 9px); } }
@media (max-width: 767px)  { .lv-grille-services > .e-con { flex: 1 1 100%; } }
.lv-service .elementor-icon-box-icon { display: flex; }
.lv-service .elementor-icon svg { width: 30px; height: 30px; fill: none; }
.lv-service .elementor-icon-box-title { margin-top: 0; }

/* Pastilles des communes */
.lv-pastilles { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.lv-pastilles li {
	border: 2px solid var(--e-global-color-primary, #3A4D96); border-radius: 999px; padding: 6px 16px;
	font-size: 15px; font-weight: 800; line-height: 1.5; background: #fff;
}

/* Liste à puces des pages internes */
.lv-liste { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.lv-liste li {
	background: #fff; border-radius: 18px; padding: 16px 22px 16px 52px; position: relative; font-weight: 700;
}
.lv-liste li::before {
	content: ""; position: absolute; left: 22px; top: 50%; width: 14px; height: 14px; margin-top: -7px;
	border-radius: 50%; border: 3px solid var(--e-global-color-primary, #3A4D96);
}

/* Pages légales */
.lv-texte-legal a { color: var(--e-global-color-primary, #3A4D96); }
.lv-a-completer { background: #FFF1C2; color: #6B4E00; padding: 1px 6px; border-radius: 6px; font-weight: 700; }

/* Pied de page */
.lv-pied-txt, .lv-pied-txt a { color: #C9D0E6 !important; text-decoration: none; }
.lv-pied-txt a:hover { color: #fff !important; }
.lv-pied-note { color: #8F98B8 !important; }
.lv-pied-note p { color: #8F98B8; }

/* Formulaire « Me faire rappeler » (Contact Form 7) */
.lv-formulaire .wpcf7 p { margin: 0 0 16px; }
.lv-formulaire label { display: block; color: #fff; font-size: 15px; font-weight: 800; }
.lv-formulaire input[type="text"], .lv-formulaire input[type="tel"] {
	display: block; width: 100%; height: 50px; margin-top: 6px; padding: 0 16px;
	border: 0; border-radius: 12px; font: inherit; font-weight: 400; color: #2A2F45; background: #fff;
}
.lv-formulaire input:focus { outline: 3px solid #9AA8D6; outline-offset: 1px; }
.lv-formulaire .wpcf7-acceptance .wpcf7-list-item { margin: 0; }
.lv-formulaire .wpcf7-acceptance label { display: flex; gap: 10px; align-items: flex-start; font-weight: 600; font-size: 14px; line-height: 1.45; }
.lv-formulaire .wpcf7-acceptance input { width: 18px; height: 18px; margin: 1px 0 0; accent-color: #fff; flex: none; }
.lv-formulaire input.wpcf7-submit {
	background: #fff !important; color: var(--e-global-color-primary, #3A4D96) !important;
	width: 100%; min-height: 54px; border: 0; border-radius: 999px; cursor: pointer;
	background: #fff; color: var(--e-global-color-primary, #3A4D96); font: inherit; font-size: 16px; font-weight: 800;
	transition: background-color .2s;
}
.lv-formulaire input.wpcf7-submit:hover { background: #EDF0F6 !important; }
.lv-formulaire .wpcf7-submit:disabled { opacity: .6; cursor: default; }
.lv-formulaire .wpcf7-spinner { display: block; margin: 10px auto 0; }
.lv-formulaire .wpcf7-not-valid-tip { color: #FFD9D4; font-size: 14px; font-weight: 700; margin-top: 4px; }
.lv-formulaire .wpcf7 form .wpcf7-response-output { margin: 16px 0 0; border-radius: 12px; color: #fff; border-color: rgba(255,255,255,.5); }

/* Le menu prend la place restante sans pousser la page en largeur */
.lv-entete .lv-menu { flex: 1 1 0; min-width: 0; }
@media (max-width: 1024px) {
	.lv-entete .lv-menu { flex: 0 0 auto; }
	.lv-entete .lv-menu nav.hfe-dropdown { position: absolute; left: 0 !important; right: 0; width: auto !important; top: 100%; }
	.lv-entete .lv-menu .hfe-nav-menu__toggle { margin-left: 0; }
}
.lv-entete { position: relative; }
@media (max-width: 1024px) {
	.lv-entete .lv-menu, .lv-entete .lv-menu .elementor-widget-container, .lv-entete .lv-menu .hfe-nav-menu { position: static !important; }
	.lv-entete .lv-menu nav.hfe-dropdown { background: #fff; border-top: 1px solid #E6E9F1; }
}
