<!doctype html>
<html lang="fr-FR">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="profile" href="https://gmpg.org/xfn/11">
<meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' />
<!-- This site is optimized with the Yoast SEO plugin v28.4 - https://yoast.com/product/yoast-seo-wordpress/ -->
<title>Marché des halles de la roche sur yon - Les Halles de La Roche sur Yon</title>
<link rel="canonical" href="https://leshalles-larochesuryon.fr/" />
<meta property="og:locale" content="fr_FR" />
<meta property="og:type" content="website" />
<meta property="og:title" content="Marché des halles de la roche sur yon - Les Halles de La Roche sur Yon" />
<meta property="og:description" content="Le Marché des Halles LA ROCHE SUR YON Découvrir Ouvert tous les jours de 8h à 13h sauf lundi & mercredi + de 40 Commerçants et producteurs Sur place Bar & restauration Notre Marché Le marché des Halles de La Roche sur Yon Ouvert tous les jours de 8h à 13h sauf le Lundi & […]" />
<meta property="og:url" content="https://leshalles-larochesuryon.fr/" />
<meta property="og:site_name" content="Les Halles de La Roche sur Yon" />
<meta property="article:modified_time" content="2026-05-27T09:08:57+00:00" />
<meta property="og:image" content="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/05/etalage-fruits-et-legumes-des-halles-de-la-roche-sur-yon.jpg" />
<meta property="og:image:width" content="1000" />
<meta property="og:image:height" content="667" />
<meta property="og:image:type" content="image/jpeg" />
<meta name="twitter:card" content="summary_large_image" />
<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/leshalles-larochesuryon.fr\/","url":"https:\/\/leshalles-larochesuryon.fr\/","name":"Marché des halles de la roche sur yon - Les Halles de La Roche sur Yon","isPartOf":{"@id":"https:\/\/leshalles-larochesuryon.fr\/#website"},"about":{"@id":"https:\/\/leshalles-larochesuryon.fr\/#organization"},"primaryImageOfPage":{"@id":"https:\/\/leshalles-larochesuryon.fr\/#primaryimage"},"image":{"@id":"https:\/\/leshalles-larochesuryon.fr\/#primaryimage"},"thumbnailUrl":"https:\/\/leshalles-larochesuryon.fr\/wp-content\/uploads\/2025\/05\/etalage-fruits-et-legumes-des-halles-de-la-roche-sur-yon.jpg","datePublished":"2026-05-06T12:19:01+00:00","dateModified":"2026-05-27T09:08:57+00:00","breadcrumb":{"@id":"https:\/\/leshalles-larochesuryon.fr\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/leshalles-larochesuryon.fr\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/leshalles-larochesuryon.fr\/#primaryimage","url":"https:\/\/leshalles-larochesuryon.fr\/wp-content\/uploads\/2025\/05\/etalage-fruits-et-legumes-des-halles-de-la-roche-sur-yon.jpg","contentUrl":"https:\/\/leshalles-larochesuryon.fr\/wp-content\/uploads\/2025\/05\/etalage-fruits-et-legumes-des-halles-de-la-roche-sur-yon.jpg","width":1000,"height":667,"caption":"étalage fruits et légumes des halles de la roche sur yon"},{"@type":"BreadcrumbList","@id":"https:\/\/leshalles-larochesuryon.fr\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home"}]},{"@type":"WebSite","@id":"https:\/\/leshalles-larochesuryon.fr\/#website","url":"https:\/\/leshalles-larochesuryon.fr\/","name":"Les Halles de La Roche sur Yon","description":"Vivez l’authenticité du Marché des Halles de La Roche-sur-Yon : fraîcheur, tradition et convivialité réunies.","publisher":{"@id":"https:\/\/leshalles-larochesuryon.fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/leshalles-larochesuryon.fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/leshalles-larochesuryon.fr\/#organization","name":"Les Halles de La Roche sur Yon","url":"https:\/\/leshalles-larochesuryon.fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/leshalles-larochesuryon.fr\/#\/schema\/logo\/image\/","url":"https:\/\/leshalles-larochesuryon.fr\/wp-content\/uploads\/2025\/05\/favicon-e1751363464435.png","contentUrl":"https:\/\/leshalles-larochesuryon.fr\/wp-content\/uploads\/2025\/05\/favicon-e1751363464435.png","width":512,"height":205,"caption":"Les Halles de La Roche sur Yon"},"image":{"@id":"https:\/\/leshalles-larochesuryon.fr\/#\/schema\/logo\/image\/"}}]}</script>
<!-- / Yoast SEO plugin. -->
<link rel="alternate" type="application/rss+xml" title="Les Halles de La Roche sur Yon » Flux" href="https://leshalles-larochesuryon.fr/feed/" />
<link rel="alternate" type="application/rss+xml" title="Les Halles de La Roche sur Yon » Flux des commentaires" href="https://leshalles-larochesuryon.fr/comments/feed/" />
<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://leshalles-larochesuryon.fr/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fleshalles-larochesuryon.fr%2F" />
<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://leshalles-larochesuryon.fr/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fleshalles-larochesuryon.fr%2F&format=xml" />
<link data-optimized="2" rel="stylesheet" href="https://leshalles-larochesuryon.fr/wp-content/litespeed/css/6cb99f5f4f0fb2580f7b073db1415a96.css?ver=fe72e" />
<script type="158dd22977020f896ecdbf43-text/javascript">
var elementskit = {
resturl: 'https://leshalles-larochesuryon.fr/wp-json/elementskit/v1/',
}
</script><script id="font-awesome-4-shim-js" src="https://leshalles-larochesuryon.fr/wp-content/plugins/elementor/assets/lib/font-awesome/js/v4-shims.min.js?ver=4.2.4" type="158dd22977020f896ecdbf43-text/javascript"></script>
<script id="jquery-core-js" src="https://leshalles-larochesuryon.fr/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" type="158dd22977020f896ecdbf43-text/javascript"></script>
<script id="jquery-migrate-js" src="https://leshalles-larochesuryon.fr/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" type="158dd22977020f896ecdbf43-text/javascript"></script>
<link rel="https://api.w.org/" href="https://leshalles-larochesuryon.fr/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://leshalles-larochesuryon.fr/wp-json/wp/v2/pages/1556" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://leshalles-larochesuryon.fr/xmlrpc.php?rsd" />
<link rel='shortlink' href='https://leshalles-larochesuryon.fr/' />
<meta name="ti-site-data" content="eyJyIjoiMTowITc6MCEzMDowIiwibyI6Imh0dHBzOlwvXC9sZXNoYWxsZXMtbGFyb2NoZXN1cnlvbi5mcj90aS1vbmxpbmUtdXNlcnMtZ29vZ2xlPTEmYW1wO3A9JTJGJmFtcDtfd3Bub25jZT1mZjk4Zjk0MDU0In0=" /><meta name="generator" content="Elementor 4.2.4; features: e_font_icon_svg, additional_custom_breakpoints; settings: css_print_method-external, google_font-enabled, font_display-swap">
<link rel="icon" href="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/05/favicon-e1751363464435-150x150.png" sizes="32x32" />
<link rel="icon" href="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/05/elementor/thumbs/favicon-e1751363464435-r842r758hkfybyla3xr17fuukii0z64k929rm617nm.png" sizes="192x192" />
<link rel="apple-touch-icon" href="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/05/elementor/thumbs/favicon-e1751363464435-r842r758hkfybyla3xr17fuukii0z64k929rm617nm.png" />
<meta name="msapplication-TileImage" content="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/05/elementor/thumbs/favicon-e1751363464435-r842r758hkfybyla3xr17fuukii0z64k929rm617nm.png" />
</head>
<body class="home wp-singular page-template-default page page-id-1556 wp-custom-logo wp-embed-responsive wp-theme-hello-elementor wp-child-theme-hello-elementor-child hello-elementor-default elementor-default elementor-kit-56 elementor-page elementor-page-1556">
<a class="skip-link screen-reader-text" href="#content">Aller au contenu</a>
<header data-elementor-type="header" data-elementor-id="73" class="elementor elementor-73 elementor-location-header" data-elementor-post-type="elementor_library">
<section class="elementor-section elementor-top-section elementor-element elementor-element-4b94b6d0 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="4b94b6d0" data-element_type="section" data-e-type="section">
<div class="elementor-container elementor-column-gap-default">
<div class="elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-4be38f15" data-id="4be38f15" data-element_type="column" data-e-type="column">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-element elementor-element-2595062 elementor-widget elementor-widget-image" data-id="2595062" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
<div class="elementor-widget-container">
<a href="https://leshalles-larochesuryon.fr/">
<img width="512" height="205" src="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/05/favicon-e1751363464435.png" class="attachment-full size-full wp-image-883" alt="favicon" srcset="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/05/favicon-e1751363464435.png 512w, https://leshalles-larochesuryon.fr/wp-content/uploads/2025/05/favicon-e1751363464435-300x120.png 300w" sizes="(max-width: 512px) 100vw, 512px" /> </a>
</div>
</div>
</div>
</div>
<div class="elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-c9d5a93 elementor-hidden-desktop elementor-hidden-laptop elementor-hidden-tablet_extra" data-id="c9d5a93" data-element_type="column" data-e-type="column">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-element elementor-element-7cffb32 elementor-widget elementor-widget-html" data-id="7cffb32" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
<div class="elementor-widget-container">
<button id="kickngoMarketStatusButtonHeader" class="kickngo-header-status-button" aria-live="polite" aria-atomic="true">
<span id="kickngoMarketStatusDotHeader" class="kickngo-header-dot"></span>
<span id="kickngoMarketStatusTextHeader">Chargement...</span>
<div class="kickngo-header-tooltip" id="kickngoTooltipHeader">
<div id="kickngoScheduleHeader"></div>
</div>
</button>
<script type="158dd22977020f896ecdbf43-text/javascript">
(function() {
function initMarketWidgetHeader() {
var button = document.getElementById("kickngoMarketStatusButtonHeader");
if (!button || button.dataset.kickngoInit === '1') return;
button.dataset.kickngoInit = '1';
var tooltip = button.querySelector('.kickngo-header-tooltip');
var marketSchedule = [
{ day: "dimanche", open: "08:30", close: "13:00" },
{ day: "lundi", open: null, close: null },
{ day: "mardi", open: "08:00", close: "13:00" },
{ day: "mercredi", open: null, close: null },
{ day: "jeudi", open: "08:00", close: "13:00" },
{ day: "vendredi", open: "08:00", close: "13:00" },
{ day: "samedi", open: "07:00", close: "13:00" }
];
var dayNames = ["dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"];
function getMarketStatus(now) {
var currentDayIndex = now.getDay();
var currentTimeInMinutes = now.getHours() * 60 + now.getMinutes();
var todaySchedule = marketSchedule[currentDayIndex];
if (!todaySchedule.open || !todaySchedule.close) {
var nextOpenMessage = "Fermé";
for (var i = 1; i <= 7; i++) {
var nextDayIdx = (currentDayIndex + i) % 7;
var nextDaySched = marketSchedule[nextDayIdx];
if (nextDaySched.open) {
nextOpenMessage = "Ouvre " + dayNames[nextDayIdx] + " à " + nextDaySched.open;
break;
}
}
return { status: "closed", message: nextOpenMessage };
}
var openParts = todaySchedule.open.split(":");
var closeParts = todaySchedule.close.split(":");
var openTimeInMinutes = parseInt(openParts[0], 10) * 60 + parseInt(openParts[1], 10);
var closeTimeInMinutes = parseInt(closeParts[0], 10) * 60 + parseInt(closeParts[1], 10);
if (currentTimeInMinutes >= openTimeInMinutes && currentTimeInMinutes < closeTimeInMinutes) {
return { status: "open", message: "Le marché est ouvert" };
} else {
var message = "Fermé";
if (currentTimeInMinutes < openTimeInMinutes) {
message = "Ouvre à " + todaySchedule.open;
} else {
for (var j = 1; j <= 7; j++) {
var nextIdx = (currentDayIndex + j) % 7;
var nextSched = marketSchedule[nextIdx];
if (nextSched.open) {
message = "Ouvre " + dayNames[nextIdx] + " à " + nextSched.open;
break;
}
}
}
return { status: "closed", message: message };
}
}
// Construire la liste des horaires dans le tooltip
var scheduleContainer = document.getElementById("kickngoScheduleHeader");
if (scheduleContainer) {
var scheduleHTML = '';
var todayDay = new Date().getDay();
marketSchedule.forEach(function(schedule, index) {
var dayName = dayNames[index];
var isToday = todayDay === index;
var hours = (schedule.open && schedule.close) ? (schedule.open + ' - ' + schedule.close) : 'Fermé';
var dayClass = (schedule.open && schedule.close) ? 'open' : 'closed';
var todayIndicator = isToday ? ' (aujourd\'hui)' : '';
scheduleHTML +=
'<div class="kickngo-header-schedule-day">' +
'<span class="kickngo-header-day-name">' + dayName + todayIndicator + '</span>' +
'<span class="kickngo-header-day-hours ' + dayClass + '">' + hours + '</span>' +
'</div>';
});
scheduleContainer.innerHTML = scheduleHTML;
}
// Repositionner dynamiquement le tooltip pour qu'il ne déborde pas
function repositionTooltip() {
if (!tooltip) return;
// Reset pour mesurer correctement
tooltip.style.left = '50%';
tooltip.style.transform = 'translateX(-50%)';
// Mesurer après que le navigateur ait appliqué les styles
requestAnimationFrame(function() {
var btnRect = button.getBoundingClientRect();
var tipRect = tooltip.getBoundingClientRect();
var viewportWidth = document.documentElement.clientWidth;
var margin = 8; // marge minimale au bord de l'écran
var tipCenterX = btnRect.left + btnRect.width / 2;
var tipHalfWidth = tipRect.width / 2;
var overflowRight = (tipCenterX + tipHalfWidth) - (viewportWidth - margin);
var overflowLeft = margin - (tipCenterX - tipHalfWidth);
if (overflowRight > 0) {
// Décaler vers la gauche
tooltip.style.left = 'calc(50% - ' + overflowRight + 'px)';
} else if (overflowLeft > 0) {
// Décaler vers la droite
tooltip.style.left = 'calc(50% + ' + overflowLeft + 'px)';
}
});
}
// Repositionner au survol et au focus
button.addEventListener('mouseenter', repositionTooltip);
button.addEventListener('focus', repositionTooltip);
button.addEventListener('touchstart', repositionTooltip, { passive: true });
// Repositionner au resize
var resizeTimer;
window.addEventListener('resize', function() {
clearTimeout(resizeTimer);
resizeTimer = setTimeout(repositionTooltip, 100);
});
function updateStatus() {
var status = getMarketStatus(new Date());
var dot = button.querySelector(".kickngo-header-dot");
var text = button.querySelector("#kickngoMarketStatusTextHeader");
if (dot && text) {
text.textContent = status.message;
dot.classList.remove("open", "closed");
dot.classList.add(status.status);
}
}
updateStatus();
setInterval(updateStatus, 60000);
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', initMarketWidgetHeader);
} else {
initMarketWidgetHeader();
}
})();
</script> </div>
</div>
</div>
</div>
<div class="elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-3e82c5e elementor-hidden-tablet elementor-hidden-mobile elementor-hidden-mobile_extra" data-id="3e82c5e" data-element_type="column" data-e-type="column">
<div class="elementor-widget-wrap elementor-element-populated">
<section class="elementor-section elementor-inner-section elementor-element elementor-element-4a8c8d51 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="4a8c8d51" data-element_type="section" data-e-type="section">
<div class="elementor-container elementor-column-gap-default">
<div class="elementor-column elementor-col-33 elementor-inner-column elementor-element elementor-element-45c37c3" data-id="45c37c3" data-element_type="column" data-e-type="column">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-element elementor-element-564e8df elementor-position-left elementor-vertical-align-top elementor-widget elementor-widget-image-box" data-id="564e8df" data-element_type="widget" data-e-type="widget" data-widget_type="image-box.default">
<div class="elementor-widget-container">
<div class="elementor-image-box-wrapper"><figure class="elementor-image-box-img"><img width="30" height="28" src="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/02/263140.png" class="elementor-animation-shrink attachment-full size-full wp-image-62" alt="" /></figure><div class="elementor-image-box-content"><p class="elementor-image-box-description"><a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="f1929e9f85909285b19d948299909d9d9482dc9d90839e929994828483889e9fdf9783">[email protected]</a></p></div></div> </div>
</div>
</div>
</div>
<div class="elementor-column elementor-col-33 elementor-inner-column elementor-element elementor-element-30220451" data-id="30220451" data-element_type="column" data-e-type="column">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-element elementor-element-c7ab456 elementor-position-left elementor-vertical-align-top elementor-widget elementor-widget-image-box" data-id="c7ab456" data-element_type="widget" data-e-type="widget" data-widget_type="image-box.default">
<div class="elementor-widget-container">
<div class="elementor-image-box-wrapper"><figure class="elementor-image-box-img"><img width="26" height="34" src="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/02/6320900.png" class="elementor-animation-shrink attachment-full size-full wp-image-63" alt="" /></figure><div class="elementor-image-box-content"><p class="elementor-image-box-description">Place du Marché, <br>La Roche-sur-Yon</p></div></div> </div>
</div>
</div>
</div>
<div class="elementor-column elementor-col-33 elementor-inner-column elementor-element elementor-element-1751abc3" data-id="1751abc3" data-element_type="column" data-e-type="column">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-element elementor-element-3f9983a3 e-grid-align-tablet-right elementor-shape-rounded elementor-grid-0 e-grid-align-center elementor-widget elementor-widget-social-icons" data-id="3f9983a3" data-element_type="widget" data-e-type="widget" data-widget_type="social-icons.default">
<div class="elementor-widget-container">
<div class="elementor-social-icons-wrapper elementor-grid" role="list">
<span class="elementor-grid-item" role="listitem">
<a class="elementor-icon elementor-social-icon elementor-social-icon-facebook elementor-animation-float elementor-repeater-item-e7a6d31" href="https://www.facebook.com/p/Les-Halles-de-La-Roche-sur-Yon-100057350962765/?locale=fr_FR" target="_blank">
<span class="elementor-screen-only">Facebook</span>
<svg aria-hidden="true" class="e-font-icon-svg e-fab-facebook" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="M504 256C504 119 393 8 256 8S8 119 8 256c0 123.78 90.69 226.38 209.25 245V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.28c-30.8 0-40.41 19.12-40.41 38.73V256h68.78l-11 71.69h-57.78V501C413.31 482.38 504 379.78 504 256z"></path></svg> </a>
</span>
<span class="elementor-grid-item" role="listitem">
<a class="elementor-icon elementor-social-icon elementor-social-icon-instagram elementor-animation-float elementor-repeater-item-9f82bd6" href="https://www.instagram.com/hallesdelarochesuryon/" target="_blank">
<span class="elementor-screen-only">Instagram</span>
<svg aria-hidden="true" class="e-font-icon-svg e-fab-instagram" viewBox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><path d="M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z"></path></svg> </a>
</span>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</div>
</div>
</div>
</section>
<section class="elementor-section elementor-top-section elementor-element elementor-element-11f7dff9 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="11f7dff9" data-element_type="section" data-e-type="section" data-settings="{"background_background":"classic"}">
<div class="elementor-container elementor-column-gap-default">
<div class="elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-546da626" data-id="546da626" data-element_type="column" data-e-type="column">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-element elementor-element-7472d3d3 elementor-widget elementor-widget-tf-nav-menu" data-id="7472d3d3" data-element_type="widget" data-e-type="widget" data-widget_type="tf-nav-menu.default">
<div class="elementor-widget-container">
<div class="tf-nav-menu tf-alignment-left horizontal menu-panel-style-left tf_link_effect_text tf_animation_line_fade dropdown-style1 tf-nav-6adb2be45953d" data-id_random="tf-nav-6adb2be45953d">
<div class="nav-panel mobile-menu-alignment-left">
<div class="wrap-logo-nav"><a href="https://leshalles-larochesuryon.fr/" class="logo-nav"><img src="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/02/Logo-les-halles-de-la-roche-sur-yon.png" alt="Les Halles de La Roche sur Yon"></a></div>
<div class="mainnav-mobi"><div class="menu-container tf-menu-container"><ul id="menu-menu" class="menu"><li id="menu-item-1651" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-home current-menu-item page_item page-item-1556 current_page_item menu-item-1651"><a href="https://leshalles-larochesuryon.fr/" aria-current="page">Accueil<i class="fa fa-angle-right" aria-hidden="true"></i></a></li>
<li id="menu-item-87" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-87"><a href="https://leshalles-larochesuryon.fr/commercants/">Commerçants<i class="fa fa-angle-right" aria-hidden="true"></i></a></li>
<li id="menu-item-1133" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1133"><a href="https://leshalles-larochesuryon.fr/actualites/">Actualités<i class="fa fa-angle-right" aria-hidden="true"></i></a></li>
<li id="menu-item-1145" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1145"><a href="https://leshalles-larochesuryon.fr/contact/">Contact<i class="fa fa-angle-right" aria-hidden="true"></i></a></li>
</ul></div></div>
<div class="wrap-close-menu-panel-style-default">
<button class="close-menu-panel-style-default"><i class="fas fa-times"></i></button>
</div>
</div>
<div class="mainnav nav"><div class="menu-container tf-menu-container"><ul id="menu-menu" class="menu"><li id="menu-item-1651" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-home current-menu-item page_item page-item-1556 current_page_item menu-item-1651"><a href="https://leshalles-larochesuryon.fr/" aria-current="page">Accueil<i class="fa fa-angle-right" aria-hidden="true"></i></a></li>
<li id="menu-item-87" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-87"><a href="https://leshalles-larochesuryon.fr/commercants/">Commerçants<i class="fa fa-angle-right" aria-hidden="true"></i></a></li>
<li id="menu-item-1133" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1133"><a href="https://leshalles-larochesuryon.fr/actualites/">Actualités<i class="fa fa-angle-right" aria-hidden="true"></i></a></li>
<li id="menu-item-1145" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1145"><a href="https://leshalles-larochesuryon.fr/contact/">Contact<i class="fa fa-angle-right" aria-hidden="true"></i></a></li>
</ul></div></div>
<div class="mobile-menu-overlay"></div>
<button class="tf-close"><i class="fas fa-times"></i></button>
<button class="btn-menu-mobile"><span class="open-icon"><i class="fas fa-bars"></i></span></button>
<button class="btn-menu-only"><span class="open-icon"><i class="fas fa-bars"></i></span></button>
</div> </div>
</div>
</div>
</div>
<div class="elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-6fcbfe35" data-id="6fcbfe35" data-element_type="column" data-e-type="column">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-element elementor-element-e3c0ea7 elementor-widget-laptop__width-initial elementor-hidden-laptop elementor-hidden-tablet_extra elementor-hidden-tablet elementor-hidden-mobile_extra elementor-hidden-mobile elementor-widget elementor-widget-html" data-id="e3c0ea7" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
<div class="elementor-widget-container">
<button id="kickngoMarketStatusButtonHeader2" class="kickngo-header2-status-button" aria-live="polite" aria-atomic="true">
<span id="kickngoMarketStatusDotHeader2" class="kickngo-header2-dot"></span>
<span id="kickngoMarketStatusTextHeader2">Chargement...</span>
<div class="kickngo-header2-tooltip" id="kickngoTooltipHeader2">
<div id="kickngoScheduleHeader2"></div>
</div>
</button>
<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script type="158dd22977020f896ecdbf43-text/javascript">
(function() {
function initMarketWidgetHeader2() {
const marketSchedule = [
{ day: "dimanche", open: "08:30", close: "13:00" },
{ day: "lundi", open: null, close: null },
{ day: "mardi", open: "08:00", close: "13:00" },
{ day: "mercredi", open: null, close: null },
{ day: "jeudi", open: "08:00", close: "13:00" },
{ day: "vendredi", open: "08:00", close: "13:00" },
{ day: "samedi", open: "07:00", close: "13:00" },
];
const dayNames = ["dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"];
function getMarketStatus(now) {
const currentDayIndex = now.getDay();
const currentHour = now.getHours();
const currentMinute = now.getMinutes();
const currentTimeInMinutes = currentHour * 60 + currentMinute;
const todaySchedule = marketSchedule[currentDayIndex];
if (!todaySchedule.open || !todaySchedule.close) {
let nextOpenMessage = "Fermé";
for (let i = 1; i <= 7; i++) {
const nextDayIdx = (currentDayIndex + i) % 7;
const nextDaySched = marketSchedule[nextDayIdx];
if (nextDaySched.open) {
nextOpenMessage = `Ouvre ${dayNames[nextDayIdx]} à ${nextDaySched.open}`;
break;
}
}
return { status: "closed", message: nextOpenMessage };
}
const [openHour, openMinute] = todaySchedule.open.split(":").map(Number);
const [closeHour, closeMinute] = todaySchedule.close.split(":").map(Number);
const openTimeInMinutes = openHour * 60 + openMinute;
const closeTimeInMinutes = closeHour * 60 + closeMinute;
if (currentTimeInMinutes >= openTimeInMinutes && currentTimeInMinutes < closeTimeInMinutes) {
return { status: "open", message: "Le marché est ouvert" };
} else {
let message = "Fermé";
if (currentTimeInMinutes < openTimeInMinutes) {
message = `Ouvre à ${todaySchedule.open}`;
} else {
for (let i = 1; i <= 7; i++) {
const nextDayIdx = (currentDayIndex + i) % 7;
const nextDaySched = marketSchedule[nextDayIdx];
if (nextDaySched.open) {
message = `Ouvre ${dayNames[nextDayIdx]} à ${nextDaySched.open}`;
break;
}
}
}
return { status: "closed", message: message };
}
}
const button = document.getElementById("kickngoMarketStatusButtonHeader2");
if (button) {
// Créer le contenu du tooltip avec les horaires
const scheduleContainer = document.getElementById("kickngoScheduleHeader2");
if (scheduleContainer) {
let scheduleHTML = '';
marketSchedule.forEach((schedule, index) => {
const dayName = dayNames[index];
const isToday = new Date().getDay() === index;
const hours = schedule.open && schedule.close ?
`${schedule.open} - ${schedule.close}` :
'Fermé';
const dayClass = schedule.open && schedule.close ? 'open' : 'closed';
const todayIndicator = isToday ? ' (aujourd\'hui)' : '';
scheduleHTML += `
<div class="kickngo-header2-schedule-day">
<span class="kickngo-header2-day-name">${dayName}${todayIndicator}</span>
<span class="kickngo-header2-day-hours ${dayClass}">${hours}</span>
</div>
`;
});
scheduleContainer.innerHTML = scheduleHTML;
}
const updateStatus = () => {
const status = getMarketStatus(new Date());
const dot = button.querySelector(".kickngo-header2-dot");
const text = button.querySelector("#kickngoMarketStatusTextHeader2");
if (dot && text) {
text.textContent = status.message;
dot.classList.remove("open", "closed");
dot.classList.add(status.status);
}
};
updateStatus();
setInterval(updateStatus, 60000);
}
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', initMarketWidgetHeader2);
} else {
initMarketWidgetHeader2();
}
})();
</script> </div>
</div>
</div>
</div>
<div class="elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-dcc2f5f elementor-hidden-laptop elementor-hidden-tablet_extra elementor-hidden-tablet elementor-hidden-mobile_extra elementor-hidden-mobile" data-id="dcc2f5f" data-element_type="column" data-e-type="column">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-element elementor-element-3e66abd elementor-widget-tablet__width-auto elementor-widget__width-auto elementor-widget elementor-widget-elementskit-header-search" data-id="3e66abd" data-element_type="widget" data-e-type="widget" data-widget_type="elementskit-header-search.default">
<div class="elementor-widget-container">
<div class="ekit-wid-con" > <a href="#ekit_modal-popup-3e66abd" class="ekit_navsearch-button ekit-modal-popup" role="button" aria-haspopup="dialog" aria-label="Search">
<i aria-hidden="true" class="icon icon-search11"></i> </a>
<!-- language switcher strart -->
<!-- xs modal -->
<div class="zoom-anim-dialog mfp-hide ekit_modal-searchPanel" id="ekit_modal-popup-3e66abd" role="dialog" aria-modal="true" aria-label="Search">
<div class="ekit-search-panel">
<!-- Polylang search - thanks to Alain Melsens -->
<form role="search" method="get" class="ekit-search-group" action="https://leshalles-larochesuryon.fr/">
<input type="search" class="ekit_search-field" aria-label="Search..." placeholder="Search..." value="" name="s">
<button type="submit" class="ekit_search-button" aria-label="Search">
<i aria-hidden="true" class="icon icon-search11"></i> </button>
</form>
</div>
</div><!-- End xs modal -->
<!-- end language switcher strart -->
</div> </div>
</div>
</div>
</div>
</div>
</section>
</header>
<main id="content" class="site-main post-1556 page type-page status-publish hentry">
<div class="page-content">
<div data-elementor-type="wp-page" data-elementor-id="1556" class="elementor elementor-1556" data-elementor-post-type="page">
<section class="elementor-section elementor-top-section elementor-element elementor-element-8c84b0a elementor-section-full_width elementor-section-height-default elementor-section-height-default" data-id="8c84b0a" data-element_type="section" data-e-type="section" data-settings="{"background_background":"classic"}">
<div class="elementor-background-overlay"></div>
<div class="elementor-container elementor-column-gap-default">
<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-4eb36ae" data-id="4eb36ae" data-element_type="column" data-e-type="column" data-settings="{"background_background":"classic"}">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-background-overlay"></div>
<div class="elementor-element elementor-element-8d6ec39 elementor-hidden-laptop elementor-hidden-mobile elementor-widget elementor-widget-html" data-id="8d6ec39" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
<div class="elementor-widget-container">
<script type="158dd22977020f896ecdbf43-text/javascript">
document.addEventListener('DOMContentLoaded', function() {
// Trouve la section et ajoute les emojis
const section = document.querySelector('[data-id="7a190c8e"]');
if (section) {
section.style.position = 'relative';
section.style.overflow = 'hidden';
let clickedCount = 0;
let totalEmojis = 8;
let counter = null;
let collectedEmojis = [];
const emojis = [
{emoji: '🥖', top: '15%', left: '10%', size: '60px'},
{emoji: '🧀', top: '25%', right: '15%', size: '28px'},
{emoji: '🥕', top: '45%', left: '8%', size: '52px'},
{emoji: '🐟', top: '60%', right: '12%', size: '70px'},
{emoji: '🍎', top: '70%', left: '15%', size: '25px'},
{emoji: '🥩', top: '35%', right: '8%', size: '65px'},
{emoji: '🍷', top: '80%', right: '20%', size: '32px'},
{emoji: '🥬', top: '20%', left: '25%', size: '58px'}
];
// Créer le compteur panier
function createCounter() {
if (!counter) {
counter = document.createElement('div');
counter.style.cssText = `
position: absolute;
top: 20px;
right: 20px;
background: rgba(139, 69, 19, 0.9);
color: white;
padding: 15px;
border-radius: 15px;
font-size: 14px;
font-weight: bold;
z-index: 9999;
box-shadow: 0 4px 15px rgba(0,0,0,0.3);
transform: scale(0);
transition: all 0.3s ease;
border: 3px solid #8B4513;
min-width: 120px;
text-align: center;
`;
section.appendChild(counter);
}
updateCounter();
}
function updateCounter() {
if (counter) {
const basketEmojis = collectedEmojis.join(' ');
counter.innerHTML = `
<div>🧺 Panier</div>
<div style="margin: 5px 0; min-height: 20px;">${basketEmojis}</div>
<div>${clickedCount}/${totalEmojis}</div>
`;
counter.style.transform = 'scale(1)';
if (clickedCount === totalEmojis) {
counter.innerHTML = `
<div style="background: rgba(76, 175, 80, 0.9); margin: -15px; padding: 15px; border-radius: 12px;">
<div>🎉 BRAVO ! 🎉</div>
<div style="margin: 5px 0;">🧺✨</div>
<div>Panier plein !</div>
</div>
`;
counter.style.background = 'rgba(76, 175, 80, 0.9)';
counter.style.borderColor = '#4CAF50';
setTimeout(() => {
counter.style.transform = 'scale(0)';
setTimeout(() => {
clickedCount = 0;
collectedEmojis = [];
counter.style.background = 'rgba(139, 69, 19, 0.9)';
counter.style.borderColor = '#8B4513';
}, 300);
}, 4000);
}
}
}
function hideCounter() {
if (counter && clickedCount <= 0) {
counter.style.transform = 'scale(0)';
}
}
emojis.forEach((item, index) => {
const div = document.createElement('div');
div.innerHTML = item.emoji;
div.className = `floating-emoji emoji-${index}`;
div.dataset.clicked = 'false';
div.style.cssText = `
position: absolute;
font-size: ${item.size};
z-index: 10;
opacity: 0.8;
cursor: pointer;
transition: all 0.3s ease;
animation: float${index} ${4 + Math.random() * 3}s ease-in-out infinite;
${item.top ? 'top: ' + item.top : ''};
${item.left ? 'left: ' + item.left : ''};
${item.right ? 'right: ' + item.right : ''};
padding: 15px;
`;
// Effet clic avec zone élargie
div.addEventListener('click', function(e) {
if (this.dataset.clicked === 'true') return;
this.dataset.clicked = 'true';
clickedCount++;
collectedEmojis.push(item.emoji);
// Créer ou mettre à jour le compteur
createCounter();
// Animation de clic
this.style.transform = 'scale(2) rotate(720deg)';
this.style.opacity = '1';
setTimeout(() => {
// Faire disparaître l'emoji
this.style.opacity = '0';
this.style.transform = 'scale(0)';
this.style.pointerEvents = 'none';
}, 300);
// Change le curseur de la section (plus gros)
section.style.cursor = `url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewport='0 0 48 48'><text y='36' font-size='32'>${item.emoji}</text></svg>") 24 24, auto`;
// Réapparaître après 10 secondes
setTimeout(() => {
this.style.opacity = '0.8';
this.style.transform = 'scale(1) rotate(0deg)';
this.style.pointerEvents = 'auto';
this.dataset.clicked = 'false';
clickedCount--;
collectedEmojis = collectedEmojis.filter(e => e !== item.emoji);
updateCounter();
hideCounter();
// Remet le curseur normal
section.style.cursor = 'default';
}, 10000);
});
section.appendChild(div);
});
// Ajoute les animations CSS plus lentes et planantes
const style = document.createElement('style');
style.textContent = `
@keyframes float0 {
0% { transform: translateY(0px) translateX(0px) rotate(0deg); }
50% { transform: translateY(-20px) translateX(15px) rotate(5deg); }
100% { transform: translateY(0px) translateX(0px) rotate(0deg); }
}
@keyframes float1 {
0% { transform: translateY(0px) translateX(0px) rotate(0deg); }
50% { transform: translateY(-25px) translateX(-18px) rotate(-8deg); }
100% { transform: translateY(0px) translateX(0px) rotate(0deg); }
}
@keyframes float2 {
0% { transform: translateY(0px) translateX(0px) rotate(0deg); }
50% { transform: translateY(-30px) translateX(20px) rotate(10deg); }
100% { transform: translateY(0px) translateX(0px) rotate(0deg); }
}
@keyframes float3 {
0% { transform: translateY(0px) translateX(0px) rotate(0deg); }
50% { transform: translateY(-18px) translateX(-25px) rotate(-12deg); }
100% { transform: translateY(0px) translateX(0px) rotate(0deg); }
}
@keyframes float4 {
0% { transform: translateY(0px) translateX(0px) rotate(0deg); }
50% { transform: translateY(-22px) translateX(12px) rotate(15deg); }
100% { transform: translateY(0px) translateX(0px) rotate(0deg); }
}
@keyframes float5 {
0% { transform: translateY(0px) translateX(0px) rotate(0deg); }
50% { transform: translateY(-28px) translateX(-15px) rotate(-10deg); }
100% { transform: translateY(0px) translateX(0px) rotate(0deg); }
}
@keyframes float6 {
0% { transform: translateY(0px) translateX(0px) rotate(0deg); }
50% { transform: translateY(-24px) translateX(22px) rotate(8deg); }
100% { transform: translateY(0px) translateX(0px) rotate(0deg); }
}
@keyframes float7 {
0% { transform: translateY(0px) translateX(0px) rotate(0deg); }
50% { transform: translateY(-26px) translateX(-20px) rotate(-15deg); }
100% { transform: translateY(0px) translateX(0px) rotate(0deg); }
}
.floating-emoji:hover {
transform: scale(1.2) !important;
opacity: 1 !important;
filter: drop-shadow(0 0 10px rgba(255,255,255,0.8));
}
`;
document.head.appendChild(style);
}
});
</script> </div>
</div>
<div class="elementor-element elementor-element-c718471 elementor-widget elementor-widget-heading" data-id="c718471" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
<div class="elementor-widget-container">
<h1 class="elementor-heading-title elementor-size-default">Le Marché <br>des Halles</h1> </div>
</div>
<div class="elementor-element elementor-element-d6a646e elementor-widget elementor-widget-heading" data-id="d6a646e" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
<div class="elementor-widget-container">
<h2 class="elementor-heading-title elementor-size-default">LA ROCHE SUR YON</h2> </div>
</div>
<div class="elementor-element elementor-element-90d8cb0 elementor-align-center elementor-invisible elementor-widget elementor-widget-button" data-id="90d8cb0" data-element_type="widget" data-e-type="widget" data-settings="{"_animation":"fadeInUp"}" data-widget_type="button.default">
<div class="elementor-widget-container">
<div class="elementor-button-wrapper">
<a class="elementor-button elementor-button-link elementor-size-sm" href="#marche">
<span class="elementor-button-content-wrapper">
<span class="elementor-button-text">Découvrir</span>
</span>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section class="elementor-section elementor-top-section elementor-element elementor-element-c228e19 animated-slow elementor-section-boxed elementor-section-height-default elementor-section-height-default elementor-invisible" data-id="c228e19" data-element_type="section" data-e-type="section" data-settings="{"animation":"fadeInUp"}">
<div class="elementor-container elementor-column-gap-default">
<div class="elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-c15604a" data-id="c15604a" data-element_type="column" data-e-type="column" data-settings="{"background_background":"classic"}">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-element elementor-element-746c512 elementor-widget elementor-widget-heading" data-id="746c512" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
<div class="elementor-widget-container">
<h2 class="elementor-heading-title elementor-size-default">Ouvert tous les jours</h2> </div>
</div>
<div class="elementor-element elementor-element-29b19f0 elementor-widget elementor-widget-heading" data-id="29b19f0" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
<div class="elementor-widget-container">
<p class="elementor-heading-title elementor-size-default">de 8h à 13h sauf lundi & mercredi</p> </div>
</div>
<div class="elementor-element elementor-element-17b472b elementor-widget__width-auto elementor-view-default elementor-widget elementor-widget-icon" data-id="17b472b" data-element_type="widget" data-e-type="widget" data-widget_type="icon.default">
<div class="elementor-widget-container">
<div class="elementor-icon-wrapper">
<div class="elementor-icon">
<i aria-hidden="true" class="icon icon-store"></i> </div>
</div>
</div>
</div>
</div>
</div>
<div class="elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-8caaf72" data-id="8caaf72" data-element_type="column" data-e-type="column" data-settings="{"background_background":"classic"}">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-element elementor-element-61f101d elementor-widget elementor-widget-heading" data-id="61f101d" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
<div class="elementor-widget-container">
<h2 class="elementor-heading-title elementor-size-default">+ de 40</h2> </div>
</div>
<div class="elementor-element elementor-element-c5b8f41 elementor-widget elementor-widget-heading" data-id="c5b8f41" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
<div class="elementor-widget-container">
<p class="elementor-heading-title elementor-size-default">Commerçants et producteurs</p> </div>
</div>
<div class="elementor-element elementor-element-aa39a48 elementor-widget__width-auto elementor-view-default elementor-widget elementor-widget-icon" data-id="aa39a48" data-element_type="widget" data-e-type="widget" data-widget_type="icon.default">
<div class="elementor-widget-container">
<div class="elementor-icon-wrapper">
<div class="elementor-icon">
<i aria-hidden="true" class="icon icon-shopping-basket"></i> </div>
</div>
</div>
</div>
</div>
</div>
<div class="elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-1e67933" data-id="1e67933" data-element_type="column" data-e-type="column" data-settings="{"background_background":"classic"}">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-element elementor-element-b25b657 elementor-widget elementor-widget-heading" data-id="b25b657" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
<div class="elementor-widget-container">
<h2 class="elementor-heading-title elementor-size-default">Sur place</h2> </div>
</div>
<div class="elementor-element elementor-element-55d5318 elementor-widget elementor-widget-heading" data-id="55d5318" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
<div class="elementor-widget-container">
<p class="elementor-heading-title elementor-size-default">Bar & restauration</p> </div>
</div>
<div class="elementor-element elementor-element-f41f976 elementor-widget__width-auto elementor-view-default elementor-widget elementor-widget-icon" data-id="f41f976" data-element_type="widget" data-e-type="widget" data-widget_type="icon.default">
<div class="elementor-widget-container">
<div class="elementor-icon-wrapper">
<div class="elementor-icon">
<i aria-hidden="true" class="icon icon-drink-glass"></i> </div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section class="elementor-section elementor-top-section elementor-element elementor-element-8410376 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="8410376" data-element_type="section" data-e-type="section" data-settings="{"background_background":"classic"}">
<div class="elementor-container elementor-column-gap-default">
<div class="elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-26cdecb animated-slow elementor-invisible" data-id="26cdecb" data-element_type="column" data-e-type="column" data-settings="{"animation":"zoomIn"}">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-element elementor-element-26ed76f elementor-widget elementor-widget-image" data-id="26ed76f" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
<div class="elementor-widget-container">
<img fetchpriority="high" decoding="async" width="800" height="534" src="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/05/etalage-fruits-et-legumes-des-halles-de-la-roche-sur-yon.jpg" class="attachment-large size-large wp-image-302" alt="étalage fruits et légumes des halles de la roche sur yon" srcset="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/05/etalage-fruits-et-legumes-des-halles-de-la-roche-sur-yon.jpg 1000w, https://leshalles-larochesuryon.fr/wp-content/uploads/2025/05/etalage-fruits-et-legumes-des-halles-de-la-roche-sur-yon-300x200.jpg 300w, https://leshalles-larochesuryon.fr/wp-content/uploads/2025/05/etalage-fruits-et-legumes-des-halles-de-la-roche-sur-yon-768x512.jpg 768w" sizes="(max-width: 800px) 100vw, 800px" /> </div>
</div>
<div class="elementor-element elementor-element-d7bec92 elementor-hidden-tablet_extra elementor-hidden-mobile elementor-widget elementor-widget-image" data-id="d7bec92" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
<div class="elementor-widget-container">
<img decoding="async" width="183" height="427" src="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/02/Vector2.png" class="attachment-large size-large wp-image-144" alt="" srcset="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/02/Vector2.png 183w, https://leshalles-larochesuryon.fr/wp-content/uploads/2025/02/Vector2-129x300.png 129w" sizes="(max-width: 183px) 100vw, 183px" /> </div>
</div>
<div class="elementor-element elementor-element-ffe414d elementor-hidden-laptop elementor-hidden-mobile elementor-widget elementor-widget-image" data-id="ffe414d" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
<div class="elementor-widget-container">
<img decoding="async" width="178" height="169" src="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/02/Vector.png" class="attachment-large size-large wp-image-145" alt="" /> </div>
</div>
<div class="elementor-element elementor-element-6759a38 elementor-widget__width-auto elementor-widget-mobile__width-initial elementor-hidden-laptop elementor-hidden-mobile elementor-widget elementor-widget-image" data-id="6759a38" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
<div class="elementor-widget-container">
<img loading="lazy" decoding="async" width="800" height="534" src="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/05/etelage-halle-de-la-roche-sur-yon-legumes-.jpg" class="attachment-large size-large wp-image-303" alt="étalage halle de la roche sur yon légumes" srcset="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/05/etelage-halle-de-la-roche-sur-yon-legumes-.jpg 1000w, https://leshalles-larochesuryon.fr/wp-content/uploads/2025/05/etelage-halle-de-la-roche-sur-yon-legumes--300x200.jpg 300w, https://leshalles-larochesuryon.fr/wp-content/uploads/2025/05/etelage-halle-de-la-roche-sur-yon-legumes--768x512.jpg 768w" sizes="(max-width: 800px) 100vw, 800px" /> </div>
</div>
</div>
</div>
<div class="elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-10bc7f0" data-id="10bc7f0" data-element_type="column" data-e-type="column">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-element elementor-element-978817d elementor-widget elementor-widget-menu-anchor" data-id="978817d" data-element_type="widget" data-e-type="widget" data-widget_type="menu-anchor.default">
<div class="elementor-widget-container">
<div class="elementor-menu-anchor" id="marche"></div>
</div>
</div>
<div class="elementor-element elementor-element-52ea8a6 elementor-widget elementor-widget-heading" data-id="52ea8a6" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
<div class="elementor-widget-container">
<h2 class="elementor-heading-title elementor-size-default">Notre Marché</h2> </div>
</div>
<div class="elementor-element elementor-element-d04095e elementor-widget elementor-widget-heading" data-id="d04095e" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
<div class="elementor-widget-container">
<h3 class="elementor-heading-title elementor-size-default">Le marché des Halles de La Roche sur Yon</h3> </div>
</div>
<div class="elementor-element elementor-element-f29e431 elementor-widget elementor-widget-heading" data-id="f29e431" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
<div class="elementor-widget-container">
<p class="elementor-heading-title elementor-size-default">Ouvert tous les jours de 8h à 13h sauf le Lundi & Mercredi.</p> </div>
</div>
<div class="elementor-element elementor-element-943d99e elementor-widget elementor-widget-text-editor" data-id="943d99e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
<div class="elementor-widget-container">
<p><span style="color: #000000;">Au cœur du centre historique de La Roche-sur-Yon, les Halles réunissent environ quarante commerçants et producteurs sous une halle contemporaine. Fruits, légumes, huîtres, fromages, charcuteries et créations artisanales : toute la saveur vendéenne, fraîche et de saison, vous attend sur les étals. Faites ensuite une pause au bar ou à l’espace convivialité pour un café ou un brunch composé des produits du marché, tandis que concerts et ateliers culinaires animent les lieux toute l’année. Chaque jeudi, et surtout le samedi, un marché de plein air vient élargir l’offre dans une ambiance chaleureuse et gourmande.</span></p> </div>
</div>
<section class="elementor-section elementor-inner-section elementor-element elementor-element-50b8f0e elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="50b8f0e" data-element_type="section" data-e-type="section">
<div class="elementor-container elementor-column-gap-default">
<div class="elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-e23c66f" data-id="e23c66f" data-element_type="column" data-e-type="column">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-element elementor-element-66588ca elementor-position-left elementor-vertical-align-top elementor-widget elementor-widget-image-box" data-id="66588ca" data-element_type="widget" data-e-type="widget" data-widget_type="image-box.default">
<div class="elementor-widget-container">
<div class="elementor-image-box-wrapper"><figure class="elementor-image-box-img"><img loading="lazy" decoding="async" width="60" height="60" src="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/02/3362637.png" class="elementor-animation-shrink attachment-full size-full wp-image-147" alt="" /></figure><div class="elementor-image-box-content"><h4 class="elementor-image-box-title">Marché plein air</h4><p class="elementor-image-box-description">le Samedi</p></div></div> </div>
</div>
</div>
</div>
<div class="elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-ec0cc6c" data-id="ec0cc6c" data-element_type="column" data-e-type="column">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-element elementor-element-3e62467 elementor-position-left elementor-vertical-align-top elementor-widget elementor-widget-image-box" data-id="3e62467" data-element_type="widget" data-e-type="widget" data-widget_type="image-box.default">
<div class="elementor-widget-container">
<div class="elementor-image-box-wrapper"><figure class="elementor-image-box-img"><img loading="lazy" decoding="async" width="64" height="60" src="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/02/2194844.png" class="elementor-animation-shrink attachment-full size-full wp-image-148" alt="" /></figure><div class="elementor-image-box-content"><h4 class="elementor-image-box-title">Qualité marché</h4><p class="elementor-image-box-description">Labellisé depuis 2008</p></div></div> </div>
</div>
</div>
</div>
</div>
</section>
<div class="elementor-element elementor-element-70977ec elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list" data-id="70977ec" data-element_type="widget" data-e-type="widget" data-widget_type="icon-list.default">
<div class="elementor-widget-container">
<ul class="elementor-icon-list-items">
<li class="elementor-icon-list-item">
<span class="elementor-icon-list-icon">
<i aria-hidden="true" class="icon icon-placeholder2"></i> </span>
<span class="elementor-icon-list-text">Place du Marché, 85000 La Roche-sur-Yon</span>
</li>
</ul>
</div>
</div>
<div class="elementor-element elementor-element-306e2df elementor-mobile-align-center elementor-widget elementor-widget-button" data-id="306e2df" data-element_type="widget" data-e-type="widget" data-widget_type="button.default">
<div class="elementor-widget-container">
<div class="elementor-button-wrapper">
<a class="elementor-button elementor-button-link elementor-size-sm elementor-animation-shrink" href="https://leshalles-larochesuryon.fr/actualites/">
<span class="elementor-button-content-wrapper">
<span class="elementor-button-text">Actualités</span>
</span>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section class="elementor-section elementor-top-section elementor-element elementor-element-34d783d elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="34d783d" data-element_type="section" data-e-type="section">
<div class="elementor-container elementor-column-gap-default">
<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-7edb918" data-id="7edb918" data-element_type="column" data-e-type="column">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-element elementor-element-a71f33f elementor-widget elementor-widget-html" data-id="a71f33f" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
<div class="elementor-widget-container">
<section class="chiffres-halles">
<div class="chiffres-halles__head">
<h2 class="chiffres-halles__eyebrow">Les Halles en chiffres</h2>
<h3 class="chiffres-halles__title">Un marché qui a du caractère</h3>
<p class="chiffres-halles__sub">
Depuis plus de trois siècles, les Halles font battre le cœur gourmand
de La Roche-sur-Yon. Quelques chiffres pour le prouver.
</p>
</div>
<div class="chiffres-halles__grid">
<div class="chiffres-halles__card">
<div class="chiffres-halles__ico">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"/>
<circle cx="9" cy="7" r="4"/>
<path d="M23 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75"/>
</svg>
</div>
<div class="chiffres-halles__number" data-target="40" data-suffix="+">0<span class="suffix"></span></div>
<div class="chiffres-halles__label">Commerçants & producteurs</div>
<p class="chiffres-halles__desc">Des univers variés réunis sous un même toit.</p>
</div>
<div class="chiffres-halles__card">
<div class="chiffres-halles__ico">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M12 2 4 5v6c0 5 3.4 9.4 8 11 4.6-1.6 8-6 8-11V5l-8-3z"/>
<path d="m9 12 2 2 4-4"/>
</svg>
</div>
<div class="chiffres-halles__number" data-target="2008" data-suffix="">0<span class="suffix"></span></div>
<div class="chiffres-halles__label">Labellisé qualité</div>
<p class="chiffres-halles__desc">Une exigence reconnue année après année.</p>
</div>
<div class="chiffres-halles__card">
<div class="chiffres-halles__ico">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<rect x="3" y="4" width="18" height="18" rx="2"/>
<path d="M16 2v4M8 2v4M3 10h18"/>
</svg>
</div>
<div class="chiffres-halles__number" data-target="5" data-suffix="j/7">0<span class="suffix"></span></div>
<div class="chiffres-halles__label">Jours d'ouverture</div>
<p class="chiffres-halles__desc">Même ouvert le week-end.</p>
</div>
<div class="chiffres-halles__card">
<div class="chiffres-halles__ico">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M12 21s-7-4.5-9.5-9A5.5 5.5 0 0 1 12 6a5.5 5.5 0 0 1 9.5 6c-2.5 4.5-9.5 9-9.5 9z"/>
</svg>
</div>
<div class="chiffres-halles__number" data-target="140" data-suffix="ans">0<span class="suffix"></span></div>
<div class="chiffres-halles__label">D'existance</div>
<p class="chiffres-halles__desc">Les Halles existe depuis 1886.</p>
</div>
</div>
</section>
<script type="158dd22977020f896ecdbf43-text/javascript">
(function() {
var section = document.querySelector('.chiffres-halles');
if (!section) return;
var numbers = section.querySelectorAll('.chiffres-halles__number');
var animated = false;
function animateNumber(el) {
var target = parseInt(el.getAttribute('data-target'), 10);
var suffix = el.getAttribute('data-suffix') || '';
var suffixSpan = el.querySelector('.suffix');
var duration = 1600;
var start = null;
function step(timestamp) {
if (!start) start = timestamp;
var progress = Math.min((timestamp - start) / duration, 1);
var eased = 1 - Math.pow(1 - progress, 3); // easeOutCubic
var value = Math.round(eased * target);
el.firstChild.nodeValue = value.toString();
if (progress < 1) {
requestAnimationFrame(step);
} else {
el.firstChild.nodeValue = target.toString();
}
}
if (suffixSpan) suffixSpan.textContent = suffix;
requestAnimationFrame(step);
}
function trigger() {
if (animated) return;
animated = true;
section.classList.add('is-visible');
numbers.forEach(animateNumber);
}
if ('IntersectionObserver' in window) {
var observer = new IntersectionObserver(function(entries) {
entries.forEach(function(entry) {
if (entry.isIntersecting) {
trigger();
observer.disconnect();
}
});
}, { threshold: 0.3 });
observer.observe(section);
} else {
trigger();
}
})();
</script>
</div>
</div>
</div>
</div>
</div>
</section>
<section class="elementor-section elementor-top-section elementor-element elementor-element-febd1f1 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="febd1f1" data-element_type="section" data-e-type="section">
<div class="elementor-container elementor-column-gap-default">
<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-32f2e9f" data-id="32f2e9f" data-element_type="column" data-e-type="column">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-element elementor-element-89ef34a elementor-widget elementor-widget-html" data-id="89ef34a" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
<div class="elementor-widget-container">
<style>
/* Scope tout le CSS au conteneur .halles-plan pour éviter les conflits WordPress/Elementor */
.halles-plan, .halles-plan * { box-sizing: border-box; }
.halles-plan { max-width: 100%; overflow: visible; }
/* --- Titres --- */
.halles-plan .content-titles { text-align: center; margin-bottom: 24px; }
.halles-plan .content-eyebrow {
margin: 0 0 4px;
font-size: clamp(14px, 3vw, 18px);
font-weight: 500;
color: #4B4B4A;
}
.halles-plan .content-title {
margin: 0;
font-family: "Manrope", "Helvetica Neue", Arial, sans-serif;
font-weight: 800;
font-size: clamp(28px, 5.5vw, 46px);
line-height: 1.1;
color: #4BAF48;
}
.halles-plan .table-container { width: 100%; overflow-x: auto; overflow-y: visible; margin-bottom: 20px; -webkit-overflow-scrolling: touch; scrollbar-width: none; -ms-overflow-style: none; }
.halles-plan .table-container::-webkit-scrollbar { display: none; }
.halles-plan .static-table { width: 100%; min-width: 600px; border-collapse: collapse; table-layout: fixed; }
.halles-plan .static-table td { text-align: center; vertical-align: middle; padding: 4px; height: 40px; width: calc(100% / 9); font-size: clamp(10px, 2vw, 14px); position: relative; background-size: cover; background-position: center; background-repeat: no-repeat; }
/* Emoji rendu en image (style Apple) pour un affichage identique sur tous les navigateurs */
.halles-plan .emoji-img { display: inline-block; vertical-align: middle; width: 1em; height: 1em; }
/* Images de fond par catégorie - appliquées sur les <td> */
.halles-plan .static-table td.bars { background-image: url(https://leshalles-larochesuryon.fr/wp-content/uploads/2025/05/bars.png); }
.halles-plan .static-table td.boucherie { background-image: url(https://leshalles-larochesuryon.fr/wp-content/uploads/2025/05/boucherie.png); }
.halles-plan .static-table td.poissonnier { background-image: url(https://leshalles-larochesuryon.fr/wp-content/uploads/2025/05/poissonnier.png); }
.halles-plan .static-table td.fromager { background-image: url(https://leshalles-larochesuryon.fr/wp-content/uploads/2025/05/fromager.png); }
.halles-plan .static-table td.boulangerie { background-image: url(https://leshalles-larochesuryon.fr/wp-content/uploads/2025/05/boulangerie.png); }
.halles-plan .static-table td.fruits-legumes { background-image: url(https://leshalles-larochesuryon.fr/wp-content/uploads/2025/05/fruits-legumes.png); }
.halles-plan .static-table td.plats { background-image: url(https://leshalles-larochesuryon.fr/wp-content/uploads/2025/05/plats.png); }
/* Cas particuliers : stands logés dans un div interne (cellule partagée). L'image s'applique sur le div. */
.halles-plan .cell-img { background-size: cover; background-position: center; background-repeat: no-repeat; position: relative; height: 100%; min-height: 100%; align-self: stretch; }
.halles-plan .cell-img.bars { background-image: url(https://leshalles-larochesuryon.fr/wp-content/uploads/2025/05/bars.png); }
.halles-plan .cell-img.boucherie { background-image: url(https://leshalles-larochesuryon.fr/wp-content/uploads/2025/05/boucherie.png); }
.halles-plan .cell-img.poissonnier { background-image: url(https://leshalles-larochesuryon.fr/wp-content/uploads/2025/05/poissonnier.png); }
.halles-plan .cell-img.fromager { background-image: url(https://leshalles-larochesuryon.fr/wp-content/uploads/2025/05/fromager.png); }
.halles-plan .cell-img.boulangerie { background-image: url(https://leshalles-larochesuryon.fr/wp-content/uploads/2025/05/boulangerie.png); }
.halles-plan .cell-img.fruits-legumes { background-image: url(https://leshalles-larochesuryon.fr/wp-content/uploads/2025/05/fruits-legumes.png); }
.halles-plan .cell-img.plats { background-image: url(https://leshalles-larochesuryon.fr/wp-content/uploads/2025/05/plats.png); }
/* Voile noir du filtre pour ces div internes */
.halles-plan .cell-img::after {
content: "";
position: absolute;
inset: 0;
background-color: rgba(0, 0, 0, 0);
transition: background-color 0.25s ease;
pointer-events: none;
z-index: 1;
}
.halles-plan.has-filter .cell-img.dimmed::after { background-color: rgba(0, 0, 0, 0.6); }
.halles-plan .number-circle { width: 25px; height: 25px; border-radius: 50%; background-color: #007cba; color: white; display: flex; align-items: center; justify-content: center; margin: 0 auto; font-weight: bold; font-size: clamp(8px, 1.5vw, 12px); cursor: pointer; transition: transform 0.2s; position: relative; z-index: 2; }
.halles-plan .number-circle:hover { transform: scale(1.1); z-index: 20; }
.halles-plan .number-circle.bars { background-color: #8e44ad; }
.halles-plan .number-circle.fromager { background-color: #f39c12; }
.halles-plan .number-circle.fruits-legumes { background-color: #27ae60; }
.halles-plan .number-circle.boucherie { background-color: #e74c3c; }
.halles-plan .number-circle.boulangerie { background-color: #d35400; }
.halles-plan .number-circle.plats { background-color: #3498db; }
.halles-plan .number-circle.poissonnier { background-color: #1abc9c; }
/* Emoji à l'intérieur d'une pastille */
.halles-plan .number-circle .emoji-img { width: 70%; height: 70%; }
/* La pastille n'a JAMAIS d'image de fond : couleur unie + emoji uniquement */
.halles-plan .number-circle { background-image: none !important; }
/* --- Tooltip nom de l'enseigne : position FIXED pour ne jamais être rogné par le conteneur scrollable --- */
.halles-plan-tooltip {
position: fixed;
background-color: #2c3e50;
color: #fff;
padding: 6px 10px;
border-radius: 5px;
font-family: "Manrope", "Helvetica Neue", Arial, sans-serif;
font-size: 12px;
font-weight: 500;
white-space: nowrap;
opacity: 0;
visibility: hidden;
transition: opacity 0.15s ease;
z-index: 99999;
pointer-events: none;
box-shadow: 0 3px 10px rgba(0,0,0,0.3);
transform: translate(-50%, -100%);
}
.halles-plan-tooltip.is-shown { opacity: 1; visibility: visible; }
.halles-plan-tooltip::after {
content: "";
position: absolute;
top: 100%;
left: 50%;
transform: translateX(-50%);
border: 5px solid transparent;
border-top-color: #2c3e50;
}
.halles-plan .secteur { background-color: #f0f0f0; }
.halles-plan .secteur--grand { background-color: #e8e8e8; }
.halles-plan .degustation { background-color: #fff3cd; font-size: clamp(8px, 1.5vw, 12px); padding: 2px; }
.halles-plan .no-border-bottom { border-bottom: none !important; }
.halles-plan .no-border-top { border-top: none !important; }
/* --- Mise en valeur : voile noir semi-transparent sur les éléments non sélectionnés --- */
.halles-plan .static-table td[data-id]::after {
content: "";
position: absolute;
inset: 0;
background-color: rgba(0, 0, 0, 0);
transition: background-color 0.25s ease;
pointer-events: none;
z-index: 1;
}
.halles-plan.has-filter .static-table td[data-id].dimmed::after {
background-color: rgba(0, 0, 0, 0.6);
}
.halles-plan .number-circle::after {
content: "";
position: absolute;
inset: 0;
border-radius: 50%;
background-color: rgba(0, 0, 0, 0);
transition: background-color 0.25s ease;
pointer-events: none;
}
.halles-plan.has-filter .number-circle.dimmed::after {
background-color: rgba(0, 0, 0, 0.55);
}
.halles-plan .legendes { margin-top: 20px; }
.halles-plan .legende-container { margin-bottom: 15px; }
.halles-plan .legende-items { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-bottom: 15px; }
.halles-plan .legende-item { display: flex; align-items: center; gap: 8px; padding: 8px 12px; background-color: #f8f9fa; border: 2px solid transparent; border-radius: 4px; cursor: pointer; transition: background-color 0.2s, border-color 0.2s, opacity 0.2s; font-size: clamp(11px, 2.2vw, 13px); white-space: nowrap; flex-shrink: 0; }
.halles-plan .legende-item:hover { background-color: #e9ecef; }
.halles-plan.has-filter .legende-item[data-category] { opacity: 0.5; }
.halles-plan.has-filter .legende-item[data-category].is-active { opacity: 1; background-color: #e9ecef; border-color: #4BAF48; }
/* Cercle de la légende : pastille colorée contenant l'emoji */
.halles-plan .cercle-couleur { width: 22px; height: 22px; border-radius: 50%; flex-shrink: 0; display: flex; align-items: center; justify-content: center; }
.halles-plan .cercle-couleur .emoji-img { width: 68%; height: 68%; }
.halles-plan .cercle-couleur.bars { background-color: #8e44ad; }
.halles-plan .cercle-couleur.fromager { background-color: #f39c12; }
.halles-plan .cercle-couleur.fruits-legumes { background-color: #27ae60; }
.halles-plan .cercle-couleur.boucherie { background-color: #e74c3c; }
.halles-plan .cercle-couleur.boulangerie { background-color: #d35400; }
.halles-plan .cercle-couleur.plats { background-color: #3498db; }
.halles-plan .cercle-couleur.poissonnier { background-color: #1abc9c; }
.halles-plan .hidden { display: none; }
.halles-plan .scroll-indicator { display: none; text-align: center; color: #666; font-size: 12px; margin-bottom: 10px; }
@media (max-width: 768px) {
.halles-plan .static-table { min-width: 500px; }
.halles-plan .static-table td { height: 35px; padding: 2px; }
.halles-plan .number-circle { width: 20px; height: 20px; }
.halles-plan .legende-items { flex-direction: column; gap: 8px; }
.halles-plan .legende-item { padding: 6px; justify-content: flex-start; }
.halles-plan .scroll-indicator { display: block; }
}
@media (max-width: 480px) {
.halles-plan .static-table { min-width: 400px; }
.halles-plan .static-table td { height: 30px; padding: 1px; }
.halles-plan .number-circle { width: 18px; height: 18px; }
}
</style>
<div class="halles-plan">
<div class="content">
<div class="content-titles">
<h2 class="content-eyebrow">Plan intérieur des Halles</h2>
<h3 class="content-title">Trouvez votre commerçant</h3>
</div>
<div class="scroll-indicator">
← Glissez horizontalement pour voir tout le plan →
</div>
<div class="table-container">
<table class="static-table">
<tbody>
<tr>
<td></td>
<td data-id="1"><div data-id="1" class="number-circle"></div></td>
<td data-id="1b"><div data-id="1b" class="number-circle"></div></td>
<td></td>
<td rowspan="4" colspan="1" class="secteur">
<div style="position: relative; height: 100%; width: 100%;">
<div style="position: absolute; top: 5px; left: 5px;"><img decoding="async" class="emoji-img" style="width:28px;height:28px;" src="https://cdn.jsdelivr.net/npm/emoji-datasource-apple@15.1.2/img/apple/64/1f6aa.png" alt="porte"></div>
</div>
</td>
<td rowspan="2" colspan="2" class="secteur"></td>
<td rowspan="5" colspan="1" class="secteur"></td>
<td></td>
</tr>
<tr>
<td rowspan="3" colspan="2" class="secteur--grand">
<div style="position: relative; height: 100%; width: 100%;">
<div style="position: absolute; top: 5px; left: 5px;"><img decoding="async" class="emoji-img" style="width:32px;height:32px;" src="https://cdn.jsdelivr.net/npm/emoji-datasource-apple@15.1.2/img/apple/64/1f6aa.png" alt="porte"></div>
</div>
</td>
<td rowspan="1" colspan="2" class="secteur"></td>
<td rowspan="3" colspan="1" data-id="5"><div data-id="5" class="number-circle"></div></td>
</tr>
<tr>
<td data-id="2"><div data-id="2" class="number-circle"></div></td>
<td data-id="3"><div data-id="3" class="number-circle"></div></td>
<td rowspan="1" colspan="2" data-id="4"><div data-id="4" class="number-circle"></div></td>
</tr>
<tr>
<td data-id="8"><div data-id="8" class="number-circle"></div></td>
<td data-id="7"><div data-id="7" class="number-circle"></div></td>
<td rowspan="1" colspan="2" data-id="6"><div data-id="6" class="number-circle"></div></td>
</tr>
<tr>
<td rowspan="2" colspan="1" class="degustation no-border-bottom"></td>
<td rowspan="2" colspan="1" class="secteur--grand"></td>
<td rowspan="1" colspan="2" class="secteur"></td>
<td rowspan="4" colspan="1" class="secteur"></td>
<td rowspan="1" colspan="2" class="secteur"></td>
<td></td>
</tr>
<tr>
<td data-id="9"><div data-id="9" class="number-circle"></div></td>
<td data-id="10"><div data-id="10" class="number-circle"></div></td>
<td rowspan="1" colspan="2" data-id="11"><div data-id="11" class="number-circle"></div></td>
<td rowspan="7" colspan="1" class="secteur"></td>
<td rowspan="6" colspan="1" data-id="12">
<div data-id="12" class="number-circle"></div>
<div data-id="22" class="number-circle"></div>
</td>
</tr>
<tr>
<td rowspan="3" colspan="1" style="padding:0px;">
<div style="display: flex; height: 100%;">
<div style="flex: 0 0 74%; align-content: center; border-radius: unset" class="degustation no-border-bottom no-border-top">Terrasse du pôle dégustation</div>
<div style="flex: 0 0 25%; align-content: center;" data-id="17"><div data-id="17" class="number-circle"></div></div>
</div>
</td>
<td style="padding:0px;">
<div style="display: flex; height: 100%;">
<div style="flex: 0 0 25%; align-content:center;" data-id="16"><div data-id="16" class="number-circle"></div></div>
<div style="flex: 0 0 75%;" class="secteur--grand"></div>
</div>
</td>
<td data-id="15"><div data-id="15" class="number-circle"></div></td>
<td data-id="14"><div data-id="14" class="number-circle"></div></td>
<td rowspan="1" colspan="2" data-id="13"><div data-id="13" class="number-circle"></div></td>
</tr>
<tr>
<td class="secteur--grand" style="padding:0px;"></td>
<td rowspan="1" colspan="2" class="secteur"></td>
<td rowspan="1" colspan="2" class="secteur"></td>
</tr>
<tr>
<td class="secteur--grand" style="padding:0px;">
<div style="display: flex; height: 100%;">
<div style="flex: 0 0 25%; align-content: center;" data-id="18"><div data-id="18" class="number-circle"></div></div>
<div style="flex: 0 0 75%;" class="secteur--grand"></div>
</div>
</td>
<td data-id="19"><div data-id="19" class="number-circle"></div></td>
<td data-id="20"><div data-id="20" class="number-circle"></div></td>
<td rowspan="4" colspan="1" class="secteur"></td>
<td data-id="21"><div data-id="21" class="number-circle"></div></td>
<td data-id="21b"><div data-id="21b" class="number-circle"></div></td>
</tr>
<tr>
<td rowspan="2" colspan="1" class="degustation no-border-top"></td>
<td rowspan="2" colspan="1" class="secteur--grand"></td>
<td data-id="25"><div data-id="25" class="number-circle"></div></td>
<td data-id="24"><div data-id="24" class="number-circle"></div></td>
<td rowspan="1" colspan="2" data-id="23"><div data-id="23" class="number-circle"></div></td>
</tr>
<tr>
<td rowspan="1" colspan="2" class="secteur"></td>
<td rowspan="1" colspan="2" class="secteur"></td>
</tr>
<tr>
<td rowspan="2" colspan="2" class="secteur--grand">
<div style="position: relative; height: 100%; width: 100%;">
<div style="position: absolute; bottom: -5px; left: 5px;"><img decoding="async" class="emoji-img" style="width:32px;height:32px;" src="https://cdn.jsdelivr.net/npm/emoji-datasource-apple@15.1.2/img/apple/64/1f6aa.png" alt="porte"></div>
</div>
</td>
<td data-id="26"><div data-id="26" class="number-circle"></div></td>
<td data-id="27"><div data-id="27" class="number-circle"></div></td>
<td rowspan="1" colspan="2" data-id="28"><div data-id="28" class="number-circle"></div></td>
<td>
<div style="position: relative; height: 100%; width: 100%;">
<div style="position: absolute; top: 50%; right: 5px; transform: translateY(-50%);"><img decoding="async" class="emoji-img" style="width:32px;height:32px;" src="https://cdn.jsdelivr.net/npm/emoji-datasource-apple@15.1.2/img/apple/64/1f6aa.png" alt="porte"></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div class="legendes">
<div class="legende-container">
<div class="legende-items">
<div class="legende-item" data-category="bars"><span class="cercle-couleur bars"></span><span class="texte-legende">Bars - vins - dégustation</span></div>
<div class="legende-item" data-category="fromager"><span class="cercle-couleur fromager"></span><span class="texte-legende">Fromager</span></div>
<div class="legende-item" data-category="fruits-legumes"><span class="cercle-couleur fruits-legumes"></span><span class="texte-legende">Fruits & légumes</span></div>
<div class="legende-item" data-category="boucherie"><span class="cercle-couleur boucherie"></span><span class="texte-legende">Boucherie - charcuterie - volaillers</span></div>
<div class="legende-item" data-category="boulangerie"><span class="cercle-couleur boulangerie"></span><span class="texte-legende">Boulangerie - pâtisserie</span></div>
<div class="legende-item" data-category="plats"><span class="cercle-couleur plats"></span><span class="texte-legende">Traiteur - épicerie - miel</span></div>
<div class="legende-item" data-category="poissonnier"><span class="cercle-couleur poissonnier"></span><span class="texte-legende">Poissonnier - ostréiculteurs</span></div>
<div class="legende-item" style="background-color: #f0f8ff; border: 1px solid #ddd; cursor: default;"><img decoding="async" class="emoji-img" src="https://cdn.jsdelivr.net/npm/emoji-datasource-apple@15.1.2/img/apple/64/1f6aa.png" alt="porte" style="width:16px;height:16px;"><span class="texte-legende">Entrées et sorties</span></div>
</div>
</div>
<div class="legende-container hidden"></div>
</div>
</div>
</div>
<script type="158dd22977020f896ecdbf43-text/javascript">
(function() {
// --- Données des établissements : nom + catégorie (source officielle du client) ---
var etablissements = {
'1': { nom: "Croc'Soleil", categorie: 'plats' },
'1b': { nom: "Auvray Miel", categorie: 'plats' },
'2': { nom: "Opéra des Fromages", categorie: 'fromager' },
'3': { nom: "Sauvaget Primeur", categorie: 'fruits-legumes' },
'4': { nom: "Touche à la Terre", categorie: 'fruits-legumes' },
'5': { nom: "Cherfaoui Traiteur", categorie: 'plats' },
'6': { nom: "L'arbre à sucre", categorie: 'boulangerie' },
'7': { nom: "Pâtisserie l'Amandine", categorie: 'boulangerie' },
'8': { nom: "Délices et saucissons", categorie: 'boucherie' },
'9': { nom: "Navarre Volailles", categorie: 'boucherie' },
'10': { nom: "Fromagerie Bellevaire", categorie: 'fromager' },
'11': { nom: "Raballand Huîtres", categorie: 'poissonnier' },
'12': { nom: "Maison Dorie", categorie: 'fruits-legumes' },
'13': { nom: "Maison Caquineau", categorie: 'boucherie' },
'14': { nom: "Gautier Charcuterie", categorie: 'boucherie' },
'15': { nom: "Arnaud Frères Boucherie", categorie: 'boucherie' },
'16': { nom: "Le Palais du vin", categorie: 'bars' },
'17': { nom: "Bar dégustation", categorie: 'bars' },
'18': { nom: "L'Angélus", categorie: 'boulangerie' },
'19': { nom: "Le vent de Fromages", categorie: 'fromager' },
'20': { nom: "Ferme de la Boutinière", categorie: 'boucherie' },
'21': { nom: "Parfum d'Orient", categorie: 'plats' },
'21b': { nom: "Traiteur Pakistanais", categorie: 'plats' },
'22': { nom: "Maison Dorie", categorie: 'fruits-legumes' },
'23': { nom: "Chez Christophe", categorie: 'poissonnier' },
'24': { nom: "?", categorie: 'poissonnier' },
'25': { nom: "Les pinasses de père en fils", categorie: 'poissonnier' },
'26': { nom: "Mon Poissonnier", categorie: 'poissonnier' },
'27': { nom: "Pépites d'iode", categorie: 'poissonnier' },
'28': { nom: "Maison Besseau", categorie: 'poissonnier' }
};
var emojiByCat = {
'bars': '1f377',
'fromager': '1f9c0',
'fruits-legumes': '1f955',
'boucherie': '1f969',
'boulangerie': '1f956',
'plats': '1f372',
'poissonnier': '1f41f'
};
var emojiBase = 'https://cdn.jsdelivr.net/npm/emoji-datasource-apple@15.1.2/img/apple/64/';
function emojiImg(cat) {
var code = emojiByCat[cat];
if (!code) return null;
var img = document.createElement('img');
img.className = 'emoji-img';
img.src = emojiBase + code + '.png';
img.alt = cat;
return img;
}
var plan = document.querySelector('.halles-plan');
// Tooltip unique en position fixed, ajouté au <body> pour ne jamais être rogné
var tooltipEl = document.createElement('div');
tooltipEl.className = 'halles-plan-tooltip';
document.body.appendChild(tooltipEl);
function showTooltip(circle) {
var nom = circle.getAttribute('data-nom');
if (!nom) return;
tooltipEl.textContent = nom;
tooltipEl.classList.add('is-shown');
var rect = circle.getBoundingClientRect();
tooltipEl.style.left = (rect.left + rect.width / 2) + 'px';
tooltipEl.style.top = (rect.top - 10) + 'px';
tooltipEl.style.transform = 'translate(-50%, -100%)';
}
function hideTooltip() {
tooltipEl.classList.remove('is-shown');
}
// 1) Pour chaque pastille : classe de catégorie, emoji, nom
document.querySelectorAll('.halles-plan .number-circle[data-id]').forEach(function(circle) {
var id = circle.getAttribute('data-id');
var etab = etablissements[id];
if (!etab) return;
var cat = etab.categorie;
var nom = (etab.nom && etab.nom !== '?') ? etab.nom : 'Enseigne à venir';
circle.classList.add(cat);
circle.innerHTML = '';
circle.setAttribute('data-nom', nom);
circle.setAttribute('title', nom);
var img = emojiImg(cat);
if (img) circle.appendChild(img);
var td = circle.closest('td[data-id]');
if (td && td.getAttribute('data-id') === id) {
td.classList.add(cat);
} else {
var innerCell = circle.parentElement ? circle.parentElement.closest('[data-id]') : null;
if (innerCell && innerCell !== circle) {
innerCell.classList.add(cat, 'cell-img');
}
}
// survol (desktop)
circle.addEventListener('mouseenter', function() { showTooltip(circle); });
circle.addEventListener('mouseleave', hideTooltip);
});
// 1bis) Clic sur une pastille (mobile) : bascule le tooltip
var openCircle = null;
document.querySelectorAll('.halles-plan .number-circle[data-id]').forEach(function(circle) {
circle.addEventListener('click', function(e) {
e.stopPropagation();
if (openCircle === circle) {
hideTooltip();
openCircle = null;
} else {
showTooltip(circle);
openCircle = circle;
}
});
});
document.addEventListener('click', function() {
hideTooltip();
openCircle = null;
});
// si on scrolle le tableau, on masque le tooltip (sa position deviendrait fausse)
var tableContainer = document.querySelector('.halles-plan .table-container');
if (tableContainer) {
tableContainer.addEventListener('scroll', function() { hideTooltip(); openCircle = null; });
}
window.addEventListener('scroll', function() { hideTooltip(); openCircle = null; }, true);
// 2) Emoji dans les cercles de la légende
document.querySelectorAll('.halles-plan .legende-item[data-category]').forEach(function(item) {
var cat = item.getAttribute('data-category');
var cercle = item.querySelector('.cercle-couleur');
var img = emojiImg(cat);
if (cercle && img) cercle.appendChild(img);
});
var activeCategory = null;
// 3) Applique le filtre : voile noir sur les éléments non sélectionnés
function applyFilter(cat) {
plan.classList.toggle('has-filter', !!cat);
document.querySelectorAll('.halles-plan .static-table td[data-id], .halles-plan .cell-img[data-id], .halles-plan .number-circle[data-id]').forEach(function(el) {
var id = el.getAttribute('data-id');
var etab = etablissements[id];
var elCat = etab ? etab.categorie : null;
var keep = (!cat) || (elCat === cat);
el.classList.toggle('dimmed', !!cat && !keep);
});
document.querySelectorAll('.halles-plan .legende-item[data-category]').forEach(function(item) {
item.classList.toggle('is-active', cat && item.getAttribute('data-category') === cat);
});
}
// 4) Clic sur une légende : sélection unique
document.querySelectorAll('.halles-plan .legende-item[data-category]').forEach(function(item) {
item.addEventListener('click', function() {
var cat = item.getAttribute('data-category');
activeCategory = (activeCategory === cat) ? null : cat;
applyFilter(activeCategory);
});
});
})();
</script> </div>
</div>
</div>
</div>
</div>
</section>
<section class="elementor-section elementor-top-section elementor-element elementor-element-9e24bff elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="9e24bff" data-element_type="section" data-e-type="section" data-settings="{"background_background":"classic"}">
<div class="elementor-background-overlay"></div>
<div class="elementor-container elementor-column-gap-default">
<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-f35cd90" data-id="f35cd90" data-element_type="column" data-e-type="column">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-element elementor-element-057282d elementor-widget elementor-widget-heading" data-id="057282d" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
<div class="elementor-widget-container">
<h2 class="elementor-heading-title elementor-size-default">Nos engagements</h2> </div>
</div>
<div class="elementor-element elementor-element-73ea614 elementor-widget elementor-widget-heading" data-id="73ea614" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
<div class="elementor-widget-container">
<h3 class="elementor-heading-title elementor-size-default">Des commerçants locaux & engagés</h3> </div>
</div>
</div>
</div>
</div>
</section>
<section class="elementor-section elementor-top-section elementor-element elementor-element-92f65f1 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="92f65f1" data-element_type="section" data-e-type="section">
<div class="elementor-container elementor-column-gap-custom">
<div class="elementor-column elementor-col-25 elementor-top-column elementor-element elementor-element-fa4ff88" data-id="fa4ff88" data-element_type="column" data-e-type="column">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-element elementor-element-d7fd2f2 elementor-widget elementor-widget-image" data-id="d7fd2f2" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
<div class="elementor-widget-container">
<img loading="lazy" decoding="async" width="270" height="320" src="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/02/img-home01-N2K5LR7-e1685781022382.jpg" class="attachment-large size-large wp-image-150" alt="" srcset="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/02/img-home01-N2K5LR7-e1685781022382.jpg 270w, https://leshalles-larochesuryon.fr/wp-content/uploads/2025/02/img-home01-N2K5LR7-e1685781022382-253x300.jpg 253w" sizes="(max-width: 270px) 100vw, 270px" /> </div>
</div>
<section class="elementor-section elementor-inner-section elementor-element elementor-element-73fd393 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="73fd393" data-element_type="section" data-e-type="section">
<div class="elementor-container elementor-column-gap-no">
<div class="elementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-1b27ad0" data-id="1b27ad0" data-element_type="column" data-e-type="column" data-settings="{"background_background":"classic"}">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-element elementor-element-359b945 elementor-widget__width-auto elementor-widget elementor-widget-image" data-id="359b945" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
<div class="elementor-widget-container">
<img loading="lazy" decoding="async" width="48" height="42" src="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/02/2922013.png" class="elementor-animation-shrink attachment-large size-large wp-image-151" alt="" /> </div>
</div>
<div class="elementor-element elementor-element-5d85fa7 elementor-widget elementor-widget-heading" data-id="5d85fa7" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
<div class="elementor-widget-container">
<h4 class="elementor-heading-title elementor-size-default">Produits frais </BR>
de qualité</h4> </div>
</div>
<div class="elementor-element elementor-element-5685521 elementor-widget elementor-widget-text-editor" data-id="5685521" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
<div class="elementor-widget-container">
<p>Les Halles rassemblent des commerçants passionnés qui proposent chaque jour des produits frais, locaux et de saison.</p> </div>
</div>
</div>
</div>
</div>
</section>
<div class="elementor-element elementor-element-21297e6 elementor-align-right elementor-widget elementor-widget-button" data-id="21297e6" data-element_type="widget" data-e-type="widget" data-widget_type="button.default">
<div class="elementor-widget-container">
<div class="elementor-button-wrapper">
<a class="elementor-button elementor-button-link elementor-size-sm" href="#">
<span class="elementor-button-content-wrapper">
<span class="elementor-button-text">Read More</span>
</span>
</a>
</div>
</div>
</div>
</div>
</div>
<div class="elementor-column elementor-col-25 elementor-top-column elementor-element elementor-element-7c8ff82" data-id="7c8ff82" data-element_type="column" data-e-type="column">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-element elementor-element-14b3688 elementor-widget elementor-widget-image" data-id="14b3688" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
<div class="elementor-widget-container">
<img loading="lazy" decoding="async" width="270" height="320" src="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/02/img-home01-2VM7FFF.jpg" class="attachment-large size-large wp-image-152" alt="" srcset="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/02/img-home01-2VM7FFF.jpg 270w, https://leshalles-larochesuryon.fr/wp-content/uploads/2025/02/img-home01-2VM7FFF-253x300.jpg 253w" sizes="(max-width: 270px) 100vw, 270px" /> </div>
</div>
<section class="elementor-section elementor-inner-section elementor-element elementor-element-151d1ef elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="151d1ef" data-element_type="section" data-e-type="section">
<div class="elementor-container elementor-column-gap-no">
<div class="elementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-03de73f" data-id="03de73f" data-element_type="column" data-e-type="column" data-settings="{"background_background":"classic"}">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-element elementor-element-98b7bc9 elementor-widget__width-auto elementor-widget elementor-widget-image" data-id="98b7bc9" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
<div class="elementor-widget-container">
<img loading="lazy" decoding="async" width="40" height="48" src="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/02/1892729-1.png" class="elementor-animation-shrink attachment-large size-large wp-image-153" alt="" /> </div>
</div>
<div class="elementor-element elementor-element-60a0828 elementor-widget elementor-widget-heading" data-id="60a0828" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
<div class="elementor-widget-container">
<h4 class="elementor-heading-title elementor-size-default">Savoir-faire </br>
artisanal</h4> </div>
</div>
<div class="elementor-element elementor-element-843f178 elementor-widget elementor-widget-text-editor" data-id="843f178" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
<div class="elementor-widget-container">
<p>Chaque stand reflète un véritable savoir-faire. Ici, le contact humain est au cœur de l’expérience depuis des années.</p> </div>
</div>
</div>
</div>
</div>
</section>
</div>
</div>
<div class="elementor-column elementor-col-25 elementor-top-column elementor-element elementor-element-de1de27" data-id="de1de27" data-element_type="column" data-e-type="column">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-element elementor-element-d2c26d1 elementor-widget elementor-widget-image" data-id="d2c26d1" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
<div class="elementor-widget-container">
<img loading="lazy" decoding="async" width="270" height="320" src="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/02/img-home01-LA9Q2FE.jpg" class="attachment-large size-large wp-image-154" alt="" srcset="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/02/img-home01-LA9Q2FE.jpg 270w, https://leshalles-larochesuryon.fr/wp-content/uploads/2025/02/img-home01-LA9Q2FE-253x300.jpg 253w" sizes="(max-width: 270px) 100vw, 270px" /> </div>
</div>
<section class="elementor-section elementor-inner-section elementor-element elementor-element-8c8fc87 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="8c8fc87" data-element_type="section" data-e-type="section">
<div class="elementor-container elementor-column-gap-no">
<div class="elementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-9eec95e" data-id="9eec95e" data-element_type="column" data-e-type="column" data-settings="{"background_background":"classic"}">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-element elementor-element-cf82d98 elementor-widget__width-auto elementor-widget elementor-widget-image" data-id="cf82d98" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
<div class="elementor-widget-container">
<img loading="lazy" decoding="async" width="48" height="44" src="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/02/4163704.png" class="elementor-animation-shrink attachment-large size-large wp-image-155" alt="" /> </div>
</div>
<div class="elementor-element elementor-element-f7314b7 elementor-widget elementor-widget-heading" data-id="f7314b7" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
<div class="elementor-widget-container">
<h4 class="elementor-heading-title elementor-size-default">Grande diversité</br>
de commerces</h4> </div>
</div>
<div class="elementor-element elementor-element-e48aa38 elementor-widget elementor-widget-text-editor" data-id="e48aa38" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
<div class="elementor-widget-container">
<p>Les Halles rassemblent une quarantaine de commerçants aux univers variés : Un concentré de saveurs sous un même toit !</p> </div>
</div>
</div>
</div>
</div>
</section>
<div class="elementor-element elementor-element-d98053a elementor-align-right elementor-widget elementor-widget-button" data-id="d98053a" data-element_type="widget" data-e-type="widget" data-widget_type="button.default">
<div class="elementor-widget-container">
<div class="elementor-button-wrapper">
<a class="elementor-button elementor-button-link elementor-size-sm" href="#">
<span class="elementor-button-content-wrapper">
<span class="elementor-button-text">Read More</span>
</span>
</a>
</div>
</div>
</div>
</div>
</div>
<div class="elementor-column elementor-col-25 elementor-top-column elementor-element elementor-element-40a5847" data-id="40a5847" data-element_type="column" data-e-type="column">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-element elementor-element-0187dcc elementor-widget elementor-widget-image" data-id="0187dcc" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
<div class="elementor-widget-container">
<img loading="lazy" decoding="async" width="270" height="320" src="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/02/image4-3.jpg" class="attachment-large size-large wp-image-156" alt="" srcset="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/02/image4-3.jpg 270w, https://leshalles-larochesuryon.fr/wp-content/uploads/2025/02/image4-3-253x300.jpg 253w" sizes="(max-width: 270px) 100vw, 270px" /> </div>
</div>
<section class="elementor-section elementor-inner-section elementor-element elementor-element-2446873 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="2446873" data-element_type="section" data-e-type="section">
<div class="elementor-container elementor-column-gap-no">
<div class="elementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-8cafecc" data-id="8cafecc" data-element_type="column" data-e-type="column" data-settings="{"background_background":"classic"}">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-element elementor-element-b82fbd9 elementor-widget__width-auto elementor-widget elementor-widget-image" data-id="b82fbd9" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
<div class="elementor-widget-container">
<img loading="lazy" decoding="async" width="46" height="46" src="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/02/1507366.png" class="elementor-animation-shrink attachment-large size-large wp-image-157" alt="" /> </div>
</div>
<div class="elementor-element elementor-element-7de9beb elementor-widget elementor-widget-heading" data-id="7de9beb" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
<div class="elementor-widget-container">
<h4 class="elementor-heading-title elementor-size-default">Soutien à </BR>
l’économie locale</h4> </div>
</div>
<div class="elementor-element elementor-element-5d0078d elementor-widget elementor-widget-text-editor" data-id="5d0078d" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
<div class="elementor-widget-container">
<p>En achetant aux Halles, vous faites vivre les producteurs, artisans et commerçants de la région. Un acte concret au soutient local.</p> </div>
</div>
</div>
</div>
</div>
</section>
<div class="elementor-element elementor-element-d3561b9 elementor-align-right elementor-widget elementor-widget-button" data-id="d3561b9" data-element_type="widget" data-e-type="widget" data-widget_type="button.default">
<div class="elementor-widget-container">
<div class="elementor-button-wrapper">
<a class="elementor-button elementor-button-link elementor-size-sm" href="#">
<span class="elementor-button-content-wrapper">
<span class="elementor-button-text">Read More</span>
</span>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section class="elementor-section elementor-top-section elementor-element elementor-element-44d93ea elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="44d93ea" data-element_type="section" data-e-type="section" data-settings="{"background_background":"classic"}">
<div class="elementor-container elementor-column-gap-default">
<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-4823499 animated-slow elementor-invisible" data-id="4823499" data-element_type="column" data-e-type="column" data-settings="{"animation":"zoomIn"}">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-element elementor-element-0ae050a elementor-widget elementor-widget-heading" data-id="0ae050a" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
<div class="elementor-widget-container">
<h2 class="elementor-heading-title elementor-size-default">Venez découvrir</h2> </div>
</div>
<div class="elementor-element elementor-element-6836dbe elementor-widget elementor-widget-heading" data-id="6836dbe" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
<div class="elementor-widget-container">
<h3 class="elementor-heading-title elementor-size-default">Des produits locaux</h3> </div>
</div>
<div class="elementor-element elementor-element-caa04de elementor-widget elementor-widget-html" data-id="caa04de" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
<div class="elementor-widget-container">
<section class="halles-commercants-section">
<div class="halles-container">
<div class="halles-carousel-container">
<div class="halles-carousel-track">
<div class="halles-merchant-card" style="--halles-category-color: #174ec2; --halles-category-color-dark: #033aae;">
<div class="halles-card-header">
<img decoding="async" class="halles-category-emoji" src="https://cdn.jsdelivr.net/npm/emoji-datasource-apple@15.1.2/img/apple/64/1f41f.png" alt="Poissonniers">
<h3 class="halles-category-name">Poissonniers</h3>
<p class="halles-merchants-count">4 Poissonniers</p>
</div>
<div class="halles-card-body">
<p class="halles-category-description">Poissons frais, crustacés et coquillages ultra-frais en direct des côtes atlantiques.</p>
<ul class="halles-merchants-list">
<li>• Chez Christophe</li>
<li>• Mon Poissonnier</li>
<li>• Maison Besseau</li>
<li>• Les pinasses sablaises</li>
</ul>
</div>
<div class="halles-card-footer">
<a href="https://leshalles-larochesuryon.fr/commercants/" class="halles-category-link">Découvrir <span class="halles-cta-icon">→</span></a>
</div>
</div>
<div class="halles-merchant-card" style="--halles-category-color: #f1cb20; --halles-category-color-dark: #ddb70c;">
<div class="halles-card-header">
<img decoding="async" class="halles-category-emoji" src="https://cdn.jsdelivr.net/npm/emoji-datasource-apple@15.1.2/img/apple/64/1f9c0.png" alt="Fromagers">
<h3 class="halles-category-name">Fromagers</h3>
<p class="halles-merchants-count">3 Fromagers</p>
</div>
<div class="halles-card-body">
<p class="halles-category-description">Fromages artisanaux affinés, crèmerie locale et plateaux personnalisés.</p>
<ul class="halles-merchants-list">
<li>• Beillevaire</li>
<li>• L'opéra des fromages</li>
<li>• Le vent de Fromages</li>
</ul>
</div>
<div class="halles-card-footer">
<a href="https://leshalles-larochesuryon.fr/commercants/" class="halles-category-link">Découvrir <span class="halles-cta-icon">→</span></a>
</div>
</div>
<div class="halles-merchant-card" style="--halles-category-color: #209c34; --halles-category-color-dark: #0c8820;">
<div class="halles-card-header">
<img decoding="async" class="halles-category-emoji" src="https://cdn.jsdelivr.net/npm/emoji-datasource-apple@15.1.2/img/apple/64/1f955.png" alt="Primeurs">
<h3 class="halles-category-name">Primeurs</h3>
<p class="halles-merchants-count">3 Primeurs</p>
</div>
<div class="halles-card-body">
<p class="halles-category-description">Fruits et légumes de saison, produits locaux et biologiques cueillis à maturité.</p>
<ul class="halles-merchants-list">
<li>• Sauvaget Primeurs</li>
<li>• Maison Dorie Castagnou</li>
<li>• Touche à la Terre</li>
</ul>
</div>
<div class="halles-card-footer">
<a href="https://leshalles-larochesuryon.fr/commercants/" class="halles-category-link">Découvrir <span class="halles-cta-icon">→</span></a>
</div>
</div>
<div class="halles-merchant-card" style="--halles-category-color: #d11f10; --halles-category-color-dark: #bd0b00;">
<div class="halles-card-header">
<img decoding="async" class="halles-category-emoji" src="https://cdn.jsdelivr.net/npm/emoji-datasource-apple@15.1.2/img/apple/64/1f969.png" alt="Bouchers">
<h3 class="halles-category-name">Bouchers</h3>
<p class="halles-merchants-count">3 Bouchers</p>
</div>
<div class="halles-card-body">
<p class="halles-category-description">Viandes de qualité, charcuterie artisanale issus de filières responsables.</p>
<ul class="halles-merchants-list">
<li>• Boucherie Caquineau</li>
<li>• Délices et Saucissons</li>
<li>• Ferme de la boutinière</li>
</ul>
</div>
<div class="halles-card-footer">
<a href="https://leshalles-larochesuryon.fr/commercants/" class="halles-category-link">Découvrir <span class="halles-cta-icon">→</span></a>
</div>
</div>
<div class="halles-merchant-card" style="--halles-category-color: #212d58; --halles-category-color-dark: #0d1944;">
<div class="halles-card-header">
<img decoding="async" class="halles-category-emoji" src="https://cdn.jsdelivr.net/npm/emoji-datasource-apple@15.1.2/img/apple/64/1f9aa.png" alt="Ostréiculteurs">
<h3 class="halles-category-name">Ostréiculteurs</h3>
<p class="halles-merchants-count">2 Ostréiculteurs</p>
</div>
<div class="halles-card-body">
<p class="halles-category-description">Huîtres fraîches et coquillages issus de nos parcs ostréicoles locaux.</p>
<ul class="halles-merchants-list">
<li>• Pépites d'Iode</li>
<li>• Raballand Damien</li>
</ul>
</div>
<div class="halles-card-footer">
<a href="https://leshalles-larochesuryon.fr/commercants/" class="halles-category-link">Découvrir <span class="halles-cta-icon">→</span></a>
</div>
</div>
<div class="halles-merchant-card" style="--halles-category-color: #e67e22; --halles-category-color-dark: #d35400;">
<div class="halles-card-header">
<img decoding="async" class="halles-category-emoji" src="https://cdn.jsdelivr.net/npm/emoji-datasource-apple@15.1.2/img/apple/64/1f956.png" alt="Boulangers">
<h3 class="halles-category-name">Boulangers</h3>
<p class="halles-merchants-count">2 Boulangers</p>
</div>
<div class="halles-card-body">
<p class="halles-category-description">Pains artisanaux, viennoiseries fraîches et pâtisseries maison préparés avec passion.</p>
<ul class="halles-merchants-list">
<li>• Croc'Soleil</li>
<li>• L'angelus</li>
</ul>
</div>
<div class="halles-card-footer">
<a href="https://leshalles-larochesuryon.fr/commercants/" class="halles-category-link">Découvrir <span class="halles-cta-icon">→</span></a>
</div>
</div>
<div class="halles-merchant-card" style="--halles-category-color: #f39c12; --halles-category-color-dark: #e67e22;">
<div class="halles-card-header">
<img decoding="async" class="halles-category-emoji" src="https://cdn.jsdelivr.net/npm/emoji-datasource-apple@15.1.2/img/apple/64/1f9c1.png" alt="Pâtissiers">
<h3 class="halles-category-name">Pâtissiers</h3>
<p class="halles-mepakistanais rchants-count">2 Pâtissiers</p>
</div>
<div class="halles-card-body">
<p class="halles-category-description">Créations pâtissières raffinées, gâteaux personnalisés et douceurs gourmandes.</p>
<ul class="halles-merchants-list">
<li>• L'Amandine</li>
<li>• L'arbre à sucre</li>
</ul>
</div>
<div class="halles-card-footer">
<a href="https://leshalles-larochesuryon.fr/commercants/" class="halles-category-link">Découvrir <span class="halles-cta-icon">→</span></a>
</div>
</div>
<div class="halles-merchant-card" style="--halles-category-color: #8e44ad; --halles-category-color-dark: #732d91;">
<div class="halles-card-header">
<img decoding="async" class="halles-category-emoji" src="https://cdn.jsdelivr.net/npm/emoji-datasource-apple@15.1.2/img/apple/64/1f338.png" alt="Fleuriste">
<h3 class="halles-category-name">Fleuriste</h3>
<p class="halles-merchants-count">1 Fleuriste</p>
</div>
<div class="halles-card-body">
<p class="halles-category-description">Compositions florales créatives, bouquets sur mesure et plantes pour embellir votre quotidien.</p>
<ul class="halles-merchants-list">
<li>• Laetdyfleurette</li>
</ul>
</div>
<div class="halles-card-footer">
<a href="https://leshalles-larochesuryon.fr/commercants/" class="halles-category-link">Découvrir <span class="halles-cta-icon">→</span></a>
</div>
</div>
<div class="halles-merchant-card" style="--halles-category-color: #27ae60; --halles-category-color-dark: #229954;">
<div class="halles-card-header">
<img decoding="async" class="halles-category-emoji" src="https://cdn.jsdelivr.net/npm/emoji-datasource-apple@15.1.2/img/apple/64/1f36f.png" alt="Épiciers">
<h3 class="halles-category-name">Épiciers - Traiteur</h3>
<p class="halles-merchants-count">4 Épiciers - Traiteur</p>
</div>
<div class="halles-card-body">
<p class="halles-category-description">Sélection de produits d'exception, miels locaux et spécialités du terroir vendéen.</p>
<ul class="halles-merchants-list">
<li>• Épicerie Fine du Marché</li>
<li>• Croc'Soleil</li>
<li>• Parfum d'orient</li>
<li>• Zahra</li>
</ul>
</div>
<div class="halles-card-footer">
<a href="https://leshalles-larochesuryon.fr/commercants/" class="halles-category-link">Découvrir <span class="halles-cta-icon">→</span></a>
</div>
</div>
</div>
</div>
<div class="hallesdots-navigation-container"></div>
</div>
</section>
<script type="158dd22977020f896ecdbf43-text/javascript">
(function() {
function initHallesCarousel() {
var section = document.querySelector('.halles-commercants-section');
if (!section || section.dataset.hallesInit === '1') return;
section.dataset.hallesInit = '1';
var track = section.querySelector('.halles-carousel-track');
var dotsContainer = section.querySelector('.hallesdots-navigation-container');
var carousel = section.querySelector('.halles-carousel-container');
if (!track || !dotsContainer || !carousel) return;
var originalCards = Array.prototype.slice.call(track.querySelectorAll('.halles-merchant-card'));
var totalCards = originalCards.length;
if (totalCards === 0) return;
var currentIndex = 0;
var autoplayInterval;
// Dupliquer les cartes pour la boucle infinie
for (var i = totalCards - 1; i >= 0; i--) {
var cloneStart = originalCards[i].cloneNode(true);
cloneStart.classList.add('halles-clone');
track.insertBefore(cloneStart, track.firstChild);
}
originalCards.forEach(function(card) {
var cloneEnd = card.cloneNode(true);
cloneEnd.classList.add('halles-clone');
track.appendChild(cloneEnd);
});
currentIndex = totalCards;
function getCardStep() {
var card = track.querySelector('.halles-merchant-card');
if (!card) return 0;
var styles = window.getComputedStyle(track);
var gap = parseFloat(styles.columnGap || styles.gap || 0) || 0;
return card.getBoundingClientRect().width + gap;
}
function updateCarousel(animate) {
var cardStep = getCardStep();
var offset = currentIndex * cardStep;
track.style.transition = animate ? 'transform 0.5s ease-in-out' : 'none';
track.style.transform = 'translateX(-' + offset + 'px)';
setTimeout(function() {
if (currentIndex >= totalCards * 2) {
currentIndex = totalCards;
updateCarousel(false);
} else if (currentIndex < totalCards) {
currentIndex = totalCards * 2 - 1;
updateCarousel(false);
}
}, animate ? 500 : 0);
updateDots();
}
function createDots() {
dotsContainer.innerHTML = '';
for (var i = 0; i < totalCards; i++) {
var dot = document.createElement('div');
dot.className = 'hallesdot-indicator' + (i === 0 ? ' hallesdot-active' : '');
dot.setAttribute('data-slide', i);
(function(index) {
dot.addEventListener('click', function() { goToSlide(index + totalCards); });
})(i);
dotsContainer.appendChild(dot);
}
}
function updateDots() {
var dots = dotsContainer.querySelectorAll('.hallesdot-indicator');
var realIndex = ((currentIndex - totalCards) % totalCards + totalCards) % totalCards;
dots.forEach(function(dot, i) {
dot.classList.toggle('hallesdot-active', i === realIndex);
});
}
function nextSlide() { currentIndex++; updateCarousel(true); }
function prevSlide() { currentIndex--; updateCarousel(true); }
function goToSlide(index) { currentIndex = index; updateCarousel(true); restartAutoplay(); }
function startAutoplay() { autoplayInterval = setInterval(nextSlide, 4000); }
function restartAutoplay() { clearInterval(autoplayInterval); startAutoplay(); }
// Touch
var touchStartX = 0, touchEndX = 0, touchStartY = 0, isDragging = false;
carousel.addEventListener('touchstart', function(e) {
touchStartX = e.touches[0].clientX;
touchStartY = e.touches[0].clientY;
isDragging = false;
clearInterval(autoplayInterval);
}, { passive: true });
carousel.addEventListener('touchmove', function(e) {
if (!isDragging) {
var dX = Math.abs(e.touches[0].clientX - touchStartX);
var dY = Math.abs(e.touches[0].clientY - touchStartY);
if (dX > dY && dX > 10) {
isDragging = true;
e.preventDefault();
}
}
}, { passive: false });
carousel.addEventListener('touchend', function(e) {
if (isDragging) {
touchEndX = e.changedTouches[0].clientX;
var deltaX = touchStartX - touchEndX;
if (Math.abs(deltaX) > 50) {
if (deltaX > 0) nextSlide(); else prevSlide();
}
}
restartAutoplay();
}, { passive: true });
// Mouse
var mouseStartX = 0, isMouseDragging = false;
carousel.addEventListener('mousedown', function(e) {
mouseStartX = e.clientX;
isMouseDragging = false;
clearInterval(autoplayInterval);
e.preventDefault();
});
carousel.addEventListener('mousemove', function(e) {
if (e.buttons === 1) {
if (Math.abs(e.clientX - mouseStartX) > 10) isMouseDragging = true;
}
});
carousel.addEventListener('mouseup', function(e) {
if (isMouseDragging) {
var deltaX = mouseStartX - e.clientX;
if (Math.abs(deltaX) > 50) {
if (deltaX > 0) nextSlide(); else prevSlide();
}
}
restartAutoplay();
});
carousel.addEventListener('mouseenter', function() { clearInterval(autoplayInterval); });
carousel.addEventListener('mouseleave', startAutoplay);
window.addEventListener('resize', function() {
createDots();
updateCarousel(false);
});
createDots();
updateCarousel(false);
startAutoplay();
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', initHallesCarousel);
} else {
initHallesCarousel();
}
})();
</script> </div>
</div>
<div class="elementor-element elementor-element-450bc7f elementor-align-center elementor-widget elementor-widget-button" data-id="450bc7f" data-element_type="widget" data-e-type="widget" data-widget_type="button.default">
<div class="elementor-widget-container">
<div class="elementor-button-wrapper">
<a class="elementor-button elementor-button-link elementor-size-sm" href="https://leshalles-larochesuryon.fr/commercants/">
<span class="elementor-button-content-wrapper">
<span class="elementor-button-text">Tous les commerçants</span>
</span>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section class="elementor-section elementor-top-section elementor-element elementor-element-fa879cd elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="fa879cd" data-element_type="section" data-e-type="section" data-settings="{"background_background":"classic"}">
<div class="elementor-container elementor-column-gap-default">
<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-7bd4d85 animated-slow elementor-invisible" data-id="7bd4d85" data-element_type="column" data-e-type="column" data-settings="{"animation":"zoomIn"}">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-element elementor-element-df4eb88 elementor-widget elementor-widget-heading" data-id="df4eb88" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
<div class="elementor-widget-container">
<h2 class="elementor-heading-title elementor-size-default">Venez découvrir</h2> </div>
</div>
<div class="elementor-element elementor-element-9066f08 elementor-widget elementor-widget-heading" data-id="9066f08" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
<div class="elementor-widget-container">
<h3 class="elementor-heading-title elementor-size-default">Des commerçants engagés</h3> </div>
</div>
<div class="elementor-element elementor-element-5e6bda1 elementor-widget elementor-widget-html" data-id="5e6bda1" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
<div class="elementor-widget-container">
<!-- ============ CARROUSEL HALLES • classes lb-* ============ -->
<section class="lb-carousel">
<div class="lb-wrap">
<!-- ========= Rangée haute (gauche ➜ droite) ========= -->
<div class="lb-row" data-dir="ltr">
<div class="lb-track">
<div class="lb-card" style="--lb-accent:#174ec2">
<div class="lb-imgbox">
<img decoding="async" class="lb-img" src="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/11/poissonneriechezchristophe.jpg" alt="Chez Christophe" loading="lazy">
<div class="lb-overlay"><span class="lb-name">Chez Christophe</span><br><span class="lb-tag">Poissonnier 🐟</span></div>
</div>
<div class="lb-body">Poissons, crustacés et coquillages ultra-frais en direct des côtes atlantiques.</div>
<div class="lb-foot"><a class="lb-btn" href="https://leshalles-larochesuryon.fr/commercant/poissonnerie-chez-christophe/">Découvrir →</a></div>
</div>
<div class="lb-card" style="--lb-accent:#174ec2">
<div class="lb-imgbox">
<img decoding="async" class="lb-img" src="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/11/Monpoissonnier1.jpg" alt="Mon Poissonnier" loading="lazy">
<div class="lb-overlay"><span class="lb-name">Mon Poissonnier</span><br><span class="lb-tag">Poissonnier 🐟</span></div>
</div>
<div class="lb-body">Fruits de mer des criées vendéennes & bretonnes sélectionnés avec soin.</div>
<div class="lb-foot"><a class="lb-btn" href="https://leshalles-larochesuryon.fr/commercant/mon-poissonnier/">Découvrir →</a></div>
</div>
<div class="lb-card" style="--lb-accent:#174ec2">
<div class="lb-imgbox">
<img decoding="async" class="lb-img" src="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/11/maisonbesseau.jpg" alt="Maison Besseau" loading="lazy">
<div class="lb-overlay"><span class="lb-name">Maison Besseau</span><br><span class="lb-tag">Poissonnier 🐟</span></div>
</div>
<div class="lb-body">Poissonnerie familiale : fraîcheur & tradition transmises depuis 3 générations.</div>
<div class="lb-foot"><a class="lb-btn" href="https://leshalles-larochesuryon.fr/commercant/poissonnerie-maison-besseau/">Découvrir →</a></div>
</div>
<div class="lb-card" style="--lb-accent:#f1cb20">
<div class="lb-imgbox">
<img decoding="async" class="lb-img" src="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/11/beillevaire.jpg" alt="Beillevaire" loading="lazy">
<div class="lb-overlay"><span class="lb-name">Beillevaire</span><br><span class="lb-tag">Fromager 🧀</span></div>
</div>
<div class="lb-body">Fromages, beurres & crèmes artisanaux affinés avec passion.</div>
<div class="lb-foot"><a class="lb-btn" href="https://leshalles-larochesuryon.fr/commercant/beillevaire/">Découvrir →</a></div>
</div>
<div class="lb-card" style="--lb-accent:#f1cb20">
<div class="lb-imgbox">
<img decoding="async" class="lb-img" src="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/11/Operadesfromages.jpg" alt="L'opéra des fromages" loading="lazy">
<div class="lb-overlay"><span class="lb-name">L'opéra des fromages</span><br><span class="lb-tag">Fromager 🧀</span></div>
</div>
<div class="lb-body">Plateaux personnalisés, crèmerie locale & conseils d'affinage experts.</div>
<div class="lb-foot"><a class="lb-btn" href="https://leshalles-larochesuryon.fr/commercant/lopera-des-fromages/">Découvrir →</a></div>
</div>
<div class="lb-card" style="--lb-accent:#209c34">
<div class="lb-imgbox">
<img decoding="async" class="lb-img" src="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/05/caisse-de-fruits-et-legules-300x300.webp" alt="Earl le Grand Aulnay" loading="lazy">
<div class="lb-overlay"><span class="lb-name">Grand Aulnay</span><br><span class="lb-tag">Primeur 🥕</span></div>
</div>
<div class="lb-body">Asperges bio cueillies à la main en Anjou : fraîcheur & goût vrai.</div>
<div class="lb-foot"><a class="lb-btn" href="https://leshalles-larochesuryon.fr/commercant/earl-le-grand-aulnay/">Découvrir →</a></div>
</div>
<div class="lb-card" style="--lb-accent:#209c34">
<div class="lb-imgbox">
<img decoding="async" class="lb-img" src="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/11/dorielegumes.jpg" alt="Maison Dorie Castagnou" loading="lazy">
<div class="lb-overlay"><span class="lb-name">Maison Dorie</span><br><span class="lb-tag">Primeur 🥕</span></div>
</div>
<div class="lb-body">Cinq générations de passion : fruits & légumes de saison, spécialités vendéennes.</div>
<div class="lb-foot"><a class="lb-btn" href="https://leshalles-larochesuryon.fr/commercant/maison-dorie-castagnou/">Découvrir →</a></div>
</div>
<div class="lb-card" style="--lb-accent:#209c34">
<div class="lb-imgbox">
<img decoding="async" class="lb-img" src="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/11/touchealaterre.jpg" alt="Touche à la Terre" loading="lazy">
<div class="lb-overlay"><span class="lb-name">Touche à la Terre</span><br><span class="lb-tag">Primeur 🥕</span></div>
</div>
<div class="lb-body">Pain au feu de bois, fraises et légumes cultivés dans le respect de la nature.</div>
<div class="lb-foot"><a class="lb-btn" href="https://leshalles-larochesuryon.fr/commercant/touche-a-la-terre/">Découvrir →</a></div>
</div>
</div>
</div>
<!-- ========= Rangée basse (droite ➜ gauche) ========= -->
<div class="lb-row" data-dir="rtl">
<div class="lb-track">
<div class="lb-card" style="--lb-accent:#d11f10">
<div class="lb-imgbox">
<img decoding="async" class="lb-img" src="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/11/caquineau.png" alt="Boucherie Caquineau" loading="lazy">
<div class="lb-overlay"><span class="lb-name">Boucherie Caquineau</span><br><span class="lb-tag">Boucher 🥩</span></div>
</div>
<div class="lb-body">Viandes sélectionnées & charcuterie artisanale depuis 2010.</div>
<div class="lb-foot"><a class="lb-btn" href="https://leshalles-larochesuryon.fr/commercant/boucherie-caquineau/">Découvrir →</a></div>
</div>
<div class="lb-card" style="--lb-accent:#d11f10">
<div class="lb-imgbox">
<img decoding="async" class="lb-img" src="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/11/delicesetsaucissons.jpg" alt="Délices et Saucissons" loading="lazy">
<div class="lb-overlay"><span class="lb-name">Délices et Saucissons</span><br><span class="lb-tag">Charcutier 🥩</span></div>
</div>
<div class="lb-body">Saucissons, terrines & jambons secs artisanaux du terroir.</div>
<div class="lb-foot"><a class="lb-btn" href="https://leshalles-larochesuryon.fr/commercant/delices-et-saucissons/">Découvrir →</a></div>
</div>
<div class="lb-card" style="--lb-accent:#212d58">
<div class="lb-imgbox">
<img decoding="async" class="lb-img" src="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/11/Pepitediode-1.jpg" alt="Pépites d'Iode" loading="lazy">
<div class="lb-overlay"><span class="lb-name">Pépites d'Iode</span><br><span class="lb-tag">Huîtres 🦪</span></div>
</div>
<div class="lb-body">Huîtres & coquillages issus de parcs ostréicoles du Veillon.</div>
<div class="lb-foot"><a class="lb-btn" href="https://leshalles-larochesuryon.fr/commercant/pepites-diode/">Découvrir →</a></div>
</div>
<div class="lb-card" style="--lb-accent:#212d58">
<div class="lb-imgbox">
<img decoding="async" class="lb-img" src="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/11/Raballand.jpg" alt="Raballand Damien" loading="lazy">
<div class="lb-overlay"><span class="lb-name">Raballand Damien</span><br><span class="lb-tag">Huîtres 🦪</span></div>
</div>
<div class="lb-body">Huîtres affinées, moules AOP & coquillages de saison.</div>
<div class="lb-foot"><a class="lb-btn" href="https://leshalles-larochesuryon.fr/commercant/huitres-coquillages-raballand-damien/">Découvrir →</a></div>
</div>
<div class="lb-card" style="--lb-accent:#e67e22">
<div class="lb-imgbox">
<img decoding="async" class="lb-img" src="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/11/crocsoleil.jpg" alt="Croc'Soleil" loading="lazy">
<div class="lb-overlay"><span class="lb-name">Croc'Soleil</span><br><span class="lb-tag">Boulanger 🥖</span></div>
</div>
<div class="lb-body">Viennoiseries & pains artisanaux cuits sur place.</div>
<div class="lb-foot"><a class="lb-btn" href="https://leshalles-larochesuryon.fr/commercant/crocsoleil/">Découvrir →</a></div>
</div>
<div class="lb-card" style="--lb-accent:#f39c12">
<div class="lb-imgbox">
<img decoding="async" class="lb-img" src="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/11/LAmandine.jpg" alt="L'Amandine" loading="lazy">
<div class="lb-overlay"><span class="lb-name">L'Amandine</span><br><span class="lb-tag">Pâtissier 🧁</span></div>
</div>
<div class="lb-body">Gâteaux sur-mesure & créations pâtissières raffinées.</div>
<div class="lb-foot"><a class="lb-btn" href="https://leshalles-larochesuryon.fr/commercant/patisserie-chocolaterie-lamandine/">Découvrir →</a></div>
</div>
<div class="lb-card" style="--lb-accent:#8e44ad">
<div class="lb-imgbox">
<img decoding="async" class="lb-img" src="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/11/Laetdyfleurette.jpg" alt="Laetdyfleurette" loading="lazy">
<div class="lb-overlay"><span class="lb-name">Laetdyfleurette</span><br><span class="lb-tag">Fleuriste 🌸</span></div>
</div>
<div class="lb-body">Bouquets sur-mesure & compositions florales créatives.</div>
<div class="lb-foot"><a class="lb-btn" href="https://leshalles-larochesuryon.fr/commercant/laetdyfleurette/">Découvrir →</a></div>
</div>
</div>
</div>
</div>
</section>
<script type="158dd22977020f896ecdbf43-text/javascript">
(function() {
function initLbCarousel() {
var carousel = document.querySelector('.lb-carousel');
if (!carousel || carousel.dataset.lbInit === '1') return;
carousel.dataset.lbInit = '1';
var SPEED = 0.8;
var reduceMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
var rows = carousel.querySelectorAll('.lb-row');
var hoverPaused = false;
var tabHidden = false;
carousel.addEventListener('mouseenter', function() { hoverPaused = true; });
carousel.addEventListener('mouseleave', function() { hoverPaused = false; });
document.addEventListener('visibilitychange', function() {
tabHidden = document.hidden;
});
rows.forEach(function(row) {
var track = row.querySelector('.lb-track');
if (!track || !track.firstElementChild) return;
var originalCards = Array.prototype.slice.call(track.children);
var originalCount = originalCards.length;
var dir = row.dataset.dir === 'rtl' ? -1 : 1;
var loopWidth = 0;
var offset = 0;
originalCards.forEach(function(card) {
track.appendChild(card.cloneNode(true));
});
function measureLoopWidth() {
loopWidth = 0;
for (var i = 0; i < originalCount; i++) {
var card = track.children[i];
if (!card) continue;
var style = getComputedStyle(card);
loopWidth += card.offsetWidth + (parseFloat(style.marginRight) || 0);
}
if (dir === 1 && offset === 0) {
offset = -loopWidth;
}
offset = normalizeOffset(offset);
applyTransform();
}
function normalizeOffset(value) {
if (!loopWidth) return value;
while (value > 0) {
value -= loopWidth;
}
while (value <= -loopWidth) {
value += loopWidth;
}
return value;
}
function applyTransform() {
track.style.transform = 'translate3d(' + offset + 'px, 0, 0)';
}
function getEventX(e) {
if (e.touches && e.touches.length) return e.touches[0].clientX;
if (e.changedTouches && e.changedTouches.length) return e.changedTouches[0].clientX;
return e.clientX;
}
var isDragging = false;
var dragStartX = 0;
var dragStartOffset = 0;
var dragMoved = false;
var dragVelocity = 0;
var lastDragX = 0;
var lastDragTime = 0;
function onDragStart(e) {
if (e.type === 'mousedown' && e.button !== 0) return;
isDragging = true;
dragMoved = false;
dragStartX = getEventX(e);
dragStartOffset = offset;
lastDragX = dragStartX;
lastDragTime = Date.now();
dragVelocity = 0;
row.classList.add('lb-grabbing');
}
function onDragMove(e) {
if (!isDragging) return;
var x = getEventX(e);
var delta = x - dragStartX;
if (Math.abs(delta) > 3) dragMoved = true;
offset = normalizeOffset(dragStartOffset + delta);
applyTransform();
var now = Date.now();
var dt = now - lastDragTime;
if (dt > 0) {
dragVelocity = (x - lastDragX) / dt * 16;
}
lastDragX = x;
lastDragTime = now;
if (e.cancelable && e.type.indexOf('touch') === 0 && Math.abs(delta) > 5) {
e.preventDefault();
}
}
function onDragEnd() {
if (!isDragging) return;
isDragging = false;
row.classList.remove('lb-grabbing');
if (dragMoved) {
var blockClick = function(ev) {
ev.preventDefault();
ev.stopPropagation();
row.removeEventListener('click', blockClick, true);
};
row.addEventListener('click', blockClick, true);
setTimeout(function() {
row.removeEventListener('click', blockClick, true);
}, 80);
}
}
row.addEventListener('mousedown', onDragStart);
window.addEventListener('mousemove', onDragMove);
window.addEventListener('mouseup', onDragEnd);
row.addEventListener('touchstart', onDragStart, { passive: true });
row.addEventListener('touchmove', onDragMove, { passive: false });
row.addEventListener('touchend', onDragEnd);
row.addEventListener('touchcancel', onDragEnd);
window.addEventListener('resize', measureLoopWidth);
measureLoopWidth();
function step() {
if (!tabHidden && !isDragging) {
if (Math.abs(dragVelocity) > 0.1) {
offset += dragVelocity;
dragVelocity *= 0.92;
} else {
dragVelocity = 0;
if (!hoverPaused && !reduceMotion) {
offset += dir * SPEED;
}
}
offset = normalizeOffset(offset);
applyTransform();
}
requestAnimationFrame(step);
}
requestAnimationFrame(step);
});
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', initLbCarousel);
} else {
initLbCarousel();
}
})();
</script> </div>
</div>
</div>
</div>
</div>
</section>
<section class="elementor-section elementor-top-section elementor-element elementor-element-6a707cd elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="6a707cd" data-element_type="section" data-e-type="section">
<div class="elementor-container elementor-column-gap-default">
<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-bc8ec2f" data-id="bc8ec2f" data-element_type="column" data-e-type="column">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-element elementor-element-e18f40f elementor-widget elementor-widget-heading" data-id="e18f40f" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
<div class="elementor-widget-container">
<h2 class="elementor-heading-title elementor-size-default">Restez informé</h2> </div>
</div>
<div class="elementor-element elementor-element-1ad3b81 elementor-widget elementor-widget-heading" data-id="1ad3b81" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
<div class="elementor-widget-container">
<h3 class="elementor-heading-title elementor-size-default">Les dernières actu du marché</h3> </div>
</div>
<div class="elementor-element elementor-element-18f19ab elementor-widget elementor-widget-tfposts" data-id="18f19ab" data-element_type="widget" data-e-type="widget" data-widget_type="tfposts.default">
<div class="elementor-widget-container">
<div id="tf-posts-18f19ab" class="tf-posts-18f19ab tf-posts-wrap column-3 tablet-column-3 mobile-column-1 no-arrow no-bullets grid-styles-default featured-post-top " data-tabid="18f19ab" data-class_id="tf-posts-18f19ab" data-loop="" data-auto="" data-column="" data-column2="" data-column3="" data-spacer="" data-prev_icon="" data-next_icon="" >
<div class="tf-posts grid">
<div class="column">
<div class="entry blog-post">
<div class="featured-post">
<img decoding="async" src="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/02/photo-deco-la-roche-sur-yon-Noel.png" alt="image"> <a href="https://leshalles-larochesuryon.fr/actualite/noel-aux-halles-de-la-roche-sur-yon/" class="overlay">
<i class="" aria-hidden="true"></i> </a>
</div>
<div class="content">
<h2 class="title"><a href="https://leshalles-larochesuryon.fr/actualite/noel-aux-halles-de-la-roche-sur-yon/" title="Noël aux Halles de La Roche-sur-Yon">Noël aux Halles de La Roche-sur-Yon</a></h2>
<div class="content-post">À l’approche des fêtes, Les Halles de La Roche-sur-Yon se transforment en véritable village de Noël. Du mardi au dimanche, de 8h à 13h, les étals s’illuminent et proposent des…</div>
</div>
</div>
</div>
<div class="column">
<div class="entry blog-post">
<div class="featured-post">
<img decoding="async" src="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/05/les-halles-la-roche-sur-yon-en-ete-1024x576.jpg" alt="image"> <a href="https://leshalles-larochesuryon.fr/actualite/lete-sous-les-halles-fraicheur-et-saveurs-locales-au-rendez-vous/" class="overlay">
<i class="" aria-hidden="true"></i> </a>
</div>
<div class="content">
<h2 class="title"><a href="https://leshalles-larochesuryon.fr/actualite/lete-sous-les-halles-fraicheur-et-saveurs-locales-au-rendez-vous/" title="L’été sous les Halles : fraîcheur et saveurs locales au rendez-vous">L’été sous les Halles : fraîcheur et saveurs locales au rendez-vous</a></h2>
<div class="content-post">L’été à La Roche-sur-Yon rime avec soleil, détente… et marché ! Chaque matin (sauf lundi et mercredi), Les Halles deviennent le point de rendez-vous des gourmets en quête de fraîcheur…</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="elementor-element elementor-element-98310d3 elementor-align-center elementor-widget elementor-widget-button" data-id="98310d3" data-element_type="widget" data-e-type="widget" data-widget_type="button.default">
<div class="elementor-widget-container">
<div class="elementor-button-wrapper">
<a class="elementor-button elementor-button-link elementor-size-sm" href="https://leshalles-larochesuryon.fr/actualites/">
<span class="elementor-button-content-wrapper">
<span class="elementor-button-text">Toute l'actualité</span>
</span>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</div>
</div>
</main>
<footer data-elementor-type="footer" data-elementor-id="52" class="elementor elementor-52 elementor-location-footer" data-elementor-post-type="elementor_library">
<div class="elementor-element elementor-element-24b29fe e-flex e-con-boxed e-con e-parent" data-id="24b29fe" data-element_type="container" data-e-type="container">
<div class="e-con-inner">
<div class="elementor-element elementor-element-98ac4e6 elementor-widget elementor-widget-heading" data-id="98ac4e6" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
<div class="elementor-widget-container">
<h2 class="elementor-heading-title elementor-size-default">Ils donnent leur avis</h2> </div>
</div>
<div class="elementor-element elementor-element-80d37dc elementor-widget elementor-widget-heading" data-id="80d37dc" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
<div class="elementor-widget-container">
<h3 class="elementor-heading-title elementor-size-default">Sur le marché des Halles de La Roche sur Yon</h3> </div>
</div>
<div class="elementor-element elementor-element-e6c4f2e elementor-widget elementor-widget-shortcode" data-id="e6c4f2e" data-element_type="widget" data-e-type="widget" data-widget_type="shortcode.default">
<div class="elementor-widget-container">
<div class="elementor-shortcode"><pre class="ti-widget" style="display: none"><template id="trustindex-google-widget-html"><div class=" ti-widget ti-goog ti-review-text-mode-readmore ti-content-align-center" data-no-translation="true" data-plugin-version="13.3.2" data-layout-id="36" data-layout-category="slider" data-set-id="drop-shadow" data-pid="" data-language="fr" data-close-locale="Fermer" data-review-target-width="300" data-css-version="2" data-reply-by-locale="Réponse du propriétaire" data-only-rating-locale="Cet utilisateur a uniquement laissé une évaluation." data-pager-autoplay-timeout="6"> <div class="ti-widget-container ti-col-3"> <div class="ti-reviews-container"> <div class="ti-controls"> <div class="ti-next" aria-label="Avis suivante" role="button" tabindex="0"></div> <div class="ti-prev" aria-label="Avis précédent" role="button" tabindex="0"></div> </div> <div class="ti-reviews-container-wrapper"> <div data-empty="0" class="ti-review-item source-Google ti-image-layout-thumbnail" data-time="" data-id="cfcd208495d565ef66e7dff9f98764da" data-language=""> <div class="ti-inner"> <div class="ti-review-header"> <trustindex-image class="ti-platform-icon" data-imgurl="https://cdn.trustindex.io/assets/platform/Google/icon.svg" alt="Google" width="20" height="20" loading="lazy"></trustindex-image> <div class="ti-profile-img"> <trustindex-image data-imgurl="https://lh3.googleusercontent.com/a-/ALV-UjX1vC0RwrIPO3Wj5HIV09IGaPZGFLnu7UTaOK-SP2qYzCtJSr4o=w64-h64-c-rp-mo-ba4-br100" alt="Isabel profile picture" loading="lazy"></trustindex-image> </div> <div class="ti-profile-details"> <div class="ti-name"> Isabel </div> <div class="ti-date">08/03/2025</div> </div> </div> <span class="ti-stars"><trustindex-image class="ti-star" data-imgurl="https://cdn.trustindex.io/assets/platform/Google/star/f.svg" alt="Google star 1" width="17" height="17" loading="lazy"></trustindex-image><trustindex-image class="ti-star" data-imgurl="https://cdn.trustindex.io/assets/platform/Google/star/f.svg" alt="Google star 2" width="17" height="17" loading="lazy"></trustindex-image><trustindex-image class="ti-star" data-imgurl="https://cdn.trustindex.io/assets/platform/Google/star/f.svg" alt="Google star 3" width="17" height="17" loading="lazy"></trustindex-image><trustindex-image class="ti-star" data-imgurl="https://cdn.trustindex.io/assets/platform/Google/star/f.svg" alt="Google star 4" width="17" height="17" loading="lazy"></trustindex-image><trustindex-image class="ti-star" data-imgurl="https://cdn.trustindex.io/assets/platform/Google/star/f.svg" alt="Google star 5" width="17" height="17" loading="lazy"></trustindex-image><span class="ti-verified-review ti-verified-platform"><span class="ti-verified-tooltip">Trustindex vérifie que la source originale de l'avis est Google.</span></span></span> <div class="ti-review-text-container ti-review-content"><!-- R-CONTENT -->Fermé le mercredi<!-- R-CONTENT --></div> <span class="ti-read-more" data-container=".ti-review-content" data-collapse-text="Cacher" data-open-text="Lire la suite"></span> </div> </div> <div data-empty="0" class="ti-review-item source-Google ti-image-layout-thumbnail" data-time="" data-id="cfcd208495d565ef66e7dff9f98764da" data-language=""> <div class="ti-inner"> <div class="ti-review-header"> <trustindex-image class="ti-platform-icon" data-imgurl="https://cdn.trustindex.io/assets/platform/Google/icon.svg" alt="Google" width="20" height="20" loading="lazy"></trustindex-image> <div class="ti-profile-img"> <trustindex-image data-imgurl="https://lh3.googleusercontent.com/a/ACg8ocISyfwj2bTbwnh0H1lpUjjTcJ1E5XwQUUyDZ_lI1-qjXtpuFQ=w64-h64-c-rp-mo-ba2-br100" alt="Francine profile picture" loading="lazy"></trustindex-image> </div> <div class="ti-profile-details"> <div class="ti-name"> Francine </div> <div class="ti-date">18/01/2025</div> </div> </div> <span class="ti-stars"><trustindex-image class="ti-star" data-imgurl="https://cdn.trustindex.io/assets/platform/Google/star/f.svg" alt="Google star 1" width="17" height="17" loading="lazy"></trustindex-image><trustindex-image class="ti-star" data-imgurl="https://cdn.trustindex.io/assets/platform/Google/star/f.svg" alt="Google star 2" width="17" height="17" loading="lazy"></trustindex-image><trustindex-image class="ti-star" data-imgurl="https://cdn.trustindex.io/assets/platform/Google/star/f.svg" alt="Google star 3" width="17" height="17" loading="lazy"></trustindex-image><trustindex-image class="ti-star" data-imgurl="https://cdn.trustindex.io/assets/platform/Google/star/f.svg" alt="Google star 4" width="17" height="17" loading="lazy"></trustindex-image><trustindex-image class="ti-star" data-imgurl="https://cdn.trustindex.io/assets/platform/Google/star/e.svg" alt="Google star 5" width="17" height="17" loading="lazy"></trustindex-image><span class="ti-verified-review ti-verified-platform"><span class="ti-verified-tooltip">Trustindex vérifie que la source originale de l'avis est Google.</span></span></span> <div class="ti-review-text-container ti-review-content"><!-- R-CONTENT -->Un grand choix et des producteurs engagés<!-- R-CONTENT --></div> <span class="ti-read-more" data-container=".ti-review-content" data-collapse-text="Cacher" data-open-text="Lire la suite"></span> </div> </div> <div data-empty="0" class="ti-review-item source-Google ti-image-layout-thumbnail" data-time="" data-id="cfcd208495d565ef66e7dff9f98764da" data-language=""> <div class="ti-inner"> <div class="ti-review-header"> <trustindex-image class="ti-platform-icon" data-imgurl="https://cdn.trustindex.io/assets/platform/Google/icon.svg" alt="Google" width="20" height="20" loading="lazy"></trustindex-image> <div class="ti-profile-img"> <trustindex-image data-imgurl="https://lh3.googleusercontent.com/a/ACg8ocLbm1x3BePd28TIto1yNJ-ZDdnRaJTu8t-VaDbwiHOIvTDpaA=w64-h64-c-rp-mo-ba2-br100" alt="Sandrine profile picture" loading="lazy"></trustindex-image> </div> <div class="ti-profile-details"> <div class="ti-name"> Sandrine </div> <div class="ti-date">02/01/2025</div> </div> </div> <span class="ti-stars"><trustindex-image class="ti-star" data-imgurl="https://cdn.trustindex.io/assets/platform/Google/star/f.svg" alt="Google star 1" width="17" height="17" loading="lazy"></trustindex-image><trustindex-image class="ti-star" data-imgurl="https://cdn.trustindex.io/assets/platform/Google/star/f.svg" alt="Google star 2" width="17" height="17" loading="lazy"></trustindex-image><trustindex-image class="ti-star" data-imgurl="https://cdn.trustindex.io/assets/platform/Google/star/f.svg" alt="Google star 3" width="17" height="17" loading="lazy"></trustindex-image><trustindex-image class="ti-star" data-imgurl="https://cdn.trustindex.io/assets/platform/Google/star/f.svg" alt="Google star 4" width="17" height="17" loading="lazy"></trustindex-image><trustindex-image class="ti-star" data-imgurl="https://cdn.trustindex.io/assets/platform/Google/star/f.svg" alt="Google star 5" width="17" height="17" loading="lazy"></trustindex-image><span class="ti-verified-review ti-verified-platform"><span class="ti-verified-tooltip">Trustindex vérifie que la source originale de l'avis est Google.</span></span></span> <div class="ti-review-text-container ti-review-content"><!-- R-CONTENT -->Beaucoup de produits, marché très agréable<!-- R-CONTENT --></div> <span class="ti-read-more" data-container=".ti-review-content" data-collapse-text="Cacher" data-open-text="Lire la suite"></span> </div> </div> <div data-empty="0" class="ti-review-item source-Google ti-image-layout-thumbnail" data-time="" data-id="cfcd208495d565ef66e7dff9f98764da" data-language=""> <div class="ti-inner"> <div class="ti-review-header"> <trustindex-image class="ti-platform-icon" data-imgurl="https://cdn.trustindex.io/assets/platform/Google/icon.svg" alt="Google" width="20" height="20" loading="lazy"></trustindex-image> <div class="ti-profile-img"> <trustindex-image data-imgurl="https://lh3.googleusercontent.com/a-/ALV-UjUpmRSzmQI_sY5Df_QdamtTyhKTxmGdlQPsg0p8D5r_4NpEkGxh=w64-h64-c-rp-mo-ba2-br100" alt="Marine profile picture" loading="lazy"></trustindex-image> </div> <div class="ti-profile-details"> <div class="ti-name"> Marine </div> <div class="ti-date">19/12/2024</div> </div> </div> <span class="ti-stars"><trustindex-image class="ti-star" data-imgurl="https://cdn.trustindex.io/assets/platform/Google/star/f.svg" alt="Google star 1" width="17" height="17" loading="lazy"></trustindex-image><trustindex-image class="ti-star" data-imgurl="https://cdn.trustindex.io/assets/platform/Google/star/f.svg" alt="Google star 2" width="17" height="17" loading="lazy"></trustindex-image><trustindex-image class="ti-star" data-imgurl="https://cdn.trustindex.io/assets/platform/Google/star/f.svg" alt="Google star 3" width="17" height="17" loading="lazy"></trustindex-image><trustindex-image class="ti-star" data-imgurl="https://cdn.trustindex.io/assets/platform/Google/star/f.svg" alt="Google star 4" width="17" height="17" loading="lazy"></trustindex-image><trustindex-image class="ti-star" data-imgurl="https://cdn.trustindex.io/assets/platform/Google/star/f.svg" alt="Google star 5" width="17" height="17" loading="lazy"></trustindex-image><span class="ti-verified-review ti-verified-platform"><span class="ti-verified-tooltip">Trustindex vérifie que la source originale de l'avis est Google.</span></span></span> <div class="ti-review-text-container ti-review-content"><!-- R-CONTENT -->Super marché avec des commerçants très gentils<!-- R-CONTENT --></div> <span class="ti-read-more" data-container=".ti-review-content" data-collapse-text="Cacher" data-open-text="Lire la suite"></span> </div> </div> <div data-empty="0" class="ti-review-item source-Google ti-image-layout-thumbnail" data-time="" data-id="cfcd208495d565ef66e7dff9f98764da" data-language=""> <div class="ti-inner"> <div class="ti-review-header"> <trustindex-image class="ti-platform-icon" data-imgurl="https://cdn.trustindex.io/assets/platform/Google/icon.svg" alt="Google" width="20" height="20" loading="lazy"></trustindex-image> <div class="ti-profile-img"> <trustindex-image data-imgurl="https://lh3.googleusercontent.com/a/ACg8ocJMpx2bhHGPc492gBFMcwWI3SZ7GHZ-lQyXjpuGEK4qMLQ6EA=w64-h64-c-rp-mo-ba5-br100" alt="Philippe profile picture" loading="lazy"></trustindex-image> </div> <div class="ti-profile-details"> <div class="ti-name"> Philippe </div> <div class="ti-date">14/12/2024</div> </div> </div> <span class="ti-stars"><trustindex-image class="ti-star" data-imgurl="https://cdn.trustindex.io/assets/platform/Google/star/f.svg" alt="Google star 1" width="17" height="17" loading="lazy"></trustindex-image><trustindex-image class="ti-star" data-imgurl="https://cdn.trustindex.io/assets/platform/Google/star/f.svg" alt="Google star 2" width="17" height="17" loading="lazy"></trustindex-image><trustindex-image class="ti-star" data-imgurl="https://cdn.trustindex.io/assets/platform/Google/star/f.svg" alt="Google star 3" width="17" height="17" loading="lazy"></trustindex-image><trustindex-image class="ti-star" data-imgurl="https://cdn.trustindex.io/assets/platform/Google/star/f.svg" alt="Google star 4" width="17" height="17" loading="lazy"></trustindex-image><trustindex-image class="ti-star" data-imgurl="https://cdn.trustindex.io/assets/platform/Google/star/e.svg" alt="Google star 5" width="17" height="17" loading="lazy"></trustindex-image><span class="ti-verified-review ti-verified-platform"><span class="ti-verified-tooltip">Trustindex vérifie que la source originale de l'avis est Google.</span></span></span> <div class="ti-review-text-container ti-review-content"><!-- R-CONTENT -->Poissonnerie bien achalandé mais un peu élevé niveau prix. Legumes 3 marchand. Fromages bien à achalandé.<!-- R-CONTENT --></div> <span class="ti-read-more" data-container=".ti-review-content" data-collapse-text="Cacher" data-open-text="Lire la suite"></span> </div> </div> <div data-empty="0" class="ti-review-item source-Google ti-image-layout-thumbnail" data-time="" data-id="cfcd208495d565ef66e7dff9f98764da" data-language=""> <div class="ti-inner"> <div class="ti-review-header"> <trustindex-image class="ti-platform-icon" data-imgurl="https://cdn.trustindex.io/assets/platform/Google/icon.svg" alt="Google" width="20" height="20" loading="lazy"></trustindex-image> <div class="ti-profile-img"> <trustindex-image data-imgurl="https://lh3.googleusercontent.com/a-/ALV-UjWSGOuDwf_HpmaQLOdyR3k0uYurHce-UrTREWJtOMcCnzJKj0I4=w64-h64-c-rp-mo-ba3-br100" alt="Herve profile picture" loading="lazy"></trustindex-image> </div> <div class="ti-profile-details"> <div class="ti-name"> Herve </div> <div class="ti-date">15/11/2024</div> </div> </div> <span class="ti-stars"><trustindex-image class="ti-star" data-imgurl="https://cdn.trustindex.io/assets/platform/Google/star/f.svg" alt="Google star 1" width="17" height="17" loading="lazy"></trustindex-image><trustindex-image class="ti-star" data-imgurl="https://cdn.trustindex.io/assets/platform/Google/star/f.svg" alt="Google star 2" width="17" height="17" loading="lazy"></trustindex-image><trustindex-image class="ti-star" data-imgurl="https://cdn.trustindex.io/assets/platform/Google/star/f.svg" alt="Google star 3" width="17" height="17" loading="lazy"></trustindex-image><trustindex-image class="ti-star" data-imgurl="https://cdn.trustindex.io/assets/platform/Google/star/f.svg" alt="Google star 4" width="17" height="17" loading="lazy"></trustindex-image><trustindex-image class="ti-star" data-imgurl="https://cdn.trustindex.io/assets/platform/Google/star/f.svg" alt="Google star 5" width="17" height="17" loading="lazy"></trustindex-image><span class="ti-verified-review ti-verified-platform"><span class="ti-verified-tooltip">Trustindex vérifie que la source originale de l'avis est Google.</span></span></span> <div class="ti-review-text-container ti-review-content"><!-- R-CONTENT -->Grand et les commerçants sont adorables. Produits très bons.<!-- R-CONTENT --></div> <span class="ti-read-more" data-container=".ti-review-content" data-collapse-text="Cacher" data-open-text="Lire la suite"></span> </div> </div> <div data-empty="0" class="ti-review-item source-Google ti-image-layout-thumbnail" data-time="" data-id="cfcd208495d565ef66e7dff9f98764da" data-language=""> <div class="ti-inner"> <div class="ti-review-header"> <trustindex-image class="ti-platform-icon" data-imgurl="https://cdn.trustindex.io/assets/platform/Google/icon.svg" alt="Google" width="20" height="20" loading="lazy"></trustindex-image> <div class="ti-profile-img"> <trustindex-image data-imgurl="https://lh3.googleusercontent.com/a/ACg8ocLSZYo6RB8BRK5_tJbOgcCwz1xZN1rcENBVQsGiJzi1OD6gmg=w64-h64-c-rp-mo-ba3-br100" alt="Magali profile picture" loading="lazy"></trustindex-image> </div> <div class="ti-profile-details"> <div class="ti-name"> Magali </div> <div class="ti-date">12/11/2024</div> </div> </div> <span class="ti-stars"><trustindex-image class="ti-star" data-imgurl="https://cdn.trustindex.io/assets/platform/Google/star/f.svg" alt="Google star 1" width="17" height="17" loading="lazy"></trustindex-image><trustindex-image class="ti-star" data-imgurl="https://cdn.trustindex.io/assets/platform/Google/star/f.svg" alt="Google star 2" width="17" height="17" loading="lazy"></trustindex-image><trustindex-image class="ti-star" data-imgurl="https://cdn.trustindex.io/assets/platform/Google/star/f.svg" alt="Google star 3" width="17" height="17" loading="lazy"></trustindex-image><trustindex-image class="ti-star" data-imgurl="https://cdn.trustindex.io/assets/platform/Google/star/f.svg" alt="Google star 4" width="17" height="17" loading="lazy"></trustindex-image><trustindex-image class="ti-star" data-imgurl="https://cdn.trustindex.io/assets/platform/Google/star/f.svg" alt="Google star 5" width="17" height="17" loading="lazy"></trustindex-image><span class="ti-verified-review ti-verified-platform"><span class="ti-verified-tooltip">Trustindex vérifie que la source originale de l'avis est Google.</span></span></span> <div class="ti-review-text-container ti-review-content"><!-- R-CONTENT -->Très agréable et fourni<!-- R-CONTENT --></div> <span class="ti-read-more" data-container=".ti-review-content" data-collapse-text="Cacher" data-open-text="Lire la suite"></span> </div> </div> </div> <div class="ti-controls-line"> <div class="dot"></div> </div> </div> </div> </div> </template></pre><div data-src="https://cdn.trustindex.io/loader.js?wp-widget" data-template-id="trustindex-google-widget-html" data-css-url="https://leshalles-larochesuryon.fr/wp-content/uploads/trustindex-google-widget.css?1788349857"></div></div>
</div>
</div>
</div>
</div>
<section class="elementor-section elementor-top-section elementor-element elementor-element-4d21e925 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="4d21e925" data-element_type="section" data-e-type="section" data-settings="{"background_background":"classic"}">
<div class="elementor-container elementor-column-gap-default">
<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-4d0b86dd" data-id="4d0b86dd" data-element_type="column" data-e-type="column">
<div class="elementor-widget-wrap elementor-element-populated">
<section class="elementor-section elementor-inner-section elementor-element elementor-element-ae6c173 elementor-section-full_width elementor-section-height-default elementor-section-height-default" data-id="ae6c173" data-element_type="section" data-e-type="section">
<div class="elementor-container elementor-column-gap-default">
<div class="elementor-column elementor-col-33 elementor-inner-column elementor-element elementor-element-30ad1ebf" data-id="30ad1ebf" data-element_type="column" data-e-type="column">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-element elementor-element-f4b9a03 elementor-widget elementor-widget-image" data-id="f4b9a03" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
<div class="elementor-widget-container">
<img width="512" height="205" src="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/05/favicon-e1751363464435.png" class="attachment-full size-full wp-image-883" alt="favicon" srcset="https://leshalles-larochesuryon.fr/wp-content/uploads/2025/05/favicon-e1751363464435.png 512w, https://leshalles-larochesuryon.fr/wp-content/uploads/2025/05/favicon-e1751363464435-300x120.png 300w" sizes="(max-width: 512px) 100vw, 512px" /> </div>
</div>
<div class="elementor-element elementor-element-399fc538 elementor-widget elementor-widget-text-editor" data-id="399fc538" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
<div class="elementor-widget-container">
<p><span style="color: #000000;">Depuis 1700 plus de 500 commerçants vous accueille chaque semaine avec le sourire, proposant produits frais et spécialités artisanales.</span></p> </div>
</div>
</div>
</div>
<div class="elementor-column elementor-col-33 elementor-inner-column elementor-element elementor-element-43ab3664" data-id="43ab3664" data-element_type="column" data-e-type="column">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-element elementor-element-544dc397 elementor-widget elementor-widget-heading" data-id="544dc397" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
<div class="elementor-widget-container">
<p class="elementor-heading-title elementor-size-default">A Propos</p> </div>
</div>
<div class="elementor-element elementor-element-283bfbf7 elementor-widget elementor-widget-heading" data-id="283bfbf7" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
<div class="elementor-widget-container">
<span class="elementor-heading-title elementor-size-default"><a href="https://leshalles-larochesuryon.fr/">Accueil</a></span> </div>
</div>
<div class="elementor-element elementor-element-5cd99ba elementor-widget elementor-widget-heading" data-id="5cd99ba" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
<div class="elementor-widget-container">
<span class="elementor-heading-title elementor-size-default"><a href="https://leshalles-larochesuryon.fr/commercants/">Commerçant</a></span> </div>
</div>
<div class="elementor-element elementor-element-bb65b68 elementor-widget elementor-widget-heading" data-id="bb65b68" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
<div class="elementor-widget-container">
<span class="elementor-heading-title elementor-size-default"><a href="https://leshalles-larochesuryon.fr/actualites/">Actualités</a></span> </div>
</div>
</div>
</div>
<div class="elementor-column elementor-col-33 elementor-inner-column elementor-element elementor-element-2a9eb29f" data-id="2a9eb29f" data-element_type="column" data-e-type="column">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-element elementor-element-62850c88 elementor-widget elementor-widget-heading" data-id="62850c88" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
<div class="elementor-widget-container">
<h5 class="elementor-heading-title elementor-size-default">Informations</h5> </div>
</div>
<div class="elementor-element elementor-element-7b434f9 elementor-widget elementor-widget-heading" data-id="7b434f9" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
<div class="elementor-widget-container">
<span class="elementor-heading-title elementor-size-default"><a href="https://leshalles-larochesuryon.fr/contact/">Contact</a></span> </div>
</div>
<div class="elementor-element elementor-element-eb938d1 elementor-widget elementor-widget-heading" data-id="eb938d1" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
<div class="elementor-widget-container">
<span class="elementor-heading-title elementor-size-default"><a href="https://leshalles-larochesuryon.fr/mentions-legales/">Mentions légales</a></span> </div>
</div>
<div class="elementor-element elementor-element-8fd9ad9 elementor-widget elementor-widget-heading" data-id="8fd9ad9" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
<div class="elementor-widget-container">
<span class="elementor-heading-title elementor-size-default"><a href="https://leshalles-larochesuryon.fr/politique-de-confidentialite/">Politique de confidentialité</a></span> </div>
</div>
</div>
</div>
</div>
</section>
<section class="elementor-section elementor-inner-section elementor-element elementor-element-5b614a4 elementor-section-full_width elementor-section-height-default elementor-section-height-default" data-id="5b614a4" data-element_type="section" data-e-type="section">
<div class="elementor-container elementor-column-gap-default">
<div class="elementor-column elementor-col-33 elementor-inner-column elementor-element elementor-element-0a88355" data-id="0a88355" data-element_type="column" data-e-type="column">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-element elementor-element-7addc3f elementor-widget elementor-widget-html" data-id="7addc3f" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
<div class="elementor-widget-container">
<button id="kickngoMarketStatusButtonFooter" class="kickngo-market-status-button" aria-live="polite" aria-atomic="true">
<span id="kickngoMarketStatusDotFooter" class="kickngo-dot"></span>
<span id="kickngoMarketStatusTextFooter">Chargement...</span>
<div class="kickngo-tooltip" id="kickngoTooltipFooter">
<div id="kickngoScheduleFooter"></div>
</div>
</button>
<script type="158dd22977020f896ecdbf43-text/javascript">
(function() {
function initMarketWidgetFooter() {
const marketSchedule = [
{ day: "dimanche", open: "08:30", close: "13:00" },
{ day: "lundi", open: null, close: null },
{ day: "mardi", open: "08:00", close: "13:00" },
{ day: "mercredi", open: null, close: null },
{ day: "jeudi", open: "08:00", close: "13:00" },
{ day: "vendredi", open: "08:00", close: "13:00" },
{ day: "samedi", open: "07:00", close: "13:00" },
];
const dayNames = ["dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"];
function getMarketStatus(now) {
const currentDayIndex = now.getDay();
const currentHour = now.getHours();
const currentMinute = now.getMinutes();
const currentTimeInMinutes = currentHour * 60 + currentMinute;
const todaySchedule = marketSchedule[currentDayIndex];
if (!todaySchedule.open || !todaySchedule.close) {
let nextOpenMessage = "Fermé";
for (let i = 1; i <= 7; i++) {
const nextDayIdx = (currentDayIndex + i) % 7;
const nextDaySched = marketSchedule[nextDayIdx];
if (nextDaySched.open) {
nextOpenMessage = `Ouvre ${dayNames[nextDayIdx]} à ${nextDaySched.open}`;
break;
}
}
return { status: "closed", message: nextOpenMessage };
}
const [openHour, openMinute] = todaySchedule.open.split(":").map(Number);
const [closeHour, closeMinute] = todaySchedule.close.split(":").map(Number);
const openTimeInMinutes = openHour * 60 + openMinute;
const closeTimeInMinutes = closeHour * 60 + closeMinute;
if (currentTimeInMinutes >= openTimeInMinutes && currentTimeInMinutes < closeTimeInMinutes) {
return { status: "open", message: "Le marché est ouvert" };
} else {
let message = "Fermé";
if (currentTimeInMinutes < openTimeInMinutes) {
message = `Ouvre à ${todaySchedule.open}`;
} else {
for (let i = 1; i <= 7; i++) {
const nextDayIdx = (currentDayIndex + i) % 7;
const nextDaySched = marketSchedule[nextDayIdx];
if (nextDaySched.open) {
message = `Ouvre ${dayNames[nextDayIdx]} à ${nextDaySched.open}`;
break;
}
}
}
return { status: "closed", message: message };
}
}
const button = document.getElementById("kickngoMarketStatusButtonFooter");
if (button) {
// Créer le contenu du tooltip avec les horaires
const scheduleContainer = document.getElementById("kickngoScheduleFooter");
if (scheduleContainer) {
let scheduleHTML = '';
marketSchedule.forEach((schedule, index) => {
const dayName = dayNames[index];
const isToday = new Date().getDay() === index;
const hours = schedule.open && schedule.close ?
`${schedule.open} - ${schedule.close}` :
'Fermé';
const dayClass = schedule.open && schedule.close ? 'open' : 'closed';
const todayIndicator = isToday ? ' (aujourd\'hui)' : '';
scheduleHTML += `
<div class="kickngo-schedule-day">
<span class="kickngo-day-name">${dayName}${todayIndicator}</span>
<span class="kickngo-day-hours ${dayClass}">${hours}</span>
</div>
`;
});
scheduleContainer.innerHTML = scheduleHTML;
}
const updateStatus = () => {
const status = getMarketStatus(new Date());
const dot = button.querySelector(".kickngo-dot");
const text = button.querySelector("#kickngoMarketStatusTextFooter");
if (dot && text) {
text.textContent = status.message;
dot.classList.remove("open", "closed");
dot.classList.add(status.status);
}
};
updateStatus();
setInterval(updateStatus, 60000);
}
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', initMarketWidgetFooter);
} else {
initMarketWidgetFooter();
}
})();
</script> </div>
</div>
</div>
</div>
<div class="elementor-column elementor-col-33 elementor-inner-column elementor-element elementor-element-5f41584" data-id="5f41584" data-element_type="column" data-e-type="column">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-element elementor-element-9cd9c54 e-grid-align-tablet-right e-grid-align-mobile-center elementor-shape-rounded elementor-grid-0 e-grid-align-center elementor-widget elementor-widget-social-icons" data-id="9cd9c54" data-element_type="widget" data-e-type="widget" data-widget_type="social-icons.default">
<div class="elementor-widget-container">
<div class="elementor-social-icons-wrapper elementor-grid" role="list">
<span class="elementor-grid-item" role="listitem">
<a class="elementor-icon elementor-social-icon elementor-social-icon-facebook elementor-animation-float elementor-repeater-item-e7a6d31" href="https://www.facebook.com/p/Les-Halles-de-La-Roche-sur-Yon-100057350962765/?locale=fr_FR" target="_blank">
<span class="elementor-screen-only">Facebook</span>
<svg aria-hidden="true" class="e-font-icon-svg e-fab-facebook" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="M504 256C504 119 393 8 256 8S8 119 8 256c0 123.78 90.69 226.38 209.25 245V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.28c-30.8 0-40.41 19.12-40.41 38.73V256h68.78l-11 71.69h-57.78V501C413.31 482.38 504 379.78 504 256z"></path></svg> </a>
</span>
<span class="elementor-grid-item" role="listitem">
<a class="elementor-icon elementor-social-icon elementor-social-icon-instagram elementor-animation-float elementor-repeater-item-9f82bd6" href="https://www.instagram.com/hallesdelarochesuryon/" target="_blank">
<span class="elementor-screen-only">Instagram</span>
<svg aria-hidden="true" class="e-font-icon-svg e-fab-instagram" viewBox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><path d="M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z"></path></svg> </a>
</span>
</div>
</div>
</div>
</div>
</div>
<div class="elementor-column elementor-col-33 elementor-inner-column elementor-element elementor-element-8d6005a" data-id="8d6005a" data-element_type="column" data-e-type="column">
<div class="elementor-widget-wrap elementor-element-populated">
<div class="elementor-element elementor-element-d220d30 elementor-widget elementor-widget-elementskit-heading" data-id="d220d30" data-element_type="widget" data-e-type="widget" data-widget_type="elementskit-heading.default">
<div class="elementor-widget-container">
<div class="ekit-wid-con" ><div class="ekit-heading elementskit-section-title-wraper text_center ekit_heading_tablet- ekit_heading_mobile-"><a href="https://agence-kickngo.fr/"><p class="ekit-heading--title elementskit-section-title ">Site réalisé par l'Agence Kickngo</p></a></div></div> </div>
</div>
</div>
</div>
</div>
</section>
</div>
</div>
</div>
</section>
</footer>
<script type="speculationrules">
{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/hello-elementor-child/*","/wp-content/themes/hello-elementor/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
</script>
<script type="158dd22977020f896ecdbf43-text/javascript">
( () => {
const lazyloadRunObserver = () => {
const lazyloadBackgrounds = document.querySelectorAll( `.e-con.e-parent:not(.e-lazyloaded)` );
const lazyloadBackgroundObserver = new IntersectionObserver( ( entries ) => {
entries.forEach( ( entry ) => {
if ( entry.isIntersecting ) {
let lazyloadBackground = entry.target;
if( lazyloadBackground ) {
lazyloadBackground.classList.add( 'e-lazyloaded' );
}
lazyloadBackgroundObserver.unobserve( entry.target );
}
});
}, { rootMargin: '200px 0px 200px 0px' } );
lazyloadBackgrounds.forEach( ( lazyloadBackground ) => {
lazyloadBackgroundObserver.observe( lazyloadBackground );
} );
};
const events = [
'DOMContentLoaded',
'elementor/lazyload/observe',
];
events.forEach( ( event ) => {
document.addEventListener( event, lazyloadRunObserver );
} );
} )();
</script>
<script id="tf-swiper-js" src="https://leshalles-larochesuryon.fr/wp-content/plugins/themesflat-addons-for-elementor/assets/js/swiper.min.js?ver=7.1.3" type="158dd22977020f896ecdbf43-text/javascript"></script>
<script id="tf-anime-js" src="https://leshalles-larochesuryon.fr/wp-content/plugins/themesflat-addons-for-elementor/assets/js/anime.min.js?ver=7.1.3" type="158dd22977020f896ecdbf43-text/javascript"></script>
<script id="textanimation-js" src="https://leshalles-larochesuryon.fr/wp-content/plugins/themesflat-addons-for-elementor/assets/js/textanimation.js?ver=7.1.3" type="158dd22977020f896ecdbf43-text/javascript"></script>
<script id="react-js" src="https://leshalles-larochesuryon.fr/wp-includes/js/dist/vendor/react.min.js?ver=18.3.1.1" type="158dd22977020f896ecdbf43-text/javascript"></script>
<script id="react-dom-js" src="https://leshalles-larochesuryon.fr/wp-includes/js/dist/vendor/react-dom.min.js?ver=18.3.1.1" type="158dd22977020f896ecdbf43-text/javascript"></script>
<script id="react-jsx-runtime-js" src="https://leshalles-larochesuryon.fr/wp-includes/js/dist/vendor/react-jsx-runtime.min.js?ver=18.3.1" type="158dd22977020f896ecdbf43-text/javascript"></script>
<script id="wp-escape-html-js" src="https://leshalles-larochesuryon.fr/wp-includes/js/dist/escape-html.min.js?ver=87ebe53e97bba59805a5" type="158dd22977020f896ecdbf43-text/javascript"></script>
<script id="wp-element-js" src="https://leshalles-larochesuryon.fr/wp-includes/js/dist/element.min.js?ver=4a4370b2b349066fd440" type="158dd22977020f896ecdbf43-text/javascript"></script>
<script id="wp-hooks-js" src="https://leshalles-larochesuryon.fr/wp-includes/js/dist/hooks.min.js?ver=f0f188028580e8dc1255" type="158dd22977020f896ecdbf43-text/javascript"></script>
<script id="wp-i18n-js" src="https://leshalles-larochesuryon.fr/wp-includes/js/dist/i18n.min.js?ver=1dfe7db3940c23ea9216" type="158dd22977020f896ecdbf43-text/javascript"></script>
<script id="wp-i18n-js-after" type="158dd22977020f896ecdbf43-text/javascript">
wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } );
//# sourceURL=wp-i18n-js-after
</script>
<script id="htm-js" src="https://leshalles-larochesuryon.fr/wp-content/plugins/metform/assets/libs/htm/htm.js?ver=4.3.0" type="158dd22977020f896ecdbf43-text/javascript"></script>
<script id="metform-app-js-extra" type="158dd22977020f896ecdbf43-text/javascript">
var mf = {"postType":"page","restURI":"https://leshalles-larochesuryon.fr/wp-json/metform/v1/forms/views/","minMsg1":"La longueur minimale devrait \u00eatre ","Msg2":" caract\u00e8res de long.","maxMsg1":"La longueur maximale devrait \u00eatre ","maxNum":"Le nombre maximal devrait \u00eatre ","minNum":"Le nombre minimum devrait \u00eatre "};
//# sourceURL=metform-app-js-extra
</script>
<script id="metform-app-js" src="https://leshalles-larochesuryon.fr/wp-content/plugins/metform/build/frontend/app/index.js?ver=6ea98acae644b20be40c" type="158dd22977020f896ecdbf43-text/javascript"></script>
<script id="mf-widget-frontend-js" src="https://leshalles-larochesuryon.fr/wp-content/plugins/metform/build/frontend/widget-bootstrap/index.js?ver=b445a4677483b289f57b" type="158dd22977020f896ecdbf43-text/javascript"></script>
<script id="cute-alert-js" src="https://leshalles-larochesuryon.fr/wp-content/plugins/metform/assets/libs/cute-alert/cute-alert.js?ver=4.3.0" type="158dd22977020f896ecdbf43-text/javascript"></script>
<script id="hello-theme-frontend-js" src="https://leshalles-larochesuryon.fr/wp-content/themes/hello-elementor/assets/js/hello-frontend.js?ver=3.5.1" type="158dd22977020f896ecdbf43-text/javascript"></script>
<script id="elementor-webpack-runtime-js" src="https://leshalles-larochesuryon.fr/wp-content/plugins/elementor/assets/js/webpack.runtime.min.js?ver=4.2.4" type="158dd22977020f896ecdbf43-text/javascript"></script>
<script id="elementor-frontend-modules-js" src="https://leshalles-larochesuryon.fr/wp-content/plugins/elementor/assets/js/frontend-modules.min.js?ver=4.2.4" type="158dd22977020f896ecdbf43-text/javascript"></script>
<script id="jquery-ui-core-js-before" type="158dd22977020f896ecdbf43-text/javascript">
jQuery.uiBackCompat = true;
//# sourceURL=jquery-ui-core-js-before
</script>
<script id="jquery-ui-core-js" src="https://leshalles-larochesuryon.fr/wp-includes/js/jquery/ui/core.min.js?ver=1.14.2" type="158dd22977020f896ecdbf43-text/javascript"></script>
<script id="elementor-frontend-js-before" type="158dd22977020f896ecdbf43-text/javascript">
var elementorFrontendConfig = {"environmentMode":{"edit":false,"wpPreview":false,"isScriptDebug":false},"i18n":{"shareOnFacebook":"Partager sur Facebook","shareOnX":"Share on X","pinIt":"L\u2019\u00e9pingler","download":"T\u00e9l\u00e9charger","downloadImage":"T\u00e9l\u00e9charger une image","fullscreen":"Plein \u00e9cran","zoom":"Zoom","share":"Partager","playVideo":"Lire la vid\u00e9o","previous":"Pr\u00e9c\u00e9dent","next":"Suivant","close":"Fermer","a11yCarouselPrevSlideMessage":"Diapositive pr\u00e9c\u00e9dente","a11yCarouselNextSlideMessage":"Diapositive suivante","a11yCarouselFirstSlideMessage":"Ceci est la premi\u00e8re diapositive","a11yCarouselLastSlideMessage":"Ceci est la derni\u00e8re diapositive","a11yCarouselPaginationBulletMessage":"Aller \u00e0 la diapositive"},"is_rtl":false,"breakpoints":{"xs":0,"sm":480,"md":768,"lg":1025,"xl":1440,"xxl":1600},"responsive":{"breakpoints":{"mobile":{"label":"Portrait mobile","value":767,"default_value":767,"direction":"max","is_enabled":true},"mobile_extra":{"label":"Mobile Paysage","value":820,"default_value":880,"direction":"max","is_enabled":true},"tablet":{"label":"Tablette en mode portrait","value":1024,"default_value":1024,"direction":"max","is_enabled":true},"tablet_extra":{"label":"Tablette en mode paysage","value":1180,"default_value":1200,"direction":"max","is_enabled":true},"laptop":{"label":"Portable","value":1440,"default_value":1366,"direction":"max","is_enabled":true},"widescreen":{"label":"\u00c9cran large","value":2400,"default_value":2400,"direction":"min","is_enabled":false}},"hasCustomBreakpoints":true},"version":"4.2.4","is_static":false,"experimentalFeatures":{"e_font_icon_svg":true,"additional_custom_breakpoints":true,"container":true,"e_panel_promotions":true,"theme_builder_v2":true,"hello-theme-header-footer":true,"nested-elements":true,"global_classes_should_enforce_capabilities":true,"e_variables":true,"e_opt_in_v4_page":true,"e_components":true,"e_interactions":true,"e_widget_creation":true,"import-export-customization":true,"e_pro_atomic_form":true,"e_pro_collection_loop":true,"e_pro_variables":true,"e_pro_interactions":true},"urls":{"assets":"https:\/\/leshalles-larochesuryon.fr\/wp-content\/plugins\/elementor\/assets\/","ajaxurl":"https:\/\/leshalles-larochesuryon.fr\/wp-admin\/admin-ajax.php","uploadUrl":"https:\/\/leshalles-larochesuryon.fr\/wp-content\/uploads"},"nonces":{"floatingButtonsClickTracking":"23603847fc","atomicFormsSendForm":"e12bae8afe"},"swiperClass":"swiper","settings":{"page":[],"editorPreferences":[]},"kit":{"active_breakpoints":["viewport_mobile","viewport_mobile_extra","viewport_tablet","viewport_tablet_extra","viewport_laptop"],"viewport_mobile_extra":820,"viewport_tablet_extra":1180,"viewport_laptop":1440,"global_image_lightbox":"yes","lightbox_enable_counter":"yes","lightbox_enable_fullscreen":"yes","lightbox_enable_zoom":"yes","lightbox_enable_share":"yes","lightbox_title_src":"title","lightbox_description_src":"description","hello_header_logo_type":"logo","hello_header_menu_layout":"horizontal","hello_footer_logo_type":"logo"},"post":{"id":1556,"title":"March%C3%A9%20des%20halles%20de%20la%20roche%20sur%20yon%20-%20Les%20Halles%20de%20La%20Roche%20sur%20Yon","excerpt":"","featuredImage":false}};
//# sourceURL=elementor-frontend-js-before
</script>
<script id="elementor-frontend-js" src="https://leshalles-larochesuryon.fr/wp-content/plugins/elementor/assets/js/frontend.min.js?ver=4.2.4" type="158dd22977020f896ecdbf43-text/javascript"></script>
<script id="tf-navmenu-js" src="https://leshalles-larochesuryon.fr/wp-content/plugins/themesflat-addons-for-elementor/assets/js/tf-navmenu.js?ver=7.1.3" type="158dd22977020f896ecdbf43-text/javascript"></script>
<script id="ekit-core-js-extra" type="158dd22977020f896ecdbf43-text/javascript">
var ekit_config = {"ajaxurl":"https://leshalles-larochesuryon.fr/wp-admin/admin-ajax.php","nonce":"76aea2c1ac"};
//# sourceURL=ekit-core-js-extra
</script>
<script id="ekit-core-js" src="https://leshalles-larochesuryon.fr/wp-content/plugins/elementskit-lite/widgets/init/assets/js/widgets/core.js?ver=4.0.2" type="158dd22977020f896ecdbf43-text/javascript"></script>
<script id="ekit-header-search-js" src="https://leshalles-larochesuryon.fr/wp-content/plugins/elementskit-lite/widgets/init/assets/js/widgets/header-search.js?ver=4.0.2" type="158dd22977020f896ecdbf43-text/javascript"></script>
<script id="magnific-popup-js" src="https://leshalles-larochesuryon.fr/wp-content/plugins/themesflat-addons-for-elementor/assets/js/magnific.popup.min.js?ver=7.1.3" type="158dd22977020f896ecdbf43-text/javascript"></script>
<script id="owl-carousel-js" src="https://leshalles-larochesuryon.fr/wp-content/plugins/themesflat-addons-for-elementor/assets/js/owl.carousel.min.js?ver=7.1.3" type="158dd22977020f896ecdbf43-text/javascript"></script>
<script id="jquery-isotope-js" src="https://leshalles-larochesuryon.fr/wp-content/plugins/themesflat-addons-for-elementor/assets/js/jquery.isotope.min.js?ver=7.1.3" type="158dd22977020f896ecdbf43-text/javascript"></script>
<script id="imagesloaded-pkgd-js" src="https://leshalles-larochesuryon.fr/wp-content/plugins/themesflat-addons-for-elementor/assets/js/imagesloaded.pkgd.min.js?ver=7.1.3" type="158dd22977020f896ecdbf43-text/javascript"></script>
<script id="tf-post-js" src="https://leshalles-larochesuryon.fr/wp-content/plugins/themesflat-addons-for-elementor/assets/js/tf-post.js?ver=7.1.3" type="158dd22977020f896ecdbf43-text/javascript"></script>
<script id="ekit-nav-menu-js" src="https://leshalles-larochesuryon.fr/wp-content/plugins/elementskit-lite/widgets/init/assets/js/widgets/nav-menu.js?ver=4.0.2" type="158dd22977020f896ecdbf43-text/javascript"></script>
<script id="ekit-menu-js" src="https://leshalles-larochesuryon.fr/wp-content/plugins/elementskit-lite/widgets/init/assets/js/nav-menu.js?ver=4.0.2" type="158dd22977020f896ecdbf43-text/javascript"></script>
<script id="ekit-header-offcanvas-js" src="https://leshalles-larochesuryon.fr/wp-content/plugins/elementskit-lite/widgets/init/assets/js/widgets/header-offcanvas.js?ver=4.0.2" type="158dd22977020f896ecdbf43-text/javascript"></script>
<script data-ccm-injected="1" async data-wp-strategy="async" id="trustindex-loader-js-js" src="https://cdn.trustindex.io/loader.js?ver=1" type="158dd22977020f896ecdbf43-text/javascript"></script>
<script id="elementor-pro-webpack-runtime-js" src="https://leshalles-larochesuryon.fr/wp-content/plugins/elementor-pro/assets/js/webpack-pro.runtime.min.js?ver=4.2.3" type="158dd22977020f896ecdbf43-text/javascript"></script>
<script id="elementor-pro-frontend-js-before" type="158dd22977020f896ecdbf43-text/javascript">
var ElementorProFrontendConfig = {"ajaxurl":"https:\/\/leshalles-larochesuryon.fr\/wp-admin\/admin-ajax.php","nonce":"35baae22ba","urls":{"assets":"https:\/\/leshalles-larochesuryon.fr\/wp-content\/plugins\/elementor-pro\/assets\/","rest":"https:\/\/leshalles-larochesuryon.fr\/wp-json\/"},"settings":{"lazy_load_background_images":true},"popup":{"hasPopUps":false},"shareButtonsNetworks":{"facebook":{"title":"Facebook","has_counter":true},"twitter":{"title":"Twitter"},"linkedin":{"title":"LinkedIn","has_counter":true},"pinterest":{"title":"Pinterest","has_counter":true},"reddit":{"title":"Reddit","has_counter":true},"vk":{"title":"VK","has_counter":true},"odnoklassniki":{"title":"OK","has_counter":true},"tumblr":{"title":"Tumblr"},"digg":{"title":"Digg"},"skype":{"title":"Skype"},"stumbleupon":{"title":"StumbleUpon","has_counter":true},"mix":{"title":"Mix"},"telegram":{"title":"Telegram"},"pocket":{"title":"Pocket","has_counter":true},"xing":{"title":"XING","has_counter":true},"whatsapp":{"title":"WhatsApp"},"email":{"title":"Email"},"print":{"title":"Print"},"x-twitter":{"title":"X"},"threads":{"title":"Threads"}},"facebook_sdk":{"lang":"fr_FR","app_id":""},"lottie":{"defaultAnimationUrl":"https:\/\/leshalles-larochesuryon.fr\/wp-content\/plugins\/elementor-pro\/modules\/lottie\/assets\/animations\/default.json"}};
//# sourceURL=elementor-pro-frontend-js-before
</script>
<script id="elementor-pro-frontend-js" src="https://leshalles-larochesuryon.fr/wp-content/plugins/elementor-pro/assets/js/frontend.min.js?ver=4.2.3" type="158dd22977020f896ecdbf43-text/javascript"></script>
<script id="pro-elements-handlers-js" src="https://leshalles-larochesuryon.fr/wp-content/plugins/elementor-pro/assets/js/elements-handlers.min.js?ver=4.2.3" type="158dd22977020f896ecdbf43-text/javascript"></script>
<script id="wp-emoji-settings" type="application/json">
{"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://leshalles-larochesuryon.fr/wp-includes/js/wp-emoji-release.min.js?ver=7.1.3"}}
</script>
<script type="158dd22977020f896ecdbf43-module">
/*! This file is auto-generated */
var e="script#wp-emoji-settings",t=document.querySelector(e);if(!(t instanceof HTMLScriptElement))throw new Error("Element missing: "+e);const r=JSON.parse(t.text),s=(window._wpemojiSettings=r,"wpEmojiSettingsSupports"),o=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(s,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const r=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===r[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,r){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!r(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,r){let a;const s=(a="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),o=(s.textBaseline="top",s.font="600 32px Arial",{});return e.forEach(e=>{o[e]=t(s,e,n,r)}),o}function a(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}r.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(s));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(o),u.toString(),c.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"});const a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=e=>{i(n=e.data),a.terminate(),t(n)})}catch(e){}i(n=f(o,u,c,p))}t(n)}).then(e=>{for(const n in e)r.supports[n]=e[n],r.supports.everything=r.supports.everything&&r.supports[n],"flag"!==n&&(r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&r.supports[n]);var t;r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&!r.supports.flag,r.supports.everything||((t=r.source||{}).concatemoji?a(t.concatemoji):t.wpemoji&&t.twemoji&&(a(t.twemoji),a(t.wpemoji)))});
//# sourceURL=https://leshalles-larochesuryon.fr/wp-includes/js/wp-emoji-loader.min.js
</script>
<script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="158dd22977020f896ecdbf43-|49" defer></script></body>
</html>
<!-- Page supported by LiteSpeed Cache 7.9.1 on 2026-10-23 09:41:56 -->