{"id":52155,"date":"2025-04-19T19:43:48","date_gmt":"2025-04-19T17:43:48","guid":{"rendered":"https:\/\/triptherapie.nl\/?p=52155"},"modified":"2025-04-21T14:17:15","modified_gmt":"2025-04-21T12:17:15","slug":"psychedelische-sitzungen-psychedelische-therapie","status":"publish","type":"post","link":"https:\/\/triptherapie.nl\/de\/psychedelische-sessies-psychedelica-therapie\/","title":{"rendered":"Von psychedelischen Sitzungen zu psychedelisch unterst\u00fctzter Therapie"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"52155\" class=\"elementor elementor-52155\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"elementor-element elementor-element-81949c0 e-flex e-con-boxed e-con e-parent\" data-id=\"81949c0\" 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-d595350 elementor-widget elementor-widget-heading\" data-id=\"d595350\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\" id=\"de-evolutie-van-triptherapie\">De evolutie van Triptherapie<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8910b47 elementor-widget elementor-widget-text-editor\" data-id=\"8910b47\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>In de beginjaren van Triptherapie lag de nadruk sterk op gezondheid als fundament voor een goede trip: supplementen, voeding, sport, slaap en het verminderen van ontstekingen. De overtuiging was dat een gezond lichaam leidt tot een stabielere geest, wat resulteerde in een veilige en diepgaande tripervaring. Die benadering wordt nog steeds toegepast, maar is inmiddels uitgebreid met psychologische begeleiding.<\/p>\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<div class=\"elementor-element elementor-element-ec0a4af e-flex e-con-boxed e-con e-parent\" data-id=\"ec0a4af\" 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-a1bbad7 elementor-widget elementor-widget-heading\" data-id=\"a1bbad7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\" id=\"samenwerking-met-professionele-therapeuten\">Samenwerking met professionele therapeuten<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2c88183 elementor-widget elementor-widget-text-editor\" data-id=\"2c88183\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>De verschuiving naar een meer therapeutisch model is mede ontstaan door de toenemende vraag van cli\u00ebnten die niet alleen op zoek waren naar spirituele of introspectieve ervaringen, maar kamp(t)en met ernstige psychische klachten zoals depressie, angst, trauma en relationele problematiek. Die behoefte leidde tot een samenwerking met professionele therapeuten, waaronder psychosociaal therapeut Ronald en psychologen Sascha en Reineke. Zij brengen technieken in zoals Internal Family Systems (IFS), cognitieve gedragstherapie en systemische therapie, die tijdens de sessies worden ge\u00efntegreerd. Zowel Ronald als Sacha en Reineke hebben tevens naast onze eigen interne scholing een extra scholing genoten bij RINO opleidingen (therapeutisch werken met psychedelica). Dit maakt deze psychedelische therapeuten tot goed opgeleide en ervaren begeleiders van psychedelische therapie.<\/p>\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<div class=\"elementor-element elementor-element-f0e42e2 e-grid e-con-boxed e-con e-child\" data-id=\"f0e42e2\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-3d78a2e e-con-full e-flex e-con e-child\" data-id=\"3d78a2e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-256cf54 elementor-widget elementor-widget-image\" data-id=\"256cf54\" data-element_type=\"widget\" data-e-type=\"widget\" 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\/personeel\/ronald\/\">\n\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/triptherapie.nl\/wp-content\/uploads\/2023\/04\/Ronald-no-bg-150x150.png\" class=\"attachment-thumbnail size-thumbnail wp-image-41482\" alt=\"Ronald Hochstenbach, psychosociaal therapeut en psychedelisch therapeut met AGB-code\" 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<div class=\"elementor-element elementor-element-71410b3 e-flex e-con-boxed e-con e-child\" data-id=\"71410b3\" 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-c702c43 elementor-widget elementor-widget-heading\" data-id=\"c702c43\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\" id=\"ronald\">Ronald<\/h3>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-38e35ea e-flex e-con-boxed e-con e-child\" data-id=\"38e35ea\" 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-0cc6482 elementor-widget elementor-widget-heading\" data-id=\"0cc6482\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h5 class=\"elementor-heading-title elementor-size-default\"> \ud83c\uddf3\ud83c\uddf1 \ud83c\uddec\ud83c\udde7 \ud83c\udde9\ud83c\uddea<\/h5>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a2df407 elementor-widget elementor-widget-heading\" data-id=\"a2df407\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h6 class=\"elementor-heading-title elementor-size-default\">Psychosociaal therapeut &amp; psychedelisch therapeut<\/h6>\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-a7efe55 e-con-full e-flex e-con e-child\" data-id=\"a7efe55\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-39384d3 elementor-invisible elementor-widget elementor-widget-global elementor-global-46893 elementor-widget-counter\" data-id=\"39384d3\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeIn&quot;}\" aria-live=\"polite\" aria-label=\"Aantal begeleide psychedelische sessies\" data-widget_type=\"counter.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-counter\">\n\t\t\t<div class=\"elementor-counter-title\">Sessies<\/div>\t\t\t<div class=\"elementor-counter-number-wrapper\">\n\t\t\t\t<span class=\"elementor-counter-number-prefix\"><\/span>\n\t\t\t\t<span class=\"elementor-counter-number\" data-duration=\"1500\" data-to-value=\"390\" data-from-value=\"387\">387<\/span>\n\t\t\t\t<span class=\"elementor-counter-number-suffix\"><\/span>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\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-602eea4 e-flex e-con-boxed e-con e-child\" data-id=\"602eea4\" 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-7b46d21 elementor-widget elementor-widget-image\" data-id=\"7b46d21\" data-element_type=\"widget\" data-e-type=\"widget\" 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\/personeel\/sascha\/\">\n\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/triptherapie.nl\/wp-content\/uploads\/2024\/01\/Sascha-150x150.png\" class=\"attachment-thumbnail size-thumbnail wp-image-44620\" alt=\"Sascha de Waal, klinisch psychologe en specialist in psychedelische therapie en EMDR\" srcset=\"https:\/\/triptherapie.nl\/wp-content\/uploads\/2024\/01\/Sascha-150x150.png 150w, https:\/\/triptherapie.nl\/wp-content\/uploads\/2024\/01\/Sascha-300x300.png 300w, https:\/\/triptherapie.nl\/wp-content\/uploads\/2024\/01\/Sascha-12x12.png 12w, https:\/\/triptherapie.nl\/wp-content\/uploads\/2024\/01\/Sascha.png 500w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" 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<div class=\"elementor-element elementor-element-ffabea4 e-flex e-con-boxed e-con e-child\" data-id=\"ffabea4\" 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-72d1a82 elementor-widget elementor-widget-heading\" data-id=\"72d1a82\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\" id=\"sascha\">Sascha<\/h3>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-95a4582 e-flex e-con-boxed e-con e-child\" data-id=\"95a4582\" 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-2d5545e elementor-widget elementor-widget-heading\" data-id=\"2d5545e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h5 class=\"elementor-heading-title elementor-size-default\"> \ud83c\uddf3\ud83c\uddf1 \ud83c\uddec\ud83c\udde7 <\/h5>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3f072e0 elementor-widget elementor-widget-heading\" data-id=\"3f072e0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h6 class=\"elementor-heading-title elementor-size-default\">Psychologe &amp; psychedelisch therapeut<\/h6>\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-16508da e-con-full e-flex e-con e-child\" data-id=\"16508da\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d3f9b38 elementor-invisible elementor-widget elementor-widget-global elementor-global-46911 elementor-widget-counter\" data-id=\"d3f9b38\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeIn&quot;}\" aria-live=\"polite\" aria-label=\"Aantal begeleide psychedelische sessies\" data-widget_type=\"counter.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-counter\">\n\t\t\t<div class=\"elementor-counter-title\">Sessies<\/div>\t\t\t<div class=\"elementor-counter-number-wrapper\">\n\t\t\t\t<span class=\"elementor-counter-number-prefix\"><\/span>\n\t\t\t\t<span class=\"elementor-counter-number\" data-duration=\"750\" data-to-value=\"175\" data-from-value=\"172\">172<\/span>\n\t\t\t\t<span class=\"elementor-counter-number-suffix\"><\/span>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\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-1cdc984 e-flex e-con-boxed e-con e-child\" data-id=\"1cdc984\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-084c74f elementor-widget elementor-widget-image\" data-id=\"084c74f\" data-element_type=\"widget\" data-e-type=\"widget\" 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\/personeel\/reineke\/\">\n\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/triptherapie.nl\/wp-content\/uploads\/2024\/06\/64cf3821-54b1-4bae-83a9-829d7a830006-150x150.png\" class=\"attachment-thumbnail size-thumbnail wp-image-47524\" alt=\"Reineke Brandt, psychologe en psychedelisch therapeut NIP Titel: Reineke Brandt - Psycholoog NIP\" srcset=\"https:\/\/triptherapie.nl\/wp-content\/uploads\/2024\/06\/64cf3821-54b1-4bae-83a9-829d7a830006-150x150.png 150w, https:\/\/triptherapie.nl\/wp-content\/uploads\/2024\/06\/64cf3821-54b1-4bae-83a9-829d7a830006-11x12.png 11w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" 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<div class=\"elementor-element elementor-element-c6d291f e-flex e-con-boxed e-con e-child\" data-id=\"c6d291f\" 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-57b9db3 elementor-widget elementor-widget-heading\" data-id=\"57b9db3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\" id=\"reineke\">Reineke<\/h3>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-88202bf e-flex e-con-boxed e-con e-child\" data-id=\"88202bf\" 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-a97b6c4 elementor-widget elementor-widget-heading\" data-id=\"a97b6c4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h5 class=\"elementor-heading-title elementor-size-default\"> \ud83c\uddf3\ud83c\uddf1 \ud83c\uddec\ud83c\udde7 \ud83c\udde9\ud83c\uddea<\/h5>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-217630d elementor-widget elementor-widget-heading\" data-id=\"217630d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h6 class=\"elementor-heading-title elementor-size-default\">Psychologe &amp; psychedelisch therapeut<\/h6>\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-8e87495 e-con-full e-flex e-con e-child\" data-id=\"8e87495\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e20285a elementor-invisible elementor-widget elementor-widget-global elementor-global-47562 elementor-widget-counter\" data-id=\"e20285a\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeIn&quot;}\" aria-live=\"polite\" aria-label=\"Aantal begeleide psychedelische sessies\" data-widget_type=\"counter.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-counter\">\n\t\t\t<div class=\"elementor-counter-title\">Sessies<\/div>\t\t\t<div class=\"elementor-counter-number-wrapper\">\n\t\t\t\t<span class=\"elementor-counter-number-prefix\"><\/span>\n\t\t\t\t<span class=\"elementor-counter-number\" data-duration=\"500\" data-to-value=\"198\" data-from-value=\"195\">195<\/span>\n\t\t\t\t<span class=\"elementor-counter-number-suffix\"><\/span>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\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-9234d1c e-flex e-con-boxed e-con e-parent\" data-id=\"9234d1c\" 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-f4dd9f2 elementor-widget elementor-widget-heading\" data-id=\"f4dd9f2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\" id=\"psychedelica-als-katalysator-in-therapie\">Psychedelica als katalysator in therapie<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-de6941e elementor-widget elementor-widget-text-editor\" data-id=\"de6941e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Deze nieuwe vorm van <span style=\"color: #cc99ff;\"><a style=\"color: #cc99ff;\" href=\"https:\/\/triptherapie.nl\/psychedelische-therapie\/\">psychedelische therapie<\/a><\/span> wordt ook wel <em data-start=\"1583\" data-end=\"1619\">psychedelica ondersteunde therapie<\/em> genoemd, waarin de psychedelische stof fungeert als katalysator binnen een psychotherapeutisch kader. In deze setting worden niet alleen inzichten opgedaan, maar worden ze ook op professionele wijze ge\u00efntegreerd in het dagelijks leven van de cli\u00ebnt. Ervaringen tijdens de sessie worden besproken en verweven met onderliggende thema&#8217;s zoals trauma, zelfbeeld, hechting en zingeving.\u00a0<span class=\"relative -mx-px my-[-0.2rem] rounded px-px py-[0.2rem] transition-colors duration-100 ease-in-out\">De middelen worden ingezet om diepere lagen van het bewustzijn te bereiken, wat kan bijdragen aan het doorbreken van hardnekkige patronen en het verwerken van trauma&#8217;s.<\/span> <span class=\"relative -mx-px my-[-0.2rem] rounded px-px py-[0.2rem] transition-colors duration-100 ease-in-out\">Deze methode wordt ondersteund door wetenschappelijk onderzoek, dat de effectiviteit van psychedelica in therapie bij bepaalde psychische aandoeningen aantoont. Op dit moment verbiedt de wet nog wel psychedelica in te zetten bij medische doelstellingen, maar bij Triptherapie werken onze therapeuten met psychedelica ter coaching ongeacht het doel een klant zelf heeft.<\/span><\/p>\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<div class=\"elementor-element elementor-element-28a435b e-flex e-con-boxed e-con e-parent\" data-id=\"28a435b\" 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-fa3e4ef elementor-widget elementor-widget-heading\" data-id=\"fa3e4ef\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\" id=\"voorbereiding-en-integratie-als-sleutel-tot-succes\">Voorbereiding en integratie als sleutel tot succes<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f0fe67e elementor-widget elementor-widget-text-editor\" data-id=\"f0fe67e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p class=\"\" data-start=\"1334\" data-end=\"1661\">Een sessie begint niet met het innemen van de stof, en eindigt daar zeker niet. We nemen de voorbereiding net zo serieus als de ervaring zelf. Via onze intake zorgen we dat de sessie past bij wie jij bent en waar je nu staat \u2013 fysiek, mentaal en emotioneel. We kijken naar contra-indicaties, voeding, supplementen en intenties.<\/p><p class=\"\" data-start=\"1663\" data-end=\"2047\">Na de sessie begeleiden we je bij de integratie: het proces waarin de inzichten \u00e9cht landen en verweven raken met jouw leven. Want inzichten zijn mooi, maar hun waarde zit in wat je ermee doet. Daarom bieden we nazorg, reflectiegesprekken en praktische handvatten voor integratie. Het resultaat? Duurzame persoonlijke groei, meer verbinding met jezelf en een sterker innerlijk kompas.<\/p>\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<div class=\"elementor-element elementor-element-aee770e e-flex e-con-boxed e-con e-parent\" data-id=\"aee770e\" 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-ca70681 elementor-cta--skin-classic elementor-animated-content elementor-bg-transform elementor-bg-transform-zoom-in elementor-widget elementor-widget-call-to-action\" data-id=\"ca70681\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"call-to-action.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-cta\">\n\t\t\t\t\t<div class=\"elementor-cta__bg-wrapper\">\n\t\t\t\t<div class=\"elementor-cta__bg elementor-bg\" style=\"background-image: url(https:\/\/triptherapie.nl\/wp-content\/uploads\/2023\/09\/psychedelische-coach.jpg);\" role=\"img\" aria-label=\"Relatietherapie\"><\/div>\n\t\t\t\t<div class=\"elementor-cta__bg-overlay\"><\/div>\n\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-cta__content\">\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<h2 class=\"elementor-cta__title elementor-cta__content-item elementor-content-item\" id=\"intake-voor-psychedelica-sessie\">\n\t\t\t\t\t\tIntake voor psychedelica sessie\t\t\t\t\t<\/h2>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-cta__description elementor-cta__content-item elementor-content-item\">\n\t\t\t\t\t\tWil je gebruik maken van onze psychedelische dienstverlening en ben je een nieuwe klant? Vul eerst de intake in, zodat we kunnen controleren op eventuele veiligheidsrisico's. We baseren ook onze persoonlijke adviezen ter voorbereiding van de psychedelische therapie op jouw ingevulde gegevens.\t\t\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-cta__button-wrapper elementor-cta__content-item elementor-content-item \">\n\t\t\t\t\t<a class=\"elementor-cta__button elementor-button elementor-size-md\" href=\"https:\/\/triptherapie.nl\/intake-triptherapie\/\">\n\t\t\t\t\t\tStart intake\t\t\t\t\t<\/a>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\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-f11770e e-flex e-con-boxed e-con e-parent\" data-id=\"f11770e\" 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-def30eb elementor-widget elementor-widget-heading\" data-id=\"def30eb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\" id=\"een-nieuwe-standaard-in-geestelijke-gezondheidszorg\">Een nieuwe standaard in geestelijke gezondheidszorg<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ba346eb elementor-widget elementor-widget-text-editor\" data-id=\"ba346eb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p class=\"\" data-start=\"2107\" data-end=\"2486\">Steeds meer mensen ontdekken dat klassieke therapie\u00ebn soms niet diep genoeg komen. Triptherapie biedt een alternatief: niet als vervanging van reguliere zorg, maar als een aanvulling die werkt op een ander niveau. Met onze holistische en mensgerichte benadering cre\u00ebren we een nieuwe standaard binnen de wereld van geestelijke gezondheid. Hier is ruimte voor hoofd, hart \u00e9n ziel. Op den duur zou onze methode wellicht als nieuwe standaard worden genomen voor de geestelijke gezondheid. Door aandacht voor fysieke gezondheid te combineren met psychedelica en psychologische ondersteuning van geschoolde therapeuten. Dit is volgens ons de magische mix en de toekomst!<\/p>\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<div class=\"elementor-element elementor-element-4e2df5d e-flex e-con-boxed e-con e-parent\" data-id=\"4e2df5d\" 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-6db6546 elementor-widget elementor-widget-heading\" data-id=\"6db6546\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\" id=\"onze-toekomstplannen\">Onze toekomstplannen<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f766f08 elementor-widget elementor-widget-text-editor\" data-id=\"f766f08\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p class=\"\" data-start=\"2107\" data-end=\"2486\">We nemen steeds meer geschoolde therapeuten aan en we zijn momenteel GZ-psychologen aan het inwerken of aantrekken zodat ze volgens ons protocol kunnen werken. We proberen een landelijk dekkend netwerk te maken zodat overal in Nederland een therapeut beschikbaar beschikbaar is met jou een psychedelische sessie of in de toekomst een psychedelica ondersteunende therapie te kunnen doen. Bekijk ons team via de knop hieronder of vul jouw woonplaats in bij de zoektool om een begeleider bij jou in de buurt te vinden.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-807c204 elementor-align-center elementor-widget elementor-widget-button\" data-id=\"807c204\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/triptherapie.nl\/over-ons\/#onze-therapeuten-en-tripsitters\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Overzicht personeel<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\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<div class=\"elementor-element elementor-element-faf1b75 e-flex e-con-boxed e-con e-parent\" data-id=\"faf1b75\" 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-96acd6d elementor-widget elementor-widget-template\" data-id=\"96acd6d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"template.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-template\">\n\t\t\t\t\t<div data-elementor-type=\"container\" data-elementor-id=\"51226\" class=\"elementor elementor-51226\" data-elementor-post-type=\"elementor_library\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7257ede e-con-full e-flex e-con e-parent\" data-id=\"7257ede\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-519f602 e-con-full e-flex e-con e-child\" data-id=\"519f602\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8b78ba2 elementor-widget elementor-widget-menu-anchor\" data-id=\"8b78ba2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"menu-anchor.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-menu-anchor\" id=\"bereken\"><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c7c84cc elementor-widget elementor-widget-heading\" data-id=\"c7c84cc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\" id=\"prijsberekening-sessie-op-locatie\">Prijsberekening sessie op locatie<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-63ccb5a elementor-widget elementor-widget-text-editor\" data-id=\"63ccb5a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p style=\"text-align: center;\">Reken hier eenvoudig uit wat de prijs is voor een priv\u00e9 psychedelische sessie voor \u00e9\u00e9n tot drie deelnemers op jouw eigen of op \u00e9\u00e9n van onze locaties. Bij sessies op de locaties van Triptherapie is altijd \u00e9\u00e9n overnachting plus eten en drinken inbegrepen.<\/p><p style=\"text-align: center;\">Witte tekst: De begeleider werkt op jouw locatie.<br \/><span style=\"color: #ff6600;\">Oranje tekst<\/span>: De begeleider woont net buiten jouw werkgebied, maar in overleg lukt het vaak wel.<br \/><span style=\"color: #ff0000;\">Rode tekst<\/span>: Je woont te ver weg. Overweeg om een accommodatie dichterbij te huren, een andere begeleider of deelname aan een <span style=\"color: #cc99ff;\"><a style=\"color: #cc99ff;\" href=\"https:\/\/triptherapie.nl\/groepssessies\/#agenda-open-groep-ceremonies\">groepsceremonie op \u00e9\u00e9n van onze locaties<\/a><\/span>.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8566c87 elementor-widget elementor-widget-text-editor\" data-id=\"8566c87\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h3 style=\"text-align: center;\" id=\"voer-je-gewenste-locatie-in\">Voer je gewenste locatie in:<\/h3>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-508468a elementor-widget elementor-widget-html\" data-id=\"508468a\" 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<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\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>Wie Triptherapie als Anbieter von Tripsittern zu psychedelischer Therapie mit Therapeuten wurde.<\/p>","protected":false},"author":2195,"featured_media":44662,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-52155","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/triptherapie.nl\/de\/wp-json\/wp\/v2\/posts\/52155","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/triptherapie.nl\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/triptherapie.nl\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/triptherapie.nl\/de\/wp-json\/wp\/v2\/users\/2195"}],"replies":[{"embeddable":true,"href":"https:\/\/triptherapie.nl\/de\/wp-json\/wp\/v2\/comments?post=52155"}],"version-history":[{"count":0,"href":"https:\/\/triptherapie.nl\/de\/wp-json\/wp\/v2\/posts\/52155\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/triptherapie.nl\/de\/wp-json\/wp\/v2\/media\/44662"}],"wp:attachment":[{"href":"https:\/\/triptherapie.nl\/de\/wp-json\/wp\/v2\/media?parent=52155"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/triptherapie.nl\/de\/wp-json\/wp\/v2\/categories?post=52155"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/triptherapie.nl\/de\/wp-json\/wp\/v2\/tags?post=52155"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}