/* ══════════════════════════════════════════════════════════ ilx-marches — extension thématique pour l'article pilier "Marchés de la province de Luxembourg" ══════════════════════════════════════════════════════════ */ /* Hero magazine */ .ilx-pp .marches-hero { background: linear-gradient(135deg, #14532d 0%, #166534 45%, #f0a500 100%) !important; color: #fff; padding: 38px 36px; border-radius: 16px; margin: 0 0 1.8em; box-shadow: 0 10px 30px rgba(20,83,45,0.18); position: relative; overflow: hidden; } .ilx-pp .marches-hero::after { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 85% 20%, rgba(255,255,255,0.18), transparent 55%); pointer-events: none; } .ilx-pp .marches-hero h1 { color: #fff !important; font-size: 1.9em !important; margin: 0 0 12px; line-height: 1.2 !important; font-weight: 800; } .ilx-pp .marches-hero p { color: #f0fdf4 !important; font-size: 1.1em !important; margin: 0 0 18px; max-width: 720px; } .ilx-pp .marches-hero .badges { display: flex; flex-wrap: wrap; gap: 10px; } .ilx-pp .marches-hero .badge { display: inline-flex; align-items: center; gap: 6px; background: rgba(255,255,255,0.18); backdrop-filter: blur(6px); border: 1px solid rgba(255,255,255,0.25); padding: 7px 14px; border-radius: 20px; font-size: 0.88em; font-weight: 600; } /* ────── Carte interactive ────── */ .ilx-pp .ilx-marches-tool { background: #fff; border: 1px solid #e2e8f0; border-radius: 16px; padding: 24px; margin: 2em 0; box-shadow: 0 6px 20px rgba(15,23,42,0.06); } .ilx-pp .ilx-marches-tool h3 { color: #14532d !important; margin: 0 0 8px; font-size: 1.25em !important; border-bottom: none; } .ilx-pp .ilx-marches-tool .tool-sub { color: #475569; font-size: 0.95em !important; margin: 0 0 18px !important; } /* Filtre par jour */ .ilx-pp .ilx-jours-filter { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 18px; } .ilx-pp .ilx-jour-btn { appearance: none; border: 2px solid #e2e8f0; background: #f8fafc; color: #475569; padding: 9px 16px; border-radius: 10px; font-size: 0.95em; font-weight: 600; cursor: pointer; transition: all 0.18s ease; font-family: inherit; } .ilx-pp .ilx-jour-btn:hover { border-color: #f0a500; color: #1a2744; transform: translateY(-1px); } .ilx-pp .ilx-jour-btn.is-active { background: linear-gradient(135deg, #14532d, #166534); color: #fff !important; border-color: #14532d; box-shadow: 0 4px 12px rgba(20,83,45,0.25); } .ilx-pp .ilx-jour-btn .count { display: inline-block; background: rgba(255,255,255,0.25); color: inherit; margin-left: 6px; padding: 1px 7px; border-radius: 8px; font-size: 0.78em; } .ilx-pp .ilx-jour-btn:not(.is-active) .count { background: #1a2744; color: #fff; } /* Conteneur carte Leaflet */ .ilx-pp #ilx-marches-map { width: 100%; height: 520px; border-radius: 12px; border: 1px solid #cbd5e1; margin: 0 0 18px; background: #f1f5f9; } .ilx-pp #ilx-marches-map .leaflet-popup-content { font-family: 'Segoe UI', Calibri, Arial, sans-serif; font-size: 13.5px; line-height: 1.55; } .ilx-pp #ilx-marches-map .leaflet-popup-content strong { color: #14532d; } /* Légende */ .ilx-pp .ilx-map-legend { display: flex; flex-wrap: wrap; gap: 14px; padding: 12px 16px; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 10px; font-size: 0.88em; color: #475569; } .ilx-pp .ilx-map-legend .legend-dot { display: inline-block; width: 14px; height: 14px; border-radius: 50%; margin-right: 6px; vertical-align: middle; border: 2px solid #fff; box-shadow: 0 0 0 1px rgba(0,0,0,0.15); } /* Liste filtrée des marchés du jour */ .ilx-pp .ilx-marches-results { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; margin: 18px 0 0; min-height: 60px; } .ilx-pp .ilx-marche-card { background: #f8fafc; border: 1px solid #e2e8f0; border-left: 4px solid #14532d; border-radius: 10px; padding: 14px 16px; transition: transform 0.18s, box-shadow 0.18s; } .ilx-pp .ilx-marche-card:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(20,83,45,0.10); } .ilx-pp .ilx-marche-card .nom { font-weight: 700; color: #1a2744; font-size: 1.05em; margin: 0 0 4px; } .ilx-pp .ilx-marche-card .lieu { font-size: 0.88em; color: #475569; margin: 0 0 6px; } .ilx-pp .ilx-marche-card .horaire { font-size: 0.95em; color: #14532d; font-weight: 600; } .ilx-pp .ilx-marche-card .type-pill { display: inline-block; font-size: 0.72em; font-weight: 700; padding: 2px 9px; border-radius: 12px; margin-top: 6px; text-transform: uppercase; letter-spacing: 0.5px; } .ilx-pp .ilx-marche-card .type-hebdo { background: #14532d; color: #fff; } .ilx-pp .ilx-marche-card .type-mensuel { background: #f0a500; color: #1a2744; } .ilx-pp .ilx-marche-card .type-terroir { background: #8b5cf6; color: #fff; } .ilx-pp .ilx-marche-card .type-saisonnier { background: #3b82f6; color: #fff; } .ilx-pp .ilx-marche-card .type-annuel { background: #ef4444; color: #fff; } .ilx-pp .ilx-marches-empty { grid-column: 1 / -1; text-align: center; color: #64748b; padding: 30px; font-style: italic; background: #f8fafc; border-radius: 10px; } /* ────── Cards "marchés vedettes" (descriptions longues) ────── */ .ilx-pp .marche-vedette { background: linear-gradient(135deg, #fff 0%, #f0fdf4 100%); border: 1px solid #bbf7d0; border-left: 6px solid #14532d; border-radius: 14px; padding: 26px 30px; margin: 1.6em 0; box-shadow: 0 4px 16px rgba(20,83,45,0.08); } .ilx-pp .marche-vedette .vedette-head { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-bottom: 12px; } .ilx-pp .marche-vedette h3 { color: #14532d !important; margin: 0 !important; font-size: 1.35em !important; flex: 1; } .ilx-pp .marche-vedette .vedette-pill { display: inline-block; background: #14532d; color: #fff; font-size: 0.75em; font-weight: 700; padding: 4px 12px; border-radius: 12px; text-transform: uppercase; letter-spacing: 0.5px; } .ilx-pp .marche-vedette .vedette-meta { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px; margin: 14px 0; padding: 12px; background: #fff; border-radius: 10px; border: 1px solid #d1fae5; } .ilx-pp .marche-vedette .vm-item { font-size: 0.92em; } .ilx-pp .marche-vedette .vm-item .vm-label { display: block; font-size: 0.78em; text-transform: uppercase; letter-spacing: 0.6px; color: #14532d; font-weight: 700; margin-bottom: 2px; } .ilx-pp .marche-vedette .vm-item .vm-value { color: #1a2744; font-weight: 600; } /* Verifier-commune (badge téléphone) */ .ilx-pp .verifier-commune { display: inline-block; background: #fef3c7; color: #92400e; border: 1px dashed #f59e0b; padding: 4px 10px; border-radius: 8px; font-size: 0.85em; font-weight: 600; margin-left: 6px; } .ilx-pp .verifier-commune a { color: #92400e !important; text-decoration: none !important; } .ilx-pp .verifier-commune a:hover { text-decoration: underline !important; } /* Sous-régions : couleurs distinctives */ .ilx-pp .sousregion-arlon h2 { border-bottom-color: #f0a500 !important; } .ilx-pp .sousregion-gaume h2 { border-bottom-color: #16a34a !important; } .ilx-pp .sousregion-centre h2 { border-bottom-color: #8b5cf6 !important; } .ilx-pp .sousregion-famenne h2 { border-bottom-color: #3b82f6 !important; } .ilx-pp .sousregion-haute h2 { border-bottom-color: #ef4444 !important; } .ilx-pp .sousregion-tag { display: inline-block; font-size: 0.78em; font-weight: 700; padding: 4px 12px; border-radius: 12px; margin-bottom: 10px; text-transform: uppercase; letter-spacing: 0.6px; } .ilx-pp .sousregion-arlon .sousregion-tag { background: #f0a500; color: #1a2744; } .ilx-pp .sousregion-gaume .sousregion-tag { background: #16a34a; color: #fff; } .ilx-pp .sousregion-centre .sousregion-tag { background: #8b5cf6; color: #fff; } .ilx-pp .sousregion-famenne .sousregion-tag { background: #3b82f6; color: #fff; } .ilx-pp .sousregion-haute .sousregion-tag { background: #ef4444; color: #fff; } /* Tableau marchés : version optimisée */ .ilx-pp .table-marches td.col-jour { font-weight: 700; color: #14532d; white-space: nowrap; } .ilx-pp .table-marches td.col-type { font-size: 0.88em; } .ilx-pp .table-marches .pill { display: inline-block; font-size: 0.72em; font-weight: 700; padding: 2px 8px; border-radius: 10px; text-transform: uppercase; letter-spacing: 0.4px; } .ilx-pp .table-marches .pill-hebdo { background: #14532d; color: #fff; } .ilx-pp .table-marches .pill-mensuel { background: #f0a500; color: #1a2744; } .ilx-pp .table-marches .pill-terroir { background: #8b5cf6; color: #fff; } .ilx-pp .table-marches .pill-saisonnier { background: #3b82f6; color: #fff; } .ilx-pp .table-marches .pill-annuel { background: #ef4444; color: #fff; } /* Stats hero (chiffres clés en haut) */ .ilx-pp .stats-marches { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 14px; margin: 1.5em 0; } .ilx-pp .stat-card { background: #fff; border: 1px solid #e2e8f0; border-radius: 12px; padding: 18px; text-align: center; box-shadow: 0 2px 8px rgba(15,23,42,0.05); } .ilx-pp .stat-card .stat-num { font-size: 2em; font-weight: 800; color: #14532d; line-height: 1; margin-bottom: 4px; } .ilx-pp .stat-card .stat-label { font-size: 0.88em; color: #475569; text-transform: uppercase; letter-spacing: 0.5px; } /* Sommaire ancres */ .ilx-pp .sommaire-marches { background: #f0fdf4; border: 1px solid #bbf7d0; border-radius: 12px; padding: 20px 24px; margin: 1.8em 0; } .ilx-pp .sommaire-marches h3 { color: #14532d !important; margin: 0 0 12px !important; font-size: 1.1em !important; border-bottom: none; } .ilx-pp .sommaire-marches ul { columns: 2; column-gap: 30px; padding-left: 1.2em; margin: 0; } .ilx-pp .sommaire-marches li { margin-bottom: 6px; break-inside: avoid; font-size: 0.95em; } .ilx-pp .sommaire-marches li a { color: #14532d; text-decoration: none; font-weight: 600; } .ilx-pp .sommaire-marches li a:hover { color: #f0a500; text-decoration: underline; } /* Responsive */ @media (max-width: 768px) { .ilx-pp .marches-hero { padding: 24px 22px; } .ilx-pp .marches-hero h1 { font-size: 1.5em !important; } .ilx-pp #ilx-marches-map { height: 400px; } .ilx-pp .ilx-jour-btn { padding: 7px 12px; font-size: 0.88em; } .ilx-pp .marche-vedette { padding: 20px 18px; } .ilx-pp .sommaire-marches ul { columns: 1; } .ilx-pp .table-marches { font-size: 0.78em; } .ilx-pp .table-marches th, .ilx-pp .table-marches td { padding: 8px 10px; } } <!-- ============================================================ SNIPPET WPCODE - Carte interactive marches Province Luxembourg Type : HTML Snippet Emplacement : everywhere (footer-like via WPCode v2.x) Nom : "JS Marches Luxembourg Leaflet" ============================================================ - Leaflet est DEJA charge par le plugin Directories Pro sur info-lux.com (URL : /wp-content/plugins/directories-pro/assets/vendor/js/leaflet.min.js) - On retire le + qui etaient strippes par WP Rocket - On retry tant que `L` ou `#ilx-marches-map` ne sont pas dispo ============================================================ --> (function () { var attempts = 0; var MAX_ATTEMPTS = 60; // 60 * 250ms = 15s max function init() { attempts++; var mapEl = document.getElementById('ilx-marches-map'); // La div carte n'est pas dans le DOM (autre page) -> stop if (!mapEl && attempts > 4) return; // Pas encore charge OU Leaflet pas encore disponible if (!mapEl || typeof L === 'undefined') { if (attempts < MAX_ATTEMPTS) setTimeout(init, 250); return; } // Eviter double init si le script est inclus deux fois if (mapEl._ilxInited) return; mapEl._ilxInited = true; // ──────────────────────────────────────────────── // Donnees marches (source unique pour la carte + le filtre) // ──────────────────────────────────────────────── var MARCHES = [ // PAYS D'ARLON { nom: "Arlon - centre-ville", commune: "Arlon", lieu: "Place Léopold, Marché-aux-Légumes", lat: 49.6837, lng: 5.8163, jours: ["jeudi"], horaire: "Dès 8h", type: "hebdo", freq: "Tous les jeudis matin" }, { nom: "Brocante du Vieil Arlon", commune: "Arlon", lieu: "Centre historique", lat: 49.6843, lng: 5.8175, jours: ["dimanche"], horaire: "8h-16h", type: "mensuel", freq: "1er dimanche du mois" }, { nom: "Aubange - Athus", commune: "Aubange", lieu: "Rue des Jardins / rue du Commerce", lat: 49.5594, lng: 5.8336, jours: ["vendredi"], horaire: "6h-13h30", type: "hebdo", freq: "Tous les vendredis" }, { nom: "Aubange - Halanzy", commune: "Aubange", lieu: "Place Communale, Halanzy", lat: 49.5556, lng: 5.7861, jours: ["samedi"], horaire: "7h30-13h", type: "hebdo", freq: "Tous les samedis" }, { nom: "Habay-la-Neuve", commune: "Habay", lieu: "Place Pierre Nothomb", lat: 49.7236, lng: 5.6406, jours: ["mercredi"], horaire: "7h-13h", type: "hebdo", freq: "Tous les mercredis" }, { nom: "Saveurs Locales (Habay)", commune: "Habay", lieu: "Place Pierre Nothomb / Espace Bologne", lat: 49.7236, lng: 5.6411, jours: ["samedi"], horaire: "9h-12h", type: "terroir", freq: "Tous les samedis" }, { nom: "Marbehan", commune: "Habay", lieu: "Grand Rue, 6724 Marbehan", lat: 49.7019, lng: 5.5586, jours: ["mardi"], horaire: "Matin", type: "hebdo", freq: "Tous les mardis matin" }, // GAUME { nom: "Virton", commune: "Virton", lieu: "Place Nestor Outer", lat: 49.5681, lng: 5.5311, jours: ["vendredi"], horaire: "8h-12h", type: "hebdo", freq: "Tous les vendredis" }, { nom: "Étalle", commune: "Étalle", lieu: "Rue Saint-Antoine", lat: 49.6739, lng: 5.6014, jours: ["samedi"], horaire: "7h-13h", type: "saisonnier", freq: "Samedis (saison)" }, { nom: "Florenville (mensuel)", commune: "Florenville", lieu: "Place Albert 1er & Place des Trois Suzanne", lat: 49.6987, lng: 5.3072, jours: ["mercredi"], horaire: "Matin", type: "mensuel", freq: "1er mercredi du mois" }, { nom: "Florenville (été)", commune: "Florenville", lieu: "Place Albert 1er", lat: 49.6989, lng: 5.3074, jours: ["mercredi"], horaire: "9h-18h", type: "saisonnier", freq: "Mercredis juillet-août" }, { nom: "Chassepierre", commune: "Florenville", lieu: "Centre village, rue Antoine", lat: 49.7058, lng: 5.2675, jours: ["dimanche"], horaire: "8h-12h", type: "terroir", freq: "Tous les dimanches" }, { nom: "Jamoigne", commune: "Chiny", lieu: "Place de Jamoigne", lat: 49.7219, lng: 5.3408, jours: ["mardi"], horaire: "15h-18h30", type: "saisonnier", freq: "Mardis (saison)" }, { nom: "Halle de Han", commune: "Tintigny", lieu: "Halle de Han, Han 36, 6730 Tintigny", lat: 49.6917, lng: 5.5172, jours: ["vendredi"], horaire: "17h-20h", type: "terroir", freq: "Tous les vendredis" }, // CENTRE-ARDENNE { nom: "Bastogne - Foire aux camelots", commune: "Bastogne", lieu: "Rue des Récollets", lat: 50.0007, lng: 5.7167, jours: ["samedi"], horaire: "7h-13h", type: "hebdo", freq: "Samedi sur deux" }, { nom: "Bertrix", commune: "Bertrix", lieu: "Pl. des Trois Fers / Pl. de la Gare", lat: 49.8517, lng: 5.2569, jours: ["jeudi"], horaire: "8h-13h", type: "hebdo", freq: "Tous les jeudis" }, { nom: "Bertogne", commune: "Bertogne", lieu: "Place du Commerce", lat: 50.0167, lng: 5.6500, jours: ["mardi"], horaire: "14h-17h30", type: "saisonnier", freq: "Mardis (avril-octobre)" }, { nom: "Marché des 3 communes (Tenneville)", commune: "Tenneville", lieu: "Salle Le Foyer, sous l'église", lat: 50.1000, lng: 5.5333, jours: ["vendredi"], horaire: "17h-20h", type: "terroir", freq: "1er vendredi (sf jan/jui/août)" }, { nom: "Saint-Hubert", commune: "Saint-Hubert", lieu: "Place de l'Abbaye", lat: 50.0269, lng: 5.3717, jours: ["samedi"], horaire: "Matin", type: "mensuel", freq: "1er samedi du mois (à confirmer)" }, { nom: "Marché du Terroir Libramont", commune: "Libramont", lieu: "Place Communale", lat: 49.9203, lng: 5.3756, jours: ["vendredi"], horaire: "16h-20h", type: "terroir", freq: "2e & 4e vendredis (mars-oct)" }, { nom: "Marché du Terroir Neufchâteau", commune: "Neufchâteau", lieu: "Espace 29", lat: 49.8408, lng: 5.4358, jours: ["samedi"], horaire: "15h-19h", type: "terroir", freq: "Samedis (saisonnier)" }, { nom: "Marché du Terroir de Léglise", commune: "Léglise", lieu: "Place du Marché", lat: 49.8053, lng: 5.5364, jours: ["samedi"], horaire: "15h-19h (bar 20h)", type: "terroir", freq: "1er samedi (avril-octobre)" }, { nom: "Petits Marchés de Redu", commune: "Libin", lieu: "Place de l'Esro, Village du Livre", lat: 50.0064, lng: 5.1614, jours: ["samedi"], horaire: "13h30-18h30", type: "terroir", freq: "1er samedi (avril-octobre)" }, { nom: "Marché des Bastions de Bouillon", commune: "Bouillon", lieu: "Boulevard Heynens", lat: 49.7942, lng: 5.0681, jours: ["dimanche"], horaire: "8h-13h", type: "saisonnier", freq: "Dimanches (29 mars - 25 oct)" }, // FAMENNE-ARDENNE { nom: "Marche-en-Famenne", commune: "Marche-en-Famenne", lieu: "Place aux Foires + Bd du Midi", lat: 50.2289, lng: 5.3431, jours: ["lundi"], horaire: "Matin", type: "mensuel", freq: "1er & 3e lundis du mois" }, { nom: "Marché gourmand de Marche", commune: "Marche-en-Famenne", lieu: "Place du Roi Albert", lat: 50.2278, lng: 5.3422, jours: ["vendredi"], horaire: "15h-20h", type: "terroir", freq: "2e vendredi (juin-octobre)" }, { nom: "Marché 1900", commune: "Marche-en-Famenne", lieu: "Centre-ville", lat: 50.2289, lng: 5.3439, jours: ["jeudi","vendredi","samedi","dimanche","lundi","mardi","mercredi"], horaire: "Toute la journée", type: "annuel", freq: "15 août (annuel)" }, { nom: "Hotton", commune: "Hotton", lieu: "Rue Haute", lat: 50.2658, lng: 5.4467, jours: ["samedi"], horaire: "7h-13h", type: "hebdo", freq: "Samedi sur deux" }, { nom: "Barvaux-sur-Ourthe", commune: "Durbuy", lieu: "Place du Marché, Barvaux", lat: 50.3458, lng: 5.5083, jours: ["mercredi"], horaire: "Matin", type: "hebdo", freq: "Tous les mercredis" }, { nom: "Petite Batte de Bomal", commune: "Durbuy", lieu: "Bomal-sur-Ourthe", lat: 50.3800, lng: 5.5478, jours: ["dimanche"], horaire: "Matin", type: "hebdo", freq: "Tous les dimanches" }, { nom: "March'Heyd", commune: "Durbuy", lieu: "Rowe di Veule 7, Heyd", lat: 50.3553, lng: 5.5739, jours: ["vendredi"], horaire: "15h30-18h", type: "terroir", freq: "Vendredis (mai-décembre)" }, { nom: "Mini Marché de Jenneret", commune: "Durbuy", lieu: "Jenneret", lat: 50.3742, lng: 5.4906, jours: ["jeudi"], horaire: "Dès 17h", type: "saisonnier", freq: "Jeudis (belle saison)" }, { nom: "Marché de Rendeux", commune: "Rendeux", lieu: "Salle Schérès, Rendeux-Haut", lat: 50.2403, lng: 5.5472, jours: ["jeudi"], horaire: "15h30-18h30", type: "terroir", freq: "Jeudis (mi-mars à novembre)" }, { nom: "Forrières (Nassogne)", commune: "Nassogne", lieu: "Forrières", lat: 50.1264, lng: 5.2842, jours: ["samedi"], horaire: "Matin", type: "mensuel", freq: "2e & 4e samedis du mois" }, // HAUTE-ARDENNE { nom: "Petit Marché de Vielsalm", commune: "Vielsalm", lieu: "Place Bruyères-en-Vosges", lat: 50.2806, lng: 5.9117, jours: ["mardi"], horaire: "16h-18h30", type: "terroir", freq: "Tous les mardis" }, { nom: "Saveurs d'Ardenne (Farnières)", commune: "Vielsalm", lieu: "Domaine de Farnières, Grand-Halleux", lat: 50.3206, lng: 5.9603, jours: ["mardi"], horaire: "17h-21h", type: "saisonnier", freq: "Mardis (27 juin - 29 août)" }, { nom: "Houffalize", commune: "Houffalize", lieu: "Place Janvier 45", lat: 50.1300, lng: 5.7900, jours: ["samedi"], horaire: "7h30-13h30", type: "hebdo", freq: "Samedi sur deux" }, { nom: "Marché du Terroir Houffalize", commune: "Houffalize", lieu: "Place Janvier 45", lat: 50.1303, lng: 5.7906, jours: ["jeudi"], horaire: "17h-20h", type: "saisonnier", freq: "Certains jeudis (juin-sept)" }, { nom: "Gouvy", commune: "Gouvy", lieu: "Centre Gouvy", lat: 50.1903, lng: 5.9519, jours: ["jeudi"], horaire: "7h30-12h", type: "hebdo", freq: "Jeudi sur deux" } ]; var COULEURS_JOUR = { lundi: '#ef4444', mardi: '#f0a500', mercredi: '#16a34a', jeudi: '#3b82f6', vendredi: '#8b5cf6', samedi: '#14532d', dimanche: '#ec4899' }; // ──────────────────────────────────────────────── // Init carte (centree sur la province) // ──────────────────────────────────────────────── var map = L.map('ilx-marches-map', { center: [49.95, 5.55], zoom: 9, scrollWheelZoom: false }); map.on('click', function () { map.scrollWheelZoom.enable(); }); map.on('mouseout', function () { map.scrollWheelZoom.disable(); }); L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { maxZoom: 18, attribution: '© OpenStreetMap' }).addTo(map); function makeIcon(color) { return L.divIcon({ className: 'ilx-marker', html: '
', iconSize: [22, 22], iconAnchor: [11, 22], popupAnchor: [0, -22] }); } var markers = []; MARCHES.forEach(function (m) { var jourPrincipal = m.jours[0]; var couleur = COULEURS_JOUR[jourPrincipal] || '#64748b'; var marker = L.marker([m.lat, m.lng], { icon: makeIcon(couleur) }).addTo(map); var popupHtml = '
' + '' + m.nom + '' + '' + m.lieu + '' + '' + m.freq + '' + '' + m.horaire + '' + '
'; marker.bindPopup(popupHtml); marker._ilx = m; markers.push(marker); }); // Forcer un invalidate apres init pour eviter carte grise setTimeout(function () { map.invalidateSize(); }, 200); // ──────────────────────────────────────────────── // Filtre par jour // ──────────────────────────────────────────────── var btns = document.querySelectorAll('.ilx-jour-btn'); var resultsContainer = document.getElementById('ilx-marches-results'); function renderResults(filtered) { if (!resultsContainer) return; if (filtered.length === 0) { resultsContainer.innerHTML = '
Aucun marché ce jour-là dans la province. Essayez un autre jour.
'; return; } resultsContainer.innerHTML = filtered.map(function (m) { return '' + '
' + '

' + m.nom + '

' + '

' + m.lieu + '

' + '

' + m.freq + ' · ' + m.horaire + '

' + '' + m.type + '' + '
'; }).join(''); } function applyFilter(jour) { var visible = []; markers.forEach(function (mk) { var m = mk._ilx; var ok = (jour === 'tous') || (m.jours.indexOf(jour) !== -1); if (ok) { mk.addTo(map); visible.push(m); } else { map.removeLayer(mk); } }); renderResults(visible); } btns.forEach(function (b) { b.addEventListener('click', function () { btns.forEach(function (x) { x.classList.remove('is-active'); }); b.classList.add('is-active'); applyFilter(b.getAttribute('data-jour')); }); }); applyFilter('tous'); var compteurs = { lundi:0, mardi:0, mercredi:0, jeudi:0, vendredi:0, samedi:0, dimanche:0, tous: MARCHES.length }; MARCHES.forEach(function (m) { m.jours.forEach(function (j) { if (compteurs.hasOwnProperty(j)) compteurs[j]++; }); }); btns.forEach(function (b) { var j = b.getAttribute('data-jour'); var c = compteurs[j]; var span = b.querySelector('.count'); if (span && typeof c !== 'undefined') span.textContent = c; }); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); } })();

Luxembourg > Euro Meet 2024 > Photos

Fév 1, 2024 | Luxembourg, Luxembourg-Ville, Patrick Schanen, Photos, photos, REPORTAGES, Sports, Sports, Thémes

Accueil » REPORTAGES » Photos » Luxembourg > Euro Meet 2024 > Photos

Euro Meet 2024 : Les Athlètes Luxembourgeois Face à l’Élite Internationale

Du 26 au 28 janvier, le Luxembourg a vibré au rythme de la 24e édition du CMCM EuroMeet, un événement phare de la natation européenne. Se déroulant dans l’enceinte prestigieuse de la Coque, cette compétition a rassemblé des nageurs de tous horizons, offrant une plateforme de qualification pour les Jeux Olympiques. Malgré une concurrence féroce, les athlètes luxembourgeois ont su démontrer leur talent, notamment dans les catégories Junior et Youth, mais ont rencontré des défis de taille face à des adversaires de renom.

Performances Notables et Défis Rencontrés

Stefano Valentini et Hugo Thill ont brillé en remportant chacun une médaille de bronze, respectivement sur 400m quatre nages et 200m brasse, mettant en lumière l’espoir du Luxembourg dans ces disciplines. Toutefois, au niveau élite, les résultats ont été plus mitigés. Maud Allar s’est distinguée en améliorant le record du Luxembourg sur 50m brasse avec un temps de 33s75, une performance qui lui a valu une promotion par le Comité olympique luxembourgeois. Finn Kemp, quant à lui, a décroché une admirable deuxième place sur le 200m quatre nages.

Pit Brandenburger, malheureusement, n’a pas rencontré le succès espéré, se classant 56e sur 200m nage libre et 64e sur 100m nage libre, des résultats en deçà des attentes placées en lui.

Un Relais Mixte Prometteur

Le Luxembourg a toutefois brillé dans le relais mixte 4x100m quatre nages, décrochant une remarquable deuxième place grâce à l’équipe composée de Rémi Fabiani, Maud Allar, Florian Frippiat et Jacqueline Banky. Cette performance souligne le potentiel des relais mixtes luxembourgeois sur la scène internationale.

Une Star Internationale à l’Euro Meet

L’Euro Meet a également été marqué par la présence de Sarah Sjöström, nageuse suédoise de renommée mondiale. Avec un palmarès impressionnant incluant 91 médailles internationales, dont quatre médailles olympiques et plusieurs records du monde, Sjöström continue de dominer les disciplines de nage libre et papillon. Sa participation a ajouté un éclat particulier à la compétition, offrant aux spectateurs et aux nageurs luxembourgeois l’opportunité de côtoyer une athlète d’exception.

L’Euro Meet 2024 a été une vitrine du talent et de la persévérance des nageurs luxembourgeois, qui se sont mesurés à certains des meilleurs athlètes mondiaux. Malgré les défis, les performances de Stefano Valentini, Hugo Thill, Maud Allar et l’équipe du relais mixte témoignent de l’avenir prometteur de la natation au Luxembourg. Cet événement a non seulement permis de mettre en lumière les talents locaux mais a aussi offert une expérience inestimable face à l’élite de la natation internationale.

Luxembourg > Euro Meet 2024 > Photos

Photos de Patrick Schanen

Infos Luxembourg

Article structuré et optimisé SEO avec l’aide d’un outil d’intelligence artificielle, sous supervision éditoriale.

✍️ Un avis, une question ou une précision à ajouter ? Laissez un commentaire ci-dessous, nous vous lisons avec attention.

0 Comments

Florenville > Carnaval 2026 > Programme

À Florenville, le Carnaval 2026 animera la ville durant trois jours de folklore, de musique et de traditions populaires. Des milliers de visiteurs viendront admirer les célèbres chars fleuris.

Arlon > Carnaval 2026 > Photos

Ce weekend, le Carnaval 2026 d’Arlon a transformé la ville en grande fête populaire. Durant quatre jours, la cité arlonaise a vibré au rythme des groupes costumés et de la grande cavalcade.

Infos >> Partenaires

Recherche avec filtres

Nos sponsors

Les infos de votre Région Gratuite Souhaitez-vous recevoir des notifications sur les dernières mises à jour ? Non oui