{"id":1891,"date":"2026-03-24T17:04:00","date_gmt":"2026-03-24T16:04:00","guid":{"rendered":"https:\/\/agripedia.ch\/klima\/?page_id=1891"},"modified":"2026-04-21T17:07:34","modified_gmt":"2026-04-21T15:07:34","slug":"massnahmensammlung-klimaschutz-und-anpassung","status":"publish","type":"page","link":"https:\/\/agripedia.ch\/klima\/massnahmensammlung-klimaschutz-und-anpassung\/","title":{"rendered":"Massnahmensammlung Klimaschutz und -anpassung"},"content":{"rendered":"\n<p><\/p>\n\n\n\n<p>Die Massnahmensammlung Klimaschutz und -anpassung bietet einen \u00dcberblick \u00fcber wirksame Massnahmen zur Reduktion von Treibhausgasen und zur Anpassung der landwirtschaftlichen Produktion an den Klimawandel. Zu jeder Handlungsoption finden sich Angaben zur Wirkung, Hinweise zur Umsetzung sowie weiterf\u00fchrende Informationen, F\u00f6rderm\u00f6glichkeiten und Praxisbeispiele. Die Inhalte werden fortlaufend erg\u00e4nzt und vervollst\u00e4ndigt. Noch nicht ausgearbeitete Massnahmen sind aufgef\u00fchrt, jedoch noch ausgegraut. R\u00fcckmeldungen f\u00fcr zus\u00e4tzliche Massnahmen, Erg\u00e4nzungen oder Korrekturen k\u00f6nnen jederzeit hier eingereicht werden: <a href=\"https:\/\/forms.office.com\/e\/T50mn2kygV\" title=\"\">Feedback-Formular<\/a><\/p>\n\n\n\n<div style=\"height:19px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-getwid-accordion has-icon-left\" data-active-element=\"none\">\n<div class=\"wp-block-getwid-accordion__header-wrapper\"><span class=\"wp-block-getwid-accordion__header\"><a href=\"#\"><span class=\"wp-block-getwid-accordion__header-title\">Hinweise zur Nutzung, methodisches Vorgehen<\/span><span class=\"wp-block-getwid-accordion__icon is-active\"><i class=\"fas fa-plus\"><\/i><\/span><span class=\"wp-block-getwid-accordion__icon is-passive\"><i class=\"fas fa-minus\"><\/i><\/span><\/a><\/span><\/div><div class=\"wp-block-getwid-accordion__content-wrapper\"><div class=\"wp-block-getwid-accordion__content\">\n<p class=\"has-small-font-size\"><strong>Hinweise zur Aussagekraft und Verwendung<\/strong><\/p>\n\n\n\n<p class=\"has-small-font-size\">Die Massnahmensammlung bietet eine erste, orientierende Einsch\u00e4tzung von m\u00f6glichen Massnahmen im Bereich Klimaschutz und Anpassung an den Klimawandel. Sie liefern eine Absch\u00e4tzung des m\u00f6glichen Treibhausgas\u2011Reduktionspotenzials sowie der mit den Massnahmen verbundenen Investitions\u2011 und Kostenfolgen. Diese Angaben basieren auf dem aktuellen Stand des Wissens und werden bei neuen wissenschaftlichen Erkenntnissen oder aktualisierten Daten angepasst. Die tats\u00e4chliche Klimawirkung sowie die Kostenfolgen k\u00f6nnen je nach Betriebsstruktur, Standort und Umsetzung erheblich variieren und m\u00fcssen stets betriebsspezifisch abgesch\u00e4tzt oder anhand einer Bilanzierung errechnet werden. Aus den dargestellten Einsch\u00e4tzungen lassen sich keine verbindlichen Aussagen, Empfehlungen oder Anspr\u00fcche ableiten. Die Massnahmensammlung ersetzt keine individuelle Klimabilanzierung eines Betriebs.<\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"has-small-font-size\"><strong>Auswahl der Massnahmen<\/strong><\/p>\n\n\n\n<p class=\"has-small-font-size\">Die vorliegende Massnahmensammlung basiert auf einer im Rahmen des EU\u2011Projekts <a href=\"https:\/\/climatefarmdemo.eu\/\" target=\"_blank\" rel=\"noopener\" title=\"\">Climate Farm Demo<\/a> von den Forschungsinstitutionen <a href=\"https:\/\/www.fibl.org\/de\/\" target=\"_blank\" rel=\"noopener\" title=\"\">FiBL Schweiz<\/a> und <a href=\"https:\/\/www.arvalis.fr\/about-us\" target=\"_blank\" rel=\"noopener\" title=\"\">Arvalis (Frankreich)<\/a> erarbeiteten Liste von Massnahmentiteln und Kurzbeschrieben. Alle Massnahmen auf der Liste wurden hinsichtlich ihrer Anwendbarkeit auf die Schweizer Landwirtschaft gepr\u00fcft und nur geeignete Massnahmen selektiert. Erg\u00e4nzend wurden Massnahmen aus relevanten Schweizer Projekten ber\u00fccksichtigt und die Sammlung entsprechend erweitert. Hinweise auf zus\u00e4tzliche Massnahmen k\u00f6nnen jederzeit bei der AGRIDEA eingereicht werden.<\/p>\n\n\n\n<div style=\"height:12px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"has-small-font-size\"><strong>Inhaltliche Ausarbeitung<\/strong><\/p>\n\n\n\n<p class=\"has-small-font-size\">Die inhaltliche Ausarbeitung der einzelnen Massnahmen (Beschreibung, Umsetzung, Herausforderungen, Klimaschutzwirkung sowie Kostenangaben) erfolgte durch AGRIDEA auf Grundlage einer Literatur\u2011 und Quellenrecherche sowie von Befragungen ausgew\u00e4hlter interner und externer Expertinnen und Experten.<\/p>\n\n\n\n<div style=\"height:8px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"has-small-font-size\"><strong>Wirkung Klimaschutz<\/strong> <strong>\/ Treibhausgas\u2011Reduktionspotenzial<\/strong><\/p>\n\n\n\n<p class=\"has-small-font-size\">Die Einsch\u00e4tzung der Wirkung auf die Reduktion des THG-Ausstosses auf Betriebsebene (THG in CO<strong>\u2082<\/strong>eq) st\u00fctzt sich auf die jeweils bei der Massnahme angegebenen Quellen. Diese Quellen umfassen sowohl Studien als auch Datenauswertungen von Bilanzierungstools (CAP&#8217;2ER). Zur besseren Vergleichbarkeit wurden die Klimaschutzwirkungen in qualitative Kategorien eingeteilt (gering\/nicht gesichert, mittel, gross, sehr gross). Die Festlegung der Kategorien und ihrer Grenzwerte erfolgte durch AGRIDEA auf Basis der betrachteten Wirkungsbandbreiten, mit dem Ziel, die Massnahmen hinsichtlich ihres Treibhausgas\u2011Reduktionspotenzials auf Betriebsebene sinnvoll voneinander abzugrenzen. Liegen Wirkungsangaben lediglich auf Ebene Einheit (z.B. Ebene Tier) oder Betriebszweig vor, wurde erg\u00e4nzend eine Absch\u00e4tzung der Wirkung auf Betriebsebene vorgenommen und im Text ausgewiesen. Diese basiert auf typischen Verteilungen der Treibhausgasemissionen innerhalb landwirtschaftlicher Betriebstypen (Rindviehhaltung, Ackerbau).<\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-getwid-accordion__header-wrapper\"><span class=\"wp-block-getwid-accordion__header\"><a href=\"#\"><span class=\"wp-block-getwid-accordion__header-title\">Versionsverlauf<\/span><span class=\"wp-block-getwid-accordion__icon is-active\"><i class=\"fas fa-plus\"><\/i><\/span><span class=\"wp-block-getwid-accordion__icon is-passive\"><i class=\"fas fa-minus\"><\/i><\/span><\/a><\/span><\/div><div class=\"wp-block-getwid-accordion__content-wrapper\"><div class=\"wp-block-getwid-accordion__content\">\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column has-small-font-size is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:25%\">\n<p><strong>Version 1.1 (aktuell)<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column has-small-font-size is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:75%\">\n<ul class=\"wp-block-list\">\n<li>Grundstruktur und Filter (Klimaschutz, Anpassung, 13 Themenfilter)<\/li>\n\n\n\n<li>Inhalte auf Deutsch f\u00fcr 26 ausgew\u00e4hlte Massnahmen (Beschreibung, Umsetzung, Investitionen\/Kosten, Wirkung, Weiterf\u00fchrende Links, Quellen)<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column has-small-font-size is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:25%\">\n<p><strong>Version 1.2 (geplant, Mai)<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column has-small-font-size is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:75%\">\n<ul class=\"wp-block-list\">\n<li>\u00dcbersetzung auf Franz\u00f6sisch<\/li>\n\n\n\n<li>Beschreibung Zusatznutzen \/ Co-Benefits (Fliesstext)<\/li>\n\n\n\n<li>Wirkung\/Kosten: Legenden-Pop-Ups (in-Text)<\/li>\n\n\n\n<li>Optimierung Benutzerf\u00fchrung: Hebel Klimaschutz \/ Anpassung in der Logik unter Themen einblenden<\/li>\n\n\n\n<li>Druckfunktion<\/li>\n\n\n\n<li>Ausweisung der Anwendbarkeit je Massnahme (z.\u202fB. Produktionszweig, Tierkategorie)<\/li>\n\n\n\n<li>Anwendung aller Filter auch f\u00fcr noch nicht erarbeitete Massnahmen<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column has-small-font-size is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:25%\">\n<p><strong>Version 2 (~Q3)<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column has-small-font-size is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:75%\">\n<ul class=\"wp-block-list\">\n<li>Massnahmenpaket 2 (+25 Massnahmen)<\/li>\n\n\n\n<li>Verlinkung Finanzierungen \/ Projekte \/ Beitr\u00e4ge<\/li>\n\n\n\n<li>Zus\u00e4tzliche Filter zu Produktionssystemen und Programmen<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:25%\">\n<p class=\"has-small-font-size\"><strong>Version 3 (~Ende 2026)<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:75%\">\n<ul class=\"wp-block-list\">\n<li class=\"has-small-font-size\">Massnahmenpaket 3 (+25 Massnahmen)<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div><\/div>\n<\/div>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div style=\"background-color: #ffffff; padding: 20px; font-size: 0.8em;\">\n\n  <p style=\"font-style: italic;\">\n    <strong>Wichtig:<\/strong> Die Massnahmensammlung bietet eine erste Einsch\u00e4tzung des m\u00f6glichen Treibhausgas-Reduktionspotenzials und der mit den Massnahmen verbundenen Investitionen und m\u00f6glichen wiederkehrenden Kosten. Diese Angaben basieren auf aktuell verf\u00fcgbarer Literatur und k\u00f6nnen bei neuen Erkenntnissen angepasst werden. Die effektive Wirkung kann variieren und Kostenfolgen m\u00fcssen immer betriebsindividuell abgesch\u00e4tzt werden. Aus der Einsch\u00e4tzung lassen sich keine verbindlichen Anspr\u00fcche ableiten.\n  <\/p>\n\n<p><strong>Legende:<\/strong><\/p>\n\n  \n<div style=\"\n  display: flex;\n  gap: 20px;\n  flex-wrap: wrap;\n\">\n\n  <figure style=\"flex: 1 1 300px; margin: 0;\">\n    <img decoding=\"async\" src=\"https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/03\/Legende-Klimawirkung-1-1024x289.png\" \n         style=\"width: 100%; height: auto;\">\n  <\/figure>\n\n  <figure style=\"flex: 1 1 300px; margin: 0;\">\n    <img decoding=\"async\" src=\"https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/03\/Legende-Kosten-1024x313.png\" \n         style=\"width: 100%; height: auto;\">\n  <\/figure>\n\n<\/div>\n\n\n<\/div>\n\n\n\n<div style=\"height:43px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<!DOCTYPE html>\n<html lang=\"de\">\n<head>\n<meta charset=\"UTF-8\" \/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/>\n<title>Massnahmen-Toolbox<\/title>\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/xlsx@0.18.5\/dist\/xlsx.full.min.js\"><\/script>\n\n<style>\n  :root{\n    --maxw:1100px;\n    --blue:#008bcc;\n    --blue-dark:#0074ab;\n    --blue-soft:#d9edf6;\n    --green:#8fd694;\n    --orange:#d18a24;\n  }\n\n  *{ box-sizing:border-box; }\n\n  body{\n    margin:0;\n    padding:20px;\n    font-family:Arial,sans-serif;\n    background:#f5f5f5;\n    color:#333;\n  }\n\n  .tool-wrap{\n    max-width:var(--maxw);\n    margin:0 auto;\n  }\n\n  #searchInput{\n    display:block;\n    width:100%;\n    padding:12px 14px;\n    font-size:16px;\n    border:2px solid var(--blue);\n    border-radius:8px;\n    background:#fff;\n  }\n\n  #oderLabel{\n    margin:14px 0 16px;\n    font-size:16px;\n    font-weight:bold;\n    color:var(--blue);\n  }\n\n  .filter-box{\n    max-width:var(--maxw);\n    margin:0 auto 24px;\n    border-radius:18px;\n    overflow:hidden;\n    background:var(--blue-soft);\n  }\n\n  .filter-header{\n    background:var(--blue);\n    color:#fff;\n    padding:16px 20px;\n    font-size:16px;\n    font-weight:bold;\n  }\n\n  .filter-content{\n    padding:16px 18px 12px;\n  }\n\n  .top-filters{\n    display:flex;\n    gap:20px 30px;\n    align-items:center;\n    justify-content:space-between;\n    flex-wrap:wrap;\n    margin-bottom:18px;\n  }\n\n  .top-filters-left{\n    display:flex;\n    gap:30px;\n    align-items:center;\n    flex-wrap:wrap;\n  }\n\n  .result-count{\n    font-size:14px;\n    font-weight:bold;\n    color:#006b9c;\n    white-space:nowrap;\n  }\n\n  .toggle-label{\n    display:flex;\n    align-items:center;\n    gap:12px;\n    font-weight:bold;\n    color:#666;\n    font-size:15px;\n  }\n\n  .toggle-switch{\n    position:relative;\n    width:40px;\n    height:22px;\n    flex:0 0 auto;\n  }\n\n  .toggle-switch input{\n    opacity:0;\n    width:0;\n    height:0;\n  }\n\n  .slider{\n    position:absolute;\n    inset:0;\n    background:#bfbfbf;\n    border-radius:20px;\n    transition:.25s;\n    cursor:pointer;\n  }\n\n  .slider:before{\n    content:\"\";\n    position:absolute;\n    width:16px;\n    height:16px;\n    left:3px;\n    top:3px;\n    border-radius:50%;\n    background:#fff;\n    transition:.25s;\n  }\n\n  .toggle-switch input:checked + .slider{\n    background:var(--blue);\n  }\n\n  .toggle-switch input:checked + .slider:before{\n    transform:translateX(18px);\n  }\n\n  .categories{\n    display:grid;\n    grid-template-columns:repeat(5, minmax(0, 1fr));\n    gap:16px;\n    margin-top:10px;\n  }\n\n  .category-card{\n    background:var(--blue);\n    color:#fff;\n    border:3px solid transparent;\n    border-radius:14px;\n    min-height:118px;\n    padding:12px 10px;\n    display:flex;\n    flex-direction:column;\n    align-items:center;\n    justify-content:center;\n    text-align:center;\n    cursor:pointer;\n    transition:.15s;\n    font-weight:bold;\n    line-height:1.15;\n  }\n\n  .category-card:hover{\n    transform:translateY(-1px);\n  }\n\n  .category-card.selected{\n    border-color:#ffc400;\n  }\n\n  .category-card img{\n    width:58px;\n    height:58px;\n    object-fit:contain;\n    margin-bottom:10px;\n  }\n\n  .category-card .cat-label{\n    font-size:15px;\n  }\n\n  .results{\n    max-width:var(--maxw);\n    margin:0 auto 40px;\n    display:flex;\n    flex-direction:column;\n    gap:22px;\n  }\n\n  .no-results{\n    background:#fff;\n    border:1px solid #f0c4c4;\n    color:#7d4d4d;\n    padding:24px;\n    border-radius:10px;\n    text-align:center;\n    font-size:16px;\n  }\n\n  .card{\n    background:#fff;\n    border-radius:10px;\n    overflow:hidden;\n    box-shadow:0 1px 4px rgba(0,0,0,.08);\n  }\n\n  .card.active-card .card-header{\n    background:var(--blue);\n    color:#fff;\n  }\n\n  .card.inactive-card .card-header{\n    background:#a9a9a9;\n    color:#fff;\n  }\n\n  .card-header{\n    padding:14px 18px;\n    font-size:17px;\n    font-weight:bold;\n    line-height:1.25;\n  }\n\n  .card-body{\n    padding:16px 22px 20px;\n  }\n\n  .inactive-body{\n    background:#f3f3f3;\n    color:#444;\n    font-style:italic;\n    padding:14px 18px;\n    font-size:13px;\n  }\n\n  .description{\n    margin-bottom:20px;\n  }\n\n  .description-head{\n    display:flex;\n    justify-content:space-between;\n    align-items:flex-start;\n    gap:12px;\n    margin-bottom:8px;\n  }\n\n  .description-head h4{\n    margin:0;\n    font-size:13px;\n    font-weight:bold;\n    color:#222;\n  }\n\n  .description p{\n    margin:0;\n    line-height:1.42;\n    font-size:13px;\n  }\n\n  .badges{\n    display:flex;\n    gap:8px;\n    flex-wrap:wrap;\n    justify-content:flex-end;\n    margin:0;\n  }\n\n  .badge{\n    display:inline-block;\n    padding:4px 8px;\n    border-radius:6px;\n    font-size:12px;\n    font-weight:bold;\n    color:#fff;\n    background:var(--green);\n    line-height:1.1;\n  }\n\n  .badge.adapt{\n    background:var(--orange);\n  }\n\n  .impact-row{\n    display:grid;\n    grid-template-columns:180px 1fr;\n    gap:10px 18px;\n    align-items:start;\n    margin:18px 0 0;\n  }\n\n  .impact-left{\n    display:flex;\n    flex-direction:column;\n    align-items:flex-start;\n    gap:6px;\n    min-width:0;\n  }\n\n  .impact-label{\n    font-weight:bold;\n    color:#222;\n    font-size:13px;\n    line-height:1.25;\n  }\n\n  .impact-scale{\n    display:flex;\n    align-items:center;\n    gap:1px;\n    min-height:24px;\n    flex-wrap:nowrap;\n    white-space:nowrap;\n  }\n\n  .impact-text{\n    font-size:13px;\n    line-height:1.38;\n    min-width:0;\n  }\n\n  .scale-sep{\n    font-weight:bold;\n    color:#666;\n    margin:0 1px;\n    font-size:13px;\n    line-height:1;\n  }\n\n  .meta-icon-img{\n    width:20px;\n    height:20px;\n    object-fit:contain;\n    display:inline-block;\n    vertical-align:middle;\n    flex:0 0 auto;\n  }\n\n  .icon-faded{\n    opacity:.25;\n  }\n\n  .benefits{\n    margin-top:18px;\n    margin-bottom:16px;\n  }\n\n  .benefits h4{\n    margin:0 0 8px;\n    font-size:13px;\n    color:#222;\n  }\n\n  .benefit-list{\n    display:flex;\n    flex-wrap:wrap;\n    gap:8px 14px;\n  }\n\n  .benefit-item{\n    display:inline-flex;\n    align-items:center;\n    gap:6px;\n    color:var(--blue);\n    font-weight:bold;\n    font-size:13px;\n  }\n\n  .benefit-item img{\n    width:26px;\n    height:26px;\n    object-fit:contain;\n  }\n\n  .accordion-group{\n    display:flex;\n    flex-direction:column;\n    gap:8px;\n    margin-top:8px;\n  }\n\n  .accordion{\n    border-radius:4px;\n    overflow:hidden;\n  }\n\n  .acc-toggle{\n    width:100%;\n    border:none;\n    background:var(--blue);\n    color:#fff;\n    cursor:pointer;\n    display:flex;\n    align-items:center;\n    justify-content:space-between;\n    padding:8px 12px;\n    font-size:13px;\n    font-weight:bold;\n    text-align:left;\n    line-height:1.25;\n  }\n\n  .acc-toggle.grey{\n    background:var(--blue);\n    color:#fff;\n  }\n\n  .acc-label{\n    display:flex;\n    align-items:center;\n    gap:8px;\n  }\n\n  .acc-icon{\n    transition:transform .2s;\n    display:inline-block;\n  }\n\n  .accordion.open .acc-icon{\n    transform:rotate(180deg);\n  }\n\n  .acc-content{\n    display:none;\n    background:#e9f6fb;\n    padding:10px 12px;\n    line-height:1.45;\n    font-size:13px;\n  }\n\n  .accordion.open .acc-content{\n    display:block;\n  }\n\n  .acc-content ul{\n    margin:0;\n    padding-left:18px;\n    list-style:disc;\n  }\n\n  .acc-content li{\n    margin:7px 0;\n    line-height:1.45;\n  }\n\n  .acc-content p{\n    margin:6px 0;\n    line-height:1.45;\n  }\n\n  .link-title{\n    font-weight:bold;\n    display:block;\n    margin-bottom:2px;\n  }\n\n  .link-url{\n    display:block;\n    margin-bottom:10px;\n  }\n\n  a{\n    color:var(--blue-dark);\n    overflow-wrap:anywhere;\n    word-break:break-word;\n  }\n\n  @media (max-width: 980px){\n    .categories{\n      grid-template-columns:repeat(4, minmax(0, 1fr));\n    }\n  }\n\n  @media (max-width: 820px){\n    .impact-row{\n      grid-template-columns:1fr;\n    }\n\n    .description-head{\n      flex-direction:column;\n      align-items:flex-start;\n    }\n\n    .badges{\n      justify-content:flex-start;\n    }\n\n    .categories{\n      grid-template-columns:repeat(3, minmax(0, 1fr));\n    }\n  }\n\n  @media (max-width: 620px){\n    .categories{\n      grid-template-columns:repeat(2, minmax(0, 1fr));\n    }\n  }\n\nbutton {\n  text-transform: none;\n}\n\n<\/style>\n<\/head>\n<body>\n\n<div class=\"tool-wrap\">\n  <input type=\"text\" id=\"searchInput\" placeholder=\"Massnahme suchen...\" \/>\n  <div id=\"oderLabel\">oder<\/div>\n<\/div>\n\n<div class=\"filter-box\">\n  <div class=\"filter-header\">Massnahmen nach Themen ausw\u00e4hlen (Mehrfachauswahl m\u00f6glich)<\/div>\n  <div class=\"filter-content\">\n    <div class=\"top-filters\">\n      <div class=\"top-filters-left\">\n        <label class=\"toggle-label\">\n          Massnahmen Klimaschutz\n          <div class=\"toggle-switch\">\n            <input type=\"checkbox\" id=\"filterKlimaschutz\" checked>\n            <span class=\"slider\"><\/span>\n          <\/div>\n        <\/label>\n\n        <label class=\"toggle-label\">\n          Massnahmen Klimaanpassung\n          <div class=\"toggle-switch\">\n            <input type=\"checkbox\" id=\"filterAnpassung\" checked>\n            <span class=\"slider\"><\/span>\n          <\/div>\n        <\/label>\n      <\/div>\n\n      <div id=\"resultCount\" class=\"result-count\"><\/div>\n    <\/div>\n\n    <div class=\"categories\" id=\"categoryContainer\"><\/div>\n  <\/div>\n<\/div>\n\n<div id=\"results\" class=\"results\"><\/div>\n\n<script>\n  const EXCEL_FILE = \"https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/03\/2026_Massnahmenliste-2.xlsx\";\n\n  const CATEGORY_ICON_MAP = {\n    \"Ackerbau\": \"https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/03\/Ackerbau.png\",\n    \"Betriebsplanung\": \"https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/03\/Betriebsplanung.png\",\n    \"Bienen\": \"https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/03\/Bienen.png\",\n    \"Energie\": \"https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/03\/Energie.png\",\n    \"Fleischrinder\": \"https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/03\/Fleischrinder.png\",\n    \"Geb\u00e4ude \/ Maschinen\": \"https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/03\/Gebaeude_Maschinen.png\",\n    \"Gebaeude \/ Maschinen\": \"https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/03\/Gebaeude_Maschinen.png\",\n    \"Gefl\u00fcgel\": \"https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/03\/Gefluegel.png\",\n    \"Gefluegel\": \"https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/03\/Gefluegel.png\",\n    \"(Hof-) D\u00fcnger\": \"https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/03\/Hofduenger.png\",\n    \"(Hof-)D\u00fcnger\": \"https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/03\/Hofduenger.png\",\n    \"(Hof-) Duenger\": \"https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/03\/Hofduenger.png\",\n    \"(Hof-)Duenger\": \"https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/03\/Hofduenger.png\",\n    \"Landnutzung\": \"https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/03\/Landnutzung.png\",\n    \"Schweine\": \"https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/03\/Schweine.png\",\n    \"Spezialkulturen\": \"https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/03\/Spezialkulturen.png\",\n    \"Wasser\": \"https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/03\/Wasser.png\",\n    \"Milchproduktion\": \"https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/03\/Milchproduktion-1.png\"\n  };\n\n  const ICON_BIODIV  = \"https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/03\/Biodiversitaet.png\";\n  const ICON_BODEN   = \"https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/03\/Bodengesundheit.png\";\n  const ICON_DIVERS  = \"https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/03\/Diversifizierung.png\";\n  const ICON_WASSER  = \"https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/03\/Effiziente-Wassernutzung.png\";\n  const ICON_EROSION = \"https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/03\/Erosionsschutz.png\";\n  const ICON_KOSTEN  = \"https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/03\/Kosteneinsparung.png\";\n  const ICON_LUFT    = \"https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/03\/Luftqualitaet.png\";\n  const ICON_TIER    = \"https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/03\/Tiergesundheit.png\";\n\n  const ICON_LEAF = \"https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2025\/11\/leaf_icone.svg\";\n  const ICON_COIN = \"https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2025\/11\/coin_icone.svg\";\n\n  const COLS = {\n    nr: \"Nr.\",\n    status: \"Status Anzeige in Agripedia (Inaktiv = grau ohne Details, Aktiv = blau mit Details)\",\n    category: \"Kategorie\",\n    title: \"Name\",\n    klim: \"Massnahme Klimaschutz\",\n    adapt: \"Massnahme Klimaanpassung\",\n    beschreibung: \"Beschreibung\",\n    schritte: \"Schritte f\u00fcr eine erfolgreiche Umsetzung\",\n    herausforderungen: \"Herausforderungen\",\n    wirkung: \"Klimawirkung\",\n    wirkungErkl: \"Erkl\u00e4rung Klimawirkung\",\n    kosten: \"Investitionen \/ Kosten\",\n    kostenErkl: \"Erkl\u00e4rung Investitionen \/ Kosten\",\n    biodiv: \"Biodiversit\u00e4t\",\n    tierwohl: \"Tierwohl\",\n    luft: \"Luftqualit\u00e4t\",\n    erosion: \"Erosionsschutz\",\n    boden: \"Bodengesundheit\",\n    diversifizierung: \"Diversifizierung\",\n    wasserNachh: \"Nachhaltige Wassernutzung\",\n    kostenEinspar: \"Kosteneinsparung\",\n    info: \"Informationen und Merkbl\u00e4tter\",\n    quellen: \"Literatur \/ Quellen\"\n  };\n\n  let data = [];\n  let selectedCategories = new Set();\n  let allCategories = [];\n\n  const categoryContainer = document.getElementById(\"categoryContainer\");\n\n  function normalizeString(v){\n    return String(v ?? \"\").trim()\n  }\n\n  function isYes(v){\n    const s = normalizeString(v).toLowerCase();\n    return s === \"ja\" || s === \"x\" || s === \"1\" || s === \"true\";\n  }\n\n  function isActiveStatus(v){\n    return normalizeString(v).toLowerCase() === \"aktiv\";\n  }\n\n  function isInactiveStatus(v){\n    return normalizeString(v).toLowerCase() === \"inaktiv\";\n  }\n\n  function isNoDataValue(v){\n    const s = normalizeString(v).toLowerCase();\n    return s === \"n\/a\" || s === \"na\" || s === \"n.a.\";\n  }\n\n  function linkify(text){\n    if (!text) return \"\";\n    return String(text).replace(\/(https?:\\\/\\\/[^\\s<]+)\/g, url =>\n      `<a href=\"${url}\" target=\"_blank\" rel=\"noopener\">${url}<\/a>`\n    );\n  }\n\n  function cleanData(raw){\n    return raw.map(row => {\n      const cleaned = {};\n      Object.keys(row).forEach(k => {\n        cleaned[String(k).trim()] =\n          typeof row[k] === \"string\" ? row[k].trim() : row[k];\n      });\n      return cleaned;\n    });\n  }\n\n  function splitCategories(catValue){\n    if (!catValue) return [];\n    return String(catValue)\n      .split(\",\")\n      .map(s => s.trim())\n      .filter(Boolean)\n      .map(cat => {\n        const low = cat.toLowerCase();\n\n        if (low.includes(\"geb\u00e4ude\") || low.includes(\"gebaeude\") || low.includes(\"maschinen\")) return \"Geb\u00e4ude \/ Maschinen\";\n        if (low === \"gefluegel\" || low === \"gefl\u00fcgel\") return \"Gefl\u00fcgel\";\n        if (low === \"hofduenger\" || low === \"(hof-)duenger\" || low === \"(hof-)d\u00fcnger\" || low === \"(hof-) d\u00fcnger\" || low === \"(hof-) duenger\") return \"(Hof-) D\u00fcnger\";\n        if (low === \"milchproduktion\") return \"Milchproduktion\";\n        if (low === \"fleischrinder\") return \"Fleischrinder\";\n        if (low === \"schweine\") return \"Schweine\";\n        if (low === \"ackerbau\") return \"Ackerbau\";\n        if (low === \"landnutzung\") return \"Landnutzung\";\n        if (low === \"wasser\") return \"Wasser\";\n        if (low === \"energie\") return \"Energie\";\n        if (low === \"bienen\") return \"Bienen\";\n        if (low === \"betriebsplanung\") return \"Betriebsplanung\";\n        if (low === \"spezialkulturen\") return \"Spezialkulturen\";\n\n        return cat;\n      });\n  }\n\n  function uniqueCategoriesFromData(rows){\n    const preferredOrder = [\n      \"Ackerbau\",\n      \"Spezialkulturen\",\n      \"Landnutzung\",\n      \"Wasser\",\n      \"Energie\",\n      \"Geb\u00e4ude \/ Maschinen\",\n      \"Milchproduktion\",\n      \"Fleischrinder\",\n      \"Schweine\",\n      \"Gefl\u00fcgel\",\n      \"Bienen\",\n      \"(Hof-) D\u00fcnger\",\n      \"Betriebsplanung\"\n    ];\n\n    const set = new Set();\n    rows.forEach(r => splitCategories(r[COLS.category]).forEach(c => set.add(c)));\n\n    const found = Array.from(set);\n    const ordered = preferredOrder.filter(c => found.includes(c));\n    const extra = found.filter(c => !preferredOrder.includes(c)).sort((a,b) => a.localeCompare(b, \"de\"));\n\n    return [...ordered, ...extra];\n  }\n\n  function getCategoryIconHtml(name){\n    const src = CATEGORY_ICON_MAP[name] || \"\";\n    if (!src) return \"\";\n    return `<img decoding=\"async\" src=\"${src}\" alt=\"${name}\" loading=\"lazy\">`;\n  }\n\n  function renderCategories(){\n    categoryContainer.innerHTML = \"\";\n\n    allCategories.forEach(name => {\n      const card = document.createElement(\"div\");\n      card.className = \"category-card\" + (selectedCategories.has(name) ? \" selected\" : \"\");\n      card.innerHTML = `\n        ${getCategoryIconHtml(name)}\n        <div class=\"cat-label\">${name}<\/div>\n      `;\n      card.addEventListener(\"click\", () => {\n        if (selectedCategories.has(name)) {\n          selectedCategories.delete(name);\n        } else {\n          selectedCategories.add(name);\n        }\n        renderCategories();\n        filterData();\n      });\n      categoryContainer.appendChild(card);\n    });\n  }\n\n  function parseRangeValue(v){\n  const s = String(v ?? \"\").trim();\n    if (!s || isNoDataValue(s)) return null;\n\n    const normalized = s\n      .replace(\/\\s+to\\s+\/gi, \"-\")\n      .replace(\/\\s+bis\\s+\/gi, \"-\")\n      .replace(\/[\u2013\u2014]\/g, \"-\")\n      .replace(\/\\s+\/g, \"\");\n\n    if (!normalized || normalized.toLowerCase() === \"n\/a\") return null;\n\n    if (normalized === \"0\"){\n      return { from:0, to:0, isRange:false, isZero:true };\n    }\n\n    const rangeMatch = normalized.match(\/^(\\d+)-(\\d+)$\/);\n    if (rangeMatch){\n      let from = parseInt(rangeMatch[1], 10);\n      let to = parseInt(rangeMatch[2], 10);\n      if (isNaN(from) || isNaN(to)) return null;\n\n      from = Math.max(1, Math.min(3, from));\n      to = Math.max(1, Math.min(3, to));\n      if (from > to) [from, to] = [to, from];\n\n      return { from, to, isRange:true, isZero:false };\n    }\n\n    const singleMatch = normalized.match(\/^\\d+$\/);\n    if (singleMatch){\n      const n = Math.max(0, Math.min(3, parseInt(singleMatch[0], 10)));\n      return { from:n, to:n, isRange:false, isZero:n === 0 };\n    }\n\n    return null;\n  }\n\n function buildScaleHtml(type, rawValue){\n  const parsed = parseRangeValue(rawValue);\n  const icon = type === \"leaf\" ? ICON_LEAF : ICON_COIN;\n\n  \/* leer oder n\/A => nichts anzeigen *\/\n  if (!parsed){\n    return \"\";\n  }\n\n  \/* 0 => drei helle Icons *\/\n  if (parsed.isZero){\n    return `\n      <img decoding=\"async\" src=\"${icon}\" class=\"meta-icon-img icon-faded\" alt=\"\">\n      <img decoding=\"async\" src=\"${icon}\" class=\"meta-icon-img icon-faded\" alt=\"\">\n      <img decoding=\"async\" src=\"${icon}\" class=\"meta-icon-img icon-faded\" alt=\"\">\n    `;\n  }\n\n  if (parsed.isRange && parsed.from !== parsed.to){\n    let leftHtml = \"\";\n    let rightHtml = \"\";\n\n    for (let i = 1; i <= 3; i++){\n      const leftCls = i <= parsed.from ? \"\" : \"icon-faded\";\n      leftHtml += `<img decoding=\"async\" src=\"${icon}\" class=\"meta-icon-img ${leftCls}\" alt=\"\">`;\n    }\n\n    for (let i = 1; i <= 3; i++){\n      const rightCls = i <= parsed.to ? \"\" : \"icon-faded\";\n      rightHtml += `<img decoding=\"async\" src=\"${icon}\" class=\"meta-icon-img ${rightCls}\" alt=\"\">`;\n    }\n\n    return `${leftHtml}<span class=\"scale-sep\">-<\/span>${rightHtml}`;\n  }\n\n  let html = \"\";\n  for (let i = 1; i <= 3; i++){\n    const cls = i <= parsed.to ? \"\" : \"icon-faded\";\n    html += `<img decoding=\"async\" src=\"${icon}\" class=\"meta-icon-img ${cls}\" alt=\"\">`;\n  }\n  return html;\n}\n\n  function escapeHtml(text){\n    const div = document.createElement(\"div\");\n    div.textContent = String(text || \"\");\n    return div.innerHTML;\n  }\n\n  function formatAccordionContent(text){\n    if (!text) return \"\";\n\n    const lines = String(text).replace(\/\\r\/g, \"\").split(\"\\n\").map(s => s.trim());\n\n    let html = \"\";\n    let listItems = [];\n\n    function flushList(){\n      if (listItems.length){\n        html += `<ul>${listItems.join(\"\")}<\/ul>`;\n        listItems = [];\n      }\n    }\n\n    lines.forEach(line => {\n      if (!line){\n        flushList();\n        return;\n      }\n\n      const isBullet = \/^[-\u2022*]\\s*\/.test(line);\n\n      if (isBullet){\n        listItems.push(`<li>${linkify(line.replace(\/^[-\u2022*]\\s*\/, \"\"))}<\/li>`);\n      } else {\n        flushList();\n        html += `<p>${linkify(line)}<\/p>`;\n      }\n    });\n\n    flushList();\n    return html;\n  }\n\n \n  function formatInfoPairs(text){\n    if (!text) return \"\";\n\n    const lines = String(text)\n      .replace(\/\\r\/g, \"\")\n      .split(\"\\n\")\n      .map(s => s.trim())\n      .filter(Boolean);\n\n    if (!lines.length) return \"\";\n\n    let html = \"<ul>\";\n\n    for (let i = 0; i < lines.length; i++){\n      const line = lines[i];\n      const next = lines[i + 1] || \"\";\n      const currentIsUrl = \/^https?:\\\/\\\/\/i.test(line);\n      const nextIsUrl = \/^https?:\\\/\\\/\/i.test(next);\n\n      if (currentIsUrl){\n        html += `<li><a href=\"${line}\" target=\"_blank\" rel=\"noopener\">${line}<\/a><\/li>`;\n        continue;\n      }\n\n      if (nextIsUrl){\n        html += `\n          <li>\n            <a class=\"link-title\" href=\"${next}\" target=\"_blank\" rel=\"noopener\">${escapeHtml(line)}<\/a>\n          <\/li>\n        `;\n        i++;\n      } else {\n        html += `<li>${linkify(line)}<\/li>`;\n      }\n    }\n\n    html += \"<\/ul>\";\n    return html;\n  }\n\n  function formatSimpleContent(text){\n    if (!text) return \"\";\n    const parts = String(text).split(\/[\\r\\n]+\/).map(s => s.trim()).filter(Boolean);\n\n    if (!parts.length) return \"\";\n    if (parts.length === 1) return `<p>${linkify(parts[0])}<\/p>`;\n    return `<ul>${parts.map(p => `<li>${linkify(p.replace(\/^[-\u2022*]\\s*\/, \"\"))}<\/li>`).join(\"\")}<\/ul>`;\n  }\n\n  function createAccordion(title, content, grey = false){\n    if (!content) return \"\";\n    return `\n      <div class=\"accordion\">\n        <button type=\"button\" class=\"acc-toggle ${grey ? \"grey\" : \"\"}\">\n          <span class=\"acc-label\">\n            <span class=\"acc-icon\">\u25be<\/span>\n            <span>${title}<\/span>\n          <\/span>\n        <\/button>\n        <div class=\"acc-content\">${content}<\/div>\n      <\/div>\n    `;\n  }\n\n  function getBenefitItems(r){\n    const items = [];\n    if (isYes(r[COLS.biodiv])) items.push({label:\"Biodiversit\u00e4t\", icon:ICON_BIODIV});\n    if (isYes(r[COLS.tierwohl])) items.push({label:\"Tierwohl\", icon:ICON_TIER});\n    if (isYes(r[COLS.luft])) items.push({label:\"Luftqualit\u00e4t\", icon:ICON_LUFT});\n    if (isYes(r[COLS.erosion])) items.push({label:\"Erosionsschutz\", icon:ICON_EROSION});\n    if (isYes(r[COLS.boden])) items.push({label:\"Bodengesundheit\", icon:ICON_BODEN});\n    if (isYes(r[COLS.diversifizierung])) items.push({label:\"Diversifizierung\", icon:ICON_DIVERS});\n    if (isYes(r[COLS.wasserNachh])) items.push({label:\"Nachhaltige Wassernutzung\", icon:ICON_WASSER});\n    if (isYes(r[COLS.kostenEinspar])) items.push({label:\"Kosteneinsparung\", icon:ICON_KOSTEN});\n    return items;\n  }\n\n  function rowMatchesSelectedCategories(row){\n    if (!selectedCategories.size) return false;\n\n    const rowCats = splitCategories(row[COLS.category]);\n    if (!rowCats.length) return false;\n\n    return rowCats.some(c => selectedCategories.has(c));\n  }\n\n  function filterData(){\n    const txt = document.getElementById(\"searchInput\").value.trim().toLowerCase();\n    const filterK = document.getElementById(\"filterKlimaschutz\").checked;\n    const filterA = document.getElementById(\"filterAnpassung\").checked;\n\n    let res = data.filter(r => {\n      const title = normalizeString(r[COLS.title]);\n      if (!title) return false;\n\n      const searchableText = [\n        r[COLS.title],\n        r[COLS.category],\n        r[COLS.beschreibung],\n        r[COLS.schritte],\n        r[COLS.herausforderungen],\n        r[COLS.wirkungErkl],\n        r[COLS.kostenErkl],\n        r[COLS.info],\n        r[COLS.quellen]\n      ].map(v => normalizeString(v).toLowerCase()).join(\" \");\n\n      if (txt && !searchableText.includes(txt)) return false;\n      if (!txt && !rowMatchesSelectedCategories(r)) return false;\n\n      const isK = isYes(r[COLS.klim]);\n      const isA = isYes(r[COLS.adapt]);\n\n      if (!filterK && !filterA) return false;\n\n      if (isK || isA){\n        if (!((filterK && isK) || (filterA && isA))) return false;\n      }\n\n      return true;\n    });\n\n    \/* Aktiv zuerst, dann Inaktiv, dann Nr. *\/\n    res.sort((a,b) => {\n      const aActive = isActiveStatus(a[COLS.status]) ? 0 : 1;\n      const bActive = isActiveStatus(b[COLS.status]) ? 0 : 1;\n      if (aActive !== bActive) return aActive - bActive;\n\n      const nrA = parseFloat(a[COLS.nr]);\n      const nrB = parseFloat(b[COLS.nr]);\n      if (!isNaN(nrA) && !isNaN(nrB)) return nrA - nrB;\n\n      return normalizeString(a[COLS.title]).localeCompare(normalizeString(b[COLS.title]), \"de\");\n    });\n\n    renderResults(res);\n  }\n\n  function renderResults(list){\n    const out = document.getElementById(\"results\");\n    const countBox = document.getElementById(\"resultCount\");\n\n    if (countBox){\n      countBox.textContent = `${list.length} von ${data.length} Massnahmen angezeigt`;\n    }\n\n    out.innerHTML = \"\";\n\n    if (!list.length){\n      out.innerHTML = `<div class=\"no-results\"><b style=\"color:#FF0000;\">Bitte w\u00e4hlen Sie mindestens ein Thema aus oder nutzen Sie das Suchfeld, um Massnahmen anzuzeigen.<\/b><\/div>`;\n      return;\n    }\n\n    list.forEach(r => {\n      const title = normalizeString(r[COLS.title]);\n      const status = normalizeString(r[COLS.status]);\n\n      const isActive = isActiveStatus(status);\n      const isInactive = isInactiveStatus(status);\n      const showAsActive = isActive || !isInactive;\n\n      const card = document.createElement(\"div\");\n      card.className = \"card \" + (showAsActive ? \"active-card\" : \"inactive-card\");\n\n      if (!showAsActive){\n        card.innerHTML = `\n          <div class=\"card-header\">${escapeHtml(title)}<\/div>\n          <div class=\"inactive-body\">Inhalte in Erarbeitung<\/div>\n        `;\n        out.appendChild(card);\n        return;\n      }\n\n      const benefits = getBenefitItems(r);\n      const wirkungScale = buildScaleHtml(\"leaf\", r[COLS.wirkung]);\n      const kostenScale = buildScaleHtml(\"coin\", r[COLS.kosten]);\n\n      const beschrHtml = `\n        <div class=\"description\">\n          <div class=\"description-head\">\n            <h4>Beschreibung<\/h4>\n            <div class=\"badges\">\n              ${isYes(r[COLS.klim]) ? `<span class=\"badge\">Klimaschutz<\/span>` : \"\"}\n              ${isYes(r[COLS.adapt]) ? `<span class=\"badge adapt\">Anpassung<\/span>` : \"\"}\n            <\/div>\n          <\/div>\n          ${r[COLS.beschreibung] ? `<p>${linkify(r[COLS.beschreibung])}<\/p>` : \"\"}\n        <\/div>\n      `;\n\n      const impactHtml = `\n        ${wirkungScale ? `\n          <div class=\"impact-row\">\n            <div class=\"impact-left\">\n              <div class=\"impact-label\">Wirkung Klimaschutz<\/div>\n              <div class=\"impact-scale\">${wirkungScale}<\/div>\n            <\/div>\n            <div class=\"impact-text\">${r[COLS.wirkungErkl] ? linkify(r[COLS.wirkungErkl]) : ``}<\/div>\n          <\/div>\n        ` : ``}\n\n        ${kostenScale ? `\n          <div class=\"impact-row\">\n            <div class=\"impact-left\">\n              <div class=\"impact-label\">Investitionen \/ Kosten<\/div>\n              <div class=\"impact-scale\">${kostenScale}<\/div>\n            <\/div>\n            <div class=\"impact-text\">${r[COLS.kostenErkl] ? linkify(r[COLS.kostenErkl]) : ``}<\/div>\n          <\/div>\n        ` : ``}\n      `;\n\n      const benefitsHtml = benefits.length ? `\n        <div class=\"benefits\">\n          <h4>Zusatznutzen<\/h4>\n          <div class=\"benefit-list\">\n            ${benefits.map(b => `\n              <span class=\"benefit-item\">\n                <img decoding=\"async\" src=\"${b.icon}\" alt=\"${b.label}\" onerror=\"this.style.display='none'\">\n                <span>${b.label}<\/span>\n              <\/span>\n            `).join(\"\")}\n          <\/div>\n        <\/div>\n      ` : \"\";\n\n      card.innerHTML = `\n        <div class=\"card-header\">${escapeHtml(title)}<\/div>\n        <div class=\"card-body\">\n          ${beschrHtml}\n          ${impactHtml}\n          ${benefitsHtml}\n          <div class=\"accordion-group\">\n            ${createAccordion(\"Schritte f\u00fcr eine erfolgreiche Umsetzung\", formatAccordionContent(r[COLS.schritte]))}\n            ${createAccordion(\"Herausforderungen\", formatAccordionContent(r[COLS.herausforderungen]))}\n            ${createAccordion(\"Informationen und Merkbl\u00e4tter\", formatInfoPairs(r[COLS.info]))}\n            ${createAccordion(\"Literatur \/ Quellen\", formatSimpleContent(r[COLS.quellen]), true)}\n          <\/div>\n        <\/div>\n      `;\n\n      out.appendChild(card);\n    });\n\n    bindAccordionEvents();\n  }\n\n  function bindAccordionEvents(){\n    document.querySelectorAll(\".acc-toggle\").forEach(btn => {\n      btn.onclick = function(e){\n        e.preventDefault();\n        e.stopPropagation();\n        const accordion = this.closest(\".accordion\");\n        if (accordion) accordion.classList.toggle(\"open\");\n      };\n    });\n  }\n\n  [\"searchInput\", \"filterKlimaschutz\", \"filterAnpassung\"].forEach(id => {\n    const el = document.getElementById(id);\n    el.addEventListener(id === \"searchInput\" ? \"input\" : \"change\", filterData);\n  });\n\n  fetch(EXCEL_FILE)\n    .then(r => {\n      if (!r.ok) throw new Error(\"Excel-Datei konnte nicht geladen werden.\");\n      return r.arrayBuffer();\n    })\n    .then(buf => {\n      const wb = XLSX.read(buf, { type:\"array\" });\n      const preferredSheet = wb.SheetNames.includes(\"Massnahmen_Paket 1\")\n        ? \"Massnahmen_Paket 1\"\n        : wb.SheetNames[0];\n\n      const sheet = wb.Sheets[preferredSheet];\n      data = cleanData(XLSX.utils.sheet_to_json(sheet, { defval:\"\" }));\n\n      allCategories = uniqueCategoriesFromData(data);\n      renderCategories();\n      filterData();\n\n      console.log(\"Geladen:\", data.length, \"Zeilen aus Sheet:\", preferredSheet);\n      console.log(\"Alle geladenen Zeilen:\", data.length);\n      console.log(\"Davon mit Titel:\", data.filter(r => normalizeString(r[COLS.title])).length);\n    })\n    .catch(err => {\n      console.error(err);\n      document.getElementById(\"results\").innerHTML = `<div class=\"no-results\">Fehler beim Laden der Excel-Datei.<\/div>`;\n    });\n<\/script>\n<\/body>\n<\/html>\n\n\n\n<div style=\"height:221px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-group agripedia-impressum is-layout-flow wp-block-group-is-layout-flow\">\n<div class=\"wp-block-group agripedia-impressum-header is-layout-flow wp-block-group-is-layout-flow\">\n<h5 class=\"wp-block-heading\">Impressum<\/h5>\n<\/div>\n\n\n\n<div class=\"wp-block-group agripedia-impressum-content is-layout-flow wp-block-group-is-layout-flow\">\n<p><strong>Inhaltliche Ausarbeitung:<\/strong><\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image alignleft size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/04\/AGRIDEA_sans-texte.svg\" alt=\"\" class=\"wp-image-2100\" style=\"aspect-ratio:2.7368793072981092;width:197px;height:auto\"\/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><\/div>\n<\/div>\n\n\n\n<div style=\"height:59px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"no-space\"><strong><strong>Grundlagen aus den Arbeiten folgender Akteure \/ Projekte:<\/strong><\/strong><\/p>\n\n\n\n<div class=\"wp-block-columns are-vertically-aligned-center is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image alignleft size-large is-resized\"><a href=\"https:\/\/www.fibl.org\/de\/\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"429\" src=\"https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/04\/fibl-logo-1024x429.png\" alt=\"\" class=\"wp-image-2078\" style=\"aspect-ratio:2.387252839713925;width:143px;height:auto\" srcset=\"https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/04\/fibl-logo-1024x429.png 1024w, https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/04\/fibl-logo-300x126.png 300w, https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/04\/fibl-logo-768x322.png 768w, https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/04\/fibl-logo-1536x644.png 1536w, https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/04\/fibl-logo-2048x859.png 2048w, https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/04\/fibl-logo-1200x503.png 1200w, https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/04\/fibl-logo-1980x830.png 1980w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image alignleft size-large is-resized\"><a href=\"https:\/\/climatefarmdemo.eu\/\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"622\" src=\"https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/04\/CFD-colour-transparrent-background-1024x622.png\" alt=\"\" class=\"wp-image-2080\" style=\"aspect-ratio:1.6465025726602698;width:155px;height:auto\" srcset=\"https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/04\/CFD-colour-transparrent-background-1024x622.png 1024w, https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/04\/CFD-colour-transparrent-background-300x182.png 300w, https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/04\/CFD-colour-transparrent-background-768x466.png 768w, https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/04\/CFD-colour-transparrent-background-1536x932.png 1536w, https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/04\/CFD-colour-transparrent-background-2048x1243.png 2048w, https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/04\/CFD-colour-transparrent-background-1200x728.png 1200w, https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/04\/CFD-colour-transparrent-background-1980x1202.png 1980w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image alignleft size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"215\" src=\"https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/04\/EN-Funded-by-the-EU-PANTONE-1024x215.jpg\" alt=\"\" class=\"wp-image-2083\" srcset=\"https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/04\/EN-Funded-by-the-EU-PANTONE-1024x215.jpg 1024w, https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/04\/EN-Funded-by-the-EU-PANTONE-300x63.jpg 300w, https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/04\/EN-Funded-by-the-EU-PANTONE-768x161.jpg 768w, https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/04\/EN-Funded-by-the-EU-PANTONE-1536x322.jpg 1536w, https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/04\/EN-Funded-by-the-EU-PANTONE-2048x430.jpg 2048w, https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/04\/EN-Funded-by-the-EU-PANTONE-1200x252.jpg 1200w, https:\/\/agripedia.ch\/klima\/wp-content\/uploads\/sites\/66\/2026\/04\/EN-Funded-by-the-EU-PANTONE-1980x415.jpg 1980w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die Massnahmensammlung Klimaschutz und -anpassung bietet einen \u00dcberblick \u00fcber wirksame Massnahmen zur Reduktion von Treibhausgasen und zur Anpassung der landwirtschaftlichen Produktion an den Klimawandel. Zu jeder Handlungsoption finden sich Angaben zur Wirkung, Hinweise zur Umsetzung sowie weiterf\u00fchrende Informationen, F\u00f6rderm\u00f6glichkeiten und Praxisbeispiele. Die Inhalte werden fortlaufend erg\u00e4nzt und vervollst\u00e4ndigt. Noch nicht ausgearbeitete Massnahmen sind aufgef\u00fchrt, jedoch [&hellip;]<\/p>\n","protected":false},"author":927,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"_sb_is_suggestion_mode":false,"_sb_show_suggestion_boards":false,"_sb_show_comment_boards":false,"_sb_suggestion_history":"","_sb_update_block_changes":"","om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"class_list":["post-1891","page","type-page","status-publish","hentry"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/agripedia.ch\/klima\/wp-json\/wp\/v2\/pages\/1891","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/agripedia.ch\/klima\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/agripedia.ch\/klima\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/agripedia.ch\/klima\/wp-json\/wp\/v2\/users\/927"}],"replies":[{"embeddable":true,"href":"https:\/\/agripedia.ch\/klima\/wp-json\/wp\/v2\/comments?post=1891"}],"version-history":[{"count":141,"href":"https:\/\/agripedia.ch\/klima\/wp-json\/wp\/v2\/pages\/1891\/revisions"}],"predecessor-version":[{"id":2140,"href":"https:\/\/agripedia.ch\/klima\/wp-json\/wp\/v2\/pages\/1891\/revisions\/2140"}],"wp:attachment":[{"href":"https:\/\/agripedia.ch\/klima\/wp-json\/wp\/v2\/media?parent=1891"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}