PageSourceSearch

https://info-meteo.fr/meteo-villes/

html info-meteo.fr collected 2026-10-07 07:33:20 UTC 26,360 bytes, 69 lines download raw bytes

1<!DOCTYPE html><html lang="fr"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width"><meta name="generator" content="Astro v7.3.5"><title>Météo des grandes villes françaises — Info-Meteo</title><meta name="description" content="Consultez la météo en direct des 20 grandes villes françaises couvertes par Info-Meteo : température, vent, humidité et pression, ville par ville."><meta name="theme-color" content="#10203A"><link rel="canonical" href="https://info-meteo.fr/meteo-villes/"><link rel="alternate" hreflang="fr" href="https://info-meteo.fr/meteo-villes/"><link rel="alternate" hreflang="x-default" href="https://info-meteo.fr/meteo-villes/"><meta property="og:title" content="Météo des grandes villes françaises — Info-Meteo"><meta property="og:description" content="Consultez la météo en direct des 20 grandes villes françaises couvertes par Info-Meteo : température, vent, humidité et pression, ville par ville."><meta property="og:image" content="https://info-meteo.fr/images/heroes/accueil-barometre-national.webp"><meta property="og:url" content="https://info-meteo.fr/meteo-villes/"><meta property="og:type" content="website"><meta property="og:site_name" content="Info-Meteo"><meta property="og:locale" content="fr_FR"><meta name="twitter:card" content="summary_large_image"><link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link rel="stylesheet" href="/css/style.css?v=e1f45b043e"><link rel="icon" href="/favicon.svg" type="image/svg+xml"><link rel="icon" href="/favicon.ico" sizes="any"><link rel="apple-touch-icon" href="/apple-touch-icon.png"></head><body><a class="skip-link" href="#contenu">Aller au contenu</a><header class="site-header" data-site-header><div class="site-header__inner container"><a class="site-logo" href="/" aria-label="Info-Meteo, accueil">Info<span>-Meteo</span></a><button class="nav-toggle" type="button" aria-expanded="false" aria-controls="navigation-principale" aria-label="Ouvrir le menu"><span></span><span></span><span></span></button><nav class="site-nav" id="navigation-principale" aria-label="Navigation principale"><ul class="site-nav__list"><li><details><summary>Guides</summary><ul class="site-nav__dropdown"><li><a href="/meteo-france-grandes-regions-climatiques/">Grandes régions climatiques</a></li><li><a href="/vigilance-meteo-france-comprendre-couleurs/">Vigilance météo, les couleurs</a></li><li><a href="/rechauffement-climatique-france-impacts-2026/">Réchauffement climatique</a></li><li><a href="/canicules-france-histoire-prevention/">Canicules, histoire et prévention</a></li><li><a href="/secheresse-france-agriculture-viticulture/">Sécheresse et agriculture</a></li><li><a href="/neige-montagne-france-massifs-enneigement/">Neige et montagne</a></li><li><a href="/orages-france-saison-orageuse-comprendre/">Orages, la saison orageuse</a></li><li><a href="/saisons-france-calendrier-climatique/">Les saisons, calendrier climatique</a></li><li><a href="/littoral-francais-montee-eaux-erosion-cotiere/">Littoral et montée des eaux</a></li><li><a href="/meteo-agriculture-france-guide-agriculteurs/">Météo et agriculture</a></li></ul></details></li><li><a href="/meteo-villes/" aria-current="page">Villes</a></li><li><a href="/blog/">Magazine</a></li><li><a href="/a-propos/">À propos</a></li><li><a href="/contact/">Contact</a></li></ul></nav></div></header><main id="contenu"><section class="page-hero"><div class="container"><p class="kicker">VILLES</p><h1>Météo des grandes villes françaises</h1><p>Retrouvez les conditions actuelles et les tendances météo des 20 grandes villes suivies par Info-Meteo, des métropoles aux préfectures régionales.</p></div></section><div class="container"><div class="city-grid"><a class="city-card reveal" href="/meteo-paris/" data-lat="48.8566" data-lon="2.3522" data-slug="meteo-paris"><div class="city-card-image" style="background-image: url('/images/heroes/meteo-paris.webp');"><span class="city-card-temp-overlay" data-weather-temp>—°</span></div><div class="city-card-body"><h3 class="city-card-name">Paris</h3><div class="city-card-region">Paris (75) · 35m</div><div class="city-card-meta"><div class="city-card-meta-item"><span class="city-card-meta-label">Vent</span><span class="city-card-meta-value" data-weather-wind>— km/h</span></div><div class="city-card-meta-item"><span class="city-card-meta-label">Humidité</span><span class="city-card-meta-value" data-weather-humidity>—%</span></div><div class="city-card-meta-item"><span class="city-card-meta-label">Pression</span><span class="city-card-meta-value" data-weather-pressure>— hPa</span></div></div></div></a><a class="city-card reveal" href="/meteo-marseille/" data-lat="43.2965" data-lon="5.3698" data-slug="meteo-marseille"><div class="city-card-image" style="background-image: url('/images/heroes/meteo-marseille.webp');"><span class="city-card-temp-overlay" data-weather-temp>—°</span></div><div class="city-card-body"><h3 class="city-card-name">Marseille</h3><div class="city-card-region">
1Bouches-du-Rhône (13) · 12m</div><div class="city-card-meta"><div class="city-card-meta-item"><span class="city-card-meta-label">Vent</span><span class="city-card-meta-value" data-weather-wind>— km/h</span></div><div class="city-card-meta-item"><span class="city-card-meta-label">Humidité</span><span class="city-card-meta-value" data-weather-humidity>—%</span></div><div class="city-card-meta-item"><span class="city-card-meta-label">Pression</span><span class="city-card-meta-value" data-weather-pressure>— hPa</span></div></div></div></a><a class="city-card reveal" href="/meteo-lyon/" data-lat="45.764" data-lon="4.8357" data-slug="meteo-lyon"><div class="city-card-image" style="background-image: url('/images/heroes/meteo-lyon.webp');"><span class="city-card-temp-overlay" data-weather-temp>—°</span></div><div class="city-card-body"><h3 class="city-card-name">Lyon</h3><div class="city-card-region">Rhône (69) · 173m</div><div class="city-card-meta"><div class="city-card-meta-item"><span class="city-card-meta-label">Vent</span><span class="city-card-meta-value" data-weather-wind>— km/h</span></div><div class="city-card-meta-item"><span class="city-card-meta-label">Humidité</span><span class="city-card-meta-value" data-weather-humidity>—%</span></div><div class="city-card-meta-item"><span class="city-card-meta-label">Pression</span><span class="city-card-meta-value" data-weather-pressure>— hPa</span></div></div></div></a><a class="city-card reveal" href="/meteo-toulouse/" data-lat="43.6047" data-lon="1.4442" data-slug="meteo-toulouse"><div class="city-card-image" style="background-image: url('/images/heroes/meteo-toulouse.webp');"><span class="city-card-temp-overlay" data-weather-temp>—°</span></div><div class="city-card-body"><h3 class="city-card-name">Toulouse</h3><div class="city-card-region">Haute-Garonne (31) · 146m</div><div class="city-card-meta"><div class="city-card-meta-item"><span class="city-card-meta-label">Vent</span><span class="city-card-meta-value" data-weather-wind>— km/h</span></div><div class="city-card-meta-item"><span class="city-card-meta-label">Humidité</span><span class="city-card-meta-value" data-weather-humidity>—%</span></div><div class="city-card-meta-item"><span class="city-card-meta-label">Pression</span><span class="city-card-meta-value" data-weather-pressure>— hPa</span></div></div></div></a><a class="city-card reveal" href="/meteo-nice/" data-lat="43.7102" data-lon="7.262" data-slug="meteo-nice"><div class="city-card-image" style="background-image: url('/images/heroes/meteo-nice.webp');"><span class="city-card-temp-overlay" data-weather-temp>—°</span></div><div class="city-card-body"><h3 class="city-card-name">Nice</h3><div class="city-card-region">
1Alpes-Maritimes (06) · 12m</div><div class="city-card-meta"><div class="city-card-meta-item"><span class="city-card-meta-label">Vent</span><span class="city-card-meta-value" data-weather-wind>— km/h</span></div><div class="city-card-meta-item"><span class="city-card-meta-label">Humidité</span><span class="city-card-meta-value" data-weather-humidity>—%</span></div><div class="city-card-meta-item"><span class="city-card-meta-label">Pression</span><span class="city-card-meta-value" data-weather-pressure>— hPa</span></div></div></div></a><a class="city-card reveal" href="/meteo-nantes/" data-lat="47.2184" data-lon="-1.5536" data-slug="meteo-nantes"><div class="city-card-image" style="background-image: url('/images/heroes/meteo-nantes.webp');"><span class="city-card-temp-overlay" data-weather-temp>—°</span></div><div class="city-card-body"><h3 class="city-card-name">Nantes</h3><div class="city-card-region">Loire-Atlantique (44) · 8m</div><div class="city-card-meta"><div class="city-card-meta-item"><span class="city-card-meta-label">Vent</span><span class="city-card-meta-value" data-weather-wind>— km/h</span></div><div class="city-card-meta-item"><span class="city-card-meta-label">Humidité</span><span class="city-card-meta-value" data-weather-humidity>—%</span></div><div class="city-card-meta-item"><span class="city-card-meta-label">Pression</span><span class="city-card-meta-value" data-weather-pressure>— hPa</span></div></div></div></a><a class="city-card reveal" href="/meteo-strasbourg/" data-lat="48.5734" data-lon="7.7521" data-slug="meteo-strasbourg"><div class="city-card-image" style="background-image: url('/images/heroes/meteo-strasbourg.webp');"><span class="city-card-temp-overlay" data-weather-temp>—°</span></div><div class="city-card-body"><h3 class="city-card-name">Strasbourg</h3><div class="city-card-region">Bas-Rhin (67) · 143m</div><div class="city-card-meta"><div class="city-card-meta-item"><span class="city-card-meta-label">Vent</span><span class="city-card-meta-value" data-weather-wind>— km/h</span></div><div class="city-card-meta-item"><span class="city-card-meta-label">Humidité</span><span class="city-card-meta-value" data-weather-humidity>—%</span></div><div class="city-card-meta-item"><span class="city-card-meta-label">Pression</span><span class="city-card-meta-value" data-weather-pressure>— hPa</span></div></div></div></a><a class="city-card reveal" href="/meteo-montpellier/" data-lat="43.6108" data-lon="3.8767" data-slug="meteo-montpellier"><div class="city-card-image" style="background-image: url('/images/heroes/meteo-montpellier.webp');"><span class="city-card-temp-overlay" data-weather-temp>—°</span></div><div class="city-card-body"><h3 class="city-card-name">Montpellier</h3><div class="city-card-region">Hérault (34) · 27m</div><div class="city-card-meta"><div class="city-card-meta-item"><span class="city-card-meta-label">Vent</span><span class="city-card-meta-value" data-weather-wind>— km/h</span></div><div class="city-card-meta-item"><span class="city-card-meta-label">Humidité</span><span class="city-card-meta-value" data-weather-humidity>—%</span></div><div class="city-card-meta-item"><span class="city-card-meta-label">Pression</span><span class="city-card-meta-value" data-weather-pressure>— hPa</span></div></div></div></a><a class="city-card reveal" href="/meteo-bordeaux/" data-lat="44.8378" data-lon="-0.5792" data-slug="meteo-bordeaux"><div class="city-card-image" style="background-image: url('/images/heroes/meteo-bordeaux.webp');"><span class="city-card-temp-overlay" data-weather-temp>—°</span></div><div class="city-card-body"><h3 class="city-card-name">Bordeaux</h3><div class="city-card-region">Gironde (33) · 6m</div><div class="city-card-meta"><div class="city-card-meta-item"><span class="city-card-meta-label">Vent</span><span class="city-card-meta-value" data-weather-wind>— km/h</span></div><div class="city-card-meta-item"><span class="city-card-meta-label">Humidité</span><span class="city-card-meta-value" data-weather-humidity>—%</span></div><div class="city-card-meta-item"><span class="city-card-meta-label">Pression</span><span class="city-card-meta-value" data-weather-pressure>— hPa</span></div></div></div></a><a class="city-card reveal" href="/meteo-lille/" data-lat="50.6292" data-lon="3.0573" data-slug="meteo-lille"><div class="city-card-image" style="background-image: url('/images/heroes/meteo-lille.webp');"><span class="city-card-temp-overlay" data-weather-temp>—°</span></div><div class="city-card-body"><h3 class="city-card-name">Lille</h3><div class="city-card-region">Nord (59) · 21m</div><div class="city-card-meta"><div class="city-card-meta-item"><span class="city-card-meta-label">Vent</span><span class="city-card-meta-value" data-weather-wind>— km/h</span></div><div class="city-card-meta-item"><span class="city-card-meta-label">Humidité</span><span class="city-card-meta-value" data-weather-humidity>—%</span></div><div class="city-card-meta-item"><span class="city-card-meta-label">Pression</span><span class="city-card-meta-value" data-weather-pressure>— hPa</span></div></div></div></a><a class="city-card reveal" href="/meteo-rennes/" data-lat="48.1173" data-lon="-1.6778" data-slug="meteo-rennes"><div class="city-card-image" style="background-image: url('/images/heroes/meteo-rennes.webp');"><span class="city-card-temp-overlay" data-weather-temp>—°</span></div><div class="city-card-body"><h3 class="city-card-name">Rennes</h3><div class="city-card-region">Ille-et-Vilaine (35) · 36m</div><div class="city-card-meta"><div class="city-card-meta-item"><span class="city-card-meta-label">Vent</span><span class="city-card-meta-value" data-weather-wind>— km/h</span></div><div class="city-card-meta-item"><span class="city-card-meta-label">Humidité</span><span class="city-card-meta-value" data-weather-humidity>—%</span></div><div class="city-card-meta-item"><span class="city-card-meta-label">Pression</span><span class="city-card-meta-value" data-weather-pressure>— hPa</span></div></div></div></a><a class="city-card reveal" href="/meteo-reims/" data-lat="49.2583" data-lon="4.0317" data-slug="meteo-reims"><div class="city-card-image" style="background-image: url('/images/heroes/meteo-reims.webp');"><span class="city-card-temp-overlay" data-weather-temp>—°</span></div><div class="city-card-body"><h3 class="city-card-name">Reims</h3><div class="city-card-region">Marne (51) · 83m</div><div class="city-card-meta"><div class="city-card-meta-item"><span class="city-card-meta-label">Vent</span><span class="city-card-meta-value" data-weather-wind>— km/h</span></div><div class="city-card-meta-item"><span class="city-card-meta-label">Humidité</span><span class="city-card-meta-value" data-weather-humidity>—%</span></div><div class="city-card-meta-item"><span class="city-card-meta-label">Pression</span><span class="city-card-meta-value" data-weather-pressure>— hPa</span></div></div></div></a><a class="city-card reveal" href="/meteo-le-havre/" data-lat="49.4944" data-lon="0.1079" data-slug="meteo-le-havre"><div class="city-card-image" style="background-image: url('/images/heroes/meteo-le-havre.webp');"><span class="city-card-temp-overlay" data-weather-temp>—°</span></div><div class="city-card-body"><h3 class="city-card-name">Le Havre</h3><div class="city-card-region">
1Seine-Maritime (76) · 12m</div><div class="city-card-meta"><div class="city-card-meta-item"><span class="city-card-meta-label">Vent</span><span class="city-card-meta-value" data-weather-wind>— km/h</span></div><div class="city-card-meta-item"><span class="city-card-meta-label">Humidité</span><span class="city-card-meta-value" data-weather-humidity>—%</span></div><div class="city-card-meta-item"><span class="city-card-meta-label">Pression</span><span class="city-card-meta-value" data-weather-pressure>— hPa</span></div></div></div></a><a class="city-card reveal" href="/meteo-saint-etienne/" data-lat="45.4397" data-lon="4.3872" data-slug="meteo-saint-etienne"><div class="city-card-image" style="background-image: url('/images/heroes/meteo-saint-etienne.webp');"><span class="city-card-temp-overlay" data-weather-temp>—°</span></div><div class="city-card-body"><h3 class="city-card-name">Saint-Étienne</h3><div class="city-card-region">Loire (42) · 517m</div><div class="city-card-meta"><div class="city-card-meta-item"><span class="city-card-meta-label">Vent</span><span class="city-card-meta-value" data-weather-wind>— km/h</span></div><div class="city-card-meta-item"><span class="city-card-meta-label">Humidité</span><span class="city-card-meta-value" data-weather-humidity>—%</span></div><div class="city-card-meta-item"><span class="city-card-meta-label">Pression</span><span class="city-card-meta-value" data-weather-pressure>— hPa</span></div></div></div></a><a class="city-card reveal" href="/meteo-toulon/" data-lat="43.1242" data-lon="5.928" data-slug="meteo-toulon"><div class="city-card-image" style="background-image: url('/images/heroes/meteo-toulon.webp');"><span class="city-card-temp-overlay" data-weather-temp>—°</span></div><div class="city-card-body"><h3 class="city-card-name">Toulon</h3><div class="city-card-region">Var (83) · 3m</div><div class="city-card-meta"><div class="city-card-meta-item"><span class="city-card-meta-label">Vent</span><span class="city-card-meta-value" data-weather-wind>— km/h</span></div><div class="city-card-meta-item"><span class="city-card-meta-label">Humidité</span><span class="city-card-meta-value" data-weather-humidity>—%</span></div><div class="city-card-meta-item"><span class="city-card-meta-label">Pression</span><span class="city-card-meta-value" data-weather-pressure>— hPa</span></div></div></div></a><a class="city-card reveal" href="/meteo-grenoble/" data-lat="45.1885" data-lon="5.7245" data-slug="meteo-grenoble"><div class="city-card-image" style="background-image: url('/images/heroes/meteo-grenoble.webp');"><span class="city-card-temp-overlay" data-weather-temp>—°</span></div><div class="city-card-body"><h3 class="city-card-name">Grenoble</h3><div class="city-card-region">Isère (38) · 214m</div><div class="city-card-meta"><div class="city-card-meta-item"><span class="city-card-meta-label">Vent</span><span class="city-card-meta-value" data-weather-wind>— km/h</span></div><div class="city-card-meta-item"><span class="city-card-meta-label">Humidité</span><span class="city-card-meta-value" data-weather-humidity>—%</span></div><div class="city-card-meta-item"><span class="city-card-meta-label">Pression</span><span class="city-card-meta-value" data-weather-pressure>— hPa</span></div></div></div></a><a class="city-card reveal" href="/meteo-dijon/" data-lat="47.322" data-lon="5.0415" data-slug="meteo-dijon"><div class="city-card-image" style="background-image: url('/images/heroes/meteo-dijon.webp');"><span class="city-card-temp-overlay" data-weather-temp>—°</span></div><div class="city-card-body"><h3 class="city-card-name">Dijon</h3><div class="city-card-region">Côte-d&#39;Or (21) · 245m</div><div class="city-card-meta"><div class="city-card-meta-item"><span class="city-card-meta-label">Vent</span><span class="city-card-meta-value" data-weather-wind>— km/h</span></div><div class="city-card-meta-item"><span class="city-card-meta-label">Humidité</span><span class="city-card-meta-value" data-weather-humidity>—%</span></div><div class="city-card-meta-item"><span class="city-card-meta-label">Pression</span><span class="city-card-meta-value" data-weather-pressure>— hPa</span></div></div></div></a><a class="city-card reveal" href="/meteo-angers/" data-lat="47.4784" data-lon="-0.5632" data-slug="meteo-angers"><div class="city-card-image" style="background-image: url('/images/heroes/meteo-angers.webp');"><span class="city-card-temp-overlay" data-weather-temp>—°</span></div><div class="city-card-body"><h3 class="city-card-name">Angers</h3><div class="city-card-region">Maine-et-Loire (49) · 25m</div><div class="city-card-meta"><div class="city-card-meta-item"><span class="city-card-meta-label">Vent</span><span class="city-card-meta-value" data-weather-wind>— km/h</span></div><div class="city-card-meta-item"><span class="city-card-meta-label">Humidité</span><span class="city-card-meta-value" data-weather-humidity>—%</span></div><div class="city-card-meta-item"><span class="city-card-meta-label">Pression</span><span class="city-card-meta-value" data-weather-pressure>— hPa</span></div></div></div></a><a class="city-card reveal" href="/meteo-nimes/" data-lat="43.8367" data-lon="4.3601" data-slug="meteo-nimes"><div class="city-card-image" style="background-image: url('/images/heroes/meteo-nimes.webp');"><span class="city-card-temp-overlay" data-weather-temp>—°</span></div><div class="city-card-body"><h3 class="city-card-name">Nîmes</h3><div class="city-card-region">Gard (30) · 39m</div><div class="city-card-meta"><div class="city-card-meta-item"><span class="city-card-meta-label">Vent</span><span class="city-card-meta-value" data-weather-wind>— km/h</span></div><div class="city-card-meta-item"><span class="city-card-meta-label">Humidité</span><span class="city-card-meta-value" data-weather-humidity>—%</span></div><div class="city-card-meta-item"><span class="city-card-meta-label">Pression</span><span class="city-card-meta-value" data-weather-pressure>— hPa</span></div></div></div></a><a class="city-card reveal" href="/meteo-clermont-ferrand/" data-lat="45.7772" data-lon="3.087" data-slug="meteo-clermont-ferrand"><div class="city-card-image" style="background-image: url('/images/heroes/meteo-clermont-ferrand.webp');"><span class="city-card-temp-overlay" data-weather-temp>—°</span></div><div class="city-card-body"><h3 class="city-card-name">Clermont-Ferrand</h3><div class="city-card-region">Puy-de-Dôme (63) · 396m</div><div class="city-card-meta"><div class="city-card-meta-item"><span class="city-card-meta-label">Vent</span><span class="city-card-meta-value" data-weather-wind>— km/h</span></div><div class="city-card-meta-item"><span class="city-card-meta-label">Humidité</span><span class="city-card-meta-value" data-weather-humidity>—%</span></div><div class="city-card-meta-item"><span class="city-card-meta-label">Pression</span><span class="city-card-meta-value" data-weather-pressure>— hPa</span></div></div></div></a></div></div></main><footer class="site-footer"><div class="container"><div class="site-footer__grid"><div class="site-footer__brand"><a class="site-logo" href="/">Info<span>-Meteo</span></a><p>L'observatoire climatique français</p></div><div><h2>Guides</h2><ul><li><a href="/">Prévisions</a></li><li><a href="/">Vigilance</a></li><li><a href="/">Climat français</a></li><li><a href="/">Phénomènes météo</a></li></ul></div><div><h2>Magazine</h2><ul><li><a href="/blog/">Tous les récits</a></li><li><a href="/blog/">Analyses</a></li><li><a href="/blog/">Décryptages</a></li></ul></div><div><h2>Rédaction & légal</h2><ul><li><a href="/mentions-legales/">Mentions légales</a></li><li><a href="/cgu/">CGU</a></li><li><a href="/contact/">Contact</a></li><li><a href="/plan-du-site/">Plan du site</a></li></ul></div></div><div class="site-footer__bottom"><span>© 2026 Info-Meteo. Tous droits réservés.</span><span>Site statique hébergé en France.</span></div></div></footer>
1<script src="/js/weather.js" defer></script>
1<script>
2      (() => {
3        const body = document.body;
4        const header = document.querySelector('[data-site-header]');
5        const toggle = document.querySelector('.nav-toggle');
6        const revealItems = document.querySelectorAll('.reveal');
7
8        const updateHeader = () => {
9          header?.classList.toggle('scrolled', window.scrollY > 24);
10        };
11
12        const closeMenu = () => {
13          body.classList.remove('nav-open');
14          toggle?.setAttribute('aria-expanded', 'false');
15        };
16
17        updateHeader();
18        window.addEventListener('scroll', updateHeader, { passive: true });
19
20        toggle?.addEventListener('click', () => {
21          const isOpen = body.classList.toggle('nav-open');
22          toggle.setAttribute('aria-expanded', String(isOpen));
23        });
24
25        document.addEventListener('keydown', (event) => {
26          if (event.key === 'Escape') closeMenu();
27        });
28
29        document.querySelectorAll('.site-nav a').forEach((link) => {
30          link.addEventListener('click', closeMenu);
31        });
32
33        if ('IntersectionObserver' in window) {
34          const observer = new IntersectionObserver((entries) => {
35            entries.forEach((entry) => {
36              if (!entry.isIntersecting) return;
37              entry.target.classList.add('visible');
38              observer.unobserve(entry.target);
39            });
40          }, { threshold: 0 });
41          revealItems.forEach((item) => observer.observe(item));
42        } else {
43          revealItems.forEach((item) => item.classList.add('visible'));
44        }
45
46        document.querySelectorAll('a[href^="#"]').forEach((anchor) => {
47          anchor.addEventListener('click', (event) => {
48            const selector = anchor.getAttribute('href');
49            if (!selector || selector === '#') return;
50            const target = document.querySelector(selector);
51            if (!target) return;
52            event.preventDefault();
53            target.scrollIntoView({ behavior: 'smooth', block: 'start' });
54            history.replaceState(null, '', selector);
55          });
56        });
57
58        document.querySelectorAll('.faq-item__question').forEach((button) => {
59          button.addEventListener('click', () => {
60            const item = button.closest('.faq-item');
61            const answer = item?.querySelector('.faq-item__answer');
62            const isOpen = item?.classList.toggle('open') ?? false;
63            button.setAttribute('aria-expanded', String(isOpen));
64            answer?.setAttribute('aria-hidden', String(!isOpen));
65          });
66        });
67      })();
68    </script>
68<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"f70d881102ea4b2db514090793e0789c","r":1,"spa":2}' crossorigin="anonymous"></script>
68
69</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.