{"id":562,"date":"2026-10-15T11:49:20","date_gmt":"2026-10-15T11:49:20","guid":{"rendered":"https:\/\/urbane-project.eu\/wp-urbane\/?page_id=562"},"modified":"2026-10-15T12:25:55","modified_gmt":"2026-10-15T12:25:55","slug":"practise-abstract","status":"publish","type":"page","link":"https:\/\/urbane-project.eu\/wp-urbane\/practise-abstract\/","title":{"rendered":"Practice Abstracts"},"content":{"rendered":"\n<div class=\"pa-wrap\">\n<div class=\"pa-grid\" id=\"pa-grid\"><\/div>\n<\/div>\n<div class=\"pa-modal\" id=\"pa-modal\" aria-hidden=\"true\">\n<div class=\"pa-modal-box\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"pa-modal-title\">\n<div class=\"pa-modal-head\">\n<h3 id=\"pa-modal-title\"><\/h3>\n<div class=\"pa-modal-actions\">\n<a id=\"pa-modal-download\" class=\"pa-btn pa-btn-solid\" download=\"\">Download<\/a>\n<button type=\"button\" class=\"pa-close\" id=\"pa-close\" aria-label=\"Close preview\">\u00d7<\/button>\n<\/div>\n<\/div>\n<iframe id=\"pa-frame\" title=\"PDF preview\"><\/iframe>\n<\/div>\n<\/div>\n<style>\n.pa-wrap{max-width:1140px;margin:0 auto;padding:10px 0 50px;text-align:left}\n.pa-wrap *,.pa-modal *{box-sizing:border-box}\n.pa-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}\n.pa-grid::before,.pa-grid::after{display:none!important;content:none!important}\n.pa-grid>:not(.pa-card){display:none!important}\n@media (max-width:991px){.pa-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}\n@media (max-width:600px){.pa-grid{grid-template-columns:1fr}}\n.pa-card{display:flex;flex-direction:column;background:#fff;border:1px solid #e6ebe6;border-radius:14px;overflow:hidden;box-shadow:0 4px 14px rgba(20,40,20,.06);transition:transform .3s ease,box-shadow .3s ease;text-align:left}\n.pa-card:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(20,40,20,.16)}\n.pa-band{position:relative;height:118px;padding:18px 22px;color:#fff;display:flex;flex-direction:column;justify-content:space-between;background:var(--band);overflow:hidden}\n.pa-band::after{content:\"\";position:absolute;right:-35px;bottom:-55px;width:150px;height:150px;border-radius:50%;background:rgba(255,255,255,.09)}\n.pa-label{font-size:11px;font-weight:600;letter-spacing:2px;text-transform:uppercase;opacity:.85}\n.pa-num{font-size:46px;font-weight:700;line-height:1;letter-spacing:1px}\n.pa-icon{position:absolute;top:18px;right:20px;width:30px;height:30px;opacity:.85}\n.pa-body{flex:1;display:flex;flex-direction:column;gap:12px;padding:20px 22px 6px}\n.pa-title{margin:0!important;padding:0!important;font-size:18px!important;line-height:1.35!important;font-weight:700!important;color:#1e2a1e!important;text-transform:none!important;letter-spacing:0!important;text-align:left!important}\n.pa-chip{align-self:flex-start;font-size:12px;font-weight:600;letter-spacing:.5px;padding:4px 11px;border-radius:20px;background:#eef4ee;color:#2f6b3a}\n.pa-btns{display:flex;gap:10px;padding:16px 22px 22px}\n.pa-btn{flex:1;display:inline-flex!important;align-items:center;justify-content:center;gap:8px;height:42px;margin:0!important;padding:0 14px!important;border:1px solid #d5ded5!important;border-radius:8px!important;background:#fff!important;color:#2f6b3a!important;font-family:inherit;font-size:14px!important;font-weight:600!important;line-height:1!important;letter-spacing:.3px!important;text-transform:none!important;text-decoration:none!important;box-shadow:none!important;cursor:pointer;transition:background .2s,border-color .2s}\n.pa-btn svg{width:16px;height:16px;flex-shrink:0}\n.pa-btn:hover{border-color:#2f6b3a!important;background:#f3f8f3!important}\n.pa-btn-solid{background:#2f6b3a!important;border-color:#2f6b3a!important;color:#fff!important}\n.pa-btn-solid:hover{background:#245430!important;border-color:#245430!important}\n.pa-modal{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(10,14,10,.78);opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s}\n.pa-modal.open{opacity:1;visibility:visible}\n.pa-modal-box{display:flex;flex-direction:column;width:100%;max-width:1000px;height:90vh;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.45);transform:translateY(12px);transition:transform .25s}\n.pa-modal.open .pa-modal-box{transform:translateY(0)}\n.pa-modal-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 20px;border-bottom:1px solid #eee}\n.pa-modal-head h3{margin:0!important;font-size:17px!important;line-height:1.3!important;text-transform:none!important;letter-spacing:0!important;text-align:left!important}\n.pa-modal-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}\n.pa-modal-actions .pa-btn{flex:none;width:auto}\n.pa-close{border:none!important;background:none!important;font-size:30px;line-height:1;color:#555;cursor:pointer;padding:0 6px!important;box-shadow:none!important}\n.pa-close:hover{color:#000}\n#pa-frame{flex:1;width:100%;border:none;background:#f4f4f4}\n<\/style>\n<script>\n(function(){\n  var base = \"https:\/\/urbane-project.eu\/wp-urbane\/wp-content\/uploads\/2026\/10\/\";\n  var label = \"Practice Abstract\";\n  \/* ===== EDIT TITLES \/ PARTNERS HERE ===== *\/\n  var abstracts = [\n    { title: \"Cover crops in Africa\",                   desc: \"\", file: base + \"URBANE_Practice-abstract1_cover-crops-in-africa_compressed.pdf\" },\n    { title: \"Crop rotation and association\",           desc: \"\", file: base + \"URBANE_Practice-abstract2_rotation-association_compressed.pdf\" },\n    { title: \"Farm portrait\",                           desc: \"\", file: base + \"URBANE_Practice-abstract3_farm-portrait_compressed.pdf\" },\n    { title: \"Nutriscope: tomato calibration\",          desc: \"Senseen\", file: base + \"URBANE_Practice-abstract-4_-Nutriscope_Tomato_Calibration_Senseen_A.Robette.docx_compressed.pdf\" },\n    { title: \"Decision support system for farmers\",     desc: \"BIOSENS\", file: base + \"URBANE_Practice-abstract-5_-DSS-for-farmers_BIOSENS_G.Mimic_author_compressed.pdf\" },\n    { title: \"On-farm monitoring of insect pests\",      desc: \"ELGO\", file: base + \"URBANE_Practice-abstract-6_on-farm-monitoring-insect-pests_ELGO_compressed.pdf\" },\n    { title: \"Decision support system for authorities\", desc: \"CYRIC\", file: base + \"URBANE_Practice-abstract-7_DSS-for-authorities_Cyric_compressed.pdf\" },\n    { title: \"Ryaka\",                                   desc: \"VdT & CNA\", file: base + \"URBANE_Practice-abstract-8_-ryaka_VdT-CNA_compressed.pdf\" },\n    { title: \"Crotalaria\",                              desc: \"VdT & CNA\", file: base + \"URBANE_Practice-abstract-9_-crotalaria_VdT-CNA_compressed.pdf\" },\n    { title: \"Participatory Guarantee Systems (PGS)\",   desc: \"TU\/e\", file: base + \"URBANE_Practice-abstract-10_-PGS_TUe_compressed.pdf\" },\n    { title: \"Solar-powered borehole\",                  desc: \"CNA & VdT\", file: base + \"URBANE_Practice-abstract-11_-Solar-borehole_CNA-VdT_compressed.pdf\" },\n    { title: \"Windbreak hedges\",                        desc: \"CNA & VdT\", file: base + \"URBANE_Practice-abstract-12_-windbreak-hedge_CNA-VdT_compressed.pdf\" },\n    { title: \"Moringa\",                                 desc: \"CNA & VdT\", file: base + \"URBANE_Practice-abstract-13_-moringa_CNA-VdT_compressed.pdf\" }\n  ];\n  \/* ===== header colours (rotate through these) ===== *\/\n  var bands = [\n    \"linear-gradient(135deg,#2f6b3a,#5c9b4f)\",\n    \"linear-gradient(135deg,#5f6b26,#9da546)\",\n    \"linear-gradient(135deg,#1f5c58,#3f8f84)\",\n    \"linear-gradient(135deg,#8a4b2a,#c47d47)\"\n  ];\n  \/* ===== no need to edit below this line ===== *\/\n  var icoDoc = '<svg class=\"pa-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\/><path d=\"M14 2v6h6\"\/><path d=\"M8 13h8M8 17h5\"\/><\/svg>';\n  var icoEye = '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M1 12s4-7 11-7 11 7 11 7-4 7-11 7S1 12 1 12z\"\/><circle cx=\"12\" cy=\"12\" r=\"3\"\/><\/svg>';\n  var icoDl = '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\/><path d=\"M7 10l5 5 5-5\"\/><path d=\"M12 15V3\"\/><\/svg>';\n  var grid = document.getElementById(\"pa-grid\");\n  var modal = document.getElementById(\"pa-modal\");\n  var frame = document.getElementById(\"pa-frame\");\n  var mTitle = document.getElementById(\"pa-modal-title\");\n  var mDownload = document.getElementById(\"pa-modal-download\");\n  function openPreview(a){\n    if (window.matchMedia(\"(max-width: 767px)\").matches) { window.open(a.file, \"_blank\"); return; }\n    mTitle.textContent = a.title;\n    mDownload.href = a.file;\n    frame.src = a.file + \"#view=FitH\";\n    modal.classList.add(\"open\");\n    modal.setAttribute(\"aria-hidden\", \"false\");\n    document.body.style.overflow = \"hidden\";\n  }\n  function closePreview(){\n    modal.classList.remove(\"open\");\n    modal.setAttribute(\"aria-hidden\", \"true\");\n    document.body.style.overflow = \"\";\n    setTimeout(function(){ frame.src = \"about:blank\"; }, 250);\n  }\n  abstracts.forEach(function(a, i){\n    var num = String(i + 1).padStart(2, \"0\");\n    var card = document.createElement(\"article\");\n    card.className = \"pa-card\";\n    card.style.setProperty(\"--band\", bands[i % bands.length]);\n    card.innerHTML =\n      '<div class=\"pa-band\">' + icoDoc + '<span class=\"pa-label\"><\/span><span class=\"pa-num\">' + num + '<\/span><\/div>' +\n      '<div class=\"pa-body\"><h4 class=\"pa-title\"><\/h4>' + (a.desc ? '<span class=\"pa-chip\"><\/span>' : '') + '<\/div>' +\n      '<div class=\"pa-btns\"><button type=\"button\" class=\"pa-btn pa-preview\">' + icoEye + 'Preview<\/button>' +\n      '<a class=\"pa-btn pa-btn-solid pa-download\" download>' + icoDl + 'Download<\/a><\/div>';\n    card.querySelector(\".pa-label\").textContent = label;\n    card.querySelector(\".pa-title\").textContent = a.title;\n    if (a.desc) card.querySelector(\".pa-chip\").textContent = a.desc;\n    card.querySelector(\".pa-download\").href = a.file;\n    card.querySelector(\".pa-preview\").addEventListener(\"click\", function(){ openPreview(a); });\n    grid.appendChild(card);\n  });\n  document.getElementById(\"pa-close\").addEventListener(\"click\", closePreview);\n  modal.addEventListener(\"click\", function(e){ if (e.target === modal) closePreview(); });\n  document.addEventListener(\"keydown\", function(e){ if (e.key === \"Escape\") closePreview(); });\n})();\n<\/script>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Download \u00d7<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_monsterinsights_skip_tracking":false,"footnotes":""},"class_list":["post-562","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/urbane-project.eu\/wp-urbane\/wp-json\/wp\/v2\/pages\/562","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/urbane-project.eu\/wp-urbane\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/urbane-project.eu\/wp-urbane\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/urbane-project.eu\/wp-urbane\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/urbane-project.eu\/wp-urbane\/wp-json\/wp\/v2\/comments?post=562"}],"version-history":[{"count":5,"href":"https:\/\/urbane-project.eu\/wp-urbane\/wp-json\/wp\/v2\/pages\/562\/revisions"}],"predecessor-version":[{"id":599,"href":"https:\/\/urbane-project.eu\/wp-urbane\/wp-json\/wp\/v2\/pages\/562\/revisions\/599"}],"wp:attachment":[{"href":"https:\/\/urbane-project.eu\/wp-urbane\/wp-json\/wp\/v2\/media?parent=562"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}