/* Page d’accueil : hero, orientations, produits, avis, marques et articles. */

/* Anciennes cartes et libellés encore utilisés par les widgets produits. */
.bloc-home li.product {
	border: 1px solid #F2F2F2;
	background-color: #FAFAFA;
}

.titre-laboutique {
	font-size: 12px;
	letter-spacing: 2px;
	text-transform: uppercase;
	font-weight: 400;
	line-height: 12px;
}

/* Bandeau défilant des marques partenaires. */
.carrousel-partners {
	display: flex;
	overflow: hidden;
	width: 100%;
	position: relative;
	align-items: center;
	box-sizing: border-box;
}

.carrousel-partners a {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	padding: 32px 0;
}

.carrousel-partners img {
	height: 80px;
	width: auto;
	max-width: 200px;
	object-fit: contain;
	display: block;
	margin: 0 48px;
	transition: transform 0.3s ease;

}

.carrousel-partners img:hover {
	transform: scale(1.1);

}

@keyframes scroll-carousel {
	0% {
		transform: translateX(0);
	}

	100% {
		transform: translateX(-100%);
	}
}

.carrousel-partners {
	animation: scroll-carousel 80s linear infinite;
}

.carrousel-partners:hover {
	animation-play-state: paused;
}

.carrousel-wrapper {
	display: flex;
	flex-wrap: nowrap;
	width: 100%;
}

.carrousel-partners {
	display: flex;
	animation: scroll-carousel 80s linear infinite;
	width: max-content;
}

.lbnv-product-selection .product.type-product.has-fourchette .price {
	display: none !important;
}

/* Sélections de produits : meilleures ventes et sélection du moment. */
.home-bestsellers-title {
	margin: 0 !important;
	padding: 42px 24px 24px !important;
	background: #fff;
}

.home-bestsellers-title .elementor-heading-title,
.home-bestsellers-title.elementor-widget-heading .elementor-heading-title {
	color: #174f46 !important;
	font-family: "League Spartan", sans-serif;
	font-size: clamp(28px, 2.5vw, 38px) !important;
	font-weight: 900 !important;
	line-height: 1.2 !important;
	letter-spacing: -0.015em;
	text-align: center;
	text-transform: none !important;
}

.lbnv-product-selection {
	width: 100%;
	padding: 0 32px 56px;
	background: #fff;
}

.lbnv-product-selection .shopengine-archive-products:not(.shopengine-archive-products--view-list) > ul.products {
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	max-width: 1440px;
	margin: 0 auto !important;
}

.lbnv-product-selection li.product .button,
.lbnv-product-selection li.product .ast-on-card-button {
	display: none !important;
}

.lbnv-product-selection .ast-shop-product-out-of-stock {
	display: none !important;
}

.lbnv-product-selection .ast-woo-product-category {
	display: none !important;
}

.lbnv-product-selection li.product .shopengine-product-description-footer .button {
	display: inline-flex !important;
}

.home .lbnv-product-selection .shopengine-archive-products li.product .shopengine-product-description-footer a.button {
	border-radius: 5px !important;
}

/* Les deux sélections : annuler les espaces Astra comme sur mobile. */
@media (min-width: 768px) {
	.home .lbnv-product-selection .shopengine-archive-products li.product {
		min-height: 0 !important;
	}
	.home .lbnv-product-selection .astra-shop-summary-wrap {
		flex: 0 0 auto;
		padding: 0 !important;
	}
	.home .lbnv-product-selection .shopengine-archive-products .woocommerce-loop-product__link {
		flex: 0 0 auto;
	}
	.home .lbnv-product-selection .shopengine-archive-products .woocommerce-loop-product__title {
		min-height: 0;
		padding: 0 !important;
		margin: 0 14px 8px !important;
	}
	.home .lbnv-product-selection .shopengine-archive-products .price {
		padding: 0 !important;
		margin: 0 14px 12px !important;
	}
	.home .lbnv-product-selection .shopengine-archive-products .shopengine-product-description-footer {
		margin-top: auto;
		min-height: 0;
		padding: 0 14px 14px !important;
	}
}

