{"id":56156,"date":"2026-04-09T09:53:07","date_gmt":"2026-04-09T07:53:07","guid":{"rendered":"https:\/\/triptherapie.nl\/?page_id=56156"},"modified":"2026-10-12T12:56:31","modified_gmt":"2026-10-12T10:56:31","slug":"hilfe-bei-der-auswahl-reservierung-fur-sitzung-des-truffelfestes","status":"publish","type":"page","link":"https:\/\/triptherapie.nl\/de\/keuzehulp-reserveren-sessie-truffelceremonie\/","title":{"rendered":"Hilfe bei der Auswahl f\u00fcr private psychedelische Sitzungen, Tr\u00fcffelzeremonien und Retraites in den Niederlanden"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"56156\" class=\"elementor elementor-56156\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e45105b e-con-full e-flex e-con e-parent\" data-id=\"e45105b\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\" aria-label=\"Logp + hoofdmenu\">\n\t\t<div class=\"elementor-element elementor-element-425da20 e-flex e-con-boxed e-con e-child\" data-id=\"425da20\" data-element_type=\"container\" data-e-type=\"container\" aria-label=\"Logo Triphterapie\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-38e1ef4 elementor-widget elementor-widget-image\" data-id=\"38e1ef4\" data-element_type=\"widget\" data-e-type=\"widget\" fetchpriority=\"high\" aria-label=\"Homepage\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/triptherapie.nl\/\">\n\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"160\" height=\"32\" src=\"https:\/\/triptherapie.nl\/wp-content\/uploads\/2020\/02\/triptherapie-logo-cropped.png\" class=\"attachment-full size-full wp-image-54082\" alt=\"Triptherapie logo\" srcset=\"https:\/\/triptherapie.nl\/wp-content\/uploads\/2020\/02\/triptherapie-logo-cropped.png 160w, https:\/\/triptherapie.nl\/wp-content\/uploads\/2020\/02\/triptherapie-logo-cropped-18x4.png 18w\" sizes=\"auto, (max-width: 160px) 100vw, 160px\" title=\"\">\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-42b6cfe e-flex e-con-boxed e-con e-parent\" data-id=\"42b6cfe\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-42df2b0 elementor-widget elementor-widget-heading\" data-id=\"42df2b0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\" id=\"keuzehulp-en-reserveren-van-psychedelische-prive-en-groepssessies\">Keuzehulp en reserveren van psychedelische priv\u00e9- en groepssessies<\/h1>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e83b863 e-flex e-con-boxed e-con e-parent\" data-id=\"e83b863\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b50e008 elementor-widget elementor-widget-html\" data-id=\"b50e008\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t\t\t\t\t\t<style>\n  #distance-tool {\n    margin: 20px auto;\n    padding: 0 10px;\n    max-width: 1200px;\n  }\n\n  :where(#distance-tool) .input-container {\n    display: flex;\n    align-items: center;\n    margin-bottom: 20px;\n    gap: 16px;\n    flex-wrap: wrap;\n  }\n\n  :where(#distance-tool) .input-container input,\n  :where(#distance-tool) .input-container button {\n    box-sizing: border-box;\n    height: 52px;\n    font-size: 17px;\n  }\n\n  :where(#distance-tool) .input-container input {\n    flex: 1;\n    min-width: 260px;\n    padding: 8px 16px;\n  }\n\n  :where(#distance-tool) .calculate-btn {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    box-sizing: border-box;\n    padding: 8px 22px;\n    line-height: 1.2;\n    text-align: center;\n    color: white;\n    background-color: #b20091;\n    border: none;\n    cursor: pointer;\n  }\n\n  :where(#distance-tool) .calculate-btn:hover {\n    opacity: 0.92;\n  }\n\n  :where(#distance-tool) .content-container {\n    display: flex;\n    flex-direction: column;\n    gap: 20px;\n  }\n\n  :where(#distance-tool) .left-column,\n  :where(#distance-tool) .right-column {\n    width: 100%;\n  }\n\n  @media (min-width: 768px) {\n    :where(#distance-tool) .content-container {\n      flex-direction: row;\n      align-items: flex-start;\n    }\n\n    :where(#distance-tool) .left-column {\n      flex: 1.15;\n      min-width: 0;\n    }\n\n    :where(#distance-tool) .right-column {\n      flex: 0.85;\n      min-width: 0;\n    }\n  }\n\n  :where(#distance-tool) .person-controls,\n  :where(#distance-tool) .map-controls {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    gap: 8px;\n    margin: 0 0 18px 0;\n    text-align: center;\n  }\n\n  :where(#distance-tool) .toggle-label {\n    font-weight: 700;\n    color: inherit;\n  }\n\n  :where(#distance-tool) .toggle-group {\n    display: inline-flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    gap: 10px;\n  }\n\n  :where(#distance-tool) .toggle-group input[type=\"radio\"] {\n    position: absolute;\n    opacity: 0;\n    pointer-events: none;\n  }\n\n  :where(#distance-tool) .toggle-option {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-height: 42px;\n    min-width: 125px;\n    padding: 8px 14px;\n    border: none;\n    background-color: black;\n    color: white;\n    cursor: pointer;\n    user-select: none;\n    font-size: 16px;\n    line-height: 1.2;\n    transition: opacity 0.2s ease;\n    box-sizing: border-box;\n    text-align: center;\n  }\n\n  :where(#distance-tool) .toggle-option:hover {\n    opacity: 0.92;\n  }\n\n  :where(#distance-tool) .toggle-group input[type=\"radio\"]:checked + .toggle-option {\n    background-color: #7d0066;\n    color: white;\n  }\n\n  :where(#distance-tool) .toggle-group input[type=\"radio\"]:focus-visible + .toggle-option {\n    outline: 2px solid #fff;\n    outline-offset: 2px;\n  }\n\n  :where(#distance-tool) #results {\n    margin-top: 0;\n  }\n\n  :where(#distance-tool) .person-row {\n    display: flex;\n    flex-wrap: nowrap;\n    align-items: center;\n    justify-content: flex-start;\n    gap: 8px;\n    min-width: 0;\n  }\n\n  :where(#distance-tool) .person-name {\n    display: inline-block;\n    font-weight: 700;\n    min-width: 0;\n    overflow-wrap: anywhere;\n  }\n  :where(#distance-tool) .person-profile-link {\n    color: inherit;\n    text-decoration: none;\n    cursor: pointer;\n  }\n  :where(#distance-tool) .person-profile-link:hover,\n  :where(#distance-tool) .person-profile-link:focus-visible {\n    text-decoration: underline;\n    text-underline-offset: 2px;\n  }\n\n  :where(#distance-tool) .person-actions {\n    display: inline-flex;\n    flex: 0 0 auto;\n    align-items: center;\n    margin: 0;\n  }\n\n  :where(#distance-tool) .action-link {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-height: 32px;\n    box-sizing: border-box;\n    padding: 6px 9px;\n    border: 1px solid #b20091;\n    border-radius: 5px;\n    background: #fff;\n    color: #780062;\n    text-decoration: none;\n    font-size: 13px;\n    font-weight: 600;\n    line-height: 1.2;\n    white-space: nowrap;\n  }\n\n  :where(#distance-tool) .action-link.primary {\n    background: #b20091;\n    color: #fff;\n    border-color: #b20091;\n  }\n\n  :where(#distance-tool) .action-link:hover,\n  :where(#distance-tool) .action-link:focus-visible {\n    filter: brightness(.94);\n    outline: 2px solid #b20091;\n    outline-offset: 2px;\n  }\n\n  :where(#distance-tool) .strike td {\n    color: red;\n    text-decoration: line-through;\n  }\n\n  :where(#distance-tool) .table-container {\n    width: 100%;\n    overflow-x: auto;\n    margin-bottom: 18px;\n  }\n\n  :where(#distance-tool) .table-container table th,\n  :where(#distance-tool) .table-container table td {\n    text-align: center;\n    vertical-align: middle;\n  }\n\n  :where(#distance-tool) .table-container .action-link {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    text-align: center;\n    vertical-align: middle;\n  }\n\n  :where(#distance-tool) #map {\n    width: 100%;\n    height: 340px;\n    margin-top: 0;\n    position: relative;\n    top: 0;\n  }\n\n  :where(#distance-tool) .explanation-row {\n    margin-top: 24px;\n  }\n\n  :where(#distance-tool) .explanation-toggle {\n    width: 100%;\n    background: linear-gradient(90deg, #00000050 0%, #0000004d 100%) !important;\n    color: white;\n    border: none;\n    padding: 12px 16px;\n    font-size: 17px;\n    text-align: left;\n    cursor: pointer;\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    box-sizing: border-box;\n  }\n\n  :where(#distance-tool) .explanation-toggle:hover {\n    opacity: 0.92;\n  }\n\n  :where(#distance-tool) .explanation-toggle .icon {\n    display: inline-flex;\n    transition: transform 0.2s ease;\n  }\n\n  :where(#distance-tool) .explanation-toggle .icon svg {\n    width: 1em;\n    height: 1em;\n    fill: none;\n    stroke: currentColor;\n    stroke-width: 2.5;\n    stroke-linecap: round;\n    stroke-linejoin: round;\n  }\n\n  :where(#distance-tool) .explanation-toggle.active .icon {\n    transform: rotate(180deg);\n  }\n\n  :where(#distance-tool) .explanation-content {\n    display: none;\n    border: 1px solid #222;\n    border-top: none;\n    padding: 18px;\n    background: black;\n    color: white;\n    line-height: 1.6;\n  }\n\n  :where(#distance-tool) .explanation-content.open {\n    display: block;\n  }\n\n  :where(#distance-tool) .explanation-content h2 {\n    margin: 0 0 12px 0;\n    font-size: 24px;\n    color: #f5f5f5;\n  }\n\n  :where(#distance-tool) .explanation-content h3 {\n    margin: 22px 0 10px 0;\n    font-size: 20px;\n    color: #f5f5f5;\n  }\n\n  :where(#distance-tool) .explanation-content p {\n    margin: 0 0 14px 0;\n  }\n\n  :where(#distance-tool) .explanation-content a {\n    color: #ff66d9;\n  }\n\n  @media (max-width: 1024px) {\n    \/* Verberg onbeschikbare begeleiders als volledige tabelrij, zodat ze\n       nooit als lege kaart in het mobiele CSS-grid achterblijven. *\/\n    #distance-tool #results .table-container table tbody > tr.strike,\n    #distance-tool #results .table-container table > tr.strike,\n    #distance-tool #results .table-container tr.strike {\n      display: none !important;\n      visibility: collapse !important;\n      height: 0 !important;\n      min-height: 0 !important;\n      max-height: 0 !important;\n      margin: 0 !important;\n      padding: 0 !important;\n      border: 0 !important;\n      overflow: hidden !important;\n    }\n    #distance-tool #results .table-container tr.strike > td,\n    #distance-tool #results .table-container tr.strike > th {\n      display: none !important;\n      height: 0 !important;\n      min-height: 0 !important;\n      padding: 0 !important;\n      border: 0 !important;\n    }\n    :where(#distance-tool) .input-container {\n      gap: 10px;\n      margin-bottom: 16px;\n    }\n\n    :where(#distance-tool) .input-container input,\n    :where(#distance-tool) .input-container button {\n      height: 46px;\n      font-size: 16px;\n    }\n\n    :where(#distance-tool) .input-container input {\n      padding: 6px 12px;\n    }\n\n    :where(#distance-tool) .calculate-btn {\n      padding: 6px 18px;\n    }\n\n    :where(#distance-tool) .toggle-group {\n      gap: 8px;\n    }\n\n    :where(#distance-tool) .toggle-option {\n      min-width: 100px;\n      min-height: 36px;\n      padding: 6px 10px;\n      font-size: 14px;\n    }\n\n    :where(#distance-tool) .explanation-toggle {\n      font-size: 16px;\n    }\n  }\n\n  @media (max-width: 600px) {\n    :where(#distance-tool) { padding: 0 4px; }\n    :where(#distance-tool) .input-container { flex-wrap: nowrap; }\n    :where(#distance-tool) .input-container input { min-width: 0; width: 100%; }\n    :where(#distance-tool) .input-container button { flex: 0 0 auto; }\n    :where(#distance-tool) .table-container { overflow: visible; }\n    :where(#distance-tool) .table-container { min-width: 0; }\n    :where(#distance-tool) .table-container table {\n      display: block;\n      width: 100% !important;\n      border: 0 !important;\n    }\n\n    \/* Verberg de volledige tabelkoprij op mobiel, zodat die geen lege kaart vormt.\n       De koprij kan in deze HTML als eerste TR in TBODY staan, niet alleen in THEAD. *\/\n    :where(#distance-tool) #results .table-container table tr:has(th),\n    :where(#distance-tool) #results .table-container table thead tr,\n    :where(#distance-tool) #results .table-container table tbody > tr:first-child:not(.strike):has(td[colspan]) {\n      display: none !important;\n      height: 0 !important;\n      min-height: 0 !important;\n      max-height: 0 !important;\n      padding: 0 !important;\n      margin: 0 !important;\n      border: 0 !important;\n      background: transparent !important;\n      visibility: collapse !important;\n    }\n    \/* Strike-rows must not occupy a grid cell on mobile. *\/\n    #distance-tool #results .table-container tbody > tr.strike,\n    #distance-tool #results .table-container > table > tr.strike,\n    #distance-tool #results .table-container tr[data-mobile-unavailable=\"true\"] {\n      display: none !important;\n      height: 0 !important;\n      min-height: 0 !important;\n      max-height: 0 !important;\n      padding: 0 !important;\n      margin: 0 !important;\n      border: 0 !important;\n      background: transparent !important;\n    }\n    :where(#distance-tool) .table-container tbody {\n      display: grid;\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n      gap: 8px;\n      width: 100%;\n    }\n    :where(#distance-tool) .table-container thead,\n    :where(#distance-tool) .table-container th { display: none; }\n    :where(#distance-tool) .table-container tr {\n      display: grid;\n      grid-template-columns: minmax(0, 1fr) auto;\n      align-content: start;\n      min-width: 0;\n      width: auto !important;\n      margin: 0;\n      border: 1px solid #d8d8d8;\n      border-radius: 8px;\n      overflow: hidden;\n      background: #fff;\n      color: #222;\n      text-decoration: none;\n    }\n    :where(#distance-tool) .table-container td {\n      display: flex;\n      align-items: center;\n      justify-content: space-between;\n      gap: 5px;\n      min-width: 0;\n      text-align: right;\n      padding: 5px 6px !important;\n      border: 0 !important;\n      border-bottom: 1px solid #eee !important;\n      overflow-wrap: anywhere;\n      font-size: 12px;\n    }\n    :where(#distance-tool) .table-container td:first-child {\n      grid-column: 1;\n      grid-row: 1;\n      display: flex;\n      align-items: center;\n      justify-content: flex-start;\n      text-align: left;\n      background: #f8f5f8;\n      padding: 7px 6px !important;\n      border-bottom: 0 !important;\n    }\n    :where(#distance-tool) .table-container td:not(:first-child):not(:last-child) {\n      grid-column: 1 \/ -1;\n    }\n    :where(#distance-tool) .table-container td:last-child {\n      grid-column: 2;\n      grid-row: 1;\n      display: flex;\n      align-items: center;\n      justify-content: flex-end;\n      padding: 5px 5px !important;\n      border-bottom: 0 !important;\n      background: #f8f5f8;\n    }\n    :where(#distance-tool) .table-container td:not(:first-child):not(:last-child)::before {\n      content: attr(data-label);\n      flex: 0 0 36%;\n      max-width: 36%;\n      font-weight: 700;\n      text-align: left;\n      color: #555;\n    }\n    :where(#distance-tool) .table-container td:first-child::before,\n    :where(#distance-tool) .table-container td:last-child::before { display: none; }\n    :where(#distance-tool) .person-name { font-size: 15px; line-height: 1.15; overflow-wrap: normal; }\n    \/* Houd namen op mobiel zwart voor voldoende contrast, ook als ze klikbaar zijn. *\/\n    :where(#distance-tool) .person-profile-link,\n    :where(#distance-tool) .location-page-link { color: #000 !important; }\n    :where(#distance-tool) .person-row { gap: 6px; }\n    :where(#distance-tool) .action-link { min-height: 29px; padding: 5px 6px; font-size: 11px; }\n    :where(#distance-tool) .table-container td .action-link { margin: 0; }\n\n    :where(#distance-tool) .input-container {\n      gap: 8px;\n      margin-bottom: 14px;\n    }\n\n    :where(#distance-tool) .input-container input,\n    :where(#distance-tool) .input-container button {\n      height: 42px;\n      font-size: 15px;\n    }\n\n    :where(#distance-tool) .input-container input {\n      padding: 6px 10px;\n      min-width: 0;\n    }\n\n    :where(#distance-tool) .calculate-btn {\n      display: inline-flex;\n      align-items: center;\n      justify-content: center;\n      padding: 6px 14px;\n      line-height: 1.2;\n      text-align: center;\n    }\n\n    :where(#distance-tool) .toggle-group {\n      gap: 6px;\n    }\n\n    :where(#distance-tool) .toggle-option {\n      min-width: 88px;\n      min-height: 34px;\n      padding: 6px 9px;\n      font-size: 13px;\n    }\n\n    :where(#distance-tool) .toggle-label {\n      font-size: 15px;\n    }\n\n    :where(#distance-tool) .explanation-content {\n      padding: 14px;\n    }\n\n    :where(#distance-tool) .explanation-content h2 {\n      font-size: 21px;\n    }\n\n    :where(#distance-tool) .explanation-content h3 {\n      font-size: 18px;\n    }\n  }\n<\/style>\n\n<div id=\"distance-tool\">\n  <div class=\"input-container\">\n    <label for=\"startLocation\" style=\"display:none;\">Startlocatie<\/label>\n    <input type=\"text\" id=\"startLocation\" placeholder=\"Bijv. Amsterdam\" aria-label=\"Startlocatie\">\n    <button id=\"calculateBtn\" class=\"calculate-btn\" type=\"button\">Bereken<\/button>\n  <\/div>\n\n  <div class=\"content-container\">\n    <div class=\"left-column\">\n      <div class=\"person-controls\">\n        <div class=\"toggle-label\">Aantal personen:<\/div>\n        <div class=\"toggle-group\" id=\"personCountGroup\">\n          <input type=\"radio\" name=\"personCount\" id=\"persons1\" value=\"1\" checked>\n          <label class=\"toggle-option\" for=\"persons1\">E\u00e9n<\/label>\n\n          <input type=\"radio\" name=\"personCount\" id=\"persons2\" value=\"2\">\n          <label class=\"toggle-option\" for=\"persons2\">Twee<\/label>\n\n          <input type=\"radio\" name=\"personCount\" id=\"persons3\" value=\"3\">\n          <label class=\"toggle-option\" for=\"persons3\">Drie<\/label>\n        <\/div>\n      <\/div>\n\n      <div id=\"results\"><\/div>\n    <\/div>\n\n    <div class=\"right-column\">\n      <div class=\"map-controls\">\n        <div class=\"toggle-label\">Kaartweergave:<\/div>\n        <div class=\"toggle-group\" id=\"sessionTypeGroup\">\n          <input type=\"radio\" name=\"sessionType\" id=\"mapOwn\" value=\"own\" checked>\n          <label class=\"toggle-option\" for=\"mapOwn\">Eigen locatie<\/label>\n\n          <input type=\"radio\" name=\"sessionType\" id=\"mapLocation\" value=\"location\">\n          <label class=\"toggle-option\" for=\"mapLocation\">Triptherapie locatie<\/label>\n        <\/div>\n      <\/div>\n\n      <div id=\"map\"><\/div>\n    <\/div>\n  <\/div>\n\n  <div class=\"explanation-row\">\n    <button id=\"explanationToggle\" class=\"explanation-toggle\" type=\"button\" aria-expanded=\"false\" aria-controls=\"explanationContent\">\n      <span>Uitleg gebruik rekentool<\/span>\n      <span class=\"icon\" aria-hidden=\"true\">\n        <svg viewBox=\"0 0 24 24\"><polyline points=\"6 9 12 15 18 9\"><\/polyline><\/svg>\n      <\/span>\n    <\/button>\n\n    <div id=\"explanationContent\" class=\"explanation-content\">\n      <h3 id=\"uitleg-van-de-keuzehulp\">Uitleg van de Triptherapie-keuzehulp<\/h3>\n      <p>Deze keuzehulp vergelijkt sessies met een begeleider op je eigen locatie met sessies op een vaste Triptherapie-locatie. Je ziet indicatieve prijzen en, na invoer van een startlocatie, de bijbehorende afstanden en reistijden. De uitkomsten helpen opties vergelijken, maar vormen geen bevestiging van beschikbaarheid of een reservering.<\/p>\n\n      <h3 id=\"startlocatie-en-berekening\">Startlocatie en berekening<\/h3>\n      <p>Vul bovenaan een plaats of adres in en kies <strong>Bereken<\/strong>. De tool gebruikt de startlocatie om reisafstand en reistijd te berekenen. Zonder startlocatie worden de opties en basisprijzen getoond, maar ontbreken de locatiegebonden reisgegevens.<\/p>\n      <p>Bij een sessie op je eigen locatie worden de reiskosten van de begeleider meegenomen in het totaal. De berekening gebruikt de ingestelde retourafstand en retourreistijd, met de vrije marges en tarieven die in de configuratie staan. Bij een vaste Triptherapie-locatie worden afstand en reistijd vanaf je startlocatie getoond; er worden geen reiskosten voor een begeleider aan de locatieprijs toegevoegd.<\/p>\n\n      <h3 id=\"aantal-personen\">Aantal personen en prijs<\/h3>\n      <p>Kies \u00e9\u00e9n, twee of drie personen. Voor \u00e9\u00e9n persoon geldt de basisprijs. Voor twee personen wordt \u20ac 500 toegevoegd en voor drie personen in totaal \u20ac 1.000. De tabellen en totaalprijzen worden aangepast aan de gekozen groepsgrootte. De actuele basisprijzen staan in de configuratie van de tool.<\/p>\n\n      <h3 id=\"begeleiders-op-eigen-locatie\">Begeleider op je eigen locatie<\/h3>\n      <p>Deze tabel vergelijkt begeleiders die naar een geschikte locatie van de klant reizen, bijvoorbeeld een woning of accommodatie. Na berekening zie je de relevante reisgegevens, reiskosten en totaalprijs. De kleur of opmaak geeft aan hoe de berekende reistijd zich verhoudt tot de ingestelde maximale reistijd van de begeleider. Een oranje markering duidt op de ingestelde extra marge; doorgestreepte rode tekst geeft aan dat de maximale reistijd ruimer wordt overschreden. Dit is een praktische indicatie, geen live bevestiging van beschikbaarheid.<\/p>\n      <p>De namen van begeleiders kunnen naar hun profielpagina linken. Afhankelijk van de beschikbare gegevens zijn er ook links naar recensies en reserveren. Gebruik de reserveringslink om verder te gaan met boeken.<\/p>\n\n      <h3 id=\"vaste-triptherapie-locaties\">Vaste Triptherapie-locaties<\/h3>\n      <p>Deze tabel vergelijkt sessies op vaste locaties van Triptherapie. Na invoer van een startlocatie zie je de afstand en reistijd naar de locatie en de prijs voor het gekozen aantal personen. Klik op een locatienaam voor de informatiepagina. Gebruik de reserveringslink om naar de bijbehorende boekingsmogelijkheid te gaan.<\/p>\n\n      <h3 id=\"kaartweergave\">Kaartweergave<\/h3>\n      <p>Kies <strong>Eigen locatie<\/strong> om de begeleiders op de kaart te bekijken, of <strong>Triptherapie locatie<\/strong> om de vaste locaties te bekijken. Als een startlocatie is ingevoerd en de berekening is uitgevoerd, kan de kaart ook routes tonen. De keuze verandert de kaartweergave; beide tabellen blijven zichtbaar.<\/p>\n\n      <h3 id=\"begeleiders-en-links\">Begeleiders en bijbehorende links<\/h3>\n      <div id=\"explanationGuidesList\"><\/div>\n\n      <h3 id=\"locaties-en-links\">Locaties en bijbehorende links<\/h3>\n      <div id=\"explanationLocationsList\"><\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<script src=\"https:\/\/maps.googleapis.com\/maps\/api\/js?key=AIzaSyCi5hCWfsu72vYKb5s0C5_1yxOYxLBVh8E&callback=initMap&loading=async\" async defer><\/script>\n\n<script>\n  \/* =========================================================================\n   * CONFIGURATIE\n   * Alles wat je regelmatig wilt aanpassen staat hieronder. De rest van de\n   * code leest deze gegevens uit en hoeft niet aangepast te worden.\n   * ========================================================================= *\/\n  const CONFIG = {\n    \/\/ Bedrag dat wordt toegevoegd aan de basisprijs per extra persoon\n    \/\/ (bij 2 personen +1x dit bedrag, bij 3 personen +2x dit bedrag).\n    extraPersonFee: 500,\n\n    \/\/ Wachttijd in milliseconden na de laatste toetsaanslag voordat er\n    \/\/ automatisch wordt berekend. Enter en de knop Bereken werken direct.\n    autoCalculateDelay: 5000,\n\n    \/\/ Reiskosten worden berekend over de RETOUR (heen + terug).\n    \/\/ Aantal retour-reisminuten dat gratis is. Retourreistijd boven dit aantal\n    \/\/ minuten kost CONFIG.travelCostPerMinute euro per minuut.\n    travelCostFreeMinutes: 20,\n    \/\/ Prijs per minuut boven de vrije retour-reistijd.\n    travelCostPerMinute: 0.75,\n\n    \/\/ Aantal retour-kilometers dat gratis is. Retourafstand boven dit aantal\n    \/\/ kilometers kost CONFIG.travelCostPerKm euro per kilometer.\n    travelCostFreeKm: 20,\n    \/\/ Prijs per kilometer boven de vrije retour-afstand.\n    travelCostPerKm: 0.4,\n\n    \/\/ Extra marge in minuten: een begeleider die net buiten zijn maxTravelTime\n    \/\/ valt (maar binnen maxTravelTime + deze marge) wordt nog getoond, in het oranje.\n    orangeBufferMinutes: 30,\n\n    \/\/ Begeleiders voor sessies op de eigen locatie van de klant.\n    \/\/ Een begeleider toevoegen: voeg een nieuw object toe aan deze lijst.\n    \/\/ Een begeleider verwijderen: verwijder het bijbehorende object.\n    \/\/\n    \/\/   name          - naam van de begeleider (moet uniek zijn)\n    \/\/   address, city - adres waarvandaan de reisafstand wordt berekend\n    \/\/   basePrice     - startprijs voor 1 persoon (exclusief reiskosten)\n    \/\/   color         - kleur van de marker\/route op de kaart (hex)\n    \/\/   maxTravelTime - maximale reistijd in minuten waarbinnen deze begeleider\n    \/\/                   nog beschikbaar is (daarna wordt hij doorgestreept getoond)\n    \/\/   profileUrl \/ reviewUrl \/ bookingUrl - links in de tabel-dropdown en de uitleg\n    \/\/                   (laat een veld weg of leeg als er geen link is)\n    guides: [\n      {\n        name: \"Marcel\", address: \"2204 CB Noordwijk\", city: \"Noordwijk\",\n        basePrice: 850, color: \"#8B0000\", maxTravelTime: 150,\n        profileUrl: \"https:\/\/triptherapie.nl\/personeel\/marcel\/\",\n        reviewUrl: \"https:\/\/trip-forum.nl\/recensie-truffel-therapie-marcel\/\",\n        bookingUrl: \"https:\/\/triptherapie.nl\/reserveringen\/book-marcel-own-location\/\"\n      },\n      {\n        name: \"Reineke\", address: \"3142 CA Maassluis\", city: \"Maassluis\",\n        basePrice: 850, color: \"#006400\", maxTravelTime: 45,\n        profileUrl: \"https:\/\/triptherapie.nl\/personeel\/reineke\/\",\n        reviewUrl: \"https:\/\/trip-forum.nl\/ervaringen-truffel-reineke\/\",\n        bookingUrl: \"https:\/\/triptherapie.nl\/reserveringen\/agenda-reineke\/\"\n      },\n      {\n        name: \"Sascha\", address: \"1404 HC Bussum\", city: \"Bussum\",\n        basePrice: 850, color: \"#006666\", maxTravelTime: 60,\n        profileUrl: \"https:\/\/triptherapie.nl\/personeel\/sascha\/\",\n        reviewUrl: \"https:\/\/trip-forum.nl\/recensies-sascha\/\",\n        bookingUrl: \"https:\/\/triptherapie.nl\/reserveringen\/book-psychedelic-session-own-location-sascha\/\"\n      },\n      {\n        name: \"Gijs\", address: \"5231 EK Den Bosch\", city: \"Den Bosch\",\n        basePrice: 850, color: \"#8B4513\", maxTravelTime: 45,\n        profileUrl: \"https:\/\/triptherapie.nl\/personeel\/gijs\/\",\n        reviewUrl: \"https:\/\/trip-forum.nl\/recensies-gijs\/\",\n        bookingUrl: \"https:\/\/triptherapie.nl\/reserveringen\/book-psychedelic-session-own-location-gijs\/\"\n      },\n      {\n        name: \"Ronald\", address: \"5554 SH Valkenswaard\", city: \"Valkenswaard\",\n        basePrice: 950, color: \"#4B0082\", maxTravelTime: 45,\n        profileUrl: \"https:\/\/triptherapie.nl\/personeel\/ronald\/\",\n        reviewUrl: \"https:\/\/trip-forum.nl\/recensies-ronald\/\",\n        bookingUrl: \"https:\/\/triptherapie.nl\/reserveringen\/book-psychedelic-session-own-location-ronald\/\"\n      },\n      {\n        name: \"Janneke\", address: \"2204 CB Noordwijk\", city: \"Noordwijk\",\n        basePrice: 750, color: \"#00008B\", maxTravelTime: 30,\n        profileUrl: \"https:\/\/triptherapie.nl\/personeel\/janneke\/\",\n        reviewUrl: \"https:\/\/trip-forum.nl\/review-janneke\/\",\n        bookingUrl: \"https:\/\/triptherapie.nl\/reserveringen\/book-janneke-own-location\/\"\n      },\n      {\n        name: \"Elke\", address: \"4554 AN Westdorpe\", city: \"Westdorpe\",\n        basePrice: 950, color: \"#07708B\", maxTravelTime: 180,\n        profileUrl: \"https:\/\/triptherapie.nl\/personeel\/elke\/\",\n        reviewUrl: \"https:\/\/trip-forum.nl\/review-elke\/\",\n        bookingUrl: \"https:\/\/triptherapie.nl\/reserveringen\/agenda-elke\/\"\n      }\n    ],\n\n    \/\/ Vaste Triptherapie-locaties waar de klant naartoe reist.\n    \/\/ Een locatie toevoegen: voeg een nieuw object toe aan deze lijst.\n    \/\/ Een locatie verwijderen: verwijder het bijbehorende object.\n    \/\/\n    \/\/   name              - naam van de locatie\n    \/\/   address, city     - adres van de locatie\n    \/\/   basePrice         - totaalprijs voor 1 persoon\n    \/\/   color             - kleur van de marker\/route op de kaart (hex)\n    \/\/   infoUrl \/ bookingUrl - links in de tabel-dropdown en de uitleg\n    locations: [\n      {\n        name: \"De Bedding\", address: \"5231 EK Den Bosch\", city: \"Den Bosch\",\n        basePrice: 850, color: \"#b20091\",\n        infoUrl: \"https:\/\/triptherapie.nl\/locatie\/bedding-den-bosch\/\",\n        bookingUrl: \"https:\/\/triptherapie.nl\/reserveringen\/book-psychedelic-session-own-location-gijs\/\"\n      },\n      {\n        name: \"Sancta Psychedelica\", address: \"2204 CB Noordwijk\", city: \"Noordwijk\",\n        basePrice: 1050, color: \"#c2185b\",\n        infoUrl: \"https:\/\/triptherapie.nl\/locatie\/sancta-psychedelica-noordwijk\/\",\n        bookingUrl: \"https:\/\/triptherapie.nl\/reserveringen\/sancta-psychedelica-noordwijk-reserveren\/\"\n      }\n      \/\/ Psychedelic Loft (Schiedam) is verwijderd. Om een locatie terug te\n      \/\/ zetten, voeg gewoon een nieuw object met dezelfde velden toe.\n    ]\n  };\n  \/* ========================= EINDE CONFIGURATIE ========================= *\/\n\n  let destinations = [];\n  let locations = [];\n  let visibleGuideNames = null;\n\n  function getPersonCount() {\n    const checked = document.querySelector('#distance-tool input[name=\"personCount\"]:checked');\n    const value = checked ? parseInt(checked.value, 10) : 1;\n    return [1, 2, 3].includes(value) ? value : 1;\n  }\n\n  function getExtraPersonsPrice() {\n    return (getPersonCount() - 1) * CONFIG.extraPersonFee;\n  }\n\n  function getSessionType() {\n    const checked = document.querySelector('#distance-tool input[name=\"sessionType\"]:checked');\n    return checked ? checked.value : \"own\";\n  }\n\n  function rebuildPricingData() {\n    const extra = getExtraPersonsPrice();\n\n    destinations = CONFIG.guides.map(item => ({\n      ...item,\n      addition: item.basePrice + extra\n    }));\n\n    locations = CONFIG.locations.map(item => ({\n      ...item,\n      price: item.basePrice + extra\n    }));\n\n    const urlParams = new URLSearchParams(window.location.search);\n    const guidesParam = urlParams.getAll(\"guide\");\n\n    if (guidesParam.length > 0) {\n      const guideFilter = [];\n      guidesParam.forEach(p => p.split(\",\").forEach(g => guideFilter.push(g.trim().toLowerCase())));\n\n      destinations = destinations.filter(dest =>\n        guideFilter.includes(dest.name.toLowerCase())\n      );\n    }\n  }\n\n  rebuildPricingData();\n\n  let map;\n  let directionsService;\n  let directionsRenderers = [];\n  let geocoder;\n  let markers = [];\n  let markerBounds;\n  let overlay;\n  let alternateTick = 0;\n  let activeDropdown = null;\n  let hideDropdownTimer = null;\n\n  \/\/ Geocode-cache: elk adres wordt maar een keer opgezocht bij Google.\n  const geocodeCache = {};\n\n  \/\/ generation: verandert bij elke reset van markers of routes, zodat late\n  \/\/ antwoorden van een oudere actie niets meer tekenen.\n  let generation = 0;\n\n  \/\/ searchRun: verandert bij elke nieuwe zoekopdracht, zodat late antwoorden\n  \/\/ van een oudere zoekopdracht de tabel niet meer overschrijven.\n  let searchRun = 0;\n\n  function geocodeCached(address, callback) {\n    if (geocodeCache[address]) {\n      callback(geocodeCache[address], \"OK\");\n      return;\n    }\n    geocoder.geocode({ address: address }, function(results, status) {\n      if (status === \"OK\") geocodeCache[address] = results;\n      callback(results, status);\n    });\n  }\n\n  function clearDirections() {\n    generation++;\n    directionsRenderers.forEach(r => r.setMap(null));\n    directionsRenderers = [];\n  }\n\n  function clearMarkers() {\n    generation++;\n    markers.forEach(m => m.setMap(null));\n    markers = [];\n  }\n\n  function escapeHtml(text) {\n    return String(text)\n      .replaceAll(\"&\", \"&amp;\")\n      .replaceAll(\"<\", \"&lt;\")\n      .replaceAll(\">\", \"&gt;\")\n      .replaceAll('\"', \"&quot;\")\n      .replaceAll(\"'\", \"&#039;\");\n  }\n\n  function getActionLink(url, label, primary) {\n    if (!url) return \"\";\n    return \"<a class='action-link\" + (primary ? \" primary\" : \"\") + \"' href='\" + url + \"' target='_blank' rel='noopener'>\" + label + \"<\/a>\";\n  }\n\n  \/\/ Begeleidernaam is klikbaar en opent het profiel in een nieuw tabblad.\n  \/\/ De profiel-URL wordt uit de configuratie gehaald, zodat links centraal beheerd blijven.\n  function getDropdownHTML(name) {\n    const guide = CONFIG.guides.find(g => g.name === name);\n    const safeName = escapeHtml(name);\n    if (guide && guide.profileUrl) {\n      return \"<a class='person-name person-profile-link' href='\" + escapeHtml(guide.profileUrl) + \"' target='_blank' rel='noopener noreferrer' aria-label='Bekijk profiel van \" + safeName + \"'>\" + safeName + \"<\/a>\";\n    }\n    return \"<span class='person-name'>\" + safeName + \"<\/span>\";\n  }\n\n  \/\/ Locatienaam is klikbaar en opent de bijbehorende locatiepagina.\n  function getLocationDropdownHTML(name) {\n    const location = CONFIG.locations.find(l => l.name === name);\n    const safeName = escapeHtml(name);\n    if (location && location.infoUrl) {\n      return \"<a class='person-name location-page-link' href='\" + escapeHtml(location.infoUrl) + \"' target='_blank' rel='noopener noreferrer' aria-label='Bekijk locatiepagina van \" + safeName + \"'>\" + safeName + \"<\/a>\";\n    }\n    return \"<span class='person-name'>\" + safeName + \"<\/span>\";\n  }\n\n  function getGuideBookingCell(name) {\n    const guide = CONFIG.guides.find(g => g.name === name);\n    return guide && guide.bookingUrl ? getActionLink(guide.bookingUrl, \"Reserveren\", true) : \"\";\n  }\n\n  function getLocationBookingCell(name) {\n    const location = CONFIG.locations.find(l => l.name === name);\n    return location && location.bookingUrl ? getActionLink(location.bookingUrl, \"Reserveren\", true) : \"\";\n  }\n\n  \/\/ Vult de Uitleg-sectie onderaan automatisch met alle begeleiders en\n  \/\/ locaties uit CONFIG, zodat je die tekst niet apart hoeft bij te werken.\n  function renderExplanationLists() {\n    const guidesContainer = document.getElementById(\"explanationGuidesList\");\n    if (guidesContainer) {\n      guidesContainer.innerHTML = CONFIG.guides.map(guide => {\n        let links = \"\";\n        if (guide.profileUrl) links += \"<a href='\" + guide.profileUrl + \"' target='_blank' rel='noopener'>Meer informatie over \" + escapeHtml(guide.name) + \"<\/a><br>\";\n        if (guide.reviewUrl) links += \"<a href='\" + guide.reviewUrl + \"' target='_blank' rel='noopener'>Recensies over \" + escapeHtml(guide.name) + \"<\/a><br>\";\n        if (guide.bookingUrl) links += \"<a href='\" + guide.bookingUrl + \"' target='_blank' rel='noopener'>Reserveren met \" + escapeHtml(guide.name) + \" op eigen locatie<\/a>\";\n        return \"<p><strong>\" + escapeHtml(guide.name) + \"<\/strong><br>\" + links + \"<\/p>\";\n      }).join(\"\");\n    }\n\n    const locationsContainer = document.getElementById(\"explanationLocationsList\");\n    if (locationsContainer) {\n      locationsContainer.innerHTML = CONFIG.locations.map(location => {\n        let links = \"\";\n        if (location.infoUrl) links += \"<a href='\" + location.infoUrl + \"' target='_blank' rel='noopener'>Meer informatie over \" + escapeHtml(location.name) + \"<\/a><br>\";\n        if (location.bookingUrl) links += \"<a href='\" + location.bookingUrl + \"' target='_blank' rel='noopener'>Reserveren bij \" + escapeHtml(location.name) + \"<\/a>\";\n        return \"<p><strong>\" + escapeHtml(location.name) + \"<\/strong><br>\" + links + \"<\/p>\";\n      }).join(\"\");\n    }\n  }\n\n  function showGuidesTable() {\n    const hasInput = document.getElementById(\"startLocation\").value.trim() !== \"\";\n    let html = '<div class=\"table-container\">';\n    html += \"<table style='width:100%; border-collapse:collapse;' border='1' cellpadding='5'>\";\n    html += \"<tr style='background: #000428; color: white;'>\";\n    html += \"<th>Begeleider<\/th>\";\n    html += hasInput ? \"<th>Afstand<\/th>\" : \"<th>Woonplaats<\/th>\";\n    if (hasInput) html += \"<th>Reis<\/th><th>Reistijd<\/th>\";\n    html += \"<th>Totaal<\/th><th>Reserveren<\/th>\";\n    html += \"<\/tr>\";\n\n    destinations.forEach(dest => {\n      html += \"<tr>\";\n      html += \"<td data-label='Begeleider'>\" + getDropdownHTML(dest.name) + \"<\/td>\";\n      html += \"<td data-label='Woonplaats'>\" + escapeHtml(dest.city) + \"<\/td>\";\n      if (hasInput) html += \"<td data-label='Reis'>\u20ac0<\/td><td data-label='Reistijd'>-<\/td>\";\n      html += \"<td data-label='Totaal'>\u20ac\" + dest.addition + \"<\/td>\";\n      html += \"<td data-label='Reserveren'>\" + getGuideBookingCell(dest.name) + \"<\/td>\";\n      html += \"<\/tr>\";\n    });\n\n    html += \"<\/table><\/div>\";\n    return html;\n  }\n\n  function showLocationsTable() {\n    let html = '<div class=\"table-container\">';\n    html += \"<table style='width:100%; border-collapse:collapse;' border='1' cellpadding='5'>\";\n    html += \"<tr style='background: #b20091; color: white;'>\";\n    html += \"<th>Onze locaties<\/th><th>Plaats<\/th><th>Totaal<\/th><th>Reserveren<\/th>\";\n    html += \"<\/tr>\";\n\n    locations.forEach(loc => {\n      html += \"<tr>\";\n      html += \"<td data-label='Locatie'>\" + getLocationDropdownHTML(loc.name) + \"<\/td>\";\n      html += \"<td data-label='Plaats'>\" + escapeHtml(loc.city) + \"<\/td>\";\n      html += \"<td data-label='Totaal'>\u20ac\" + loc.price + \"<\/td>\";\n      html += \"<td data-label='Reserveren'>\" + getLocationBookingCell(loc.name) + \"<\/td>\";\n      html += \"<\/tr>\";\n    });\n\n    html += \"<\/table><\/div>\";\n    return html;\n  }\n\n  function syncMapHeightToGuideTable() {\n    const tool = document.getElementById(\"distance-tool\");\n    const mapElement = document.getElementById(\"map\");\n    const leftColumn = tool ? tool.querySelector(\".left-column\") : null;\n    if (!mapElement || !leftColumn) return;\n\n    if (window.matchMedia(\"(min-width: 768px)\").matches) {\n      \/\/ Laat de kaart precies eindigen op de onderkant van de linkerkolom,\n      \/\/ inclusief zowel de begeleiderstabel als de tabel met locaties.\n      \/\/ De hoogte wordt gemeten vanaf de bovenkant van de kaart zelf.\n      const leftBottom = leftColumn.getBoundingClientRect().bottom;\n      const mapTop = mapElement.getBoundingClientRect().top;\n      const targetHeight = Math.round(leftBottom - mapTop);\n      mapElement.style.height = Math.max(240, targetHeight) + \"px\";\n    } else {\n      \/\/ Op mobiel staan de kolommen onder elkaar, dus behoud een vaste kaarthoogte.\n      mapElement.style.height = \"340px\";\n    }\n\n    if (map && window.google && google.maps && google.maps.event) {\n      google.maps.event.trigger(map, \"resize\");\n    }\n  }\n\n  function hideUnavailableRowsOnSmallScreens() {\n    const smallScreen = window.matchMedia(\"(max-width: 1024px)\").matches;\n    document.querySelectorAll(\"#distance-tool #results tr.strike\").forEach(row => {\n      \/\/ Op mobiel de hele rij uit de tabelstructuur halen. Alleen cellen\n      \/\/ verbergen laat in sommige browsers een lege grid-kaart achter.\n      if (smallScreen) {\n        row.setAttribute(\"data-mobile-unavailable\", \"true\");\n        row.style.setProperty(\"display\", \"none\", \"important\");\n        row.style.setProperty(\"height\", \"0\", \"important\");\n        row.style.setProperty(\"min-height\", \"0\", \"important\");\n        row.style.setProperty(\"border\", \"0\", \"important\");\n        row.style.setProperty(\"background\", \"transparent\", \"important\");\n        row.querySelectorAll(\"td, th\").forEach(cell => {\n          cell.style.setProperty(\"display\", \"none\", \"important\");\n          cell.style.setProperty(\"height\", \"0\", \"important\");\n          cell.style.setProperty(\"padding\", \"0\", \"important\");\n          cell.style.setProperty(\"border\", \"0\", \"important\");\n        });\n      } else {\n        row.removeAttribute(\"data-mobile-unavailable\");\n        [\"display\", \"height\", \"min-height\", \"border\", \"background\"].forEach(prop => row.style.removeProperty(prop));\n        row.querySelectorAll(\"td, th\").forEach(cell => {\n          [\"display\", \"height\", \"padding\", \"border\"].forEach(prop => cell.style.removeProperty(prop));\n        });\n      }\n    });\n  }\n\n  function showBothTables() {\n    rebuildPricingData();\n    visibleGuideNames = null;\n    document.getElementById(\"results\").innerHTML = showGuidesTable() + showLocationsTable();\n    initDropdowns();\n    hideUnavailableRowsOnSmallScreens();\n    requestAnimationFrame(syncMapHeightToGuideTable);\n  }\n\n  function addOriginMarker(originAddress) {\n    const gen = generation;\n\n    geocodeCached(originAddress, function(results, status) {\n      if (gen !== generation) return;\n\n      if (status === google.maps.GeocoderStatus.OK) {\n        const pos = results[0].geometry.location;\n        const marker = new google.maps.Marker({\n          map,\n          position: pos,\n          title: \"Startlocatie\",\n          icon: \"https:\/\/maps.google.com\/mapfiles\/ms\/icons\/blue-dot.png\"\n        });\n        marker.isRotatingMarker = false;\n        markers.push(marker);\n        markerBounds.extend(marker.getPosition());\n      }\n    });\n  }\n\n  function hexToRgb(hex) {\n    hex = (hex || \"\").replace(\/^#\/, \"\");\n    if (hex.length !== 6) return null;\n    const bigint = parseInt(hex, 16);\n    return { r: (bigint >> 16) & 255, g: (bigint >> 8) & 255, b: bigint & 255 };\n  }\n\n  function getAdjustedSVGIcon(markerLike, markerType) {\n    const color = markerLike.customColor || \"#8B0000\";\n    const rgb = hexToRgb(color);\n    if (!rgb) return null;\n\n    let width = 150;\n    let height = 28;\n    let radius = 5;\n\n    if (markerType === \"guide\") {\n      width = 60;\n      height = 20;\n      radius = 3;\n    }\n\n    const rgbaColor = `rgba(${rgb.r}, ${rgb.g}, ${rgb.b}, 1)`;\n    const svg = `<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"${width}\" height=\"${height}\" viewBox=\"0 0 ${width} ${height}\">\n      <rect x=\"0\" y=\"0\" width=\"${width}\" height=\"${height}\" rx=\"${radius}\" ry=\"${radius}\" fill=\"${rgbaColor}\"\/>\n    <\/svg>`;\n\n    return {\n      url: \"data:image\/svg+xml;charset=UTF-8,\" + encodeURIComponent(svg),\n      scaledSize: new google.maps.Size(width, height),\n      anchor: new google.maps.Point(width \/ 2, height \/ 2),\n      labelOrigin: new google.maps.Point(width \/ 2, height \/ 2)\n    };\n  }\n\n  function addNamedMarker(item, origin) {\n    const gen = generation;\n    const address = item.address + \", \" + item.city + \", Nederland\";\n    const markerType = locations.some(loc => loc.name === item.name) ? \"location\" : \"guide\";\n\n    geocodeCached(address, function(results, status) {\n      if (gen !== generation) return;\n\n      if (status === google.maps.GeocoderStatus.OK) {\n        const pos = results[0].geometry.location;\n\n        const marker = new google.maps.Marker({\n          map,\n          position: pos,\n          title: item.name,\n          icon: getAdjustedSVGIcon({ customColor: item.color }, markerType),\n          label: {\n            text: item.name,\n            color: \"white\",\n            fontSize: markerType === \"guide\" ? \"10px\" : \"11px\",\n            fontWeight: \"bold\"\n          }\n        });\n\n        marker.customColor = item.color;\n        marker.isRotatingMarker = true;\n        markers.push(marker);\n        markerBounds.extend(marker.getPosition());\n\n        marker.addListener(\"click\", function() {\n          const startLoc = document.getElementById(\"startLocation\").value.trim();\n          if (!startLoc) {\n            alert(\"Voer een startlocatie in om de route te tonen.\");\n            return;\n          }\n          drawRoute(startLoc, address, item.color);\n        });\n\n        if (origin) drawRoute(origin, address, item.color);\n      }\n    });\n  }\n\n  function showAllMarkers() {\n    rebuildPricingData();\n    clearMarkers();\n    clearDirections();\n    markerBounds = new google.maps.LatLngBounds();\n\n    const sessionType = getSessionType();\n    let items = sessionType === \"location\" ? locations : destinations;\n\n    if (sessionType === \"own\" && Array.isArray(visibleGuideNames)) {\n      items = items.filter(item => visibleGuideNames.includes(item.name));\n    }\n\n    items.forEach(item => addNamedMarker(item, null));\n  }\n\n  function alternateMarkerZIndex() {\n    if (!overlay || !overlay.getProjection()) return;\n\n    const rotatingMarkers = markers.filter(m => m.isRotatingMarker);\n    const n = rotatingMarkers.length;\n    if (n === 0) return;\n\n    const proj = overlay.getProjection();\n    const positions = rotatingMarkers.map(m => proj.fromLatLngToDivPixel(m.getPosition()));\n\n    const overlappingIndices = [];\n    for (let i = 0; i < n; i++) {\n      for (let j = i + 1; j < n; j++) {\n        const dx = positions[i].x - positions[j].x;\n        const dy = positions[i].y - positions[j].y;\n        const d = Math.sqrt(dx * dx + dy * dy);\n        if (d < 40) {\n          if (!overlappingIndices.includes(i)) overlappingIndices.push(i);\n          if (!overlappingIndices.includes(j)) overlappingIndices.push(j);\n        }\n      }\n    }\n\n    for (let i = 0; i < n; i++) {\n      if (!overlappingIndices.includes(i)) rotatingMarkers[i].setZIndex(100);\n    }\n\n    if (overlappingIndices.length > 0) {\n      const topPos = alternateTick % overlappingIndices.length;\n      overlappingIndices.forEach((markerIndex, posIndex) => {\n        rotatingMarkers[markerIndex].setZIndex(posIndex === topPos ? 200 : -1);\n      });\n      alternateTick++;\n    }\n  }\n\n  function getQueryParam(param) {\n    const urlParams = new URLSearchParams(window.location.search);\n    return urlParams.get(param);\n  }\n\n  function updateURLWithSearch(searchTerm) {\n    const url = new URL(window.location);\n    const params = new URLSearchParams(url.search);\n\n    if (searchTerm && searchTerm.trim() !== \"\") params.set(\"zoek\", searchTerm.trim());\n    else params.delete(\"zoek\");\n\n    url.search = params.toString();\n    history.replaceState(null, \"\", url.toString());\n  }\n\n  function isAddressInNetherlands(geocodeResult) {\n    if (!geocodeResult || !geocodeResult.address_components) return false;\n\n    const countryComponent = geocodeResult.address_components.find(component =>\n      component.types && component.types.includes(\"country\")\n    );\n\n    if (!countryComponent) return false;\n\n    const countryLong = (countryComponent.long_name || \"\").toLowerCase();\n    const countryShort = (countryComponent.short_name || \"\").toLowerCase();\n\n    return countryLong === \"netherlands\" || countryLong === \"nederland\" || countryShort === \"nl\";\n  }\n\n  function initMap() {\n    map = new google.maps.Map(document.getElementById(\"map\"), {\n      center: { lat: 52.1326, lng: 5.2913 },\n      zoom: 7,\n      mapTypeControl: false,\n      streetViewControl: false,\n      styles: [{ featureType: \"poi\", elementType: \"all\", stylers: [{ visibility: \"off\" }] }]\n    });\n\n    directionsService = new google.maps.DirectionsService();\n    geocoder = new google.maps.Geocoder();\n    markerBounds = new google.maps.LatLngBounds();\n\n    overlay = new google.maps.OverlayView();\n    overlay.onAdd = function() {};\n    overlay.draw = function() {};\n    overlay.onRemove = function() {};\n    overlay.setMap(map);\n\n    setInterval(alternateMarkerZIndex, 5000);\n\n    const zoekterm = getQueryParam(\"zoek\");\n    if (zoekterm) {\n      document.getElementById(\"startLocation\").value = zoekterm;\n      calculateDistances();\n    } else {\n      showBothTables();\n      showAllMarkers();\n    }\n  }\n\n  function drawRoute(originAddress, destAddress, color) {\n    const gen = generation;\n\n    geocodeCached(originAddress, function(resultsOrigin, statusOrigin) {\n      if (gen !== generation) return;\n      if (statusOrigin !== google.maps.GeocoderStatus.OK) return;\n\n      const originLocation = resultsOrigin[0].geometry.location;\n\n      geocodeCached(destAddress, function(resultsDest, statusDest) {\n        if (gen !== generation) return;\n        if (statusDest !== google.maps.GeocoderStatus.OK) return;\n\n        const destLocation = resultsDest[0].geometry.location;\n\n        directionsService.route({\n          origin: originLocation,\n          destination: destLocation,\n          travelMode: google.maps.TravelMode.DRIVING\n        }, function(response, status) {\n          if (gen !== generation) return;\n\n          if (status === \"OK\") {\n            const renderer = new google.maps.DirectionsRenderer({\n              suppressMarkers: true,\n              preserveViewport: true,\n              polylineOptions: { strokeColor: color, strokeOpacity: 0.5, strokeWeight: 5 }\n            });\n            renderer.setMap(map);\n            renderer.setDirections(response);\n            directionsRenderers.push(renderer);\n          }\n        });\n      });\n    });\n  }\n\n  function renderOutsideNetherlandsTables() {\n    rebuildPricingData();\n    visibleGuideNames = [];\n\n    let html = \"\";\n    html += '<div class=\"table-container\">';\n    html += \"<table style='width:100%; border-collapse:collapse;' border='1' cellpadding='5'>\";\n    html += \"<tr style='background: #000428; color: white;'>\";\n    html += \"<th>Begeleider<\/th><th>Afstand<\/th><th>Reis<\/th><th>Reistijd<\/th><th>Totaal<\/th><th>Reserveren<\/th>\";\n    html += \"<\/tr>\";\n\n    destinations.forEach(dest => {\n      html += \"<tr class='strike'>\";\n      html += \"<td data-label='Begeleider'>\" + escapeHtml(dest.name) + \"<\/td>\";\n      html += \"<td data-label='Afstand'><\/td><td data-label='Reis'><\/td><td data-label='Reistijd'><\/td><td data-label='Totaal'><\/td><td data-label='Reserveren'><\/td>\";\n      html += \"<\/tr>\";\n    });\n\n    html += \"<\/table><\/div>\";\n    html += showLocationsTable();\n\n    document.getElementById(\"results\").innerHTML = html;\n    initDropdowns();\n    requestAnimationFrame(syncMapHeightToGuideTable);\n  }\n\n  function calculateDistances() {\n    const run = ++searchRun;\n\n    rebuildPricingData();\n\n    const origin = document.getElementById(\"startLocation\").value.trim();\n    const sessionType = getSessionType();\n    updateURLWithSearch(origin);\n\n    if (!origin) {\n      visibleGuideNames = null;\n      showBothTables();\n      showAllMarkers();\n      return;\n    }\n\n    geocodeCached(origin, function(originResults, originStatus) {\n      if (run !== searchRun) return;\n\n      if (originStatus !== google.maps.GeocoderStatus.OK || !originResults || !originResults[0]) {\n        alert(\"De ingevoerde locatie kon niet goed worden gevonden.\");\n        visibleGuideNames = null;\n        showBothTables();\n        showAllMarkers();\n        return;\n      }\n\n      const originInNetherlands = isAddressInNetherlands(originResults[0]);\n\n      if (!originInNetherlands) {\n        clearDirections();\n        renderOutsideNetherlandsTables();\n        showAllMarkers();\n        return;\n      }\n\n      clearDirections();\n      clearMarkers();\n      markerBounds = new google.maps.LatLngBounds();\n      addOriginMarker(origin);\n\n      const guideAddresses = destinations.map(d => d.address + \", \" + d.city + \", Nederland\");\n      const locationAddresses = locations.map(l => l.address + \", \" + l.city + \", Nederland\");\n      const service = new google.maps.DistanceMatrixService();\n\n      service.getDistanceMatrix({\n        origins: [origin],\n        destinations: guideAddresses,\n        travelMode: google.maps.TravelMode.DRIVING,\n        unitSystem: google.maps.UnitSystem.METRIC\n      }, function(guidesResponse, guidesStatus) {\n        if (run !== searchRun) return;\n\n        if (guidesStatus !== google.maps.DistanceMatrixStatus.OK) {\n          alert(\"Er is een fout opgetreden: \" + guidesStatus);\n          visibleGuideNames = null;\n          showBothTables();\n          return;\n        }\n\n        service.getDistanceMatrix({\n          origins: [origin],\n          destinations: locationAddresses,\n          travelMode: google.maps.TravelMode.DRIVING,\n          unitSystem: google.maps.UnitSystem.METRIC\n        }, function(locationsResponse, locationsStatus) {\n          if (run !== searchRun) return;\n\n          if (locationsStatus !== google.maps.DistanceMatrixStatus.OK) {\n            alert(\"Er is een fout opgetreden: \" + locationsStatus);\n            visibleGuideNames = null;\n            showBothTables();\n            return;\n          }\n\n          const guideResultsArray = [];\n          const guideElements = guidesResponse.rows[0].elements;\n\n          for (let i = 0; i < guideElements.length; i++) {\n            const element = guideElements[i];\n            const item = destinations[i];\n\n            if (element.status === \"OK\") {\n              const distanceMeters = element.distance.value;\n              const oneWayKm = distanceMeters \/ 1000;\n              const oneWayDisplay = Math.round(oneWayKm);\n              const travelTimeMinutes = element.duration.value \/ 60;\n\n              \/\/ Retour (heen + terug)\n              const roundTripKm = oneWayKm * 2;\n              const roundTripMinutes = travelTimeMinutes * 2;\n\n              \/\/ Afstandscomponent: retourkilometers boven de vrije grens\n              const billableKm = Math.max(0, roundTripKm - CONFIG.travelCostFreeKm);\n              const distanceCost = billableKm * CONFIG.travelCostPerKm;\n\n              \/\/ Tijdscomponent: retourminuten boven de vrije grens\n              const billableMinutes = Math.max(0, roundTripMinutes - CONFIG.travelCostFreeMinutes);\n              const timeCost = billableMinutes * CONFIG.travelCostPerMinute;\n\n              let travelCostCalculated = Math.round(distanceCost + timeCost);\n\n              const maxTime = item.maxTravelTime;\n\n              if (travelTimeMinutes <= maxTime) {\n                guideResultsArray.push({\n                  name: item.name,\n                  distance: oneWayDisplay,\n                  travelCost: travelCostCalculated,\n                  totalPrice: travelCostCalculated + item.addition,\n                  travelTime: travelTimeMinutes,\n                  strike: false,\n                  orange: false,\n                  group: 1,\n                  sortPrice: travelCostCalculated + item.addition\n                });\n              } else if (travelTimeMinutes <= maxTime + CONFIG.orangeBufferMinutes) {\n                guideResultsArray.push({\n                  name: item.name,\n                  distance: oneWayDisplay,\n                  travelCost: travelCostCalculated,\n                  totalPrice: travelCostCalculated + item.addition,\n                  travelTime: travelTimeMinutes,\n                  strike: false,\n                  orange: true,\n                  group: 2,\n                  sortPrice: travelCostCalculated + item.addition\n                });\n              } else {\n                guideResultsArray.push({\n                  name: item.name,\n                  distance: oneWayDisplay,\n                  travelCost: \"-\",\n                  totalPrice: \"-\",\n                  travelTime: travelTimeMinutes,\n                  strike: true,\n                  orange: false,\n                  group: 3,\n                  sortPrice: Infinity\n                });\n              }\n            } else {\n              guideResultsArray.push({\n                name: item.name,\n                distance: \"-\",\n                travelCost: \"-\",\n                totalPrice: \"-\",\n                travelTime: \"-\",\n                strike: true,\n                orange: false,\n                group: 3,\n                sortPrice: Infinity\n              });\n            }\n          }\n\n          guideResultsArray.sort((a, b) => (a.group !== b.group) ? (a.group - b.group) : (a.sortPrice - b.sortPrice));\n\n          visibleGuideNames = guideResultsArray\n            .filter(item => !item.strike)\n            .map(item => item.name);\n\n          const locationResultsArray = [];\n          const locationElements = locationsResponse.rows[0].elements;\n\n          for (let i = 0; i < locationElements.length; i++) {\n            const element = locationElements[i];\n            const item = locations[i];\n\n            if (element.status === \"OK\") {\n              const oneWayKm = element.distance.value \/ 1000;\n              const oneWayDisplay = Math.round(oneWayKm);\n              const travelTimeMinutes = element.duration.value \/ 60;\n\n              locationResultsArray.push({\n                name: item.name,\n                city: item.city,\n                distance: oneWayDisplay,\n                travelTime: travelTimeMinutes,\n                totalPrice: item.price,\n                sortPrice: item.price\n              });\n            }\n          }\n\n          locationResultsArray.sort((a, b) => a.sortPrice - b.sortPrice);\n\n          let html = \"\";\n\n          html += '<div class=\"table-container\">';\n          html += \"<table style='width:100%; border-collapse:collapse;' border='1' cellpadding='5'>\";\n          html += \"<tr style='background: #000428; color: white;'>\";\n          html += \"<th>Begeleider<\/th><th>Afstand<\/th><th>Reis<\/th><th>Reistijd<\/th><th>Totaal<\/th><th>Reserveren<\/th>\";\n          html += \"<\/tr>\";\n\n          guideResultsArray.forEach(item => {\n            if (item.strike) html += \"<tr class='strike'>\";\n            else if (item.orange) html += \"<tr style='color: orange;'>\";\n            else html += \"<tr>\";\n\n            if (item.strike) {\n              html += \"<td data-label='Begeleider'>\" + escapeHtml(item.name) + \"<\/td>\";\n            } else {\n              html += \"<td data-label='Begeleider'>\" + getDropdownHTML(item.name) + \"<\/td>\";\n            }\n\n            html += \"<td data-label='Afstand'>\" + item.distance + (item.distance !== \"-\" ? \" km\" : \"\") + \"<\/td>\";\n            html += \"<td data-label='Reis'>\" + (item.strike ? \"\" : (item.travelCost !== \"-\" ? \"\u20ac\" + item.travelCost : item.travelCost)) + \"<\/td>\";\n            html += \"<td data-label='Reistijd'>\" + (item.travelTime !== \"-\" ? Math.round(item.travelTime) + \" min\" : item.travelTime) + \"<\/td>\";\n            html += \"<td data-label='Totaal'>\" + (item.strike ? \"\" : \"\u20ac\" + item.totalPrice) + \"<\/td>\";\n            html += \"<td data-label='Reserveren'>\" + (item.strike ? \"\" : getGuideBookingCell(item.name)) + \"<\/td>\";\n            html += \"<\/tr>\";\n          });\n\n          html += \"<\/table><\/div>\";\n\n          html += '<div class=\"table-container\">';\n          html += \"<table style='width:100%; border-collapse:collapse;' border='1' cellpadding='5'>\";\n          html += \"<tr style='background: #b20091; color: white;'>\";\n          html += \"<th>Onze locaties<\/th><th>Plaats<\/th><th>Afstand<\/th><th>Reistijd<\/th><th>Totaal<\/th><th>Reserveren<\/th>\";\n          html += \"<\/tr>\";\n\n          locationResultsArray.forEach(item => {\n            html += \"<tr>\";\n            html += \"<td data-label='Locatie'>\" + getLocationDropdownHTML(item.name) + \"<\/td>\";\n            html += \"<td data-label='Plaats'>\" + escapeHtml(item.city) + \"<\/td>\";\n            html += \"<td data-label='Afstand'>\" + item.distance + \" km<\/td>\";\n            html += \"<td data-label='Reistijd'>\" + Math.round(item.travelTime) + \" min<\/td>\";\n            html += \"<td data-label='Totaal'>\u20ac\" + item.totalPrice + \"<\/td>\";\n            html += \"<td data-label='Reserveren'>\" + getLocationBookingCell(item.name) + \"<\/td>\";\n            html += \"<\/tr>\";\n          });\n\n          html += \"<\/table><\/div>\";\n\n          document.getElementById(\"results\").innerHTML = html;\n          initDropdowns();\n          hideUnavailableRowsOnSmallScreens();\n          requestAnimationFrame(syncMapHeightToGuideTable);\n\n          let mapItems = sessionType === \"location\"\n            ? locations\n            : destinations.filter(item => visibleGuideNames.includes(item.name));\n\n          mapItems.forEach(item => addNamedMarker(item, origin));\n\n          setTimeout(function() {\n            if (run !== searchRun) return;\n            if (!markerBounds.isEmpty()) {\n              map.fitBounds(markerBounds);\n            }\n          }, 1500);\n        });\n      });\n    });\n  }\n\n  function positionDropdown(trigger, menu) {\n    menu.style.display = \"flex\";\n\n    const rect = trigger.getBoundingClientRect();\n    const menuRect = menu.getBoundingClientRect();\n    const gap = 6;\n\n    let left = rect.left;\n    let top = rect.top - menuRect.height - gap;\n\n    if (left + menuRect.width > window.innerWidth - 8) {\n      left = window.innerWidth - menuRect.width - 8;\n    }\n    if (left < 8) left = 8;\n\n    if (top < 8) {\n      top = rect.bottom + gap;\n    }\n\n    if (top + menuRect.height > window.innerHeight - 8) {\n      top = Math.max(8, window.innerHeight - menuRect.height - 8);\n    }\n\n    menu.style.left = left + \"px\";\n    menu.style.top = top + \"px\";\n  }\n\n  function hideActiveDropdown() {\n    if (!activeDropdown) return;\n    activeDropdown.style.display = \"none\";\n    activeDropdown = null;\n  }\n\n  function openDropdown(dropdown, menu) {\n    clearTimeout(hideDropdownTimer);\n    if (activeDropdown && activeDropdown !== menu) {\n      activeDropdown.style.display = \"none\";\n    }\n    activeDropdown = menu;\n    positionDropdown(dropdown, menu);\n  }\n\n  function scheduleHide(menu) {\n    clearTimeout(hideDropdownTimer);\n    hideDropdownTimer = setTimeout(() => {\n      if (activeDropdown === menu) {\n        hideActiveDropdown();\n      }\n    }, 120);\n  }\n\n  function initDropdowns() {\n    \/\/ Actieknoppen zijn direct zichtbaar; er is geen dropdown meer nodig.\n  }\n\n  function initExplanationToggle() {\n    const toggle = document.getElementById(\"explanationToggle\");\n    const content = document.getElementById(\"explanationContent\");\n\n    if (!toggle || !content) return;\n\n    toggle.addEventListener(\"click\", function() {\n      const isOpen = content.classList.toggle(\"open\");\n      toggle.classList.toggle(\"active\", isOpen);\n      toggle.setAttribute(\"aria-expanded\", isOpen ? \"true\" : \"false\");\n    });\n  }\n\n  window.addEventListener(\"scroll\", function() {\n    hideActiveDropdown();\n  }, true);\n\n  window.addEventListener(\"resize\", function() {\n    hideActiveDropdown();\n    syncMapHeightToGuideTable();\n  });\n\n  document.addEventListener(\"click\", function(e) {\n    if (!e.target.closest(\"#distance-tool .dropdown\")) {\n      hideActiveDropdown();\n    }\n  });\n\n  let debounceTimer;\n  document.getElementById(\"startLocation\").addEventListener(\"input\", function() {\n    clearTimeout(debounceTimer);\n    debounceTimer = setTimeout(calculateDistances, CONFIG.autoCalculateDelay);\n  });\n\n  document.getElementById(\"calculateBtn\").addEventListener(\"click\", function() {\n    clearTimeout(debounceTimer);\n    calculateDistances();\n  });\n\n  document.getElementById(\"startLocation\").addEventListener(\"keydown\", function(e) {\n    if (e.key === \"Enter\") {\n      clearTimeout(debounceTimer);\n      calculateDistances();\n    }\n  });\n\n  document.querySelectorAll('#distance-tool input[name=\"personCount\"]').forEach(input => {\n    input.addEventListener(\"change\", function() {\n      calculateDistances();\n    });\n  });\n\n  document.querySelectorAll('#distance-tool input[name=\"sessionType\"]').forEach(input => {\n    input.addEventListener(\"change\", function() {\n      calculateDistances();\n    });\n  });\n\n  renderExplanationLists();\n  initExplanationToggle();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1845135 e-flex e-con-boxed e-con e-child\" data-id=\"1845135\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-538aea2 elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"538aea2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<a class=\"elementor-icon\" href=\"https:\/\/triptherapie.nl\/\" target=\"_blank\" aria-label=\"Telefoongesprek starten\">\n\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-home\" viewBox=\"0 0 576 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M280.37 148.26L96 300.11V464a16 16 0 0 0 16 16l112.06-.29a16 16 0 0 0 15.92-16V368a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16v95.64a16 16 0 0 0 16 16.05L464 480a16 16 0 0 0 16-16V300L295.67 148.26a12.19 12.19 0 0 0-15.3 0zM571.6 251.47L488 182.56V44.05a12 12 0 0 0-12-12h-56a12 12 0 0 0-12 12v72.61L318.47 43a48 48 0 0 0-61 0L4.34 251.47a12 12 0 0 0-1.6 16.9l25.5 31A12 12 0 0 0 45.15 301l235.22-193.74a12.19 12.19 0 0 1 15.3 0L530.9 301a12 12 0 0 0 16.9-1.6l25.5-31a12 12 0 0 0-1.7-16.93z\"><\/path><\/svg>\t\t\t<\/a>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c32aa4c elementor-widget elementor-widget-heading\" data-id=\"c32aa4c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\"><a href=\"https:\/\/triptherapie.nl\/contact\/\" target=\"_blank\">CONTACT<\/a><\/p>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-816c0d5 elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"816c0d5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<a class=\"elementor-icon\" href=\"tel:0031640898455\" target=\"_blank\" rel=\"nofollow\" aria-label=\"Telefoongesprek starten\">\n\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-phone-alt\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M497.39 361.8l-112-48a24 24 0 0 0-28 6.9l-49.6 60.6A370.66 370.66 0 0 1 130.6 204.11l60.6-49.6a23.94 23.94 0 0 0 6.9-28l-48-112A24.16 24.16 0 0 0 122.6.61l-104 24A24 24 0 0 0 0 48c0 256.5 207.9 464 464 464a24 24 0 0 0 23.4-18.6l24-104a24.29 24.29 0 0 0-14.01-27.6z\"><\/path><\/svg>\t\t\t<\/a>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-642263b elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"642263b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<a class=\"elementor-icon\" href=\"https:\/\/api.whatsapp.com\/send\/?phone=31640898455\" target=\"_blank\" rel=\"nofollow noopener\" aria-label=\"Whastappen met Triptherapie\">\n\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fab-whatsapp\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z\"><\/path><\/svg>\t\t\t<\/a>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7b0e9a0 elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"7b0e9a0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<a class=\"elementor-icon\" href=\"https:\/\/t.me\/Triptherapie\" target=\"_blank\" rel=\"nofollow\" aria-label=\"Telegram Triptherapie\">\n\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fab-telegram-plane\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M446.7 98.6l-67.6 318.8c-5.1 22.5-18.4 28.1-37.3 17.5l-103-75.9-49.7 47.8c-5.5 5.5-10.1 10.1-20.7 10.1l7.4-104.9 190.9-172.5c8.3-7.4-1.8-11.5-12.9-4.1L117.8 284 16.2 252.2c-22.1-6.9-22.5-22.1 4.6-32.7L418.2 66.4c18.4-6.9 34.5 4.1 28.5 32.2z\"><\/path><\/svg>\t\t\t<\/a>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2c79906 elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"2c79906\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<a class=\"elementor-icon\" href=\"mailto:info@triptherapie.nl\" target=\"_blank\" rel=\"nofollow\" aria-label=\"Email Triptherapie\">\n\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-far-envelope\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49-16.841 13.247-50.201 45.072-73.413 44.701-23.208.375-56.579-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112h416zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646 21.857 17.205 60.134 55.186 103.062 54.955 42.717.231 80.509-37.199 103.053-54.947 49.528-38.783 82.032-64.401 104.947-82.653V400H48z\"><\/path><\/svg>\t\t\t<\/a>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b85acc6 elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"b85acc6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<a class=\"elementor-icon\" href=\"https:\/\/triptherapie.nl\/start-trippy-chat\/\" target=\"_blank\" aria-label=\"AI chat Trippychat\">\n\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-robot\" viewBox=\"0 0 640 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M32,224H64V416H32A31.96166,31.96166,0,0,1,0,384V256A31.96166,31.96166,0,0,1,32,224Zm512-48V448a64.06328,64.06328,0,0,1-64,64H160a64.06328,64.06328,0,0,1-64-64V176a79.974,79.974,0,0,1,80-80H288V32a32,32,0,0,1,64,0V96H464A79.974,79.974,0,0,1,544,176ZM264,256a40,40,0,1,0-40,40A39.997,39.997,0,0,0,264,256Zm-8,128H192v32h64Zm96,0H288v32h64ZM456,256a40,40,0,1,0-40,40A39.997,39.997,0,0,0,456,256Zm-8,128H384v32h64ZM640,256V384a31.96166,31.96166,0,0,1-32,32H576V224h32A31.96166,31.96166,0,0,1,640,256Z\"><\/path><\/svg>\t\t\t<\/a>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-aaf89e5 e-flex e-con-boxed e-con e-parent\" data-id=\"aaf89e5\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3a03476 elementor-widget elementor-widget-spacer\" data-id=\"3a03476\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Met deze keuzehulp krijg je snel inzicht in de mogelijkheden voor een begeleide psychedelische ervaring in Nederland. Door stap voor stap je voorkeuren in te vullen, zoals het type sessie (priv\u00e9, duo of groep), locatie, aantal deelnemers en taal, zie je direct welke opties en bijbehorende prijzen passen bij jouw situatie.<\/p>\n<p>De tool helpt je om zonder gedoe te bepalen wat het beste aansluit bij jouw wensen. Of je nu kiest voor een individuele sessie met volledige aandacht, een duo-ervaring samen met een partner of vriend, of een groepsceremonie met gelijkgestemden, je krijgt direct een helder overzicht van de mogelijkheden.<\/p>\n<p>Daarnaast houdt de keuzehulp rekening met praktische zaken zoals reisafstand, beschikbare begeleiders en geschikte locaties. Zo kun je eenvoudig vergelijken en een weloverwogen keuze maken.<\/p>\n<p>Na het doorlopen van de stappen kun je direct doorklikken naar de juiste reserveringspagina om je plek vast te leggen.<\/p>","protected":false},"author":1,"featured_media":56473,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-56156","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/triptherapie.nl\/de\/wp-json\/wp\/v2\/pages\/56156","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/triptherapie.nl\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/triptherapie.nl\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/triptherapie.nl\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/triptherapie.nl\/de\/wp-json\/wp\/v2\/comments?post=56156"}],"version-history":[{"count":0,"href":"https:\/\/triptherapie.nl\/de\/wp-json\/wp\/v2\/pages\/56156\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/triptherapie.nl\/de\/wp-json\/wp\/v2\/media\/56473"}],"wp:attachment":[{"href":"https:\/\/triptherapie.nl\/de\/wp-json\/wp\/v2\/media?parent=56156"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}