{
  "id": "ahv-page-about-us-mobile",
  "file": "AHV Page About Us Mobile.dc.html",
  "sourceSha256": "55585d519434dd6654ee2d956dd227abb1b36213b4ec58c337ab3680414e2bb3",
  "variant": "mobile",
  "template": "\n<helmet>\n<link href=\"/ahv/fonts/ahv-33eeac48ab44.css\" rel=\"stylesheet\">\n\n<style>\nbody{margin:0;background:#EFE9DA;color:#2A2118;font-family:'Mulish',sans-serif;font-size:17px;line-height:1.7}\na{color:#006038;text-decoration:none}a:hover{color:#004226;text-decoration:underline}\n:focus-visible{outline:3px solid #6B7726;outline-offset:2px;box-shadow:0 0 0 6px rgba(247,244,234,.85)}\na:active,button:active{filter:brightness(.88)}\nbutton{font-family:inherit;cursor:pointer}\nh1,h2,h3,h4{font-weight:400;margin:0}\n@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}\n@media (prefers-reduced-motion:reduce){*{transition:none !important;animation:none !important}}\n</style>\n<title>Kairali - The Ayurvedic Healing Village</title>\n<meta name=\"description\" content=\"Over Kairali – The Ayurvedic Healing Village: NABH-geaccrediteerd ayurvedisch ziekenhuis in Palakkad, Kerala, met door artsen geleide behandelprogramma's.\">\n<link rel=\"canonical\" href=\"https://ayurvedichealingvillage.com/nl/about-us/\">\n<meta name=\"robots\" content=\"noindex, nofollow\">\n<meta property=\"og:locale\" content=\"nl_NL\">\n<meta property=\"og:type\" content=\"article\">\n<meta property=\"og:title\" content=\"Over ons\">\n<meta property=\"og:description\" content=\"Over Kairali – The Ayurvedic Healing Village: NABH-geaccrediteerd ayurvedisch ziekenhuis in Palakkad, Kerala, met door artsen geleide behandelprogramma's.\">\n<meta property=\"og:url\" content=\"https://ayurvedichealingvillage.com/nl/about-us/\">\n<meta property=\"og:image\" content=\"https://ayurvedichealingvillage.com/wp-content/uploads/2023/11/our-story.png\">\n<meta property=\"og:image:width\" content=\"1440\">\n<meta property=\"og:image:height\" content=\"524\">\n<meta property=\"og:image:type\" content=\"image/png\">\n<meta property=\"og:site_name\" content=\"Ayurvedic Healing Village\">\n<meta name=\"twitter:card\" content=\"summary_large_image\">\n<link rel=\"icon\" href=\"/ahv/assets/img/logo_color-da22eb.svg\" sizes=\"192x192\">\n<script type=\"application/ld+json\">\n{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https://ayurvedichealingvillage.com/nl/about-us/\",\"url\":\"https://ayurvedichealingvillage.com/nl/about-us/\",\"name\":\"Kairali - The Ayurvedic Healing Village\",\"description\":\"Over Kairali – The Ayurvedic Healing Village: NABH-geaccrediteerd ayurvedisch ziekenhuis in Palakkad, Kerala, met door artsen geleide behandelprogramma's.\",\"isPartOf\":{\"@id\":\"https://ayurvedichealingvillage.com/nl/#website\"},\"inLanguage\":\"nl\",\"breadcrumb\":{\"@id\":\"https://ayurvedichealingvillage.com/nl/about-us/#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://ayurvedichealingvillage.com/nl/about-us/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https://ayurvedichealingvillage.com/nl/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Over ons\",\"item\":\"https://ayurvedichealingvillage.com/nl/about-us/\"}]},{\"@type\":\"WebSite\",\"@id\":\"https://ayurvedichealingvillage.com/nl/#website\",\"url\":\"https://ayurvedichealingvillage.com/nl/\",\"name\":\"Kairali — The Ayurvedic Healing Village\",\"inLanguage\":\"nl\"}]}\n</script>\n</helmet>\n<div data-screen-label=\"About Us — Mobile\" style=\"max-width:430px;margin:0 auto;background:#F7F4EA;box-shadow:0 0 40px rgba(70,50,20,.15);position:relative;box-sizing:border-box\">\n<a href=\"#main-content\" style=\"position:fixed;left:-9999px;top:12px;z-index:120;background:#5A4420;color:#F7F4EA;padding:14px 24px;border-radius:4px;font-weight:700;font-size:15px\" style-focus=\"left:16px\">Direct naar de hoofdinhoud</a>\n<dc-import name=\"AHV Chrome Header\" narrow=\"true\" style=\"position:sticky;top:0;z-index:80\" hint-size=\"100%,64px\"></dc-import>\n<main id=\"main-content\">\n<section style=\"width:min(1220px,94%);margin:0 auto;padding:20px 0 22px\">\n  <nav aria-label=\"Kruimelpad\" style=\"font-size:15px;color:#75695A;display:flex;flex-wrap:wrap;gap:0 8px;align-items:center;line-height:1.4\"><a href=\"https://ayurvedichealingvillage.com/nl/\" onClick=\"{{ guard }}\" style=\"display:inline-flex;align-items:center;min-height:44px;min-width:44px\">Home</a><span aria-hidden=\"true\">/</span><span aria-current=\"page\" style=\"color:#2A2118;display:inline-flex;align-items:center;min-height:44px\">Over ons</span></nav>\n  <div style=\"padding-top:4px\">\n    <div style=\"font-weight:700;font-size:12px;letter-spacing:2.4px;color:#8F6212;text-transform:uppercase\">Kairali — The Ayurvedic Healing Village · Sinds 1908</div>\n    <h1 id=\"page-h1\" style=\"font-family:'Marcellus',serif;font-size:32px;line-height:1.12;margin:10px 0 0;text-wrap:balance\">Over ons</h1>\n  </div>\n</section>\n<div style=\"width:min(1220px,94%);margin:0 auto\">\n  <img src=\"/ahv/assets/img/AHV-About-Landscape.webp\" alt=\"Luchtfoto van rijstvelden en kokospalmen op het platteland van Kerala rond het ziekenhuis\" width=\"1440\" height=\"524\" style=\"width:100%;height:auto;display:block;border-radius:4px\">\n</div>\n\n<article aria-labelledby=\"page-h1\" style=\"width:min(1220px,94%);margin:0 auto;padding:32px 0 0\">\n  <blockquote data-pos=\"/3\" style=\"margin:0;text-align:center;font-family:'Marcellus',serif;font-size:22px;line-height:1.4;color:#2A2118;text-wrap:balance;display:flex;flex-direction:column;align-items:center;gap:12px\">\n    <img src=\"/ahv/assets/img/AHV-About-lotus.svg\" alt=\"\" width=\"95\" height=\"57\" style=\"width:56px;height:auto;display:block\">\n    <p style=\"margin:0\"><strong style=\"font-weight:inherit\">{{ quoteText }}</strong></p>\n  </blockquote>\n\n  <section id=\"introduction\" aria-labelledby=\"intro-h\" style=\"padding:40px 0 0;display:flex;flex-direction:column;gap:18px\">\n    <div>\n      <p style=\"margin:0 0 6px;font-weight:700;font-size:12.5px;letter-spacing:2.4px;color:#8F6212;text-transform:uppercase\">{{ intro.eyebrow }}</p>\n      <h2 id=\"intro-h\" style=\"font-family:'Marcellus',serif;font-size:27px;line-height:1.2;margin:0;text-wrap:balance\">{{ intro.heading }}</h2>\n    </div>\n    <figure data-ahv-banner=\"about-wellness\" style=\"margin:0;width:100%;position:relative;aspect-ratio:448/455;border-radius:4px;overflow:hidden;background:#E0D7C4\"><img src=\"/ahv/assets/img/gallery/a5340555d384edc72099bc9f721bde48ec6e61c57202a233cb9c498d9680b505.webp\" alt=\"Stenen pad dat zich door aangelegde tuinen slingert naar een gebouw met pannendak tussen palmbomen\" loading=\"lazy\" style=\"position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block\"><figcaption style=\"position:absolute;left:8%;right:8%;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.93);border:1px solid rgba(233,226,211,.9);border-radius:4px;padding:26px 22px;text-align:center;box-sizing:border-box\"><img src=\"/ahv/assets/img/kairali-colorful-logo.webp\" alt=\"Kairali – The Ayurvedic Healing Village\" width=\"150\" height=\"35\" loading=\"lazy\" style=\"width:150px;height:auto;display:block;margin:0 auto 14px\"><strong style=\"display:block;font-family:'Marcellus',serif;font-weight:400;font-size:22px;line-height:1.2;color:#2A2118;text-wrap:balance\">Beste ayurvedische retreat van Azië sinds 1999</strong><span style=\"display:block;margin-top:12px;font-size:15.5px;line-height:1.6;color:#514A3F\">Kairali – The Ayurvedic Healing Village in Palakkad, Kerala, is een unieke holistische plek die traditionele en authentieke ayurvedische therapieën biedt.</span></figcaption></figure>\n    <p style=\"margin:0;font-size:17px;line-height:1.7;text-wrap:pretty\">{{ intro.paragraph }}</p>\n    <a href=\"{{ intro.linkHref }}\" onClick=\"{{ guard }}\" style=\"display:inline-flex;align-items:center;gap:10px;min-height:44px;font-weight:700;font-size:15.5px\"><span aria-hidden=\"true\" style=\"color:#C1882C\">◆</span>{{ intro.linkText }}</a>\n  </section>\n\n  <section id=\"founder\" aria-labelledby=\"founder-h\" style=\"padding:40px 0 0;margin-top:40px;border-top:1px solid #E0D7C4;display:flex;flex-direction:column;gap:18px\">\n    <div>\n      <p style=\"margin:0 0 6px;font-weight:700;font-size:12.5px;letter-spacing:2.4px;color:#8F6212;text-transform:uppercase\">{{ founder.eyebrow }}</p>\n      <h2 id=\"founder-h\" style=\"font-family:'Marcellus',serif;font-size:27px;line-height:1.2;margin:0;text-wrap:balance\">{{ founder.heading }}</h2>\n    </div>\n    <p style=\"margin:0;font-size:19px;line-height:1.65;border-left:3px solid #C1882C;padding-left:16px;text-wrap:pretty\">{{ founder.lead }}</p>\n    <p style=\"margin:0;font-size:17px;line-height:1.7;text-wrap:pretty\">{{ founder.paragraph }}</p>\n    <a href=\"{{ founder.linkHref }}\" onClick=\"{{ guard }}\" style=\"display:inline-flex;align-items:center;gap:10px;min-height:44px;font-weight:700;font-size:15.5px\"><span aria-hidden=\"true\" style=\"color:#C1882C\">◆</span>{{ founder.linkText }}</a>\n    <figure style=\"margin:0\">\n      <img src=\"/ahv/assets/img/team-gita1.webp\" alt=\"Gita Ramesh, gezeten in de tuinen van Kairali\" width=\"482\" height=\"618\" loading=\"lazy\" style=\"width:100%;height:auto;display:block;border-radius:4px\">\n      <figcaption style=\"padding-top:12px\">\n        <h3 style=\"font-family:'Marcellus',serif;font-size:21px;line-height:1.25;margin:0 0 2px\">{{ founder.name }}</h3>\n        <p style=\"margin:0;font-weight:700;font-size:15px;color:#8F6212;line-height:1.5\">{{ founder.role }}</p>\n      </figcaption>\n    </figure>\n  </section>\n\n  <section id=\"founders-letter\" aria-labelledby=\"founders-letter-heading\" style=\"padding:48px 0;margin-top:48px;border-top:1px solid #E0D7C4\"><div style=\"max-width:72ch;margin:0 auto\"><h2 id=\"founders-letter-heading\" style=\"font-family:Marcellus,serif;font-size:clamp(28px,3vw,38px);line-height:1.25;margin:0 0 28px\">Een brief van K.V. Ramesh</h2><p style=\"font-size:18px;line-height:1.8;margin:0 0 20px\"><strong>Beste vrienden, </strong></p><p style=\"font-size:18px;line-height:1.8;margin:0 0 20px\">Hartelijke groeten van Kairali – The Ayurvedic Healing Village, een oase waar de tijdloze kennis van Ayurveda wordt verenigd met de behoeften van het hedendaagse leven. Het doet mij veel genoegen om de kernwaarden van Kairali met u te delen: toewijding aan holistisch welzijn, authentieke ayurvedische therapie en de vooruitgang van de mensheid.</p><p style=\"font-size:18px;line-height:1.8;margin:0 0 20px\">Mijn visie voor Kairali Ayurvedic Group is altijd stevig verankerd geweest in de eeuwenoude wetenschap van Ayurveda, die ik beschouw als de beste weg naar harmonie en gezondheid. Ik ben opgegroeid in een gezin dat doordrongen was van ayurvedische tradities en heb met eigen ogen gezien welke grote invloed Ayurveda op het leven van mensen heeft. Dat heeft mij gemotiveerd mijn leven te wijden aan het beschermen van dit onschatbare erfgoed en het bekend te maken in de wereld. </p><p style=\"font-size:18px;line-height:1.8;margin:0 0 20px\">Authenticiteit en uitmuntendheid zijn altijd de hoekstenen van Kairali geweest. Dat idee komt tot uiting in Kairali – The Ayurvedic Healing Village. Van de therapieën en behandelingen tot de rustige, milieuvriendelijke omgeving: elk element van deze plek is zorgvuldig ontworpen om een volledig ayurvedische ervaring te bieden. Door traditionele gebruiken te combineren met hedendaagse normen van gastvrijheid creëren wij hier een toevluchtsoord waar bezoekers rust, vernieuwing en balans kunnen vinden.</p><p style=\"font-size:18px;line-height:1.8;margin:0 0 20px\">Ons doel gaat verder dan het bieden van ayurvedische zorg. Wij willen een levenswijze stimuleren die waarde hecht aan mentaal, spiritueel en lichamelijk welzijn. Met onze op maat gemaakte therapieën, therapeutische diëten, yogalessen en meditatietechnieken willen wij onze patiënten in staat stellen een beter en voldoening gevender leven te leiden. </p><p style=\"font-size:18px;line-height:1.8;margin:0 0 20px\">Hoewel Kairali Ayurvedic Group in de loop der jaren wereldwijd een bekend merk is geworden, zijn onze principes niet veranderd. Wij zijn er om als hoeders van Ayurveda de therapeutische voordelen ervan te bieden aan wie daarnaar zoekt, met behoud van de integriteit die onze reputatie als toonaangevende autoriteit op het gebied van holistische gezondheid heeft gevestigd.</p><p style=\"font-size:18px;line-height:1.8;margin:0 0 20px\">Aan iedereen die Kairali – The Ayurvedic Healing Village bezoekt, betuig ik mijn oprechte dank. Uw vertrouwen in Ayurveda en in Kairali motiveert ons om voortdurend te vernieuwen en te verbeteren. Ik nodig u van harte uit dit transformerende proces van zelfontdekking, heling en vernieuwing te beginnen, geleid door de tijdloze principes van Ayurveda. </p><p style=\"font-size:18px;line-height:1.8;margin:0 0 20px\">Laten we samen werken aan een gezondere, gelukkigere wereld.<br><br>Met hartelijke groet,<br><strong>K.V. Ramesh<br></strong>Managing Director, Kairali Ayurvedic Group</p></div></section>\n<section id=\"leadership\" aria-labelledby=\"leadership-h\" style=\"padding:40px 0 0;margin-top:40px;border-top:1px solid #E0D7C4\">\n    <p style=\"margin:0 0 6px;font-weight:700;font-size:12.5px;letter-spacing:2.4px;color:#8F6212;text-transform:uppercase\">{{ leadership.eyebrow }}</p>\n    <h2 id=\"leadership-h\" style=\"font-family:'Marcellus',serif;font-size:27px;line-height:1.2;margin:0 0 8px;text-wrap:balance\">{{ leadership.heading }}</h2>\n    <ul style=\"list-style:none;margin:0;padding:0;display:flex;flex-direction:column\">\n      <sc-for list=\"{{ directors }}\" as=\"d\" hint-placeholder-count=\"4\">\n        <li id=\"{{ d.id }}\" data-profile=\"director\" style=\"display:flex;flex-direction:column;gap:14px;padding:28px 0;border-top:1px solid #E0D7C4\">\n          <div style=\"display:grid;grid-template-columns:104px minmax(0,1fr);gap:16px;align-items:center\">\n            <img src=\"{{ d.portrait.src }}\" alt=\"{{ d.portrait.alt }}\" width=\"{{ d.portrait.width }}\" height=\"{{ d.portrait.height }}\" loading=\"lazy\" style=\"width:104px;height:auto;display:block;border-radius:4px\">\n            <div style=\"min-width:0\">\n              <h3 style=\"font-family:'Marcellus',serif;font-size:22px;line-height:1.25;margin:0 0 4px\">{{ d.name }}</h3>\n              <p style=\"margin:0;font-weight:700;font-size:15px;color:#8F6212;line-height:1.5\">{{ d.role }}</p>\n            </div>\n          </div>\n          <p style=\"margin:0;font-size:17px;line-height:1.7;text-wrap:pretty\">{{ d.paragraph }}</p>\n          <sc-if value=\"{{ d.hasLinkedin }}\" hint-placeholder-val=\"{{ false }}\"><a href=\"{{ d.linkedinHref }}\" target=\"_blank\" rel=\"noopener\" aria-label=\"{{ d.linkedinLabel }}\" onClick=\"{{ guard }}\" style=\"display:inline-flex;align-items:center;gap:10px;min-height:44px;font-weight:700;font-size:15.5px\"><span aria-hidden=\"true\" style=\"color:#C1882C\">◆</span>LinkedIn</a></sc-if>\n        </li>\n      </sc-for>\n    </ul>\n  </section>\n\n  <section id=\"awards\" aria-labelledby=\"awards-h\" style=\"padding:40px 0 0;margin-top:12px;border-top:1px solid #E0D7C4;display:flex;flex-direction:column;gap:16px\">\n    <div>\n      <p style=\"margin:0 0 6px;font-weight:700;font-size:12.5px;letter-spacing:2.4px;color:#8F6212;text-transform:uppercase\">{{ awards.eyebrow }}</p>\n      <h2 id=\"awards-h\" style=\"font-family:'Marcellus',serif;font-size:27px;line-height:1.2;margin:0;text-wrap:balance\">{{ awards.heading }}</h2>\n    </div>\n    <figure style=\"margin:0\"><img src=\"/ahv/assets/img/AHV-About-698image.webp\" alt=\"Een man in smoking ontvangt een gouden trofee bij de Spa Awards, opgericht in 2006\" width=\"698\" height=\"642\" loading=\"lazy\" style=\"width:100%;height:auto;display:block;border-radius:4px\"></figure>\n    <h3 style=\"font-family:'Marcellus',serif;font-size:20px;line-height:1.4;margin:0;color:#5A4420;text-wrap:balance\">{{ awards.lead }}</h3>\n    <p style=\"margin:0;font-size:17px;line-height:1.7;text-wrap:pretty\">{{ awards.paragraph }}</p>\n    <a href=\"{{ awards.linkHref }}\" target=\"_blank\" rel=\"noopener\" onClick=\"{{ guard }}\" style=\"display:inline-flex;align-items:center;gap:10px;min-height:44px;font-weight:700;font-size:15.5px\"><span aria-hidden=\"true\" style=\"color:#C1882C\">◆</span>{{ awards.linkText }}</a>\n  </section>\n\n  <section id=\"certificates\" aria-labelledby=\"certificates-h\" style=\"padding:40px 0 56px;margin-top:40px;border-top:1px solid #E0D7C4\">\n    <p style=\"margin:0 0 6px;font-weight:700;font-size:12.5px;letter-spacing:2.4px;color:#8F6212;text-transform:uppercase;text-align:center\">{{ certificates.eyebrow }}</p>\n    <h2 id=\"certificates-h\" style=\"font-family:'Marcellus',serif;font-size:27px;line-height:1.2;margin:0 0 24px;text-align:center;text-wrap:balance\">{{ certificates.heading }}</h2>\n    <ul style=\"list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px\">\n      <sc-for list=\"{{ documents }}\" as=\"c\" hint-placeholder-count=\"7\">\n        <li style=\"background:#fff;border:1px solid #E9E2D3;border-radius:4px;overflow:hidden;min-width:0\">\n          <button type=\"button\" data-doc-index=\"{{ c.i }}\" onClick=\"{{ c.open }}\" style=\"display:flex;flex-direction:column;width:100%;height:100%;padding:0;border:0;background:#fff;color:#2A2118;text-align:left\" style-hover=\"color:#006038\">\n            <img src=\"{{ c.src }}\" alt=\"{{ c.label }}\" width=\"{{ c.width }}\" height=\"{{ c.height }}\" loading=\"lazy\" style=\"width:100%;height:auto;display:block;border-bottom:1px solid #E9E2D3\">\n            <span style=\"display:flex;flex-direction:column;gap:4px;padding:10px 12px 12px;min-height:44px;box-sizing:border-box\"><span style=\"font-weight:700;font-size:14.5px;line-height:1.35\">{{ c.label }}</span><span style=\"font-size:14px;line-height:1.45;color:#514A3F\">{{ c.note }}</span><span style=\"display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:11.5px;letter-spacing:1.6px;text-transform:uppercase;color:#006038\">Bekijken<span aria-hidden=\"true\" style=\"color:#C1882C\">→</span></span></span>\n          </button>\n        </li>\n      </sc-for>\n    </ul>\n  </section>\n</article>\n</main>\n<dc-import name=\"AHV Chrome Footer\" narrow=\"true\" hint-size=\"100%,900px\"></dc-import>\n\n<div id=\"doc-dialog\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"doc-dialog-title\" onKeyDown=\"{{ dlgKey }}\" style=\"display:{{ dlgDisplay }};position:fixed;inset:0;z-index:200;background:rgba(26,20,12,.96);flex-direction:column;padding:12px;box-sizing:border-box;gap:10px\">\n  <div style=\"display:flex;justify-content:space-between;align-items:flex-start;gap:10px;color:#F7F4EA\">\n    <div style=\"display:flex;flex-direction:column;gap:2px;min-width:0\"><span aria-live=\"polite\" style=\"font-weight:700;font-size:12px;letter-spacing:1.8px;text-transform:uppercase;color:#E9E2D3\">{{ counter }}</span><span id=\"doc-dialog-title\" style=\"font-family:'Marcellus',serif;font-size:18px;line-height:1.3\">{{ curLabel }}</span></div>\n    <button type=\"button\" id=\"doc-close\" onClick=\"{{ close }}\" aria-label=\"Document sluiten\" style=\"display:inline-flex;align-items:center;justify-content:center;flex:none;width:48px;height:48px;border:1px solid rgba(247,244,234,.5);border-radius:4px;background:transparent;color:#F7F4EA;font-size:20px\"><span aria-hidden=\"true\">✕</span></button>\n  </div>\n  <div id=\"doc-stage\" tabindex=\"0\" aria-label=\"Documentafbeelding. Scroll of sleep om op ware grootte te bekijken\" onPointerDown=\"{{ panStart }}\" onPointerMove=\"{{ panMove }}\" onPointerUp=\"{{ panEnd }}\" onPointerCancel=\"{{ panEnd }}\" style=\"flex:1 1 auto;min-height:0;display:flex;justify-content:flex-start;align-items:flex-start;overflow:auto;touch-action:pan-x pan-y pinch-zoom;overscroll-behavior:contain;border-radius:4px\">{{ viewerImg }}</div>\n  <div style=\"display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px\">\n    <button type=\"button\" id=\"doc-prev\" onClick=\"{{ prev }}\" aria-label=\"Vorig document\" style=\"display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;border:1px solid rgba(247,244,234,.5);border-radius:4px;background:transparent;color:#F7F4EA;font-weight:700;font-size:13px;letter-spacing:1.6px;text-transform:uppercase\"><span aria-hidden=\"true\">←</span>Vorige</button>\n    <button type=\"button\" id=\"doc-zoom\" aria-pressed=\"{{ zoomPressed }}\" onClick=\"{{ toggleZoom }}\" style=\"display:inline-flex;align-items:center;justify-content:center;min-height:48px;border:1px solid rgba(247,244,234,.5);border-radius:4px;background:transparent;color:#F7F4EA;font-weight:700;font-size:13px;letter-spacing:1.6px;text-transform:uppercase\">{{ zoomLabel }}</button>\n    <button type=\"button\" id=\"doc-next\" onClick=\"{{ next }}\" aria-label=\"Volgend document\" style=\"display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;border:1px solid #EEB41E;border-radius:4px;background:#EEB41E;color:#2A2118;font-weight:700;font-size:13px;letter-spacing:1.6px;text-transform:uppercase\">Volgende<span aria-hidden=\"true\">→</span></button>\n  </div>\n</div>\n</div>\n",
  "logic": "\n\nfunction ahvDocNote(c) {\n  const e = c.printedEvidence || {};\n  const parts = [];\n  if (e.number) parts.push(\"Nr. \" + e.number);\n  if (e.order) parts.push(\"Besluit \" + e.order);\n  if (e.printedValidFrom && e.printedValidThrough) parts.push(\"Geldig \" + e.printedValidFrom + \" tot \" + e.printedValidThrough);\n  else if (e.printedIssueDate && e.printedValidThrough) parts.push(\"Uitgegeven \" + e.printedIssueDate + \", geldig tot \" + e.printedValidThrough);\n  else if (e.printedValidThrough) parts.push(\"Geldig tot \" + e.printedValidThrough);\n  else if (e.printedDate && e.printedPeriod) parts.push(\"Gedateerd \" + e.printedDate + \", \" + e.printedPeriod);\n  else if (e.issued) parts.push(\"Uitgegeven \" + e.issued.replace(/(\\d)(\\D)/, \"$1 $2\"));\n  return parts.join(\" · \");\n}\n\nclass Component extends DCLogic {\n  state = { open: false, i: 0, zoom: false };\n  componentDidMount() { document.documentElement.lang = 'nl'; if (this.state.open) this.acquireLock(); }\n  componentWillUnmount() { this._gone = true; this.releaseLock(); }\n  // OWNER-REG-07 (iOS: closing the certificate viewer left scrolling stuck). One paired, idempotent lock: acquire saves\n  // the exact prior inline overflow (value + priority) and the settled scroll position; release (close, Escape, unmount)\n  // puts back only a lock this instance still holds, then the position. Pending focus timers are cancelled and a late\n  // callback never focuses into a closed or unmounted viewer; focus never scrolls the page.\n  acquireLock() {\n    if (this._lock) return;\n    const s = document.body.style;\n    this._lock = { x: window.scrollX, y: window.scrollY, saved: ['overflow-x', 'overflow-y'].map((k) => [k, s.getPropertyValue(k), s.getPropertyPriority(k)]) };\n    s.setProperty('overflow', 'hidden');\n    // Escape also closes when a tap left focus on <body> (Safari does not focus tapped buttons, so the dialog's own\n    // onKeyDown never sees the key); the dialog's handler runs first and prevents the default, so this never doubles\n    this._onEsc = (e) => { if (e.key === 'Escape' && !e.defaultPrevented) this.closeViewer(); };\n    document.addEventListener('keydown', this._onEsc);\n  }\n  releaseLock() {\n    this.cancelFocus();\n    if (this._onEsc) { document.removeEventListener('keydown', this._onEsc); this._onEsc = null; }\n    const l = this._lock;\n    if (!l) return;\n    this._lock = null;\n    const s = document.body.style;\n    // only a lock this instance still holds: another owner's later value is left alone\n    if (l.saved.every(([k]) => s.getPropertyValue(k) === 'hidden' && !s.getPropertyPriority(k))) for (const [k, v, p] of l.saved) { if (v) s.setProperty(k, v, p); else s.removeProperty(k); }\n    if (window.scrollX !== l.x || window.scrollY !== l.y) window.scrollTo({ left: l.x, top: l.y, behavior: 'instant' });\n  }\n  cancelFocus() { if (this._focusTimer) { clearTimeout(this._focusTimer); this._focusTimer = null; } }\n  focusLater(find, whenOpen) {\n    this.cancelFocus();\n    this._focusTimer = setTimeout(() => { this._focusTimer = null; if (this._gone || this.state.open !== whenOpen) return; const el = find(); if (el) el.focus({ preventScroll: true }); }, 30);\n  }\n  openAt(idx) {\n    this._opener = idx;\n    // Settle any in-flight smooth scroll (focus() from page top) instantly at the trigger before locking the page,\n    // so the document position under the fixed overlay is stable (reproduced race, notes/about-us-page.md).\n    const btn = document.querySelector('button[data-doc-index=\"' + idx + '\"]');\n    if (btn) { const r = btn.getBoundingClientRect(); if (r.top < 0 || r.bottom > window.innerHeight) window.scrollTo({ top: window.scrollY + r.top - Math.max(0, (window.innerHeight - r.height) / 2), behavior: 'instant' }); else window.scrollTo({ top: window.scrollY, behavior: 'instant' }); }\n    this.setState({ open: true, i: idx, zoom: false });\n    this.acquireLock();\n    this.focusLater(() => document.getElementById('doc-close'), true);\n  }\n  closeViewer() {\n    if (!this.state.open && !this._lock) return;\n    const idx = this._opener != null ? this._opener : this.state.i; // focus returns to the trigger that opened the viewer\n    this.setState({ open: false, zoom: false });\n    this.releaseLock();\n    this.focusLater(() => document.querySelector('button[data-doc-index=\"' + idx + '\"]'), false);\n  }\n  // AHV viewer pan repair 20260929\n  panStart(e) {\n    if (!this.state.zoom || e.pointerType !== 'mouse' || e.button !== 0) return;\n    e.preventDefault();\n    const el = e.currentTarget;\n    this._pan = { x: e.clientX, y: e.clientY, left: el.scrollLeft, top: el.scrollTop };\n    el.setPointerCapture(e.pointerId);\n  }\n  panMove(e) {\n    if (!this._pan) return;\n    e.currentTarget.scrollLeft = this._pan.left + this._pan.x - e.clientX;\n    e.currentTarget.scrollTop = this._pan.top + this._pan.y - e.clientY;\n  }\n  panEnd() { this._pan = null; }\n  renderVals() {\n    const D = window.AHV_ABOUT;\n    const A = 'https://ayurvedichealingvillage.com';\n    const guard = () => {}; /* preview-only nav guard neutralised for the published site */\n    if (!D) return { guard, quoteText: '', intro: {}, founder: {}, leadership: {}, directors: [], awards: {}, certificates: {}, documents: [], dlgDisplay: 'none', viewerImg: null, counter: '', curLabel: '', zoomLabel: 'Zoomen', zoomPressed: 'false' };\n    const docs = D.certificates.documents, n = docs.length, i = this.state.i, cur = docs[i] || docs[0];\n    const go = (d) => this.setState(s => ({ i: (s.i + d + n) % n, zoom: false }));\n    const zoom = this.state.zoom;\n    const viewerImg = this.state.open ? React.createElement('img', { id: 'doc-expanded', key: cur.src + (zoom ? 'z' : 'f'), src: cur.src, alt: cur.label, width: cur.width, height: cur.height,\n      style: zoom ? { display: 'block', width: cur.width + 'px', flexShrink: 0, margin: '0 auto', maxWidth: 'none', height: 'auto', background: '#000' } : { display: 'block', margin: '0 auto', flexShrink: 0, width: 'auto', height: 'auto', maxWidth: '100%', maxHeight: '100%', objectFit: 'contain', background: '#000' } }) : null;\n    return {\n      guard, quoteText: D.quote.text,\n      intro: { eyebrow: D.intro.eyebrow, heading: D.intro.heading, paragraph: D.intro.paragraph, linkText: D.intro.link.text, linkHref: A + D.intro.link.href },\n      founder: { eyebrow: D.founder.eyebrow, heading: D.founder.heading, lead: D.founder.lead, paragraph: D.founder.paragraph, linkText: D.founder.link.text, linkHref: A + D.founder.link.href, name: D.founder.name, role: D.founder.role },\n      leadership: { eyebrow: D.leadership.eyebrow, heading: D.leadership.heading },\n      directors: D.leadership.directors.map(d => ({ id: d.id, name: d.name, role: d.role, paragraph: d.paragraph, portrait: d.portrait, hasLinkedin: !!d.linkedin, linkedinHref: d.linkedin ? d.linkedin.href : '', linkedinLabel: d.linkedin ? d.linkedin.label : '' })),\n      awards: { eyebrow: D.awards.eyebrow, heading: D.awards.heading, lead: D.awards.lead, paragraph: D.awards.paragraph, linkText: D.awards.link.text, linkHref: A + D.awards.link.href },\n      certificates: { eyebrow: D.certificates.eyebrow, heading: D.certificates.heading },\n      documents: docs.map((c, idx) => ({ i: idx, src: c.src, label: c.label, note: ahvDocNote(c), width: c.width, height: c.height, open: () => this.openAt(idx) })),\n      dlgDisplay: this.state.open ? 'flex' : 'none', viewerImg, counter: n ? (i + 1) + ' van ' + n : '', curLabel: cur ? cur.label : '',\n      zoomLabel: zoom ? 'Passend' : 'Zoomen', zoomPressed: zoom ? 'true' : 'false', toggleZoom: () => this.setState(s => ({ zoom: !s.zoom })),\n      panStart: (e) => this.panStart(e), panMove: (e) => this.panMove(e), panEnd: () => this.panEnd(), close: () => this.closeViewer(), prev: () => go(-1), next: () => go(1),\n      dlgKey: (e) => {\n        if (e.key === 'Escape') { e.preventDefault(); this.closeViewer(); return; }\n        if (this.state.zoom && ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Home', 'End'].includes(e.key)) return;\n        if (e.key === 'ArrowLeft') { e.preventDefault(); go(-1); return; }\n        if (e.key === 'ArrowRight') { e.preventDefault(); go(1); return; }\n        if (e.key === 'Tab') {\n          const f = [...e.currentTarget.querySelectorAll('button')];\n          const first = f[0], last = f[f.length - 1];\n          if (e.shiftKey && document.activeElement === first) { e.preventDefault(); last.focus(); }\n          else if (!e.shiftKey && document.activeElement === last) { e.preventDefault(); first.focus(); }\n        }\n      }\n    };\n  }\n}\n",
  "props": "",
  "scripts": [
    "/ahv/l10n/nl/assets/about-us-data.js"
  ],
  "locale": "nl"
}
