{"id":61712,"date":"2026-08-02T09:02:18","date_gmt":"2026-08-02T07:02:18","guid":{"rendered":"https:\/\/alertes-meteo.com\/?p=61712"},"modified":"2026-08-02T09:03:15","modified_gmt":"2026-08-02T07:03:15","slug":"juin-juillet-2026-des-chaleurs-hors-echelle-en-france","status":"publish","type":"post","link":"https:\/\/alertes-meteo.com\/index.php\/2026\/08\/02\/juin-juillet-2026-des-chaleurs-hors-echelle-en-france\/","title":{"rendered":"Juin-juillet 2026 : des chaleurs hors \u00e9chelle en France"},"content":{"rendered":"<div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-1 fusion-flex-container nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"max-width:1575px;margin-left: calc(-5% \/ 2 );margin-right: calc(-5% \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_1 1_1 fusion-flex-column\" style=\"--awb-bg-blend:overlay;--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:2.375%;--awb-margin-bottom-large:0px;--awb-spacing-left-large:2.375%;--awb-width-medium:100%;--awb-spacing-right-medium:2.375%;--awb-spacing-left-medium:2.375%;--awb-width-small:100%;--awb-spacing-right-small:2.375%;--awb-spacing-left-small:2.375%;\"><div class=\"fusion-column-wrapper fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-text fusion-text-1\"><p>Certains records se battent au dixi\u00e8me de degr\u00e9. Celui-ci se bat au degr\u00e9 entier \u2014 et il oblige \u00e0 redessiner les graphiques.<\/p>\n<p>Les temp\u00e9ratures de juin et juillet 2026 en France d\u00e9passent \u00e0 ce point les pr\u00e9c\u00e9dentes r\u00e9f\u00e9rences que les \u00e9chelles habituelles de repr\u00e9sentation ne suffisent plus. Les chiffres sont sid\u00e9rants.<\/p>\n<\/div><!--\n  GRAPHIQUE INTERACTIF WORDPRESS \u2014 JUIN \u00c0 JUILLET\n  \u00c0 coller dans un bloc \u00ab HTML personnalis\u00e9 \u00bb.\n  Aucune biblioth\u00e8que externe n'est n\u00e9cessaire.\n-->\n\n<div class=\"jj26-widget\" data-jj26-chart>\n  <div class=\"jj26-header\">\n    <h2>\u00c9cart \u00e0 la moyenne des temp\u00e9ratures de juin \u00e0 juillet depuis 1900 (France)<\/h2>\n    <p>Moyenne agr\u00e9g\u00e9e de juin et juillet \u2022 normale de r\u00e9f\u00e9rence 1991-2020<\/p>\n  <\/div>\n\n  <div class=\"jj26-toggle-row\">\n    <button\n      class=\"jj26-toggle\"\n      data-jj26-toggle\n      type=\"button\"\n      role=\"switch\"\n      aria-checked=\"false\"\n    >\n      <span class=\"jj26-toggle-track\" aria-hidden=\"true\">\n        <span class=\"jj26-toggle-dot\"><\/span>\n      <\/span>\n      <span data-jj26-toggle-label>Afficher le diagramme<\/span>\n    <\/button>\n  <\/div>\n\n  <div class=\"jj26-content\" data-jj26-content hidden>\n    <div class=\"jj26-selection\" data-jj26-selection aria-live=\"polite\">\n      Survolez une barre pour afficher l\u2019ann\u00e9e et l\u2019\u00e9cart \u00e0 la normale.\n    <\/div>\n\n    <div class=\"jj26-scroll\" aria-label=\"Graphique d\u00e9filable horizontalement sur mobile\">\n      <div class=\"jj26-stage\">\n        <svg\n          class=\"jj26-svg\"\n          data-jj26-svg\n          viewBox=\"0 0 1240 530\"\n          role=\"img\"\n          aria-labelledby=\"jj26-title jj26-desc\"\n          preserveAspectRatio=\"xMidYMid meet\"\n        >\n          <title id=\"jj26-title\">\u00c9carts \u00e0 la normale des temp\u00e9ratures de juin \u00e0 juillet en France, de 1900 \u00e0 2026<\/title>\n          <desc id=\"jj26-desc\">\n            Histogramme des \u00e9carts \u00e0 la normale 1991-2020. Les valeurs positives sont rouges,\n            les valeurs n\u00e9gatives sont bleues et l'ann\u00e9e 2026 correspond \u00e0 une p\u00e9riode en cours.\n          <\/desc>\n        <\/svg>\n        <div class=\"jj26-tooltip\" data-jj26-tooltip role=\"status\" aria-hidden=\"true\"><\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"jj26-legend\" aria-label=\"L\u00e9gende\">\n      <span><i class=\"jj26-dot jj26-dot-positive\"><\/i> Plus chaud que la normale<\/span>\n      <span><i class=\"jj26-dot jj26-dot-negative\"><\/i> Plus froid que la normale<\/span>\n      <span><i class=\"jj26-dot jj26-dot-current\"><\/i> 2026 : p\u00e9riode en cours<\/span>\n    <\/div>\n\n    <p class=\"jj26-source\">\n      Source : M\u00e9t\u00e9o-France \u2022 graphique \u00e9dit\u00e9 le 31\/07\/2026 \u2022 normale climatologique 1991-2020\n    <\/p>\n  <\/div>\n<\/div>\n\n<style>\n  .jj26-widget,\n  .jj26-widget * {\n    box-sizing: border-box;\n  }\n\n  .jj26-widget {\n    --jj26-red: #e85236;\n    --jj26-red-dark: #c62f22;\n    --jj26-blue: #5c9ae3;\n    --jj26-blue-dark: #2567b3;\n    --jj26-grid: #dfe4ea;\n    --jj26-ink: #17202a;\n    --jj26-muted: #59636e;\n    width: 100%;\n    max-width: 1280px;\n    margin: 24px auto;\n    padding: clamp(18px, 3vw, 32px);\n    overflow: hidden;\n    color: var(--jj26-ink);\n    background: #ffffff;\n    border: 1px solid #e8ebef;\n    border-radius: 18px;\n    box-shadow: 0 12px 34px rgba(23, 32, 42, 0.09);\n    font-family: Arial, Helvetica, sans-serif;\n  }\n\n  .jj26-header h2 {\n    margin: 0;\n    font-size: clamp(21px, 2.6vw, 31px);\n    line-height: 1.18;\n    letter-spacing: -0.02em;\n  }\n\n  .jj26-header p {\n    margin: 8px 0 0;\n    color: var(--jj26-muted);\n    font-size: 15px;\n  }\n\n  .jj26-toggle-row {\n    margin-top: 20px;\n  }\n\n  .jj26-toggle {\n    display: inline-flex;\n    align-items: center;\n    gap: 10px;\n    margin: 0;\n    padding: 9px 13px;\n    color: #34404c;\n    background: #f5f7fa;\n    border: 1px solid #dce2e8;\n    border-radius: 999px;\n    font: inherit;\n    font-size: 14px;\n    font-weight: 700;\n    line-height: 1.2;\n    cursor: pointer;\n    transition: color 0.16s ease, background 0.16s ease, border-color 0.16s ease;\n  }\n\n  .jj26-toggle:hover {\n    color: #17202a;\n    background: #eef2f6;\n    border-color: #cbd3dc;\n  }\n\n  .jj26-toggle:focus-visible {\n    outline: 3px solid rgba(37, 103, 179, 0.28);\n    outline-offset: 3px;\n  }\n\n  .jj26-toggle-track {\n    position: relative;\n    display: inline-block;\n    width: 37px;\n    height: 21px;\n    flex: 0 0 auto;\n    background: #aeb7c2;\n    border-radius: 999px;\n    transition: background 0.16s ease;\n  }\n\n  .jj26-toggle-dot {\n    position: absolute;\n    top: 3px;\n    left: 3px;\n    width: 15px;\n    height: 15px;\n    background: #ffffff;\n    border-radius: 50%;\n    box-shadow: 0 1px 4px rgba(23, 32, 42, 0.28);\n    transition: transform 0.16s ease;\n  }\n\n  .jj26-toggle.is-active {\n    color: #174f8d;\n    background: #eff6ff;\n    border-color: #b9d4f2;\n  }\n\n  .jj26-toggle.is-active .jj26-toggle-track {\n    background: var(--jj26-blue-dark);\n  }\n\n  .jj26-toggle.is-active .jj26-toggle-dot {\n    transform: translateX(16px);\n  }\n\n  .jj26-content[hidden] {\n    display: none;\n  }\n\n  .jj26-selection {\n    min-height: 49px;\n    margin: 20px 0 12px;\n    padding: 12px 15px;\n    color: #34404c;\n    background: #f5f7fa;\n    border-left: 4px solid #8995a3;\n    border-radius: 9px;\n    font-size: 15px;\n    line-height: 1.4;\n  }\n\n  .jj26-selection strong {\n    color: var(--jj26-ink);\n  }\n\n  .jj26-selection.is-positive {\n    background: #fff3f0;\n    border-left-color: var(--jj26-red);\n  }\n\n  .jj26-selection.is-negative {\n    background: #eff6ff;\n    border-left-color: var(--jj26-blue);\n  }\n\n  .jj26-selection.is-neutral {\n    background: #f5f7fa;\n    border-left-color: #707b86;\n  }\n\n  .jj26-scroll {\n    width: 100%;\n    overflow-x: auto;\n    overflow-y: hidden;\n    scrollbar-color: #aeb7c2 #edf0f3;\n    scrollbar-width: thin;\n    -webkit-overflow-scrolling: touch;\n  }\n\n  .jj26-stage {\n    position: relative;\n    width: 100%;\n    min-width: 1000px;\n  }\n\n  .jj26-svg {\n    display: block;\n    width: 100%;\n    height: auto;\n    overflow: visible;\n    touch-action: pan-x pan-y;\n  }\n\n  .jj26-grid-line {\n    stroke: var(--jj26-grid);\n    stroke-width: 1;\n    vector-effect: non-scaling-stroke;\n  }\n\n  .jj26-zero-line {\n    stroke: #1c2732;\n    stroke-width: 1.7;\n    vector-effect: non-scaling-stroke;\n  }\n\n  .jj26-y-label,\n  .jj26-x-label,\n  .jj26-axis-unit {\n    fill: #68727d;\n    font-family: Arial, Helvetica, sans-serif;\n  }\n\n  .jj26-y-label {\n    font-size: 13px;\n    text-anchor: end;\n    dominant-baseline: middle;\n  }\n\n  .jj26-x-label {\n    font-size: 11px;\n    text-anchor: middle;\n  }\n\n  .jj26-axis-unit {\n    font-size: 12px;\n    font-weight: 700;\n  }\n\n  .jj26-bar {\n    cursor: pointer;\n    outline: none;\n  }\n\n  .jj26-bar-visible {\n    transition: opacity 0.14s ease, filter 0.14s ease;\n    shape-rendering: geometricPrecision;\n  }\n\n  .jj26-bar.is-current .jj26-bar-visible {\n    stroke: var(--jj26-red-dark);\n    stroke-width: 2;\n    stroke-dasharray: 5 3;\n    vector-effect: non-scaling-stroke;\n  }\n\n  .jj26-bar:hover .jj26-bar-visible,\n  .jj26-bar:focus .jj26-bar-visible,\n  .jj26-bar.is-selected .jj26-bar-visible {\n    opacity: 1;\n    filter: brightness(0.82);\n  }\n\n  .jj26-bar:focus-visible .jj26-bar-visible {\n    stroke: #111820;\n    stroke-width: 2;\n    vector-effect: non-scaling-stroke;\n  }\n\n  .jj26-hit-area {\n    fill: transparent;\n    pointer-events: all;\n  }\n\n  .jj26-current-label {\n    fill: var(--jj26-red-dark);\n    font: 700 12px Arial, Helvetica, sans-serif;\n    text-anchor: end;\n  }\n\n  .jj26-tooltip {\n    position: absolute;\n    z-index: 4;\n    width: max-content;\n    max-width: 245px;\n    padding: 10px 12px;\n    color: #ffffff;\n    background: rgba(18, 25, 33, 0.96);\n    border-radius: 9px;\n    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.22);\n    font-size: 13px;\n    line-height: 1.35;\n    pointer-events: none;\n    opacity: 0;\n    transform: translate(-50%, calc(-100% - 12px));\n    transition: opacity 0.12s ease;\n  }\n\n  .jj26-tooltip::after {\n    content: \"\";\n    position: absolute;\n    top: 100%;\n    left: 50%;\n    width: 0;\n    height: 0;\n    border: 7px solid transparent;\n    border-top-color: rgba(18, 25, 33, 0.96);\n    transform: translateX(-50%);\n  }\n\n  .jj26-tooltip.is-visible {\n    opacity: 1;\n  }\n\n  .jj26-tooltip strong,\n  .jj26-tooltip span {\n    display: block;\n  }\n\n  .jj26-tooltip strong {\n    margin-bottom: 2px;\n    font-size: 14px;\n  }\n\n  .jj26-tooltip em {\n    display: block;\n    margin-top: 3px;\n    color: #ffd6cf;\n    font-style: normal;\n    font-weight: 700;\n  }\n\n  .jj26-legend {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 10px 22px;\n    margin-top: 14px;\n    color: #49535e;\n    font-size: 13px;\n  }\n\n  .jj26-legend span {\n    display: inline-flex;\n    align-items: center;\n    gap: 7px;\n  }\n\n  .jj26-dot {\n    display: inline-block;\n    width: 11px;\n    height: 11px;\n    border-radius: 3px;\n  }\n\n  .jj26-dot-positive {\n    background: var(--jj26-red);\n  }\n\n  .jj26-dot-negative {\n    background: var(--jj26-blue);\n  }\n\n  .jj26-dot-current {\n    background: var(--jj26-red);\n    border: 2px dashed var(--jj26-red-dark);\n  }\n\n  .jj26-source {\n    margin: 17px 0 0;\n    color: #737d87;\n    font-size: 12px;\n  }\n\n  @media (max-width: 720px) {\n    .jj26-widget {\n      margin: 14px auto;\n      padding: 17px 14px 19px;\n      border-radius: 13px;\n    }\n\n    .jj26-selection {\n      margin-top: 15px;\n    }\n\n    .jj26-scroll {\n      padding-bottom: 7px;\n    }\n\n    .jj26-stage {\n      min-width: 980px;\n    }\n\n    .jj26-scroll::after {\n      content: \"Faites glisser le graphique pour parcourir les ann\u00e9es \u2192\";\n      position: sticky;\n      left: 0;\n      display: block;\n      width: max-content;\n      margin-top: 4px;\n      color: #727d88;\n      font-size: 11px;\n    }\n  }\n\n  @media (prefers-reduced-motion: reduce) {\n    .jj26-bar-visible,\n    .jj26-tooltip,\n    .jj26-toggle,\n    .jj26-toggle-track,\n    .jj26-toggle-dot {\n      transition: none;\n    }\n  }\n<\/style>\n\n<script>\n  (() => {\n    const widgets = document.querySelectorAll(\"[data-jj26-chart]\");\n\n    widgets.forEach((widget, widgetIndex) => {\n      if (widget.dataset.jj26Ready === \"true\") return;\n      widget.dataset.jj26Ready = \"true\";\n\n      const data = [\n        [1900, -0.2], [1901, -0.6], [1902, -1.9], [1903, -2.5], [1904, 0.0],\n        [1905, -0.2], [1906, -1.2], [1907, -2.8], [1908, -1.1], [1909, -3.5],\n        [1910, -2.5], [1911, -0.1], [1912, -2.1], [1913, -2.7], [1914, -2.6],\n        [1915, -1.6], [1916, -3.1], [1917, -0.8], [1918, -2.3], [1919, -2.8],\n        [1920, -2.0], [1921, -0.1], [1922, -2.3], [1923, -2.0], [1924, -1.7],\n        [1925, -1.6], [1926, -2.4], [1927, -2.1], [1928, -0.4], [1929, -0.9],\n        [1930, -1.3], [1931, -1.2], [1932, -2.5], [1933, -1.4], [1934, -0.2],\n        [1935, -0.2], [1936, -2.2], [1937, -1.1], [1938, -1.5], [1939, -2.1],\n        [1940, -2.2], [1941, -0.9], [1942, -1.4], [1943, -1.0], [1944, -2.0],\n        [1945, 0.0], [1946, -1.8], [1947, 0.3], [1948, -2.4], [1949, -0.3],\n        [1950, 0.7], [1951, -1.7], [1952, 0.1], [1953, -2.2], [1954, -2.6],\n        [1955, -1.0], [1956, -2.9], [1957, -1.2], [1958, -2.2], [1959, -0.3],\n        [1960, -1.7], [1961, -1.6], [1962, -2.1], [1963, -1.5], [1964, -0.6],\n        [1965, -2.3], [1966, -2.0], [1967, -1.1], [1968, -1.9], [1969, -1.8],\n        [1970, -1.0], [1971, -1.4], [1972, -2.6], [1973, -1.2], [1974, -2.0],\n        [1975, -1.4], [1976, 1.0], [1977, -2.4], [1978, -2.6], [1979, -1.3],\n        [1980, -3.0], [1981, -2.1], [1982, 0.3], [1983, 0.9], [1984, -1.5],\n        [1985, -1.3], [1986, -0.9], [1987, -1.7], [1988, -1.7], [1989, -0.2],\n        [1990, -0.9], [1991, -1.3], [1992, -1.1], [1993, -1.2], [1994, 0.5],\n        [1995, -0.1], [1996, -0.6], [1997, -1.2], [1998, -0.7], [1999, -0.3],\n        [2000, -0.9], [2001, -0.5], [2002, -0.5], [2003, 2.2], [2004, -0.3],\n        [2005, 0.8], [2006, 2.0], [2007, -0.7], [2008, -0.6], [2009, 0.0],\n        [2010, 0.4], [2011, -1.3], [2012, -0.6], [2013, 0.1], [2014, 0.1],\n        [2015, 1.3], [2016, 0.0], [2017, 1.4], [2018, 1.6], [2019, 1.6],\n        [2020, 0.1], [2021, 0.5], [2022, 2.2], [2023, 1.7], [2024, 0.3],\n        [2025, 2.1], [2026, 3.8]\n      ];\n\n      const svg = widget.querySelector(\"[data-jj26-svg]\");\n      const tooltip = widget.querySelector(\"[data-jj26-tooltip]\");\n      const selection = widget.querySelector(\"[data-jj26-selection]\");\n      const stage = widget.querySelector(\".jj26-stage\");\n      const toggle = widget.querySelector(\"[data-jj26-toggle]\");\n      const toggleLabel = widget.querySelector(\"[data-jj26-toggle-label]\");\n      const content = widget.querySelector(\"[data-jj26-content]\");\n      const ns = \"http:\/\/www.w3.org\/2000\/svg\";\n      const contentId = `jj26-chart-content-${widgetIndex + 1}`;\n\n      content.id = contentId;\n      toggle.setAttribute(\"aria-controls\", contentId);\n\n      const W = 1240;\n      const H = 530;\n      const margin = { top: 32, right: 24, bottom: 64, left: 61 };\n      const plotW = W - margin.left - margin.right;\n      const plotH = H - margin.top - margin.bottom;\n      const minY = -5;\n      const maxY = 5;\n      const ticks = [-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5];\n      const slot = plotW \/ data.length;\n      const barW = Math.max(3, slot * 0.72);\n      let pinnedBar = null;\n\n      const y = (value) =>\n        margin.top + ((maxY - value) \/ (maxY - minY)) * plotH;\n\n      const makeSvg = (tag, attrs = {}) => {\n        const element = document.createElementNS(ns, tag);\n        Object.entries(attrs).forEach(([name, value]) =>\n          element.setAttribute(name, value)\n        );\n        return element;\n      };\n\n      const formatValue = (value, withPlus = true) => {\n        const absolute = Math.abs(value).toFixed(1).replace(\".\", \",\");\n        if (value < 0) return `\u2212${absolute}`;\n        if (value > 0 && withPlus) return `+${absolute}`;\n        return absolute;\n      };\n\n      const gridGroup = makeSvg(\"g\", { \"aria-hidden\": \"true\" });\n      ticks.forEach((tick) => {\n        const line = makeSvg(\"line\", {\n          x1: margin.left,\n          x2: W - margin.right,\n          y1: y(tick),\n          y2: y(tick),\n          class: tick === 0 ? \"jj26-zero-line\" : \"jj26-grid-line\"\n        });\n        gridGroup.appendChild(line);\n\n        const label = makeSvg(\"text\", {\n          x: margin.left - 10,\n          y: y(tick),\n          class: \"jj26-y-label\"\n        });\n        label.textContent = formatValue(tick, false);\n        gridGroup.appendChild(label);\n      });\n\n      const unit = makeSvg(\"text\", {\n        x: 8,\n        y: 20,\n        class: \"jj26-axis-unit\"\n      });\n      unit.textContent = \"\u00c9cart (\u00b0C)\";\n      gridGroup.appendChild(unit);\n      svg.appendChild(gridGroup);\n\n      const barsGroup = makeSvg(\"g\");\n      const zeroY = y(0);\n\n      const removeSelection = () => {\n        if (pinnedBar) pinnedBar.classList.remove(\"is-selected\");\n        pinnedBar = null;\n      };\n\n      const setSelectionCard = (year, value) => {\n        selection.classList.remove(\"is-positive\", \"is-negative\", \"is-neutral\");\n        selection.classList.add(\n          value > 0 ? \"is-positive\" : value < 0 ? \"is-negative\" : \"is-neutral\"\n        );\n        selection.innerHTML =\n          `<strong>Juin \u00e0 juillet ${year}<\/strong> \u2014 \u00e9cart \u00e0 la normale : ` +\n          `<strong>${formatValue(value)} \u00b0C<\/strong>` +\n          (year === 2026 ? ` <em>\u2022 p\u00e9riode en cours<\/em>` : \"\");\n      };\n\n      const placeTooltip = (clientX, clientY, year, value) => {\n        const rect = stage.getBoundingClientRect();\n        const tooltipX = Math.max(125, Math.min(rect.width - 125, clientX - rect.left));\n        const tooltipY = Math.max(86, clientY - rect.top);\n\n        tooltip.innerHTML =\n          `<strong>Juin \u00e0 juillet ${year}<\/strong>` +\n          `<span>\u00c9cart \u00e0 la normale : ${formatValue(value)} \u00b0C<\/span>` +\n          (year === 2026 ? `<em>P\u00e9riode en cours<\/em>` : \"\");\n        tooltip.style.left = `${tooltipX}px`;\n        tooltip.style.top = `${tooltipY}px`;\n        tooltip.classList.add(\"is-visible\");\n        tooltip.setAttribute(\"aria-hidden\", \"false\");\n      };\n\n      const hideTooltip = () => {\n        tooltip.classList.remove(\"is-visible\");\n        tooltip.setAttribute(\"aria-hidden\", \"true\");\n      };\n\n      toggle.addEventListener(\"click\", () => {\n        const willShow = content.hidden;\n        content.hidden = !willShow;\n        toggle.classList.toggle(\"is-active\", willShow);\n        toggle.setAttribute(\"aria-checked\", String(willShow));\n        toggleLabel.textContent = willShow\n          ? \"Masquer le diagramme\"\n          : \"Afficher le diagramme\";\n\n        if (!willShow) {\n          removeSelection();\n          hideTooltip();\n        }\n      });\n\n      data.forEach(([year, value], index) => {\n        const x = margin.left + index * slot + (slot - barW) \/ 2;\n        const valueY = y(value);\n        const rectY = value >= 0 ? valueY : zeroY;\n        const rectH = Math.max(1.2, Math.abs(zeroY - valueY));\n        const color = value >= 0 ? \"#e85236\" : \"#5c9ae3\";\n        const isCurrent = year === 2026;\n\n        const group = makeSvg(\"g\", {\n          class: `jj26-bar${isCurrent ? \" is-current\" : \"\"}`,\n          role: \"button\",\n          tabindex: \"0\",\n          \"aria-label\":\n            `Juin \u00e0 juillet ${year}, \u00e9cart \u00e0 la normale ${formatValue(value)} degr\u00e9 Celsius` +\n            (isCurrent ? \", p\u00e9riode en cours\" : \"\")\n        });\n\n        const visibleBar = makeSvg(\"rect\", {\n          x,\n          y: rectY,\n          width: barW,\n          height: rectH,\n          rx: 0.8,\n          fill: color,\n          class: \"jj26-bar-visible\"\n        });\n\n        const hitArea = makeSvg(\"rect\", {\n          x: margin.left + index * slot,\n          y: margin.top,\n          width: slot,\n          height: plotH,\n          class: \"jj26-hit-area\"\n        });\n\n        group.appendChild(visibleBar);\n        group.appendChild(hitArea);\n\n        group.addEventListener(\"pointerenter\", (event) => {\n          if (!pinnedBar) {\n            setSelectionCard(year, value);\n            placeTooltip(event.clientX, event.clientY, year, value);\n          }\n        });\n\n        group.addEventListener(\"pointermove\", (event) => {\n          if (!pinnedBar) placeTooltip(event.clientX, event.clientY, year, value);\n        });\n\n        group.addEventListener(\"pointerleave\", () => {\n          if (!pinnedBar) hideTooltip();\n        });\n\n        const selectBar = (event) => {\n          event.preventDefault();\n          event.stopPropagation();\n          removeSelection();\n          pinnedBar = group;\n          group.classList.add(\"is-selected\");\n          setSelectionCard(year, value);\n\n          const barBox = visibleBar.getBoundingClientRect();\n          placeTooltip(\n            barBox.left + barBox.width \/ 2,\n            Math.min(barBox.top, barBox.bottom),\n            year,\n            value\n          );\n        };\n\n        group.addEventListener(\"click\", selectBar);\n        group.addEventListener(\"keydown\", (event) => {\n          if (event.key === \"Enter\" || event.key === \" \") selectBar(event);\n          if (event.key === \"Escape\") {\n            removeSelection();\n            hideTooltip();\n          }\n        });\n\n        barsGroup.appendChild(group);\n      });\n\n      svg.appendChild(barsGroup);\n\n      const labelsGroup = makeSvg(\"g\", { \"aria-hidden\": \"true\" });\n      data.forEach(([year], index) => {\n        if (year % 5 !== 0 && year !== 2026) return;\n        const label = makeSvg(\"text\", {\n          x: margin.left + index * slot + slot \/ 2,\n          y: H - 25,\n          class: \"jj26-x-label\"\n        });\n        label.textContent = year;\n        labelsGroup.appendChild(label);\n      });\n\n      const currentLabel = makeSvg(\"text\", {\n        x: W - margin.right,\n        y: Math.max(margin.top + 14, y(3.8) - 10),\n        class: \"jj26-current-label\"\n      });\n      currentLabel.textContent = \"2026 \u2022 p\u00e9riode en cours\";\n      labelsGroup.appendChild(currentLabel);\n      svg.appendChild(labelsGroup);\n\n      svg.addEventListener(\"click\", (event) => {\n        if (event.target === svg || event.target.classList.contains(\"jj26-grid-line\")) {\n          removeSelection();\n          hideTooltip();\n        }\n      });\n    });\n  })();\n<\/script><!--\n  GRAPHIQUE INTERACTIF WORDPRESS \u2014 PR\u00c9CIPITATIONS JUIN \u00c0 JUILLET\n  \u00c0 coller dans un bloc \u00ab HTML personnalis\u00e9 \u00bb.\n  Aucune biblioth\u00e8que externe n'est n\u00e9cessaire.\n-->\n\n<div class=\"pj26-widget\" data-pj26-chart>\n  <div class=\"pj26-header\">\n    <h2>Cumul des pr\u00e9cipitations de juin \u00e0 juillet depuis 1959 (France)<\/h2>\n    <p>Rapport \u00e0 la normale 1991-2020 \u2022 100\u00a0% correspond \u00e0 la normale<\/p>\n  <\/div>\n\n  <div class=\"pj26-toggle-row\">\n    <button\n      class=\"pj26-toggle\"\n      data-pj26-toggle\n      type=\"button\"\n      role=\"switch\"\n      aria-checked=\"false\"\n    >\n      <span class=\"pj26-toggle-track\" aria-hidden=\"true\">\n        <span class=\"pj26-toggle-dot\"><\/span>\n      <\/span>\n      <span data-pj26-toggle-label>Afficher le diagramme<\/span>\n    <\/button>\n  <\/div>\n\n  <div class=\"pj26-content\" data-pj26-content hidden>\n    <div class=\"pj26-selection\" data-pj26-selection aria-live=\"polite\">\n      Survolez une barre pour afficher l\u2019ann\u00e9e et le rapport \u00e0 la normale.\n    <\/div>\n\n    <div class=\"pj26-scroll\" aria-label=\"Graphique d\u00e9filable horizontalement sur mobile\">\n      <div class=\"pj26-stage\">\n        <svg\n          class=\"pj26-svg\"\n          data-pj26-svg\n          viewBox=\"0 0 1180 540\"\n          role=\"img\"\n          aria-labelledby=\"pj26-title pj26-desc\"\n          preserveAspectRatio=\"xMidYMid meet\"\n        >\n          <title id=\"pj26-title\">Rapport \u00e0 la normale du cumul des pr\u00e9cipitations de juin \u00e0 juillet en France, de 1959 \u00e0 2026<\/title>\n          <desc id=\"pj26-desc\">\n            Histogramme exprim\u00e9 en pourcentage de la normale 1991-2020. Les ann\u00e9es\n            exc\u00e9dentaires sont vertes, les ann\u00e9es d\u00e9ficitaires sont ocre et 2026\n            correspond \u00e0 une p\u00e9riode en cours.\n          <\/desc>\n        <\/svg>\n        <div class=\"pj26-tooltip\" data-pj26-tooltip role=\"status\" aria-hidden=\"true\"><\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"pj26-legend\" aria-label=\"L\u00e9gende\">\n      <span><i class=\"pj26-dot pj26-dot-wet\"><\/i> Plus humide que la normale<\/span>\n      <span><i class=\"pj26-dot pj26-dot-dry\"><\/i> Plus sec que la normale<\/span>\n      <span><i class=\"pj26-dot pj26-dot-current\"><\/i> 2026 : p\u00e9riode en cours<\/span>\n    <\/div>\n\n    <p class=\"pj26-note\">\n      Lecture : 120\u00a0% correspond \u00e0 un exc\u00e9dent de 20\u00a0% ; 70\u00a0% \u00e0 un d\u00e9ficit de 30\u00a0%.\n    <\/p>\n\n    <p class=\"pj26-source\">\n      Source : M\u00e9t\u00e9o-France \u2022 s\u00e9rie reproduite d\u2019apr\u00e8s le graphique fourni \u2022 valeurs arrondies au pourcentage entier \u2022 2026 provisoire\n    <\/p>\n  <\/div>\n<\/div>\n\n<style>\n  .pj26-widget,\n  .pj26-widget * {\n    box-sizing: border-box;\n  }\n\n  .pj26-widget {\n    --pj26-wet: #55a89d;\n    --pj26-wet-dark: #277e74;\n    --pj26-dry: #d2a95b;\n    --pj26-dry-dark: #9b6d20;\n    --pj26-current: #d33a3a;\n    --pj26-grid: #e0e5e8;\n    --pj26-ink: #17202a;\n    --pj26-muted: #5b6570;\n    width: 100%;\n    max-width: 1220px;\n    margin: 24px auto;\n    padding: clamp(18px, 3vw, 32px);\n    overflow: hidden;\n    color: var(--pj26-ink);\n    background: #ffffff;\n    border: 1px solid #e8ebef;\n    border-radius: 18px;\n    box-shadow: 0 12px 34px rgba(23, 32, 42, 0.09);\n    font-family: Arial, Helvetica, sans-serif;\n  }\n\n  .pj26-header h2 {\n    margin: 0;\n    font-size: clamp(21px, 2.6vw, 31px);\n    line-height: 1.18;\n    letter-spacing: -0.02em;\n  }\n\n  .pj26-header p {\n    margin: 8px 0 0;\n    color: var(--pj26-muted);\n    font-size: 15px;\n  }\n\n  .pj26-toggle-row {\n    margin-top: 20px;\n  }\n\n  .pj26-toggle {\n    display: inline-flex;\n    align-items: center;\n    gap: 10px;\n    margin: 0;\n    padding: 9px 13px;\n    color: #34404c;\n    background: #f5f7fa;\n    border: 1px solid #dce2e8;\n    border-radius: 999px;\n    font: inherit;\n    font-size: 14px;\n    font-weight: 700;\n    line-height: 1.2;\n    cursor: pointer;\n    transition: color 0.16s ease, background 0.16s ease, border-color 0.16s ease;\n  }\n\n  .pj26-toggle:hover {\n    color: #17202a;\n    background: #eef2f6;\n    border-color: #cbd3dc;\n  }\n\n  .pj26-toggle:focus-visible {\n    outline: 3px solid rgba(39, 126, 116, 0.25);\n    outline-offset: 3px;\n  }\n\n  .pj26-toggle-track {\n    position: relative;\n    display: inline-block;\n    width: 37px;\n    height: 21px;\n    flex: 0 0 auto;\n    background: #aeb7c2;\n    border-radius: 999px;\n    transition: background 0.16s ease;\n  }\n\n  .pj26-toggle-dot {\n    position: absolute;\n    top: 3px;\n    left: 3px;\n    width: 15px;\n    height: 15px;\n    background: #ffffff;\n    border-radius: 50%;\n    box-shadow: 0 1px 4px rgba(23, 32, 42, 0.28);\n    transition: transform 0.16s ease;\n  }\n\n  .pj26-toggle.is-active {\n    color: #1d685f;\n    background: #eef8f6;\n    border-color: #b8ddd7;\n  }\n\n  .pj26-toggle.is-active .pj26-toggle-track {\n    background: var(--pj26-wet-dark);\n  }\n\n  .pj26-toggle.is-active .pj26-toggle-dot {\n    transform: translateX(16px);\n  }\n\n  .pj26-content[hidden] {\n    display: none;\n  }\n\n  .pj26-selection {\n    min-height: 49px;\n    margin: 20px 0 12px;\n    padding: 12px 15px;\n    color: #34404c;\n    background: #f5f7fa;\n    border-left: 4px solid #8995a3;\n    border-radius: 9px;\n    font-size: 15px;\n    line-height: 1.4;\n  }\n\n  .pj26-selection strong {\n    color: var(--pj26-ink);\n  }\n\n  .pj26-selection em {\n    color: #b52525;\n    font-style: normal;\n    font-weight: 700;\n  }\n\n  .pj26-selection.is-wet {\n    background: #edf8f6;\n    border-left-color: var(--pj26-wet);\n  }\n\n  .pj26-selection.is-dry {\n    background: #fff8e9;\n    border-left-color: var(--pj26-dry);\n  }\n\n  .pj26-selection.is-normal {\n    background: #f5f7fa;\n    border-left-color: #707b86;\n  }\n\n  .pj26-scroll {\n    width: 100%;\n    overflow-x: auto;\n    overflow-y: hidden;\n    scrollbar-color: #aeb7c2 #edf0f3;\n    scrollbar-width: thin;\n    -webkit-overflow-scrolling: touch;\n  }\n\n  .pj26-stage {\n    position: relative;\n    width: 100%;\n    min-width: 900px;\n  }\n\n  .pj26-svg {\n    display: block;\n    width: 100%;\n    height: auto;\n    overflow: visible;\n    touch-action: pan-x pan-y;\n  }\n\n  .pj26-grid-line {\n    stroke: var(--pj26-grid);\n    stroke-width: 1;\n    vector-effect: non-scaling-stroke;\n  }\n\n  .pj26-normal-line {\n    stroke: #1c2732;\n    stroke-width: 1.8;\n    vector-effect: non-scaling-stroke;\n  }\n\n  .pj26-y-label,\n  .pj26-x-label,\n  .pj26-axis-unit,\n  .pj26-normal-label {\n    fill: #68727d;\n    font-family: Arial, Helvetica, sans-serif;\n  }\n\n  .pj26-y-label {\n    font-size: 13px;\n    text-anchor: end;\n    dominant-baseline: middle;\n  }\n\n  .pj26-x-label {\n    font-size: 11px;\n    text-anchor: middle;\n  }\n\n  .pj26-axis-unit {\n    font-size: 12px;\n    font-weight: 700;\n  }\n\n  .pj26-normal-label {\n    font-size: 12px;\n    font-weight: 700;\n    text-anchor: end;\n  }\n\n  .pj26-bar {\n    cursor: pointer;\n    outline: none;\n  }\n\n  .pj26-bar-visible {\n    transition: opacity 0.14s ease, filter 0.14s ease;\n    shape-rendering: geometricPrecision;\n  }\n\n  .pj26-bar.is-current .pj26-bar-visible {\n    stroke: var(--pj26-current);\n    stroke-width: 2;\n    stroke-dasharray: 5 3;\n    vector-effect: non-scaling-stroke;\n  }\n\n  .pj26-bar:hover .pj26-bar-visible,\n  .pj26-bar:focus .pj26-bar-visible,\n  .pj26-bar.is-selected .pj26-bar-visible {\n    opacity: 1;\n    filter: brightness(0.82);\n  }\n\n  .pj26-bar:focus-visible .pj26-bar-visible {\n    stroke: #111820;\n    stroke-width: 2;\n    vector-effect: non-scaling-stroke;\n  }\n\n  .pj26-hit-area {\n    fill: transparent;\n    pointer-events: all;\n  }\n\n  .pj26-current-label {\n    fill: var(--pj26-current);\n    font: 700 12px Arial, Helvetica, sans-serif;\n    text-anchor: end;\n  }\n\n  .pj26-tooltip {\n    position: absolute;\n    z-index: 4;\n    width: max-content;\n    max-width: 255px;\n    padding: 10px 12px;\n    color: #ffffff;\n    background: rgba(18, 25, 33, 0.96);\n    border-radius: 9px;\n    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.22);\n    font-size: 13px;\n    line-height: 1.35;\n    pointer-events: none;\n    opacity: 0;\n    transform: translate(-50%, calc(-100% - 12px));\n    transition: opacity 0.12s ease;\n  }\n\n  .pj26-tooltip::after {\n    content: \"\";\n    position: absolute;\n    top: 100%;\n    left: 50%;\n    width: 0;\n    height: 0;\n    border: 7px solid transparent;\n    border-top-color: rgba(18, 25, 33, 0.96);\n    transform: translateX(-50%);\n  }\n\n  .pj26-tooltip.is-visible {\n    opacity: 1;\n  }\n\n  .pj26-tooltip strong,\n  .pj26-tooltip span,\n  .pj26-tooltip em {\n    display: block;\n  }\n\n  .pj26-tooltip strong {\n    margin-bottom: 2px;\n    font-size: 14px;\n  }\n\n  .pj26-tooltip em {\n    margin-top: 3px;\n    color: #ffd0d0;\n    font-style: normal;\n    font-weight: 700;\n  }\n\n  .pj26-legend {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 10px 22px;\n    margin-top: 14px;\n    color: #49535e;\n    font-size: 13px;\n  }\n\n  .pj26-legend span {\n    display: inline-flex;\n    align-items: center;\n    gap: 7px;\n  }\n\n  .pj26-dot {\n    display: inline-block;\n    width: 11px;\n    height: 11px;\n    border-radius: 3px;\n  }\n\n  .pj26-dot-wet {\n    background: var(--pj26-wet);\n  }\n\n  .pj26-dot-dry {\n    background: var(--pj26-dry);\n  }\n\n  .pj26-dot-current {\n    background: var(--pj26-dry);\n    border: 2px dashed var(--pj26-current);\n  }\n\n  .pj26-note {\n    margin: 15px 0 0;\n    padding: 10px 12px;\n    color: #4f5964;\n    background: #f7f8fa;\n    border-radius: 8px;\n    font-size: 13px;\n    line-height: 1.45;\n  }\n\n  .pj26-source {\n    margin: 13px 0 0;\n    color: #737d87;\n    font-size: 12px;\n    line-height: 1.45;\n  }\n\n  @media (max-width: 720px) {\n    .pj26-widget {\n      margin: 14px auto;\n      padding: 17px 14px 19px;\n      border-radius: 13px;\n    }\n\n    .pj26-selection {\n      margin-top: 15px;\n    }\n\n    .pj26-scroll {\n      padding-bottom: 7px;\n    }\n\n    .pj26-stage {\n      min-width: 880px;\n    }\n\n    .pj26-scroll::after {\n      content: \"Faites glisser le graphique pour parcourir les ann\u00e9es \u2192\";\n      position: sticky;\n      left: 0;\n      display: block;\n      width: max-content;\n      margin-top: 4px;\n      color: #727d88;\n      font-size: 11px;\n    }\n  }\n\n  @media (prefers-reduced-motion: reduce) {\n    .pj26-bar-visible,\n    .pj26-tooltip,\n    .pj26-toggle,\n    .pj26-toggle-track,\n    .pj26-toggle-dot {\n      transition: none;\n    }\n  }\n<\/style>\n\n<script>\n  (() => {\n    const widgets = document.querySelectorAll(\"[data-pj26-chart]\");\n\n    widgets.forEach((widget, widgetIndex) => {\n      if (widget.dataset.pj26Ready === \"true\") return;\n      widget.dataset.pj26Ready = \"true\";\n\n      \/\/ Valeurs relev\u00e9es sur le graphique M\u00e9t\u00e9o-France fourni et arrondies \u00e0 1 %.\n      const data = [\n        [1959, 73], [1960, 120], [1961, 97], [1962, 47], [1963, 125],\n        [1964, 59], [1965, 98], [1966, 108], [1967, 54], [1968, 101],\n        [1969, 100], [1970, 98], [1971, 115], [1972, 91], [1973, 113],\n        [1974, 80], [1975, 72], [1976, 54], [1977, 150], [1978, 100],\n        [1979, 63], [1980, 131], [1981, 113], [1982, 117], [1983, 73],\n        [1984, 69], [1985, 96], [1986, 56], [1987, 162], [1988, 108],\n        [1989, 68], [1990, 94], [1991, 102], [1992, 146], [1993, 118],\n        [1994, 89], [1995, 70], [1996, 77], [1997, 141], [1998, 84],\n        [1999, 88], [2000, 128], [2001, 118], [2002, 105], [2003, 75],\n        [2004, 68], [2005, 79], [2006, 70], [2007, 146], [2008, 96],\n        [2009, 100], [2010, 94], [2011, 125], [2012, 117], [2013, 101],\n        [2014, 133], [2015, 68], [2016, 93], [2017, 97], [2018, 94],\n        [2019, 81], [2020, 80], [2021, 150], [2022, 78], [2023, 107],\n        [2024, 109], [2025, 84], [2026, 44]\n      ];\n\n      const svg = widget.querySelector(\"[data-pj26-svg]\");\n      const tooltip = widget.querySelector(\"[data-pj26-tooltip]\");\n      const selection = widget.querySelector(\"[data-pj26-selection]\");\n      const stage = widget.querySelector(\".pj26-stage\");\n      const toggle = widget.querySelector(\"[data-pj26-toggle]\");\n      const toggleLabel = widget.querySelector(\"[data-pj26-toggle-label]\");\n      const content = widget.querySelector(\"[data-pj26-content]\");\n      const ns = \"http:\/\/www.w3.org\/2000\/svg\";\n      const contentId = `pj26-chart-content-${widgetIndex + 1}`;\n\n      content.id = contentId;\n      toggle.setAttribute(\"aria-controls\", contentId);\n\n      const W = 1180;\n      const H = 540;\n      const margin = { top: 34, right: 25, bottom: 65, left: 68 };\n      const plotW = W - margin.left - margin.right;\n      const plotH = H - margin.top - margin.bottom;\n      const minY = 0;\n      const maxY = 200;\n      const ticks = [0, 25, 50, 75, 100, 125, 150, 175, 200];\n      const slot = plotW \/ data.length;\n      const barW = Math.max(5, slot * 0.76);\n      let pinnedBar = null;\n\n      const y = (value) =>\n        margin.top + ((maxY - value) \/ (maxY - minY)) * plotH;\n\n      const makeSvg = (tag, attrs = {}) => {\n        const element = document.createElementNS(ns, tag);\n        Object.entries(attrs).forEach(([name, value]) =>\n          element.setAttribute(name, value)\n        );\n        return element;\n      };\n\n      const formatPercent = (value) =>\n        `${new Intl.NumberFormat(\"fr-FR\", { maximumFractionDigits: 0 }).format(value)} %`;\n\n      const differenceText = (value) => {\n        const difference = Math.abs(value - 100);\n        if (value > 100) return `exc\u00e9dent de ${difference} %`;\n        if (value < 100) return `d\u00e9ficit de ${difference} %`;\n        return \"conforme \u00e0 la normale\";\n      };\n\n      const gridGroup = makeSvg(\"g\", { \"aria-hidden\": \"true\" });\n      ticks.forEach((tick) => {\n        const line = makeSvg(\"line\", {\n          x1: margin.left,\n          x2: W - margin.right,\n          y1: y(tick),\n          y2: y(tick),\n          class: tick === 100 ? \"pj26-normal-line\" : \"pj26-grid-line\"\n        });\n        gridGroup.appendChild(line);\n\n        const label = makeSvg(\"text\", {\n          x: margin.left - 11,\n          y: y(tick),\n          class: \"pj26-y-label\"\n        });\n        label.textContent = tick;\n        gridGroup.appendChild(label);\n      });\n\n      const unit = makeSvg(\"text\", {\n        x: 8,\n        y: 20,\n        class: \"pj26-axis-unit\"\n      });\n      unit.textContent = \"Rapport \u00e0 la normale (%)\";\n      gridGroup.appendChild(unit);\n\n      const normalLabel = makeSvg(\"text\", {\n        x: W - margin.right,\n        y: y(100) - 8,\n        class: \"pj26-normal-label\"\n      });\n      normalLabel.textContent = \"Normale : 100 %\";\n      gridGroup.appendChild(normalLabel);\n      svg.appendChild(gridGroup);\n\n      const barsGroup = makeSvg(\"g\");\n      const normalY = y(100);\n\n      const removeSelection = () => {\n        if (pinnedBar) pinnedBar.classList.remove(\"is-selected\");\n        pinnedBar = null;\n      };\n\n      const setSelectionCard = (year, value) => {\n        selection.classList.remove(\"is-wet\", \"is-dry\", \"is-normal\");\n        selection.classList.add(\n          value > 100 ? \"is-wet\" : value < 100 ? \"is-dry\" : \"is-normal\"\n        );\n        selection.innerHTML =\n          `<strong>Juin \u00e0 juillet ${year}<\/strong> \u2014 ` +\n          `<strong>${formatPercent(value)} de la normale<\/strong> ` +\n          `(${differenceText(value)})` +\n          (year === 2026 ? ` <em>\u2022 p\u00e9riode en cours<\/em>` : \"\");\n      };\n\n      const placeTooltip = (clientX, clientY, year, value) => {\n        const rect = stage.getBoundingClientRect();\n        const tooltipX = Math.max(130, Math.min(rect.width - 130, clientX - rect.left));\n        const tooltipY = Math.max(92, clientY - rect.top);\n\n        tooltip.innerHTML =\n          `<strong>Juin \u00e0 juillet ${year}<\/strong>` +\n          `<span>${formatPercent(value)} de la normale<\/span>` +\n          `<span>${differenceText(value)}<\/span>` +\n          (year === 2026 ? `<em>P\u00e9riode en cours<\/em>` : \"\");\n        tooltip.style.left = `${tooltipX}px`;\n        tooltip.style.top = `${tooltipY}px`;\n        tooltip.classList.add(\"is-visible\");\n        tooltip.setAttribute(\"aria-hidden\", \"false\");\n      };\n\n      const hideTooltip = () => {\n        tooltip.classList.remove(\"is-visible\");\n        tooltip.setAttribute(\"aria-hidden\", \"true\");\n      };\n\n      toggle.addEventListener(\"click\", () => {\n        const willShow = content.hidden;\n        content.hidden = !willShow;\n        toggle.classList.toggle(\"is-active\", willShow);\n        toggle.setAttribute(\"aria-checked\", String(willShow));\n        toggleLabel.textContent = willShow\n          ? \"Masquer le diagramme\"\n          : \"Afficher le diagramme\";\n\n        if (!willShow) {\n          removeSelection();\n          hideTooltip();\n        }\n      });\n\n      data.forEach(([year, value], index) => {\n        const x = margin.left + index * slot + (slot - barW) \/ 2;\n        const valueY = y(value);\n        const rectY = value >= 100 ? valueY : normalY;\n        const rectH = Math.max(1.6, Math.abs(normalY - valueY));\n        const color = value >= 100 ? \"#55a89d\" : \"#d2a95b\";\n        const isCurrent = year === 2026;\n\n        const group = makeSvg(\"g\", {\n          class: `pj26-bar${isCurrent ? \" is-current\" : \"\"}`,\n          role: \"button\",\n          tabindex: \"0\",\n          \"aria-label\":\n            `Juin \u00e0 juillet ${year}, ${formatPercent(value)} de la normale, ${differenceText(value)}` +\n            (isCurrent ? \", p\u00e9riode en cours\" : \"\")\n        });\n\n        const visibleBar = makeSvg(\"rect\", {\n          x,\n          y: rectY,\n          width: barW,\n          height: rectH,\n          rx: 0.8,\n          fill: color,\n          class: \"pj26-bar-visible\"\n        });\n\n        const hitArea = makeSvg(\"rect\", {\n          x: margin.left + index * slot,\n          y: margin.top,\n          width: slot,\n          height: plotH,\n          class: \"pj26-hit-area\"\n        });\n\n        group.appendChild(visibleBar);\n        group.appendChild(hitArea);\n\n        group.addEventListener(\"pointerenter\", (event) => {\n          if (!pinnedBar) {\n            setSelectionCard(year, value);\n            placeTooltip(event.clientX, event.clientY, year, value);\n          }\n        });\n\n        group.addEventListener(\"pointermove\", (event) => {\n          if (!pinnedBar) placeTooltip(event.clientX, event.clientY, year, value);\n        });\n\n        group.addEventListener(\"pointerleave\", () => {\n          if (!pinnedBar) hideTooltip();\n        });\n\n        const selectBar = (event) => {\n          event.preventDefault();\n          event.stopPropagation();\n          removeSelection();\n          pinnedBar = group;\n          group.classList.add(\"is-selected\");\n          setSelectionCard(year, value);\n\n          const barBox = visibleBar.getBoundingClientRect();\n          placeTooltip(\n            barBox.left + barBox.width \/ 2,\n            Math.min(barBox.top, barBox.bottom),\n            year,\n            value\n          );\n        };\n\n        group.addEventListener(\"click\", selectBar);\n        group.addEventListener(\"keydown\", (event) => {\n          if (event.key === \"Enter\" || event.key === \" \") selectBar(event);\n          if (event.key === \"Escape\") {\n            removeSelection();\n            hideTooltip();\n          }\n        });\n\n        barsGroup.appendChild(group);\n      });\n\n      svg.appendChild(barsGroup);\n\n      const labelsGroup = makeSvg(\"g\", { \"aria-hidden\": \"true\" });\n      data.forEach(([year], index) => {\n        if ((year - 1959) % 3 !== 0 && year !== 2026) return;\n        const label = makeSvg(\"text\", {\n          x: margin.left + index * slot + slot \/ 2,\n          y: H - 25,\n          class: \"pj26-x-label\"\n        });\n        label.textContent = year;\n        labelsGroup.appendChild(label);\n      });\n\n      const currentValue = data[data.length - 1][1];\n      const currentLabel = makeSvg(\"text\", {\n        x: W - margin.right,\n        y: Math.min(H - margin.bottom - 8, y(currentValue) + 20),\n        class: \"pj26-current-label\"\n      });\n      currentLabel.textContent = \"2026 \u2022 p\u00e9riode en cours\";\n      labelsGroup.appendChild(currentLabel);\n      svg.appendChild(labelsGroup);\n\n      svg.addEventListener(\"click\", (event) => {\n        if (\n          event.target === svg ||\n          event.target.classList.contains(\"pj26-grid-line\") ||\n          event.target.classList.contains(\"pj26-normal-line\")\n        ) {\n          removeSelection();\n          hideTooltip();\n        }\n      });\n    });\n  })();\n<\/script><div class=\"fusion-text fusion-text-2\"><h2>Juillet 2026 : le mois le plus chaud jamais observ\u00e9<\/h2>\n<p>Avec une temp\u00e9rature moyenne nationale de <strong>24,85 \u00b0C<\/strong>, soit <strong>+3,7 \u00b0C au-dessus de la normale 1991-2020<\/strong>, juillet 2026 devient le <strong>mois le plus chaud jamais mesur\u00e9 en France, tous mois confondus<\/strong>.<\/p>\n<p>Il \u00e9gale ainsi <strong>ao\u00fbt 2003<\/strong>, r\u00e9f\u00e9rence absolue depuis vingt-trois ans et marqueur historique de la canicule qui avait frapp\u00e9 le pays.<\/p>\n<p>Rappelons ce que signifie une anomalie de +3,7 \u00b0C sur une moyenne mensuelle nationale : ce n&rsquo;est pas une pouss\u00e9e localis\u00e9e de quelques jours, mais un <strong>exc\u00e9dent thermique g\u00e9n\u00e9ralis\u00e9 et durable<\/strong>, moyenn\u00e9 sur l&rsquo;ensemble du territoire, jour et nuit confondus.<\/p>\n<hr \/>\n<h2>Juin-juillet 2026 : un \u00e9cart sans pr\u00e9c\u00e9dent<\/h2>\n<p>Consid\u00e9r\u00e9 sur deux mois, le constat devient plus frappant encore.<\/p>\n<p>Avec une <strong>anomalie moyenne de +3,7 \u00b0C<\/strong> sur juin-juillet, ce d\u00e9but d&rsquo;\u00e9t\u00e9 est <strong>de tr\u00e8s loin le plus chaud jamais enregistr\u00e9<\/strong> en France.<\/p>\n<p>L&rsquo;\u00e9cart avec le pr\u00e9c\u00e9dent record est <strong>consid\u00e9rable : 1,5 \u00b0C de plus que 2003<\/strong>.<\/p>\n<p>Ce chiffre m\u00e9rite qu&rsquo;on s&rsquo;y arr\u00eate. En climatologie, battre un record bimestriel de quelques dixi\u00e8mes est d\u00e9j\u00e0 notable. <strong>Le battre d&rsquo;un degr\u00e9 et demi rel\u00e8ve d&rsquo;un changement d&rsquo;\u00e9chelle<\/strong>, pas d&rsquo;une simple variation. C&rsquo;est pr\u00e9cis\u00e9ment ce qui contraint aujourd&rsquo;hui \u00e0 modifier les axes des graphiques de suivi.<\/p>\n<hr \/>\n<h2>Une s\u00e9cheresse record simultan\u00e9e<\/h2>\n<p>La chaleur ne vient pas seule.<\/p>\n<p>Ce d\u00e9but d&rsquo;\u00e9t\u00e9 est \u00e9galement <strong>le plus sec jamais enregistr\u00e9<\/strong>, avec un <strong>d\u00e9ficit pluviom\u00e9trique de 55 %<\/strong>.<\/p>\n<p>Chaleur extr\u00eame et d\u00e9ficit hydrique se renforcent mutuellement : sols ass\u00e9ch\u00e9s, \u00e9vaporation r\u00e9duite, \u00e9nergie solaire convertie en chaleur sensible plut\u00f4t qu&rsquo;en \u00e9vaporation. Ce couplage amplifie les temp\u00e9ratures diurnes et prolonge les \u00e9pisodes chauds.<\/p>\n<p>Les cons\u00e9quences sont directes : stress hydrique agricole, tensions sur la ressource en eau, risque incendie \u00e9lev\u00e9 et v\u00e9g\u00e9tation en souffrance pr\u00e9coce.<\/p>\n<p>Juin-juillet 2026 ne bat pas seulement des records : il les d\u00e9place. Un mois de juillet \u00e0 24,85 \u00b0C, une anomalie bimestrielle de +3,7 \u00b0C et un d\u00e9ficit pluviom\u00e9trique de 55 % dessinent un \u00e9t\u00e9 hors norme \u00e0 tous les niveaux.<\/p>\n<p><strong>Suivez l&rsquo;\u00e9volution des conditions et nos <a href=\"https:\/\/alertes-meteo.com\/index.php\/category\/previsions-meteo-france\/\" target=\"_blank\" rel=\"noopener noreferrer\">alertes et pr\u00e9visions m\u00e9t\u00e9o France<\/a> pour anticiper la suite de cet \u00e9t\u00e9 exceptionnel.<\/strong><\/p>\n<\/div><script async src=\"https:\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js?client=ca-pub-8902396130105212\"\n     crossorigin=\"anonymous\"><\/script>\n<!-- bas de page -->\n<ins class=\"adsbygoogle\"\n     style=\"display:block\"\n     data-ad-client=\"ca-pub-8902396130105212\"\n     data-ad-slot=\"7724440717\"\n     data-ad-format=\"auto\"\n     data-full-width-responsive=\"true\"><\/ins>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script><\/div><\/div><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":61714,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_titles_title":"Juin-juillet 2026 : le d\u00e9but d'\u00e9t\u00e9 le plus chaud jamais mesur\u00e9","_seopress_titles_desc":"Juillet 2026 \u00e0 24,85 \u00b0C, +3,7 \u00b0C d'anomalie et 55 % de d\u00e9ficit pluviom\u00e9trique : un d\u00e9but d'\u00e9t\u00e9 record en France. Analyse et chiffres cl\u00e9s.","_seopress_robots_index":"","_seopress_robots_follow":"","_seopress_robots_imageindex":"","_seopress_robots_snippet":"","_seopress_robots_primary_cat":"","_seopress_robots_breadcrumbs":"","_seopress_robots_freeze_modified_date":"","_seopress_robots_custom_modified_date":"","_seopress_robots_canonical":"","_seopress_social_fb_title":"","_seopress_social_fb_desc":"","_seopress_social_fb_img":"","_seopress_social_fb_img_attachment_id":0,"_seopress_social_fb_img_width":0,"_seopress_social_fb_img_height":0,"_seopress_social_twitter_title":"","_seopress_social_twitter_desc":"","_seopress_social_twitter_img":"","_seopress_social_twitter_img_attachment_id":0,"_seopress_social_twitter_img_width":0,"_seopress_social_twitter_img_height":0,"_seopress_redirections_value":"","_seopress_redirections_enabled":"","_seopress_redirections_enabled_regex":"","_seopress_redirections_logged_status":"both","_seopress_redirections_param":"","_seopress_redirections_type":301,"_seopress_analysis_target_kw":"","footnotes":""},"categories":[80,174],"tags":[],"class_list":["post-61712","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-actualite","category-page-accueil"],"_links":{"self":[{"href":"https:\/\/alertes-meteo.com\/index.php\/wp-json\/wp\/v2\/posts\/61712","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/alertes-meteo.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/alertes-meteo.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/alertes-meteo.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/alertes-meteo.com\/index.php\/wp-json\/wp\/v2\/comments?post=61712"}],"version-history":[{"count":2,"href":"https:\/\/alertes-meteo.com\/index.php\/wp-json\/wp\/v2\/posts\/61712\/revisions"}],"predecessor-version":[{"id":61715,"href":"https:\/\/alertes-meteo.com\/index.php\/wp-json\/wp\/v2\/posts\/61712\/revisions\/61715"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/alertes-meteo.com\/index.php\/wp-json\/wp\/v2\/media\/61714"}],"wp:attachment":[{"href":"https:\/\/alertes-meteo.com\/index.php\/wp-json\/wp\/v2\/media?parent=61712"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/alertes-meteo.com\/index.php\/wp-json\/wp\/v2\/categories?post=61712"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/alertes-meteo.com\/index.php\/wp-json\/wp\/v2\/tags?post=61712"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}