/* ====================================================================== */
/* ======== WELCOME ===================================================== */
/* ====================================================================== */

#welcome_home {
position:relative;
background-color:#63cbdf;
content-visibility:auto;
contain:layout style paint;
contain-intrinsic-size:auto 750px;
transform:translateZ(0);
font-size:0;
padding-bottom:0
}

#welcome_home::before {
content:'';
position:absolute;
z-index:9990;
width:100%;
height:6px;
background-color:#63cbdf;
bottom:-3px;
left:0
}

.cache_top_welcome {
display:inline-block;
position:absolute;
z-index:8900;
width:100%;
height:auto;
aspect-ratio:1600/44;
bottom:-1px;
left:0;
margin:0;
padding:0
}

#welcomeLeft {
display:inline-block;
position:relative;
width:60%;
max-width:60%;
margin:0 6% 0 0;
padding:0
}

#welcomeRight {
display:inline-block;
position:relative;
width:34%;
margin:0 0 0 0;
padding:0
}

#welcomeRight img {
display:inline-block;
position:relative;
width:100%;
height:auto;
aspect-ratio:431/431;
margin:0;
padding:0
}

/* ====================================================================== */
/* ======== TIMELINE ==================================================== */
/* ====================================================================== */

.timeline-wrapper {
position:relative;
max-width:1200px;
margin:0 auto;
padding:2rem 1rem;
}

.timeline-nav {
position:sticky;
display:flex;
align-items:center;
background:white;
border-radius:2px;
box-shadow:0 8px 40px rgba(0,0,0,0.12);
top:2rem;
z-index:100;
border:1px solid #e2e8f0;
gap:1rem;
margin-bottom:3rem;
padding:1rem
}

.nav-scroll-btn {
width:40px;
height:40px;
background:#f8fafc;
border:2px solid #e2e8f0;
border-radius:2px;
cursor:pointer;
color:#64748b;
transition:all 0.3s ease;
flex-shrink:0
}

.nav-scroll-btn:hover {
background:#3b82f6;
color:white;
border-color:#2563eb;
transform:scale(1.05)
}

.nav-scroll-btn:disabled {
opacity:0.3;
cursor:not-allowed;
transform:none
}

.timeline-nav-scroll {
display:flex;
position:relative;
flex:1;
gap:0.75rem;
overflow:hidden;
scroll-behavior:smooth;
padding:0.5rem 0
}

.year-btn {
position:relative;
overflow:hidden;
min-width:85px;
background-color:var(--subColorA);
color:white;
border:none;
border-radius:2px;
cursor:pointer;
white-space:nowrap;
text-align:center;
flex-shrink:0;
padding:0.875rem 1.75rem
}

.year-btn:hover {
color:white;
transform:translateY(-3px)
}

.year-btn.active {
background-color:var(--mainColorA);
color:white;
transform:translateY(-2px)
}

.year-btn.active::before { left:0 }

.timeline-content { position:relative }

.timeline-line {
position:absolute;
width:4px;
background-color:var(--mainColorA);
transform:translateX(-50%);
border-radius:2px;
box-shadow:0 0 20px rgba(59, 130, 246, 0.3);
left:50%;
top:0;
bottom:0
}

.timeline-item {
position:relative;
opacity:1;
transform:translateY(0);
transition:all 0.8s cubic-bezier(0.4, 0, 0.2, 1);
margin-bottom:5rem
}

.timeline-item.animate-in {
opacity:0;
transform:translateY(60px)
}

.timeline-item.visible {
opacity:1;
transform:translateY(0)
}

.timeline-item:nth-child(odd) .timeline-card {
margin-left:0;
margin-right:calc(50% + 3rem)
}

.timeline-item:nth-child(even) .timeline-card {
margin-left:calc(50% + 3rem);
margin-right:0
}

