{"id":368,"date":"2026-07-27T12:41:21","date_gmt":"2026-07-27T12:41:21","guid":{"rendered":"https:\/\/monichron.co.za\/?page_id=368"},"modified":"2026-07-27T13:17:09","modified_gmt":"2026-07-27T13:17:09","slug":"our-partners-2","status":"publish","type":"page","link":"https:\/\/monichron.co.za\/index.php\/our-partners-2\/","title":{"rendered":"Our Partners"},"content":{"rendered":"\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>Our Partners<\/title>\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700;800&amp;display=swap\" rel=\"stylesheet\">\n<style>\n  :root{\n    --ink:#161B33;\n    --ink-soft:#4B5268;\n    --ink-deep:#0B0F1F;\n    --accent:#2F8FE8;\n    --accent-deep:#1C6FC4;\n  }\n  *{box-sizing:border-box;}\n  body{margin:0;font-family:'Inter',system-ui,-apple-system,sans-serif;background:#eef0f4;color:var(--ink);}\n\n  \/* ================= PINNED WRAP: partners carousel -> CTA ================= *\/\n  .partners-wrap{position:relative;height:260vh;}\n  .partners-sticky{\n    position:sticky;top:0;height:100vh;\n    width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);\n    overflow:hidden;background:var(--ink-deep);\n  }\n\n  .layer{\n    position:absolute;inset:0;\n    transition:opacity 0.9s cubic-bezier(.65,0,.35,1), transform 0.9s cubic-bezier(.65,0,.35,1);\n    will-change:opacity, transform;\n  }\n\n  \/* ---- Partners layer ---- *\/\n  #partnersLayer{display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:1;transform:scale(1);pointer-events:auto;}\n  .partners__eyebrow{display:flex;align-items:center;gap:14px;margin-bottom:8px;}\n  .partners__eyebrow .rule{width:40px;height:3px;background:var(--accent);border-radius:2px;}\n  .partners__eyebrow span{font-size:0.78rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:#8fc4f7;}\n  .partners-heading{color:#fff;font-size:1.9rem;font-weight:800;margin:0 0 28px;letter-spacing:-0.01em;text-align:center;}\n\n  .partner-stage{position:relative;width:100%;height:600px;overflow:hidden;}\n\n  .partner-ambient{position:absolute;inset:0;z-index:0;}\n  .partner-ambient__layer{\n    position:absolute;inset:-10%;\n    background-size:cover;background-position:center;\n    filter:blur(70px) saturate(1.2);\n    transform:scale(1.15);\n    opacity:0;\n    transition:opacity 1s ease;\n  }\n  .partner-ambient__layer.is-active{opacity:0.55;}\n  .partner-ambient__scrim{position:absolute;inset:0;background:rgba(6,9,20,0.45);}\n\n  .partner-track{\n    position:relative;z-index:2;height:100%;\n    display:flex;align-items:center;\n    transition:transform 0.85s cubic-bezier(.65,0,.35,1);\n    will-change:transform;\n  }\n\n  \/* Slot: JS controls carousel position\/scale\/opacity\/filter here ONLY.\n     Keeping this separate from .partner-card means the hover effect below\n     never fights with the per-frame inline styles the carousel sets. *\/\n  .partner-slot{\n    flex:0 0 auto;\n    width:min(400px, 62vw);\n    height:100%;\n    margin:0 20px;\n    display:flex;align-items:center;justify-content:center;\n    transition:transform 0.85s cubic-bezier(.65,0,.35,1), opacity 0.85s ease, filter 0.85s ease;\n  }\n\n  \/* Card: fixed footprint by default. On hover, JS measures the actual\n     description length and expands the card only as much as that specific\n     partner's content needs (see expandCard\/collapseCard below) \u2014 instead\n     of a single fixed hover height that either overshoots (blank space)\n     or clips (scrolling) depending on how long that partner's blurb is. *\/\n  .partner-card{\n    width:100%;\n    height:440px;\n    border-radius:22px;\n    overflow:hidden;\n    display:flex;flex-direction:column;\n    background:transparent;\n    box-shadow:0 30px 70px -25px rgba(0,0,0,0.55);\n    border:2px solid transparent;\n    cursor:pointer;\n    transition:height 0.4s cubic-bezier(.22,1,.36,1), transform 0.4s cubic-bezier(.22,1,.36,1), box-shadow 0.4s ease, border-color 0.4s ease;\n  }\n  .partner-card:hover{\n    transform:translateY(-14px);\n    border-color:var(--accent);\n    box-shadow:0 0 0 4px rgba(47,143,232,0.25), 0 30px 70px -20px rgba(47,143,232,0.5), 0 45px 90px -30px rgba(0,0,0,0.6);\n  }\n\n  \/* Logo zone: fixed pixel height always \u2014 never affected by hover growth\n     or by any individual logo's own image dimensions. Sized generously\n     (and the image's own max box below) so every logo \u2014 regardless of its\n     native resolution or aspect ratio \u2014 reads at a consistent, legible\n     scale rather than shrinking to fit a cramped box. *\/\n  .partner-card__logo{\n    flex:0 0 190px;\n    height:190px;\n    display:flex;align-items:center;justify-content:center;\n    background:#fff;\n    padding:20px;\n  }\n  .partner-logo-img{\n    max-height:130px;\n    max-width:260px;\n    width:auto;height:auto;\n    object-fit:contain;\n  }\n\n  \/* Info zone: flexible \u2014 absorbs the extra room JS adds on hover *\/\n  .partner-card__info{\n    flex:1;min-height:0;\n    background:rgba(6,9,20,0.9);color:#fff;\n    padding:24px 26px;\n    display:flex;flex-direction:column;\n  }\n  .partner-card__name{flex:0 0 auto;display:flex;align-items:baseline;gap:10px;font-size:1.25rem;font-weight:800;margin:0 0 10px;}\n  .partner-card__index{color:var(--accent);font-size:0.95rem;font-weight:700;}\n\n  \/* Fallback only \u2014 for the rare description long enough to exceed the\n     capped hover-expansion height, this keeps it from ever clipping. *\/\n  .partner-card__desc-scroll{\n    flex:1;min-height:0;overflow-y:auto;padding-right:8px;\n    scrollbar-width:thin;scrollbar-color:rgba(255,255,255,0.3) transparent;\n  }\n  .partner-card__desc-scroll::-webkit-scrollbar{width:4px;}\n  .partner-card__desc-scroll::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.3);border-radius:2px;}\n  .partner-card__desc{font-size:0.88rem;line-height:1.6;color:rgba(255,255,255,0.75);margin:0;}\n\n  .partner-nav{\n    position:absolute;top:50%;transform:translateY(-50%);\n    width:46px;height:46px;border-radius:50%;\n    background:rgba(255,255,255,0.14);border:1px solid rgba(255,255,255,0.3);\n    backdrop-filter:blur(6px);\n    display:flex;align-items:center;justify-content:center;cursor:pointer;\n    transition:background 0.25s ease;z-index:5;\n  }\n  .partner-nav:hover{background:var(--accent);}\n  .partner-nav svg{width:16px;height:16px;stroke:#fff;}\n  .partner-nav--prev{left:24px;}\n  .partner-nav--next{right:24px;}\n\n  .partner-dots{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);display:flex;gap:8px;z-index:6;}\n  .partner-dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,0.35);border:none;cursor:pointer;padding:0;transition:background 0.3s ease,transform 0.3s ease;}\n  .partner-dot.is-active{background:#fff;transform:scale(1.3);}\n\n  \/* ---- CTA hero layer ---- *\/\n  #ctaLayer{\n    display:flex;flex-direction:column;align-items:center;justify-content:center;\n    text-align:center;padding:24px;opacity:0;transform:translateY(24px);pointer-events:none;\n    background:radial-gradient(ellipse 80% 60% at 50% 30%, rgba(47,143,232,0.35), transparent 70%), var(--ink-deep);\n    color:#fff;\n  }\n  #ctaLayer .eyebrow{font-size:0.8rem;font-weight:700;letter-spacing:0.16em;text-transform:uppercase;color:#8fc4f7;margin-bottom:18px;}\n  #ctaLayer h2{font-size:clamp(2.2rem,4.5vw,3.4rem);font-weight:800;letter-spacing:-0.01em;margin:0 0 20px;max-width:820px;}\n  #ctaLayer p{font-size:1.05rem;color:rgba(255,255,255,0.75);max-width:560px;margin:0 0 34px;}\n\n  .cta-btn{\n    display:inline-flex;align-items:center;gap:8px;\n    background:var(--accent);color:#fff;border:none;\n    font-family:inherit;font-weight:700;font-size:0.85rem;letter-spacing:0.04em;text-transform:uppercase;\n    padding:15px 30px;border-radius:999px;cursor:pointer;\n    transition:background 0.3s ease, transform 0.3s ease;\n  }\n  .cta-btn:hover{background:var(--accent-deep);transform:translateY(-2px);}\n\n  .partners-sticky.is-cta #partnersLayer{opacity:0;transform:scale(0.94);pointer-events:none;}\n  .partners-sticky.is-cta #ctaLayer{opacity:1;transform:translateY(0);pointer-events:auto;}\n\n  @media (max-width:720px){\n    .partner-nav{display:none;}\n    .partner-slot{width:78vw;}\n    .partner-card{height:420px;}\n    .partner-card__logo{flex-basis:160px;height:160px;}\n    .partner-logo-img{max-height:100px;max-width:220px;}\n  }\n\n  @media (prefers-reduced-motion:reduce){\n    .layer, .partner-card, .partner-slot, .partner-track, .partner-ambient__layer{transition:none !important;}\n  }\n<\/style>\n\n<div class=\"partners-wrap\" id=\"partnersWrap\">\n  <div class=\"partners-sticky\" id=\"partnersSticky\">\n\n    <div class=\"layer\" id=\"partnersLayer\">\n      <div class=\"partners__eyebrow\"><div class=\"rule\"><\/div><span>Our Partners<\/span><\/div>\n      <h2 class=\"partners-heading\">Trusted by industry leaders<\/h2>\n\n      <div class=\"partner-stage\">\n        <div class=\"partner-ambient\" id=\"partnerAmbient\"><\/div>\n        <div class=\"partner-track\" id=\"partnerTrack\"><\/div>\n        <button class=\"partner-nav partner-nav--prev\" aria-label=\"Previous partner\">\n          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"15 18 9 12 15 6\"><\/polyline><\/svg>\n        <\/button>\n        <button class=\"partner-nav partner-nav--next\" aria-label=\"Next partner\">\n          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"9 18 15 12 9 6\"><\/polyline><\/svg>\n        <\/button>\n        <div class=\"partner-dots\" id=\"partnerDots\"><\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"layer\" id=\"ctaLayer\">\n      <div class=\"eyebrow\">Partnership Program<\/div>\n      <h2>Let&#8217;s build something bigger, together<\/h2>\n      <p>From integration to go-to-market, we equip our partners with the tools, support, and reach to scale faster.<\/p>\n      <button class=\"cta-btn\">Become a Partner<\/button>\n    <\/div>\n\n  <\/div>\n<\/div>\n\n<script>\n(function(){\n  \/\/ ---- partner data ----\n  var PARTNER_DATA = [\n    {\n      name:\"RTT Logistics\",\n      desc:\"A leading global logistics company renowned for its extensive network, advanced supply chain solutions, and commitment to delivering excellence in transportation and distribution services. RTT Logistics continues to set industry standards and drive innovation in the logistics sector.\",\n      logo:\"https:\/\/monichron.co.za\/wp-content\/uploads\/2023\/11\/rtt_2_logo.jpg\",\n      photo:\"https:\/\/images.unsplash.com\/photo-1494412651409-8963ce7935a7?q=80&w=1400&auto=format&fit=crop\"\n    },\n    {\n      name:\"RPM\",\n      desc:\"A trusted provider of comprehensive software solutions, known for expertise in developing cutting-edge technology for diverse industries. RPM empowers businesses with transformative digital solutions, driving sustainable growth and operational excellence.\",\n      logo:\"https:\/\/monichron.co.za\/wp-content\/uploads\/2023\/11\/rpm.png\",\n      photo:\"https:\/\/images.unsplash.com\/photo-1517694712202-14dd9538aa97?q=80&w=1400&auto=format&fit=crop\"\n    },\n    {\n      name:\"BHF\",\n      desc:\"A distinguished healthcare funding group committed to supporting and advancing the healthcare sector through strategic investments and innovative funding solutions, driving positive change and sustainable development within the healthcare industry.\",\n      logo:\"https:\/\/monichron.co.za\/wp-content\/uploads\/2023\/11\/download-1.png\",\n      photo:\"https:\/\/images.unsplash.com\/photo-1576091160399-112ba8d25d1d?q=80&w=1400&auto=format&fit=crop\"\n    },\n    {\n      name:\"Courier IT\",\n      desc:\"A trusted courier services provider offering fast and secure delivery solutions, catering to the diverse logistical needs of businesses and individuals.\",\n      logo:\"https:\/\/monichron.co.za\/wp-content\/uploads\/2023\/11\/courierIT.png\",\n      photo:\"https:\/\/images.unsplash.com\/photo-1586528116311-ad8dd3c8310d?q=80&w=1400&auto=format&fit=crop\"\n    },\n    {\n      name:\"Vos Logistics\",\n      desc:\"A leading logistics solutions provider offering comprehensive and efficient transportation services, ensuring seamless and reliable supply chain management.\",\n      logo:\"https:\/\/monichron.co.za\/wp-content\/uploads\/2023\/11\/VosLogistics.png\",\n      photo:\"https:\/\/images.unsplash.com\/photo-1601584115197-04ecc0da31d7?q=80&w=1400&auto=format&fit=crop\"\n    },\n    {\n      name:\"Pingo\",\n      desc:\"A dynamic delivery service company offering reliable and efficient delivery solutions, ensuring seamless and timely distribution for businesses and customers.\",\n      logo:\"https:\/\/monichron.co.za\/wp-content\/uploads\/2023\/11\/pingo_deliver_logo.jpg\",\n      photo:\"https:\/\/images.unsplash.com\/photo-1526367790999-0150786686a2?q=80&w=1400&auto=format&fit=crop\"\n    },\n    {\n      name:\"KPSC\",\n      desc:\"A distinguished pharmaceutical consulting agency providing strategic guidance and innovative solutions, driving advancements in pharmaceutical research and development.\",\n      logo:\"https:\/\/monichron.co.za\/wp-content\/uploads\/2023\/11\/KPSC-Logo-300x194.png\",\n      photo:\"https:\/\/images.unsplash.com\/photo-1587854692152-cbe660dbde88?q=80&w=1400&auto=format&fit=crop\"\n    },\n    {\n      name:\"Quantum IT\",\n      desc:\"Specializes in cutting-edge data storage and management solutions, providing secure and scalable infrastructure for businesses' critical data assets.\",\n      logo:\"https:\/\/monichron.co.za\/wp-content\/uploads\/2023\/11\/Quantum-IT-Logo-300x154.png\",\n      photo:\"https:\/\/images.unsplash.com\/photo-1558494949-ef010cbdcc31?q=80&w=1400&auto=format&fit=crop\"\n    }\n  ];\n\n  var track = document.getElementById('partnerTrack');\n  var ambient = document.getElementById('partnerAmbient');\n  var dotsWrap = document.getElementById('partnerDots');\n  var current = 0, timer = null;\n  var AUTOPLAY_MS = 4200;\n  \/\/ How far a card is allowed to grow beyond its base height, no matter how\n  \/\/ long a description gets \u2014 keeps one outlier blurb from producing an\n  \/\/ absurdly tall card (the desc area's own scrollbar catches the rest).\n  var MAX_GROWTH_PX = 220;\n\n  PARTNER_DATA.forEach(function(p, i){\n    var slot = document.createElement('div');\n    slot.className = 'partner-slot';\n    slot.innerHTML =\n      '<div class=\"partner-card\">' +\n        '<div class=\"partner-card__logo\">' +\n          '<img decoding=\"async\" class=\"partner-logo-img\" src=\"' + p.logo + '\" alt=\"' + p.name + ' logo\" loading=\"lazy\">' +\n        '<\/div>' +\n        '<div class=\"partner-card__info\">' +\n          '<div class=\"partner-card__name\"><span class=\"partner-card__index\">0' + (i+1) + '<\/span>' + p.name + '<\/div>' +\n          '<div class=\"partner-card__desc-scroll\"><p class=\"partner-card__desc\">' + p.desc + '<\/p><\/div>' +\n        '<\/div>' +\n      '<\/div>';\n    slot.addEventListener('click', function(){ goTo(i, true); });\n    track.appendChild(slot);\n\n    var amb = document.createElement('div');\n    amb.className = 'partner-ambient__layer' + (i === 0 ? ' is-active' : '');\n    amb.style.backgroundImage = \"url('\" + p.photo + \"')\";\n    ambient.appendChild(amb);\n\n    var dot = document.createElement('button');\n    dot.className = 'partner-dot' + (i === 0 ? ' is-active' : '');\n    dot.setAttribute('aria-label', 'Go to ' + p.name);\n    dot.addEventListener('click', function(){ goTo(i, true); });\n    dotsWrap.appendChild(dot);\n  });\n  var scrim = document.createElement('div');\n  scrim.className = 'partner-ambient__scrim';\n  ambient.appendChild(scrim);\n\n  var slots = track.querySelectorAll('.partner-slot');\n  var ambLayers = ambient.querySelectorAll('.partner-ambient__layer');\n  var dots = dotsWrap.querySelectorAll('.partner-dot');\n  var cards = track.querySelectorAll('.partner-card');\n\n  \/\/ ---- content-aware hover expansion ----\n  \/\/ Measures how tall THIS card's actual logo + name + description content\n  \/\/ needs to be, and grows the card only that much (capped), instead of\n  \/\/ every card jumping to one fixed hover height regardless of how short\n  \/\/ or long its blurb actually is.\n  function expandCard(card){\n    var logoEl = card.querySelector('.partner-card__logo');\n    var infoEl = card.querySelector('.partner-card__info');\n    var nameEl = card.querySelector('.partner-card__name');\n    var descEl = card.querySelector('.partner-card__desc-scroll');\n\n    var baseH = card.getBoundingClientRect().height; \/\/ current, un-expanded height\n\n    var infoStyle = getComputedStyle(infoEl);\n    var nameStyle = getComputedStyle(nameEl);\n    var vPad = parseFloat(infoStyle.paddingTop) + parseFloat(infoStyle.paddingBottom);\n    var nameMarginBottom = parseFloat(nameStyle.marginBottom) || 0;\n    var borderTotal = 4; \/\/ 2px top + 2px bottom card border (box-sizing: border-box)\n\n    var natural = logoEl.offsetHeight + vPad + nameEl.offsetHeight + nameMarginBottom + descEl.scrollHeight + borderTotal;\n    var target = Math.min(Math.max(natural, baseH), baseH + MAX_GROWTH_PX);\n\n    card.style.height = target + 'px';\n  }\n  function collapseCard(card){\n    card.style.height = '';\n  }\n  cards.forEach(function(card){\n    card.addEventListener('mouseenter', function(){ expandCard(card); });\n    card.addEventListener('mouseleave', function(){ collapseCard(card); });\n    card.addEventListener('focusin', function(){ expandCard(card); });\n    card.addEventListener('focusout', function(){ collapseCard(card); });\n  });\n\n  function render(){\n    slots.forEach(function(slot, i){\n      var dist = Math.abs(i - current);\n      var scale = dist === 0 ? 1 : dist === 1 ? 0.82 : 0.68;\n      var opacity = dist === 0 ? 1 : dist === 1 ? 0.55 : 0.22;\n      var blur = dist === 0 ? 0 : 3;\n      slot.style.transform = 'scale(' + scale + ')';\n      slot.style.opacity = opacity;\n      slot.style.filter = 'blur(' + blur + 'px)';\n      slot.style.zIndex = dist === 0 ? 3 : (10 - dist);\n    });\n\n    var slotW = slots[0].offsetWidth;\n    var gap = 40; \/\/ 2 * 20px margin\n    var shift = current * (slotW + gap);\n    track.style.transform = 'translateX(calc(50% - ' + (shift + slotW \/ 2) + 'px))';\n\n    ambLayers.forEach(function(l, i){ l.classList.toggle('is-active', i === current); });\n    dots.forEach(function(d, i){ d.classList.toggle('is-active', i === current); });\n  }\n\n  function goTo(index, userTriggered){\n    current = (index + PARTNER_DATA.length) % PARTNER_DATA.length;\n    render();\n    if(userTriggered) restartAutoplay();\n  }\n\n  function next(){ goTo(current + 1); }\n  function prevSlide(){ goTo(current - 1); }\n\n  document.querySelector('.partner-nav--next').addEventListener('click', function(e){ e.stopPropagation(); next(); restartAutoplay(); });\n  document.querySelector('.partner-nav--prev').addEventListener('click', function(e){ e.stopPropagation(); prevSlide(); restartAutoplay(); });\n\n  function restartAutoplay(){\n    clearInterval(timer);\n    timer = setInterval(next, AUTOPLAY_MS);\n  }\n  restartAutoplay();\n  render();\n  window.addEventListener('resize', render);\n\n  \/\/ ---- threshold-based crossfade: partners -> CTA ----\n  var wrap = document.getElementById('partnersWrap');\n  var sticky = document.getElementById('partnersSticky');\n  var isCta = false;\n  var ticking = false;\n\n  function updateScroll(){\n    var rect = wrap.getBoundingClientRect();\n    var scrollable = wrap.offsetHeight - window.innerHeight;\n    var progress = scrollable > 0 ? (-rect.top) \/ scrollable : 0;\n    progress = Math.max(0, Math.min(1, progress));\n\n    if(!isCta && progress > 0.55){\n      isCta = true;\n      sticky.classList.add('is-cta');\n    } else if(isCta && progress < 0.45){\n      isCta = false;\n      sticky.classList.remove('is-cta');\n    }\n\n    ticking = false;\n  }\n\n  window.addEventListener('scroll', function(){\n    if(!ticking){ requestAnimationFrame(updateScroll); ticking = true; }\n  });\n  updateScroll();\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Our Partners Our Partners Trusted by industry leaders Partnership Program Let&#8217;s build something bigger, together From integration to go-to-market, we equip our partners with the tools, support, and reach to scale faster. Become a Partner<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"template-basic","meta":{"_gspb_post_css":"","om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"footnotes":""},"class_list":["post-368","page","type-page","status-publish","hentry"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/monichron.co.za\/index.php\/wp-json\/wp\/v2\/pages\/368","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/monichron.co.za\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/monichron.co.za\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/monichron.co.za\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/monichron.co.za\/index.php\/wp-json\/wp\/v2\/comments?post=368"}],"version-history":[{"count":3,"href":"https:\/\/monichron.co.za\/index.php\/wp-json\/wp\/v2\/pages\/368\/revisions"}],"predecessor-version":[{"id":441,"href":"https:\/\/monichron.co.za\/index.php\/wp-json\/wp\/v2\/pages\/368\/revisions\/441"}],"wp:attachment":[{"href":"https:\/\/monichron.co.za\/index.php\/wp-json\/wp\/v2\/media?parent=368"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}