.carrousel-partners-wrapper {
  overflow: hidden;
  width: 100%;
  position: relative;
}

/* Hero Smart Slider alternant texte et photographie. */
#hero-alterne {
	--hero-background: #f8f5ed;
	--hero-text: #174f46;
	--hero-accent: #147356;
	--hero-border: #d8d2c5;
	--hero-panel-background: rgba(255, 255, 255, 0.88);
}

#hero-alterne .n2-ss-slider,
#hero-alterne .n2-ss-slider-1,
#hero-alterne .n2-ss-slider-2,
#hero-alterne .n2-ss-slider-3,
#hero-alterne .n2-ss-slide-background {
	background: var(--hero-background) !important;
}

#hero-alterne .n2-ss-slide-background-image {
	top: 0 !important;
	bottom: 0 !important;
	left: auto !important;
	right: 0 !important;
	z-index: 8 !important;
	/* The image continues beneath the translucent text panel. */
	width: 100% !important;
	height: 100% !important;
	overflow: hidden;
}

#hero-alterne .n2-ss-slide-background:nth-of-type(even) .n2-ss-slide-background-image {
	left: 0 !important;
	right: auto !important;
}

#hero-alterne .n2-ss-slide-background-image picture,
#hero-alterne .n2-ss-slide-background-image img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
}

#hero-alterne .n2-ss-slide:nth-of-type(odd) .n2-ss-layer-row-inner {
	flex-direction: row-reverse !important;
}

#hero-alterne .n2-ss-slide .selector > .n2-ss-layer-col {
	justify-content: center !important;
	align-items: flex-start !important;
	padding: clamp(28px, 3vw, 60px) !important;
	background: var(--hero-panel-background) !important;
}

#hero-alterne .n2-ss-slide .n2-ss-layer-row-inner > .selector {
	flex: 0 0 33.333333% !important;
	width: 33.333333% !important;
	max-width: 33.333333% !important;
}

#hero-alterne .n2-ss-slide .n2-ss-layer-row-inner > [data-sstype="col"]:not(.selector) {
	flex: 0 0 66.666667% !important;
	width: 66.666667% !important;
	max-width: 66.666667% !important;
}

#hero-alterne .n2-ss-slide .n2-ss-layer-row-inner > [data-sstype="col"]:not(.selector) > .n2-ss-layer-col {
	background: transparent !important;
}

#hero-alterne .n2-ss-slide .n2-ss-text p,
#hero-alterne .n2-ss-slide .n2-ss-text div[class*="-paragraph"] {
	color: var(--hero-text) !important;
	font-family: "League Spartan", sans-serif !important;
	text-align: left !important;
}

#hero-alterne .n2-ss-slide .n2-ss-text p > span:first-child,
#hero-alterne .n2-ss-slide .n2-ss-text div[class*="-paragraph"] > span:first-child {
	display: block;
	margin-bottom: 12px;
	color: var(--hero-accent) !important;
	font-size: 13px !important;
	font-weight: 600;
	line-height: 1.35 !important;
}

#hero-alterne .n2-ss-slide .titre-mobile {
	display: block;
	margin: 0 0 18px;
	font-family: "League Spartan", sans-serif;
	color: var(--hero-text) !important;
	font-size: clamp(42px, 4vw, 66px) !important;
	font-weight: 600;
	line-height: 1.04 !important;
	letter-spacing: -0.025em;
}

#hero-alterne .n2-ss-slide .texte-mobile {
	display: block;
	max-width: 620px;
	color: #43534f !important;
	font-size: clamp(17px, 1.35vw, 21px) !important;
	line-height: 1.5 !important;
}

