{"id":34353,"date":"2026-07-14T20:03:21","date_gmt":"2026-07-14T20:03:21","guid":{"rendered":"https:\/\/remote-opus.com\/about\/"},"modified":"2026-07-14T20:03:21","modified_gmt":"2026-07-14T20:03:21","slug":"about","status":"publish","type":"page","link":"https:\/\/remote-opus.com\/en\/about\/","title":{"rendered":"About us"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"34353\" class=\"elementor elementor-34353\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-tpx1sec elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"tpx1sec\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-no\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-tpx1col\" data-id=\"tpx1col\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-tpx1htm elementor-widget elementor-widget-html\" data-id=\"tpx1htm\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- Remix Icon CDN -->\r\n<link href=\"https:\/\/cdn.jsdelivr.net\/npm\/remixicon@4.3.0\/fonts\/remixicon.css\" rel=\"stylesheet\" \/>\r\n\r\n<section class=\"reviews-section-0\">\r\n  <div class=\"reviews-header-0\">\r\n    <div class=\"rating-summary-0\">\r\n      <h3>Wat onze klanten zeggen<\/h3>\r\n      <div class=\"stars-0\">\r\n        <i class=\"ri-star-fill\"><\/i>\r\n        <i class=\"ri-star-fill\"><\/i>\r\n        <i class=\"ri-star-fill\"><\/i>\r\n        <i class=\"ri-star-fill\"><\/i>\r\n        <i class=\"ri-star-fill\"><\/i>\r\n      <\/div>\r\n      <p class=\"rating-score-0\"><span>(Gebaseerd op echte reviews)<\/span><\/p>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <!-- \u2705 Wrapper with buttons -->\r\n  <div class=\"reviews-slider-wrapper-0\">\r\n\r\n    <!-- Left Button -->\r\n    <button id=\"prev-0\" class=\"slider-btn-0 prev-0\" aria-label=\"Vorige review\">\r\n      <i class=\"ri-arrow-left-s-line\"><\/i>\r\n    <\/button>\r\n\r\n    <!-- The Slider -->\r\n    <div class=\"reviews-slider-0\">\r\n      <!-- Review Cards -->\r\n      <article class=\"review-card-0\">\r\n        <i class=\"ri-double-quotes-l quote-icon-0\"><\/i>\r\n        <div class=\"stars-0\"><i class=\"ri-star-fill\"><\/i><i class=\"ri-star-fill\"><\/i><i class=\"ri-star-fill\"><\/i><i class=\"ri-star-fill\"><\/i><i class=\"ri-star-fill\"><\/i><\/div>\r\n        <p class=\"review-text-0\">Behulpzaam en pragmatisch. Bekwame VA. Ik beveel een VA aan voor iedereen die zijn eigen tijd wil maximaliseren voor de belangrijkste taken en ondersteuning wil krijgen van de VA bij de dagelijkse werkzaamheden.<\/p>\r\n        <p class=\"reviewer-name-0\">Gary Chow<br><span class=\"reviewer-role-0\">CEO - Marktspan\r\n<\/span><\/p>\r\n      <\/article>\r\n\r\n      <article class=\"review-card-0\">\r\n        <i class=\"ri-double-quotes-l quote-icon-0\"><\/i>\r\n        <div class=\"stars-0\"><i class=\"ri-star-fill\"><\/i><i class=\"ri-star-fill\"><\/i><i class=\"ri-star-fill\"><\/i><i class=\"ri-star-fill\"><\/i><i class=\"ri-star-fill\"><\/i><\/div>\r\n        <p class=\"review-text-0\">Wij als Climate King hebben via Remote Opus twee personeelsleden Remote aan het werk. Het bevalt heel erg goed, ze nemen veel werk uit handen en staan altijd voor ons klaar.<\/p>\r\n        <p class=\"reviewer-name-0\">Stefan Klammer<br><span class=\"reviewer-role-0\">Eigenaar - Climate King\r\n<\/span><\/p>\r\n      <\/article>\r\n\r\n      <article class=\"review-card-0\">\r\n        <i class=\"ri-double-quotes-l quote-icon-0\"><\/i>\r\n        <div class=\"stars-0\"><i class=\"ri-star-fill\"><\/i><i class=\"ri-star-fill\"><\/i><i class=\"ri-star-fill\"><\/i><i class=\"ri-star-fill\"><\/i><i class=\"ri-star-fill\"><\/i><\/div>\r\n        <p class=\"review-text-0\">Een geweldige ervaring en goed contact met Remote Opus. De selectie ging soepel en we hebben heel snel een beslissing genomen omdat ze hele goede kandidaten hebben.<\/p>\r\n        <p class=\"reviewer-name-0\">Kevin Boelhouwer<br><span class=\"reviewer-role-0\">CEO \u2013 Webartsy<\/span><\/p>\r\n      <\/article>\r\n\r\n      <article class=\"review-card-0\">\r\n        <i class=\"ri-double-quotes-l quote-icon-0\"><\/i>\r\n        <div class=\"stars-0\"><i class=\"ri-star-fill\"><\/i><i class=\"ri-star-fill\"><\/i><i class=\"ri-star-fill\"><\/i><i class=\"ri-star-fill\"><\/i><i class=\"ri-star-fill\"><\/i><\/div>\r\n        <p class=\"review-text-0\">Super professioneel in communicatie en snel met het regelen van kandidaten. Binnen twee dagen had ik een passende kandidaat gevonden en een sollicitatie gepland.<\/p>\r\n        <p class=\"reviewer-name-0\">Waleed Waraich<br><span class=\"reviewer-role-0\">Warehouse Manager - Sync Fulfilment<\/span><\/p>\r\n      <\/article>\r\n\r\n      <article class=\"review-card-0\">\r\n        <i class=\"ri-double-quotes-l quote-icon-0\"><\/i>\r\n        <div class=\"stars-0\"><i class=\"ri-star-fill\"><\/i><i class=\"ri-star-fill\"><\/i><i class=\"ri-star-fill\"><\/i><i class=\"ri-star-fill\"><\/i><i class=\"ri-star-fill\"><\/i><\/div>\r\n        <p class=\"review-text-0\">Onlangs 2 kanjers aangenomen. Vooraf duidelijke sollicitatiegesprekken gehad met deze kandidaten. De begeleiding was zeer goed.<\/p>\r\n        <p class=\"reviewer-name-0\">Fatih Tekmen<br><span class=\"reviewer-role-0\">Eigenaar - 2dehandsfietsenwinkel.nl l<\/span><\/p>\r\n      <\/article>\r\n    <\/div>\r\n\r\n    <!-- Right Button -->\r\n    <button id=\"next-0\" class=\"slider-btn-0 next-0\" aria-label=\"Volgende review\">\r\n      <i class=\"ri-arrow-right-s-line\"><\/i>\r\n    <\/button>\r\n  <\/div>\r\n<\/section>\r\n\r\n\r\n\r\n\r\n\r\n\r\n<script>\r\n(function () {\r\n  document.addEventListener('DOMContentLoaded', () => {\r\n    const slider = document.querySelector('.reviews-slider-0');\r\n    const wrapper = document.querySelector('.reviews-slider-wrapper-0');\r\n    const prevBtn = document.getElementById('prev-0');\r\n    const nextBtn = document.getElementById('next-0');\r\n\r\n    if (!slider || !wrapper) {\r\n      console.error('Slider init failed: .reviews-slider-0 or .reviews-slider-wrapper-0 not found.');\r\n      return;\r\n    }\r\n    console.log('Testimonials slider init');\r\n\r\n    let index = 0;\r\n    let cardWidthWithGap = 0;\r\n    let visibleCount = 1;\r\n    let maxIndex = 0;\r\n\r\n    function calc() {\r\n      const firstCard = slider.querySelector('.review-card-0');\r\n      if (!firstCard) return;\r\n      const gap = parseFloat(getComputedStyle(slider).gap) || 20;\r\n      const cardW = Math.round(firstCard.getBoundingClientRect().width);\r\n      cardWidthWithGap = cardW + gap;\r\n      visibleCount = Math.max(1, Math.floor((wrapper.getBoundingClientRect().width + gap) \/ cardWidthWithGap));\r\n      const total = slider.querySelectorAll('.review-card-0').length;\r\n      maxIndex = Math.max(0, total - visibleCount);\r\n      if (index > maxIndex) index = maxIndex;\r\n    }\r\n\r\n    function slideToIndex() {\r\n      slider.style.transition = 'transform 0.4s ease';\r\n      slider.style.transform = `translateX(-${Math.round(index * cardWidthWithGap)}px)`;\r\n    }\r\n\r\n    \/\/ arrow controls\r\n    if (nextBtn) nextBtn.addEventListener('click', () => {\r\n      calc();\r\n      index = Math.min(index + 1, maxIndex);\r\n      slideToIndex();\r\n    });\r\nif (prevBtn) prevBtn.addEventListener('click', () => {\r\n  calc();\r\n\r\n  if (index === 0) index = maxIndex;\r\n  else index = Math.max(index - 1, 0);\r\n  slideToIndex();\r\n});\r\n\r\n    \/\/ update on resize & initial calc\r\n    window.addEventListener('resize', () => { calc(); slideToIndex(); });\r\n    calc();\r\n    slideToIndex();\r\n\r\n    \/\/ observe DOM changes (if you add new cards dynamically)\r\n    const mo = new MutationObserver(() => { calc(); slideToIndex(); });\r\n    mo.observe(slider, { childList: true });\r\n\r\n    \/* --- drag\/swipe support (pointer + touch + mouse) --- *\/\r\n    let isDown = false;\r\n    let startX = 0;\r\n    let lastTranslate = 0;\r\n\r\n    function getX(e) {\r\n      if (e.touches && e.touches[0]) return e.touches[0].clientX;\r\n      if (e.clientX !== undefined) return e.clientX;\r\n      if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].clientX;\r\n      return 0;\r\n    }\r\n\r\n    function onDown(e) {\r\n      isDown = true;\r\n      startX = getX(e);\r\n      lastTranslate = -index * cardWidthWithGap;\r\n      slider.style.transition = 'none';\r\n      if (e.pointerId && slider.setPointerCapture) try { slider.setPointerCapture(e.pointerId); } catch (err) {}\r\n    }\r\n\r\n    function onMove(e) {\r\n      if (!isDown) return;\r\n      const dx = getX(e) - startX;\r\n      slider.style.transform = `translateX(${lastTranslate + dx}px)`;\r\n      if (e.cancelable) e.preventDefault();\r\n    }\r\n\r\n    function onUp(e) {\r\n      if (!isDown) return;\r\n      isDown = false;\r\n      const dx = getX(e) - startX;\r\n      const threshold = Math.max(40, cardWidthWithGap * 0.12);\r\n      if (dx < -threshold) index = Math.min(index + 1, maxIndex);\r\n      else if (dx > threshold) index = Math.max(index - 1, 0);\r\n      slideToIndex();\r\n      if (e.pointerId && slider.releasePointerCapture) try { slider.releasePointerCapture(e.pointerId); } catch (err) {}\r\n    }\r\n\r\n    \/\/ Pointer events\r\n    slider.addEventListener('pointerdown', onDown, { passive: true });\r\n    window.addEventListener('pointermove', onMove, { passive: false });\r\n    window.addEventListener('pointerup', onUp);\r\n\r\n    \/\/ Touch fallback\r\n    slider.addEventListener('touchstart', onDown, { passive: true });\r\n    window.addEventListener('touchmove', onMove, { passive: false });\r\n    window.addEventListener('touchend', onUp);\r\n\r\n    \/\/ Mouse fallback\r\n    slider.addEventListener('mousedown', onDown);\r\n    window.addEventListener('mousemove', onMove);\r\n    window.addEventListener('mouseup', onUp);\r\n\r\n    window.requestAnimationFrame(() => { calc(); slideToIndex(); });\r\n  });\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":8,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"_elementor_version":"3.32.4","_wp_page_template":"elementor_header_footer","footnotes":""},"class_list":["post-34353","page","type-page","status-publish","hentry"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/remote-opus.com\/en\/wp-json\/wp\/v2\/pages\/34353","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/remote-opus.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/remote-opus.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/remote-opus.com\/en\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/remote-opus.com\/en\/wp-json\/wp\/v2\/comments?post=34353"}],"version-history":[{"count":0,"href":"https:\/\/remote-opus.com\/en\/wp-json\/wp\/v2\/pages\/34353\/revisions"}],"wp:attachment":[{"href":"https:\/\/remote-opus.com\/en\/wp-json\/wp\/v2\/media?parent=34353"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}