{
  "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=\"Über Kairali – The Ayurvedic Healing Village: NABH-akkreditiertes Ayurveda-Krankenhaus in Palakkad, Kerala, mit ärztlich geleiteten Behandlungsprogrammen.\">\n<link rel=\"canonical\" href=\"https://ayurvedichealingvillage.com/de/uber-uns/\">\n<meta name=\"robots\" content=\"noindex, nofollow\">\n<meta property=\"og:locale\" content=\"de_DE\">\n<meta property=\"og:type\" content=\"article\">\n<meta property=\"og:title\" content=\"Über uns\">\n<meta property=\"og:description\" content=\"Über Kairali – The Ayurvedic Healing Village: NABH-akkreditiertes Ayurveda-Krankenhaus in Palakkad, Kerala, mit ärztlich geleiteten Behandlungsprogrammen.\">\n<meta property=\"og:url\" content=\"https://ayurvedichealingvillage.com/de/uber-uns/\">\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/de/uber-uns/\",\"url\":\"https://ayurvedichealingvillage.com/de/uber-uns/\",\"name\":\"Kairali - The Ayurvedic Healing Village\",\"description\":\"Über Kairali – The Ayurvedic Healing Village: NABH-akkreditiertes Ayurveda-Krankenhaus in Palakkad, Kerala, mit ärztlich geleiteten Behandlungsprogrammen.\",\"isPartOf\":{\"@id\":\"https://ayurvedichealingvillage.com/de/#website\"},\"inLanguage\":\"de\",\"breadcrumb\":{\"@id\":\"https://ayurvedichealingvillage.com/de/uber-uns/#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://ayurvedichealingvillage.com/de/uber-uns/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https://ayurvedichealingvillage.com/de/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Über uns\",\"item\":\"https://ayurvedichealingvillage.com/de/uber-uns/\"}]},{\"@type\":\"WebSite\",\"@id\":\"https://ayurvedichealingvillage.com/de/#website\",\"url\":\"https://ayurvedichealingvillage.com/de/\",\"name\":\"Kairali — The Ayurvedic Healing Village\",\"inLanguage\":\"de\"}]}\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\">Zum Hauptinhalt springen</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=\"Navigationspfad\" 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/de/\" onClick=\"{{ guard }}\" style=\"display:inline-flex;align-items:center;min-height:44px;min-width:44px\">Startseite</a><span aria-hidden=\"true\">/</span><span aria-current=\"page\" style=\"color:#2A2118;display:inline-flex;align-items:center;min-height:44px\">Über uns</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 · Seit 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\">Über uns</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=\"Luftaufnahme von Reisfeldern und Kokospalmen in der ländlichen Umgebung des Krankenhauses in Kerala\" 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=\"Steinpfad, der sich durch bepflanzte Gärten zu einem Gebäude mit Ziegeldach zwischen Palmen schlängelt\" 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\">Asiens bestes Ayurveda-Retreat seit 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, ist ein einzigartiger ganzheitlicher Ort, der traditionelle und authentische Ayurveda-Therapien anbietet.</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 sitzt in den Gärten von 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\">Ein Brief von K.V. Ramesh</h2><p style=\"font-size:18px;line-height:1.8;margin:0 0 20px\"><strong>Liebe Freundinnen und Freunde, </strong></p><p style=\"font-size:18px;line-height:1.8;margin:0 0 20px\">Herzliche Grüße aus Kairali – The Ayurvedic Healing Village, einem Ort, an dem das zeitlose Wissen des Ayurveda mit den Anforderungen des modernen Lebens verbunden wird. Es ist mir eine große Freude, Ihnen die Grundwerte von Kairali näherzubringen: das Engagement für ganzheitliches Wohlbefinden, echte ayurvedische Therapie und den Fortschritt der Menschheit.</p><p style=\"font-size:18px;line-height:1.8;margin:0 0 20px\">Meine Vision für die Kairali Ayurvedic Group gründete sich stets fest auf die jahrhundertealte Wissenschaft des Ayurveda, die ich für den besten Weg zu Harmonie und Gesundheit halte. Da ich in einem Haushalt aufgewachsen bin, der von ayurvedischen Traditionen geprägt war, habe ich selbst erlebt, welch großen Einfluss sie auf das Leben der Menschen hat. Das hat mich motiviert, mein Leben dem Schutz dieses unschätzbaren Erbes zu widmen und es der Welt näherzubringen. </p><p style=\"font-size:18px;line-height:1.8;margin:0 0 20px\">Authentizität und Exzellenz waren schon immer die Grundpfeiler von Kairali. Dieser Gedanke spiegelt sich in Kairali – The Ayurvedic Healing Village wider. Von den Therapien und Behandlungen bis hin zur ruhigen, umweltfreundlichen Umgebung wurde jedes Element dieses Hauses so geplant, dass es eine umfassende ayurvedische Erfahrung ermöglicht. Hier schaffen wir einen Rückzugsort, an dem Besucherinnen und Besucher Ruhe, Erneuerung und Ausgeglichenheit finden können, indem wir traditionelle Bräuche mit zeitgemäßen Standards der Gastfreundschaft verbinden.</p><p style=\"font-size:18px;line-height:1.8;margin:0 0 20px\">Unser Ziel geht über die ayurvedische Versorgung hinaus. Wir möchten eine Lebensweise fördern, die geistiges, spirituelles und körperliches Wohlbefinden wertschätzt. Mit unseren individuell abgestimmten Therapien, therapeutischen Diäten, Yogastunden und Meditationstechniken möchten wir unseren Patientinnen und Patienten ein besseres, erfüllteres Leben ermöglichen. </p><p style=\"font-size:18px;line-height:1.8;margin:0 0 20px\">Auch wenn die Kairali Ayurvedic Group im Laufe der Jahre weltweit zu einer bekannten Marke geworden ist, haben sich unsere Grundsätze nicht verändert. Wir verstehen uns als Hüter des Ayurveda: Wir bieten seinen therapeutischen Nutzen allen an, die ihn suchen, und wahren dabei die Integrität, die unseren Ruf als führende Autorität für ganzheitliche Gesundheit begründet hat.</p><p style=\"font-size:18px;line-height:1.8;margin:0 0 20px\">Allen, die Kairali – The Ayurvedic Healing Village besuchen, danke ich von Herzen. Ihr Vertrauen in den Ayurveda und in Kairali motiviert uns, uns ständig weiterzuentwickeln und zu verbessern. Ich lade Sie ein, diesen verwandelnden Prozess der Selbstentdeckung, Heilung und Regeneration zu beginnen, geleitet von den zeitlosen Prinzipien des Ayurveda. </p><p style=\"font-size:18px;line-height:1.8;margin:0 0 20px\">Lassen Sie uns gemeinsam eine gesündere, glücklichere Welt schaffen.<br><br>Herzliche Grüße<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=\"Ein Mann im Smoking nimmt bei den Spa Awards (gegr. 2006) eine goldene Trophäe entgegen\" 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\">Ansehen<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=\"Dokument schließen\" 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=\"Dokumentbild. In Originalgröße zum Verschieben scrollen oder ziehen\" 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=\"Vorheriges Dokument\" 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>Zurück</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=\"Nächstes Dokument\" 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\">Weiter<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(\"Bescheid \" + e.order);\n  if (e.printedValidFrom && e.printedValidThrough) parts.push(\"Gültig \" + e.printedValidFrom + \" bis \" + e.printedValidThrough);\n  else if (e.printedIssueDate && e.printedValidThrough) parts.push(\"Ausgestellt \" + e.printedIssueDate + \", gültig bis \" + e.printedValidThrough);\n  else if (e.printedValidThrough) parts.push(\"Gültig bis \" + e.printedValidThrough);\n  else if (e.printedDate && e.printedPeriod) parts.push(\"Datiert \" + e.printedDate + \", \" + e.printedPeriod);\n  else if (e.issued) parts.push(\"Ausgestellt \" + 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 = 'de'; 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) + ' von ' + n : '', curLabel: cur ? cur.label : '',\n      zoomLabel: zoom ? 'Einpassen' : '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', 'Startseite', '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/de/assets/about-us-data.js"
  ],
  "locale": "de"
}