#hero-alterne .n2-ss-button-container a {
	padding: 13px 24px !important;
	border: 1px solid var(--hero-accent) !important;
	border-radius: 3px !important;
	background: var(--hero-accent) !important;
	box-shadow: none !important;
	color: #fff !important;
	font-family: "League Spartan", sans-serif !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
}

#hero-alterne .n2-ss-slide .n2-ss-button-container,
#hero-alterne .n2-ss-slide .n2-ss-layer--auto:has(.n2-ss-button-container) {
	align-self: flex-start !important;
	margin-right: auto !important;
	margin-left: 0 !important;
}

#hero-alterne .n2-ss-button-container a:hover,
#hero-alterne .n2-ss-button-container a:focus-visible {
	background: var(--hero-text) !important;
	border-color: var(--hero-text) !important;
}

/* Bandeau des quatre services. */
.home-info-strip {
	position: relative;
	z-index: 2;
	margin: 0 !important;
	border-top: 1px solid #ebe7de;
	border-bottom: 1px solid #ebe7de;
	box-shadow: 0 7px 18px rgba(23, 79, 70, 0.06);
}

.home-info-strip__item {
	justify-content: center !important;
	min-height: 62px;
	padding: 0 28px !important;
}

.home-info-strip__item + .home-info-strip__item {
	border-left: 1px solid #e7e2d8;
}

.home-info-strip__icon {
	flex: 0 0 auto !important;
	width: auto !important;
	margin: 0 !important;
}

.home-info-strip__icon .elementor-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	color: #174f46;
}

.home-info-strip__copy {
	flex: 0 1 auto !important;
	width: auto !important;
}

.home-info-strip__title,
.home-info-strip__description {
	margin: 0 !important;
}

.home-info-strip__title .elementor-heading-title {
	color: #203d37;
	font-family: "League Spartan", sans-serif;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: 0;
	text-transform: none;
}

.home-info-strip__description,
.home-info-strip__description p {
	color: #59635f;
	font-family: "League Spartan", sans-serif;
	font-size: 12px;
	font-weight: 400;
	line-height: 1.35;
}

.home-info-strip__description p {
	margin: 0 !important;
}

