{"id":61371,"date":"2026-07-30T18:03:15","date_gmt":"2026-07-30T16:03:15","guid":{"rendered":"https:\/\/alertes-meteo.com\/?page_id=61371"},"modified":"2026-07-30T18:32:16","modified_gmt":"2026-07-30T16:32:16","slug":"climat-annuel","status":"publish","type":"page","link":"https:\/\/alertes-meteo.com\/index.php\/climatologie\/climat-annuel\/","title":{"rendered":"Temp\u00e9ratures moyennes annuelles"},"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\"><div class=\"w-full\">\n<h1 style=\"text-align: center;\">Temp\u00e9ratures moyennes annuelles<\/h1>\n<\/div>\n<\/div><p style=\"margin:18px 0; color:#dc2626; font-size:18px; font-weight:800; line-height:1.5; text-align:center;\">\n  Afficher et survolez le diagramme pour voir le d\u00e9tail des temp\u00e9ratures.\n<\/p>\n\n\n<!--\n  Graphique interactif WordPress\n  \u00c0 coller dans un bloc \u00ab HTML personnalis\u00e9 \u00bb.\n  Aucune biblioth\u00e8que externe n'est n\u00e9cessaire.\n-->\n<div class=\"tjan-widget\" data-tjan-chart>\n  <div class=\"tjan-header\">\n    <h2>Temp\u00e9rature moyenne observ\u00e9e en janvier depuis 1921 (France)<\/h2>\n    <p> Valeurs en degr\u00e9s Celsius<\/p>\n  <\/div>\n\n  <div\n    class=\"tjan-reference\"\n    role=\"note\"\n    aria-label=\"Normale 1991-2020 : 5,47 degr\u00e9s Celsius\"\n  >\n    <span>Normale 1991-2020<\/span>\n    <strong>5,47\u00a0\u00b0C<\/strong>\n  <\/div>\n\n  <div class=\"tjan-toggle-row\">\n    <button\n      class=\"tjan-toggle\"\n      data-tjan-toggle\n      type=\"button\"\n      role=\"switch\"\n      aria-checked=\"false\"\n    >\n      <span class=\"tjan-toggle-track\" aria-hidden=\"true\">\n        <span class=\"tjan-toggle-dot\"><\/span>\n      <\/span>\n      <span data-tjan-toggle-label>Afficher le diagramme<\/span>\n    <\/button>\n  <\/div>\n\n  <div class=\"tjan-content\" data-tjan-content hidden>\n    <div class=\"tjan-selection\" data-tjan-selection aria-live=\"polite\">\n      Survolez ou touchez la courbe pour afficher la temp\u00e9rature d\u2019une ann\u00e9e.\n    <\/div>\n\n    <div class=\"tjan-scroll\" aria-label=\"Graphique d\u00e9filable horizontalement sur mobile\">\n      <div class=\"tjan-stage\">\n        <svg\n          class=\"tjan-svg\"\n          data-tjan-svg\n          viewBox=\"0 0 1240 520\"\n          role=\"img\"\n          tabindex=\"0\"\n          aria-labelledby=\"tjan-title tjan-desc\"\n          preserveAspectRatio=\"xMidYMid meet\"\n        >\n          <title id=\"tjan-title\">\n            Temp\u00e9rature moyenne observ\u00e9e en janvier en France, de 1921 \u00e0 2026\n          <\/title>\n          <desc id=\"tjan-desc\">\n            Courbe bleue interactive de la temp\u00e9rature moyenne nationale observ\u00e9e\n            en janvier. La ligne pointill\u00e9e repr\u00e9sente la normale 1991-2020 de 5,47 \u00b0C.\n            Les fl\u00e8ches gauche et droite permettent de parcourir les ann\u00e9es.\n          <\/desc>\n        <\/svg>\n        <div class=\"tjan-tooltip\" data-tjan-tooltip role=\"status\" aria-hidden=\"true\"><\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"tjan-legend\" aria-label=\"L\u00e9gende\">\n      <span><i class=\"tjan-line-key\"><\/i> Temp\u00e9rature moyenne observ\u00e9e<\/span>\n      <span><i class=\"tjan-normal-key\"><\/i> Normale 1991-2020 : 5,47\u00a0\u00b0C<\/span>\n    <\/div>\n\n    <p class=\"tjan-note\">\n      Les valeurs 2024, 2025 et 2026 ont \u00e9t\u00e9 ajout\u00e9es \u00e0 partir des bilans climatiques\n      mensuels officiels.\n    <\/p>\n\n    <p class=\"tjan-source\">\n      Source : M\u00e9t\u00e9o-France \u2022 Indicateur thermique national\n    <\/p>\n  <\/div>\n<\/div>\n\n<style>\n  .tjan-widget,\n  .tjan-widget * {\n    box-sizing: border-box;\n  }\n\n  .tjan-widget {\n    --tjan-blue: #2f80ed;\n    --tjan-blue-dark: #145eb8;\n    --tjan-blue-soft: #eaf4ff;\n    --tjan-grid: #dfe6ee;\n    --tjan-ink: #17202a;\n    --tjan-muted: #5d6874;\n    width: 100%;\n    max-width: 1280px;\n    margin: 24px auto;\n    padding: clamp(18px, 3vw, 32px);\n    overflow: hidden;\n    color: var(--tjan-ink);\n    background: #ffffff;\n    border: 1px solid #e7ecf2;\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  .tjan-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  .tjan-header p {\n    margin: 8px 0 0;\n    color: var(--tjan-muted);\n    font-size: 15px;\n  }\n\n  .tjan-reference {\n    display: inline-flex;\n    align-items: center;\n    gap: 10px;\n    margin-top: 18px;\n    padding: 10px 14px;\n    color: #184d82;\n    background: var(--tjan-blue-soft);\n    border: 1px solid #bfdcff;\n    border-radius: 11px;\n    font-size: 14px;\n  }\n\n  .tjan-reference span {\n    font-weight: 700;\n  }\n\n  .tjan-reference strong {\n    font-size: 17px;\n    color: #0f559f;\n  }\n\n  .tjan-toggle-row {\n    margin-top: 16px;\n  }\n\n  .tjan-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  .tjan-toggle:hover {\n    color: #17202a;\n    background: #eef2f6;\n    border-color: #cbd3dc;\n  }\n\n  .tjan-toggle:focus-visible,\n  .tjan-svg:focus-visible {\n    outline: 3px solid rgba(47, 128, 237, 0.28);\n    outline-offset: 3px;\n  }\n\n  .tjan-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  .tjan-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  .tjan-toggle.is-active {\n    color: #174f8d;\n    background: #eff6ff;\n    border-color: #b9d4f2;\n  }\n\n  .tjan-toggle.is-active .tjan-toggle-track {\n    background: var(--tjan-blue-dark);\n  }\n\n  .tjan-toggle.is-active .tjan-toggle-dot {\n    transform: translateX(16px);\n  }\n\n  .tjan-content[hidden] {\n    display: none;\n  }\n\n  .tjan-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  .tjan-selection strong {\n    color: #0f559f;\n  }\n\n  .tjan-selection.has-value {\n    color: #24415f;\n    background: #eef7ff;\n    border-left-color: var(--tjan-blue);\n  }\n\n  .tjan-scroll {\n    width: 100%;\n    overflow-x: auto;\n    overflow-y: hidden;\n    padding-top: 6px;\n    scrollbar-color: #aeb7c2 #edf0f3;\n    scrollbar-width: thin;\n    -webkit-overflow-scrolling: touch;\n  }\n\n  .tjan-stage {\n    position: relative;\n    width: 100%;\n    min-width: 940px;\n  }\n\n  .tjan-svg {\n    display: block;\n    width: 100%;\n    height: auto;\n    overflow: visible;\n    cursor: crosshair;\n    touch-action: pan-x pan-y;\n  }\n\n  .tjan-grid-line {\n    stroke: var(--tjan-grid);\n    stroke-width: 1;\n    vector-effect: non-scaling-stroke;\n  }\n\n  .tjan-zero-line {\n    stroke: #aeb8c3;\n    stroke-width: 1.5;\n    vector-effect: non-scaling-stroke;\n  }\n\n  .tjan-normal-line {\n    stroke: #536273;\n    stroke-width: 1.7;\n    stroke-dasharray: 7 6;\n    vector-effect: non-scaling-stroke;\n  }\n\n  .tjan-normal-label {\n    fill: #4e5b68;\n    font-size: 12px;\n    font-weight: 700;\n    text-anchor: end;\n  }\n\n  .tjan-y-label,\n  .tjan-x-label,\n  .tjan-axis-unit {\n    fill: #687582;\n    font-family: Arial, Helvetica, sans-serif;\n  }\n\n  .tjan-y-label {\n    font-size: 13px;\n    text-anchor: end;\n    dominant-baseline: middle;\n  }\n\n  .tjan-x-label {\n    font-size: 11px;\n    text-anchor: middle;\n  }\n\n  .tjan-axis-unit {\n    font-size: 12px;\n    font-weight: 700;\n  }\n\n  .tjan-area {\n    pointer-events: none;\n  }\n\n  .tjan-curve {\n    fill: none;\n    stroke: var(--tjan-blue);\n    stroke-width: 2.1;\n    stroke-linecap: round;\n    stroke-linejoin: round;\n    vector-effect: non-scaling-stroke;\n    pointer-events: none;\n  }\n\n  .tjan-marker-line {\n    stroke: rgba(20, 94, 184, 0.42);\n    stroke-width: 1;\n    stroke-dasharray: 4 4;\n    vector-effect: non-scaling-stroke;\n    pointer-events: none;\n  }\n\n  .tjan-marker {\n    fill: #ffffff;\n    stroke: var(--tjan-blue-dark);\n    stroke-width: 2.2;\n    vector-effect: non-scaling-stroke;\n    filter: drop-shadow(0 2px 4px rgba(20, 94, 184, 0.28));\n    pointer-events: none;\n  }\n\n  .tjan-overlay {\n    fill: transparent;\n    pointer-events: all;\n  }\n\n  .tjan-tooltip {\n    position: absolute;\n    z-index: 4;\n    width: max-content;\n    max-width: 235px;\n    padding: 10px 12px;\n    color: #ffffff;\n    background: rgba(18, 34, 51, 0.97);\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  .tjan-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, 34, 51, 0.97);\n    transform: translateX(-50%);\n  }\n\n  .tjan-tooltip.is-visible {\n    opacity: 1;\n  }\n\n  .tjan-tooltip strong,\n  .tjan-tooltip span {\n    display: block;\n  }\n\n  .tjan-tooltip strong {\n    margin-bottom: 2px;\n    font-size: 14px;\n  }\n\n  .tjan-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  .tjan-legend span {\n    display: inline-flex;\n    align-items: center;\n    gap: 8px;\n  }\n\n  .tjan-line-key,\n  .tjan-normal-key {\n    display: inline-block;\n    width: 30px;\n    height: 0;\n  }\n\n  .tjan-line-key {\n    border-top: 2px solid var(--tjan-blue);\n    border-radius: 999px;\n  }\n\n  .tjan-normal-key {\n    border-top: 2px dashed #536273;\n  }\n\n  .tjan-note {\n    margin: 16px 0 0;\n    padding: 11px 13px;\n    color: #52606d;\n    background: #f6f8fa;\n    border-radius: 9px;\n    font-size: 12px;\n    line-height: 1.5;\n  }\n\n  .tjan-source {\n    margin: 13px 0 0;\n    color: #737d87;\n    font-size: 12px;\n  }\n\n  @media (max-width: 720px) {\n    .tjan-widget {\n      margin: 14px auto;\n      padding: 17px 14px 19px;\n      border-radius: 13px;\n    }\n\n    .tjan-reference {\n      width: 100%;\n      justify-content: space-between;\n    }\n\n    .tjan-selection {\n      margin-top: 15px;\n    }\n\n    .tjan-scroll {\n      padding-bottom: 7px;\n    }\n\n    .tjan-stage {\n      min-width: 900px;\n    }\n\n    .tjan-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    .tjan-toggle,\n    .tjan-toggle-track,\n    .tjan-toggle-dot,\n    .tjan-tooltip {\n      transition: none;\n    }\n  }\n<\/style>\n\n<script>\n  (() => {\n    const widgets = document.querySelectorAll(\"[data-tjan-chart]\");\n    const NORMAL = 5.47;\n\n    widgets.forEach((widget, widgetIndex) => {\n      if (widget.dataset.tjanReady === \"true\") return;\n      widget.dataset.tjanReady = \"true\";\n\n      const data = [\n        [1921, 7.0], [1922, 4.4], [1923, 4.2], [1924, 4.9], [1925, 5.6],\n        [1926, 5.1], [1927, 5.1], [1928, 5.9], [1929, 1.0], [1930, 6.9],\n        [1931, 4.5], [1932, 5.5], [1933, 2.6], [1934, 4.2], [1935, 3.1],\n        [1936, 7.7], [1937, 6.6], [1938, 5.2], [1939, 6.6], [1940, -0.5],\n        [1941, 1.4], [1942, 0.2], [1943, 6.5], [1944, 5.6], [1945, -0.6],\n        [1946, 2.0], [1947, 1.8], [1948, 6.8], [1949, 5.2], [1950, 3.4],\n        [1951, 5.6], [1952, 3.4], [1953, 1.3], [1954, 2.5], [1955, 5.9],\n        [1956, 5.3], [1957, 3.6], [1958, 4.7], [1959, 4.3], [1960, 4.2],\n        [1961, 4.4], [1962, 5.9], [1963, -0.6], [1964, 2.0], [1965, 4.7],\n        [1966, 3.6], [1967, 4.3], [1968, 4.3], [1969, 5.8], [1970, 5.2],\n        [1971, 4.0], [1972, 4.4], [1973, 3.7], [1974, 7.2], [1975, 7.2],\n        [1976, 4.8], [1977, 4.9], [1978, 4.2], [1979, 1.9], [1980, 3.3],\n        [1981, 4.2], [1982, 6.2], [1983, 6.3], [1984, 5.4], [1985, -0.3],\n        [1986, 5.0], [1987, -0.2], [1988, 7.7], [1989, 5.0], [1990, 5.8],\n        [1991, 4.8], [1992, 3.3], [1993, 6.8], [1994, 6.2], [1995, 5.4],\n        [1996, 6.5], [1997, 3.3], [1998, 6.0], [1999, 6.5], [2000, 4.6],\n        [2001, 6.4], [2002, 5.9], [2003, 3.9], [2004, 5.6], [2005, 5.3],\n        [2006, 3.7], [2007, 7.4], [2008, 7.1], [2009, 3.1], [2010, 2.4],\n        [2011, 5.1], [2012, 6.3], [2013, 4.7], [2014, 7.7], [2015, 5.6],\n        [2016, 7.1], [2017, 3.0], [2018, 8.4], [2019, 4.7], [2020, 7.2],\n        [2021, 4.9], [2022, 5.0], [2023, 6.3], [2024, 6.1], [2025, 5.9],\n        [2026, 5.8]\n      ];\n\n      const svg = widget.querySelector(\"[data-tjan-svg]\");\n      const tooltip = widget.querySelector(\"[data-tjan-tooltip]\");\n      const selection = widget.querySelector(\"[data-tjan-selection]\");\n      const stage = widget.querySelector(\".tjan-stage\");\n      const toggle = widget.querySelector(\"[data-tjan-toggle]\");\n      const toggleLabel = widget.querySelector(\"[data-tjan-toggle-label]\");\n      const content = widget.querySelector(\"[data-tjan-content]\");\n      const ns = \"http:\/\/www.w3.org\/2000\/svg\";\n\n      const contentId = `tjan-chart-content-${widgetIndex + 1}`;\n      const gradientId = `tjan-area-gradient-${widgetIndex + 1}`;\n      content.id = contentId;\n      toggle.setAttribute(\"aria-controls\", contentId);\n\n      const W = 1240;\n      const H = 520;\n      const margin = { top: 31, right: 22, bottom: 62, left: 62 };\n      const plotW = W - margin.left - margin.right;\n      const plotH = H - margin.top - margin.bottom;\n      const minY = -1;\n      const maxY = 9;\n      const ticks = [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9];\n      let activeIndex = data.length - 1;\n      let pinned = false;\n\n      const x = (index) =>\n        margin.left + (index \/ (data.length - 1)) * plotW;\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, digits = 1) =>\n        value.toFixed(digits).replace(\".\", \",\").replace(\"-\", \"\u2212\");\n\n      const formatGap = (value) => {\n        const sign = value > 0 ? \"+\" : value < 0 ? \"\u2212\" : \"\";\n        return sign + Math.abs(value).toFixed(1).replace(\".\", \",\");\n      };\n\n      const defs = makeSvg(\"defs\");\n      const gradient = makeSvg(\"linearGradient\", {\n        id: gradientId,\n        x1: \"0\",\n        x2: \"0\",\n        y1: \"0\",\n        y2: \"1\"\n      });\n      gradient.appendChild(\n        makeSvg(\"stop\", {\n          offset: \"0%\",\n          \"stop-color\": \"#2f80ed\",\n          \"stop-opacity\": \"0.24\"\n        })\n      );\n      gradient.appendChild(\n        makeSvg(\"stop\", {\n          offset: \"100%\",\n          \"stop-color\": \"#2f80ed\",\n          \"stop-opacity\": \"0.025\"\n        })\n      );\n      defs.appendChild(gradient);\n      svg.appendChild(defs);\n\n      const gridGroup = makeSvg(\"g\", { \"aria-hidden\": \"true\" });\n      ticks.forEach((tick) => {\n        gridGroup.appendChild(\n          makeSvg(\"line\", {\n            x1: margin.left,\n            x2: W - margin.right,\n            y1: y(tick),\n            y2: y(tick),\n            class: tick === 0 ? \"tjan-zero-line\" : \"tjan-grid-line\"\n          })\n        );\n\n        const label = makeSvg(\"text\", {\n          x: margin.left - 11,\n          y: y(tick),\n          class: \"tjan-y-label\"\n        });\n        label.textContent = formatValue(tick);\n        gridGroup.appendChild(label);\n      });\n\n      const unit = makeSvg(\"text\", {\n        x: 8,\n        y: 19,\n        class: \"tjan-axis-unit\"\n      });\n      unit.textContent = \"Temp\u00e9rature (\u00b0C)\";\n      gridGroup.appendChild(unit);\n      svg.appendChild(gridGroup);\n\n      svg.appendChild(\n        makeSvg(\"line\", {\n          x1: margin.left,\n          x2: W - margin.right,\n          y1: y(NORMAL),\n          y2: y(NORMAL),\n          class: \"tjan-normal-line\",\n          \"aria-hidden\": \"true\"\n        })\n      );\n\n      const normalLabel = makeSvg(\"text\", {\n        x: W - margin.right - 3,\n        y: y(NORMAL) - 8,\n        class: \"tjan-normal-label\",\n        \"aria-hidden\": \"true\"\n      });\n      normalLabel.textContent = \"Normale 1991-2020 : 5,47 \u00b0C\";\n      svg.appendChild(normalLabel);\n\n      const linePath = data\n        .map(([, value], index) =>\n          `${index === 0 ? \"M\" : \"L\"} ${x(index)} ${y(value)}`\n        )\n        .join(\" \");\n\n      const areaPath =\n        linePath +\n        ` L ${x(data.length - 1)} ${y(minY)}` +\n        ` L ${x(0)} ${y(minY)} Z`;\n\n      svg.appendChild(\n        makeSvg(\"path\", {\n          d: areaPath,\n          class: \"tjan-area\",\n          fill: `url(#${gradientId})`,\n          \"aria-hidden\": \"true\"\n        })\n      );\n\n      svg.appendChild(\n        makeSvg(\"path\", {\n          d: linePath,\n          class: \"tjan-curve\",\n          \"aria-hidden\": \"true\"\n        })\n      );\n\n      const labelsGroup = makeSvg(\"g\", { \"aria-hidden\": \"true\" });\n      data.forEach(([year], index) => {\n        if (year % 5 !== 0) return;\n        const label = makeSvg(\"text\", {\n          x: x(index),\n          y: H - 25,\n          class: \"tjan-x-label\"\n        });\n        label.textContent = year;\n        labelsGroup.appendChild(label);\n      });\n      svg.appendChild(labelsGroup);\n\n      const markerLine = makeSvg(\"line\", {\n        x1: x(activeIndex),\n        x2: x(activeIndex),\n        y1: margin.top,\n        y2: H - margin.bottom,\n        class: \"tjan-marker-line\",\n        visibility: \"hidden\",\n        \"aria-hidden\": \"true\"\n      });\n      svg.appendChild(markerLine);\n\n      const marker = makeSvg(\"circle\", {\n        cx: x(activeIndex),\n        cy: y(data[activeIndex][1]),\n        r: 4.7,\n        class: \"tjan-marker\",\n        visibility: \"hidden\",\n        \"aria-hidden\": \"true\"\n      });\n      svg.appendChild(marker);\n\n      const overlay = makeSvg(\"rect\", {\n        x: margin.left,\n        y: margin.top,\n        width: plotW,\n        height: plotH,\n        class: \"tjan-overlay\",\n        \"aria-hidden\": \"true\"\n      });\n      svg.appendChild(overlay);\n\n      const setSelectionCard = (index) => {\n        const [year, value] = data[index];\n        selection.classList.add(\"has-value\");\n        selection.innerHTML =\n          `<strong>Janvier ${year}<\/strong> \u2014 temp\u00e9rature moyenne : ` +\n          `<strong>${formatValue(value)} \u00b0C<\/strong> \u2022 \u00e9cart \u00e0 la normale : ` +\n          `<strong>${formatGap(value - NORMAL)} \u00b0C<\/strong>`;\n      };\n\n      const placeTooltip = (index) => {\n        const [year, value] = data[index];\n        const svgRect = svg.getBoundingClientRect();\n        const stageRect = stage.getBoundingClientRect();\n        const pointClientX = svgRect.left + (x(index) \/ W) * svgRect.width;\n        const pointClientY = svgRect.top + (y(value) \/ H) * svgRect.height;\n        const tooltipX = Math.max(\n          120,\n          Math.min(stageRect.width - 120, pointClientX - stageRect.left)\n        );\n        const tooltipY = Math.max(86, pointClientY - stageRect.top);\n\n        tooltip.innerHTML =\n          `<strong>Janvier ${year}<\/strong>` +\n          `<span>Temp\u00e9rature moyenne : ${formatValue(value)} \u00b0C<\/span>` +\n          `<span>\u00c9cart \u00e0 la normale : ${formatGap(value - NORMAL)} \u00b0C<\/span>`;\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 showIndex = (index, showTooltip = true) => {\n        activeIndex = Math.max(0, Math.min(data.length - 1, index));\n        const value = data[activeIndex][1];\n        markerLine.setAttribute(\"x1\", x(activeIndex));\n        markerLine.setAttribute(\"x2\", x(activeIndex));\n        markerLine.setAttribute(\"visibility\", \"visible\");\n        marker.setAttribute(\"cx\", x(activeIndex));\n        marker.setAttribute(\"cy\", y(value));\n        marker.setAttribute(\"visibility\", \"visible\");\n        setSelectionCard(activeIndex);\n        if (showTooltip) placeTooltip(activeIndex);\n      };\n\n      const resetSelectionCard = () => {\n        selection.classList.remove(\"has-value\");\n        selection.textContent =\n          \"Survolez ou touchez la courbe pour afficher la temp\u00e9rature d\u2019une ann\u00e9e.\";\n      };\n\n      const hidePointer = (resetCard = false) => {\n        markerLine.setAttribute(\"visibility\", \"hidden\");\n        marker.setAttribute(\"visibility\", \"hidden\");\n        tooltip.classList.remove(\"is-visible\");\n        tooltip.setAttribute(\"aria-hidden\", \"true\");\n        if (resetCard) resetSelectionCard();\n      };\n\n      const indexFromPointer = (event) => {\n        const rect = svg.getBoundingClientRect();\n        const svgX = ((event.clientX - rect.left) \/ rect.width) * W;\n        const ratio = (svgX - margin.left) \/ plotW;\n        return Math.round(\n          Math.max(0, Math.min(1, ratio)) * (data.length - 1)\n        );\n      };\n\n      overlay.addEventListener(\"pointerenter\", (event) => {\n        if (event.pointerType === \"mouse\" || !pinned) {\n          showIndex(indexFromPointer(event));\n        }\n      });\n\n      overlay.addEventListener(\"pointermove\", (event) => {\n        if (event.pointerType === \"mouse\" || !pinned) {\n          showIndex(indexFromPointer(event));\n        }\n      });\n\n      overlay.addEventListener(\"pointerleave\", (event) => {\n        if (event.pointerType === \"mouse\") {\n          pinned = false;\n          hidePointer(true);\n        } else if (!pinned) {\n          hidePointer(true);\n        }\n      });\n\n      overlay.addEventListener(\"pointerdown\", (event) => {\n        if (event.pointerType === \"mouse\") return;\n        pinned = true;\n        showIndex(indexFromPointer(event));\n      });\n\n      svg.addEventListener(\"keydown\", (event) => {\n        if (event.key !== \"ArrowLeft\" && event.key !== \"ArrowRight\" &&\n            event.key !== \"Home\" && event.key !== \"End\" &&\n            event.key !== \"Enter\" && event.key !== \" \" &&\n            event.key !== \"Escape\") return;\n\n        event.preventDefault();\n\n        if (event.key === \"ArrowLeft\") {\n          pinned = true;\n          showIndex(activeIndex - 1);\n        } else if (event.key === \"ArrowRight\") {\n          pinned = true;\n          showIndex(activeIndex + 1);\n        } else if (event.key === \"Home\") {\n          pinned = true;\n          showIndex(0);\n        } else if (event.key === \"End\") {\n          pinned = true;\n          showIndex(data.length - 1);\n        } else if (event.key === \"Enter\" || event.key === \" \") {\n          pinned = true;\n          showIndex(activeIndex);\n        } else if (event.key === \"Escape\") {\n          pinned = false;\n          hidePointer(true);\n        }\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        pinned = false;\n        hidePointer(true);\n      });\n\n      window.addEventListener(\"resize\", () => {\n        if (tooltip.classList.contains(\"is-visible\")) {\n          placeTooltip(activeIndex);\n        }\n      });\n    });\n  })();\n<\/script><!--\n  Graphique interactif WordPress\n  \u00c0 coller dans un bloc \u00ab HTML personnalis\u00e9 \u00bb.\n  Aucune biblioth\u00e8que externe n'est n\u00e9cessaire.\n-->\n<div class=\"tfeb-widget\" data-tfeb-chart>\n  <div class=\"tfeb-header\">\n    <h2>Temp\u00e9rature moyenne observ\u00e9e en f\u00e9vrier depuis 1921 (France)<\/h2>\n    <p>Indicateur thermique national \u2022 Valeurs en degr\u00e9s Celsius<\/p>\n  <\/div>\n\n  <div\n    class=\"tfeb-reference\"\n    role=\"note\"\n    aria-label=\"Normale 1991-2020 : 6,08 degr\u00e9s Celsius\"\n  >\n    <span>Normale 1991-2020<\/span>\n    <strong>6,08\u00a0\u00b0C<\/strong>\n  <\/div>\n\n  <div class=\"tfeb-toggle-row\">\n    <button\n      class=\"tfeb-toggle\"\n      data-tfeb-toggle\n      type=\"button\"\n      role=\"switch\"\n      aria-checked=\"false\"\n    >\n      <span class=\"tfeb-toggle-track\" aria-hidden=\"true\">\n        <span class=\"tfeb-toggle-dot\"><\/span>\n      <\/span>\n      <span data-tfeb-toggle-label>Afficher le diagramme<\/span>\n    <\/button>\n  <\/div>\n\n  <div class=\"tfeb-content\" data-tfeb-content hidden>\n    <div class=\"tfeb-selection\" data-tfeb-selection aria-live=\"polite\">\n      Survolez ou touchez la courbe pour afficher la temp\u00e9rature d\u2019une ann\u00e9e.\n    <\/div>\n\n    <div class=\"tfeb-scroll\" aria-label=\"Graphique d\u00e9filable horizontalement sur mobile\">\n      <div class=\"tfeb-stage\">\n        <svg\n          class=\"tfeb-svg\"\n          data-tfeb-svg\n          viewBox=\"0 0 1240 520\"\n          role=\"img\"\n          tabindex=\"0\"\n          aria-labelledby=\"tfeb-title tfeb-desc\"\n          preserveAspectRatio=\"xMidYMid meet\"\n        >\n          <title id=\"tfeb-title\">\n            Temp\u00e9rature moyenne observ\u00e9e en f\u00e9vrier en France, de 1921 \u00e0 2026\n          <\/title>\n          <desc id=\"tfeb-desc\">\n            Courbe bleue interactive de la temp\u00e9rature moyenne nationale observ\u00e9e\n            en f\u00e9vrier. La ligne pointill\u00e9e repr\u00e9sente la normale 1991-2020 de 6,08 \u00b0C.\n            Les fl\u00e8ches gauche et droite permettent de parcourir les ann\u00e9es.\n          <\/desc>\n        <\/svg>\n        <div class=\"tfeb-tooltip\" data-tfeb-tooltip role=\"status\" aria-hidden=\"true\"><\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"tfeb-legend\" aria-label=\"L\u00e9gende\">\n      <span><i class=\"tfeb-line-key\"><\/i> Temp\u00e9rature moyenne observ\u00e9e<\/span>\n      <span><i class=\"tfeb-normal-key\"><\/i> Normale 1991-2020 : 6,08\u00a0\u00b0C<\/span>\n    <\/div>\n\n    <p class=\"tfeb-note\">\n      Les valeurs 2024, 2025 et 2026 ont \u00e9t\u00e9 ajout\u00e9es \u00e0 partir des bilans climatiques\n      mensuels officiels.\n    <\/p>\n\n    <p class=\"tfeb-source\">\n      Source : M\u00e9t\u00e9o-France \u2022 Indicateur thermique national\n    <\/p>\n  <\/div>\n<\/div>\n\n<style>\n  .tfeb-widget,\n  .tfeb-widget * {\n    box-sizing: border-box;\n  }\n\n  .tfeb-widget {\n    --tfeb-blue: #2f80ed;\n    --tfeb-blue-dark: #145eb8;\n    --tfeb-blue-soft: #eaf4ff;\n    --tfeb-grid: #dfe6ee;\n    --tfeb-ink: #17202a;\n    --tfeb-muted: #5d6874;\n    width: 100%;\n    max-width: 1280px;\n    margin: 24px auto;\n    padding: clamp(18px, 3vw, 32px);\n    overflow: hidden;\n    color: var(--tfeb-ink);\n    background: #ffffff;\n    border: 1px solid #e7ecf2;\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  .tfeb-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  .tfeb-header p {\n    margin: 8px 0 0;\n    color: var(--tfeb-muted);\n    font-size: 15px;\n  }\n\n  .tfeb-reference {\n    display: inline-flex;\n    align-items: center;\n    gap: 10px;\n    margin-top: 18px;\n    padding: 10px 14px;\n    color: #184d82;\n    background: var(--tfeb-blue-soft);\n    border: 1px solid #bfdcff;\n    border-radius: 11px;\n    font-size: 14px;\n  }\n\n  .tfeb-reference span {\n    font-weight: 700;\n  }\n\n  .tfeb-reference strong {\n    font-size: 17px;\n    color: #0f559f;\n  }\n\n  .tfeb-toggle-row {\n    margin-top: 16px;\n  }\n\n  .tfeb-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  .tfeb-toggle:hover {\n    color: #17202a;\n    background: #eef2f6;\n    border-color: #cbd3dc;\n  }\n\n  .tfeb-toggle:focus-visible,\n  .tfeb-svg:focus-visible {\n    outline: 3px solid rgba(47, 128, 237, 0.28);\n    outline-offset: 3px;\n  }\n\n  .tfeb-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  .tfeb-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  .tfeb-toggle.is-active {\n    color: #174f8d;\n    background: #eff6ff;\n    border-color: #b9d4f2;\n  }\n\n  .tfeb-toggle.is-active .tfeb-toggle-track {\n    background: var(--tfeb-blue-dark);\n  }\n\n  .tfeb-toggle.is-active .tfeb-toggle-dot {\n    transform: translateX(16px);\n  }\n\n  .tfeb-content[hidden] {\n    display: none;\n  }\n\n  .tfeb-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  .tfeb-selection strong {\n    color: #0f559f;\n  }\n\n  .tfeb-selection.has-value {\n    color: #24415f;\n    background: #eef7ff;\n    border-left-color: var(--tfeb-blue);\n  }\n\n  .tfeb-scroll {\n    width: 100%;\n    overflow-x: auto;\n    overflow-y: hidden;\n    padding-top: 6px;\n    scrollbar-color: #aeb7c2 #edf0f3;\n    scrollbar-width: thin;\n    -webkit-overflow-scrolling: touch;\n  }\n\n  .tfeb-stage {\n    position: relative;\n    width: 100%;\n    min-width: 940px;\n  }\n\n  .tfeb-svg {\n    display: block;\n    width: 100%;\n    height: auto;\n    overflow: visible;\n    cursor: crosshair;\n    touch-action: pan-x pan-y;\n  }\n\n  .tfeb-grid-line {\n    stroke: var(--tfeb-grid);\n    stroke-width: 1;\n    vector-effect: non-scaling-stroke;\n  }\n\n  .tfeb-zero-line {\n    stroke: #aeb8c3;\n    stroke-width: 1.5;\n    vector-effect: non-scaling-stroke;\n  }\n\n  .tfeb-normal-line {\n    stroke: #536273;\n    stroke-width: 1.7;\n    stroke-dasharray: 7 6;\n    vector-effect: non-scaling-stroke;\n  }\n\n  .tfeb-normal-label {\n    fill: #4e5b68;\n    font-size: 12px;\n    font-weight: 700;\n    text-anchor: end;\n  }\n\n  .tfeb-y-label,\n  .tfeb-x-label,\n  .tfeb-axis-unit {\n    fill: #687582;\n    font-family: Arial, Helvetica, sans-serif;\n  }\n\n  .tfeb-y-label {\n    font-size: 13px;\n    text-anchor: end;\n    dominant-baseline: middle;\n  }\n\n  .tfeb-x-label {\n    font-size: 11px;\n    text-anchor: middle;\n  }\n\n  .tfeb-axis-unit {\n    font-size: 12px;\n    font-weight: 700;\n  }\n\n  .tfeb-area {\n    pointer-events: none;\n  }\n\n  .tfeb-curve {\n    fill: none;\n    stroke: var(--tfeb-blue);\n    stroke-width: 2.1;\n    stroke-linecap: round;\n    stroke-linejoin: round;\n    vector-effect: non-scaling-stroke;\n    pointer-events: none;\n  }\n\n  .tfeb-marker-line {\n    stroke: rgba(20, 94, 184, 0.42);\n    stroke-width: 1;\n    stroke-dasharray: 4 4;\n    vector-effect: non-scaling-stroke;\n    pointer-events: none;\n  }\n\n  .tfeb-marker {\n    fill: #ffffff;\n    stroke: var(--tfeb-blue-dark);\n    stroke-width: 2.2;\n    vector-effect: non-scaling-stroke;\n    filter: drop-shadow(0 2px 4px rgba(20, 94, 184, 0.28));\n    pointer-events: none;\n  }\n\n  .tfeb-overlay {\n    fill: transparent;\n    pointer-events: all;\n  }\n\n  .tfeb-tooltip {\n    position: absolute;\n    z-index: 4;\n    width: max-content;\n    max-width: 235px;\n    padding: 10px 12px;\n    color: #ffffff;\n    background: rgba(18, 34, 51, 0.97);\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  .tfeb-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, 34, 51, 0.97);\n    transform: translateX(-50%);\n  }\n\n  .tfeb-tooltip.is-visible {\n    opacity: 1;\n  }\n\n  .tfeb-tooltip strong,\n  .tfeb-tooltip span {\n    display: block;\n  }\n\n  .tfeb-tooltip strong {\n    margin-bottom: 2px;\n    font-size: 14px;\n  }\n\n  .tfeb-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  .tfeb-legend span {\n    display: inline-flex;\n    align-items: center;\n    gap: 8px;\n  }\n\n  .tfeb-line-key,\n  .tfeb-normal-key {\n    display: inline-block;\n    width: 30px;\n    height: 0;\n  }\n\n  .tfeb-line-key {\n    border-top: 2px solid var(--tfeb-blue);\n    border-radius: 999px;\n  }\n\n  .tfeb-normal-key {\n    border-top: 2px dashed #536273;\n  }\n\n  .tfeb-note {\n    margin: 16px 0 0;\n    padding: 11px 13px;\n    color: #52606d;\n    background: #f6f8fa;\n    border-radius: 9px;\n    font-size: 12px;\n    line-height: 1.5;\n  }\n\n  .tfeb-source {\n    margin: 13px 0 0;\n    color: #737d87;\n    font-size: 12px;\n  }\n\n  @media (max-width: 720px) {\n    .tfeb-widget {\n      margin: 14px auto;\n      padding: 17px 14px 19px;\n      border-radius: 13px;\n    }\n\n    .tfeb-reference {\n      width: 100%;\n      justify-content: space-between;\n    }\n\n    .tfeb-selection {\n      margin-top: 15px;\n    }\n\n    .tfeb-scroll {\n      padding-bottom: 7px;\n    }\n\n    .tfeb-stage {\n      min-width: 900px;\n    }\n\n    .tfeb-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    .tfeb-toggle,\n    .tfeb-toggle-track,\n    .tfeb-toggle-dot,\n    .tfeb-tooltip {\n      transition: none;\n    }\n  }\n<\/style>\n\n<script>\n  (() => {\n    const widgets = document.querySelectorAll(\"[data-tfeb-chart]\");\n    const NORMAL = 6.08;\n\n    widgets.forEach((widget, widgetIndex) => {\n      if (widget.dataset.tfebReady === \"true\") return;\n      widget.dataset.tfebReady = \"true\";\n\n      const data = [\n        [1921, 5.0], [1922, 5.9], [1923, 7.3], [1924, 2.8], [1925, 6.2],\n        [1926, 9.3], [1927, 5.5], [1928, 7.3], [1929, 0.9], [1930, 4.1],\n        [1931, 4.1], [1932, 1.7], [1933, 5.1], [1934, 3.7], [1935, 6.0],\n        [1936, 5.9], [1937, 8.2], [1938, 4.8], [1939, 5.7], [1940, 6.0],\n        [1941, 5.5], [1942, 0.4], [1943, 6.3], [1944, 2.5], [1945, 7.8],\n        [1946, 7.3], [1947, 2.8], [1948, 5.3], [1949, 5.7], [1950, 7.5],\n        [1951, 5.8], [1952, 3.6], [1953, 3.5], [1954, 3.0], [1955, 4.9],\n        [1956, -3.6], [1957, 8.1], [1958, 7.1], [1959, 5.7], [1960, 6.1],\n        [1961, 8.7], [1962, 4.5], [1963, 0.7], [1964, 6.4], [1965, 2.4],\n        [1966, 9.1], [1967, 6.5], [1968, 5.6], [1969, 3.3], [1970, 5.6],\n        [1971, 5.0], [1972, 6.9], [1973, 4.2], [1974, 6.5], [1975, 6.6],\n        [1976, 6.0], [1977, 8.0], [1978, 5.3], [1979, 5.4], [1980, 7.5],\n        [1981, 3.7], [1982, 6.4], [1983, 3.5], [1984, 4.4], [1985, 5.3],\n        [1986, 0.6], [1987, 4.9], [1988, 5.9], [1989, 6.7], [1990, 10.1],\n        [1991, 3.1], [1992, 5.8], [1993, 4.3], [1994, 6.4], [1995, 8.7],\n        [1996, 4.2], [1997, 8.2], [1998, 7.1], [1999, 5.2], [2000, 7.8],\n        [2001, 6.7], [2002, 8.5], [2003, 4.5], [2004, 6.0], [2005, 3.6],\n        [2006, 4.3], [2007, 8.5], [2008, 7.7], [2009, 5.2], [2010, 4.9],\n        [2011, 7.0], [2012, 1.9], [2013, 3.8], [2014, 7.8], [2015, 4.9],\n        [2016, 7.3], [2017, 8.2], [2018, 3.5], [2019, 7.9], [2020, 9.3],\n        [2021, 8.2], [2022, 8.1], [2023, 6.9], [2024, 9.6], [2025, 7.3],\n        [2026, 9.6]\n      ];\n\n      const svg = widget.querySelector(\"[data-tfeb-svg]\");\n      const tooltip = widget.querySelector(\"[data-tfeb-tooltip]\");\n      const selection = widget.querySelector(\"[data-tfeb-selection]\");\n      const stage = widget.querySelector(\".tfeb-stage\");\n      const toggle = widget.querySelector(\"[data-tfeb-toggle]\");\n      const toggleLabel = widget.querySelector(\"[data-tfeb-toggle-label]\");\n      const content = widget.querySelector(\"[data-tfeb-content]\");\n      const ns = \"http:\/\/www.w3.org\/2000\/svg\";\n\n      const contentId = `tfeb-chart-content-${widgetIndex + 1}`;\n      const gradientId = `tfeb-area-gradient-${widgetIndex + 1}`;\n      content.id = contentId;\n      toggle.setAttribute(\"aria-controls\", contentId);\n\n      const W = 1240;\n      const H = 520;\n      const margin = { top: 31, right: 22, bottom: 62, left: 62 };\n      const plotW = W - margin.left - margin.right;\n      const plotH = H - margin.top - margin.bottom;\n      const minY = -4;\n      const maxY = 11;\n      const ticks = [-4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n      let activeIndex = data.length - 1;\n      let pinned = false;\n\n      const x = (index) =>\n        margin.left + (index \/ (data.length - 1)) * plotW;\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, digits = 1) =>\n        value.toFixed(digits).replace(\".\", \",\").replace(\"-\", \"\u2212\");\n\n      const formatGap = (value) => {\n        const sign = value > 0 ? \"+\" : value < 0 ? \"\u2212\" : \"\";\n        return sign + Math.abs(value).toFixed(1).replace(\".\", \",\");\n      };\n\n      const defs = makeSvg(\"defs\");\n      const gradient = makeSvg(\"linearGradient\", {\n        id: gradientId,\n        x1: \"0\",\n        x2: \"0\",\n        y1: \"0\",\n        y2: \"1\"\n      });\n      gradient.appendChild(\n        makeSvg(\"stop\", {\n          offset: \"0%\",\n          \"stop-color\": \"#2f80ed\",\n          \"stop-opacity\": \"0.24\"\n        })\n      );\n      gradient.appendChild(\n        makeSvg(\"stop\", {\n          offset: \"100%\",\n          \"stop-color\": \"#2f80ed\",\n          \"stop-opacity\": \"0.025\"\n        })\n      );\n      defs.appendChild(gradient);\n      svg.appendChild(defs);\n\n      const gridGroup = makeSvg(\"g\", { \"aria-hidden\": \"true\" });\n      ticks.forEach((tick) => {\n        gridGroup.appendChild(\n          makeSvg(\"line\", {\n            x1: margin.left,\n            x2: W - margin.right,\n            y1: y(tick),\n            y2: y(tick),\n            class: tick === 0 ? \"tfeb-zero-line\" : \"tfeb-grid-line\"\n          })\n        );\n\n        const label = makeSvg(\"text\", {\n          x: margin.left - 11,\n          y: y(tick),\n          class: \"tfeb-y-label\"\n        });\n        label.textContent = formatValue(tick);\n        gridGroup.appendChild(label);\n      });\n\n      const unit = makeSvg(\"text\", {\n        x: 8,\n        y: 19,\n        class: \"tfeb-axis-unit\"\n      });\n      unit.textContent = \"Temp\u00e9rature (\u00b0C)\";\n      gridGroup.appendChild(unit);\n      svg.appendChild(gridGroup);\n\n      svg.appendChild(\n        makeSvg(\"line\", {\n          x1: margin.left,\n          x2: W - margin.right,\n          y1: y(NORMAL),\n          y2: y(NORMAL),\n          class: \"tfeb-normal-line\",\n          \"aria-hidden\": \"true\"\n        })\n      );\n\n      const normalLabel = makeSvg(\"text\", {\n        x: W - margin.right - 3,\n        y: y(NORMAL) - 8,\n        class: \"tfeb-normal-label\",\n        \"aria-hidden\": \"true\"\n      });\n      normalLabel.textContent = \"Normale 1991-2020 : 6,08 \u00b0C\";\n      svg.appendChild(normalLabel);\n\n      const linePath = data\n        .map(([, value], index) =>\n          `${index === 0 ? \"M\" : \"L\"} ${x(index)} ${y(value)}`\n        )\n        .join(\" \");\n\n      const areaPath =\n        linePath +\n        ` L ${x(data.length - 1)} ${y(minY)}` +\n        ` L ${x(0)} ${y(minY)} Z`;\n\n      svg.appendChild(\n        makeSvg(\"path\", {\n          d: areaPath,\n          class: \"tfeb-area\",\n          fill: `url(#${gradientId})`,\n          \"aria-hidden\": \"true\"\n        })\n      );\n\n      svg.appendChild(\n        makeSvg(\"path\", {\n          d: linePath,\n          class: \"tfeb-curve\",\n          \"aria-hidden\": \"true\"\n        })\n      );\n\n      const labelsGroup = makeSvg(\"g\", { \"aria-hidden\": \"true\" });\n      data.forEach(([year], index) => {\n        if (year % 5 !== 0) return;\n        const label = makeSvg(\"text\", {\n          x: x(index),\n          y: H - 25,\n          class: \"tfeb-x-label\"\n        });\n        label.textContent = year;\n        labelsGroup.appendChild(label);\n      });\n      svg.appendChild(labelsGroup);\n\n      const markerLine = makeSvg(\"line\", {\n        x1: x(activeIndex),\n        x2: x(activeIndex),\n        y1: margin.top,\n        y2: H - margin.bottom,\n        class: \"tfeb-marker-line\",\n        visibility: \"hidden\",\n        \"aria-hidden\": \"true\"\n      });\n      svg.appendChild(markerLine);\n\n      const marker = makeSvg(\"circle\", {\n        cx: x(activeIndex),\n        cy: y(data[activeIndex][1]),\n        r: 4.7,\n        class: \"tfeb-marker\",\n        visibility: \"hidden\",\n        \"aria-hidden\": \"true\"\n      });\n      svg.appendChild(marker);\n\n      const overlay = makeSvg(\"rect\", {\n        x: margin.left,\n        y: margin.top,\n        width: plotW,\n        height: plotH,\n        class: \"tfeb-overlay\",\n        \"aria-hidden\": \"true\"\n      });\n      svg.appendChild(overlay);\n\n      const setSelectionCard = (index) => {\n        const [year, value] = data[index];\n        selection.classList.add(\"has-value\");\n        selection.innerHTML =\n          `<strong>F\u00c3\u00a9vrier ${year}<\/strong> \u2014 temp\u00e9rature moyenne : ` +\n          `<strong>${formatValue(value)} \u00b0C<\/strong> \u2022 \u00e9cart \u00e0 la normale : ` +\n          `<strong>${formatGap(value - NORMAL)} \u00b0C<\/strong>`;\n      };\n\n      const placeTooltip = (index) => {\n        const [year, value] = data[index];\n        const svgRect = svg.getBoundingClientRect();\n        const stageRect = stage.getBoundingClientRect();\n        const pointClientX = svgRect.left + (x(index) \/ W) * svgRect.width;\n        const pointClientY = svgRect.top + (y(value) \/ H) * svgRect.height;\n        const tooltipX = Math.max(\n          120,\n          Math.min(stageRect.width - 120, pointClientX - stageRect.left)\n        );\n        const tooltipY = Math.max(86, pointClientY - stageRect.top);\n\n        tooltip.innerHTML =\n          `<strong>F\u00c3\u00a9vrier ${year}<\/strong>` +\n          `<span>Temp\u00e9rature moyenne : ${formatValue(value)} \u00b0C<\/span>` +\n          `<span>\u00c9cart \u00e0 la normale : ${formatGap(value - NORMAL)} \u00b0C<\/span>`;\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 showIndex = (index, showTooltip = true) => {\n        activeIndex = Math.max(0, Math.min(data.length - 1, index));\n        const value = data[activeIndex][1];\n        markerLine.setAttribute(\"x1\", x(activeIndex));\n        markerLine.setAttribute(\"x2\", x(activeIndex));\n        markerLine.setAttribute(\"visibility\", \"visible\");\n        marker.setAttribute(\"cx\", x(activeIndex));\n        marker.setAttribute(\"cy\", y(value));\n        marker.setAttribute(\"visibility\", \"visible\");\n        setSelectionCard(activeIndex);\n        if (showTooltip) placeTooltip(activeIndex);\n      };\n\n      const resetSelectionCard = () => {\n        selection.classList.remove(\"has-value\");\n        selection.textContent =\n          \"Survolez ou touchez la courbe pour afficher la temp\u00e9rature d\u2019une ann\u00e9e.\";\n      };\n\n      const hidePointer = (resetCard = false) => {\n        markerLine.setAttribute(\"visibility\", \"hidden\");\n        marker.setAttribute(\"visibility\", \"hidden\");\n        tooltip.classList.remove(\"is-visible\");\n        tooltip.setAttribute(\"aria-hidden\", \"true\");\n        if (resetCard) resetSelectionCard();\n      };\n\n      const indexFromPointer = (event) => {\n        const rect = svg.getBoundingClientRect();\n        const svgX = ((event.clientX - rect.left) \/ rect.width) * W;\n        const ratio = (svgX - margin.left) \/ plotW;\n        return Math.round(\n          Math.max(0, Math.min(1, ratio)) * (data.length - 1)\n        );\n      };\n\n      overlay.addEventListener(\"pointerenter\", (event) => {\n        if (event.pointerType === \"mouse\" || !pinned) {\n          showIndex(indexFromPointer(event));\n        }\n      });\n\n      overlay.addEventListener(\"pointermove\", (event) => {\n        if (event.pointerType === \"mouse\" || !pinned) {\n          showIndex(indexFromPointer(event));\n        }\n      });\n\n      overlay.addEventListener(\"pointerleave\", (event) => {\n        if (event.pointerType === \"mouse\") {\n          pinned = false;\n          hidePointer(true);\n        } else if (!pinned) {\n          hidePointer(true);\n        }\n      });\n\n      overlay.addEventListener(\"pointerdown\", (event) => {\n        if (event.pointerType === \"mouse\") return;\n        pinned = true;\n        showIndex(indexFromPointer(event));\n      });\n\n      svg.addEventListener(\"keydown\", (event) => {\n        if (event.key !== \"ArrowLeft\" && event.key !== \"ArrowRight\" &&\n            event.key !== \"Home\" && event.key !== \"End\" &&\n            event.key !== \"Enter\" && event.key !== \" \" &&\n            event.key !== \"Escape\") return;\n\n        event.preventDefault();\n\n        if (event.key === \"ArrowLeft\") {\n          pinned = true;\n          showIndex(activeIndex - 1);\n        } else if (event.key === \"ArrowRight\") {\n          pinned = true;\n          showIndex(activeIndex + 1);\n        } else if (event.key === \"Home\") {\n          pinned = true;\n          showIndex(0);\n        } else if (event.key === \"End\") {\n          pinned = true;\n          showIndex(data.length - 1);\n        } else if (event.key === \"Enter\" || event.key === \" \") {\n          pinned = true;\n          showIndex(activeIndex);\n        } else if (event.key === \"Escape\") {\n          pinned = false;\n          hidePointer(true);\n        }\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        pinned = false;\n        hidePointer(true);\n      });\n\n      window.addEventListener(\"resize\", () => {\n        if (tooltip.classList.contains(\"is-visible\")) {\n          placeTooltip(activeIndex);\n        }\n      });\n    });\n  })();\n<\/script><!--\n  Graphique interactif WordPress\n  \u00c0 coller dans un bloc \u00ab HTML personnalis\u00e9 \u00bb.\n  Aucune biblioth\u00e8que externe n'est n\u00e9cessaire.\n-->\n<div class=\"tmar-widget\" data-tmar-chart>\n  <div class=\"tmar-header\">\n    <h2>Temp\u00e9rature moyenne observ\u00e9e en mars depuis 1921 (France)<\/h2>\n    <p>Indicateur thermique national \u2022 Valeurs en degr\u00e9s Celsius<\/p>\n  <\/div>\n\n  <div\n    class=\"tmar-reference\"\n    role=\"note\"\n    aria-label=\"Normale 1991-2020 : 9,09 degr\u00e9s Celsius\"\n  >\n    <span>Normale 1991-2020<\/span>\n    <strong>9,09\u00a0\u00b0C<\/strong>\n  <\/div>\n\n  <div class=\"tmar-toggle-row\">\n    <button\n      class=\"tmar-toggle\"\n      data-tmar-toggle\n      type=\"button\"\n      role=\"switch\"\n      aria-checked=\"false\"\n    >\n      <span class=\"tmar-toggle-track\" aria-hidden=\"true\">\n        <span class=\"tmar-toggle-dot\"><\/span>\n      <\/span>\n      <span data-tmar-toggle-label>Afficher le diagramme<\/span>\n    <\/button>\n  <\/div>\n\n  <div class=\"tmar-content\" data-tmar-content hidden>\n    <div class=\"tmar-selection\" data-tmar-selection aria-live=\"polite\">\n      Survolez ou touchez la courbe pour afficher la temp\u00e9rature d\u2019une ann\u00e9e.\n    <\/div>\n\n    <div class=\"tmar-scroll\" aria-label=\"Graphique d\u00e9filable horizontalement sur mobile\">\n      <div class=\"tmar-stage\">\n        <svg\n          class=\"tmar-svg\"\n          data-tmar-svg\n          viewBox=\"0 0 1240 520\"\n          role=\"img\"\n          tabindex=\"0\"\n          aria-labelledby=\"tmar-title tmar-desc\"\n          preserveAspectRatio=\"xMidYMid meet\"\n        >\n          <title id=\"tmar-title\">\n            Temp\u00e9rature moyenne observ\u00e9e en mars en France, de 1921 \u00e0 2026\n          <\/title>\n          <desc id=\"tmar-desc\">\n            Courbe bleue interactive de la temp\u00e9rature moyenne nationale observ\u00e9e\n            en mars. La ligne pointill\u00e9e repr\u00e9sente la normale 1991-2020 de 9,09 \u00b0C.\n            Les fl\u00e8ches gauche et droite permettent de parcourir les ann\u00e9es.\n          <\/desc>\n        <\/svg>\n        <div class=\"tmar-tooltip\" data-tmar-tooltip role=\"status\" aria-hidden=\"true\"><\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"tmar-legend\" aria-label=\"L\u00e9gende\">\n      <span><i class=\"tmar-line-key\"><\/i> Temp\u00e9rature moyenne observ\u00e9e<\/span>\n      <span><i class=\"tmar-normal-key\"><\/i> Normale 1991-2020 : 9,09\u00a0\u00b0C<\/span>\n    <\/div>\n\n    <p class=\"tmar-note\">\n      Les valeurs 2024, 2025 et 2026 ont \u00e9t\u00e9 ajout\u00e9es \u00e0 partir des bilans climatiques\n      mensuels officiels.\n    <\/p>\n\n    <p class=\"tmar-source\">\n      Source : M\u00e9t\u00e9o-France \u2022 Indicateur thermique national\n    <\/p>\n  <\/div>\n<\/div>\n\n<style>\n  .tmar-widget,\n  .tmar-widget * {\n    box-sizing: border-box;\n  }\n\n  .tmar-widget {\n    --tmar-blue: #2f80ed;\n    --tmar-blue-dark: #145eb8;\n    --tmar-blue-soft: #eaf4ff;\n    --tmar-grid: #dfe6ee;\n    --tmar-ink: #17202a;\n    --tmar-muted: #5d6874;\n    width: 100%;\n    max-width: 1280px;\n    margin: 24px auto;\n    padding: clamp(18px, 3vw, 32px);\n    overflow: hidden;\n    color: var(--tmar-ink);\n    background: #ffffff;\n    border: 1px solid #e7ecf2;\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  .tmar-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  .tmar-header p {\n    margin: 8px 0 0;\n    color: var(--tmar-muted);\n    font-size: 15px;\n  }\n\n  .tmar-reference {\n    display: inline-flex;\n    align-items: center;\n    gap: 10px;\n    margin-top: 18px;\n    padding: 10px 14px;\n    color: #184d82;\n    background: var(--tmar-blue-soft);\n    border: 1px solid #bfdcff;\n    border-radius: 11px;\n    font-size: 14px;\n  }\n\n  .tmar-reference span {\n    font-weight: 700;\n  }\n\n  .tmar-reference strong {\n    font-size: 17px;\n    color: #0f559f;\n  }\n\n  .tmar-toggle-row {\n    margin-top: 16px;\n  }\n\n  .tmar-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  .tmar-toggle:hover {\n    color: #17202a;\n    background: #eef2f6;\n    border-color: #cbd3dc;\n  }\n\n  .tmar-toggle:focus-visible,\n  .tmar-svg:focus-visible {\n    outline: 3px solid rgba(47, 128, 237, 0.28);\n    outline-offset: 3px;\n  }\n\n  .tmar-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  .tmar-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  .tmar-toggle.is-active {\n    color: #174f8d;\n    background: #eff6ff;\n    border-color: #b9d4f2;\n  }\n\n  .tmar-toggle.is-active .tmar-toggle-track {\n    background: var(--tmar-blue-dark);\n  }\n\n  .tmar-toggle.is-active .tmar-toggle-dot {\n    transform: translateX(16px);\n  }\n\n  .tmar-content[hidden] {\n    display: none;\n  }\n\n  .tmar-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  .tmar-selection strong {\n    color: #0f559f;\n  }\n\n  .tmar-selection.has-value {\n    color: #24415f;\n    background: #eef7ff;\n    border-left-color: var(--tmar-blue);\n  }\n\n  .tmar-scroll {\n    width: 100%;\n    overflow-x: auto;\n    overflow-y: hidden;\n    padding-top: 6px;\n    scrollbar-color: #aeb7c2 #edf0f3;\n    scrollbar-width: thin;\n    -webkit-overflow-scrolling: touch;\n  }\n\n  .tmar-stage {\n    position: relative;\n    width: 100%;\n    min-width: 940px;\n  }\n\n  .tmar-svg {\n    display: block;\n    width: 100%;\n    height: auto;\n    overflow: visible;\n    cursor: crosshair;\n    touch-action: pan-x pan-y;\n  }\n\n  .tmar-grid-line {\n    stroke: var(--tmar-grid);\n    stroke-width: 1;\n    vector-effect: non-scaling-stroke;\n  }\n\n  .tmar-zero-line {\n    stroke: #aeb8c3;\n    stroke-width: 1.5;\n    vector-effect: non-scaling-stroke;\n  }\n\n  .tmar-normal-line {\n    stroke: #536273;\n    stroke-width: 1.7;\n    stroke-dasharray: 7 6;\n    vector-effect: non-scaling-stroke;\n  }\n\n  .tmar-normal-label {\n    fill: #4e5b68;\n    font-size: 12px;\n    font-weight: 700;\n    text-anchor: end;\n  }\n\n  .tmar-y-label,\n  .tmar-x-label,\n  .tmar-axis-unit {\n    fill: #687582;\n    font-family: Arial, Helvetica, sans-serif;\n  }\n\n  .tmar-y-label {\n    font-size: 13px;\n    text-anchor: end;\n    dominant-baseline: middle;\n  }\n\n  .tmar-x-label {\n    font-size: 11px;\n    text-anchor: middle;\n  }\n\n  .tmar-axis-unit {\n    font-size: 12px;\n    font-weight: 700;\n  }\n\n  .tmar-area {\n    pointer-events: none;\n  }\n\n  .tmar-curve {\n    fill: none;\n    stroke: var(--tmar-blue);\n    stroke-width: 2.1;\n    stroke-linecap: round;\n    stroke-linejoin: round;\n    vector-effect: non-scaling-stroke;\n    pointer-events: none;\n  }\n\n  .tmar-marker-line {\n    stroke: rgba(20, 94, 184, 0.42);\n    stroke-width: 1;\n    stroke-dasharray: 4 4;\n    vector-effect: non-scaling-stroke;\n    pointer-events: none;\n  }\n\n  .tmar-marker {\n    fill: #ffffff;\n    stroke: var(--tmar-blue-dark);\n    stroke-width: 2.2;\n    vector-effect: non-scaling-stroke;\n    filter: drop-shadow(0 2px 4px rgba(20, 94, 184, 0.28));\n    pointer-events: none;\n  }\n\n  .tmar-overlay {\n    fill: transparent;\n    pointer-events: all;\n  }\n\n  .tmar-tooltip {\n    position: absolute;\n    z-index: 4;\n    width: max-content;\n    max-width: 235px;\n    padding: 10px 12px;\n    color: #ffffff;\n    background: rgba(18, 34, 51, 0.97);\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  .tmar-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, 34, 51, 0.97);\n    transform: translateX(-50%);\n  }\n\n  .tmar-tooltip.is-visible {\n    opacity: 1;\n  }\n\n  .tmar-tooltip strong,\n  .tmar-tooltip span {\n    display: block;\n  }\n\n  .tmar-tooltip strong {\n    margin-bottom: 2px;\n    font-size: 14px;\n  }\n\n  .tmar-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  .tmar-legend span {\n    display: inline-flex;\n    align-items: center;\n    gap: 8px;\n  }\n\n  .tmar-line-key,\n  .tmar-normal-key {\n    display: inline-block;\n    width: 30px;\n    height: 0;\n  }\n\n  .tmar-line-key {\n    border-top: 2px solid var(--tmar-blue);\n    border-radius: 999px;\n  }\n\n  .tmar-normal-key {\n    border-top: 2px dashed #536273;\n  }\n\n  .tmar-note {\n    margin: 16px 0 0;\n    padding: 11px 13px;\n    color: #52606d;\n    background: #f6f8fa;\n    border-radius: 9px;\n    font-size: 12px;\n    line-height: 1.5;\n  }\n\n  .tmar-source {\n    margin: 13px 0 0;\n    color: #737d87;\n    font-size: 12px;\n  }\n\n  @media (max-width: 720px) {\n    .tmar-widget {\n      margin: 14px auto;\n      padding: 17px 14px 19px;\n      border-radius: 13px;\n    }\n\n    .tmar-reference {\n      width: 100%;\n      justify-content: space-between;\n    }\n\n    .tmar-selection {\n      margin-top: 15px;\n    }\n\n    .tmar-scroll {\n      padding-bottom: 7px;\n    }\n\n    .tmar-stage {\n      min-width: 900px;\n    }\n\n    .tmar-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    .tmar-toggle,\n    .tmar-toggle-track,\n    .tmar-toggle-dot,\n    .tmar-tooltip {\n      transition: none;\n    }\n  }\n<\/style>\n\n<script>\n  (() => {\n    const widgets = document.querySelectorAll(\"[data-tmar-chart]\");\n    const NORMAL = 9.09;\n\n    widgets.forEach((widget, widgetIndex) => {\n      if (widget.dataset.tmarReady === \"true\") return;\n      widget.dataset.tmarReady = \"true\";\n\n      const data = [\n        [1921, 8.3], [1922, 7.7], [1923, 8.7], [1924, 7.9], [1925, 4.7],\n        [1926, 8.3], [1927, 8.8], [1928, 8.3], [1929, 8.0], [1930, 8.3],\n        [1931, 7.4], [1932, 7.0], [1933, 9.1], [1934, 7.3], [1935, 7.2],\n        [1936, 9.1], [1937, 6.8], [1938, 10.1], [1939, 6.2], [1940, 8.3],\n        [1941, 8.4], [1942, 9.5], [1943, 9.3], [1944, 5.6], [1945, 9.0],\n        [1946, 7.7], [1947, 8.9], [1948, 10.7], [1949, 6.7], [1950, 8.5],\n        [1951, 6.9], [1952, 9.5], [1953, 8.4], [1954, 8.7], [1955, 5.7],\n        [1956, 7.9], [1957, 11.0], [1958, 6.1], [1959, 9.8], [1960, 9.3],\n        [1961, 9.2], [1962, 5.1], [1963, 7.8], [1964, 6.9], [1965, 7.9],\n        [1966, 7.2], [1967, 8.9], [1968, 7.9], [1969, 7.8], [1970, 5.6],\n        [1971, 4.6], [1972, 9.1], [1973, 6.8], [1974, 8.5], [1975, 6.5],\n        [1976, 7.1], [1977, 9.6], [1978, 8.5], [1979, 8.1], [1980, 7.3],\n        [1981, 10.6], [1982, 7.5], [1983, 8.2], [1984, 6.3], [1985, 6.4],\n        [1986, 7.3], [1987, 6.2], [1988, 7.8], [1989, 10.5], [1990, 9.8],\n        [1991, 10.5], [1992, 8.8], [1993, 8.1], [1994, 10.7], [1995, 7.7],\n        [1996, 7.4], [1997, 10.7], [1998, 9.3], [1999, 9.4], [2000, 8.8],\n        [2001, 10.6], [2002, 9.9], [2003, 10.4], [2004, 7.7], [2005, 8.3],\n        [2006, 8.0], [2007, 8.8], [2008, 8.2], [2009, 8.5], [2010, 8.0],\n        [2011, 9.5], [2012, 10.6], [2013, 7.2], [2014, 9.8], [2015, 9.1],\n        [2016, 8.0], [2017, 11.0], [2018, 8.2], [2019, 10.1], [2020, 9.4],\n        [2021, 8.9], [2022, 9.9], [2023, 10.2], [2024, 10.6], [2025, 9.7],\n        [2026, 10.0]\n      ];\n\n      const svg = widget.querySelector(\"[data-tmar-svg]\");\n      const tooltip = widget.querySelector(\"[data-tmar-tooltip]\");\n      const selection = widget.querySelector(\"[data-tmar-selection]\");\n      const stage = widget.querySelector(\".tmar-stage\");\n      const toggle = widget.querySelector(\"[data-tmar-toggle]\");\n      const toggleLabel = widget.querySelector(\"[data-tmar-toggle-label]\");\n      const content = widget.querySelector(\"[data-tmar-content]\");\n      const ns = \"http:\/\/www.w3.org\/2000\/svg\";\n\n      const contentId = `tmar-chart-content-${widgetIndex + 1}`;\n      const gradientId = `tmar-area-gradient-${widgetIndex + 1}`;\n      content.id = contentId;\n      toggle.setAttribute(\"aria-controls\", contentId);\n\n      const W = 1240;\n      const H = 520;\n      const margin = { top: 31, right: 22, bottom: 62, left: 62 };\n      const plotW = W - margin.left - margin.right;\n      const plotH = H - margin.top - margin.bottom;\n      const minY = 4;\n      const maxY = 12;\n      const ticks = [4, 5, 6, 7, 8, 9, 10, 11, 12];\n      let activeIndex = data.length - 1;\n      let pinned = false;\n\n      const x = (index) =>\n        margin.left + (index \/ (data.length - 1)) * plotW;\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, digits = 1) =>\n        value.toFixed(digits).replace(\".\", \",\").replace(\"-\", \"\u2212\");\n\n      const formatGap = (value) => {\n        const sign = value > 0 ? \"+\" : value < 0 ? \"\u2212\" : \"\";\n        return sign + Math.abs(value).toFixed(1).replace(\".\", \",\");\n      };\n\n      const defs = makeSvg(\"defs\");\n      const gradient = makeSvg(\"linearGradient\", {\n        id: gradientId,\n        x1: \"0\",\n        x2: \"0\",\n        y1: \"0\",\n        y2: \"1\"\n      });\n      gradient.appendChild(\n        makeSvg(\"stop\", {\n          offset: \"0%\",\n          \"stop-color\": \"#2f80ed\",\n          \"stop-opacity\": \"0.24\"\n        })\n      );\n      gradient.appendChild(\n        makeSvg(\"stop\", {\n          offset: \"100%\",\n          \"stop-color\": \"#2f80ed\",\n          \"stop-opacity\": \"0.025\"\n        })\n      );\n      defs.appendChild(gradient);\n      svg.appendChild(defs);\n\n      const gridGroup = makeSvg(\"g\", { \"aria-hidden\": \"true\" });\n      ticks.forEach((tick) => {\n        gridGroup.appendChild(\n          makeSvg(\"line\", {\n            x1: margin.left,\n            x2: W - margin.right,\n            y1: y(tick),\n            y2: y(tick),\n            class: tick === 0 ? \"tmar-zero-line\" : \"tmar-grid-line\"\n          })\n        );\n\n        const label = makeSvg(\"text\", {\n          x: margin.left - 11,\n          y: y(tick),\n          class: \"tmar-y-label\"\n        });\n        label.textContent = formatValue(tick);\n        gridGroup.appendChild(label);\n      });\n\n      const unit = makeSvg(\"text\", {\n        x: 8,\n        y: 19,\n        class: \"tmar-axis-unit\"\n      });\n      unit.textContent = \"Temp\u00e9rature (\u00b0C)\";\n      gridGroup.appendChild(unit);\n      svg.appendChild(gridGroup);\n\n      svg.appendChild(\n        makeSvg(\"line\", {\n          x1: margin.left,\n          x2: W - margin.right,\n          y1: y(NORMAL),\n          y2: y(NORMAL),\n          class: \"tmar-normal-line\",\n          \"aria-hidden\": \"true\"\n        })\n      );\n\n      const normalLabel = makeSvg(\"text\", {\n        x: W - margin.right - 3,\n        y: y(NORMAL) - 8,\n        class: \"tmar-normal-label\",\n        \"aria-hidden\": \"true\"\n      });\n      normalLabel.textContent = \"Normale 1991-2020 : 9,09 \u00b0C\";\n      svg.appendChild(normalLabel);\n\n      const linePath = data\n        .map(([, value], index) =>\n          `${index === 0 ? \"M\" : \"L\"} ${x(index)} ${y(value)}`\n        )\n        .join(\" \");\n\n      const areaPath =\n        linePath +\n        ` L ${x(data.length - 1)} ${y(minY)}` +\n        ` L ${x(0)} ${y(minY)} Z`;\n\n      svg.appendChild(\n        makeSvg(\"path\", {\n          d: areaPath,\n          class: \"tmar-area\",\n          fill: `url(#${gradientId})`,\n          \"aria-hidden\": \"true\"\n        })\n      );\n\n      svg.appendChild(\n        makeSvg(\"path\", {\n          d: linePath,\n          class: \"tmar-curve\",\n          \"aria-hidden\": \"true\"\n        })\n      );\n\n      const labelsGroup = makeSvg(\"g\", { \"aria-hidden\": \"true\" });\n      data.forEach(([year], index) => {\n        if (year % 5 !== 0) return;\n        const label = makeSvg(\"text\", {\n          x: x(index),\n          y: H - 25,\n          class: \"tmar-x-label\"\n        });\n        label.textContent = year;\n        labelsGroup.appendChild(label);\n      });\n      svg.appendChild(labelsGroup);\n\n      const markerLine = makeSvg(\"line\", {\n        x1: x(activeIndex),\n        x2: x(activeIndex),\n        y1: margin.top,\n        y2: H - margin.bottom,\n        class: \"tmar-marker-line\",\n        visibility: \"hidden\",\n        \"aria-hidden\": \"true\"\n      });\n      svg.appendChild(markerLine);\n\n      const marker = makeSvg(\"circle\", {\n        cx: x(activeIndex),\n        cy: y(data[activeIndex][1]),\n        r: 4.7,\n        class: \"tmar-marker\",\n        visibility: \"hidden\",\n        \"aria-hidden\": \"true\"\n      });\n      svg.appendChild(marker);\n\n      const overlay = makeSvg(\"rect\", {\n        x: margin.left,\n        y: margin.top,\n        width: plotW,\n        height: plotH,\n        class: \"tmar-overlay\",\n        \"aria-hidden\": \"true\"\n      });\n      svg.appendChild(overlay);\n\n      const setSelectionCard = (index) => {\n        const [year, value] = data[index];\n        selection.classList.add(\"has-value\");\n        selection.innerHTML =\n          `<strong>F\u00c3\u00a9vrier ${year}<\/strong> \u2014 temp\u00e9rature moyenne : ` +\n          `<strong>${formatValue(value)} \u00b0C<\/strong> \u2022 \u00e9cart \u00e0 la normale : ` +\n          `<strong>${formatGap(value - NORMAL)} \u00b0C<\/strong>`;\n      };\n\n      const placeTooltip = (index) => {\n        const [year, value] = data[index];\n        const svgRect = svg.getBoundingClientRect();\n        const stageRect = stage.getBoundingClientRect();\n        const pointClientX = svgRect.left + (x(index) \/ W) * svgRect.width;\n        const pointClientY = svgRect.top + (y(value) \/ H) * svgRect.height;\n        const tooltipX = Math.max(\n          120,\n          Math.min(stageRect.width - 120, pointClientX - stageRect.left)\n        );\n        const tooltipY = Math.max(86, pointClientY - stageRect.top);\n\n        tooltip.innerHTML =\n          `<strong>F\u00c3\u00a9vrier ${year}<\/strong>` +\n          `<span>Temp\u00e9rature moyenne : ${formatValue(value)} \u00b0C<\/span>` +\n          `<span>\u00c9cart \u00e0 la normale : ${formatGap(value - NORMAL)} \u00b0C<\/span>`;\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 showIndex = (index, showTooltip = true) => {\n        activeIndex = Math.max(0, Math.min(data.length - 1, index));\n        const value = data[activeIndex][1];\n        markerLine.setAttribute(\"x1\", x(activeIndex));\n        markerLine.setAttribute(\"x2\", x(activeIndex));\n        markerLine.setAttribute(\"visibility\", \"visible\");\n        marker.setAttribute(\"cx\", x(activeIndex));\n        marker.setAttribute(\"cy\", y(value));\n        marker.setAttribute(\"visibility\", \"visible\");\n        setSelectionCard(activeIndex);\n        if (showTooltip) placeTooltip(activeIndex);\n      };\n\n      const resetSelectionCard = () => {\n        selection.classList.remove(\"has-value\");\n        selection.textContent =\n          \"Survolez ou touchez la courbe pour afficher la temp\u00e9rature d\u2019une ann\u00e9e.\";\n      };\n\n      const hidePointer = (resetCard = false) => {\n        markerLine.setAttribute(\"visibility\", \"hidden\");\n        marker.setAttribute(\"visibility\", \"hidden\");\n        tooltip.classList.remove(\"is-visible\");\n        tooltip.setAttribute(\"aria-hidden\", \"true\");\n        if (resetCard) resetSelectionCard();\n      };\n\n      const indexFromPointer = (event) => {\n        const rect = svg.getBoundingClientRect();\n        const svgX = ((event.clientX - rect.left) \/ rect.width) * W;\n        const ratio = (svgX - margin.left) \/ plotW;\n        return Math.round(\n          Math.max(0, Math.min(1, ratio)) * (data.length - 1)\n        );\n      };\n\n      overlay.addEventListener(\"pointerenter\", (event) => {\n        if (event.pointerType === \"mouse\" || !pinned) {\n          showIndex(indexFromPointer(event));\n        }\n      });\n\n      overlay.addEventListener(\"pointermove\", (event) => {\n        if (event.pointerType === \"mouse\" || !pinned) {\n          showIndex(indexFromPointer(event));\n        }\n      });\n\n      overlay.addEventListener(\"pointerleave\", (event) => {\n        if (event.pointerType === \"mouse\") {\n          pinned = false;\n          hidePointer(true);\n        } else if (!pinned) {\n          hidePointer(true);\n        }\n      });\n\n      overlay.addEventListener(\"pointerdown\", (event) => {\n        if (event.pointerType === \"mouse\") return;\n        pinned = true;\n        showIndex(indexFromPointer(event));\n      });\n\n      svg.addEventListener(\"keydown\", (event) => {\n        if (event.key !== \"ArrowLeft\" && event.key !== \"ArrowRight\" &&\n            event.key !== \"Home\" && event.key !== \"End\" &&\n            event.key !== \"Enter\" && event.key !== \" \" &&\n            event.key !== \"Escape\") return;\n\n        event.preventDefault();\n\n        if (event.key === \"ArrowLeft\") {\n          pinned = true;\n          showIndex(activeIndex - 1);\n        } else if (event.key === \"ArrowRight\") {\n          pinned = true;\n          showIndex(activeIndex + 1);\n        } else if (event.key === \"Home\") {\n          pinned = true;\n          showIndex(0);\n        } else if (event.key === \"End\") {\n          pinned = true;\n          showIndex(data.length - 1);\n        } else if (event.key === \"Enter\" || event.key === \" \") {\n          pinned = true;\n          showIndex(activeIndex);\n        } else if (event.key === \"Escape\") {\n          pinned = false;\n          hidePointer(true);\n        }\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        pinned = false;\n        hidePointer(true);\n      });\n\n      window.addEventListener(\"resize\", () => {\n        if (tooltip.classList.contains(\"is-visible\")) {\n          placeTooltip(activeIndex);\n        }\n      });\n    });\n  })();\n<\/script><!--\n  Graphique interactif WordPress\n  \u00c0 coller dans un bloc \u00ab HTML personnalis\u00e9 \u00bb.\n  Aucune biblioth\u00e8que externe n'est n\u00e9cessaire.\n-->\n<div class=\"tavr-widget\" data-tavr-chart>\n  <div class=\"tavr-header\">\n    <h2>Temp\u00e9rature moyenne observ\u00e9e en avril depuis 1921 (France)<\/h2>\n    <p>Valeurs en degr\u00e9s Celsius<\/p>\n  <\/div>\n\n  <div\n    class=\"tavr-reference\"\n    role=\"note\"\n    aria-label=\"Normale 1991-2020 : 11,74 degr\u00e9s Celsius\"\n  >\n    <span>Normale 1991-2020<\/span>\n    <strong>11,74\u00a0\u00b0C<\/strong>\n  <\/div>\n\n  <div class=\"tavr-toggle-row\">\n    <button\n      class=\"tavr-toggle\"\n      data-tavr-toggle\n      type=\"button\"\n      role=\"switch\"\n      aria-checked=\"false\"\n    >\n      <span class=\"tavr-toggle-track\" aria-hidden=\"true\">\n        <span class=\"tavr-toggle-dot\"><\/span>\n      <\/span>\n      <span data-tavr-toggle-label>Afficher le diagramme<\/span>\n    <\/button>\n  <\/div>\n\n  <div class=\"tavr-content\" data-tavr-content hidden>\n    <div class=\"tavr-selection\" data-tavr-selection aria-live=\"polite\">\n      Survolez ou touchez la courbe pour afficher la temp\u00e9rature d\u2019une ann\u00e9e.\n    <\/div>\n\n    <div class=\"tavr-scroll\" aria-label=\"Graphique d\u00e9filable horizontalement sur mobile\">\n      <div class=\"tavr-stage\">\n        <svg\n          class=\"tavr-svg\"\n          data-tavr-svg\n          viewBox=\"0 0 1240 520\"\n          role=\"img\"\n          tabindex=\"0\"\n          aria-labelledby=\"tavr-title tavr-desc\"\n          preserveAspectRatio=\"xMidYMid meet\"\n        >\n          <title id=\"tavr-title\">\n            Temp\u00e9rature moyenne observ\u00e9e en avril en France, de 1921 \u00e0 2026\n          <\/title>\n          <desc id=\"tavr-desc\">\n            Courbe bleue interactive de la temp\u00e9rature moyenne nationale observ\u00e9e\n            en avril. La ligne pointill\u00e9e repr\u00e9sente la normale 1991-2020 de 11,74 \u00b0C.\n            Les fl\u00e8ches gauche et droite permettent de parcourir les ann\u00e9es.\n          <\/desc>\n        <\/svg>\n        <div class=\"tavr-tooltip\" data-tavr-tooltip role=\"status\" aria-hidden=\"true\"><\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"tavr-legend\" aria-label=\"L\u00e9gende\">\n      <span><i class=\"tavr-line-key\"><\/i> Temp\u00e9rature moyenne observ\u00e9e<\/span>\n      <span><i class=\"tavr-normal-key\"><\/i> Normale 1991-2020 : 11,74\u00a0\u00b0C<\/span>\n    <\/div>\n\n    <p class=\"tavr-note\">\n      Les valeurs 2024, 2025 et 2026 ont \u00e9t\u00e9 ajout\u00e9es \u00e0 partir des bilans climatiques\n      mensuels officiels.\n    <\/p>\n\n    <p class=\"tavr-source\">\n      Source : M\u00e9t\u00e9o-France \u2022 Indicateur thermique national\n    <\/p>\n  <\/div>\n<\/div>\n\n<style>\n  .tavr-widget,\n  .tavr-widget * {\n    box-sizing: border-box;\n  }\n\n  .tavr-widget {\n    --tavr-blue: #2f80ed;\n    --tavr-blue-dark: #145eb8;\n    --tavr-blue-soft: #eaf4ff;\n    --tavr-grid: #dfe6ee;\n    --tavr-ink: #17202a;\n    --tavr-muted: #5d6874;\n    width: 100%;\n    max-width: 1280px;\n    margin: 24px auto;\n    padding: clamp(18px, 3vw, 32px);\n    overflow: hidden;\n    color: var(--tavr-ink);\n    background: #ffffff;\n    border: 1px solid #e7ecf2;\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  .tavr-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  .tavr-header p {\n    margin: 8px 0 0;\n    color: var(--tavr-muted);\n    font-size: 15px;\n  }\n\n  .tavr-reference {\n    display: inline-flex;\n    align-items: center;\n    gap: 10px;\n    margin-top: 18px;\n    padding: 10px 14px;\n    color: #184d82;\n    background: var(--tavr-blue-soft);\n    border: 1px solid #bfdcff;\n    border-radius: 11px;\n    font-size: 14px;\n  }\n\n  .tavr-reference span {\n    font-weight: 700;\n  }\n\n  .tavr-reference strong {\n    font-size: 17px;\n    color: #0f559f;\n  }\n\n  .tavr-toggle-row {\n    margin-top: 16px;\n  }\n\n  .tavr-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  .tavr-toggle:hover {\n    color: #17202a;\n    background: #eef2f6;\n    border-color: #cbd3dc;\n  }\n\n  .tavr-toggle:focus-visible,\n  .tavr-svg:focus-visible {\n    outline: 3px solid rgba(47, 128, 237, 0.28);\n    outline-offset: 3px;\n  }\n\n  .tavr-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  .tavr-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  .tavr-toggle.is-active {\n    color: #174f8d;\n    background: #eff6ff;\n    border-color: #b9d4f2;\n  }\n\n  .tavr-toggle.is-active .tavr-toggle-track {\n    background: var(--tavr-blue-dark);\n  }\n\n  .tavr-toggle.is-active .tavr-toggle-dot {\n    transform: translateX(16px);\n  }\n\n  .tavr-content[hidden] {\n    display: none;\n  }\n\n  .tavr-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  .tavr-selection strong {\n    color: #0f559f;\n  }\n\n  .tavr-selection.has-value {\n    color: #24415f;\n    background: #eef7ff;\n    border-left-color: var(--tavr-blue);\n  }\n\n  .tavr-scroll {\n    width: 100%;\n    overflow-x: auto;\n    overflow-y: hidden;\n    padding-top: 6px;\n    scrollbar-color: #aeb7c2 #edf0f3;\n    scrollbar-width: thin;\n    -webkit-overflow-scrolling: touch;\n  }\n\n  .tavr-stage {\n    position: relative;\n    width: 100%;\n    min-width: 940px;\n  }\n\n  .tavr-svg {\n    display: block;\n    width: 100%;\n    height: auto;\n    overflow: visible;\n    cursor: crosshair;\n    touch-action: pan-x pan-y;\n  }\n\n  .tavr-grid-line {\n    stroke: var(--tavr-grid);\n    stroke-width: 1;\n    vector-effect: non-scaling-stroke;\n  }\n\n  .tavr-zero-line {\n    stroke: #aeb8c3;\n    stroke-width: 1.5;\n    vector-effect: non-scaling-stroke;\n  }\n\n  .tavr-normal-line {\n    stroke: #536273;\n    stroke-width: 1.7;\n    stroke-dasharray: 7 6;\n    vector-effect: non-scaling-stroke;\n  }\n\n  .tavr-normal-label {\n    fill: #4e5b68;\n    font-size: 12px;\n    font-weight: 700;\n    text-anchor: end;\n  }\n\n  .tavr-y-label,\n  .tavr-x-label,\n  .tavr-axis-unit {\n    fill: #687582;\n    font-family: Arial, Helvetica, sans-serif;\n  }\n\n  .tavr-y-label {\n    font-size: 13px;\n    text-anchor: end;\n    dominant-baseline: middle;\n  }\n\n  .tavr-x-label {\n    font-size: 11px;\n    text-anchor: middle;\n  }\n\n  .tavr-axis-unit {\n    font-size: 12px;\n    font-weight: 700;\n  }\n\n  .tavr-area {\n    pointer-events: none;\n  }\n\n  .tavr-curve {\n    fill: none;\n    stroke: var(--tavr-blue);\n    stroke-width: 2.1;\n    stroke-linecap: round;\n    stroke-linejoin: round;\n    vector-effect: non-scaling-stroke;\n    pointer-events: none;\n  }\n\n  .tavr-marker-line {\n    stroke: rgba(20, 94, 184, 0.42);\n    stroke-width: 1;\n    stroke-dasharray: 4 4;\n    vector-effect: non-scaling-stroke;\n    pointer-events: none;\n  }\n\n  .tavr-marker {\n    fill: #ffffff;\n    stroke: var(--tavr-blue-dark);\n    stroke-width: 2.2;\n    vector-effect: non-scaling-stroke;\n    filter: drop-shadow(0 2px 4px rgba(20, 94, 184, 0.28));\n    pointer-events: none;\n  }\n\n  .tavr-overlay {\n    fill: transparent;\n    pointer-events: all;\n  }\n\n  .tavr-tooltip {\n    position: absolute;\n    z-index: 4;\n    width: max-content;\n    max-width: 235px;\n    padding: 10px 12px;\n    color: #ffffff;\n    background: rgba(18, 34, 51, 0.97);\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  .tavr-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, 34, 51, 0.97);\n    transform: translateX(-50%);\n  }\n\n  .tavr-tooltip.is-visible {\n    opacity: 1;\n  }\n\n  .tavr-tooltip strong,\n  .tavr-tooltip span {\n    display: block;\n  }\n\n  .tavr-tooltip strong {\n    margin-bottom: 2px;\n    font-size: 14px;\n  }\n\n  .tavr-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  .tavr-legend span {\n    display: inline-flex;\n    align-items: center;\n    gap: 8px;\n  }\n\n  .tavr-line-key,\n  .tavr-normal-key {\n    display: inline-block;\n    width: 30px;\n    height: 0;\n  }\n\n  .tavr-line-key {\n    border-top: 2px solid var(--tavr-blue);\n    border-radius: 999px;\n  }\n\n  .tavr-normal-key {\n    border-top: 2px dashed #536273;\n  }\n\n  .tavr-note {\n    margin: 16px 0 0;\n    padding: 11px 13px;\n    color: #52606d;\n    background: #f6f8fa;\n    border-radius: 9px;\n    font-size: 12px;\n    line-height: 1.5;\n  }\n\n  .tavr-source {\n    margin: 13px 0 0;\n    color: #737d87;\n    font-size: 12px;\n  }\n\n  @media (max-width: 720px) {\n    .tavr-widget {\n      margin: 14px auto;\n      padding: 17px 14px 19px;\n      border-radius: 13px;\n    }\n\n    .tavr-reference {\n      width: 100%;\n      justify-content: space-between;\n    }\n\n    .tavr-selection {\n      margin-top: 15px;\n    }\n\n    .tavr-scroll {\n      padding-bottom: 7px;\n    }\n\n    .tavr-stage {\n      min-width: 900px;\n    }\n\n    .tavr-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    .tavr-toggle,\n    .tavr-toggle-track,\n    .tavr-toggle-dot,\n    .tavr-tooltip {\n      transition: none;\n    }\n  }\n<\/style>\n\n<script>\n  (() => {\n    const widgets = document.querySelectorAll(\"[data-tavr-chart]\");\n    const NORMAL = 11.74;\n\n    widgets.forEach((widget, widgetIndex) => {\n      if (widget.dataset.tavrReady === \"true\") return;\n      widget.dataset.tavrReady = \"true\";\n\n      const data = [\n        [1921, 10.0], [1922, 9.1], [1923, 10.6], [1924, 10.5], [1925, 10.2],\n        [1926, 11.4], [1927, 11.1], [1928, 10.5], [1929, 9.0], [1930, 10.9],\n        [1931, 10.1], [1932, 9.1], [1933, 11.4], [1934, 11.7], [1935, 10.3],\n        [1936, 9.5], [1937, 11.0], [1938, 8.9], [1939, 11.3], [1940, 10.7],\n        [1941, 9.0], [1942, 12.0], [1943, 12.7], [1944, 12.2], [1945, 13.3],\n        [1946, 12.3], [1947, 12.4], [1948, 11.5], [1949, 13.0], [1950, 9.5],\n        [1951, 10.2], [1952, 12.2], [1953, 11.3], [1954, 9.5], [1955, 11.2],\n        [1956, 9.2], [1957, 10.6], [1958, 8.9], [1959, 11.2], [1960, 10.7],\n        [1961, 13.1], [1962, 10.4], [1963, 10.9], [1964, 10.9], [1965, 10.0],\n        [1966, 12.0], [1967, 10.0], [1968, 11.1], [1969, 10.5], [1970, 9.0],\n        [1971, 11.9], [1972, 10.1], [1973, 8.8], [1974, 10.4], [1975, 10.2],\n        [1976, 10.0], [1977, 9.6], [1978, 9.0], [1979, 9.6], [1980, 9.5],\n        [1981, 11.3], [1982, 10.3], [1983, 10.3], [1984, 10.5], [1985, 11.3],\n        [1986, 8.2], [1987, 12.2], [1988, 11.6], [1989, 9.5], [1990, 10.2],\n        [1991, 9.9], [1992, 10.7], [1993, 11.7], [1994, 9.9], [1995, 11.0],\n        [1996, 11.4], [1997, 11.2], [1998, 10.6], [1999, 11.6], [2000, 11.4],\n        [2001, 10.3], [2002, 11.7], [2003, 12.2], [2004, 11.2], [2005, 11.6],\n        [2006, 11.6], [2007, 14.8], [2008, 10.8], [2009, 12.4], [2010, 12.1],\n        [2011, 14.5], [2012, 10.7], [2013, 11.1], [2014, 13.0], [2015, 12.6],\n        [2016, 11.1], [2017, 11.4], [2018, 13.8], [2019, 11.7], [2020, 14.1],\n        [2021, 10.4], [2022, 11.8], [2023, 11.8], [2024, 12.4], [2025, 13.5],\n        [2026, 14.1]\n      ];\n\n      const svg = widget.querySelector(\"[data-tavr-svg]\");\n      const tooltip = widget.querySelector(\"[data-tavr-tooltip]\");\n      const selection = widget.querySelector(\"[data-tavr-selection]\");\n      const stage = widget.querySelector(\".tavr-stage\");\n      const toggle = widget.querySelector(\"[data-tavr-toggle]\");\n      const toggleLabel = widget.querySelector(\"[data-tavr-toggle-label]\");\n      const content = widget.querySelector(\"[data-tavr-content]\");\n      const ns = \"http:\/\/www.w3.org\/2000\/svg\";\n\n      const contentId = `tavr-chart-content-${widgetIndex + 1}`;\n      const gradientId = `tavr-area-gradient-${widgetIndex + 1}`;\n      content.id = contentId;\n      toggle.setAttribute(\"aria-controls\", contentId);\n\n      const W = 1240;\n      const H = 520;\n      const margin = { top: 31, right: 22, bottom: 62, left: 62 };\n      const plotW = W - margin.left - margin.right;\n      const plotH = H - margin.top - margin.bottom;\n      const minY = 8;\n      const maxY = 15;\n      const ticks = [8, 9, 10, 11, 12, 13, 14, 15];\n      let activeIndex = data.length - 1;\n      let pinned = false;\n\n      const x = (index) =>\n        margin.left + (index \/ (data.length - 1)) * plotW;\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, digits = 1) =>\n        value.toFixed(digits).replace(\".\", \",\").replace(\"-\", \"\u2212\");\n\n      const formatGap = (value) => {\n        const sign = value > 0 ? \"+\" : value < 0 ? \"\u2212\" : \"\";\n        return sign + Math.abs(value).toFixed(1).replace(\".\", \",\");\n      };\n\n      const defs = makeSvg(\"defs\");\n      const gradient = makeSvg(\"linearGradient\", {\n        id: gradientId,\n        x1: \"0\",\n        x2: \"0\",\n        y1: \"0\",\n        y2: \"1\"\n      });\n      gradient.appendChild(\n        makeSvg(\"stop\", {\n          offset: \"0%\",\n          \"stop-color\": \"#2f80ed\",\n          \"stop-opacity\": \"0.24\"\n        })\n      );\n      gradient.appendChild(\n        makeSvg(\"stop\", {\n          offset: \"100%\",\n          \"stop-color\": \"#2f80ed\",\n          \"stop-opacity\": \"0.025\"\n        })\n      );\n      defs.appendChild(gradient);\n      svg.appendChild(defs);\n\n      const gridGroup = makeSvg(\"g\", { \"aria-hidden\": \"true\" });\n      ticks.forEach((tick) => {\n        gridGroup.appendChild(\n          makeSvg(\"line\", {\n            x1: margin.left,\n            x2: W - margin.right,\n            y1: y(tick),\n            y2: y(tick),\n            class: tick === 0 ? \"tavr-zero-line\" : \"tavr-grid-line\"\n          })\n        );\n\n        const label = makeSvg(\"text\", {\n          x: margin.left - 11,\n          y: y(tick),\n          class: \"tavr-y-label\"\n        });\n        label.textContent = formatValue(tick);\n        gridGroup.appendChild(label);\n      });\n\n      const unit = makeSvg(\"text\", {\n        x: 8,\n        y: 19,\n        class: \"tavr-axis-unit\"\n      });\n      unit.textContent = \"Temp\u00e9rature (\u00b0C)\";\n      gridGroup.appendChild(unit);\n      svg.appendChild(gridGroup);\n\n      svg.appendChild(\n        makeSvg(\"line\", {\n          x1: margin.left,\n          x2: W - margin.right,\n          y1: y(NORMAL),\n          y2: y(NORMAL),\n          class: \"tavr-normal-line\",\n          \"aria-hidden\": \"true\"\n        })\n      );\n\n      const normalLabel = makeSvg(\"text\", {\n        x: W - margin.right - 3,\n        y: y(NORMAL) - 8,\n        class: \"tavr-normal-label\",\n        \"aria-hidden\": \"true\"\n      });\n      normalLabel.textContent = \"Normale 1991-2020 : 9,09 \u00b0C\";\n      svg.appendChild(normalLabel);\n\n      const linePath = data\n        .map(([, value], index) =>\n          `${index === 0 ? \"M\" : \"L\"} ${x(index)} ${y(value)}`\n        )\n        .join(\" \");\n\n      const areaPath =\n        linePath +\n        ` L ${x(data.length - 1)} ${y(minY)}` +\n        ` L ${x(0)} ${y(minY)} Z`;\n\n      svg.appendChild(\n        makeSvg(\"path\", {\n          d: areaPath,\n          class: \"tavr-area\",\n          fill: `url(#${gradientId})`,\n          \"aria-hidden\": \"true\"\n        })\n      );\n\n      svg.appendChild(\n        makeSvg(\"path\", {\n          d: linePath,\n          class: \"tavr-curve\",\n          \"aria-hidden\": \"true\"\n        })\n      );\n\n      const labelsGroup = makeSvg(\"g\", { \"aria-hidden\": \"true\" });\n      data.forEach(([year], index) => {\n        if (year % 5 !== 0) return;\n        const label = makeSvg(\"text\", {\n          x: x(index),\n          y: H - 25,\n          class: \"tavr-x-label\"\n        });\n        label.textContent = year;\n        labelsGroup.appendChild(label);\n      });\n      svg.appendChild(labelsGroup);\n\n      const markerLine = makeSvg(\"line\", {\n        x1: x(activeIndex),\n        x2: x(activeIndex),\n        y1: margin.top,\n        y2: H - margin.bottom,\n        class: \"tavr-marker-line\",\n        visibility: \"hidden\",\n        \"aria-hidden\": \"true\"\n      });\n      svg.appendChild(markerLine);\n\n      const marker = makeSvg(\"circle\", {\n        cx: x(activeIndex),\n        cy: y(data[activeIndex][1]),\n        r: 4.7,\n        class: \"tavr-marker\",\n        visibility: \"hidden\",\n        \"aria-hidden\": \"true\"\n      });\n      svg.appendChild(marker);\n\n      const overlay = makeSvg(\"rect\", {\n        x: margin.left,\n        y: margin.top,\n        width: plotW,\n        height: plotH,\n        class: \"tavr-overlay\",\n        \"aria-hidden\": \"true\"\n      });\n      svg.appendChild(overlay);\n\n      const setSelectionCard = (index) => {\n        const [year, value] = data[index];\n        selection.classList.add(\"has-value\");\n        selection.innerHTML =\n          `<strong>Avril ${year}<\/strong> \u2014 temp\u00e9rature moyenne : ` +\n          `<strong>${formatValue(value)} \u00b0C<\/strong> \u2022 \u00e9cart \u00e0 la normale : ` +\n          `<strong>${formatGap(value - NORMAL)} \u00b0C<\/strong>`;\n      };\n\n      const placeTooltip = (index) => {\n        const [year, value] = data[index];\n        const svgRect = svg.getBoundingClientRect();\n        const stageRect = stage.getBoundingClientRect();\n        const pointClientX = svgRect.left + (x(index) \/ W) * svgRect.width;\n        const pointClientY = svgRect.top + (y(value) \/ H) * svgRect.height;\n        const tooltipX = Math.max(\n          120,\n          Math.min(stageRect.width - 120, pointClientX - stageRect.left)\n        );\n        const tooltipY = Math.max(86, pointClientY - stageRect.top);\n\n        tooltip.innerHTML =\n          `<strong>Avril ${year}<\/strong>` +\n          `<span>Temp\u00e9rature moyenne : ${formatValue(value)} \u00b0C<\/span>` +\n          `<span>\u00c9cart \u00e0 la normale : ${formatGap(value - NORMAL)} \u00b0C<\/span>`;\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 showIndex = (index, showTooltip = true) => {\n        activeIndex = Math.max(0, Math.min(data.length - 1, index));\n        const value = data[activeIndex][1];\n        markerLine.setAttribute(\"x1\", x(activeIndex));\n        markerLine.setAttribute(\"x2\", x(activeIndex));\n        markerLine.setAttribute(\"visibility\", \"visible\");\n        marker.setAttribute(\"cx\", x(activeIndex));\n        marker.setAttribute(\"cy\", y(value));\n        marker.setAttribute(\"visibility\", \"visible\");\n        setSelectionCard(activeIndex);\n        if (showTooltip) placeTooltip(activeIndex);\n      };\n\n      const resetSelectionCard = () => {\n        selection.classList.remove(\"has-value\");\n        selection.textContent =\n          \"Survolez ou touchez la courbe pour afficher la temp\u00e9rature d\u2019une ann\u00e9e.\";\n      };\n\n      const hidePointer = (resetCard = false) => {\n        markerLine.setAttribute(\"visibility\", \"hidden\");\n        marker.setAttribute(\"visibility\", \"hidden\");\n        tooltip.classList.remove(\"is-visible\");\n        tooltip.setAttribute(\"aria-hidden\", \"true\");\n        if (resetCard) resetSelectionCard();\n      };\n\n      const indexFromPointer = (event) => {\n        const rect = svg.getBoundingClientRect();\n        const svgX = ((event.clientX - rect.left) \/ rect.width) * W;\n        const ratio = (svgX - margin.left) \/ plotW;\n        return Math.round(\n          Math.max(0, Math.min(1, ratio)) * (data.length - 1)\n        );\n      };\n\n      overlay.addEventListener(\"pointerenter\", (event) => {\n        if (event.pointerType === \"mouse\" || !pinned) {\n          showIndex(indexFromPointer(event));\n        }\n      });\n\n      overlay.addEventListener(\"pointermove\", (event) => {\n        if (event.pointerType === \"mouse\" || !pinned) {\n          showIndex(indexFromPointer(event));\n        }\n      });\n\n      overlay.addEventListener(\"pointerleave\", (event) => {\n        if (event.pointerType === \"mouse\") {\n          pinned = false;\n          hidePointer(true);\n        } else if (!pinned) {\n          hidePointer(true);\n        }\n      });\n\n      overlay.addEventListener(\"pointerdown\", (event) => {\n        if (event.pointerType === \"mouse\") return;\n        pinned = true;\n        showIndex(indexFromPointer(event));\n      });\n\n      svg.addEventListener(\"keydown\", (event) => {\n        if (event.key !== \"ArrowLeft\" && event.key !== \"ArrowRight\" &&\n            event.key !== \"Home\" && event.key !== \"End\" &&\n            event.key !== \"Enter\" && event.key !== \" \" &&\n            event.key !== \"Escape\") return;\n\n        event.preventDefault();\n\n        if (event.key === \"ArrowLeft\") {\n          pinned = true;\n          showIndex(activeIndex - 1);\n        } else if (event.key === \"ArrowRight\") {\n          pinned = true;\n          showIndex(activeIndex + 1);\n        } else if (event.key === \"Home\") {\n          pinned = true;\n          showIndex(0);\n        } else if (event.key === \"End\") {\n          pinned = true;\n          showIndex(data.length - 1);\n        } else if (event.key === \"Enter\" || event.key === \" \") {\n          pinned = true;\n          showIndex(activeIndex);\n        } else if (event.key === \"Escape\") {\n          pinned = false;\n          hidePointer(true);\n        }\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        pinned = false;\n        hidePointer(true);\n      });\n\n      window.addEventListener(\"resize\", () => {\n        if (tooltip.classList.contains(\"is-visible\")) {\n          placeTooltip(activeIndex);\n        }\n      });\n    });\n  })();\n<\/script><!--\n  Graphique interactif WordPress\n  \u00c0 coller dans un bloc \u00ab HTML personnalis\u00e9 \u00bb.\n  Aucune biblioth\u00e8que externe n'est n\u00e9cessaire.\n-->\n<div class=\"tmai-widget\" data-tmai-chart>\n  <div class=\"tmai-header\">\n    <h2>Temp\u00e9rature moyenne observ\u00e9e en mai depuis 1921 (France)<\/h2>\n    <p>Valeurs en degr\u00e9s Celsius<\/p>\n  <\/div>\n\n  <div\n    class=\"tmai-reference\"\n    role=\"note\"\n    aria-label=\"Normale 1991-2020 : 15,40 degr\u00e9s Celsius\"\n  >\n    <span>Normale 1991-2020<\/span>\n    <strong>15,40\u00a0\u00b0C<\/strong>\n  <\/div>\n\n  <div class=\"tmai-toggle-row\">\n    <button\n      class=\"tmai-toggle\"\n      data-tmai-toggle\n      type=\"button\"\n      role=\"switch\"\n      aria-checked=\"false\"\n    >\n      <span class=\"tmai-toggle-track\" aria-hidden=\"true\">\n        <span class=\"tmai-toggle-dot\"><\/span>\n      <\/span>\n      <span data-tmai-toggle-label>Afficher le diagramme<\/span>\n    <\/button>\n  <\/div>\n\n  <div class=\"tmai-content\" data-tmai-content hidden>\n    <div class=\"tmai-selection\" data-tmai-selection aria-live=\"polite\">\n      Survolez ou touchez la courbe pour afficher la temp\u00e9rature d\u2019une ann\u00e9e.\n    <\/div>\n\n    <div class=\"tmai-scroll\" aria-label=\"Graphique d\u00e9filable horizontalement sur mobile\">\n      <div class=\"tmai-stage\">\n        <svg\n          class=\"tmai-svg\"\n          data-tmai-svg\n          viewBox=\"0 0 1240 520\"\n          role=\"img\"\n          tabindex=\"0\"\n          aria-labelledby=\"tmai-title tmai-desc\"\n          preserveAspectRatio=\"xMidYMid meet\"\n        >\n          <title id=\"tmai-title\">\n            Temp\u00e9rature moyenne observ\u00e9e en mai en France, de 1921 \u00e0 2026\n          <\/title>\n          <desc id=\"tmai-desc\">\n            Courbe bleue interactive de la temp\u00e9rature moyenne nationale observ\u00e9e\n            en mai. La ligne pointill\u00e9e repr\u00e9sente la normale 1991-2020 de 15,40 \u00b0C.\n            Les fl\u00e8ches gauche et droite permettent de parcourir les ann\u00e9es.\n          <\/desc>\n        <\/svg>\n        <div class=\"tmai-tooltip\" data-tmai-tooltip role=\"status\" aria-hidden=\"true\"><\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"tmai-legend\" aria-label=\"L\u00e9gende\">\n      <span><i class=\"tmai-line-key\"><\/i> Temp\u00e9rature moyenne observ\u00e9e<\/span>\n      <span><i class=\"tmai-normal-key\"><\/i> Normale 1991-2020 : 15,40\u00a0\u00b0C<\/span>\n    <\/div>\n\n    <p class=\"tmai-note\">\n      Les valeurs 2024, 2025 et 2026 ont \u00e9t\u00e9 ajout\u00e9es \u00e0 partir des bilans climatiques\n      mensuels officiels.\n    <\/p>\n\n    <p class=\"tmai-source\">\n      Source : M\u00e9t\u00e9o-France \u2022 Indicateur thermique national\n    <\/p>\n  <\/div>\n<\/div>\n\n<style>\n  .tmai-widget,\n  .tmai-widget * {\n    box-sizing: border-box;\n  }\n\n  .tmai-widget {\n    --tmai-blue: #2f80ed;\n    --tmai-blue-dark: #145eb8;\n    --tmai-blue-soft: #eaf4ff;\n    --tmai-grid: #dfe6ee;\n    --tmai-ink: #17202a;\n    --tmai-muted: #5d6874;\n    width: 100%;\n    max-width: 1280px;\n    margin: 24px auto;\n    padding: clamp(18px, 3vw, 32px);\n    overflow: hidden;\n    color: var(--tmai-ink);\n    background: #ffffff;\n    border: 1px solid #e7ecf2;\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  .tmai-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  .tmai-header p {\n    margin: 8px 0 0;\n    color: var(--tmai-muted);\n    font-size: 15px;\n  }\n\n  .tmai-reference {\n    display: inline-flex;\n    align-items: center;\n    gap: 10px;\n    margin-top: 18px;\n    padding: 10px 14px;\n    color: #184d82;\n    background: var(--tmai-blue-soft);\n    border: 1px solid #bfdcff;\n    border-radius: 11px;\n    font-size: 14px;\n  }\n\n  .tmai-reference span {\n    font-weight: 700;\n  }\n\n  .tmai-reference strong {\n    font-size: 17px;\n    color: #0f559f;\n  }\n\n  .tmai-toggle-row {\n    margin-top: 16px;\n  }\n\n  .tmai-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  .tmai-toggle:hover {\n    color: #17202a;\n    background: #eef2f6;\n    border-color: #cbd3dc;\n  }\n\n  .tmai-toggle:focus-visible,\n  .tmai-svg:focus-visible {\n    outline: 3px solid rgba(47, 128, 237, 0.28);\n    outline-offset: 3px;\n  }\n\n  .tmai-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  .tmai-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  .tmai-toggle.is-active {\n    color: #174f8d;\n    background: #eff6ff;\n    border-color: #b9d4f2;\n  }\n\n  .tmai-toggle.is-active .tmai-toggle-track {\n    background: var(--tmai-blue-dark);\n  }\n\n  .tmai-toggle.is-active .tmai-toggle-dot {\n    transform: translateX(16px);\n  }\n\n  .tmai-content[hidden] {\n    display: none;\n  }\n\n  .tmai-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  .tmai-selection strong {\n    color: #0f559f;\n  }\n\n  .tmai-selection.has-value {\n    color: #24415f;\n    background: #eef7ff;\n    border-left-color: var(--tmai-blue);\n  }\n\n  .tmai-scroll {\n    width: 100%;\n    overflow-x: auto;\n    overflow-y: hidden;\n    padding-top: 6px;\n    scrollbar-color: #aeb7c2 #edf0f3;\n    scrollbar-width: thin;\n    -webkit-overflow-scrolling: touch;\n  }\n\n  .tmai-stage {\n    position: relative;\n    width: 100%;\n    min-width: 940px;\n  }\n\n  .tmai-svg {\n    display: block;\n    width: 100%;\n    height: auto;\n    overflow: visible;\n    cursor: crosshair;\n    touch-action: pan-x pan-y;\n  }\n\n  .tmai-grid-line {\n    stroke: var(--tmai-grid);\n    stroke-width: 1;\n    vector-effect: non-scaling-stroke;\n  }\n\n  .tmai-zero-line {\n    stroke: #aeb8c3;\n    stroke-width: 1.5;\n    vector-effect: non-scaling-stroke;\n  }\n\n  .tmai-normal-line {\n    stroke: #536273;\n    stroke-width: 1.7;\n    stroke-dasharray: 7 6;\n    vector-effect: non-scaling-stroke;\n  }\n\n  .tmai-normal-label {\n    fill: #4e5b68;\n    font-size: 12px;\n    font-weight: 700;\n    text-anchor: end;\n  }\n\n  .tmai-y-label,\n  .tmai-x-label,\n  .tmai-axis-unit {\n    fill: #687582;\n    font-family: Arial, Helvetica, sans-serif;\n  }\n\n  .tmai-y-label {\n    font-size: 13px;\n    text-anchor: end;\n    dominant-baseline: middle;\n  }\n\n  .tmai-x-label {\n    font-size: 11px;\n    text-anchor: middle;\n  }\n\n  .tmai-axis-unit {\n    font-size: 12px;\n    font-weight: 700;\n  }\n\n  .tmai-area {\n    pointer-events: none;\n  }\n\n  .tmai-curve {\n    fill: none;\n    stroke: var(--tmai-blue);\n    stroke-width: 2.1;\n    stroke-linecap: round;\n    stroke-linejoin: round;\n    vector-effect: non-scaling-stroke;\n    pointer-events: none;\n  }\n\n  .tmai-marker-line {\n    stroke: rgba(20, 94, 184, 0.42);\n    stroke-width: 1;\n    stroke-dasharray: 4 4;\n    vector-effect: non-scaling-stroke;\n    pointer-events: none;\n  }\n\n  .tmai-marker {\n    fill: #ffffff;\n    stroke: var(--tmai-blue-dark);\n    stroke-width: 2.2;\n    vector-effect: non-scaling-stroke;\n    filter: drop-shadow(0 2px 4px rgba(20, 94, 184, 0.28));\n    pointer-events: none;\n  }\n\n  .tmai-overlay {\n    fill: transparent;\n    pointer-events: all;\n  }\n\n  .tmai-tooltip {\n    position: absolute;\n    z-index: 4;\n    width: max-content;\n    max-width: 235px;\n    padding: 10px 12px;\n    color: #ffffff;\n    background: rgba(18, 34, 51, 0.97);\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  .tmai-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, 34, 51, 0.97);\n    transform: translateX(-50%);\n  }\n\n  .tmai-tooltip.is-visible {\n    opacity: 1;\n  }\n\n  .tmai-tooltip strong,\n  .tmai-tooltip span {\n    display: block;\n  }\n\n  .tmai-tooltip strong {\n    margin-bottom: 2px;\n    font-size: 14px;\n  }\n\n  .tmai-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  .tmai-legend span {\n    display: inline-flex;\n    align-items: center;\n    gap: 8px;\n  }\n\n  .tmai-line-key,\n  .tmai-normal-key {\n    display: inline-block;\n    width: 30px;\n    height: 0;\n  }\n\n  .tmai-line-key {\n    border-top: 2px solid var(--tmai-blue);\n    border-radius: 999px;\n  }\n\n  .tmai-normal-key {\n    border-top: 2px dashed #536273;\n  }\n\n  .tmai-note {\n    margin: 16px 0 0;\n    padding: 11px 13px;\n    color: #52606d;\n    background: #f6f8fa;\n    border-radius: 9px;\n    font-size: 12px;\n    line-height: 1.5;\n  }\n\n  .tmai-source {\n    margin: 13px 0 0;\n    color: #737d87;\n    font-size: 12px;\n  }\n\n  @media (max-width: 720px) {\n    .tmai-widget {\n      margin: 14px auto;\n      padding: 17px 14px 19px;\n      border-radius: 13px;\n    }\n\n    .tmai-reference {\n      width: 100%;\n      justify-content: space-between;\n    }\n\n    .tmai-selection {\n      margin-top: 15px;\n    }\n\n    .tmai-scroll {\n      padding-bottom: 7px;\n    }\n\n    .tmai-stage {\n      min-width: 900px;\n    }\n\n    .tmai-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    .tmai-toggle,\n    .tmai-toggle-track,\n    .tmai-toggle-dot,\n    .tmai-tooltip {\n      transition: none;\n    }\n  }\n<\/style>\n\n<script>\n  (() => {\n    const widgets = document.querySelectorAll(\"[data-tmai-chart]\");\n    const NORMAL = 15.40;\n\n    widgets.forEach((widget, widgetIndex) => {\n      if (widget.dataset.tmaiReady === \"true\") return;\n      widget.dataset.tmaiReady = \"true\";\n\n      const data = [\n        [1921, 14.8], [1922, 16.4], [1923, 13.2], [1924, 15.6], [1925, 13.9],\n        [1926, 12.7], [1927, 15.0], [1928, 12.7], [1929, 14.2], [1930, 13.2],\n        [1931, 14.9], [1932, 13.2], [1933, 14.4], [1934, 15.0], [1935, 12.7],\n        [1936, 14.4], [1937, 15.6], [1938, 12.3], [1939, 12.3], [1940, 14.2],\n        [1941, 11.3], [1942, 14.3], [1943, 15.6], [1944, 14.1], [1945, 16.0],\n        [1946, 13.9], [1947, 15.9], [1948, 15.0], [1949, 13.0], [1950, 15.2],\n        [1951, 12.7], [1952, 15.4], [1953, 15.8], [1954, 13.5], [1955, 13.6],\n        [1956, 14.8], [1957, 12.4], [1958, 15.1], [1959, 14.8], [1960, 15.5],\n        [1961, 13.7], [1962, 12.8], [1963, 13.3], [1964, 15.6], [1965, 13.9],\n        [1966, 14.3], [1967, 13.7], [1968, 13.0], [1969, 14.4], [1970, 14.0],\n        [1971, 15.0], [1972, 13.0], [1973, 15.0], [1974, 13.5], [1975, 13.2],\n        [1976, 15.0], [1977, 13.3], [1978, 13.4], [1979, 13.6], [1980, 13.0],\n        [1981, 13.7], [1982, 14.7], [1983, 12.9], [1984, 11.6], [1985, 13.7],\n        [1986, 15.1], [1987, 12.6], [1988, 15.3], [1989, 16.7], [1990, 16.7],\n        [1991, 12.8], [1992, 16.5], [1993, 15.4], [1994, 15.1], [1995, 14.8],\n        [1996, 13.8], [1997, 15.7], [1998, 16.2], [1999, 16.8], [2000, 16.5],\n        [2001, 16.2], [2002, 14.5], [2003, 15.8], [2004, 14.3], [2005, 15.5],\n        [2006, 15.6], [2007, 16.1], [2008, 16.5], [2009, 16.4], [2010, 13.8],\n        [2011, 16.9], [2012, 15.7], [2013, 12.7], [2014, 14.7], [2015, 15.5],\n        [2016, 15.0], [2017, 16.5], [2018, 16.3], [2019, 13.9], [2020, 16.5],\n        [2021, 13.8], [2022, 17.8], [2023, 16.2], [2024, 15.5], [2025, 16.3],\n        [2026, 17.4]\n      ];\n\n      const svg = widget.querySelector(\"[data-tmai-svg]\");\n      const tooltip = widget.querySelector(\"[data-tmai-tooltip]\");\n      const selection = widget.querySelector(\"[data-tmai-selection]\");\n      const stage = widget.querySelector(\".tmai-stage\");\n      const toggle = widget.querySelector(\"[data-tmai-toggle]\");\n      const toggleLabel = widget.querySelector(\"[data-tmai-toggle-label]\");\n      const content = widget.querySelector(\"[data-tmai-content]\");\n      const ns = \"http:\/\/www.w3.org\/2000\/svg\";\n\n      const contentId = `tmai-chart-content-${widgetIndex + 1}`;\n      const gradientId = `tmai-area-gradient-${widgetIndex + 1}`;\n      content.id = contentId;\n      toggle.setAttribute(\"aria-controls\", contentId);\n\n      const W = 1240;\n      const H = 520;\n      const margin = { top: 31, right: 22, bottom: 62, left: 62 };\n      const plotW = W - margin.left - margin.right;\n      const plotH = H - margin.top - margin.bottom;\n      const minY = 11;\n      const maxY = 18;\n      const ticks = [11, 12, 13, 14, 15, 16, 17, 18];\n      let activeIndex = data.length - 1;\n      let pinned = false;\n\n      const x = (index) =>\n        margin.left + (index \/ (data.length - 1)) * plotW;\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, digits = 1) =>\n        value.toFixed(digits).replace(\".\", \",\").replace(\"-\", \"\u2212\");\n\n      const formatGap = (value) => {\n        const sign = value > 0 ? \"+\" : value < 0 ? \"\u2212\" : \"\";\n        return sign + Math.abs(value).toFixed(1).replace(\".\", \",\");\n      };\n\n      const defs = makeSvg(\"defs\");\n      const gradient = makeSvg(\"linearGradient\", {\n        id: gradientId,\n        x1: \"0\",\n        x2: \"0\",\n        y1: \"0\",\n        y2: \"1\"\n      });\n      gradient.appendChild(\n        makeSvg(\"stop\", {\n          offset: \"0%\",\n          \"stop-color\": \"#2f80ed\",\n          \"stop-opacity\": \"0.24\"\n        })\n      );\n      gradient.appendChild(\n        makeSvg(\"stop\", {\n          offset: \"100%\",\n          \"stop-color\": \"#2f80ed\",\n          \"stop-opacity\": \"0.025\"\n        })\n      );\n      defs.appendChild(gradient);\n      svg.appendChild(defs);\n\n      const gridGroup = makeSvg(\"g\", { \"aria-hidden\": \"true\" });\n      ticks.forEach((tick) => {\n        gridGroup.appendChild(\n          makeSvg(\"line\", {\n            x1: margin.left,\n            x2: W - margin.right,\n            y1: y(tick),\n            y2: y(tick),\n            class: tick === 0 ? \"tmai-zero-line\" : \"tmai-grid-line\"\n          })\n        );\n\n        const label = makeSvg(\"text\", {\n          x: margin.left - 11,\n          y: y(tick),\n          class: \"tmai-y-label\"\n        });\n        label.textContent = formatValue(tick);\n        gridGroup.appendChild(label);\n      });\n\n      const unit = makeSvg(\"text\", {\n        x: 8,\n        y: 19,\n        class: \"tmai-axis-unit\"\n      });\n      unit.textContent = \"Temp\u00e9rature (\u00b0C)\";\n      gridGroup.appendChild(unit);\n      svg.appendChild(gridGroup);\n\n      svg.appendChild(\n        makeSvg(\"line\", {\n          x1: margin.left,\n          x2: W - margin.right,\n          y1: y(NORMAL),\n          y2: y(NORMAL),\n          class: \"tmai-normal-line\",\n          \"aria-hidden\": \"true\"\n        })\n      );\n\n      const normalLabel = makeSvg(\"text\", {\n        x: W - margin.right - 3,\n        y: y(NORMAL) - 8,\n        class: \"tmai-normal-label\",\n        \"aria-hidden\": \"true\"\n      });\n      normalLabel.textContent = \"Normale 1991-2020 : 9,09 \u00b0C\";\n      svg.appendChild(normalLabel);\n\n      const linePath = data\n        .map(([, value], index) =>\n          `${index === 0 ? \"M\" : \"L\"} ${x(index)} ${y(value)}`\n        )\n        .join(\" \");\n\n      const areaPath =\n        linePath +\n        ` L ${x(data.length - 1)} ${y(minY)}` +\n        ` L ${x(0)} ${y(minY)} Z`;\n\n      svg.appendChild(\n        makeSvg(\"path\", {\n          d: areaPath,\n          class: \"tmai-area\",\n          fill: `url(#${gradientId})`,\n          \"aria-hidden\": \"true\"\n        })\n      );\n\n      svg.appendChild(\n        makeSvg(\"path\", {\n          d: linePath,\n          class: \"tmai-curve\",\n          \"aria-hidden\": \"true\"\n        })\n      );\n\n      const labelsGroup = makeSvg(\"g\", { \"aria-hidden\": \"true\" });\n      data.forEach(([year], index) => {\n        if (year % 5 !== 0) return;\n        const label = makeSvg(\"text\", {\n          x: x(index),\n          y: H - 25,\n          class: \"tmai-x-label\"\n        });\n        label.textContent = year;\n        labelsGroup.appendChild(label);\n      });\n      svg.appendChild(labelsGroup);\n\n      const markerLine = makeSvg(\"line\", {\n        x1: x(activeIndex),\n        x2: x(activeIndex),\n        y1: margin.top,\n        y2: H - margin.bottom,\n        class: \"tmai-marker-line\",\n        visibility: \"hidden\",\n        \"aria-hidden\": \"true\"\n      });\n      svg.appendChild(markerLine);\n\n      const marker = makeSvg(\"circle\", {\n        cx: x(activeIndex),\n        cy: y(data[activeIndex][1]),\n        r: 4.7,\n        class: \"tmai-marker\",\n        visibility: \"hidden\",\n        \"aria-hidden\": \"true\"\n      });\n      svg.appendChild(marker);\n\n      const overlay = makeSvg(\"rect\", {\n        x: margin.left,\n        y: margin.top,\n        width: plotW,\n        height: plotH,\n        class: \"tmai-overlay\",\n        \"aria-hidden\": \"true\"\n      });\n      svg.appendChild(overlay);\n\n      const setSelectionCard = (index) => {\n        const [year, value] = data[index];\n        selection.classList.add(\"has-value\");\n        selection.innerHTML =\n          `<strong>Mai ${year}<\/strong> \u2014 temp\u00e9rature moyenne : ` +\n          `<strong>${formatValue(value)} \u00b0C<\/strong> \u2022 \u00e9cart \u00e0 la normale : ` +\n          `<strong>${formatGap(value - NORMAL)} \u00b0C<\/strong>`;\n      };\n\n      const placeTooltip = (index) => {\n        const [year, value] = data[index];\n        const svgRect = svg.getBoundingClientRect();\n        const stageRect = stage.getBoundingClientRect();\n        const pointClientX = svgRect.left + (x(index) \/ W) * svgRect.width;\n        const pointClientY = svgRect.top + (y(value) \/ H) * svgRect.height;\n        const tooltipX = Math.max(\n          120,\n          Math.min(stageRect.width - 120, pointClientX - stageRect.left)\n        );\n        const tooltipY = Math.max(86, pointClientY - stageRect.top);\n\n        tooltip.innerHTML =\n          `<strong>Mai ${year}<\/strong>` +\n          `<span>Temp\u00e9rature moyenne : ${formatValue(value)} \u00b0C<\/span>` +\n          `<span>\u00c9cart \u00e0 la normale : ${formatGap(value - NORMAL)} \u00b0C<\/span>`;\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 showIndex = (index, showTooltip = true) => {\n        activeIndex = Math.max(0, Math.min(data.length - 1, index));\n        const value = data[activeIndex][1];\n        markerLine.setAttribute(\"x1\", x(activeIndex));\n        markerLine.setAttribute(\"x2\", x(activeIndex));\n        markerLine.setAttribute(\"visibility\", \"visible\");\n        marker.setAttribute(\"cx\", x(activeIndex));\n        marker.setAttribute(\"cy\", y(value));\n        marker.setAttribute(\"visibility\", \"visible\");\n        setSelectionCard(activeIndex);\n        if (showTooltip) placeTooltip(activeIndex);\n      };\n\n      const resetSelectionCard = () => {\n        selection.classList.remove(\"has-value\");\n        selection.textContent =\n          \"Survolez ou touchez la courbe pour afficher la temp\u00e9rature d\u2019une ann\u00e9e.\";\n      };\n\n      const hidePointer = (resetCard = false) => {\n        markerLine.setAttribute(\"visibility\", \"hidden\");\n        marker.setAttribute(\"visibility\", \"hidden\");\n        tooltip.classList.remove(\"is-visible\");\n        tooltip.setAttribute(\"aria-hidden\", \"true\");\n        if (resetCard) resetSelectionCard();\n      };\n\n      const indexFromPointer = (event) => {\n        const rect = svg.getBoundingClientRect();\n        const svgX = ((event.clientX - rect.left) \/ rect.width) * W;\n        const ratio = (svgX - margin.left) \/ plotW;\n        return Math.round(\n          Math.max(0, Math.min(1, ratio)) * (data.length - 1)\n        );\n      };\n\n      overlay.addEventListener(\"pointerenter\", (event) => {\n        if (event.pointerType === \"mouse\" || !pinned) {\n          showIndex(indexFromPointer(event));\n        }\n      });\n\n      overlay.addEventListener(\"pointermove\", (event) => {\n        if (event.pointerType === \"mouse\" || !pinned) {\n          showIndex(indexFromPointer(event));\n        }\n      });\n\n      overlay.addEventListener(\"pointerleave\", (event) => {\n        if (event.pointerType === \"mouse\") {\n          pinned = false;\n          hidePointer(true);\n        } else if (!pinned) {\n          hidePointer(true);\n        }\n      });\n\n      overlay.addEventListener(\"pointerdown\", (event) => {\n        if (event.pointerType === \"mouse\") return;\n        pinned = true;\n        showIndex(indexFromPointer(event));\n      });\n\n      svg.addEventListener(\"keydown\", (event) => {\n        if (event.key !== \"ArrowLeft\" && event.key !== \"ArrowRight\" &&\n            event.key !== \"Home\" && event.key !== \"End\" &&\n            event.key !== \"Enter\" && event.key !== \" \" &&\n            event.key !== \"Escape\") return;\n\n        event.preventDefault();\n\n        if (event.key === \"ArrowLeft\") {\n          pinned = true;\n          showIndex(activeIndex - 1);\n        } else if (event.key === \"ArrowRight\") {\n          pinned = true;\n          showIndex(activeIndex + 1);\n        } else if (event.key === \"Home\") {\n          pinned = true;\n          showIndex(0);\n        } else if (event.key === \"End\") {\n          pinned = true;\n          showIndex(data.length - 1);\n        } else if (event.key === \"Enter\" || event.key === \" \") {\n          pinned = true;\n          showIndex(activeIndex);\n        } else if (event.key === \"Escape\") {\n          pinned = false;\n          hidePointer(true);\n        }\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        pinned = false;\n        hidePointer(true);\n      });\n\n      window.addEventListener(\"resize\", () => {\n        if (tooltip.classList.contains(\"is-visible\")) {\n          placeTooltip(activeIndex);\n        }\n      });\n    });\n  })();\n<\/script><!--\n  Graphique interactif WordPress\n  \u00c0 coller dans un bloc \u00ab HTML personnalis\u00e9 \u00bb.\n  Aucune biblioth\u00e8que externe n'est n\u00e9cessaire.\n-->\n<div id=\"graphique-temperatures-juin\" class=\"tjun-widget\" data-tjun-chart>\n  <div class=\"tjun-header\">\n    <h2>Temp\u00e9rature moyenne observ\u00e9e en juin depuis 1921 (France)<\/h2>\n    <p>Valeurs en degr\u00e9s Celsius<\/p>\n  <\/div>\n\n  <div\n    class=\"tjun-reference\"\n    role=\"note\"\n    aria-label=\"Normale 1991-2020 : 18,89 degr\u00e9s Celsius\"\n  >\n    <span>Normale 1991-2020<\/span>\n    <strong>18,89\u00a0\u00b0C<\/strong>\n  <\/div>\n\n  <div class=\"tjun-toggle-row\">\n    <button\n      class=\"tjun-toggle\"\n      data-tjun-toggle\n      type=\"button\"\n      role=\"switch\"\n      aria-checked=\"false\"\n    >\n      <span class=\"tjun-toggle-track\" aria-hidden=\"true\">\n        <span class=\"tjun-toggle-dot\"><\/span>\n      <\/span>\n      <span data-tjun-toggle-label>Afficher le diagramme<\/span>\n    <\/button>\n  <\/div>\n\n  <div class=\"tjun-content\" data-tjun-content hidden>\n    <div class=\"tjun-selection\" data-tjun-selection aria-live=\"polite\">\n      Survolez ou touchez la courbe pour afficher la temp\u00e9rature d\u2019une ann\u00e9e.\n    <\/div>\n\n    <div class=\"tjun-scroll\" aria-label=\"Graphique d\u00e9filable horizontalement sur mobile\">\n      <div class=\"tjun-stage\">\n        <svg\n          class=\"tjun-svg\"\n          data-tjun-svg\n          viewBox=\"0 0 1240 520\"\n          role=\"img\"\n          aria-labelledby=\"tjun-title tjun-desc\"\n          preserveAspectRatio=\"xMidYMid meet\"\n        >\n          <title id=\"tjun-title\">\n            Temp\u00e9rature moyenne observ\u00e9e en juin en France, de 1921 \u00e0 2026\n          <\/title>\n          <desc id=\"tjun-desc\">\n            Courbe bleue interactive de la temp\u00e9rature moyenne nationale observ\u00e9e\n            en juin. La ligne pointill\u00e9e repr\u00e9sente la normale 1991-2020 de 18,89 \u00b0C.\n            Les fl\u00e8ches gauche et droite permettent de parcourir les ann\u00e9es.\n          <\/desc>\n        <\/svg>\n        <div class=\"tjun-tooltip\" data-tjun-tooltip role=\"status\" aria-hidden=\"true\"><\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"tjun-legend\" aria-label=\"L\u00e9gende\">\n      <span><i class=\"tjun-line-key\"><\/i> Temp\u00e9rature moyenne observ\u00e9e<\/span>\n      <span><i class=\"tjun-normal-key\"><\/i> Normale 1991-2020 : 18,89\u00a0\u00b0C<\/span>\n    <\/div>\n\n    <p class=\"tjun-note\">\n      Les valeurs 2024, 2025 et 2026 ont \u00e9t\u00e9 ajout\u00e9es \u00e0 partir des bilans climatiques\n      mensuels officiels.\n    <\/p>\n\n    <p class=\"tjun-source\">\n      Source : M\u00e9t\u00e9o-France \u2022 Indicateur thermique national\n    <\/p>\n  <\/div>\n<\/div>\n\n<style>\n  .tjun-widget,\n  .tjun-widget * {\n    box-sizing: border-box;\n  }\n\n  .tjun-widget {\n    --tjun-blue: #2f80ed;\n    --tjun-blue-dark: #145eb8;\n    --tjun-blue-soft: #eaf4ff;\n    --tjun-grid: #dfe6ee;\n    --tjun-ink: #17202a;\n    --tjun-muted: #5d6874;\n    width: 100%;\n    max-width: 1280px;\n    margin: 24px auto;\n    padding: clamp(18px, 3vw, 32px);\n    overflow: hidden;\n    color: var(--tjun-ink);\n    background: #ffffff;\n    border: 1px solid #e7ecf2;\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  .tjun-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  .tjun-header p {\n    margin: 8px 0 0;\n    color: var(--tjun-muted);\n    font-size: 15px;\n  }\n\n  .tjun-reference {\n    display: inline-flex;\n    align-items: center;\n    gap: 10px;\n    margin-top: 18px;\n    padding: 10px 14px;\n    color: #184d82;\n    background: var(--tjun-blue-soft);\n    border: 1px solid #bfdcff;\n    border-radius: 11px;\n    font-size: 14px;\n  }\n\n  .tjun-reference span {\n    font-weight: 700;\n  }\n\n  .tjun-reference strong {\n    font-size: 17px;\n    color: #0f559f;\n  }\n\n  .tjun-toggle-row {\n    margin-top: 16px;\n  }\n\n  .tjun-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  .tjun-toggle:hover {\n    color: #17202a;\n    background: #eef2f6;\n    border-color: #cbd3dc;\n  }\n\n  .tjun-toggle:focus-visible,\n  .tjun-svg:focus-visible {\n    outline: 3px solid rgba(47, 128, 237, 0.28);\n    outline-offset: 3px;\n  }\n\n  .tjun-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  .tjun-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  .tjun-toggle.is-active {\n    color: #174f8d;\n    background: #eff6ff;\n    border-color: #b9d4f2;\n  }\n\n  .tjun-toggle.is-active .tjun-toggle-track {\n    background: var(--tjun-blue-dark);\n  }\n\n  .tjun-toggle.is-active .tjun-toggle-dot {\n    transform: translateX(16px);\n  }\n\n  .tjun-content[hidden] {\n    display: none;\n  }\n\n  .tjun-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  .tjun-selection strong {\n    color: #0f559f;\n  }\n\n  .tjun-selection.has-value {\n    color: #24415f;\n    background: #eef7ff;\n    border-left-color: var(--tjun-blue);\n  }\n\n  .tjun-scroll {\n    width: 100%;\n    overflow-x: auto;\n    overflow-y: hidden;\n    padding-top: 6px;\n    scrollbar-color: #aeb7c2 #edf0f3;\n    scrollbar-width: thin;\n    -webkit-overflow-scrolling: touch;\n  }\n\n  .tjun-stage {\n    position: relative;\n    width: 100%;\n    min-width: 940px;\n  }\n\n  .tjun-svg {\n    display: block;\n    width: 100%;\n    height: auto;\n    overflow: visible;\n    cursor: crosshair;\n    touch-action: pan-x pan-y;\n  }\n\n  .tjun-grid-line {\n    stroke: var(--tjun-grid);\n    stroke-width: 1;\n    vector-effect: non-scaling-stroke;\n  }\n\n  .tjun-zero-line {\n    stroke: #aeb8c3;\n    stroke-width: 1.5;\n    vector-effect: non-scaling-stroke;\n  }\n\n  .tjun-normal-line {\n    stroke: #536273;\n    stroke-width: 1.7;\n    stroke-dasharray: 7 6;\n    vector-effect: non-scaling-stroke;\n  }\n\n  .tjun-normal-label {\n    fill: #4e5b68;\n    font-size: 12px;\n    font-weight: 700;\n    text-anchor: end;\n  }\n\n  .tjun-y-label,\n  .tjun-x-label,\n  .tjun-axis-unit {\n    fill: #687582;\n    font-family: Arial, Helvetica, sans-serif;\n  }\n\n  .tjun-y-label {\n    font-size: 13px;\n    text-anchor: end;\n    dominant-baseline: middle;\n  }\n\n  .tjun-x-label {\n    font-size: 11px;\n    text-anchor: middle;\n  }\n\n  .tjun-axis-unit {\n    font-size: 12px;\n    font-weight: 700;\n  }\n\n  .tjun-area {\n    pointer-events: none;\n  }\n\n  .tjun-curve {\n    fill: none;\n    stroke: var(--tjun-blue);\n    stroke-width: 2.1;\n    stroke-linecap: round;\n    stroke-linejoin: round;\n    vector-effect: non-scaling-stroke;\n    pointer-events: none;\n  }\n\n  .tjun-marker-line {\n    stroke: rgba(20, 94, 184, 0.42);\n    stroke-width: 1;\n    stroke-dasharray: 4 4;\n    vector-effect: non-scaling-stroke;\n    pointer-events: none;\n  }\n\n  .tjun-marker {\n    fill: #ffffff;\n    stroke: var(--tjun-blue-dark);\n    stroke-width: 2.2;\n    vector-effect: non-scaling-stroke;\n    filter: drop-shadow(0 2px 4px rgba(20, 94, 184, 0.28));\n    pointer-events: none;\n  }\n\n  .tjun-overlay {\n    fill: transparent;\n    pointer-events: all;\n  }\n\n  .tjun-tooltip {\n    position: absolute;\n    z-index: 4;\n    width: max-content;\n    max-width: 235px;\n    padding: 10px 12px;\n    color: #ffffff;\n    background: rgba(18, 34, 51, 0.97);\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  .tjun-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, 34, 51, 0.97);\n    transform: translateX(-50%);\n  }\n\n  .tjun-tooltip.is-visible {\n    opacity: 1;\n  }\n\n  .tjun-tooltip strong,\n  .tjun-tooltip span {\n    display: block;\n  }\n\n  .tjun-tooltip strong {\n    margin-bottom: 2px;\n    font-size: 14px;\n  }\n\n  .tjun-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  .tjun-legend span {\n    display: inline-flex;\n    align-items: center;\n    gap: 8px;\n  }\n\n  .tjun-line-key,\n  .tjun-normal-key {\n    display: inline-block;\n    width: 30px;\n    height: 0;\n  }\n\n  .tjun-line-key {\n    border-top: 2px solid var(--tjun-blue);\n    border-radius: 999px;\n  }\n\n  .tjun-normal-key {\n    border-top: 2px dashed #536273;\n  }\n\n  .tjun-note {\n    margin: 16px 0 0;\n    padding: 11px 13px;\n    color: #52606d;\n    background: #f6f8fa;\n    border-radius: 9px;\n    font-size: 12px;\n    line-height: 1.5;\n  }\n\n  .tjun-source {\n    margin: 13px 0 0;\n    color: #737d87;\n    font-size: 12px;\n  }\n\n  @media (max-width: 720px) {\n    .tjun-widget {\n      margin: 14px auto;\n      padding: 17px 14px 19px;\n      border-radius: 13px;\n    }\n\n    .tjun-reference {\n      width: 100%;\n      justify-content: space-between;\n    }\n\n    .tjun-selection {\n      margin-top: 15px;\n    }\n\n    .tjun-scroll {\n      padding-bottom: 7px;\n    }\n\n    .tjun-stage {\n      min-width: 900px;\n    }\n\n    .tjun-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    .tjun-toggle,\n    .tjun-toggle-track,\n    .tjun-toggle-dot,\n    .tjun-tooltip {\n      transition: none;\n    }\n  }\n<\/style>\n\n<script>\n  (() => {\n    const widget = document.getElementById(\"graphique-temperatures-juin\");\n    const NORMAL = 18.89;\n\n    if (!widget || widget.dataset.tjunReady === \"true\") return;\n    widget.dataset.tjunReady = \"true\";\n\n      const data = [\n        [1921, 18.0], [1922, 17.5], [1923, 14.6], [1924, 17.2], [1925, 17.9],\n        [1926, 15.5], [1927, 16.6], [1928, 17.3], [1929, 17.6], [1930, 18.8],\n        [1931, 18.8], [1932, 16.5], [1933, 16.3], [1934, 18.1], [1935, 18.7],\n        [1936, 17.2], [1937, 17.8], [1938, 18.0], [1939, 17.5], [1940, 17.6],\n        [1941, 17.8], [1942, 17.9], [1943, 17.4], [1944, 16.6], [1945, 19.0],\n        [1946, 16.2], [1947, 19.1], [1948, 17.0], [1949, 17.7], [1950, 19.9],\n        [1951, 17.1], [1952, 19.0], [1953, 16.5], [1954, 17.1], [1955, 17.6],\n        [1956, 15.4], [1957, 17.8], [1958, 16.7], [1959, 18.0], [1960, 18.6],\n        [1961, 17.8], [1962, 16.8], [1963, 17.1], [1964, 18.0], [1965, 17.3],\n        [1966, 18.1], [1967, 16.6], [1968, 17.0], [1969, 16.0], [1970, 19.0],\n        [1971, 16.1], [1972, 15.4], [1973, 18.2], [1974, 17.1], [1975, 16.9],\n        [1976, 20.5], [1977, 16.2], [1978, 16.4], [1979, 17.8], [1980, 16.2],\n        [1981, 17.1], [1982, 19.1], [1983, 18.5], [1984, 17.0], [1985, 16.6],\n        [1986, 18.2], [1987, 16.6], [1988, 17.5], [1989, 18.1], [1990, 17.4],\n        [1991, 16.4], [1992, 17.3], [1993, 18.6], [1994, 18.4], [1995, 17.3],\n        [1996, 18.9], [1997, 17.7], [1998, 18.4], [1999, 17.8], [2000, 19.2],\n        [2001, 18.2], [2002, 19.3], [2003, 22.4], [2004, 19.2], [2005, 20.4],\n        [2006, 19.7], [2007, 19.0], [2008, 18.5], [2009, 19.0], [2010, 18.7],\n        [2011, 18.5], [2012, 18.1], [2013, 17.5], [2014, 19.6], [2015, 19.8],\n        [2016, 18.7], [2017, 21.2], [2018, 20.1], [2019, 20.1], [2020, 18.6],\n        [2021, 20.3], [2022, 21.2], [2023, 21.5], [2024, 18.9], [2025, 22.2],\n        [2026, 22.8]\n      ];\n\n      const svg = widget.querySelector(\"[data-tjun-svg]\");\n      const tooltip = widget.querySelector(\"[data-tjun-tooltip]\");\n      const selection = widget.querySelector(\"[data-tjun-selection]\");\n      const stage = widget.querySelector(\".tjun-stage\");\n      const toggle = widget.querySelector(\"[data-tjun-toggle]\");\n      const toggleLabel = widget.querySelector(\"[data-tjun-toggle-label]\");\n      const content = widget.querySelector(\"[data-tjun-content]\");\n      const ns = \"http:\/\/www.w3.org\/2000\/svg\";\n\n      const contentId = \"tjun-chart-content\";\n      const gradientId = \"tjun-area-gradient\";\n      content.id = contentId;\n      toggle.setAttribute(\"aria-controls\", contentId);\n\n      const W = 1240;\n      const H = 520;\n      const margin = { top: 31, right: 22, bottom: 62, left: 62 };\n      const plotW = W - margin.left - margin.right;\n      const plotH = H - margin.top - margin.bottom;\n      const minY = 14;\n      const maxY = 23;\n      const ticks = [14, 15, 16, 17, 18, 19, 20, 21, 22, 23];\n      let activeIndex = data.length - 1;\n      let pinned = false;\n\n      const x = (index) =>\n        margin.left + (index \/ (data.length - 1)) * plotW;\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, digits = 1) =>\n        value.toFixed(digits).replace(\".\", \",\").replace(\"-\", \"\u2212\");\n\n      const formatGap = (value) => {\n        const sign = value > 0 ? \"+\" : value < 0 ? \"\u2212\" : \"\";\n        return sign + Math.abs(value).toFixed(1).replace(\".\", \",\");\n      };\n\n      const defs = makeSvg(\"defs\");\n      const gradient = makeSvg(\"linearGradient\", {\n        id: gradientId,\n        x1: \"0\",\n        x2: \"0\",\n        y1: \"0\",\n        y2: \"1\"\n      });\n      gradient.appendChild(\n        makeSvg(\"stop\", {\n          offset: \"0%\",\n          \"stop-color\": \"#2f80ed\",\n          \"stop-opacity\": \"0.24\"\n        })\n      );\n      gradient.appendChild(\n        makeSvg(\"stop\", {\n          offset: \"100%\",\n          \"stop-color\": \"#2f80ed\",\n          \"stop-opacity\": \"0.025\"\n        })\n      );\n      defs.appendChild(gradient);\n      svg.appendChild(defs);\n\n      const gridGroup = makeSvg(\"g\", { \"aria-hidden\": \"true\" });\n      ticks.forEach((tick) => {\n        gridGroup.appendChild(\n          makeSvg(\"line\", {\n            x1: margin.left,\n            x2: W - margin.right,\n            y1: y(tick),\n            y2: y(tick),\n            class: tick === 0 ? \"tjun-zero-line\" : \"tjun-grid-line\"\n          })\n        );\n\n        const label = makeSvg(\"text\", {\n          x: margin.left - 11,\n          y: y(tick),\n          class: \"tjun-y-label\"\n        });\n        label.textContent = formatValue(tick);\n        gridGroup.appendChild(label);\n      });\n\n      const unit = makeSvg(\"text\", {\n        x: 8,\n        y: 19,\n        class: \"tjun-axis-unit\"\n      });\n      unit.textContent = \"Temp\u00e9rature (\u00b0C)\";\n      gridGroup.appendChild(unit);\n      svg.appendChild(gridGroup);\n\n      svg.appendChild(\n        makeSvg(\"line\", {\n          x1: margin.left,\n          x2: W - margin.right,\n          y1: y(NORMAL),\n          y2: y(NORMAL),\n          class: \"tjun-normal-line\",\n          \"aria-hidden\": \"true\"\n        })\n      );\n\n      const normalLabel = makeSvg(\"text\", {\n        x: W - margin.right - 3,\n        y: y(NORMAL) - 8,\n        class: \"tjun-normal-label\",\n        \"aria-hidden\": \"true\"\n      });\n      normalLabel.textContent = \"Normale 1991-2020 : 9,09 \u00b0C\";\n      svg.appendChild(normalLabel);\n\n      const linePath = data\n        .map(([, value], index) =>\n          `${index === 0 ? \"M\" : \"L\"} ${x(index)} ${y(value)}`\n        )\n        .join(\" \");\n\n      const areaPath =\n        linePath +\n        ` L ${x(data.length - 1)} ${y(minY)}` +\n        ` L ${x(0)} ${y(minY)} Z`;\n\n      svg.appendChild(\n        makeSvg(\"path\", {\n          d: areaPath,\n          class: \"tjun-area\",\n          fill: `url(#${gradientId})`,\n          \"aria-hidden\": \"true\"\n        })\n      );\n\n      svg.appendChild(\n        makeSvg(\"path\", {\n          d: linePath,\n          class: \"tjun-curve\",\n          \"aria-hidden\": \"true\"\n        })\n      );\n\n      const labelsGroup = makeSvg(\"g\", { \"aria-hidden\": \"true\" });\n      data.forEach(([year], index) => {\n        if (year % 5 !== 0) return;\n        const label = makeSvg(\"text\", {\n          x: x(index),\n          y: H - 25,\n          class: \"tjun-x-label\"\n        });\n        label.textContent = year;\n        labelsGroup.appendChild(label);\n      });\n      svg.appendChild(labelsGroup);\n\n      const markerLine = makeSvg(\"line\", {\n        x1: x(activeIndex),\n        x2: x(activeIndex),\n        y1: margin.top,\n        y2: H - margin.bottom,\n        class: \"tjun-marker-line\",\n        visibility: \"hidden\",\n        \"aria-hidden\": \"true\"\n      });\n      svg.appendChild(markerLine);\n\n      const marker = makeSvg(\"circle\", {\n        cx: x(activeIndex),\n        cy: y(data[activeIndex][1]),\n        r: 4.7,\n        class: \"tjun-marker\",\n        visibility: \"hidden\",\n        \"aria-hidden\": \"true\"\n      });\n      svg.appendChild(marker);\n\n      const overlay = makeSvg(\"rect\", {\n        x: margin.left,\n        y: margin.top,\n        width: plotW,\n        height: plotH,\n        class: \"tjun-overlay\",\n        \"aria-hidden\": \"true\"\n      });\n      svg.appendChild(overlay);\n\n      const setSelectionCard = (index) => {\n        const [year, value] = data[index];\n        selection.classList.add(\"has-value\");\n        selection.innerHTML =\n          `<strong>Juin ${year}<\/strong> \u2014 temp\u00e9rature moyenne : ` +\n          `<strong>${formatValue(value)} \u00b0C<\/strong> \u2022 \u00e9cart \u00e0 la normale : ` +\n          `<strong>${formatGap(value - NORMAL)} \u00b0C<\/strong>`;\n      };\n\n      const placeTooltip = (index) => {\n        const [year, value] = data[index];\n        const svgRect = svg.getBoundingClientRect();\n        const stageRect = stage.getBoundingClientRect();\n        const pointClientX = svgRect.left + (x(index) \/ W) * svgRect.width;\n        const pointClientY = svgRect.top + (y(value) \/ H) * svgRect.height;\n        const tooltipX = Math.max(\n          120,\n          Math.min(stageRect.width - 120, pointClientX - stageRect.left)\n        );\n        const tooltipY = Math.max(86, pointClientY - stageRect.top);\n\n        tooltip.innerHTML =\n          `<strong>Juin ${year}<\/strong>` +\n          `<span>Temp\u00e9rature moyenne : ${formatValue(value)} \u00b0C<\/span>` +\n          `<span>\u00c9cart \u00e0 la normale : ${formatGap(value - NORMAL)} \u00b0C<\/span>`;\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 showIndex = (index, showTooltip = true) => {\n        activeIndex = Math.max(0, Math.min(data.length - 1, index));\n        const value = data[activeIndex][1];\n        markerLine.setAttribute(\"x1\", x(activeIndex));\n        markerLine.setAttribute(\"x2\", x(activeIndex));\n        markerLine.setAttribute(\"visibility\", \"visible\");\n        marker.setAttribute(\"cx\", x(activeIndex));\n        marker.setAttribute(\"cy\", y(value));\n        marker.setAttribute(\"visibility\", \"visible\");\n        setSelectionCard(activeIndex);\n        if (showTooltip) placeTooltip(activeIndex);\n      };\n\n      const resetSelectionCard = () => {\n        selection.classList.remove(\"has-value\");\n        selection.textContent =\n          \"Survolez ou touchez la courbe pour afficher la temp\u00e9rature d\u2019une ann\u00e9e.\";\n      };\n\n      const hidePointer = (resetCard = false) => {\n        markerLine.setAttribute(\"visibility\", \"hidden\");\n        marker.setAttribute(\"visibility\", \"hidden\");\n        tooltip.classList.remove(\"is-visible\");\n        tooltip.setAttribute(\"aria-hidden\", \"true\");\n        if (resetCard) resetSelectionCard();\n      };\n\n      const indexFromPointer = (event) => {\n        const rect = svg.getBoundingClientRect();\n        const svgX = ((event.clientX - rect.left) \/ rect.width) * W;\n        const ratio = (svgX - margin.left) \/ plotW;\n        return Math.round(\n          Math.max(0, Math.min(1, ratio)) * (data.length - 1)\n        );\n      };\n\n      overlay.addEventListener(\"pointerenter\", (event) => {\n        if (event.pointerType === \"mouse\" || !pinned) {\n          showIndex(indexFromPointer(event));\n        }\n      });\n\n      overlay.addEventListener(\"pointermove\", (event) => {\n        if (event.pointerType === \"mouse\" || !pinned) {\n          showIndex(indexFromPointer(event));\n        }\n      });\n\n      overlay.addEventListener(\"pointerleave\", (event) => {\n        if (event.pointerType === \"mouse\") {\n          pinned = false;\n          hidePointer(true);\n        } else if (!pinned) {\n          hidePointer(true);\n        }\n      });\n\n      overlay.addEventListener(\"pointerdown\", (event) => {\n        if (event.pointerType === \"mouse\") return;\n        pinned = true;\n        showIndex(indexFromPointer(event));\n      });\n\n      svg.addEventListener(\"keydown\", (event) => {\n        if (event.key !== \"ArrowLeft\" && event.key !== \"ArrowRight\" &&\n            event.key !== \"Home\" && event.key !== \"End\" &&\n            event.key !== \"Enter\" && event.key !== \" \" &&\n            event.key !== \"Escape\") return;\n\n        event.preventDefault();\n\n        if (event.key === \"ArrowLeft\") {\n          pinned = true;\n          showIndex(activeIndex - 1);\n        } else if (event.key === \"ArrowRight\") {\n          pinned = true;\n          showIndex(activeIndex + 1);\n        } else if (event.key === \"Home\") {\n          pinned = true;\n          showIndex(0);\n        } else if (event.key === \"End\") {\n          pinned = true;\n          showIndex(data.length - 1);\n        } else if (event.key === \"Enter\" || event.key === \" \") {\n          pinned = true;\n          showIndex(activeIndex);\n        } else if (event.key === \"Escape\") {\n          pinned = false;\n          hidePointer(true);\n        }\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        pinned = false;\n        hidePointer(true);\n      });\n\n      window.addEventListener(\"resize\", () => {\n        if (tooltip.classList.contains(\"is-visible\")) {\n          placeTooltip(activeIndex);\n        }\n      });\n  })();\n<\/script><!--\n  Graphique interactif WordPress\n  \u00c0 coller dans un bloc \u00ab HTML personnalis\u00e9 \u00bb.\n  Aucune biblioth\u00e8que externe n'est n\u00e9cessaire.\n-->\n<div id=\"graphique-temperatures-juillet\" class=\"tjui-widget\" data-tjui-chart>\n  <div class=\"tjui-header\">\n    <h2>Temp\u00e9rature moyenne observ\u00e9e en juillet depuis 1921 (France)<\/h2>\n    <p>Valeurs en degr\u00e9s Celsius<\/p>\n  <\/div>\n\n  <div\n    class=\"tjui-reference\"\n    role=\"note\"\n    aria-label=\"Normale 1991-2020 : 21,10 degr\u00e9s Celsius\"\n  >\n    <span>Normale 1991-2020<\/span>\n    <strong>21,10\u00a0\u00b0C<\/strong>\n  <\/div>\n\n  <div class=\"tjui-toggle-row\">\n    <button\n      class=\"tjui-toggle\"\n      data-tjui-toggle\n      type=\"button\"\n      role=\"switch\"\n      aria-checked=\"false\"\n    >\n      <span class=\"tjui-toggle-track\" aria-hidden=\"true\">\n        <span class=\"tjui-toggle-dot\"><\/span>\n      <\/span>\n      <span data-tjui-toggle-label>Afficher le diagramme<\/span>\n    <\/button>\n  <\/div>\n\n  <div class=\"tjui-content\" data-tjui-content hidden>\n    <div class=\"tjui-selection\" data-tjui-selection aria-live=\"polite\">\n      Survolez ou touchez la courbe pour afficher la temp\u00e9rature d\u2019une ann\u00e9e.\n    <\/div>\n\n    <div class=\"tjui-scroll\" aria-label=\"Graphique d\u00e9filable horizontalement sur mobile\">\n      <div class=\"tjui-stage\">\n        <svg\n          class=\"tjui-svg\"\n          data-tjui-svg\n          viewBox=\"0 0 1240 520\"\n          role=\"img\"\n          aria-labelledby=\"tjui-title tjui-desc\"\n          preserveAspectRatio=\"xMidYMid meet\"\n        >\n          <title id=\"tjui-title\">\n            Temp\u00e9rature moyenne observ\u00e9e en juillet en France, de 1921 \u00e0 2025\n          <\/title>\n          <desc id=\"tjui-desc\">\n            Courbe bleue interactive de la temp\u00e9rature moyenne nationale observ\u00e9e\n            en juillet. La ligne pointill\u00e9e repr\u00e9sente la normale 1991-2020 de 21,10 \u00b0C.\n            Les fl\u00e8ches gauche et droite permettent de parcourir les ann\u00e9es.\n          <\/desc>\n        <\/svg>\n        <div class=\"tjui-tooltip\" data-tjui-tooltip role=\"status\" aria-hidden=\"true\"><\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"tjui-legend\" aria-label=\"L\u00e9gende\">\n      <span><i class=\"tjui-line-key\"><\/i> Temp\u00e9rature moyenne observ\u00e9e<\/span>\n      <span><i class=\"tjui-normal-key\"><\/i> Normale 1991-2020 : 21,10\u00a0\u00b0C<\/span>\n    <\/div>\n\n    <p class=\"tjui-note\">\n      Les valeurs 2024 et 2025 ont \u00e9t\u00e9 ajout\u00e9es \u00e0 partir des bilans climatiques\n      mensuels officiels. La valeur mensuelle d\u00e9finitive de 2026 n\u2019est pas encore disponible.\n    <\/p>\n\n    <p class=\"tjui-source\">\n      Source : M\u00e9t\u00e9o-France \u2022 Indicateur thermique national\n    <\/p>\n  <\/div>\n<\/div>\n\n<style>\n  .tjui-widget,\n  .tjui-widget * {\n    box-sizing: border-box;\n  }\n\n  .tjui-widget {\n    --tjui-blue: #2f80ed;\n    --tjui-blue-dark: #145eb8;\n    --tjui-blue-soft: #eaf4ff;\n    --tjui-grid: #dfe6ee;\n    --tjui-ink: #17202a;\n    --tjui-muted: #5d6874;\n    width: 100%;\n    max-width: 1280px;\n    margin: 24px auto;\n    padding: clamp(18px, 3vw, 32px);\n    overflow: hidden;\n    color: var(--tjui-ink);\n    background: #ffffff;\n    border: 1px solid #e7ecf2;\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  .tjui-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  .tjui-header p {\n    margin: 8px 0 0;\n    color: var(--tjui-muted);\n    font-size: 15px;\n  }\n\n  .tjui-reference {\n    display: inline-flex;\n    align-items: center;\n    gap: 10px;\n    margin-top: 18px;\n    padding: 10px 14px;\n    color: #184d82;\n    background: var(--tjui-blue-soft);\n    border: 1px solid #bfdcff;\n    border-radius: 11px;\n    font-size: 14px;\n  }\n\n  .tjui-reference span {\n    font-weight: 700;\n  }\n\n  .tjui-reference strong {\n    font-size: 17px;\n    color: #0f559f;\n  }\n\n  .tjui-toggle-row {\n    margin-top: 16px;\n  }\n\n  .tjui-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  .tjui-toggle:hover {\n    color: #17202a;\n    background: #eef2f6;\n    border-color: #cbd3dc;\n  }\n\n  .tjui-toggle:focus-visible,\n  .tjui-svg:focus-visible {\n    outline: 3px solid rgba(47, 128, 237, 0.28);\n    outline-offset: 3px;\n  }\n\n  .tjui-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  .tjui-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  .tjui-toggle.is-active {\n    color: #174f8d;\n    background: #eff6ff;\n    border-color: #b9d4f2;\n  }\n\n  .tjui-toggle.is-active .tjui-toggle-track {\n    background: var(--tjui-blue-dark);\n  }\n\n  .tjui-toggle.is-active .tjui-toggle-dot {\n    transform: translateX(16px);\n  }\n\n  .tjui-content[hidden] {\n    display: none;\n  }\n\n  .tjui-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  .tjui-selection strong {\n    color: #0f559f;\n  }\n\n  .tjui-selection.has-value {\n    color: #24415f;\n    background: #eef7ff;\n    border-left-color: var(--tjui-blue);\n  }\n\n  .tjui-scroll {\n    width: 100%;\n    overflow-x: auto;\n    overflow-y: hidden;\n    padding-top: 6px;\n    scrollbar-color: #aeb7c2 #edf0f3;\n    scrollbar-width: thin;\n    -webkit-overflow-scrolling: touch;\n  }\n\n  .tjui-stage {\n    position: relative;\n    width: 100%;\n    min-width: 940px;\n  }\n\n  .tjui-svg {\n    display: block;\n    width: 100%;\n    height: auto;\n    overflow: visible;\n    cursor: crosshair;\n    touch-action: pan-x pan-y;\n  }\n\n  .tjui-grid-line {\n    stroke: var(--tjui-grid);\n    stroke-width: 1;\n    vector-effect: non-scaling-stroke;\n  }\n\n  .tjui-zero-line {\n    stroke: #aeb8c3;\n    stroke-width: 1.5;\n    vector-effect: non-scaling-stroke;\n  }\n\n  .tjui-normal-line {\n    stroke: #536273;\n    stroke-width: 1.7;\n    stroke-dasharray: 7 6;\n    vector-effect: non-scaling-stroke;\n  }\n\n  .tjui-normal-label {\n    fill: #4e5b68;\n    font-size: 12px;\n    font-weight: 700;\n    text-anchor: end;\n  }\n\n  .tjui-y-label,\n  .tjui-x-label,\n  .tjui-axis-unit {\n    fill: #687582;\n    font-family: Arial, Helvetica, sans-serif;\n  }\n\n  .tjui-y-label {\n    font-size: 13px;\n    text-anchor: end;\n    dominant-baseline: middle;\n  }\n\n  .tjui-x-label {\n    font-size: 11px;\n    text-anchor: middle;\n  }\n\n  .tjui-axis-unit {\n    font-size: 12px;\n    font-weight: 700;\n  }\n\n  .tjui-area {\n    pointer-events: none;\n  }\n\n  .tjui-curve {\n    fill: none;\n    stroke: var(--tjui-blue);\n    stroke-width: 2.1;\n    stroke-linecap: round;\n    stroke-linejoin: round;\n    vector-effect: non-scaling-stroke;\n    pointer-events: none;\n  }\n\n  .tjui-marker-line {\n    stroke: rgba(20, 94, 184, 0.42);\n    stroke-width: 1;\n    stroke-dasharray: 4 4;\n    vector-effect: non-scaling-stroke;\n    pointer-events: none;\n  }\n\n  .tjui-marker {\n    fill: #ffffff;\n    stroke: var(--tjui-blue-dark);\n    stroke-width: 2.2;\n    vector-effect: non-scaling-stroke;\n    filter: drop-shadow(0 2px 4px rgba(20, 94, 184, 0.28));\n    pointer-events: none;\n  }\n\n  .tjui-overlay {\n    fill: transparent;\n    pointer-events: all;\n  }\n\n  .tjui-tooltip {\n    position: absolute;\n    z-index: 4;\n    width: max-content;\n    max-width: 235px;\n    padding: 10px 12px;\n    color: #ffffff;\n    background: rgba(18, 34, 51, 0.97);\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  .tjui-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, 34, 51, 0.97);\n    transform: translateX(-50%);\n  }\n\n  .tjui-tooltip.is-visible {\n    opacity: 1;\n  }\n\n  .tjui-tooltip strong,\n  .tjui-tooltip span {\n    display: block;\n  }\n\n  .tjui-tooltip strong {\n    margin-bottom: 2px;\n    font-size: 14px;\n  }\n\n  .tjui-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  .tjui-legend span {\n    display: inline-flex;\n    align-items: center;\n    gap: 8px;\n  }\n\n  .tjui-line-key,\n  .tjui-normal-key {\n    display: inline-block;\n    width: 30px;\n    height: 0;\n  }\n\n  .tjui-line-key {\n    border-top: 2px solid var(--tjui-blue);\n    border-radius: 999px;\n  }\n\n  .tjui-normal-key {\n    border-top: 2px dashed #536273;\n  }\n\n  .tjui-note {\n    margin: 16px 0 0;\n    padding: 11px 13px;\n    color: #52606d;\n    background: #f6f8fa;\n    border-radius: 9px;\n    font-size: 12px;\n    line-height: 1.5;\n  }\n\n  .tjui-source {\n    margin: 13px 0 0;\n    color: #737d87;\n    font-size: 12px;\n  }\n\n  @media (max-width: 720px) {\n    .tjui-widget {\n      margin: 14px auto;\n      padding: 17px 14px 19px;\n      border-radius: 13px;\n    }\n\n    .tjui-reference {\n      width: 100%;\n      justify-content: space-between;\n    }\n\n    .tjui-selection {\n      margin-top: 15px;\n    }\n\n    .tjui-scroll {\n      padding-bottom: 7px;\n    }\n\n    .tjui-stage {\n      min-width: 900px;\n    }\n\n    .tjui-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    .tjui-toggle,\n    .tjui-toggle-track,\n    .tjui-toggle-dot,\n    .tjui-tooltip {\n      transition: none;\n    }\n  }\n<\/style>\n\n<script>\n  (() => {\n    const widget = document.getElementById(\"graphique-temperatures-juillet\");\n    const NORMAL = 21.10;\n\n    if (!widget || widget.dataset.tjuiReady === \"true\") return;\n    widget.dataset.tjuiReady = \"true\";\n\n      const data = [\n        [1921, 21.6], [1922, 17.7], [1923, 21.0], [1924, 19.1], [1925, 18.6],\n        [1926, 19.3], [1927, 18.8], [1928, 21.5], [1929, 20.3], [1930, 18.4],\n        [1931, 18.6], [1932, 18.1], [1933, 20.5], [1934, 21.2], [1935, 20.6],\n        [1936, 18.2], [1937, 19.8], [1938, 18.7], [1939, 18.0], [1940, 17.7],\n        [1941, 20.2], [1942, 19.0], [1943, 20.3], [1944, 19.1], [1945, 20.8],\n        [1946, 19.9], [1947, 21.5], [1948, 18.1], [1949, 21.6], [1950, 21.5],\n        [1951, 19.4], [1952, 21.3], [1953, 19.1], [1954, 17.6], [1955, 20.3],\n        [1956, 18.8], [1957, 19.7], [1958, 19.0], [1959, 21.4], [1960, 18.0],\n        [1961, 19.0], [1962, 19.0], [1963, 19.8], [1964, 20.8], [1965, 18.1],\n        [1966, 18.0], [1967, 21.0], [1968, 19.1], [1969, 20.3], [1970, 19.0],\n        [1971, 20.9], [1972, 19.4], [1973, 19.5], [1974, 18.9], [1975, 20.2],\n        [1976, 21.5], [1977, 18.9], [1978, 18.5], [1979, 19.7], [1980, 17.7],\n        [1981, 18.7], [1982, 21.5], [1983, 23.4], [1984, 20.0], [1985, 20.8],\n        [1986, 20.0], [1987, 20.1], [1988, 19.1], [1989, 21.5], [1990, 20.9],\n        [1991, 21.0], [1992, 20.5], [1993, 19.0], [1994, 22.7], [1995, 22.5],\n        [1996, 19.9], [1997, 19.8], [1998, 20.1], [1999, 21.6], [2000, 19.0],\n        [2001, 20.7], [2002, 19.8], [2003, 22.1], [2004, 20.3], [2005, 21.2],\n        [2006, 24.4], [2007, 19.6], [2008, 20.2], [2009, 21.0], [2010, 22.1],\n        [2011, 18.9], [2012, 19.3], [2013, 22.7], [2014, 20.7], [2015, 22.8],\n        [2016, 21.3], [2017, 21.7], [2018, 23.3], [2019, 23.2], [2020, 21.7],\n        [2021, 20.7], [2022, 23.2], [2023, 21.8], [2024, 21.7], [2025, 22.0]\n      ];\n\n      const svg = widget.querySelector(\"[data-tjui-svg]\");\n      const tooltip = widget.querySelector(\"[data-tjui-tooltip]\");\n      const selection = widget.querySelector(\"[data-tjui-selection]\");\n      const stage = widget.querySelector(\".tjui-stage\");\n      const toggle = widget.querySelector(\"[data-tjui-toggle]\");\n      const toggleLabel = widget.querySelector(\"[data-tjui-toggle-label]\");\n      const content = widget.querySelector(\"[data-tjui-content]\");\n      const ns = \"http:\/\/www.w3.org\/2000\/svg\";\n\n      const contentId = \"tjui-chart-content\";\n      const gradientId = \"tjui-area-gradient\";\n      content.id = contentId;\n      toggle.setAttribute(\"aria-controls\", contentId);\n\n      const W = 1240;\n      const H = 520;\n      const margin = { top: 31, right: 22, bottom: 62, left: 62 };\n      const plotW = W - margin.left - margin.right;\n      const plotH = H - margin.top - margin.bottom;\n      const minY = 17;\n      const maxY = 25;\n      const ticks = [17, 18, 19, 20, 21, 22, 23, 24, 25];\n      let activeIndex = data.length - 1;\n      let pinned = false;\n\n      const x = (index) =>\n        margin.left + (index \/ (data.length - 1)) * plotW;\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, digits = 1) =>\n        value.toFixed(digits).replace(\".\", \",\").replace(\"-\", \"\u2212\");\n\n      const formatGap = (value) => {\n        const sign = value > 0 ? \"+\" : value < 0 ? \"\u2212\" : \"\";\n        return sign + Math.abs(value).toFixed(1).replace(\".\", \",\");\n      };\n\n      const defs = makeSvg(\"defs\");\n      const gradient = makeSvg(\"linearGradient\", {\n        id: gradientId,\n        x1: \"0\",\n        x2: \"0\",\n        y1: \"0\",\n        y2: \"1\"\n      });\n      gradient.appendChild(\n        makeSvg(\"stop\", {\n          offset: \"0%\",\n          \"stop-color\": \"#2f80ed\",\n          \"stop-opacity\": \"0.24\"\n        })\n      );\n      gradient.appendChild(\n        makeSvg(\"stop\", {\n          offset: \"100%\",\n          \"stop-color\": \"#2f80ed\",\n          \"stop-opacity\": \"0.025\"\n        })\n      );\n      defs.appendChild(gradient);\n      svg.appendChild(defs);\n\n      const gridGroup = makeSvg(\"g\", { \"aria-hidden\": \"true\" });\n      ticks.forEach((tick) => {\n        gridGroup.appendChild(\n          makeSvg(\"line\", {\n            x1: margin.left,\n            x2: W - margin.right,\n            y1: y(tick),\n            y2: y(tick),\n            class: tick === 0 ? \"tjui-zero-line\" : \"tjui-grid-line\"\n          })\n        );\n\n        const label = makeSvg(\"text\", {\n          x: margin.left - 11,\n          y: y(tick),\n          class: \"tjui-y-label\"\n        });\n        label.textContent = formatValue(tick);\n        gridGroup.appendChild(label);\n      });\n\n      const unit = makeSvg(\"text\", {\n        x: 8,\n        y: 19,\n        class: \"tjui-axis-unit\"\n      });\n      unit.textContent = \"Temp\u00e9rature (\u00b0C)\";\n      gridGroup.appendChild(unit);\n      svg.appendChild(gridGroup);\n\n      svg.appendChild(\n        makeSvg(\"line\", {\n          x1: margin.left,\n          x2: W - margin.right,\n          y1: y(NORMAL),\n          y2: y(NORMAL),\n          class: \"tjui-normal-line\",\n          \"aria-hidden\": \"true\"\n        })\n      );\n\n      const normalLabel = makeSvg(\"text\", {\n        x: W - margin.right - 3,\n        y: y(NORMAL) - 8,\n        class: \"tjui-normal-label\",\n        \"aria-hidden\": \"true\"\n      });\n      normalLabel.textContent = \"Normale 1991-2020 : 9,09 \u00b0C\";\n      svg.appendChild(normalLabel);\n\n      const linePath = data\n        .map(([, value], index) =>\n          `${index === 0 ? \"M\" : \"L\"} ${x(index)} ${y(value)}`\n        )\n        .join(\" \");\n\n      const areaPath =\n        linePath +\n        ` L ${x(data.length - 1)} ${y(minY)}` +\n        ` L ${x(0)} ${y(minY)} Z`;\n\n      svg.appendChild(\n        makeSvg(\"path\", {\n          d: areaPath,\n          class: \"tjui-area\",\n          fill: `url(#${gradientId})`,\n          \"aria-hidden\": \"true\"\n        })\n      );\n\n      svg.appendChild(\n        makeSvg(\"path\", {\n          d: linePath,\n          class: \"tjui-curve\",\n          \"aria-hidden\": \"true\"\n        })\n      );\n\n      const labelsGroup = makeSvg(\"g\", { \"aria-hidden\": \"true\" });\n      data.forEach(([year], index) => {\n        if (year % 5 !== 0) return;\n        const label = makeSvg(\"text\", {\n          x: x(index),\n          y: H - 25,\n          class: \"tjui-x-label\"\n        });\n        label.textContent = year;\n        labelsGroup.appendChild(label);\n      });\n      svg.appendChild(labelsGroup);\n\n      const markerLine = makeSvg(\"line\", {\n        x1: x(activeIndex),\n        x2: x(activeIndex),\n        y1: margin.top,\n        y2: H - margin.bottom,\n        class: \"tjui-marker-line\",\n        visibility: \"hidden\",\n        \"aria-hidden\": \"true\"\n      });\n      svg.appendChild(markerLine);\n\n      const marker = makeSvg(\"circle\", {\n        cx: x(activeIndex),\n        cy: y(data[activeIndex][1]),\n        r: 4.7,\n        class: \"tjui-marker\",\n        visibility: \"hidden\",\n        \"aria-hidden\": \"true\"\n      });\n      svg.appendChild(marker);\n\n      const overlay = makeSvg(\"rect\", {\n        x: margin.left,\n        y: margin.top,\n        width: plotW,\n        height: plotH,\n        class: \"tjui-overlay\",\n        \"aria-hidden\": \"true\"\n      });\n      svg.appendChild(overlay);\n\n      const setSelectionCard = (index) => {\n        const [year, value] = data[index];\n        selection.classList.add(\"has-value\");\n        selection.innerHTML =\n          `<strong>Juillet ${year}<\/strong> \u2014 temp\u00e9rature moyenne : ` +\n          `<strong>${formatValue(value)} \u00b0C<\/strong> \u2022 \u00e9cart \u00e0 la normale : ` +\n          `<strong>${formatGap(value - NORMAL)} \u00b0C<\/strong>`;\n      };\n\n      const placeTooltip = (index) => {\n        const [year, value] = data[index];\n        const svgRect = svg.getBoundingClientRect();\n        const stageRect = stage.getBoundingClientRect();\n        const pointClientX = svgRect.left + (x(index) \/ W) * svgRect.width;\n        const pointClientY = svgRect.top + (y(value) \/ H) * svgRect.height;\n        const tooltipX = Math.max(\n          120,\n          Math.min(stageRect.width - 120, pointClientX - stageRect.left)\n        );\n        const tooltipY = Math.max(86, pointClientY - stageRect.top);\n\n        tooltip.innerHTML =\n          `<strong>Juillet ${year}<\/strong>` +\n          `<span>Temp\u00e9rature moyenne : ${formatValue(value)} \u00b0C<\/span>` +\n          `<span>\u00c9cart \u00e0 la normale : ${formatGap(value - NORMAL)} \u00b0C<\/span>`;\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 showIndex = (index, showTooltip = true) => {\n        activeIndex = Math.max(0, Math.min(data.length - 1, index));\n        const value = data[activeIndex][1];\n        markerLine.setAttribute(\"x1\", x(activeIndex));\n        markerLine.setAttribute(\"x2\", x(activeIndex));\n        markerLine.setAttribute(\"visibility\", \"visible\");\n        marker.setAttribute(\"cx\", x(activeIndex));\n        marker.setAttribute(\"cy\", y(value));\n        marker.setAttribute(\"visibility\", \"visible\");\n        setSelectionCard(activeIndex);\n        if (showTooltip) placeTooltip(activeIndex);\n      };\n\n      const resetSelectionCard = () => {\n        selection.classList.remove(\"has-value\");\n        selection.textContent =\n          \"Survolez ou touchez la courbe pour afficher la temp\u00e9rature d\u2019une ann\u00e9e.\";\n      };\n\n      const hidePointer = (resetCard = false) => {\n        markerLine.setAttribute(\"visibility\", \"hidden\");\n        marker.setAttribute(\"visibility\", \"hidden\");\n        tooltip.classList.remove(\"is-visible\");\n        tooltip.setAttribute(\"aria-hidden\", \"true\");\n        if (resetCard) resetSelectionCard();\n      };\n\n      const indexFromPointer = (event) => {\n        const rect = svg.getBoundingClientRect();\n        const svgX = ((event.clientX - rect.left) \/ rect.width) * W;\n        const ratio = (svgX - margin.left) \/ plotW;\n        return Math.round(\n          Math.max(0, Math.min(1, ratio)) * (data.length - 1)\n        );\n      };\n\n      overlay.addEventListener(\"pointerenter\", (event) => {\n        if (event.pointerType === \"mouse\" || !pinned) {\n          showIndex(indexFromPointer(event));\n        }\n      });\n\n      overlay.addEventListener(\"pointermove\", (event) => {\n        if (event.pointerType === \"mouse\" || !pinned) {\n          showIndex(indexFromPointer(event));\n        }\n      });\n\n      overlay.addEventListener(\"pointerleave\", (event) => {\n        if (event.pointerType === \"mouse\") {\n          pinned = false;\n          hidePointer(true);\n        } else if (!pinned) {\n          hidePointer(true);\n        }\n      });\n\n      overlay.addEventListener(\"pointerdown\", (event) => {\n        if (event.pointerType === \"mouse\") return;\n        pinned = true;\n        showIndex(indexFromPointer(event));\n      });\n\n      svg.addEventListener(\"keydown\", (event) => {\n        if (event.key !== \"ArrowLeft\" && event.key !== \"ArrowRight\" &&\n            event.key !== \"Home\" && event.key !== \"End\" &&\n            event.key !== \"Enter\" && event.key !== \" \" &&\n            event.key !== \"Escape\") return;\n\n        event.preventDefault();\n\n        if (event.key === \"ArrowLeft\") {\n          pinned = true;\n          showIndex(activeIndex - 1);\n        } else if (event.key === \"ArrowRight\") {\n          pinned = true;\n          showIndex(activeIndex + 1);\n        } else if (event.key === \"Home\") {\n          pinned = true;\n          showIndex(0);\n        } else if (event.key === \"End\") {\n          pinned = true;\n          showIndex(data.length - 1);\n        } else if (event.key === \"Enter\" || event.key === \" \") {\n          pinned = true;\n          showIndex(activeIndex);\n        } else if (event.key === \"Escape\") {\n          pinned = false;\n          hidePointer(true);\n        }\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        pinned = false;\n        hidePointer(true);\n      });\n\n      window.addEventListener(\"resize\", () => {\n        if (tooltip.classList.contains(\"is-visible\")) {\n          placeTooltip(activeIndex);\n        }\n      });\n  })();\n<\/script><!--\n  Graphique interactif WordPress\n  \u00c0 coller dans un bloc \u00ab HTML personnalis\u00e9 \u00bb.\n  Aucune biblioth\u00e8que externe n'est n\u00e9cessaire.\n-->\n<div id=\"graphique-temperatures-aout\" class=\"taou-widget\" data-taou-chart>\n  <div class=\"taou-header\">\n    <h2>Temp\u00e9rature moyenne observ\u00e9e en ao\u00fbt depuis 1921 (France)<\/h2>\n    <p>Valeurs en degr\u00e9s Celsius<\/p>\n  <\/div>\n\n  <div\n    class=\"taou-reference\"\n    role=\"note\"\n    aria-label=\"Normale 1991-2020 : 21,05 degr\u00e9s Celsius\"\n  >\n    <span>Normale 1991-2020<\/span>\n    <strong>21,05\u00a0\u00b0C<\/strong>\n  <\/div>\n\n  <div class=\"taou-toggle-row\">\n    <button\n      class=\"taou-toggle\"\n      data-taou-toggle\n      type=\"button\"\n      role=\"switch\"\n      aria-checked=\"false\"\n    >\n      <span class=\"taou-toggle-track\" aria-hidden=\"true\">\n        <span class=\"taou-toggle-dot\"><\/span>\n      <\/span>\n      <span data-taou-toggle-label>Afficher le diagramme<\/span>\n    <\/button>\n  <\/div>\n\n  <div class=\"taou-content\" data-taou-content hidden>\n    <div class=\"taou-selection\" data-taou-selection aria-live=\"polite\">\n      Survolez ou touchez la courbe pour afficher la temp\u00e9rature d\u2019une ann\u00e9e.\n    <\/div>\n\n    <div class=\"taou-scroll\" aria-label=\"Graphique d\u00e9filable horizontalement sur mobile\">\n      <div class=\"taou-stage\">\n        <svg\n          class=\"taou-svg\"\n          data-taou-svg\n          viewBox=\"0 0 1240 520\"\n          role=\"img\"\n          aria-labelledby=\"taou-title taou-desc\"\n          preserveAspectRatio=\"xMidYMid meet\"\n        >\n          <title id=\"taou-title\">\n            Temp\u00e9rature moyenne observ\u00e9e en ao\u00fbt en France, de 1921 \u00e0 2025\n          <\/title>\n          <desc id=\"taou-desc\">\n            Courbe bleue interactive de la temp\u00e9rature moyenne nationale observ\u00e9e\n            en ao\u00fbt. La ligne pointill\u00e9e repr\u00e9sente la normale 1991-2020 de 21,05 \u00b0C.\n            Les fl\u00e8ches gauche et droite permettent de parcourir les ann\u00e9es.\n          <\/desc>\n        <\/svg>\n        <div class=\"taou-tooltip\" data-taou-tooltip role=\"status\" aria-hidden=\"true\"><\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"taou-legend\" aria-label=\"L\u00e9gende\">\n      <span><i class=\"taou-line-key\"><\/i> Temp\u00e9rature moyenne observ\u00e9e<\/span>\n      <span><i class=\"taou-normal-key\"><\/i> Normale 1991-2020 : 21,05\u00a0\u00b0C<\/span>\n    <\/div>\n\n    <p class=\"taou-note\">\n      Les valeurs 2024 et 2025 ont \u00e9t\u00e9 ajout\u00e9es \u00e0 partir des bilans climatiques\n      mensuels officiels. La valeur mensuelle d\u00e9finitive de 2026 n\u2019est pas encore disponible.\n    <\/p>\n\n    <p class=\"taou-source\">\n      Source : M\u00e9t\u00e9o-France \u2022 Indicateur thermique national\n    <\/p>\n  <\/div>\n<\/div>\n\n<style>\n  .taou-widget,\n  .taou-widget * {\n    box-sizing: border-box;\n  }\n\n  .taou-widget {\n    --taou-blue: #2f80ed;\n    --taou-blue-dark: #145eb8;\n    --taou-blue-soft: #eaf4ff;\n    --taou-grid: #dfe6ee;\n    --taou-ink: #17202a;\n    --taou-muted: #5d6874;\n    width: 100%;\n    max-width: 1280px;\n    margin: 24px auto;\n    padding: clamp(18px, 3vw, 32px);\n    overflow: hidden;\n    color: var(--taou-ink);\n    background: #ffffff;\n    border: 1px solid #e7ecf2;\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  .taou-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  .taou-header p {\n    margin: 8px 0 0;\n    color: var(--taou-muted);\n    font-size: 15px;\n  }\n\n  .taou-reference {\n    display: inline-flex;\n    align-items: center;\n    gap: 10px;\n    margin-top: 18px;\n    padding: 10px 14px;\n    color: #184d82;\n    background: var(--taou-blue-soft);\n    border: 1px solid #bfdcff;\n    border-radius: 11px;\n    font-size: 14px;\n  }\n\n  .taou-reference span {\n    font-weight: 700;\n  }\n\n  .taou-reference strong {\n    font-size: 17px;\n    color: #0f559f;\n  }\n\n  .taou-toggle-row {\n    margin-top: 16px;\n  }\n\n  .taou-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  .taou-toggle:hover {\n    color: #17202a;\n    background: #eef2f6;\n    border-color: #cbd3dc;\n  }\n\n  .taou-toggle:focus-visible,\n  .taou-svg:focus-visible {\n    outline: 3px solid rgba(47, 128, 237, 0.28);\n    outline-offset: 3px;\n  }\n\n  .taou-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  .taou-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  .taou-toggle.is-active {\n    color: #174f8d;\n    background: #eff6ff;\n    border-color: #b9d4f2;\n  }\n\n  .taou-toggle.is-active .taou-toggle-track {\n    background: var(--taou-blue-dark);\n  }\n\n  .taou-toggle.is-active .taou-toggle-dot {\n    transform: translateX(16px);\n  }\n\n  .taou-content[hidden] {\n    display: none;\n  }\n\n  .taou-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  .taou-selection strong {\n    color: #0f559f;\n  }\n\n  .taou-selection.has-value {\n    color: #24415f;\n    background: #eef7ff;\n    border-left-color: var(--taou-blue);\n  }\n\n  .taou-scroll {\n    width: 100%;\n    overflow-x: auto;\n    overflow-y: hidden;\n    padding-top: 6px;\n    scrollbar-color: #aeb7c2 #edf0f3;\n    scrollbar-width: thin;\n    -webkit-overflow-scrolling: touch;\n  }\n\n  .taou-stage {\n    position: relative;\n    width: 100%;\n    min-width: 940px;\n  }\n\n  .taou-svg {\n    display: block;\n    width: 100%;\n    height: auto;\n    overflow: visible;\n    cursor: crosshair;\n    touch-action: pan-x pan-y;\n  }\n\n  .taou-grid-line {\n    stroke: var(--taou-grid);\n    stroke-width: 1;\n    vector-effect: non-scaling-stroke;\n  }\n\n  .taou-zero-line {\n    stroke: #aeb8c3;\n    stroke-width: 1.5;\n    vector-effect: non-scaling-stroke;\n  }\n\n  .taou-normal-line {\n    stroke: #536273;\n    stroke-width: 1.7;\n    stroke-dasharray: 7 6;\n    vector-effect: non-scaling-stroke;\n  }\n\n  .taou-normal-label {\n    fill: #4e5b68;\n    font-size: 12px;\n    font-weight: 700;\n    text-anchor: end;\n  }\n\n  .taou-y-label,\n  .taou-x-label,\n  .taou-axis-unit {\n    fill: #687582;\n    font-family: Arial, Helvetica, sans-serif;\n  }\n\n  .taou-y-label {\n    font-size: 13px;\n    text-anchor: end;\n    dominant-baseline: middle;\n  }\n\n  .taou-x-label {\n    font-size: 11px;\n    text-anchor: middle;\n  }\n\n  .taou-axis-unit {\n    font-size: 12px;\n    font-weight: 700;\n  }\n\n  .taou-area {\n    pointer-events: none;\n  }\n\n  .taou-curve {\n    fill: none;\n    stroke: var(--taou-blue);\n    stroke-width: 2.1;\n    stroke-linecap: round;\n    stroke-linejoin: round;\n    vector-effect: non-scaling-stroke;\n    pointer-events: none;\n  }\n\n  .taou-marker-line {\n    stroke: rgba(20, 94, 184, 0.42);\n    stroke-width: 1;\n    stroke-dasharray: 4 4;\n    vector-effect: non-scaling-stroke;\n    pointer-events: none;\n  }\n\n  .taou-marker {\n    fill: #ffffff;\n    stroke: var(--taou-blue-dark);\n    stroke-width: 2.2;\n    vector-effect: non-scaling-stroke;\n    filter: drop-shadow(0 2px 4px rgba(20, 94, 184, 0.28));\n    pointer-events: none;\n  }\n\n  .taou-overlay {\n    fill: transparent;\n    pointer-events: all;\n  }\n\n  .taou-tooltip {\n    position: absolute;\n    z-index: 4;\n    width: max-content;\n    max-width: 235px;\n    padding: 10px 12px;\n    color: #ffffff;\n    background: rgba(18, 34, 51, 0.97);\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  .taou-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, 34, 51, 0.97);\n    transform: translateX(-50%);\n  }\n\n  .taou-tooltip.is-visible {\n    opacity: 1;\n  }\n\n  .taou-tooltip strong,\n  .taou-tooltip span {\n    display: block;\n  }\n\n  .taou-tooltip strong {\n    margin-bottom: 2px;\n    font-size: 14px;\n  }\n\n  .taou-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  .taou-legend span {\n    display: inline-flex;\n    align-items: center;\n    gap: 8px;\n  }\n\n  .taou-line-key,\n  .taou-normal-key {\n    display: inline-block;\n    width: 30px;\n    height: 0;\n  }\n\n  .taou-line-key {\n    border-top: 2px solid var(--taou-blue);\n    border-radius: 999px;\n  }\n\n  .taou-normal-key {\n    border-top: 2px dashed #536273;\n  }\n\n  .taou-note {\n    margin: 16px 0 0;\n    padding: 11px 13px;\n    color: #52606d;\n    background: #f6f8fa;\n    border-radius: 9px;\n    font-size: 12px;\n    line-height: 1.5;\n  }\n\n  .taou-source {\n    margin: 13px 0 0;\n    color: #737d87;\n    font-size: 12px;\n  }\n\n  @media (max-width: 720px) {\n    .taou-widget {\n      margin: 14px auto;\n      padding: 17px 14px 19px;\n      border-radius: 13px;\n    }\n\n    .taou-reference {\n      width: 100%;\n      justify-content: space-between;\n    }\n\n    .taou-selection {\n      margin-top: 15px;\n    }\n\n    .taou-scroll {\n      padding-bottom: 7px;\n    }\n\n    .taou-stage {\n      min-width: 900px;\n    }\n\n    .taou-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    .taou-toggle,\n    .taou-toggle-track,\n    .taou-toggle-dot,\n    .taou-tooltip {\n      transition: none;\n    }\n  }\n<\/style>\n\n<script>\n  (() => {\n    const widget = document.getElementById(\"graphique-temperatures-aout\");\n    const NORMAL = 21.05;\n\n    if (!widget || widget.dataset.taouReady === \"true\") return;\n    widget.dataset.taouReady = \"true\";\n\n      const data = [\n        [1921, 18.8], [1922, 18.2], [1923, 20.0], [1924, 16.7], [1925, 18.6],\n        [1926, 19.8], [1927, 18.5], [1928, 20.3], [1929, 19.1], [1930, 19.1],\n        [1931, 17.9], [1932, 21.4], [1933, 21.3], [1934, 18.4], [1935, 19.2],\n        [1936, 19.1], [1937, 20.4], [1938, 19.1], [1939, 18.9], [1940, 18.1],\n        [1941, 17.4], [1942, 19.6], [1943, 20.0], [1944, 21.6], [1945, 19.0],\n        [1946, 18.4], [1947, 22.2], [1948, 19.1], [1949, 20.7], [1950, 19.9],\n        [1951, 18.4], [1952, 20.2], [1953, 19.9], [1954, 18.0], [1955, 20.1],\n        [1956, 17.6], [1957, 18.6], [1958, 19.6], [1959, 19.9], [1960, 18.4],\n        [1961, 19.0], [1962, 19.9], [1963, 17.6], [1964, 19.5], [1965, 18.2],\n        [1966, 18.3], [1967, 19.4], [1968, 18.4], [1969, 19.4], [1970, 19.6],\n        [1971, 19.9], [1972, 18.1], [1973, 21.4], [1974, 19.9], [1975, 21.1],\n        [1976, 20.0], [1977, 18.0], [1978, 18.2], [1979, 18.3], [1980, 20.0],\n        [1981, 19.9], [1982, 19.1], [1983, 20.6], [1984, 19.6], [1985, 18.8],\n        [1986, 19.0], [1987, 20.0], [1988, 20.0], [1989, 20.7], [1990, 21.6],\n        [1991, 22.0], [1992, 21.4], [1993, 19.9], [1994, 21.4], [1995, 21.4],\n        [1996, 19.5], [1997, 22.7], [1998, 20.7], [1999, 21.0], [2000, 21.1],\n        [2001, 21.5], [2002, 19.8], [2003, 24.8], [2004, 21.1], [2005, 19.7],\n        [2006, 19.0], [2007, 19.3], [2008, 20.0], [2009, 21.9], [2010, 20.0],\n        [2011, 20.7], [2012, 21.5], [2013, 20.8], [2014, 19.1], [2015, 21.6],\n        [2016, 21.5], [2017, 21.4], [2018, 22.3], [2019, 21.8], [2020, 22.6],\n        [2021, 20.0], [2022, 23.7], [2023, 22.0], [2024, 22.5], [2025, 22.5]\n      ];\n\n      const svg = widget.querySelector(\"[data-taou-svg]\");\n      const tooltip = widget.querySelector(\"[data-taou-tooltip]\");\n      const selection = widget.querySelector(\"[data-taou-selection]\");\n      const stage = widget.querySelector(\".taou-stage\");\n      const toggle = widget.querySelector(\"[data-taou-toggle]\");\n      const toggleLabel = widget.querySelector(\"[data-taou-toggle-label]\");\n      const content = widget.querySelector(\"[data-taou-content]\");\n      const ns = \"http:\/\/www.w3.org\/2000\/svg\";\n\n      const contentId = \"taou-chart-content\";\n      const gradientId = \"taou-area-gradient\";\n      content.id = contentId;\n      toggle.setAttribute(\"aria-controls\", contentId);\n\n      const W = 1240;\n      const H = 520;\n      const margin = { top: 31, right: 22, bottom: 62, left: 62 };\n      const plotW = W - margin.left - margin.right;\n      const plotH = H - margin.top - margin.bottom;\n      const minY = 16;\n      const maxY = 25;\n      const ticks = [16, 17, 18, 19, 20, 21, 22, 23, 24, 25];\n      let activeIndex = data.length - 1;\n      let pinned = false;\n\n      const x = (index) =>\n        margin.left + (index \/ (data.length - 1)) * plotW;\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, digits = 1) =>\n        value.toFixed(digits).replace(\".\", \",\").replace(\"-\", \"\u2212\");\n\n      const formatGap = (value) => {\n        const sign = value > 0 ? \"+\" : value < 0 ? \"\u2212\" : \"\";\n        return sign + Math.abs(value).toFixed(1).replace(\".\", \",\");\n      };\n\n      const defs = makeSvg(\"defs\");\n      const gradient = makeSvg(\"linearGradient\", {\n        id: gradientId,\n        x1: \"0\",\n        x2: \"0\",\n        y1: \"0\",\n        y2: \"1\"\n      });\n      gradient.appendChild(\n        makeSvg(\"stop\", {\n          offset: \"0%\",\n          \"stop-color\": \"#2f80ed\",\n          \"stop-opacity\": \"0.24\"\n        })\n      );\n      gradient.appendChild(\n        makeSvg(\"stop\", {\n          offset: \"100%\",\n          \"stop-color\": \"#2f80ed\",\n          \"stop-opacity\": \"0.025\"\n        })\n      );\n      defs.appendChild(gradient);\n      svg.appendChild(defs);\n\n      const gridGroup = makeSvg(\"g\", { \"aria-hidden\": \"true\" });\n      ticks.forEach((tick) => {\n        gridGroup.appendChild(\n          makeSvg(\"line\", {\n            x1: margin.left,\n            x2: W - margin.right,\n            y1: y(tick),\n            y2: y(tick),\n            class: tick === 0 ? \"taou-zero-line\" : \"taou-grid-line\"\n          })\n        );\n\n        const label = makeSvg(\"text\", {\n          x: margin.left - 11,\n          y: y(tick),\n          class: \"taou-y-label\"\n        });\n        label.textContent = formatValue(tick);\n        gridGroup.appendChild(label);\n      });\n\n      const unit = makeSvg(\"text\", {\n        x: 8,\n        y: 19,\n        class: \"taou-axis-unit\"\n      });\n      unit.textContent = \"Temp\u00e9rature (\u00b0C)\";\n      gridGroup.appendChild(unit);\n      svg.appendChild(gridGroup);\n\n      svg.appendChild(\n        makeSvg(\"line\", {\n          x1: margin.left,\n          x2: W - margin.right,\n          y1: y(NORMAL),\n          y2: y(NORMAL),\n          class: \"taou-normal-line\",\n          \"aria-hidden\": \"true\"\n        })\n      );\n\n      const normalLabel = makeSvg(\"text\", {\n        x: W - margin.right - 3,\n        y: y(NORMAL) - 8,\n        class: \"taou-normal-label\",\n        \"aria-hidden\": \"true\"\n      });\n      normalLabel.textContent = \"Normale 1991-2020 : 9,09 \u00b0C\";\n      svg.appendChild(normalLabel);\n\n      const linePath = data\n        .map(([, value], index) =>\n          `${index === 0 ? \"M\" : \"L\"} ${x(index)} ${y(value)}`\n        )\n        .join(\" \");\n\n      const areaPath =\n        linePath +\n        ` L ${x(data.length - 1)} ${y(minY)}` +\n        ` L ${x(0)} ${y(minY)} Z`;\n\n      svg.appendChild(\n        makeSvg(\"path\", {\n          d: areaPath,\n          class: \"taou-area\",\n          fill: `url(#${gradientId})`,\n          \"aria-hidden\": \"true\"\n        })\n      );\n\n      svg.appendChild(\n        makeSvg(\"path\", {\n          d: linePath,\n          class: \"taou-curve\",\n          \"aria-hidden\": \"true\"\n        })\n      );\n\n      const labelsGroup = makeSvg(\"g\", { \"aria-hidden\": \"true\" });\n      data.forEach(([year], index) => {\n        if (year % 5 !== 0) return;\n        const label = makeSvg(\"text\", {\n          x: x(index),\n          y: H - 25,\n          class: \"taou-x-label\"\n        });\n        label.textContent = year;\n        labelsGroup.appendChild(label);\n      });\n      svg.appendChild(labelsGroup);\n\n      const markerLine = makeSvg(\"line\", {\n        x1: x(activeIndex),\n        x2: x(activeIndex),\n        y1: margin.top,\n        y2: H - margin.bottom,\n        class: \"taou-marker-line\",\n        visibility: \"hidden\",\n        \"aria-hidden\": \"true\"\n      });\n      svg.appendChild(markerLine);\n\n      const marker = makeSvg(\"circle\", {\n        cx: x(activeIndex),\n        cy: y(data[activeIndex][1]),\n        r: 4.7,\n        class: \"taou-marker\",\n        visibility: \"hidden\",\n        \"aria-hidden\": \"true\"\n      });\n      svg.appendChild(marker);\n\n      const overlay = makeSvg(\"rect\", {\n        x: margin.left,\n        y: margin.top,\n        width: plotW,\n        height: plotH,\n        class: \"taou-overlay\",\n        \"aria-hidden\": \"true\"\n      });\n      svg.appendChild(overlay);\n\n      const setSelectionCard = (index) => {\n        const [year, value] = data[index];\n        selection.classList.add(\"has-value\");\n        selection.innerHTML =\n          `<strong>Ao\u00fbt ${year}<\/strong> \u2014 temp\u00e9rature moyenne : ` +\n          `<strong>${formatValue(value)} \u00b0C<\/strong> \u2022 \u00e9cart \u00e0 la normale : ` +\n          `<strong>${formatGap(value - NORMAL)} \u00b0C<\/strong>`;\n      };\n\n      const placeTooltip = (index) => {\n        const [year, value] = data[index];\n        const svgRect = svg.getBoundingClientRect();\n        const stageRect = stage.getBoundingClientRect();\n        const pointClientX = svgRect.left + (x(index) \/ W) * svgRect.width;\n        const pointClientY = svgRect.top + (y(value) \/ H) * svgRect.height;\n        const tooltipX = Math.max(\n          120,\n          Math.min(stageRect.width - 120, pointClientX - stageRect.left)\n        );\n        const tooltipY = Math.max(86, pointClientY - stageRect.top);\n\n        tooltip.innerHTML =\n          `<strong>Ao\u00fbt ${year}<\/strong>` +\n          `<span>Temp\u00e9rature moyenne : ${formatValue(value)} \u00b0C<\/span>` +\n          `<span>\u00c9cart \u00e0 la normale : ${formatGap(value - NORMAL)} \u00b0C<\/span>`;\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 showIndex = (index, showTooltip = true) => {\n        activeIndex = Math.max(0, Math.min(data.length - 1, index));\n        const value = data[activeIndex][1];\n        markerLine.setAttribute(\"x1\", x(activeIndex));\n        markerLine.setAttribute(\"x2\", x(activeIndex));\n        markerLine.setAttribute(\"visibility\", \"visible\");\n        marker.setAttribute(\"cx\", x(activeIndex));\n        marker.setAttribute(\"cy\", y(value));\n        marker.setAttribute(\"visibility\", \"visible\");\n        setSelectionCard(activeIndex);\n        if (showTooltip) placeTooltip(activeIndex);\n      };\n\n      const resetSelectionCard = () => {\n        selection.classList.remove(\"has-value\");\n        selection.textContent =\n          \"Survolez ou touchez la courbe pour afficher la temp\u00e9rature d\u2019une ann\u00e9e.\";\n      };\n\n      const hidePointer = (resetCard = false) => {\n        markerLine.setAttribute(\"visibility\", \"hidden\");\n        marker.setAttribute(\"visibility\", \"hidden\");\n        tooltip.classList.remove(\"is-visible\");\n        tooltip.setAttribute(\"aria-hidden\", \"true\");\n        if (resetCard) resetSelectionCard();\n      };\n\n      const indexFromPointer = (event) => {\n        const rect = svg.getBoundingClientRect();\n        const svgX = ((event.clientX - rect.left) \/ rect.width) * W;\n        const ratio = (svgX - margin.left) \/ plotW;\n        return Math.round(\n          Math.max(0, Math.min(1, ratio)) * (data.length - 1)\n        );\n      };\n\n      overlay.addEventListener(\"pointerenter\", (event) => {\n        if (event.pointerType === \"mouse\" || !pinned) {\n          showIndex(indexFromPointer(event));\n        }\n      });\n\n      overlay.addEventListener(\"pointermove\", (event) => {\n        if (event.pointerType === \"mouse\" || !pinned) {\n          showIndex(indexFromPointer(event));\n        }\n      });\n\n      overlay.addEventListener(\"pointerleave\", (event) => {\n        if (event.pointerType === \"mouse\") {\n          pinned = false;\n          hidePointer(true);\n        } else if (!pinned) {\n          hidePointer(true);\n        }\n      });\n\n      overlay.addEventListener(\"pointerdown\", (event) => {\n        if (event.pointerType === \"mouse\") return;\n        pinned = true;\n        showIndex(indexFromPointer(event));\n      });\n\n      svg.addEventListener(\"keydown\", (event) => {\n        if (event.key !== \"ArrowLeft\" && event.key !== \"ArrowRight\" &&\n            event.key !== \"Home\" && event.key !== \"End\" &&\n            event.key !== \"Enter\" && event.key !== \" \" &&\n            event.key !== \"Escape\") return;\n\n        event.preventDefault();\n\n        if (event.key === \"ArrowLeft\") {\n          pinned = true;\n          showIndex(activeIndex - 1);\n        } else if (event.key === \"ArrowRight\") {\n          pinned = true;\n          showIndex(activeIndex + 1);\n        } else if (event.key === \"Home\") {\n          pinned = true;\n          showIndex(0);\n        } else if (event.key === \"End\") {\n          pinned = true;\n          showIndex(data.length - 1);\n        } else if (event.key === \"Enter\" || event.key === \" \") {\n          pinned = true;\n          showIndex(activeIndex);\n        } else if (event.key === \"Escape\") {\n          pinned = false;\n          hidePointer(true);\n        }\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        pinned = false;\n        hidePointer(true);\n      });\n\n      window.addEventListener(\"resize\", () => {\n        if (tooltip.classList.contains(\"is-visible\")) {\n          placeTooltip(activeIndex);\n        }\n      });\n  })();\n<\/script><!--\n  Graphique interactif WordPress\n  \u00c0 coller dans un bloc \u00ab HTML personnalis\u00e9 \u00bb.\n  Aucune biblioth\u00e8que externe n'est n\u00e9cessaire.\n-->\n<div id=\"graphique-temperatures-septembre\" class=\"tsep-widget\" data-tsep-chart>\n  <div class=\"tsep-header\">\n    <h2>Temp\u00e9rature moyenne observ\u00e9e en septembre depuis 1921 (France)<\/h2>\n    <p>Valeurs en degr\u00e9s Celsius<\/p>\n  <\/div>\n\n  <div\n    class=\"tsep-reference\"\n    role=\"note\"\n    aria-label=\"Normale 1991-2020 : 17,52 degr\u00e9s Celsius\"\n  >\n    <span>Normale 1991-2020<\/span>\n    <strong>17,52\u00a0\u00b0C<\/strong>\n  <\/div>\n\n  <div class=\"tsep-toggle-row\">\n    <button\n      class=\"tsep-toggle\"\n      data-tsep-toggle\n      type=\"button\"\n      role=\"switch\"\n      aria-checked=\"false\"\n    >\n      <span class=\"tsep-toggle-track\" aria-hidden=\"true\">\n        <span class=\"tsep-toggle-dot\"><\/span>\n      <\/span>\n      <span data-tsep-toggle-label>Afficher le diagramme<\/span>\n    <\/button>\n  <\/div>\n\n  <div class=\"tsep-content\" data-tsep-content hidden>\n    <div class=\"tsep-selection\" data-tsep-selection aria-live=\"polite\">\n      Survolez ou touchez la courbe pour afficher la temp\u00e9rature d\u2019une ann\u00e9e.\n    <\/div>\n\n    <div class=\"tsep-scroll\" aria-label=\"Graphique d\u00e9filable horizontalement sur mobile\">\n      <div class=\"tsep-stage\">\n        <svg\n          class=\"tsep-svg\"\n          data-tsep-svg\n          viewBox=\"0 0 1240 520\"\n          role=\"img\"\n          aria-labelledby=\"tsep-title tsep-desc\"\n          preserveAspectRatio=\"xMidYMid meet\"\n        >\n          <title id=\"tsep-title\">\n            Temp\u00e9rature moyenne observ\u00e9e en septembre en France, de 1921 \u00e0 2025\n          <\/title>\n          <desc id=\"tsep-desc\">\n            Courbe bleue interactive de la temp\u00e9rature moyenne nationale observ\u00e9e\n            en septembre. La ligne pointill\u00e9e repr\u00e9sente la normale 1991-2020 de 17,52 \u00b0C.\n            Les fl\u00e8ches gauche et droite permettent de parcourir les ann\u00e9es.\n          <\/desc>\n        <\/svg>\n        <div class=\"tsep-tooltip\" data-tsep-tooltip role=\"status\" aria-hidden=\"true\"><\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"tsep-legend\" aria-label=\"L\u00e9gende\">\n      <span><i class=\"tsep-line-key\"><\/i> Temp\u00e9rature moyenne observ\u00e9e<\/span>\n      <span><i class=\"tsep-normal-key\"><\/i> Normale 1991-2020 : 17,52\u00a0\u00b0C<\/span>\n    <\/div>\n\n    <p class=\"tsep-note\">\n      Les valeurs 2024 et 2025 ont \u00e9t\u00e9 ajout\u00e9es \u00e0 partir des bilans climatiques\n      mensuels officiels. La valeur mensuelle d\u00e9finitive de 2026 n\u2019est pas encore disponible.\n    <\/p>\n\n    <p class=\"tsep-source\">\n      Source : M\u00e9t\u00e9o-France \u2022 Indicateur thermique national\n    <\/p>\n  <\/div>\n<\/div>\n\n<style>\n  .tsep-widget,\n  .tsep-widget * {\n    box-sizing: border-box;\n  }\n\n  .tsep-widget {\n    --tsep-blue: #2f80ed;\n    --tsep-blue-dark: #145eb8;\n    --tsep-blue-soft: #eaf4ff;\n    --tsep-grid: #dfe6ee;\n    --tsep-ink: #17202a;\n    --tsep-muted: #5d6874;\n    width: 100%;\n    max-width: 1280px;\n    margin: 24px auto;\n    padding: clamp(18px, 3vw, 32px);\n    overflow: hidden;\n    color: var(--tsep-ink);\n    background: #ffffff;\n    border: 1px solid #e7ecf2;\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  .tsep-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  .tsep-header p {\n    margin: 8px 0 0;\n    color: var(--tsep-muted);\n    font-size: 15px;\n  }\n\n  .tsep-reference {\n    display: inline-flex;\n    align-items: center;\n    gap: 10px;\n    margin-top: 18px;\n    padding: 10px 14px;\n    color: #184d82;\n    background: var(--tsep-blue-soft);\n    border: 1px solid #bfdcff;\n    border-radius: 11px;\n    font-size: 14px;\n  }\n\n  .tsep-reference span {\n    font-weight: 700;\n  }\n\n  .tsep-reference strong {\n    font-size: 17px;\n    color: #0f559f;\n  }\n\n  .tsep-toggle-row {\n    margin-top: 16px;\n  }\n\n  .tsep-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  .tsep-toggle:hover {\n    color: #17202a;\n    background: #eef2f6;\n    border-color: #cbd3dc;\n  }\n\n  .tsep-toggle:focus-visible,\n  .tsep-svg:focus-visible {\n    outline: 3px solid rgba(47, 128, 237, 0.28);\n    outline-offset: 3px;\n  }\n\n  .tsep-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  .tsep-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  .tsep-toggle.is-active {\n    color: #174f8d;\n    background: #eff6ff;\n    border-color: #b9d4f2;\n  }\n\n  .tsep-toggle.is-active .tsep-toggle-track {\n    background: var(--tsep-blue-dark);\n  }\n\n  .tsep-toggle.is-active .tsep-toggle-dot {\n    transform: translateX(16px);\n  }\n\n  .tsep-content[hidden] {\n    display: none;\n  }\n\n  .tsep-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  .tsep-selection strong {\n    color: #0f559f;\n  }\n\n  .tsep-selection.has-value {\n    color: #24415f;\n    background: #eef7ff;\n    border-left-color: var(--tsep-blue);\n  }\n\n  .tsep-scroll {\n    width: 100%;\n    overflow-x: auto;\n    overflow-y: hidden;\n    padding-top: 6px;\n    scrollbar-color: #aeb7c2 #edf0f3;\n    scrollbar-width: thin;\n    -webkit-overflow-scrolling: touch;\n  }\n\n  .tsep-stage {\n    position: relative;\n    width: 100%;\n    min-width: 940px;\n  }\n\n  .tsep-svg {\n    display: block;\n    width: 100%;\n    height: auto;\n    overflow: visible;\n    cursor: crosshair;\n    touch-action: pan-x pan-y;\n  }\n\n  .tsep-grid-line {\n    stroke: var(--tsep-grid);\n    stroke-width: 1;\n    vector-effect: non-scaling-stroke;\n  }\n\n  .tsep-zero-line {\n    stroke: #aeb8c3;\n    stroke-width: 1.5;\n    vector-effect: non-scaling-stroke;\n  }\n\n  .tsep-normal-line {\n    stroke: #536273;\n    stroke-width: 1.7;\n    stroke-dasharray: 7 6;\n    vector-effect: non-scaling-stroke;\n  }\n\n  .tsep-normal-label {\n    fill: #4e5b68;\n    font-size: 12px;\n    font-weight: 700;\n    text-anchor: end;\n  }\n\n  .tsep-y-label,\n  .tsep-x-label,\n  .tsep-axis-unit {\n    fill: #687582;\n    font-family: Arial, Helvetica, sans-serif;\n  }\n\n  .tsep-y-label {\n    font-size: 13px;\n    text-anchor: end;\n    dominant-baseline: middle;\n  }\n\n  .tsep-x-label {\n    font-size: 11px;\n    text-anchor: middle;\n  }\n\n  .tsep-axis-unit {\n    font-size: 12px;\n    font-weight: 700;\n  }\n\n  .tsep-area {\n    pointer-events: none;\n  }\n\n  .tsep-curve {\n    fill: none;\n    stroke: var(--tsep-blue);\n    stroke-width: 2.1;\n    stroke-linecap: round;\n    stroke-linejoin: round;\n    vector-effect: non-scaling-stroke;\n    pointer-events: none;\n  }\n\n  .tsep-marker-line {\n    stroke: rgba(20, 94, 184, 0.42);\n    stroke-width: 1;\n    stroke-dasharray: 4 4;\n    vector-effect: non-scaling-stroke;\n    pointer-events: none;\n  }\n\n  .tsep-marker {\n    fill: #ffffff;\n    stroke: var(--tsep-blue-dark);\n    stroke-width: 2.2;\n    vector-effect: non-scaling-stroke;\n    filter: drop-shadow(0 2px 4px rgba(20, 94, 184, 0.28));\n    pointer-events: none;\n  }\n\n  .tsep-overlay {\n    fill: transparent;\n    pointer-events: all;\n  }\n\n  .tsep-tooltip {\n    position: absolute;\n    z-index: 4;\n    width: max-content;\n    max-width: 235px;\n    padding: 10px 12px;\n    color: #ffffff;\n    background: rgba(18, 34, 51, 0.97);\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  .tsep-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, 34, 51, 0.97);\n    transform: translateX(-50%);\n  }\n\n  .tsep-tooltip.is-visible {\n    opacity: 1;\n  }\n\n  .tsep-tooltip strong,\n  .tsep-tooltip span {\n    display: block;\n  }\n\n  .tsep-tooltip strong {\n    margin-bottom: 2px;\n    font-size: 14px;\n  }\n\n  .tsep-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  .tsep-legend span {\n    display: inline-flex;\n    align-items: center;\n    gap: 8px;\n  }\n\n  .tsep-line-key,\n  .tsep-normal-key {\n    display: inline-block;\n    width: 30px;\n    height: 0;\n  }\n\n  .tsep-line-key {\n    border-top: 2px solid var(--tsep-blue);\n    border-radius: 999px;\n  }\n\n  .tsep-normal-key {\n    border-top: 2px dashed #536273;\n  }\n\n  .tsep-note {\n    margin: 16px 0 0;\n    padding: 11px 13px;\n    color: #52606d;\n    background: #f6f8fa;\n    border-radius: 9px;\n    font-size: 12px;\n    line-height: 1.5;\n  }\n\n  .tsep-source {\n    margin: 13px 0 0;\n    color: #737d87;\n    font-size: 12px;\n  }\n\n  @media (max-width: 720px) {\n    .tsep-widget {\n      margin: 14px auto;\n      padding: 17px 14px 19px;\n      border-radius: 13px;\n    }\n\n    .tsep-reference {\n      width: 100%;\n      justify-content: space-between;\n    }\n\n    .tsep-selection {\n      margin-top: 15px;\n    }\n\n    .tsep-scroll {\n      padding-bottom: 7px;\n    }\n\n    .tsep-stage {\n      min-width: 900px;\n    }\n\n    .tsep-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    .tsep-toggle,\n    .tsep-toggle-track,\n    .tsep-toggle-dot,\n    .tsep-tooltip {\n      transition: none;\n    }\n  }\n<\/style>\n\n<script>\n  (() => {\n    const widget = document.getElementById(\"graphique-temperatures-septembre\");\n    const NORMAL = 17.52;\n\n    if (!widget || widget.dataset.tsepReady === \"true\") return;\n    widget.dataset.tsepReady = \"true\";\n\n      const data = [\n        [1921, 18.2], [1922, 14.4], [1923, 16.2], [1924, 16.4], [1925, 14.3],\n        [1926, 18.7], [1927, 16.2], [1928, 17.0], [1929, 19.6], [1930, 17.2],\n        [1931, 13.4], [1932, 18.3], [1933, 17.9], [1934, 18.4], [1935, 17.3],\n        [1936, 17.2], [1937, 16.8], [1938, 16.4], [1939, 16.2], [1940, 16.5],\n        [1941, 16.2], [1942, 17.7], [1943, 17.0], [1944, 16.0], [1945, 17.6],\n        [1946, 17.2], [1947, 18.7], [1948, 16.3], [1949, 20.3], [1950, 16.1],\n        [1951, 17.6], [1952, 14.3], [1953, 17.3], [1954, 16.6], [1955, 16.7],\n        [1956, 17.7], [1957, 16.2], [1958, 18.5], [1959, 18.3], [1960, 15.4],\n        [1961, 19.9], [1962, 16.6], [1963, 16.2], [1964, 18.1], [1965, 14.7],\n        [1966, 17.7], [1967, 16.4], [1968, 16.2], [1969, 16.9], [1970, 17.8],\n        [1971, 16.6], [1972, 14.2], [1973, 18.0], [1974, 15.7], [1975, 17.2],\n        [1976, 15.8], [1977, 15.6], [1978, 16.6], [1979, 16.8], [1980, 17.8],\n        [1981, 17.4], [1982, 18.8], [1983, 17.6], [1984, 15.8], [1985, 18.5],\n        [1986, 16.2], [1987, 19.3], [1988, 16.8], [1989, 17.4], [1990, 17.0],\n        [1991, 19.2], [1992, 16.6], [1993, 15.8], [1994, 16.2], [1995, 15.5],\n        [1996, 15.1], [1997, 18.2], [1998, 17.3], [1999, 19.2], [2000, 18.2],\n        [2001, 15.4], [2002, 16.6], [2003, 17.7], [2004, 18.2], [2005, 18.1],\n        [2006, 19.7], [2007, 16.2], [2008, 15.9], [2009, 18.1], [2010, 16.6],\n        [2011, 19.1], [2012, 17.0], [2013, 17.8], [2014, 18.9], [2015, 16.4],\n        [2016, 19.7], [2017, 16.4], [2018, 19.0], [2019, 18.5], [2020, 19.0],\n        [2021, 19.3], [2022, 18.2], [2023, 21.1], [2024, 17.2], [2025, 17.5]\n      ];\n\n      const svg = widget.querySelector(\"[data-tsep-svg]\");\n      const tooltip = widget.querySelector(\"[data-tsep-tooltip]\");\n      const selection = widget.querySelector(\"[data-tsep-selection]\");\n      const stage = widget.querySelector(\".tsep-stage\");\n      const toggle = widget.querySelector(\"[data-tsep-toggle]\");\n      const toggleLabel = widget.querySelector(\"[data-tsep-toggle-label]\");\n      const content = widget.querySelector(\"[data-tsep-content]\");\n      const ns = \"http:\/\/www.w3.org\/2000\/svg\";\n\n      const contentId = \"tsep-chart-content\";\n      const gradientId = \"tsep-area-gradient\";\n      content.id = contentId;\n      toggle.setAttribute(\"aria-controls\", contentId);\n\n      const W = 1240;\n      const H = 520;\n      const margin = { top: 31, right: 22, bottom: 62, left: 62 };\n      const plotW = W - margin.left - margin.right;\n      const plotH = H - margin.top - margin.bottom;\n      const minY = 13;\n      const maxY = 22;\n      const ticks = [13, 14, 15, 16, 17, 18, 19, 20, 21, 22];\n      let activeIndex = data.length - 1;\n      let pinned = false;\n\n      const x = (index) =>\n        margin.left + (index \/ (data.length - 1)) * plotW;\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, digits = 1) =>\n        value.toFixed(digits).replace(\".\", \",\").replace(\"-\", \"\u2212\");\n\n      const formatGap = (value) => {\n        const sign = value > 0 ? \"+\" : value < 0 ? \"\u2212\" : \"\";\n        return sign + Math.abs(value).toFixed(1).replace(\".\", \",\");\n      };\n\n      const defs = makeSvg(\"defs\");\n      const gradient = makeSvg(\"linearGradient\", {\n        id: gradientId,\n        x1: \"0\",\n        x2: \"0\",\n        y1: \"0\",\n        y2: \"1\"\n      });\n      gradient.appendChild(\n        makeSvg(\"stop\", {\n          offset: \"0%\",\n          \"stop-color\": \"#2f80ed\",\n          \"stop-opacity\": \"0.24\"\n        })\n      );\n      gradient.appendChild(\n        makeSvg(\"stop\", {\n          offset: \"100%\",\n          \"stop-color\": \"#2f80ed\",\n          \"stop-opacity\": \"0.025\"\n        })\n      );\n      defs.appendChild(gradient);\n      svg.appendChild(defs);\n\n      const gridGroup = makeSvg(\"g\", { \"aria-hidden\": \"true\" });\n      ticks.forEach((tick) => {\n        gridGroup.appendChild(\n          makeSvg(\"line\", {\n            x1: margin.left,\n            x2: W - margin.right,\n            y1: y(tick),\n            y2: y(tick),\n            class: tick === 0 ? \"tsep-zero-line\" : \"tsep-grid-line\"\n          })\n        );\n\n        const label = makeSvg(\"text\", {\n          x: margin.left - 11,\n          y: y(tick),\n          class: \"tsep-y-label\"\n        });\n        label.textContent = formatValue(tick);\n        gridGroup.appendChild(label);\n      });\n\n      const unit = makeSvg(\"text\", {\n        x: 8,\n        y: 19,\n        class: \"tsep-axis-unit\"\n      });\n      unit.textContent = \"Temp\u00e9rature (\u00b0C)\";\n      gridGroup.appendChild(unit);\n      svg.appendChild(gridGroup);\n\n      svg.appendChild(\n        makeSvg(\"line\", {\n          x1: margin.left,\n          x2: W - margin.right,\n          y1: y(NORMAL),\n          y2: y(NORMAL),\n          class: \"tsep-normal-line\",\n          \"aria-hidden\": \"true\"\n        })\n      );\n\n      const normalLabel = makeSvg(\"text\", {\n        x: W - margin.right - 3,\n        y: y(NORMAL) - 8,\n        class: \"tsep-normal-label\",\n        \"aria-hidden\": \"true\"\n      });\n      normalLabel.textContent = \"Normale 1991-2020 : 9,09 \u00b0C\";\n      svg.appendChild(normalLabel);\n\n      const linePath = data\n        .map(([, value], index) =>\n          `${index === 0 ? \"M\" : \"L\"} ${x(index)} ${y(value)}`\n        )\n        .join(\" \");\n\n      const areaPath =\n        linePath +\n        ` L ${x(data.length - 1)} ${y(minY)}` +\n        ` L ${x(0)} ${y(minY)} Z`;\n\n      svg.appendChild(\n        makeSvg(\"path\", {\n          d: areaPath,\n          class: \"tsep-area\",\n          fill: `url(#${gradientId})`,\n          \"aria-hidden\": \"true\"\n        })\n      );\n\n      svg.appendChild(\n        makeSvg(\"path\", {\n          d: linePath,\n          class: \"tsep-curve\",\n          \"aria-hidden\": \"true\"\n        })\n      );\n\n      const labelsGroup = makeSvg(\"g\", { \"aria-hidden\": \"true\" });\n      data.forEach(([year], index) => {\n        if (year % 5 !== 0) return;\n        const label = makeSvg(\"text\", {\n          x: x(index),\n          y: H - 25,\n          class: \"tsep-x-label\"\n        });\n        label.textContent = year;\n        labelsGroup.appendChild(label);\n      });\n      svg.appendChild(labelsGroup);\n\n      const markerLine = makeSvg(\"line\", {\n        x1: x(activeIndex),\n        x2: x(activeIndex),\n        y1: margin.top,\n        y2: H - margin.bottom,\n        class: \"tsep-marker-line\",\n        visibility: \"hidden\",\n        \"aria-hidden\": \"true\"\n      });\n      svg.appendChild(markerLine);\n\n      const marker = makeSvg(\"circle\", {\n        cx: x(activeIndex),\n        cy: y(data[activeIndex][1]),\n        r: 4.7,\n        class: \"tsep-marker\",\n        visibility: \"hidden\",\n        \"aria-hidden\": \"true\"\n      });\n      svg.appendChild(marker);\n\n      const overlay = makeSvg(\"rect\", {\n        x: margin.left,\n        y: margin.top,\n        width: plotW,\n        height: plotH,\n        class: \"tsep-overlay\",\n        \"aria-hidden\": \"true\"\n      });\n      svg.appendChild(overlay);\n\n      const setSelectionCard = (index) => {\n        const [year, value] = data[index];\n        selection.classList.add(\"has-value\");\n        selection.innerHTML =\n          `<strong>Septembre ${year}<\/strong> \u2014 temp\u00e9rature moyenne : ` +\n          `<strong>${formatValue(value)} \u00b0C<\/strong> \u2022 \u00e9cart \u00e0 la normale : ` +\n          `<strong>${formatGap(value - NORMAL)} \u00b0C<\/strong>`;\n      };\n\n      const placeTooltip = (index) => {\n        const [year, value] = data[index];\n        const svgRect = svg.getBoundingClientRect();\n        const stageRect = stage.getBoundingClientRect();\n        const pointClientX = svgRect.left + (x(index) \/ W) * svgRect.width;\n        const pointClientY = svgRect.top + (y(value) \/ H) * svgRect.height;\n        const tooltipX = Math.max(\n          120,\n          Math.min(stageRect.width - 120, pointClientX - stageRect.left)\n        );\n        const tooltipY = Math.max(86, pointClientY - stageRect.top);\n\n        tooltip.innerHTML =\n          `<strong>Septembre ${year}<\/strong>` +\n          `<span>Temp\u00e9rature moyenne : ${formatValue(value)} \u00b0C<\/span>` +\n          `<span>\u00c9cart \u00e0 la normale : ${formatGap(value - NORMAL)} \u00b0C<\/span>`;\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 showIndex = (index, showTooltip = true) => {\n        activeIndex = Math.max(0, Math.min(data.length - 1, index));\n        const value = data[activeIndex][1];\n        markerLine.setAttribute(\"x1\", x(activeIndex));\n        markerLine.setAttribute(\"x2\", x(activeIndex));\n        markerLine.setAttribute(\"visibility\", \"visible\");\n        marker.setAttribute(\"cx\", x(activeIndex));\n        marker.setAttribute(\"cy\", y(value));\n        marker.setAttribute(\"visibility\", \"visible\");\n        setSelectionCard(activeIndex);\n        if (showTooltip) placeTooltip(activeIndex);\n      };\n\n      const resetSelectionCard = () => {\n        selection.classList.remove(\"has-value\");\n        selection.textContent =\n          \"Survolez ou touchez la courbe pour afficher la temp\u00e9rature d\u2019une ann\u00e9e.\";\n      };\n\n      const hidePointer = (resetCard = false) => {\n        markerLine.setAttribute(\"visibility\", \"hidden\");\n        marker.setAttribute(\"visibility\", \"hidden\");\n        tooltip.classList.remove(\"is-visible\");\n        tooltip.setAttribute(\"aria-hidden\", \"true\");\n        if (resetCard) resetSelectionCard();\n      };\n\n      const indexFromPointer = (event) => {\n        const rect = svg.getBoundingClientRect();\n        const svgX = ((event.clientX - rect.left) \/ rect.width) * W;\n        const ratio = (svgX - margin.left) \/ plotW;\n        return Math.round(\n          Math.max(0, Math.min(1, ratio)) * (data.length - 1)\n        );\n      };\n\n      overlay.addEventListener(\"pointerenter\", (event) => {\n        if (event.pointerType === \"mouse\" || !pinned) {\n          showIndex(indexFromPointer(event));\n        }\n      });\n\n      overlay.addEventListener(\"pointermove\", (event) => {\n        if (event.pointerType === \"mouse\" || !pinned) {\n          showIndex(indexFromPointer(event));\n        }\n      });\n\n      overlay.addEventListener(\"pointerleave\", (event) => {\n        if (event.pointerType === \"mouse\") {\n          pinned = false;\n          hidePointer(true);\n        } else if (!pinned) {\n          hidePointer(true);\n        }\n      });\n\n      overlay.addEventListener(\"pointerdown\", (event) => {\n        if (event.pointerType === \"mouse\") return;\n        pinned = true;\n        showIndex(indexFromPointer(event));\n      });\n\n      svg.addEventListener(\"keydown\", (event) => {\n        if (event.key !== \"ArrowLeft\" && event.key !== \"ArrowRight\" &&\n            event.key !== \"Home\" && event.key !== \"End\" &&\n            event.key !== \"Enter\" && event.key !== \" \" &&\n            event.key !== \"Escape\") return;\n\n        event.preventDefault();\n\n        if (event.key === \"ArrowLeft\") {\n          pinned = true;\n          showIndex(activeIndex - 1);\n        } else if (event.key === \"ArrowRight\") {\n          pinned = true;\n          showIndex(activeIndex + 1);\n        } else if (event.key === \"Home\") {\n          pinned = true;\n          showIndex(0);\n        } else if (event.key === \"End\") {\n          pinned = true;\n          showIndex(data.length - 1);\n        } else if (event.key === \"Enter\" || event.key === \" \") {\n          pinned = true;\n          showIndex(activeIndex);\n        } else if (event.key === \"Escape\") {\n          pinned = false;\n          hidePointer(true);\n        }\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        pinned = false;\n        hidePointer(true);\n      });\n\n      window.addEventListener(\"resize\", () => {\n        if (tooltip.classList.contains(\"is-visible\")) {\n          placeTooltip(activeIndex);\n        }\n      });\n  })();\n<\/script><!--\n  Graphique interactif WordPress\n  \u00c0 coller dans un bloc \u00ab HTML personnalis\u00e9 \u00bb.\n  Aucune biblioth\u00e8que externe n'est n\u00e9cessaire.\n-->\n<div id=\"graphique-temperatures-octobre\" class=\"toct-widget\" data-toct-chart>\n  <div class=\"toct-header\">\n    <h2>Temp\u00e9rature moyenne observ\u00e9e en octobre depuis 1921 (France)<\/h2>\n    <p>Valeurs en degr\u00e9s Celsius<\/p>\n  <\/div>\n\n  <div\n    class=\"toct-reference\"\n    role=\"note\"\n    aria-label=\"Normale 1991-2020 : 13,71 degr\u00e9s Celsius\"\n  >\n    <span>Normale 1991-2020<\/span>\n    <strong>13,71\u00a0\u00b0C<\/strong>\n  <\/div>\n\n  <div class=\"toct-toggle-row\">\n    <button\n      class=\"toct-toggle\"\n      data-toct-toggle\n      type=\"button\"\n      role=\"switch\"\n      aria-checked=\"false\"\n    >\n      <span class=\"toct-toggle-track\" aria-hidden=\"true\">\n        <span class=\"toct-toggle-dot\"><\/span>\n      <\/span>\n      <span data-toct-toggle-label>Afficher le diagramme<\/span>\n    <\/button>\n  <\/div>\n\n  <div class=\"toct-content\" data-toct-content hidden>\n    <div class=\"toct-selection\" data-toct-selection aria-live=\"polite\">\n      Survolez ou touchez la courbe pour afficher la temp\u00e9rature d\u2019une ann\u00e9e.\n    <\/div>\n\n    <div class=\"toct-scroll\" aria-label=\"Graphique d\u00e9filable horizontalement sur mobile\">\n      <div class=\"toct-stage\">\n        <svg\n          class=\"toct-svg\"\n          data-toct-svg\n          viewBox=\"0 0 1240 520\"\n          role=\"img\"\n          aria-labelledby=\"toct-title toct-desc\"\n          preserveAspectRatio=\"xMidYMid meet\"\n        >\n          <title id=\"toct-title\">\n            Temp\u00e9rature moyenne observ\u00e9e en octobre en France, de 1921 \u00e0 2025\n          <\/title>\n          <desc id=\"toct-desc\">\n            Courbe bleue interactive de la temp\u00e9rature moyenne nationale observ\u00e9e\n            en octobre. La ligne pointill\u00e9e repr\u00e9sente la normale 1991-2020 de 13,71 \u00b0C.\n            Les fl\u00e8ches gauche et droite permettent de parcourir les ann\u00e9es.\n          <\/desc>\n        <\/svg>\n        <div class=\"toct-tooltip\" data-toct-tooltip role=\"status\" aria-hidden=\"true\"><\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"toct-legend\" aria-label=\"L\u00e9gende\">\n      <span><i class=\"toct-line-key\"><\/i> Temp\u00e9rature moyenne observ\u00e9e<\/span>\n      <span><i class=\"toct-normal-key\"><\/i> Normale 1991-2020 : 13,71\u00a0\u00b0C<\/span>\n    <\/div>\n\n    <p class=\"toct-note\">\n      Les valeurs 2024 et 2025 ont \u00e9t\u00e9 ajout\u00e9es \u00e0 partir des bilans climatiques\n      mensuels officiels. La valeur mensuelle d\u00e9finitive de 2026 n\u2019est pas encore disponible.\n    <\/p>\n\n    <p class=\"toct-source\">\n      Source : M\u00e9t\u00e9o-France \u2022 Indicateur thermique national\n    <\/p>\n  <\/div>\n<\/div>\n\n<style>\n  .toct-widget,\n  .toct-widget * {\n    box-sizing: border-box;\n  }\n\n  .toct-widget {\n    --toct-blue: #2f80ed;\n    --toct-blue-dark: #145eb8;\n    --toct-blue-soft: #eaf4ff;\n    --toct-grid: #dfe6ee;\n    --toct-ink: #17202a;\n    --toct-muted: #5d6874;\n    width: 100%;\n    max-width: 1280px;\n    margin: 24px auto;\n    padding: clamp(18px, 3vw, 32px);\n    overflow: hidden;\n    color: var(--toct-ink);\n    background: #ffffff;\n    border: 1px solid #e7ecf2;\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  .toct-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  .toct-header p {\n    margin: 8px 0 0;\n    color: var(--toct-muted);\n    font-size: 15px;\n  }\n\n  .toct-reference {\n    display: inline-flex;\n    align-items: center;\n    gap: 10px;\n    margin-top: 18px;\n    padding: 10px 14px;\n    color: #184d82;\n    background: var(--toct-blue-soft);\n    border: 1px solid #bfdcff;\n    border-radius: 11px;\n    font-size: 14px;\n  }\n\n  .toct-reference span {\n    font-weight: 700;\n  }\n\n  .toct-reference strong {\n    font-size: 17px;\n    color: #0f559f;\n  }\n\n  .toct-toggle-row {\n    margin-top: 16px;\n  }\n\n  .toct-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  .toct-toggle:hover {\n    color: #17202a;\n    background: #eef2f6;\n    border-color: #cbd3dc;\n  }\n\n  .toct-toggle:focus-visible,\n  .toct-svg:focus-visible {\n    outline: 3px solid rgba(47, 128, 237, 0.28);\n    outline-offset: 3px;\n  }\n\n  .toct-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  .toct-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  .toct-toggle.is-active {\n    color: #174f8d;\n    background: #eff6ff;\n    border-color: #b9d4f2;\n  }\n\n  .toct-toggle.is-active .toct-toggle-track {\n    background: var(--toct-blue-dark);\n  }\n\n  .toct-toggle.is-active .toct-toggle-dot {\n    transform: translateX(16px);\n  }\n\n  .toct-content[hidden] {\n    display: none;\n  }\n\n  .toct-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  .toct-selection strong {\n    color: #0f559f;\n  }\n\n  .toct-selection.has-value {\n    color: #24415f;\n    background: #eef7ff;\n    border-left-color: var(--toct-blue);\n  }\n\n  .toct-scroll {\n    width: 100%;\n    overflow-x: auto;\n    overflow-y: hidden;\n    padding-top: 6px;\n    scrollbar-color: #aeb7c2 #edf0f3;\n    scrollbar-width: thin;\n    -webkit-overflow-scrolling: touch;\n  }\n\n  .toct-stage {\n    position: relative;\n    width: 100%;\n    min-width: 940px;\n  }\n\n  .toct-svg {\n    display: block;\n    width: 100%;\n    height: auto;\n    overflow: visible;\n    cursor: crosshair;\n    touch-action: pan-x pan-y;\n  }\n\n  .toct-grid-line {\n    stroke: var(--toct-grid);\n    stroke-width: 1;\n    vector-effect: non-scaling-stroke;\n  }\n\n  .toct-zero-line {\n    stroke: #aeb8c3;\n    stroke-width: 1.5;\n    vector-effect: non-scaling-stroke;\n  }\n\n  .toct-normal-line {\n    stroke: #536273;\n    stroke-width: 1.7;\n    stroke-dasharray: 7 6;\n    vector-effect: non-scaling-stroke;\n  }\n\n  .toct-normal-label {\n    fill: #4e5b68;\n    font-size: 12px;\n    font-weight: 700;\n    text-anchor: end;\n  }\n\n  .toct-y-label,\n  .toct-x-label,\n  .toct-axis-unit {\n    fill: #687582;\n    font-family: Arial, Helvetica, sans-serif;\n  }\n\n  .toct-y-label {\n    font-size: 13px;\n    text-anchor: end;\n    dominant-baseline: middle;\n  }\n\n  .toct-x-label {\n    font-size: 11px;\n    text-anchor: middle;\n  }\n\n  .toct-axis-unit {\n    font-size: 12px;\n    font-weight: 700;\n  }\n\n  .toct-area {\n    pointer-events: none;\n  }\n\n  .toct-curve {\n    fill: none;\n    stroke: var(--toct-blue);\n    stroke-width: 2.1;\n    stroke-linecap: round;\n    stroke-linejoin: round;\n    vector-effect: non-scaling-stroke;\n    pointer-events: none;\n  }\n\n  .toct-marker-line {\n    stroke: rgba(20, 94, 184, 0.42);\n    stroke-width: 1;\n    stroke-dasharray: 4 4;\n    vector-effect: non-scaling-stroke;\n    pointer-events: none;\n  }\n\n  .toct-marker {\n    fill: #ffffff;\n    stroke: var(--toct-blue-dark);\n    stroke-width: 2.2;\n    vector-effect: non-scaling-stroke;\n    filter: drop-shadow(0 2px 4px rgba(20, 94, 184, 0.28));\n    pointer-events: none;\n  }\n\n  .toct-overlay {\n    fill: transparent;\n    pointer-events: all;\n  }\n\n  .toct-tooltip {\n    position: absolute;\n    z-index: 4;\n    width: max-content;\n    max-width: 235px;\n    padding: 10px 12px;\n    color: #ffffff;\n    background: rgba(18, 34, 51, 0.97);\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  .toct-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, 34, 51, 0.97);\n    transform: translateX(-50%);\n  }\n\n  .toct-tooltip.is-visible {\n    opacity: 1;\n  }\n\n  .toct-tooltip strong,\n  .toct-tooltip span {\n    display: block;\n  }\n\n  .toct-tooltip strong {\n    margin-bottom: 2px;\n    font-size: 14px;\n  }\n\n  .toct-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  .toct-legend span {\n    display: inline-flex;\n    align-items: center;\n    gap: 8px;\n  }\n\n  .toct-line-key,\n  .toct-normal-key {\n    display: inline-block;\n    width: 30px;\n    height: 0;\n  }\n\n  .toct-line-key {\n    border-top: 2px solid var(--toct-blue);\n    border-radius: 999px;\n  }\n\n  .toct-normal-key {\n    border-top: 2px dashed #536273;\n  }\n\n  .toct-note {\n    margin: 16px 0 0;\n    padding: 11px 13px;\n    color: #52606d;\n    background: #f6f8fa;\n    border-radius: 9px;\n    font-size: 12px;\n    line-height: 1.5;\n  }\n\n  .toct-source {\n    margin: 13px 0 0;\n    color: #737d87;\n    font-size: 12px;\n  }\n\n  @media (max-width: 720px) {\n    .toct-widget {\n      margin: 14px auto;\n      padding: 17px 14px 19px;\n      border-radius: 13px;\n    }\n\n    .toct-reference {\n      width: 100%;\n      justify-content: space-between;\n    }\n\n    .toct-selection {\n      margin-top: 15px;\n    }\n\n    .toct-scroll {\n      padding-bottom: 7px;\n    }\n\n    .toct-stage {\n      min-width: 900px;\n    }\n\n    .toct-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    .toct-toggle,\n    .toct-toggle-track,\n    .toct-toggle-dot,\n    .toct-tooltip {\n      transition: none;\n    }\n  }\n<\/style>\n\n<script>\n  (() => {\n    const widget = document.getElementById(\"graphique-temperatures-octobre\");\n    const NORMAL = 13.71;\n\n    if (!widget || widget.dataset.toctReady === \"true\") return;\n    widget.dataset.toctReady = \"true\";\n\n      const data = [\n        [1921, 15.7], [1922, 10.5], [1923, 13.5], [1924, 12.6], [1925, 12.9],\n        [1926, 12.9], [1927, 12.4], [1928, 12.6], [1929, 12.6], [1930, 13.4],\n        [1931, 11.9], [1932, 12.1], [1933, 13.2], [1934, 13.2], [1935, 11.6],\n        [1936, 9.9], [1937, 12.8], [1938, 12.5], [1939, 11.5], [1940, 11.5],\n        [1941, 11.6], [1942, 14.3], [1943, 13.8], [1944, 10.7], [1945, 13.5],\n        [1946, 12.3], [1947, 13.1], [1948, 12.2], [1949, 14.5], [1950, 12.3],\n        [1951, 11.4], [1952, 12.2], [1953, 13.1], [1954, 13.4], [1955, 11.2],\n        [1956, 11.5], [1957, 12.7], [1958, 12.2], [1959, 13.1], [1960, 12.2],\n        [1961, 13.5], [1962, 13.0], [1963, 12.4], [1964, 10.7], [1965, 13.4],\n        [1966, 14.0], [1967, 14.6], [1968, 14.5], [1969, 13.9], [1970, 12.1],\n        [1971, 13.2], [1972, 11.9], [1973, 11.5], [1974, 8.7], [1975, 11.3],\n        [1976, 12.9], [1977, 14.2], [1978, 12.5], [1979, 13.7], [1980, 11.8],\n        [1981, 12.6], [1982, 12.5], [1983, 12.9], [1984, 12.9], [1985, 13.4],\n        [1986, 14.4], [1987, 13.8], [1988, 14.2], [1989, 14.2], [1990, 14.7],\n        [1991, 11.8], [1992, 10.8], [1993, 11.5], [1994, 13.3], [1995, 16.0],\n        [1996, 13.1], [1997, 13.7], [1998, 12.8], [1999, 13.5], [2000, 13.3],\n        [2001, 16.3], [2002, 13.6], [2003, 11.6], [2004, 14.6], [2005, 15.8],\n        [2006, 16.1], [2007, 12.8], [2008, 12.7], [2009, 13.7], [2010, 12.7],\n        [2011, 14.3], [2012, 13.4], [2013, 15.4], [2014, 15.9], [2015, 12.7],\n        [2016, 12.6], [2017, 14.9], [2018, 14.4], [2019, 15.1], [2020, 13.0],\n        [2021, 13.5], [2022, 17.2], [2023, 16.4], [2024, 15.3], [2025, 13.9]\n      ];\n\n      const svg = widget.querySelector(\"[data-toct-svg]\");\n      const tooltip = widget.querySelector(\"[data-toct-tooltip]\");\n      const selection = widget.querySelector(\"[data-toct-selection]\");\n      const stage = widget.querySelector(\".toct-stage\");\n      const toggle = widget.querySelector(\"[data-toct-toggle]\");\n      const toggleLabel = widget.querySelector(\"[data-toct-toggle-label]\");\n      const content = widget.querySelector(\"[data-toct-content]\");\n      const ns = \"http:\/\/www.w3.org\/2000\/svg\";\n\n      const contentId = \"toct-chart-content\";\n      const gradientId = \"toct-area-gradient\";\n      content.id = contentId;\n      toggle.setAttribute(\"aria-controls\", contentId);\n\n      const W = 1240;\n      const H = 520;\n      const margin = { top: 31, right: 22, bottom: 62, left: 62 };\n      const plotW = W - margin.left - margin.right;\n      const plotH = H - margin.top - margin.bottom;\n      const minY = 8;\n      const maxY = 18;\n      const ticks = [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18];\n      let activeIndex = data.length - 1;\n      let pinned = false;\n\n      const x = (index) =>\n        margin.left + (index \/ (data.length - 1)) * plotW;\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, digits = 1) =>\n        value.toFixed(digits).replace(\".\", \",\").replace(\"-\", \"\u2212\");\n\n      const formatGap = (value) => {\n        const sign = value > 0 ? \"+\" : value < 0 ? \"\u2212\" : \"\";\n        return sign + Math.abs(value).toFixed(1).replace(\".\", \",\");\n      };\n\n      const defs = makeSvg(\"defs\");\n      const gradient = makeSvg(\"linearGradient\", {\n        id: gradientId,\n        x1: \"0\",\n        x2: \"0\",\n        y1: \"0\",\n        y2: \"1\"\n      });\n      gradient.appendChild(\n        makeSvg(\"stop\", {\n          offset: \"0%\",\n          \"stop-color\": \"#2f80ed\",\n          \"stop-opacity\": \"0.24\"\n        })\n      );\n      gradient.appendChild(\n        makeSvg(\"stop\", {\n          offset: \"100%\",\n          \"stop-color\": \"#2f80ed\",\n          \"stop-opacity\": \"0.025\"\n        })\n      );\n      defs.appendChild(gradient);\n      svg.appendChild(defs);\n\n      const gridGroup = makeSvg(\"g\", { \"aria-hidden\": \"true\" });\n      ticks.forEach((tick) => {\n        gridGroup.appendChild(\n          makeSvg(\"line\", {\n            x1: margin.left,\n            x2: W - margin.right,\n            y1: y(tick),\n            y2: y(tick),\n            class: tick === 0 ? \"toct-zero-line\" : \"toct-grid-line\"\n          })\n        );\n\n        const label = makeSvg(\"text\", {\n          x: margin.left - 11,\n          y: y(tick),\n          class: \"toct-y-label\"\n        });\n        label.textContent = formatValue(tick);\n        gridGroup.appendChild(label);\n      });\n\n      const unit = makeSvg(\"text\", {\n        x: 8,\n        y: 19,\n        class: \"toct-axis-unit\"\n      });\n      unit.textContent = \"Temp\u00e9rature (\u00b0C)\";\n      gridGroup.appendChild(unit);\n      svg.appendChild(gridGroup);\n\n      svg.appendChild(\n        makeSvg(\"line\", {\n          x1: margin.left,\n          x2: W - margin.right,\n          y1: y(NORMAL),\n          y2: y(NORMAL),\n          class: \"toct-normal-line\",\n          \"aria-hidden\": \"true\"\n        })\n      );\n\n      const normalLabel = makeSvg(\"text\", {\n        x: W - margin.right - 3,\n        y: y(NORMAL) - 8,\n        class: \"toct-normal-label\",\n        \"aria-hidden\": \"true\"\n      });\n      normalLabel.textContent = \"Normale 1991-2020 : 9,09 \u00b0C\";\n      svg.appendChild(normalLabel);\n\n      const linePath = data\n        .map(([, value], index) =>\n          `${index === 0 ? \"M\" : \"L\"} ${x(index)} ${y(value)}`\n        )\n        .join(\" \");\n\n      const areaPath =\n        linePath +\n        ` L ${x(data.length - 1)} ${y(minY)}` +\n        ` L ${x(0)} ${y(minY)} Z`;\n\n      svg.appendChild(\n        makeSvg(\"path\", {\n          d: areaPath,\n          class: \"toct-area\",\n          fill: `url(#${gradientId})`,\n          \"aria-hidden\": \"true\"\n        })\n      );\n\n      svg.appendChild(\n        makeSvg(\"path\", {\n          d: linePath,\n          class: \"toct-curve\",\n          \"aria-hidden\": \"true\"\n        })\n      );\n\n      const labelsGroup = makeSvg(\"g\", { \"aria-hidden\": \"true\" });\n      data.forEach(([year], index) => {\n        if (year % 5 !== 0) return;\n        const label = makeSvg(\"text\", {\n          x: x(index),\n          y: H - 25,\n          class: \"toct-x-label\"\n        });\n        label.textContent = year;\n        labelsGroup.appendChild(label);\n      });\n      svg.appendChild(labelsGroup);\n\n      const markerLine = makeSvg(\"line\", {\n        x1: x(activeIndex),\n        x2: x(activeIndex),\n        y1: margin.top,\n        y2: H - margin.bottom,\n        class: \"toct-marker-line\",\n        visibility: \"hidden\",\n        \"aria-hidden\": \"true\"\n      });\n      svg.appendChild(markerLine);\n\n      const marker = makeSvg(\"circle\", {\n        cx: x(activeIndex),\n        cy: y(data[activeIndex][1]),\n        r: 4.7,\n        class: \"toct-marker\",\n        visibility: \"hidden\",\n        \"aria-hidden\": \"true\"\n      });\n      svg.appendChild(marker);\n\n      const overlay = makeSvg(\"rect\", {\n        x: margin.left,\n        y: margin.top,\n        width: plotW,\n        height: plotH,\n        class: \"toct-overlay\",\n        \"aria-hidden\": \"true\"\n      });\n      svg.appendChild(overlay);\n\n      const setSelectionCard = (index) => {\n        const [year, value] = data[index];\n        selection.classList.add(\"has-value\");\n        selection.innerHTML =\n          `<strong>Octobre ${year}<\/strong> \u2014 temp\u00e9rature moyenne : ` +\n          `<strong>${formatValue(value)} \u00b0C<\/strong> \u2022 \u00e9cart \u00e0 la normale : ` +\n          `<strong>${formatGap(value - NORMAL)} \u00b0C<\/strong>`;\n      };\n\n      const placeTooltip = (index) => {\n        const [year, value] = data[index];\n        const svgRect = svg.getBoundingClientRect();\n        const stageRect = stage.getBoundingClientRect();\n        const pointClientX = svgRect.left + (x(index) \/ W) * svgRect.width;\n        const pointClientY = svgRect.top + (y(value) \/ H) * svgRect.height;\n        const tooltipX = Math.max(\n          120,\n          Math.min(stageRect.width - 120, pointClientX - stageRect.left)\n        );\n        const tooltipY = Math.max(86, pointClientY - stageRect.top);\n\n        tooltip.innerHTML =\n          `<strong>Octobre ${year}<\/strong>` +\n          `<span>Temp\u00e9rature moyenne : ${formatValue(value)} \u00b0C<\/span>` +\n          `<span>\u00c9cart \u00e0 la normale : ${formatGap(value - NORMAL)} \u00b0C<\/span>`;\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 showIndex = (index, showTooltip = true) => {\n        activeIndex = Math.max(0, Math.min(data.length - 1, index));\n        const value = data[activeIndex][1];\n        markerLine.setAttribute(\"x1\", x(activeIndex));\n        markerLine.setAttribute(\"x2\", x(activeIndex));\n        markerLine.setAttribute(\"visibility\", \"visible\");\n        marker.setAttribute(\"cx\", x(activeIndex));\n        marker.setAttribute(\"cy\", y(value));\n        marker.setAttribute(\"visibility\", \"visible\");\n        setSelectionCard(activeIndex);\n        if (showTooltip) placeTooltip(activeIndex);\n      };\n\n      const resetSelectionCard = () => {\n        selection.classList.remove(\"has-value\");\n        selection.textContent =\n          \"Survolez ou touchez la courbe pour afficher la temp\u00e9rature d\u2019une ann\u00e9e.\";\n      };\n\n      const hidePointer = (resetCard = false) => {\n        markerLine.setAttribute(\"visibility\", \"hidden\");\n        marker.setAttribute(\"visibility\", \"hidden\");\n        tooltip.classList.remove(\"is-visible\");\n        tooltip.setAttribute(\"aria-hidden\", \"true\");\n        if (resetCard) resetSelectionCard();\n      };\n\n      const indexFromPointer = (event) => {\n        const rect = svg.getBoundingClientRect();\n        const svgX = ((event.clientX - rect.left) \/ rect.width) * W;\n        const ratio = (svgX - margin.left) \/ plotW;\n        return Math.round(\n          Math.max(0, Math.min(1, ratio)) * (data.length - 1)\n        );\n      };\n\n      overlay.addEventListener(\"pointerenter\", (event) => {\n        if (event.pointerType === \"mouse\" || !pinned) {\n          showIndex(indexFromPointer(event));\n        }\n      });\n\n      overlay.addEventListener(\"pointermove\", (event) => {\n        if (event.pointerType === \"mouse\" || !pinned) {\n          showIndex(indexFromPointer(event));\n        }\n      });\n\n      overlay.addEventListener(\"pointerleave\", (event) => {\n        if (event.pointerType === \"mouse\") {\n          pinned = false;\n          hidePointer(true);\n        } else if (!pinned) {\n          hidePointer(true);\n        }\n      });\n\n      overlay.addEventListener(\"pointerdown\", (event) => {\n        if (event.pointerType === \"mouse\") return;\n        pinned = true;\n        showIndex(indexFromPointer(event));\n      });\n\n      svg.addEventListener(\"keydown\", (event) => {\n        if (event.key !== \"ArrowLeft\" && event.key !== \"ArrowRight\" &&\n            event.key !== \"Home\" && event.key !== \"End\" &&\n            event.key !== \"Enter\" && event.key !== \" \" &&\n            event.key !== \"Escape\") return;\n\n        event.preventDefault();\n\n        if (event.key === \"ArrowLeft\") {\n          pinned = true;\n          showIndex(activeIndex - 1);\n        } else if (event.key === \"ArrowRight\") {\n          pinned = true;\n          showIndex(activeIndex + 1);\n        } else if (event.key === \"Home\") {\n          pinned = true;\n          showIndex(0);\n        } else if (event.key === \"End\") {\n          pinned = true;\n          showIndex(data.length - 1);\n        } else if (event.key === \"Enter\" || event.key === \" \") {\n          pinned = true;\n          showIndex(activeIndex);\n        } else if (event.key === \"Escape\") {\n          pinned = false;\n          hidePointer(true);\n        }\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        pinned = false;\n        hidePointer(true);\n      });\n\n      window.addEventListener(\"resize\", () => {\n        if (tooltip.classList.contains(\"is-visible\")) {\n          placeTooltip(activeIndex);\n        }\n      });\n  })();\n<\/script><!--\n  Graphique interactif WordPress\n  \u00c0 coller dans un bloc \u00ab HTML personnalis\u00e9 \u00bb.\n  Aucune biblioth\u00e8que externe n'est n\u00e9cessaire.\n-->\n<div id=\"graphique-temperatures-decembre\" class=\"tdec-widget\" data-tdec-chart>\n  <div class=\"tdec-header\">\n    <h2>Temp\u00e9rature moyenne observ\u00e9e en d\u00e9cembre depuis 1921 (France)<\/h2>\n    <p>Valeurs en degr\u00e9s Celsius<\/p>\n  <\/div>\n\n  <div\n    class=\"tdec-reference\"\n    role=\"note\"\n    aria-label=\"Normale 1991-2020 : 6,06 degr\u00e9s Celsius\"\n  >\n    <span>Normale 1991-2020<\/span>\n    <strong>6,06\u00a0\u00b0C<\/strong>\n  <\/div>\n\n  <div class=\"tdec-toggle-row\">\n    <button\n      class=\"tdec-toggle\"\n      data-tdec-toggle\n      type=\"button\"\n      role=\"switch\"\n      aria-checked=\"false\"\n    >\n      <span class=\"tdec-toggle-track\" aria-hidden=\"true\">\n        <span class=\"tdec-toggle-dot\"><\/span>\n      <\/span>\n      <span data-tdec-toggle-label>Afficher le diagramme<\/span>\n    <\/button>\n  <\/div>\n\n  <div class=\"tdec-content\" data-tdec-content hidden>\n    <div class=\"tdec-selection\" data-tdec-selection aria-live=\"polite\">\n      Survolez ou touchez la courbe pour afficher la temp\u00e9rature d\u2019une ann\u00e9e.\n    <\/div>\n\n    <div class=\"tdec-scroll\" aria-label=\"Graphique d\u00e9filable horizontalement sur mobile\">\n      <div class=\"tdec-stage\">\n        <svg\n          class=\"tdec-svg\"\n          data-tdec-svg\n          viewBox=\"0 0 1240 520\"\n          role=\"img\"\n          aria-labelledby=\"tdec-title tdec-desc\"\n          preserveAspectRatio=\"xMidYMid meet\"\n        >\n          <title id=\"tdec-title\">\n            Temp\u00e9rature moyenne observ\u00e9e en d\u00e9cembre en France, de 1921 \u00e0 2025\n          <\/title>\n          <desc id=\"tdec-desc\">\n            Courbe bleue interactive de la temp\u00e9rature moyenne nationale observ\u00e9e\n            en d\u00e9cembre. La ligne pointill\u00e9e repr\u00e9sente la normale 1991-2020 de 6,06 \u00b0C.\n            Les fl\u00e8ches gauche et droite permettent de parcourir les ann\u00e9es.\n          <\/desc>\n        <\/svg>\n        <div class=\"tdec-tooltip\" data-tdec-tooltip role=\"status\" aria-hidden=\"true\"><\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"tdec-legend\" aria-label=\"L\u00e9gende\">\n      <span><i class=\"tdec-line-key\"><\/i> Temp\u00e9rature moyenne observ\u00e9e<\/span>\n      <span><i class=\"tdec-normal-key\"><\/i> Normale 1991-2020 : 6,06\u00a0\u00b0C<\/span>\n    <\/div>\n\n    <p class=\"tdec-note\">\n      Les valeurs 2024 et 2025 ont \u00e9t\u00e9 ajout\u00e9es \u00e0 partir des bilans climatiques\n      mensuels officiels. La valeur mensuelle d\u00e9finitive de 2026 n\u2019est pas encore disponible.\n    <\/p>\n\n    <p class=\"tdec-source\">\n      Source : M\u00e9t\u00e9o-France \u2022 Indicateur thermique national\n    <\/p>\n  <\/div>\n<\/div>\n\n<style>\n  .tdec-widget,\n  .tdec-widget * {\n    box-sizing: border-box;\n  }\n\n  .tdec-widget {\n    --tdec-blue: #2f80ed;\n    --tdec-blue-dark: #145eb8;\n    --tdec-blue-soft: #eaf4ff;\n    --tdec-grid: #dfe6ee;\n    --tdec-ink: #17202a;\n    --tdec-muted: #5d6874;\n    width: 100%;\n    max-width: 1280px;\n    margin: 24px auto;\n    padding: clamp(18px, 3vw, 32px);\n    overflow: hidden;\n    color: var(--tdec-ink);\n    background: #ffffff;\n    border: 1px solid #e7ecf2;\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  .tdec-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  .tdec-header p {\n    margin: 8px 0 0;\n    color: var(--tdec-muted);\n    font-size: 15px;\n  }\n\n  .tdec-reference {\n    display: inline-flex;\n    align-items: center;\n    gap: 10px;\n    margin-top: 18px;\n    padding: 10px 14px;\n    color: #184d82;\n    background: var(--tdec-blue-soft);\n    border: 1px solid #bfdcff;\n    border-radius: 11px;\n    font-size: 14px;\n  }\n\n  .tdec-reference span {\n    font-weight: 700;\n  }\n\n  .tdec-reference strong {\n    font-size: 17px;\n    color: #0f559f;\n  }\n\n  .tdec-toggle-row {\n    margin-top: 16px;\n  }\n\n  .tdec-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  .tdec-toggle:hover {\n    color: #17202a;\n    background: #eef2f6;\n    border-color: #cbd3dc;\n  }\n\n  .tdec-toggle:focus-visible,\n  .tdec-svg:focus-visible {\n    outline: 3px solid rgba(47, 128, 237, 0.28);\n    outline-offset: 3px;\n  }\n\n  .tdec-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  .tdec-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  .tdec-toggle.is-active {\n    color: #174f8d;\n    background: #eff6ff;\n    border-color: #b9d4f2;\n  }\n\n  .tdec-toggle.is-active .tdec-toggle-track {\n    background: var(--tdec-blue-dark);\n  }\n\n  .tdec-toggle.is-active .tdec-toggle-dot {\n    transform: translateX(16px);\n  }\n\n  .tdec-content[hidden] {\n    display: none;\n  }\n\n  .tdec-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  .tdec-selection strong {\n    color: #0f559f;\n  }\n\n  .tdec-selection.has-value {\n    color: #24415f;\n    background: #eef7ff;\n    border-left-color: var(--tdec-blue);\n  }\n\n  .tdec-scroll {\n    width: 100%;\n    overflow-x: auto;\n    overflow-y: hidden;\n    padding-top: 6px;\n    scrollbar-color: #aeb7c2 #edf0f3;\n    scrollbar-width: thin;\n    -webkit-overflow-scrolling: touch;\n  }\n\n  .tdec-stage {\n    position: relative;\n    width: 100%;\n    min-width: 940px;\n  }\n\n  .tdec-svg {\n    display: block;\n    width: 100%;\n    height: auto;\n    overflow: visible;\n    cursor: crosshair;\n    touch-action: pan-x pan-y;\n  }\n\n  .tdec-grid-line {\n    stroke: var(--tdec-grid);\n    stroke-width: 1;\n    vector-effect: non-scaling-stroke;\n  }\n\n  .tdec-zero-line {\n    stroke: #aeb8c3;\n    stroke-width: 1.5;\n    vector-effect: non-scaling-stroke;\n  }\n\n  .tdec-normal-line {\n    stroke: #536273;\n    stroke-width: 1.7;\n    stroke-dasharray: 7 6;\n    vector-effect: non-scaling-stroke;\n  }\n\n  .tdec-normal-label {\n    fill: #4e5b68;\n    font-size: 12px;\n    font-weight: 700;\n    text-anchor: end;\n  }\n\n  .tdec-y-label,\n  .tdec-x-label,\n  .tdec-axis-unit {\n    fill: #687582;\n    font-family: Arial, Helvetica, sans-serif;\n  }\n\n  .tdec-y-label {\n    font-size: 13px;\n    text-anchor: end;\n    dominant-baseline: middle;\n  }\n\n  .tdec-x-label {\n    font-size: 11px;\n    text-anchor: middle;\n  }\n\n  .tdec-axis-unit {\n    font-size: 12px;\n    font-weight: 700;\n  }\n\n  .tdec-area {\n    pointer-events: none;\n  }\n\n  .tdec-curve {\n    fill: none;\n    stroke: var(--tdec-blue);\n    stroke-width: 2.1;\n    stroke-linecap: round;\n    stroke-linejoin: round;\n    vector-effect: non-scaling-stroke;\n    pointer-events: none;\n  }\n\n  .tdec-marker-line {\n    stroke: rgba(20, 94, 184, 0.42);\n    stroke-width: 1;\n    stroke-dasharray: 4 4;\n    vector-effect: non-scaling-stroke;\n    pointer-events: none;\n  }\n\n  .tdec-marker {\n    fill: #ffffff;\n    stroke: var(--tdec-blue-dark);\n    stroke-width: 2.2;\n    vector-effect: non-scaling-stroke;\n    filter: drop-shadow(0 2px 4px rgba(20, 94, 184, 0.28));\n    pointer-events: none;\n  }\n\n  .tdec-overlay {\n    fill: transparent;\n    pointer-events: all;\n  }\n\n  .tdec-tooltip {\n    position: absolute;\n    z-index: 4;\n    width: max-content;\n    max-width: 235px;\n    padding: 10px 12px;\n    color: #ffffff;\n    background: rgba(18, 34, 51, 0.97);\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  .tdec-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, 34, 51, 0.97);\n    transform: translateX(-50%);\n  }\n\n  .tdec-tooltip.is-visible {\n    opacity: 1;\n  }\n\n  .tdec-tooltip strong,\n  .tdec-tooltip span {\n    display: block;\n  }\n\n  .tdec-tooltip strong {\n    margin-bottom: 2px;\n    font-size: 14px;\n  }\n\n  .tdec-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  .tdec-legend span {\n    display: inline-flex;\n    align-items: center;\n    gap: 8px;\n  }\n\n  .tdec-line-key,\n  .tdec-normal-key {\n    display: inline-block;\n    width: 30px;\n    height: 0;\n  }\n\n  .tdec-line-key {\n    border-top: 2px solid var(--tdec-blue);\n    border-radius: 999px;\n  }\n\n  .tdec-normal-key {\n    border-top: 2px dashed #536273;\n  }\n\n  .tdec-note {\n    margin: 16px 0 0;\n    padding: 11px 13px;\n    color: #52606d;\n    background: #f6f8fa;\n    border-radius: 9px;\n    font-size: 12px;\n    line-height: 1.5;\n  }\n\n  .tdec-source {\n    margin: 13px 0 0;\n    color: #737d87;\n    font-size: 12px;\n  }\n\n  @media (max-width: 720px) {\n    .tdec-widget {\n      margin: 14px auto;\n      padding: 17px 14px 19px;\n      border-radius: 13px;\n    }\n\n    .tdec-reference {\n      width: 100%;\n      justify-content: space-between;\n    }\n\n    .tdec-selection {\n      margin-top: 15px;\n    }\n\n    .tdec-scroll {\n      padding-bottom: 7px;\n    }\n\n    .tdec-stage {\n      min-width: 900px;\n    }\n\n    .tdec-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    .tdec-toggle,\n    .tdec-toggle-track,\n    .tdec-toggle-dot,\n    .tdec-tooltip {\n      transition: none;\n    }\n  }\n<\/style>\n\n<script>\n  (() => {\n    const widget = document.getElementById(\"graphique-temperatures-decembre\");\n    const NORMAL = 6.06;\n\n    if (!widget || widget.dataset.tdecReady === \"true\") return;\n    widget.dataset.tdecReady = \"true\";\n\n      const data = [\n        [1921, 5.3], [1922, 5.2], [1923, 4.6], [1924, 5.3], [1925, 5.2],\n        [1926, 3.0], [1927, 3.9], [1928, 4.6], [1929, 7.3], [1930, 5.5],\n        [1931, 3.4], [1932, 6.4], [1933, 0.4], [1934, 8.5], [1935, 5.1],\n        [1936, 5.1], [1937, 4.1], [1938, 3.5], [1939, 3.8], [1940, 1.5],\n        [1941, 4.0], [1942, 5.6], [1943, 4.3], [1944, 4.4], [1945, 5.6],\n        [1946, 2.5], [1947, 4.8], [1948, 5.3], [1949, 5.8], [1950, 2.0],\n        [1951, 5.5], [1952, 4.6], [1953, 8.1], [1954, 6.9], [1955, 7.3],\n        [1956, 6.0], [1957, 4.3], [1958, 6.0], [1959, 6.8], [1960, 4.0],\n        [1961, 5.6], [1962, 2.1], [1963, 2.2], [1964, 4.0], [1965, 6.8],\n        [1966, 6.3], [1967, 3.4], [1968, 4.1], [1969, 2.1], [1970, 3.1],\n        [1971, 5.2], [1972, 5.3], [1973, 4.5], [1974, 7.7], [1975, 3.4],\n        [1976, 4.2], [1977, 6.2], [1978, 6.5], [1979, 6.7], [1980, 3.7],\n        [1981, 5.5], [1982, 5.9], [1983, 5.2], [1984, 5.4], [1985, 6.3],\n        [1986, 6.0], [1987, 6.2], [1988, 6.5], [1989, 6.7], [1990, 3.7],\n        [1991, 4.2], [1992, 6.0], [1993, 7.3], [1994, 7.6], [1995, 5.2],\n        [1996, 4.5], [1997, 6.7], [1998, 5.5], [1999, 6.0], [2000, 8.4],\n        [2001, 3.4], [2002, 7.8], [2003, 6.1], [2004, 5.0], [2005, 3.6],\n        [2006, 6.0], [2007, 5.0], [2008, 4.5], [2009, 5.4], [2010, 2.8],\n        [2011, 7.8], [2012, 6.8], [2013, 6.3], [2014, 6.3], [2015, 9.5],\n        [2016, 5.6], [2017, 5.9], [2018, 7.7], [2019, 8.1], [2020, 6.9],\n        [2021, 6.9], [2022, 6.7], [2023, 7.9], [2024, 6.4], [2025, 7.6]\n      ];\n\n      const svg = widget.querySelector(\"[data-tdec-svg]\");\n      const tooltip = widget.querySelector(\"[data-tdec-tooltip]\");\n      const selection = widget.querySelector(\"[data-tdec-selection]\");\n      const stage = widget.querySelector(\".tdec-stage\");\n      const toggle = widget.querySelector(\"[data-tdec-toggle]\");\n      const toggleLabel = widget.querySelector(\"[data-tdec-toggle-label]\");\n      const content = widget.querySelector(\"[data-tdec-content]\");\n      const ns = \"http:\/\/www.w3.org\/2000\/svg\";\n\n      const contentId = \"tdec-chart-content\";\n      const gradientId = \"tdec-area-gradient\";\n      content.id = contentId;\n      toggle.setAttribute(\"aria-controls\", contentId);\n\n      const W = 1240;\n      const H = 520;\n      const margin = { top: 31, right: 22, bottom: 62, left: 62 };\n      const plotW = W - margin.left - margin.right;\n      const plotH = H - margin.top - margin.bottom;\n      const minY = 0;\n      const maxY = 10;\n      const ticks = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\n      let activeIndex = data.length - 1;\n      let pinned = false;\n\n      const x = (index) =>\n        margin.left + (index \/ (data.length - 1)) * plotW;\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, digits = 1) =>\n        value.toFixed(digits).replace(\".\", \",\").replace(\"-\", \"\u2212\");\n\n      const formatGap = (value) => {\n        const sign = value > 0 ? \"+\" : value < 0 ? \"\u2212\" : \"\";\n        return sign + Math.abs(value).toFixed(1).replace(\".\", \",\");\n      };\n\n      const defs = makeSvg(\"defs\");\n      const gradient = makeSvg(\"linearGradient\", {\n        id: gradientId,\n        x1: \"0\",\n        x2: \"0\",\n        y1: \"0\",\n        y2: \"1\"\n      });\n      gradient.appendChild(\n        makeSvg(\"stop\", {\n          offset: \"0%\",\n          \"stop-color\": \"#2f80ed\",\n          \"stop-opacity\": \"0.24\"\n        })\n      );\n      gradient.appendChild(\n        makeSvg(\"stop\", {\n          offset: \"100%\",\n          \"stop-color\": \"#2f80ed\",\n          \"stop-opacity\": \"0.025\"\n        })\n      );\n      defs.appendChild(gradient);\n      svg.appendChild(defs);\n\n      const gridGroup = makeSvg(\"g\", { \"aria-hidden\": \"true\" });\n      ticks.forEach((tick) => {\n        gridGroup.appendChild(\n          makeSvg(\"line\", {\n            x1: margin.left,\n            x2: W - margin.right,\n            y1: y(tick),\n            y2: y(tick),\n            class: tick === 0 ? \"tdec-zero-line\" : \"tdec-grid-line\"\n          })\n        );\n\n        const label = makeSvg(\"text\", {\n          x: margin.left - 11,\n          y: y(tick),\n          class: \"tdec-y-label\"\n        });\n        label.textContent = formatValue(tick);\n        gridGroup.appendChild(label);\n      });\n\n      const unit = makeSvg(\"text\", {\n        x: 8,\n        y: 19,\n        class: \"tdec-axis-unit\"\n      });\n      unit.textContent = \"Temp\u00e9rature (\u00b0C)\";\n      gridGroup.appendChild(unit);\n      svg.appendChild(gridGroup);\n\n      svg.appendChild(\n        makeSvg(\"line\", {\n          x1: margin.left,\n          x2: W - margin.right,\n          y1: y(NORMAL),\n          y2: y(NORMAL),\n          class: \"tdec-normal-line\",\n          \"aria-hidden\": \"true\"\n        })\n      );\n\n      const normalLabel = makeSvg(\"text\", {\n        x: W - margin.right - 3,\n        y: y(NORMAL) - 8,\n        class: \"tdec-normal-label\",\n        \"aria-hidden\": \"true\"\n      });\n      normalLabel.textContent = \"Normale 1991-2020 : 9,09 \u00b0C\";\n      svg.appendChild(normalLabel);\n\n      const linePath = data\n        .map(([, value], index) =>\n          `${index === 0 ? \"M\" : \"L\"} ${x(index)} ${y(value)}`\n        )\n        .join(\" \");\n\n      const areaPath =\n        linePath +\n        ` L ${x(data.length - 1)} ${y(minY)}` +\n        ` L ${x(0)} ${y(minY)} Z`;\n\n      svg.appendChild(\n        makeSvg(\"path\", {\n          d: areaPath,\n          class: \"tdec-area\",\n          fill: `url(#${gradientId})`,\n          \"aria-hidden\": \"true\"\n        })\n      );\n\n      svg.appendChild(\n        makeSvg(\"path\", {\n          d: linePath,\n          class: \"tdec-curve\",\n          \"aria-hidden\": \"true\"\n        })\n      );\n\n      const labelsGroup = makeSvg(\"g\", { \"aria-hidden\": \"true\" });\n      data.forEach(([year], index) => {\n        if (year % 5 !== 0) return;\n        const label = makeSvg(\"text\", {\n          x: x(index),\n          y: H - 25,\n          class: \"tdec-x-label\"\n        });\n        label.textContent = year;\n        labelsGroup.appendChild(label);\n      });\n      svg.appendChild(labelsGroup);\n\n      const markerLine = makeSvg(\"line\", {\n        x1: x(activeIndex),\n        x2: x(activeIndex),\n        y1: margin.top,\n        y2: H - margin.bottom,\n        class: \"tdec-marker-line\",\n        visibility: \"hidden\",\n        \"aria-hidden\": \"true\"\n      });\n      svg.appendChild(markerLine);\n\n      const marker = makeSvg(\"circle\", {\n        cx: x(activeIndex),\n        cy: y(data[activeIndex][1]),\n        r: 4.7,\n        class: \"tdec-marker\",\n        visibility: \"hidden\",\n        \"aria-hidden\": \"true\"\n      });\n      svg.appendChild(marker);\n\n      const overlay = makeSvg(\"rect\", {\n        x: margin.left,\n        y: margin.top,\n        width: plotW,\n        height: plotH,\n        class: \"tdec-overlay\",\n        \"aria-hidden\": \"true\"\n      });\n      svg.appendChild(overlay);\n\n      const setSelectionCard = (index) => {\n        const [year, value] = data[index];\n        selection.classList.add(\"has-value\");\n        selection.innerHTML =\n          `<strong>D\u00e9cembre ${year}<\/strong> \u2014 temp\u00e9rature moyenne : ` +\n          `<strong>${formatValue(value)} \u00b0C<\/strong> \u2022 \u00e9cart \u00e0 la normale : ` +\n          `<strong>${formatGap(value - NORMAL)} \u00b0C<\/strong>`;\n      };\n\n      const placeTooltip = (index) => {\n        const [year, value] = data[index];\n        const svgRect = svg.getBoundingClientRect();\n        const stageRect = stage.getBoundingClientRect();\n        const pointClientX = svgRect.left + (x(index) \/ W) * svgRect.width;\n        const pointClientY = svgRect.top + (y(value) \/ H) * svgRect.height;\n        const tooltipX = Math.max(\n          120,\n          Math.min(stageRect.width - 120, pointClientX - stageRect.left)\n        );\n        const tooltipY = Math.max(86, pointClientY - stageRect.top);\n\n        tooltip.innerHTML =\n          `<strong>D\u00e9cembre ${year}<\/strong>` +\n          `<span>Temp\u00e9rature moyenne : ${formatValue(value)} \u00b0C<\/span>` +\n          `<span>\u00c9cart \u00e0 la normale : ${formatGap(value - NORMAL)} \u00b0C<\/span>`;\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 showIndex = (index, showTooltip = true) => {\n        activeIndex = Math.max(0, Math.min(data.length - 1, index));\n        const value = data[activeIndex][1];\n        markerLine.setAttribute(\"x1\", x(activeIndex));\n        markerLine.setAttribute(\"x2\", x(activeIndex));\n        markerLine.setAttribute(\"visibility\", \"visible\");\n        marker.setAttribute(\"cx\", x(activeIndex));\n        marker.setAttribute(\"cy\", y(value));\n        marker.setAttribute(\"visibility\", \"visible\");\n        setSelectionCard(activeIndex);\n        if (showTooltip) placeTooltip(activeIndex);\n      };\n\n      const resetSelectionCard = () => {\n        selection.classList.remove(\"has-value\");\n        selection.textContent =\n          \"Survolez ou touchez la courbe pour afficher la temp\u00e9rature d\u2019une ann\u00e9e.\";\n      };\n\n      const hidePointer = (resetCard = false) => {\n        markerLine.setAttribute(\"visibility\", \"hidden\");\n        marker.setAttribute(\"visibility\", \"hidden\");\n        tooltip.classList.remove(\"is-visible\");\n        tooltip.setAttribute(\"aria-hidden\", \"true\");\n        if (resetCard) resetSelectionCard();\n      };\n\n      const indexFromPointer = (event) => {\n        const rect = svg.getBoundingClientRect();\n        const svgX = ((event.clientX - rect.left) \/ rect.width) * W;\n        const ratio = (svgX - margin.left) \/ plotW;\n        return Math.round(\n          Math.max(0, Math.min(1, ratio)) * (data.length - 1)\n        );\n      };\n\n      overlay.addEventListener(\"pointerenter\", (event) => {\n        if (event.pointerType === \"mouse\" || !pinned) {\n          showIndex(indexFromPointer(event));\n        }\n      });\n\n      overlay.addEventListener(\"pointermove\", (event) => {\n        if (event.pointerType === \"mouse\" || !pinned) {\n          showIndex(indexFromPointer(event));\n        }\n      });\n\n      overlay.addEventListener(\"pointerleave\", (event) => {\n        if (event.pointerType === \"mouse\") {\n          pinned = false;\n          hidePointer(true);\n        } else if (!pinned) {\n          hidePointer(true);\n        }\n      });\n\n      overlay.addEventListener(\"pointerdown\", (event) => {\n        if (event.pointerType === \"mouse\") return;\n        pinned = true;\n        showIndex(indexFromPointer(event));\n      });\n\n      svg.addEventListener(\"keydown\", (event) => {\n        if (event.key !== \"ArrowLeft\" && event.key !== \"ArrowRight\" &&\n            event.key !== \"Home\" && event.key !== \"End\" &&\n            event.key !== \"Enter\" && event.key !== \" \" &&\n            event.key !== \"Escape\") return;\n\n        event.preventDefault();\n\n        if (event.key === \"ArrowLeft\") {\n          pinned = true;\n          showIndex(activeIndex - 1);\n        } else if (event.key === \"ArrowRight\") {\n          pinned = true;\n          showIndex(activeIndex + 1);\n        } else if (event.key === \"Home\") {\n          pinned = true;\n          showIndex(0);\n        } else if (event.key === \"End\") {\n          pinned = true;\n          showIndex(data.length - 1);\n        } else if (event.key === \"Enter\" || event.key === \" \") {\n          pinned = true;\n          showIndex(activeIndex);\n        } else if (event.key === \"Escape\") {\n          pinned = false;\n          hidePointer(true);\n        }\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        pinned = false;\n        hidePointer(true);\n      });\n\n      window.addEventListener(\"resize\", () => {\n        if (tooltip.classList.contains(\"is-visible\")) {\n          placeTooltip(activeIndex);\n        }\n      });\n  })();\n<\/script><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><!-- BOUTON SOMMAIRE CLIMATOLOGIE \u2014 WORDPRESS -->\n\n<style>\n  .sommaire-climatologie-wrap {\n    display: flex;\n    justify-content: center;\n    margin: 24px 0;\n  }\n\n  .sommaire-climatologie {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    padding: 15px 32px;\n    color: #ffffff !important;\n    font-family: inherit;\n    font-size: 17px;\n    font-weight: 800;\n    line-height: 1.2;\n    letter-spacing: 0.7px;\n    text-align: center;\n    text-decoration: none !important;\n    text-transform: uppercase;\n    border: 1px solid rgba(255, 255, 255, 0.3);\n    border-radius: 14px;\n    background: linear-gradient(135deg, #064e3b, #059669);\n    box-shadow: 0 8px 20px rgba(5, 150, 105, 0.3);\n    transition: transform 0.25s ease, box-shadow 0.25s ease;\n  }\n\n  .sommaire-climatologie:hover {\n    color: #ffffff !important;\n    transform: translateY(-3px);\n    box-shadow: 0 12px 26px rgba(5, 150, 105, 0.42);\n  }\n\n  .sommaire-climatologie:focus-visible {\n    outline: 3px solid #fbbf24;\n    outline-offset: 4px;\n  }\n\n  @media (max-width: 600px) {\n    .sommaire-climatologie {\n      width: 100%;\n      padding: 15px 20px;\n      font-size: 16px;\n    }\n  }\n<\/style>\n\n<div class=\"sommaire-climatologie-wrap\">\n  <a class=\"sommaire-climatologie\"\n     href=\"https:\/\/alertes-meteo.com\/index.php\/climatologie\/\"\n     aria-label=\"Acc\u00e9der au sommaire Climatologie\">\n    Sommaire Climatologie\n  <\/a>\n<\/div><\/div><\/div><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":60843,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_seopress_titles_title":"Temp\u00e9rature Moyenne ann\u00e9e en France : \u00c9volution depuis 1921 | Alertes-M\u00e9t\u00e9o","_seopress_titles_desc":"Temp\u00e9rature moyenne ann\u00e9e en France depuis 1921 : \u00e9volution, records et conseils pratiques pour anticiper l'hiver.","_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":"temperature mer","footnotes":""},"class_list":["post-61371","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/alertes-meteo.com\/index.php\/wp-json\/wp\/v2\/pages\/61371","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/alertes-meteo.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/alertes-meteo.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"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=61371"}],"version-history":[{"count":12,"href":"https:\/\/alertes-meteo.com\/index.php\/wp-json\/wp\/v2\/pages\/61371\/revisions"}],"predecessor-version":[{"id":61389,"href":"https:\/\/alertes-meteo.com\/index.php\/wp-json\/wp\/v2\/pages\/61371\/revisions\/61389"}],"up":[{"embeddable":true,"href":"https:\/\/alertes-meteo.com\/index.php\/wp-json\/wp\/v2\/pages\/60843"}],"wp:attachment":[{"href":"https:\/\/alertes-meteo.com\/index.php\/wp-json\/wp\/v2\/media?parent=61371"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}