.timeline-card {
position:relative;
background:linear-gradient(135deg, #ffffff, #f8fafc);
border-radius:2px;
box-shadow:0 10px 30px rgba(0,0,0,0.08);
border:1px solid #e2e8f0;
transition:all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
backdrop-filter:blur(10px);
padding:2.5rem
}

.timeline-card:hover {
transform:translateY(-8px) scale(1.02);
box-shadow:0 30px 80px rgba(0,0,0,0.15);
border-color:#3b82f6
}

.timeline-card::before {
content:'';
position:absolute;
width:0;
height:0;
border:15px solid transparent;
top:2.5rem
}

.timeline-item:nth-child(odd) .timeline-card::before {
border-left-color:#ffffff;
filter:drop-shadow(2px 0 4px rgba(0,0,0,0.1));
right:-30px
}

.timeline-item:nth-child(even) .timeline-card::before {
border-right-color:#ffffff;
filter:drop-shadow(-2px 0 4px rgba(0,0,0,0.1));
left:-30px
}

.timeline-year-badge {
position:absolute;
transform:translateX(-50%);
background-color:var(--mainColorA);
color:white;
border-radius:2px;
z-index:10;
border:4px solid white;
letter-spacing:0.5px;
left:50%;
top:2rem;
padding:1rem 2rem
}

.event-title {
font-size:1.75rem;
font-weight:800;
color:var(--mainColorA);
line-height:1.2;
margin-bottom:1.25rem
}

.event-description {
color:#64748b;
font-size:1.1rem;
line-height:1.8;
font-weight:400;
margin-bottom:1.5rem
}

.event-image {
width:100%;
object-fit:cover;
border-radius:2px;
box-shadow:0 8px 30px rgba(0,0,0,0.15);
transition:transform 0.3s ease;
margin-top:1.5rem
}

.quick-nav {
position:fixed;
transform:translateY(-50%);
background:linear-gradient(135deg, #ffffff, #f8fafc);
border-radius:2px;
border:1px solid #e2e8f0;
z-index:1000;
backdrop-filter:blur(10px);
right:2rem;
top:50%;
padding:1.25rem 0.75rem
}

.quick-nav-btn {
position:relative;
overflow:hidden;
display:block;
width:48px;
height:48px;
background:linear-gradient(135deg, #f8fafc, #f1f5f9);
border:2px solid #e2e8f0;
border-radius:2px;
cursor:pointer;
transition:all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
color:#64748b;
margin-bottom:0.75rem
}

.quick-nav-btn::before {
content:'';
position:absolute;
width:100%;
height:100%;
background:linear-gradient(135deg, #3b82f6, #8b5cf6);
transition:left 0.3s ease;
z-index:-1;
top:0;
left:-100%
}

.quick-nav-btn:hover::before { left:0}

.quick-nav-btn:hover {
color:white;
border-color:#3b82f6;
transform:scale(1.1) translateX(-2px);
box-shadow:0 8px 25px rgba(59, 130, 246, 0.4)
}

.quick-nav-btn:disabled {
opacity:0.3;
cursor:not-allowed;
transform:none
}

.quick-nav-btn:last-child { margin-bottom:0 }

@keyframes slideInFromTop {
	from {
		opacity:0;
		transform:translateY(-30px)
	}
	to {
		opacity:1;
		transform:translateY(0)
	}
}

.timeline-nav { animation:slideInFromTop 0.8s cubic-bezier(0.4, 0, 0.2, 1) }

/* ====================================================================== */
/* ======== MEMBERS ===================================================== */
/* ====================================================================== */

#membresLeft {
display:inline-block;
position:relative;
width:70%;
margin:0 6% 0 0;
padding:0
}

#membresRight {
display:inline-block;
position:relative;
width:24%;
margin:0 0 0 0;
padding:0
}

.titleOffre {
display:inline-block;
position:relative;
width:100%;
text-align:left;
font-size:1.4rem;
font-weight:400;
margin:0 0 1.6rem 0;
padding:0
}

.titleOffre i {
display:inline-block;
position:relative;
vertical-align:middle;
color:var(--subColorA);
font-size:1.2rem;
font-weight:400;
margin:2px 10px 0 0;
padding:0
}

.titleOffre span {
display:inline-block;
position:relative;
color:#4a4a49;
vertical-align:middle;
margin:0;
padding:0	
}

.titleOffre:after {
content:"";
position:absolute;
width:40%;
height:1px;
background-color:var(--subColorA);
bottom:-2px;
left:0;
}

#membres {
display:grid;
grid-template-columns:repeat(auto-fit, minmax(320px, 1fr));
gap:35px;
width:100%;
font-size:0.9rem;
padding:20px 0;
}

.membre-card {
position:relative;
background:white;
border-radius:20px;
box-shadow:0 8px 30px rgba(0,0,0,0.08);
overflow:hidden;
transition:all 0.4s ease;
border:1px solid #f0f0f0
}

.membre-card:hover {
transform:translateY(-10px);
box-shadow:0 15px 40px rgba(0,0,0,0.12)
}

.membre-photo {
position:relative;
overflow:hidden;
}

.membre-photo::after {
position:absolute;
z-index:9996;
content:'';
width:100%;
height:100%;
background-size:cover;
pointer-events:none;
top:0;
left:0
}

.membre-card:nth-child(3n+1) .membre-photo::after { background-image:url('./img/cacheImgGreen.webp') }
.membre-card:nth-child(3n+2) .membre-photo::after { background-image:url('./img/cacheImgBlue.webp') }
.membre-card:nth-child(3n) .membre-photo::after { background-image:url('./img/cacheImgYellow.webp') }

.membre-photo img {
width:100%;
height:100%;
object-fit:cover;
transition:transform 0.4s ease
}

.membre-card:hover .membre-photo img { transform:scale(1.06) }

.membre-badge {
position:absolute;
background:var(--subColorB);
color:white;
border-radius:20px;
z-index:9998;
font-size:12px;
font-weight:600;
box-shadow:0 2px 10px rgba(78, 205, 196, 0.3);
top:15px;
right:15px;
padding:6px 12px
}

.membre-content { padding:0 15px 15px 15px }

.membre-nom {
font-size:20px;
font-weight:700;
border-radius:10px;
background-color:var(--mainColorA);
color:white;
text-align:center;
margin:12px 0 24px 0;
padding:10px 4px 8px 4px
}

.membre-fonction {
color:var(--mainColorB);
font-size:14px;
font-weight:500;
text-transform:uppercase;
letter-spacing:0.5px;
margin-bottom:15px
}

.membre-citation {
font-style:italic;
color:var(--textDark, #2c3e50);
line-height:1.6;
margin-bottom:20px;
text-align:left;
font-size:15px;
position:relative;
padding-left:20px
}

.membre-citation::before {
content:'"';
position:absolute;
font-size:24px;
color:var(--mainColorA);
font-weight:bold;
left:0;
top:-5px
}

.produits-preferes { margin-top:20px }

.produits-title {
display:flex;
align-items:center;
font-size:14px;
font-weight:600;
color:var(--textDark, #2c3e50);
margin-bottom:12px
}

.produits-title i {
position:relative;
color:var(--warmOrange, #FFB74D);
margin-right:8px;
top:-2px
}

.produits-list {
display:flex;
flex-wrap:wrap;
gap:8px
}

.produit-tag {
background-color:var(--extraColorA);
color:white;
border-radius:15px;
font-size:12px;
font-weight:500;
box-shadow:0 2px 8px rgba(78, 205, 196, 0.2);
padding:4px 10px
}

.membre-card {
opacity:0;
animation:fadeInUp 0.6s ease forwards
}

.membre-card:nth-child(2) { animation-delay:0.1s }
.membre-card:nth-child(3) { animation-delay:0.2s }
.membre-card:nth-child(4) { animation-delay:0.3s }

@keyframes fadeInUp {
	from {
		opacity:0;
		transform:translateY(30px)
	}
	to {
		opacity:1;
		transform:translateY(0)
	}
}

#equipes {
display:inline-block;
position:relative;
width:100%;
margin:40px 0 0 0;
padding:0
}

.equipe {
display:inline-block;
position:relative;
width:100%;
margin:0 0 60px 0;
padding:0
}

#equipes .equipe:last-of-type { margin:0 }

.equipe img {
display:inline-block;
position:relative;
width:100%;
height:auto;
margin:0
}

/* ====================================================================== */
/* ======== RECIPES ===================================================== */
/* ====================================================================== */

#cache_top_recettes {
display:inline-block;
position:relative;
width:100%;
height:auto;
aspect-ratio:1600/260;
margin:0;
padding:0
}

#cache_top_recettes_div::before,
#cache_top_recettes::before {
content:'';
position:absolute;
z-index:9990;
width:100%;
height:6px;
background-color:#057544;
bottom:-3px;
left:0
}

#cache_top_recettes_div::after {
content:'';
position:absolute;
z-index:9990;
width:100%;
height:6px;
background-color:white;
top:-3px;
left:0
}