/* Trois cartes d’avis, avec le carrousel natif Trustindex. */
.home-reviews-section { background:#fbfaf6; }
.home-reviews-widget,.home-reviews-widget > .ti-widget { width:100%; }
.home-reviews-widget .ti-widget-container { display:block !important; width:100%; margin:0 auto !important; }
.home-reviews-widget .ti-reviews-container { width:100% !important; min-width:0; }
.home-reviews-widget .ti-reviews-container-wrapper { margin:0 -8px !important; padding:6px 0 !important; }
.home-reviews-widget .ti-review-item { flex:0 0 33.333333% !important; width:33.333333% !important; max-width:33.333333% !important; padding:0 8px !important; }
.home-reviews-widget .ti-review-item > .ti-inner { height:100% !important; min-height:190px; padding:20px !important; border:1px solid #e5e0d7 !important; border-radius:9px !important; background:#fff !important; box-shadow:0 2px 8px rgba(39,92,83,.04) !important; }
.home-reviews-widget .ti-footer,.home-reviews-widget .ti-controls-line { display:none !important; }
.home-reviews-widget .ti-review-header { display:flex !important; flex-direction:row !important; align-items:center !important; gap:14px; margin-bottom:0 !important; }
.home-reviews-widget .home-review-avatar { display:flex; flex:0 0 52px; width:52px; height:52px; align-items:center; justify-content:center; border-radius:50%; background:#b59a80; color:#fff; font:400 28px/1 "League Spartan",sans-serif; }
.home-reviews-widget .ti-profile-details { min-width:0; text-align:left !important; }
.home-reviews-widget .ti-name { color:#275c53 !important; text-align:left !important; font-weight:500 !important; }
.home-reviews-widget .ti-date { text-align:left !important; color:#777 !important; }
.home-reviews-widget .ti-stars { display:block !important; text-align:left !important; margin:0 0 10px 66px !important; }
.home-reviews-widget .ti-review-content,.home-reviews-widget .ti-read-more { text-align:left !important; color:#565656 !important; }
.home-reviews-widget .ti-controls { z-index:2; }

/* Trois derniers articles du blog via le widget Post Grid Elementor. */
.home-blog-section {
	padding: 40px 32px;
	background: #fbfaf6;
}

.home-blog-grid {
	width: 100%;
	max-width: 1440px;
	margin: 0 auto;
}

.home-blog-grid .eael-post-grid {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
	margin: 0 !important;
}

.home-blog-grid .eael-grid-post {
	float: none !important;
	width: auto !important;
	padding: 0 !important;
}

.home-blog-grid .eael-grid-post-holder {
	height: 100%;
	overflow: hidden;
	border: 1px solid #e5e0d7 !important;
	border-radius: 9px;
	background: #fff !important;
	box-shadow: 0 4px 16px rgba(23, 79, 70, 0.04);
}

.home-blog-grid .eael-grid-post-holder-inner {
	display: grid !important;
	grid-template-columns: minmax(0, 0.42fr) minmax(0, 0.58fr);
}

.home-blog-grid .eael-entry-wrapper {
	display: flex;
	flex-direction: column;
	order: 2;
	min-width: 0;
	padding: 16px !important;
}

.home-blog-grid .eael-entry-media {
	order: 1;
	align-self: stretch;
	position: relative;
	min-height: 190px;
	overflow: hidden;
}

.home-blog-grid .eael-entry-thumbnail {
	position: absolute;
	inset: 0;
}

.home-blog-grid .eael-entry-thumbnail,
.home-blog-grid .eael-entry-thumbnail a,
.home-blog-grid .eael-entry-thumbnail img {
	display: block;
	width: 100%;
	height: 100%;
}

.home-blog-grid .eael-entry-thumbnail img {
	min-height: 0;
	object-fit: cover;
	object-position: center;
	transition: transform 350ms ease;
}

.home-blog-grid .eael-grid-post:hover .eael-entry-thumbnail img {
	transform: scale(1.035);
}

.home-blog-grid .eael-entry-title {
	margin: 0 0 11px !important;
	font-family: "League Spartan", sans-serif;
	font-size: 17px !important;
	font-weight: 600 !important;
	line-height: 1.22 !important;
}

.home-blog-grid .eael-entry-title a {
	color: #203d37 !important;
}

.home-blog-grid .eael-entry-title a:hover {
	color: #17805f !important;
}

.home-blog-grid .eael-grid-post-excerpt p {
	display: -webkit-box;
	overflow: hidden;
	margin: 0 0 16px !important;
	color: #59635f;
	font-family: "League Spartan", sans-serif;
	font-size: 13px;
	line-height: 1.45;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}

.home-blog-grid .eael-post-elements-readmore-btn {
	color: #176c55 !important;
	font-family: "League Spartan", sans-serif;
	font-size: 13px;
	font-weight: 600;
	text-decoration: underline !important;
	text-underline-offset: 3px;
}

.home-blog-grid .post-meta-categories {
	top: 14px !important;
	left: 14px !important;
	z-index: 4;
}

.home-blog-grid .post-meta-categories a {
	border-radius: 999px;
	background: rgba(251, 250, 246, 0.94) !important;
	color: #17805f !important;
	font-size: 10px !important;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

/* Ateliers : même bordure douce et boutons que les cartes de sélection. */
.lbnv-workshops { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
@media (min-width:1025px) {
	.lbnv-workshop { flex-direction:column; }
	.lbnv-workshop__image { flex:0 0 auto !important; }
	.lbnv-workshop__image img { height:200px !important; }
}
@media (min-width:768px) and (max-width:1024px) {
	.lbnv-workshops { grid-template-columns:1fr; }
}
.lbnv-workshop { display:flex; overflow:hidden; border:1px solid #dedbd5; border-radius:10px; background:#fff; box-shadow:0 2px 8px rgba(39,92,83,.04); }
.lbnv-workshop__image { flex:0 0 36%; }
.lbnv-workshop__image img { width:100%; height:100%; min-height:190px; object-fit:cover; display:block; }
.lbnv-workshop__content { padding:18px; flex:1; min-width:0; display:flex; flex-direction:column; align-items:flex-start; }
.lbnv-workshop h3 { margin:0 0 8px; font:600 18px/1.35 "League Spartan",sans-serif; }
.lbnv-workshop h3 a { color:#275c53; }
.lbnv-workshop__content p { font-size:14px; line-height:1.5; color:#565656; margin:0 0 12px; }
.lbnv-workshop__status { font-size:12px; color:#565656; margin-bottom:8px; }
.lbnv-workshop__button { margin-top:auto; align-self:center; padding:8px 24px; background:#275c53; color:#fff; border-radius:5px; font:500 14px/1.4 "League Spartan",sans-serif; text-align:center; }
.lbnv-workshop__button.is-muted { background:#e6e8e7; color:#275c53; }
.lbnv-workshop__button:hover,.lbnv-workshop__button:focus-visible { background:#e2bb53; color:#275c53; }

.lbnv-contact-phone.is-highlighted a { animation:lbnv-phone-highlight 1s ease-in-out 3; }
@keyframes lbnv-phone-highlight { 50% { color:#e2bb53; text-shadow:0 0 14px rgba(226,187,83,.6); } }
@media (prefers-reduced-motion:reduce) {
 .lbnv-contact-phone.is-highlighted a { animation:none; color:#e2bb53; outline:2px solid #e2bb53; outline-offset:5px; }
}
/* Neutralise les alignements imposés par le modèle Trustindex. */
.home-reviews-widget .ti-widget.ti-goog .ti-review-header { flex-wrap:nowrap !important; gap:0 !important; }
.home-reviews-widget .ti-widget.ti-goog .ti-review-header .ti-profile-details { width:auto !important; margin-left:16px !important; }
.home-reviews-widget .ti-widget.ti-goog .ti-reviews-container-wrapper .ti-inner > .ti-stars { display:block !important; width:auto !important; text-align:left !important; margin:6px 0 18px 68px !important; }
.home-reviews-widget .ti-widget.ti-goog .ti-verified-review { display:none !important; }
.home-reviews-widget .ti-widget.ti-goog .home-review-avatar { font-size:28px !important; line-height:1 !important; font-style:normal !important; }

.home-blog-grid .eael-entry-title { text-transform:none !important; letter-spacing:0 !important; }
.home-blog-grid .eael-entry-title a { color:#275c53 !important; }
.home-blog-grid .eael-entry-media .eael-entry-overlay { display:none !important; }
.home-blog-grid .eael-entry-title a { font:600 17px/1.3 "League Spartan",sans-serif !important; text-transform:none !important; letter-spacing:0 !important; }
.home-blog-section > .e-con-inner { gap:20px; }

/* Harmonise aussi les titres dont la famille est imposée par un widget Elementor. */
.home .elementor-widget-heading h1.elementor-heading-title ,
.home .elementor-widget-heading h2.elementor-heading-title ,
.home .elementor-widget-heading h3.elementor-heading-title ,
.home .elementor-widget-heading h4.elementor-heading-title ,
.home .elementor-widget-heading h5.elementor-heading-title {
 font-family: "League Spartan", sans-serif !important;
}

/* Typographie commune des boutons arrondis des bandeaux de l’accueil. */
.home .elementor-widget-button .elementor-button {
 font-family: "Sanchez", serif !important;
 font-size: 15px !important;
 text-transform: uppercase !important;
 font-weight: 900 !important;
 line-height: 1.4 !important;
}
