{
  "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=\"Sobre a Kairali – The Ayurvedic Healing Village: hospital ayurvédico acreditado pela NABH em Palakkad, Kerala, com tratamentos orientados por médicos.\">\n<link rel=\"canonical\" href=\"https://ayurvedichealingvillage.com/pt/about-us/\">\n<meta name=\"robots\" content=\"noindex, nofollow\">\n<meta property=\"og:locale\" content=\"pt_PT\">\n<meta property=\"og:type\" content=\"article\">\n<meta property=\"og:title\" content=\"Sobre nós\">\n<meta property=\"og:description\" content=\"Sobre a Kairali – The Ayurvedic Healing Village: hospital ayurvédico acreditado pela NABH em Palakkad, Kerala, com tratamentos orientados por médicos.\">\n<meta property=\"og:url\" content=\"https://ayurvedichealingvillage.com/pt/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/pt/about-us/\",\"url\":\"https://ayurvedichealingvillage.com/pt/about-us/\",\"name\":\"Kairali - The Ayurvedic Healing Village\",\"description\":\"Sobre a Kairali – The Ayurvedic Healing Village: hospital ayurvédico acreditado pela NABH em Palakkad, Kerala, com tratamentos orientados por médicos.\",\"isPartOf\":{\"@id\":\"https://ayurvedichealingvillage.com/pt/#website\"},\"inLanguage\":\"pt\",\"breadcrumb\":{\"@id\":\"https://ayurvedichealingvillage.com/pt/about-us/#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://ayurvedichealingvillage.com/pt/about-us/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Início\",\"item\":\"https://ayurvedichealingvillage.com/pt/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Sobre nós\",\"item\":\"https://ayurvedichealingvillage.com/pt/about-us/\"}]},{\"@type\":\"WebSite\",\"@id\":\"https://ayurvedichealingvillage.com/pt/#website\",\"url\":\"https://ayurvedichealingvillage.com/pt/\",\"name\":\"Kairali — The Ayurvedic Healing Village\",\"inLanguage\":\"pt\"}]}\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\">Ir para o conteúdo principal</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=\"Navegação estrutural\" 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/pt/\" onClick=\"{{ guard }}\" style=\"display:inline-flex;align-items:center;min-height:44px;min-width:44px\">Início</a><span aria-hidden=\"true\">/</span><span aria-current=\"page\" style=\"color:#2A2118;display:inline-flex;align-items:center;min-height:44px\">Sobre nós</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 · Desde 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\">Sobre nós</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=\"Vista aérea de arrozais e coqueiros na zona rural de Kerala, em redor do hospital\" 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=\"Caminho de pedra que serpenteia por jardins cultivados até um edifício com telhado de telha, entre palmeiras\" 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\">O melhor retiro ayurvédico da Ásia desde 1999</strong><span style=\"display:block;margin-top:12px;font-size:15.5px;line-height:1.6;color:#514A3F\">A Kairali-The Ayurvedic Healing Village, em Palakkad, Kerala, é um espaço holístico único no seu género, que oferece terapias ayurvédicas tradicionais e autênticas.</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 sentada nos jardins da 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\">Uma carta de K.V. Ramesh</h2><p style=\"font-size:18px;line-height:1.8;margin:0 0 20px\"><strong>Caros amigos, </strong></p><p style=\"font-size:18px;line-height:1.8;margin:0 0 20px\">Saudações da Kairali – The Ayurvedic Healing Village, um refúgio onde o conhecimento intemporal do Ayurveda se alia às necessidades da vida contemporânea. É com grande prazer que apresento os valores fundamentais da Kairali: o compromisso com o bem-estar holístico, a terapia ayurvédica genuína e o progresso da humanidade.</p><p style=\"font-size:18px;line-height:1.8;margin:0 0 20px\">A minha visão para o Kairali Ayurvedic Group sempre assentou firmemente na ciência milenar do Ayurveda, que considero o melhor caminho para a harmonia e a saúde. Tendo crescido numa família imersa nas tradições ayurvédicas, testemunhei pessoalmente a influência significativa que o Ayurveda tem na vida das pessoas. Foi isso que me motivou a dedicar a minha vida a proteger este legado inestimável e a apresentá-lo ao mundo. </p><p style=\"font-size:18px;line-height:1.8;margin:0 0 20px\">A autenticidade e a excelência sempre foram os pilares da Kairali. Essa ideia está refletida na Kairali – The Ayurvedic Healing Village. Das terapias e tratamentos ao ambiente tranquilo e ecológico, cada elemento deste centro foi pensado para oferecer uma experiência ayurvédica plenamente imersiva. Aqui, criamos um santuário onde os visitantes podem encontrar tranquilidade, renovação e equilíbrio, aliando costumes tradicionais a padrões contemporâneos de hospitalidade.</p><p style=\"font-size:18px;line-height:1.8;margin:0 0 20px\">O nosso objetivo vai além de prestar cuidados ayurvédicos. Trata-se de incentivar um modo de vida que valorize o bem-estar mental, espiritual e físico. Procuramos ajudar os nossos pacientes a viver vidas melhores e mais plenas através das nossas terapias personalizadas, dietas terapêuticas, aulas de ioga e técnicas de meditação. </p><p style=\"font-size:18px;line-height:1.8;margin:0 0 20px\">Embora o Kairali Ayurvedic Group se tenha tornado uma marca conhecida mundialmente ao longo dos anos, os nossos princípios não mudaram. Estamos aqui para atuar como guardiões do Ayurveda, oferecendo os seus benefícios terapêuticos a quem os procura e preservando a integridade que consolidou a nossa reputação como autoridade de referência em saúde holística.</p><p style=\"font-size:18px;line-height:1.8;margin:0 0 20px\">A todos os que visitam a Kairali – The Ayurvedic Healing Village, expresso a minha sincera gratidão. A confiança que depositam no Ayurveda e na Kairali é o que nos motiva a inovar e a melhorar continuamente. Convido todos a iniciar este processo transformador de autodescoberta, restabelecimento e regeneração, guiado pelos princípios intemporais do Ayurveda. </p><p style=\"font-size:18px;line-height:1.8;margin:0 0 20px\">Juntos, construamos um mundo mais saudável e mais feliz.<br><br>Cordialmente,<br><strong>K.V. Ramesh<br></strong>Diretor-Geral, 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=\"Um homem de smoking recebe um troféu dourado nos Spa Awards, desde 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\">Ver<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=\"Fechar documento\" 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=\"Imagem do documento. Role ou arraste para explorar em tamanho real\" 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=\"Documento anterior\" 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>Anterior</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=\"Documento seguinte\" 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\">Próximo<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(\"N.º \" + e.number);\n  if (e.order) parts.push(\"Ordem \" + e.order);\n  if (e.printedValidFrom && e.printedValidThrough) parts.push(\"Válido \" + e.printedValidFrom + \" até \" + e.printedValidThrough);\n  else if (e.printedIssueDate && e.printedValidThrough) parts.push(\"Emitido em \" + e.printedIssueDate + \", válido até \" + e.printedValidThrough);\n  else if (e.printedValidThrough) parts.push(\"Válido até \" + e.printedValidThrough);\n  else if (e.printedDate && e.printedPeriod) parts.push(\"Datado de \" + e.printedDate + \", \" + e.printedPeriod);\n  else if (e.issued) parts.push(\"Emitido em \" + 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 = 'pt'; 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: 'Ampliar', 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) + ' de ' + n : '', curLabel: cur ? cur.label : '',\n      zoomLabel: zoom ? 'Ajustar' : 'Ampliar', 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', 'Início', '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/pt/assets/about-us-data.js"
  ],
  "locale": "pt"
}