#recettes_home {
background-color:#057544;
font-size:0;
content-visibility:auto;
contain:layout style paint;
contain-intrinsic-size:auto 800px;
padding-top:0
}

#recettesLeft {
display:inline-block;
position:relative;
width:30%;
margin:0 6% 0 0;
padding:0
}

#recettesLeft li {
display:inline-block;
position:relative;
width:100%;
margin:0 0 20px 0;
padding:0
}

#recettesLeft li > a {
display:inline-block;
position:relative;
width:100%;
margin:0;
padding:0
}

#recettesLeft li > button {
display:inline-block;
position:relative;
width:auto;
text-align:left;
background:none;
border:none;
outline:none;
cursor:pointer;
margin:0;
padding:0
}

#recettesLeft li button p:nth-child(1) {
display:inline-block;
position:relative;
vertical-align:middle;
width:42%;
font-size:0;
margin:0 8% 0 0;
padding:0
}

#recettesLeft li button p:nth-child(1) img {
display:inline-block;
position:relative;
width:100%;
height:auto;
aspect-ratio:500/400;
margin:0
}

#recettesLeft li button p:nth-child(1)::after {
position:absolute;
z-index:9997;
content:'';
width:100%;
height:100%;
background-image:url('./img/cacheRecetteYellow.webp');
background-size:cover;
pointer-events:none;
top:0;
left:0
}

#recettesLeft li button p:nth-child(2) {
display:inline-block;
position:relative;
vertical-align:middle;
transition:padding-left 0.3s ease-out;
width:50%;
margin:0;
padding:0
}

#recettesLeft li:hover p { padding-left:0 }

#recettesLeft li:hover p::after { background-image:url('./img/cacheRecetteBlue.webp') }

#recettesLeft li button { text-decoration:none }
#recettesLeft li button:hover { color:var(--extraColorA) }

#recettesRight {
display:inline-block;
position:relative;
width:64%;
margin:0;
padding:0
}

#recetteHome ul {
display:inline-block;
position:relative;
width:100%;
list-style-type:disc;
list-style-position:inside;
margin:0;
padding:0
}

.recetteHomeIngredients.none { display:none !important }

#recetteHome ul li {
display:list-item;
position:relative;
width:100%;
margin:0 0 8px 0;
padding:0
}

#recetteHome ul li:last-child { margin:0 }

#cacheIngredients {
display:inline-block;
position:absolute;
z-index:9997;
width:54%;
height:auto;
transform:translateY(-50%);
top:50%;
left:0;
margin:0;
padding:0
}

#recetteHome > div {
display:inline-block;
position:absolute;
z-index:9997;
width:44%;
height:auto;
transform:translateY(-50%);
top:50%;
left:6%;
margin:0;
padding:0
}

#recetteHome div h3 { font-size:1.9rem }

#recetteHome div div { font-size:1.3rem }

#recetteHomeImgWrap,
#recetteHomeImgWrap_mexique {
display:inline-block;
position:relative;
width:70%;
margin:0 0 0 30%;
padding:0
}

#recetteHomeImg {
display:inline-block;
position:relative;
width:100%;
height:auto;
aspect-ratio:500/400;
border-radius:20px;
margin:0
}

/* #recetteHomeImgWrap::after { */
/* position:absolute; */
/* z-index:9996; */
/* content:''; */
/* width:100%; */
/* height:100%; */
/* background-image:url('./img/cacheRecettePhotoOrange.webp'); */
/* background-size:cover; */
/* pointer-events:none; */
/* top:0; */
/* left:0 */
/* } */

#recetteHomeImgWrap_mexique::after {
position:absolute;
z-index:9996;
content:'';
width:100%;
height:100%;
background-image:url('./img/cacheRecettePhotoOrange_mexique.webp');
background-size:cover;
pointer-events:none;
top:0;
left:0
}

#recettes_liste {
display:grid;
grid-template-columns:repeat(4, 1fr);
gap:20px;
width:100%;
margin:0;
padding:0
}

#recettes_liste article {
display:flex;
flex-direction:column;
margin-bottom:0
}

#recettes_liste article > div:nth-child(1) {
display:inline-block;
position:relative;
width:100%;
font-size:0;
margin:0;
padding:0
}

#recettes_liste article > div:nth-child(1)::after {
position:absolute;
z-index:9997;
content:'';
width:100%;
height:100%;
background-image:url('./img/cacheNewsGreen.webp');
background-size:cover;
pointer-events:none;
top:0;
left:0
}

#recettes_liste article:hover div:nth-child(1)::after { background-image:url('./img/cacheNewsBlue.webp') }

#recettes_liste article > div img {
display:inline-block;
position:relative;
width:100%;
height:auto;
margin:0;
}

#recettes_liste article > h3 {
display:flex;
align-items:center;
justify-content:center;
text-align:center;
margin:20px 0 0 0;
padding:0
}

#recette_details {
display:flex;
flex-wrap:wrap;
justify-content:space-between;
width:100%;
margin:0 0 40px 0;
padding:0
}

#recette_details div {
display:flex;
align-items:center;
width:48%;
margin-bottom:10px
}

#recette_details div i { margin-right:10px }

#recette_details span { font-weight:700 }

#wrapIngredients {
display:flex;
justify-content:center;
align-items:center;
width:100%;
margin:0 0 40px 0;
padding:0
}

#ingredients {
position:relative;
display:flex;
justify-content:center;
align-items:center; 
width:100%;
max-width:410px;
height:437px;
background-image:url('img/cacheIngredients.webp');
background-size:contain;
background-repeat:no-repeat;
background-position:center;
margin:0;
padding:30px 40px
}

#ingredientsXL {
position:relative;
display:flex;
justify-content:center;
align-items:center; 
width:100%;
max-width:500px;
height:670px;
background-image:url('img/cacheIngredientsXL.webp');
background-size:contain;
background-repeat:no-repeat;
background-position:center;
margin:0;
padding:30px 40px
}

#ingredients ul,
#ingredientsXL ul {
display:inline-block;
position:relative;
width:100%;
margin:0;
padding:0
}

#ingredients ul li,
#ingredientsXL ul li {
display:list-item;
position:relative;
width:100%;
list-style-type:disc;
list-style-position:inside;
margin:0 0 10px 0;
padding:0
}

#recetteHome ul li:last-child { margin:0 }



/* ====================================================================== */
/* ======== REVENDEURS ================================================== */
/* ====================================================================== */

.revendeur_marker {
display:flex;
align-items:center;
justify-content:center;
width:36px;
height:36px;
background:#4a9c2d;
border:3px solid #fff;
border-radius:50%;
box-shadow:0 2px 8px rgba(0,0,0,0.3);
color:#fff;
font-size:14px;
cursor:pointer;
transition:transform 0.2s
}

.revendeur_marker:hover { transform:scale(1.15) }

#revendeur_hero {
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
gap:15px;
width:100%;
min-height:280px;
background:linear-gradient(135deg, #4a9c2d 0%, #2d5a1b 100%);
padding:60px 20px
}

#revendeur_search {
display:flex;
justify-content:center;
width:100%;
padding:30px 20px
}

.revendeur_search_wrap {
position:relative;
display:flex;
align-items:center;
gap:12px;
width:100%;
max-width:600px;
border:2px solid #4a9c2d;
border-radius:50px;
box-shadow:0 4px 20px rgba(74,156,45,0.15);
padding:12px 20px
}

.revendeur_search_wrap > i {
font-size:20px;
color:#4a9c2d
}

#revendeur_searchInput {
flex:1;
background:transparent;
border:none;
font-size:16px;
color:#333
}

#revendeur_searchInput:focus { outline:none }

#revendeur_searchInput::placeholder {
color:#999;
font-style:italic
}

#revendeur_geolocBtn {
display:flex;
align-items:center;
justify-content:center;
width:40px;
height:40px;
background:#4a9c2d;
border:none;
border-radius:50%;
color:#fff;
font-size:18px;
cursor:pointer;
transition:transform 0.3s, background 0.3s
}

#revendeur_geolocBtn:hover {
background:#3d8526;
transform:scale(1.1)
}

#revendeur_map_section {
position:relative;
width:100%;
padding:0 20px 30px
}

#revendeur_map {
width:100%;
height:500px;
border-radius:16px;
box-shadow:0 8px 30px rgba(0,0,0,0.12);
overflow:hidden
}

#revendeur_count {
position:absolute;
z-index:10;
background:rgba(255,255,255,0.95);
border-radius:20px;
box-shadow:0 2px 10px rgba(0,0,0,0.1);
color:#333;
bottom:50px;
left:40px;
padding:8px 16px
}

#revendeur_list {
max-width:1200px;
margin:24px auto;
padding:40px 20px
}

#revendeur_liste_wrap {
display:grid;
grid-template-columns:repeat(auto-fill, minmax(280px, 1fr));
gap:20px;
margin:0
}

.revendeur_card {
display:flex;
flex-direction:column;
gap:4px;
background:#fff;
border:1px solid #e8e8e8;
border-radius:8px;
box-shadow:0 2px 6px rgba(0,0,0,0.04);
cursor:pointer;
transition:transform 0.3s, box-shadow 0.3s;
padding:12px 15px
}

.revendeur_card_name {
font-size:15px;
font-weight:600;
color:#2d5a1b;
margin:0 0 8px 0;
padding:0
}

.revendeur_card_address {
font-size:13px;
color:#666;
line-height:1.3;
margin:0;
padding:0
}

.revendeur_card_city {
font-size:12px;
font-weight:600;
color:#4a9c2d
}

.revendeur_card:hover {
box-shadow:0 8px 25px rgba(74,156,45,0.15);
transform:translateY(-4px)
}

.gm-style .revendeur_popup {
max-width:300px;
background:#fff;
border-radius:16px;
box-shadow:0 8px 30px rgba(0,0,0,0.2);
background-image:url('./img/sun.jpg');
background-repeat:no-repeat;
background-position:right bottom;
overflow:hidden;
padding:0
}

.revendeur_popup_header {
background-color:var(--mainColorB);
padding:12px 2px
}

.revendeur_popup_name {
font-size:16px;
font-weight:700;
color:#fff;
text-align:center;
line-height:1.0;
text-shadow:0 1px 2px rgba(0,0,0,0.2);
margin:0
}

.revendeur_popup_body {
display:flex;
flex-direction:column;
gap:12px;
padding:20px
}

.revendeur_popup_address {
display:flex;
align-items:flex-start;
gap:10px;
font-size:15px;
color:#555;
line-height:1.5
}

.revendeur_popup_address i {
color:#4a9c2d;
margin:3px 0 0 0
}

.revendeur_popup_info {
background:#f0f7ed;
border-radius:8px;
font-size:13px;
font-style:italic;
color:#4a7c3a;
line-height:1.5;
padding:12px
}

.revendeur_popup_btn {
display:flex;
align-items:center;
justify-content:center;
gap:8px;
background-color:var(--subColorB);
border-radius:8px;
font-size:15px;
font-weight:700;
color:#fff;
text-decoration:none;
transition:background 0.3s;
padding:12px
}

.revendeur_popup_btn:hover { background:#3d8526 }

@media(max-width:768px) {
	#revendeur_hero {
	min-height:220px;
	padding:40px 20px
	}

	#revendeur_hero h1 { font-size:28px }

	#revendeur_hero p { font-size:16px }

	#revendeur_map { height:400px }

	#revendeur_liste_wrap { grid-template-columns:1fr }

	#revendeur_count {
	left:30px;
	bottom:40px
	}
}

#revendeur_annuaire {
max-width:1200px;
margin:0 auto;
padding:0 20px 60px
}

#revendeur_annuaire_wrap {
display:flex;
flex-wrap:wrap;
gap:0;
border-top:1px solid #e0e0e0;
margin:32px 0 0 0
}

.revendeur_annuaire_letter {
width:100%;
background:#f5f9f3;
font-size:18px;
font-weight:700;
color:#4a9c2d;
border-bottom:1px solid #e0e0e0;
padding:10px 15px
}

.revendeur_annuaire_item {
width:25%;
border-bottom:1px solid #f0f0f0;
font-size:13px;
color:#555;
cursor:pointer;
transition:background 0.2s, color 0.2s;
padding:8px 15px
}

.revendeur_annuaire_item:hover {
background:#f5f9f3;
color:#2d5a1b
}

.revendeur_annuaire_city {
font-size:11px;
color:#999
}

@media(max-width:1024px) {
	.revendeur_annuaire_item { width:33.333% }
}

@media(max-width:768px) {
	.revendeur_annuaire_item { width:50% }
}

@media(max-width:480px) {
	.revendeur_annuaire_item {
	width:100%;
	font-size:14px;
	padding:10px 15px
	}

	.revendeur_annuaire_city { font-size:12px }
}

.gm-style-iw-c {
background:transparent !important;
box-shadow:none !important;
border-radius:16px !important;
padding:0 !important
}

.gm-style-iw-d {
overflow:hidden !important;
padding:0 !important
}

.gm-style-iw-tc {
display:none !important
}

.gm-ui-hover-effect {
top:5px !important;
right:5px !important;
opacity:0.7
}

.gm-ui-hover-effect:hover { opacity:1 }

/* ============= DESKTOP (inchangé) ============= */

.filterMobileTrigger,
.filterDrawer { display:none }

.mobileOnly { display:none }

@media(max-width:768px) {

	#news_filters { display:none !important }

	.mobileOnly { display:inline-flex }

	.filterMobileTrigger {
	display:inline-flex;
	align-items:center;
	gap:10px;
	width:100%;
	height:48px;
	background:#fff;
	border:1px solid #e0e0e0;
	border-radius:12px;
	font-size:14px;
	font-weight:600;
	color:#1a1a1a;
	cursor:pointer;
	transition:border-color .25s;
	margin:0 0 25px;
	padding:0 18px
	}

	.filterMobileTrigger:hover { border-color:var(--mainColorA) }

	.filterMobileTrigger i {
	font-size:14px;
	color:var(--mainColorA)
	}

	.filterMobileBadge {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-width:22px;
	height:22px;
	background-color:var(--mainColorA);
	border-radius:11px;
	font-size:11px;
	font-weight:700;
	color:#fff;
	margin-left:auto;
	padding:0 8px
	}

	body.drawerOpen { overflow:hidden }

	.filterDrawer {
	display:block;
	position:fixed;
	z-index:99999;
	width:100vw;
	height:100vh;
	pointer-events:none;
	top:0;
	left:0
	}

	.filterDrawer.open { pointer-events:auto }

	.filterDrawerOverlay {
	position:absolute;
	width:100%;
	height:100%;
	background:rgba(0,0,0,.5);
	opacity:0;
	transition:opacity .3s cubic-bezier(.4,0,.2,1);
	top:0;
	left:0
	}

	.filterDrawer.open .filterDrawerOverlay { opacity:1 }

	.filterDrawerPanel {
	position:absolute;
	display:flex;
	flex-direction:column;
	width:100%;
	max-height:85vh;
	background:#fff;
	border-radius:20px 20px 0 0;
	box-shadow:0 -10px 40px rgba(0,0,0,.15);
	transform:translate3d(0,100%,0);
	transition:transform .35s cubic-bezier(.4,0,.2,1);
	will-change:transform;
	bottom:0;
	left:0
	}

	.filterDrawer.open .filterDrawerPanel { transform:translate3d(0,0,0) }

	.filterDrawerPanel::before {
	position:absolute;
	content:'';
	width:40px;
	height:4px;
	background:#ddd;
	border-radius:2px;
	top:8px;
	left:50%;
	transform:translateX(-50%)
	}

	.filterDrawerHeader {
	display:flex;
	align-items:center;
	justify-content:space-between;
	border-bottom:1px solid #f0f0f0;
	padding:24px 20px 16px
	}

	.filterDrawerTitle {
	font-size:18px;
	font-weight:700;
	color:#1a1a1a;
	margin:0
	}

	.filterDrawerClose {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:36px;
	height:36px;
	background:#f4f4f4;
	border:none;
	border-radius:50%;
	font-size:14px;
	color:#1a1a1a;
	cursor:pointer;
	padding:0
	}

	.filterDrawerBody {
	flex:1;
	overflow-y:auto;
	-webkit-overflow-scrolling:touch;
	padding:20px
	}

	.filterDrawerSection { margin:0 0 24px }

	.filterDrawerSection:last-child { margin:0 }

	.filterDrawerLabel {
	font-size:11px;
	letter-spacing:1.5px;
	color:#888;
	text-transform:uppercase;
	margin:0 0 12px;
	padding:0
	}

	.filterDrawerChips {
	display:flex;
	flex-wrap:wrap;
	gap:8px
	}

	.filterDrawerChips a {
	display:inline-flex;
	align-items:center;
	height:38px;
	background:#f4f4f4;
	border-radius:19px;
	font-size:13px;
	font-weight:600;
	color:#1a1a1a;
	text-decoration:none;
	transition:background-color .25s, color .25s;
	padding:0 16px
	}

	.filterDrawerChips a.active {
	background-color:var(--mainColorA);
	color:#fff
	}

	.filterDrawerChips a.active.tagChip { background-color:var(--subColorA) }

	.filterDrawerFooter {
	display:flex;
	gap:10px;
	border-top:1px solid #f0f0f0;
	padding:16px 20px 24px
	}

	.filterDrawerReset,
	.filterDrawerApply {
	flex:1;
	height:48px;
	border:none;
	border-radius:24px;
	font-size:15px;
	font-weight:700;
	cursor:pointer;
	transition:transform .2s
	}

	.filterDrawerReset {
	background:#f4f4f4;
	color:#1a1a1a
	}

	.filterDrawerApply {
	background-color:var(--mainColorA);
	color:#fff
	}

	.filterDrawerReset:active,
	.filterDrawerApply:active { transform:scale(.97) }

	.filterTag.active {
	opacity:1;
	color:#fff !important;
	text-decoration:underline
	}

	.filterDrawerReset {
	flex:1;
	height:48px;
	background:#f4f4f4;
	border:none;
	border-radius:24px;
	font-size:15px;
	font-weight:700;
	color:#1a1a1a;
	cursor:pointer;
	transition:transform .2s
	}
}

#welcomeLeft .wysiwyg ul li::before { background-color:#f39c12 !important }

#recettes_portail {
display:block;
position:relative;
width:100%;
margin:0;
padding:0
}

#news_left article > div:first-child,
#news_right .newsRight_cache {
position:relative
}

.recettes_overlayBadge {
display:inline-flex;
align-items:center;
gap:8px;
position:absolute;
z-index:3;
top:15px;
right:15px;
padding:6px 14px 6px 8px
}

.recettes_overlayBadge img {
display:block;
object-fit:contain
}

#news_left article > div:first-child .recettes_overlayBadge img,
#news_left article > div:first-child .recettes_overlaySaison img,
#news_right .newsRight_cache .recettes_overlayBadgeMini img,
.news_listingCache .recettes_overlayBadgeMini img {
display:block;
width:auto;
height:auto;
max-width:none;
object-fit:contain
}

#news_right .newsRight_cache .recettes_overlayBadgeMini img,
.news_listingCache .recettes_overlayBadgeMini img,
.recettes_cardBadge img {
width:48px;
height:48px
}

.recettes_overlaySaison {
display:flex;
align-items:center;
justify-content:center;
position:absolute;
z-index:3;
width:36px;
height:36px;
background:rgba(255,255,255,.95);
border-radius:50%;
box-shadow:0 2px 8px rgba(0,0,0,.15);
top:15px;
left:15px
}

.recettes_overlaySaison img { object-fit:contain }

.recettes_overlayBadgeMini {
display:flex;
align-items:center;
justify-content:center;
position:absolute;
z-index:3;
width:64px;
height:64px;
top:8px;
right:8px
}

.recettes_overlayBadgeMini img { object-fit:contain }

.recettes_metaInfos {
display:flex;
flex-wrap:wrap;
gap:12px;
color:#666;
margin:10px 0 0
}

.recettes_metaInfos span {
display:inline-flex;
align-items:center;
gap:5px
}

.recettes_metaInfos i { color:var(--mainColorA) }

#recettes_filters {
position:relative;
z-index:50;
width:100%;
margin:0 0 30px
}

.recettes_filterRow {
display:flex;
flex-wrap:nowrap;
align-items:center;
gap:18px;
width:100%;
margin-bottom:25px
}

.recettes_searchWrap {
display:flex;
align-items:center;
position:relative;
flex:0 0 280px;
background:#f7f9fa;
border:2px solid transparent;
border-radius:30px;
transition:border-color .3s,flex-basis .3s;
padding:0 14px
}

.recettes_searchWrap:focus-within {
flex-basis:380px;
border-color:var(--mainColorA)
}

.recettes_searchWrap i {
font-size:.95rem;
color:var(--mainColorA);
margin-right:8px
}

#recettes_search {
flex:1;
width:100%;
background:0 0;
border:none;
outline:0;
font-size:.9rem;
color:#333;
padding:9px 0
}

#recettes_searchClear {
display:none;
width:22px;
height:22px;
background:#ddd;
border:none;
border-radius:50%;
cursor:pointer;
font-size:.95rem;
color:#fff;
margin-left:6px
}

#recettes_searchClear.visible { display:block }

.recettes_filterCategorie {
display:flex;
align-items:center;
flex:1;
min-width:0;
gap:10px
}

.recettes_filterMiniLabel {
flex-shrink:0;
font-family:cronos-pro,sans-serif;
font-weight:700;
text-transform:uppercase;
letter-spacing:1px;
color:var(--mainColorA)
}

.recettes_filterCategorie .recettes_filterPills {
display:flex;
flex-wrap:nowrap;
align-items:center;
overflow-x:auto;
scrollbar-width:thin;
gap:6px;
padding:2px 0
}

.recettes_filterCategorie .recettes_filterPills::-webkit-scrollbar { height:4px }

.recettes_filterCategorie .recettes_filterPills::-webkit-scrollbar-thumb {
background:var(--mainColorA);
border-radius:2px
}

.recettes_pill {
display:inline-flex;
align-items:center;
flex-shrink:0;
gap:6px;
background:#f7f9fa;
border:2px solid transparent;
border-radius:24px;
cursor:pointer;
font-family:inherit;
font-size:.85rem;
font-weight:600;
color:#333;
transition:transform .2s,border-color .2s,background-color .2s;
will-change:transform;
padding:5px 12px 5px 5px
}

.recettes_pill:hover {
transform:translateY(-1px);
border-color:var(--mainColorA);
background:#fff
}

.recettes_pill.active {
background:var(--mainColorA);
border-color:var(--mainColorA);
color:#fff
}

.recettes_pillCat img {
width:28px;
height:28px;
object-fit:contain
}

.recettes_filterAdvancedWrap {
position:relative;
flex-shrink:0
}

.recettes_advancedTrigger {
display:inline-flex;
align-items:center;
gap:8px;
background:#f7f9fa;
border:2px solid transparent;
border-radius:24px;
cursor:pointer;
font-family:inherit;
font-weight:600;
color:var(--mainColorA);
transition:.2s;
padding:8px 16px;
white-space:nowrap
}

.recettes_advancedTrigger:hover { border-color:var(--mainColorA) }

.recettes_advancedTrigger.active {
background:var(--mainColorA);
border-color:var(--mainColorA);
color:#fff
}

.recettes_advancedCount {
display:none;
align-items:center;
justify-content:center;
min-width:18px;
height:18px;
background:var(--extraColorA);
border-radius:9px;
font-size:.7rem;
font-weight:700;
color:#fff;
padding:0 5px
}

.recettes_advancedCount.visible { display:inline-flex }

.recettes_advancedBackdrop {
display:none;
position:fixed;
z-index:9998;
width:100vw;
height:100vh;
background:rgba(0,0,0,.4);
backdrop-filter:blur(4px);
top:0;
left:0
}

.recettes_advancedBackdrop.open { display:block }

.recettes_advancedPanel {
display:none;
position:absolute;
z-index:9999;
flex-direction:column;
width:360px;
max-width:90vw;
max-height:70vh;
overflow-y:auto;
background:#fff;
border-radius:14px;
box-shadow:0 8px 30px rgba(0,0,0,.2);
top:calc(100% + 10px);
right:0;
gap:0;
padding:18px
}

.recettes_advancedPanel.open { display:flex }

.recettes_advancedPanel::before {
position:absolute;
content:'';
width:14px;
height:14px;
background:#fff;
transform:rotate(45deg);
top:-7px;
right:25px;
box-shadow:-2px -2px 5px rgba(0,0,0,.05)
}

.recettes_filterGroup { margin:0 0 16px }

.recettes_filterGroup:last-of-type { margin:0 0 8px }

.recettes_filterLabel {
font-family:cronos-pro,sans-serif;
font-weight:700;
text-transform:uppercase;
letter-spacing:1px;
color:var(--mainColorB);
margin:0 0 8px
}

.recettes_filterPillsMini {
display:flex;
flex-wrap:wrap;
gap:6px
}

.recettes_pillMini {
display:inline-flex;
align-items:center;
gap:5px;
background:#f7f9fa;
border:1px solid #e0e4e6;
border-radius:18px;
cursor:pointer;
font-family:inherit;
font-size:.78rem;
color:#555;
transition:.2s;
white-space:nowrap;
padding:5px 12px
}

.recettes_pillMini:hover {
border-color:var(--mainColorA);
color:var(--mainColorA)
}

.recettes_pillMini.active {
background:var(--mainColorA);
border-color:var(--mainColorA);
color:#fff
}

.recettes_pillSaison img {
width:16px;
height:16px;
object-fit:contain
}

.recettes_pillTag.recettes_tagHidden { display:none }

.recettes_tagShowMore {
background:transparent !important;
border:1px dashed var(--mainColorA) !important;
font-style:italic;
color:var(--mainColorA) !important
}

.recettes_advancedFooter {
display:flex;
align-items:center;
justify-content:space-between;
position:sticky;
background:#fff;
border-top:1px solid #e5e9eb;
bottom:-18px;
margin:8px -18px -18px;
padding:14px 18px
}

#recettes_filterReset {
display:inline-flex;
align-items:center;
gap:5px;
background:0 0;
border:none;
cursor:pointer;
text-decoration:underline;
color:var(--extraColorA)
}

#recettes_filterReset:hover { color:var(--mainColorA) }

.recettes_advancedFooter p { margin:0 }

#recettes_countNum {
font-weight:700;
color:var(--mainColorA)
}

@media(max-width:1024px) {
	.recettes_filterRow { flex-wrap:wrap }
	
	.recettes_searchWrap {
	flex:1 1 calc(100% - 130px);
	order:1
	}
	
	.recettes_filterAdvancedWrap {
	order:2;
	margin-left:auto
	}
	
	.recettes_filterCategorie {
	flex:1 1 100%;
	order:3
	}
}

@media(max-width:640px) {
	#recettes_filters {
	border-radius:14px;
	padding:10px 12px
	}
	
	.recettes_filterRow { gap:10px }
	
	.recettes_searchWrap {
	flex:1 1 100%;
	order:1
	}
	
	.recettes_searchWrap:focus-within { flex-basis:100% }
	
	.recettes_filterAdvancedWrap {
	order:2;
	flex:0 0 auto;
	margin-left:0
	}
	
	.recettes_filterCategorie {
	flex-direction:column;
	align-items:flex-start;
	gap:6px;
	order:3
	}
	
	.recettes_filterMiniLabel { padding-left:5px }
	
	.recettes_filterCategorie .recettes_filterPills {
	width:100%;
	scroll-snap-type:x mandatory;
	-webkit-overflow-scrolling:touch;
	padding:2px 0 8px
	}
	
	.recettes_pill { scroll-snap-align:start }
	
	.recettes_advancedTrigger {
	width:100%;
	justify-content:center
	}
	
	.recettes_advancedPanel {
	position:fixed;
	width:100%;
	max-width:100%;
	max-height:85vh;
	border-radius:18px 18px 0 0;
	top:auto;
	right:0;
	bottom:0;
	left:0;
	animation:recettes_slideUp .3s ease-out;
	padding:24px 18px 18px
	}
	
	.recettes_advancedPanel::before {
	display:block;
	position:absolute;
	width:40px;
	height:4px;
	background:#ddd;
	border-radius:2px;
	transform:none;
	box-shadow:none;
	top:8px;
	right:auto;
	left:50%;
	margin-left:-20px
	}
	
	@keyframes recettes_slideUp {
	from { transform:translateY(100%) }
	to { transform:translateY(0) }
	}
	
	.recettes_advancedFooter {
	bottom:-18px;
	margin:8px -18px -18px
	}
}

body > .recettes_advancedPanel.open {
position:fixed !important;
z-index:99999 !important;
width:100% !important;
max-width:100% !important;
max-height:85vh !important;
border-radius:18px 18px 0 0 !important;
top:auto !important;
right:0 !important;
bottom:0 !important;
left:0 !important
}

body > .recettes_advancedBackdrop.open {
position:fixed !important;
z-index:99998 !important;
width:100vw !important;
height:100vh !important;
top:0 !important;
left:0 !important
}

.news_listingCard.recettes_card { position:relative }

.news_listingCard.recettes_card .recettes_overlayBadgeMini {
position:absolute;
z-index:3;
top:auto;
right:12px;
bottom:12px
}

#news_left article div:first-child::after,
.newsRight_cache::after,
.news_listingCache::after {
backface-visibility:hidden;
transform:translateZ(0)
}

/* ====================================================================== */
/* ======== CARTE ORIGINES INGRÉDIENTS ================================== */
/* ====================================================================== */

.origine_intro {
line-height:1.6;
margin:0 0 24px
}

.origine_scene {
display:flex;
flex-direction:column;
gap:20px
}

.origine_mapZone {
position:relative;
width:100%;
overflow:hidden;
background:#d4eaf5;
border-radius:var(--product_radius)
}

.origine_mapImg {
display:block;
width:100%;
height:auto;
pointer-events:none
}

.origine_svgLayer {
position:absolute;
width:100%;
height:100%;
pointer-events:none;
top:0;
left:0
}

.origine_bubble {
position:absolute;
pointer-events:none;
z-index:10;
opacity:0;
transform:translate(-50%, calc(-100% - 14px));
transition:opacity .15s
}

.origine_bubble--below { transform:translate(-50%, 14px) }

.origine_bubble--left { transform:translate(calc(-100% + 10px), calc(-100% - 14px)) }

.origine_bubble--left.origine_bubble--below { transform:translate(calc(-100% + 10px), 14px) }

.origine_bubble--active {
opacity:1;
pointer-events:all
}

.origine_bubbleInner {
display:block;
border-radius:14px;
min-width:108px;
background:var(--orig-color, var(--product_turquoise));
box-shadow:0 3px 14px rgba(0,0,0,0.13);
will-change:transform;
transition:transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s;
padding:8px 12px 7px
}

.origine_bubble:hover .origine_bubbleInner,
.origine_bubble:focus-visible .origine_bubbleInner {
box-shadow:0 6px 22px rgba(0,0,0,0.18);
transform:scale(1.05) translateY(-2px)
}

.origine_bubble:focus-visible { outline:none }

.origine_bubbleCountry {
font-size:9px;
font-weight:800;
text-transform:uppercase;
letter-spacing:.08em;
color:rgba(255,255,255,0.85);
margin:0 0 5px
}

.origine_bubbleItem {
display:flex;
align-items:center;
gap:6px;
padding:1.5px 0
}

.origine_bubbleDot {
width:7px;
height:7px;
border-radius:50%;
flex-shrink:0;
background:rgba(255,255,255,0.45)
}

.origine_bubbleName {
font-size:11px;
font-weight:700;
white-space:nowrap;
color:#fff
}

.origine_bubbleSep {
height:1px;
background:rgba(255,255,255,0.3);
margin:4px 0
}

.origine_legend {
display:flex;
flex-wrap:wrap;
gap:10px;
list-style:none;
margin:0;
padding:0
}

.origine_legendItem {
display:flex;
align-items:center;
gap:10px;
background:#fff;
border:1px solid var(--product_line);
border-radius:14px;
flex:1 1 180px;
padding:12px 14px
}

.origine_legendNum {
display:flex;
align-items:center;
justify-content:center;
flex-shrink:0;
width:26px;
height:26px;
border-radius:50%;
background:var(--orig-color, var(--product_turquoise));
font-size:11px;
font-weight:900;
line-height:1;
color:#fff
}

.origine_legendPays {
display:block;
font-size:14px;
font-weight:800;
line-height:1;
color:var(--product_ink);
margin:0 0 4px
}

.origine_legendContent { flex:1 }

.origine_legendIngs {
list-style:none;
margin:0;
padding:0
}

.origine_legendIngs li {
color:var(--product_grey);
line-height:1.5
}

.origine_legendIngs li + li { margin-top:2px }

.origine_note {
font-size:11px;
color:var(--product_grey);
margin:0
}

@media(max-width:767px) {
	.origine_bubble { display:none }

	.origine_legendItem {
	flex:1 1 100%;
	border-radius:12px
	}
}

@media(prefers-reduced-motion:reduce) {
	.origine_bubbleInner {
	transition:none !important
	}
}