{
  "id": "ahv-page-enquiry-mobile",
  "file": "AHV Page Enquiry Mobile.dc.html",
  "sourceSha256": "66408b13b22aa62a96b4845b135bf3ee53291b9bad16003c9ed922fda3c0397f",
  "variant": "mobile",
  "template": "\n<helmet>\n<link href=\"/ahv/fonts/ahv-33eeac48ab44.css\" rel=\"stylesheet\">\n\n\n<style>\nbody{margin:0;background:#F7F4EA;color:#2A2118;font-family:'Mulish',sans-serif;font-size:18px;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)}\nh1,h2,h3,h4{font-weight:400;margin:0}\ninput,select,textarea,button{font-family:'Mulish',sans-serif;font-size:17px;color:#2A2118}\ninput[type=text],input[type=tel],input[type=email],input[type=date],input[type=number],select,textarea{width:100%;box-sizing:border-box;min-height:48px;padding:10px 14px;border:1px solid #75695A;border-radius:4px;background:#fff}\ntextarea{min-height:110px;resize:vertical}\ninput[aria-invalid=true],textarea[aria-invalid=true]{border-color:#A32D2D;border-width:2px}\ninput[type=checkbox],input[type=radio]{width:24px;height:24px;margin:0;accent-color:#5A4420;flex:none}\ninput[type=file]{min-height:48px;padding:10px 0;width:100%;max-width:100%;box-sizing:border-box;display:block}\nfieldset,form>div{min-width:0}\nsummary::-webkit-details-marker{display:none}\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<link rel=\"icon\" href=\"/ahv/assets/img/logo_color-da22eb.svg\" sizes=\"192x192\">\n</helmet>\n<div data-screen-label=\"Enquiry family — 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\">Aller au contenu 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\" style=\"display:flow-root\">\n\n<section style=\"width:min(1220px,94%);margin:0 auto;padding:20px 0 22px\">\n  <sc-if value=\"{{ showBreadcrumb }}\" hint-placeholder-val=\"{{ true }}\"><nav aria-label=\"Fil d'Ariane\" style=\"font-size:15px;color:#75695A;display:flex;flex-wrap:wrap;gap:0 8px;align-items:center;line-height:1.4\">\n    <sc-for list=\"{{ crumbs }}\" as=\"c\" hint-placeholder-count=\"2\"><a href=\"{{ c.url }}\" onClick=\"{{ guard }}\" style=\"display:inline-flex;align-items:center;min-height:44px;min-width:44px\">{{ c.label }}</a><span aria-hidden=\"true\">/</span></sc-for>\n    <span aria-current=\"page\" style=\"color:#2A2118;display:inline-flex;align-items:center;min-height:44px\">{{ crumbLast }}</span>\n  </nav></sc-if>\n  <div style=\"padding-top:6px\">\n    <div style=\"font-weight:700;font-size:12.5px;letter-spacing:2.6px;color:#8F6212;text-transform:uppercase\">Kairali — The Ayurvedic Healing Village · Depuis 1908</div>\n    <h1 id=\"page-h1\" style=\"font-family:'Marcellus',serif;font-size:clamp(30px,9vw,38px);line-height:1.12;margin:10px 0 0;text-wrap:balance\">{{ h1 }}</h1>\n  </div>\n</section>\n<div style=\"width:min(1220px,94%);margin:0 auto\">\n  <sc-if value=\"{{ heroGarden }}\" hint-placeholder-val=\"{{ false }}\"><img src=\"/ahv/assets/img/AHV-Enquiry-Garden-Banner.webp\" alt=\"\" width=\"1440\" height=\"459\" style=\"width:100%;max-width:1440px;height:auto;display:block;border-radius:4px\"></sc-if>\n  <sc-if value=\"{{ heroResume }}\" hint-placeholder-val=\"{{ false }}\"><img src=\"/ahv/assets/img/AHV-Enquiry-Resume-Clipboard.webp\" alt=\"Un formulaire vierge sur un porte-bloc, tenu en main pendant qu’il est rempli\" width=\"1500\" height=\"500\" style=\"width:100%;max-width:1500px;height:auto;display:block;border-radius:4px\"></sc-if>\n  <sc-if value=\"{{ heroLegacy }}\" hint-placeholder-val=\"{{ false }}\">\n    <div style=\"position:relative;border-radius:4px;overflow:hidden;background:#484b27\">\n      {{ heroLegacyEl }}\n      {{ legacyLotusEl }}\n    </div>\n  </sc-if>\n</div>\n\n<sc-if value=\"{{ isLegacyContact }}\" hint-placeholder-val=\"{{ false }}\">\n<div data-variant=\"legacy-contact\" style=\"width:min(1220px,94%);margin:0 auto;padding:26px 0 56px\">\n  <p style=\"margin:0 0 30px;font-size:17.5px;line-height:1.75;max-width:78ch;text-wrap:pretty\">{{ L.intro }}</p>\n  <div role=\"tablist\" aria-label=\"Anciennes sections de contact\" style=\"display:flex;flex-wrap:wrap;gap:10px;border-bottom:1px solid #D8CFBD;padding-bottom:14px;margin-bottom:26px\">\n    <sc-for list=\"{{ lcTabs }}\" as=\"t\" hint-placeholder-count=\"3\">\n      <button type=\"button\" role=\"tab\" id=\"{{ t.id }}\" aria-selected=\"{{ t.selected }}\" aria-controls=\"{{ t.panelId }}\" tabIndex=\"{{ t.tabIndex }}\" data-tab-index=\"{{ t.index }}\" onClick=\"{{ t.select }}\" onKeyDown=\"{{ lcTabKey }}\" style=\"min-height:48px;padding:12px 20px;border:1px solid #5A4420;border-radius:4px;background:{{ t.bg }};color:{{ t.fg }};font-family:'Marcellus',serif;font-size:17px;cursor:pointer\">{{ t.title }}</button>\n    </sc-for>\n  </div>\n\n  <div role=\"tabpanel\" id=\"lc-panel-contact\" aria-labelledby=\"lc-tab-contact\" tabIndex=\"0\" hidden=\"{{ lcHide0 }}\" style=\"display:{{ lcShow0 }};grid-template-columns:1fr;gap:20px\">\n    <div style=\"min-width:0;display:flex;flex-direction:column;gap:16px\">\n      <sc-for list=\"{{ lcDetails }}\" as=\"b\" hint-placeholder-count=\"8\">\n        <div style=\"min-width:0\">\n          <sc-if value=\"{{ b.isH3 }}\" hint-placeholder-val=\"{{ false }}\"><h3 style=\"font-family:'Marcellus',serif;font-size:24px;line-height:1.25;margin:10px 0 2px;color:#5A4420\">{{ b.text }}</h3></sc-if>\n          <sc-if value=\"{{ b.isPair }}\" hint-placeholder-val=\"{{ true }}\">\n            <div style=\"display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline\">\n              <span style=\"font-weight:700;font-size:17px;color:#5A4420\">{{ b.label }}</span>\n              <span style=\"min-width:0;font-size:17px;line-height:1.65\">\n                <sc-for list=\"{{ b.lines }}\" as=\"l\" hint-placeholder-count=\"1\"><span style=\"display:block\">{{ l.text }} </span></sc-for>\n                <sc-if value=\"{{ b.hasEmail }}\" hint-placeholder-val=\"{{ false }}\"><a href=\"{{ b.href }}\" onClick=\"{{ guard }}\" data-recovered-email=\"true\">{{ b.email }}</a></sc-if>\n                <sc-if value=\"{{ b.hasPhone }}\" hint-placeholder-val=\"{{ false }}\"><a href=\"{{ b.href }}\" onClick=\"{{ guard }}\">{{ b.phone }}</a>{{ b.suffix }}</sc-if>\n              </span>\n            </div>\n          </sc-if>\n        </div>\n      </sc-for>\n    </div>\n    <div style=\"min-width:0;border:1px solid #D8CFBD;border-radius:4px;background:#EFE9DA;padding:20px;display:flex;flex-direction:column;gap:8px\">\n      <p style=\"margin:0;font-weight:700;font-size:16.5px\">{{ L.details.map.title }}</p>\n      <p style=\"margin:0;font-size:15.5px;line-height:1.6;color:#514a3f\">{{ L.details.map.notLoaded }}</p>\n    </div>\n  </div>\n\n  <div role=\"tabpanel\" id=\"lc-panel-write\" aria-labelledby=\"lc-tab-write\" tabIndex=\"0\" hidden=\"{{ lcHide1 }}\" style=\"display:{{ lcShow1 }}\">\n    <form id=\"lc-write-form\" noValidate=\"{{ true }}\" onSubmit=\"{{ lcWriteSubmit }}\" data-source-action=\"{{ L.write.sourceAction }}\" data-source-form=\"{{ L.write.formTabId }}\" style=\"max-width:none;display:flex;flex-direction:column;gap:16px\">\n      <div style=\"display:none\" aria-hidden=\"true\"><sc-for list=\"{{ lcWriteHidden }}\" as=\"h\" hint-placeholder-count=\"13\"><input type=\"hidden\" name=\"{{ h.name }}\" value=\"\"></sc-for></div>\n      <sc-for list=\"{{ lcWriteFields }}\" as=\"f\" hint-placeholder-count=\"6\">\n        <div style=\"min-width:0\">\n          <sc-if value=\"{{ f.isText }}\" hint-placeholder-val=\"{{ true }}\">\n            <label for=\"{{ f.id }}\" style=\"display:block;font-weight:700;font-size:15.5px;margin-bottom:6px\">{{ f.label }} <sc-if value=\"{{ f.star }}\" hint-placeholder-val=\"{{ false }}\"><span aria-hidden=\"true\" style=\"color:#A32D2D\">*</span></sc-if></label>\n            <input id=\"{{ f.id }}\" name=\"{{ f.name }}\" type=\"{{ f.type }}\" placeholder=\"{{ f.placeholder }}\" required=\"{{ f.htmlRequired }}\" autocomplete=\"{{ f.autocomplete }}\" aria-required=\"{{ f.ariaRequired }}\" min=\"{{ f.min }}\" max=\"{{ f.max }}\" maxLength=\"{{ f.maxLength }}\" aria-describedby=\"{{ f.describedBy }}\" data-source-class=\"{{ f.sourceClass }}\" data-source-pointer=\"{{ f.pointer }}\">\n          </sc-if>\n          <sc-if value=\"{{ f.isTextarea }}\" hint-placeholder-val=\"{{ false }}\">\n            <label for=\"{{ f.id }}\" style=\"display:block;font-weight:700;font-size:15.5px;margin-bottom:6px\">{{ f.label }} <sc-if value=\"{{ f.star }}\" hint-placeholder-val=\"{{ false }}\"><span aria-hidden=\"true\" style=\"color:#A32D2D\">*</span></sc-if></label>\n            <textarea id=\"{{ f.id }}\" name=\"{{ f.name }}\" autocomplete=\"{{ f.autocomplete }}\" rows=\"{{ f.rows }}\" placeholder=\"{{ f.placeholder }}\" aria-required=\"{{ f.ariaRequired }}\" maxLength=\"{{ f.maxLength }}\" data-source-pointer=\"{{ f.pointer }}\"></textarea>\n          </sc-if>\n          <sc-if value=\"{{ f.isSelect }}\" hint-placeholder-val=\"{{ false }}\">\n            <label for=\"{{ f.id }}\" style=\"display:block;font-weight:700;font-size:15.5px;margin-bottom:6px\">{{ f.label }} <sc-if value=\"{{ f.star }}\" hint-placeholder-val=\"{{ false }}\"><span aria-hidden=\"true\" style=\"color:#A32D2D\">*</span></sc-if></label>\n            <select id=\"{{ f.id }}\" name=\"{{ f.name }}\" aria-required=\"{{ f.ariaRequired }}\" disabled=\"{{ f.disabled }}\" aria-describedby=\"{{ f.noteId }}\" data-source-pointer=\"{{ f.pointer }}\">\n              <sc-for list=\"{{ f.options }}\" as=\"o\" hint-placeholder-count=\"4\"><option value=\"{{ o.value }}\" disabled=\"{{ o.disabled }}\">{{ o.label }}</option></sc-for>\n            </select>\n            <sc-if value=\"{{ f.hasNote }}\" hint-placeholder-val=\"{{ false }}\"><p id=\"{{ f.noteId }}\" style=\"margin:6px 0 0;font-size:14.5px;line-height:1.5;color:#75695A\">{{ f.note }}</p></sc-if>\n          </sc-if>\n          <sc-if value=\"{{ f.isRadio }}\" hint-placeholder-val=\"{{ false }}\">\n            <fieldset style=\"border:1px solid #D8CFBD;border-radius:4px;padding:12px 14px;margin:0\">\n              <legend style=\"font-weight:700;font-size:15.5px;padding:0 6px\">{{ f.label }} <sc-if value=\"{{ f.star }}\" hint-placeholder-val=\"{{ false }}\"><span aria-hidden=\"true\" style=\"color:#A32D2D\">*</span></sc-if></legend>\n              <div style=\"display:flex;flex-wrap:wrap;gap:8px 18px\">\n                <sc-for list=\"{{ f.options }}\" as=\"o\" hint-placeholder-count=\"2\">\n                  <label for=\"{{ o.id }}\" style=\"display:inline-flex;align-items:center;gap:10px;min-height:44px;font-size:16.5px\"><input id=\"{{ o.id }}\" type=\"radio\" name=\"{{ f.name }}\" value=\"{{ o.value }}\" defaultChecked=\"{{ o.checked }}\">{{ o.label }}</label>\n                </sc-for>\n              </div>\n            </fieldset>\n          </sc-if>\n          <sc-if value=\"{{ f.isCheckbox }}\" hint-placeholder-val=\"{{ false }}\">\n            <fieldset style=\"border:1px solid #D8CFBD;border-radius:4px;padding:12px 14px;margin:0\">\n              <legend style=\"font-weight:700;font-size:15.5px;padding:0 6px\">{{ f.label }} <sc-if value=\"{{ f.star }}\" hint-placeholder-val=\"{{ false }}\"><span aria-hidden=\"true\" style=\"color:#A32D2D\">*</span></sc-if></legend>\n              <div style=\"display:flex;flex-wrap:wrap;gap:8px 18px\">\n                <sc-for list=\"{{ f.options }}\" as=\"o\" hint-placeholder-count=\"3\">\n                  <label for=\"{{ o.id }}\" style=\"display:inline-flex;align-items:center;gap:10px;min-height:44px;font-size:16.5px\"><input id=\"{{ o.id }}\" type=\"checkbox\" name=\"{{ f.name }}\" value=\"{{ o.value }}\">{{ o.label }}</label>\n                </sc-for>\n              </div>\n            </fieldset>\n          </sc-if>\n          <sc-if value=\"{{ f.isFile }}\" hint-placeholder-val=\"{{ false }}\">\n            <label for=\"{{ f.id }}\" style=\"display:block;font-weight:700;font-size:15.5px;margin-bottom:6px\">{{ f.label }}</label>\n            <input id=\"{{ f.id }}\" name=\"{{ f.name }}\" type=\"file\" accept=\"{{ f.accept }}\" onChange=\"{{ noFile }}\" aria-describedby=\"{{ f.noteId }}\" data-source-pointer=\"{{ f.pointer }}\">\n            <p id=\"{{ f.noteId }}\" style=\"margin:6px 0 0;font-size:14.5px;line-height:1.5;color:#75695A\">{{ f.note }}</p>\n          </sc-if>\n          <sc-if value=\"{{ f.isSubmit }}\" hint-placeholder-val=\"{{ false }}\">\n            <button type=\"submit\" id=\"{{ f.id }}\" style=\"display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 30px;background:#5A4420;color:#F7F4EA;border:0;border-radius:4px;font-weight:700;font-size:16px;cursor:pointer\">{{ f.label }}</button>\n          </sc-if>\n        </div>\n      </sc-for>\n      <p aria-live=\"polite\" style=\"margin:0;font-size:15.5px;line-height:1.6;color:#514a3f\">{{ lcWriteNotice }}</p>\n    </form>\n  </div>\n\n  <div role=\"tabpanel\" id=\"lc-panel-consult\" aria-labelledby=\"lc-tab-consult\" tabIndex=\"0\" hidden=\"{{ lcHide2 }}\" style=\"display:{{ lcShow2 }}\">\n    <form id=\"lc-consult-form\" noValidate=\"{{ true }}\" onSubmit=\"{{ lcConsultSubmit }}\" data-source-action=\"{{ L.consult.sourceAction }}\" data-source-form=\"{{ L.consult.formTabId }}\" data-source-enctype=\"{{ L.consult.enctype }}\" style=\"max-width:none;display:flex;flex-direction:column;gap:16px\">\n      <div style=\"display:none\" aria-hidden=\"true\"><sc-for list=\"{{ lcConsultHidden }}\" as=\"h\" hint-placeholder-count=\"13\"><input type=\"hidden\" name=\"{{ h.name }}\" value=\"\"></sc-for></div>\n      {{ lcStepImageEl }}\n      <p aria-live=\"polite\" style=\"margin:0;font-size:15.5px;color:#514a3f\">{{ lcStepStatus }}</p>\n      <div id=\"lc-consult-step\" role=\"group\" aria-label=\"{{ lcStepStatus }}\" tabIndex=\"-1\" style=\"display:flex;flex-direction:column;gap:16px\">\n      <sc-for list=\"{{ lcStepFields }}\" as=\"f\" hint-placeholder-count=\"6\">\n        <div style=\"min-width:0\">\n          <sc-if value=\"{{ f.isText }}\" hint-placeholder-val=\"{{ true }}\">\n            <label for=\"{{ f.id }}\" style=\"display:block;font-weight:700;font-size:15.5px;margin-bottom:6px\">{{ f.label }} <sc-if value=\"{{ f.star }}\" hint-placeholder-val=\"{{ false }}\"><span aria-hidden=\"true\" style=\"color:#A32D2D\">*</span></sc-if></label>\n            <input id=\"{{ f.id }}\" name=\"{{ f.name }}\" type=\"{{ f.type }}\" placeholder=\"{{ f.placeholder }}\" required=\"{{ f.htmlRequired }}\" autocomplete=\"{{ f.autocomplete }}\" aria-required=\"{{ f.ariaRequired }}\" min=\"{{ f.min }}\" max=\"{{ f.max }}\" maxLength=\"{{ f.maxLength }}\" aria-describedby=\"{{ f.describedBy }}\" data-source-class=\"{{ f.sourceClass }}\" data-source-pointer=\"{{ f.pointer }}\">\n          </sc-if>\n          <sc-if value=\"{{ f.isTextarea }}\" hint-placeholder-val=\"{{ false }}\">\n            <label for=\"{{ f.id }}\" style=\"display:block;font-weight:700;font-size:15.5px;margin-bottom:6px\">{{ f.label }} <sc-if value=\"{{ f.star }}\" hint-placeholder-val=\"{{ false }}\"><span aria-hidden=\"true\" style=\"color:#A32D2D\">*</span></sc-if></label>\n            <textarea id=\"{{ f.id }}\" name=\"{{ f.name }}\" autocomplete=\"{{ f.autocomplete }}\" rows=\"{{ f.rows }}\" placeholder=\"{{ f.placeholder }}\" aria-required=\"{{ f.ariaRequired }}\" maxLength=\"{{ f.maxLength }}\" data-source-pointer=\"{{ f.pointer }}\"></textarea>\n          </sc-if>\n          <sc-if value=\"{{ f.isSelect }}\" hint-placeholder-val=\"{{ false }}\">\n            <label for=\"{{ f.id }}\" style=\"display:block;font-weight:700;font-size:15.5px;margin-bottom:6px\">{{ f.label }} <sc-if value=\"{{ f.star }}\" hint-placeholder-val=\"{{ false }}\"><span aria-hidden=\"true\" style=\"color:#A32D2D\">*</span></sc-if></label>\n            <select id=\"{{ f.id }}\" name=\"{{ f.name }}\" aria-required=\"{{ f.ariaRequired }}\" disabled=\"{{ f.disabled }}\" aria-describedby=\"{{ f.noteId }}\" data-source-pointer=\"{{ f.pointer }}\">\n              <sc-for list=\"{{ f.options }}\" as=\"o\" hint-placeholder-count=\"4\"><option value=\"{{ o.value }}\" disabled=\"{{ o.disabled }}\">{{ o.label }}</option></sc-for>\n            </select>\n            <sc-if value=\"{{ f.hasNote }}\" hint-placeholder-val=\"{{ false }}\"><p id=\"{{ f.noteId }}\" style=\"margin:6px 0 0;font-size:14.5px;line-height:1.5;color:#75695A\">{{ f.note }}</p></sc-if>\n          </sc-if>\n          <sc-if value=\"{{ f.isRadio }}\" hint-placeholder-val=\"{{ false }}\">\n            <fieldset style=\"border:1px solid #D8CFBD;border-radius:4px;padding:12px 14px;margin:0\">\n              <legend style=\"font-weight:700;font-size:15.5px;padding:0 6px\">{{ f.label }} <sc-if value=\"{{ f.star }}\" hint-placeholder-val=\"{{ false }}\"><span aria-hidden=\"true\" style=\"color:#A32D2D\">*</span></sc-if></legend>\n              <div style=\"display:flex;flex-wrap:wrap;gap:8px 18px\">\n                <sc-for list=\"{{ f.options }}\" as=\"o\" hint-placeholder-count=\"2\">\n                  <label for=\"{{ o.id }}\" style=\"display:inline-flex;align-items:center;gap:10px;min-height:44px;font-size:16.5px\"><input id=\"{{ o.id }}\" type=\"radio\" name=\"{{ f.name }}\" value=\"{{ o.value }}\" defaultChecked=\"{{ o.checked }}\">{{ o.label }}</label>\n                </sc-for>\n              </div>\n            </fieldset>\n          </sc-if>\n          <sc-if value=\"{{ f.isCheckbox }}\" hint-placeholder-val=\"{{ false }}\">\n            <fieldset style=\"border:1px solid #D8CFBD;border-radius:4px;padding:12px 14px;margin:0\">\n              <legend style=\"font-weight:700;font-size:15.5px;padding:0 6px\">{{ f.label }} <sc-if value=\"{{ f.star }}\" hint-placeholder-val=\"{{ false }}\"><span aria-hidden=\"true\" style=\"color:#A32D2D\">*</span></sc-if></legend>\n              <div style=\"display:flex;flex-wrap:wrap;gap:8px 18px\">\n                <sc-for list=\"{{ f.options }}\" as=\"o\" hint-placeholder-count=\"3\">\n                  <label for=\"{{ o.id }}\" style=\"display:inline-flex;align-items:center;gap:10px;min-height:44px;font-size:16.5px\"><input id=\"{{ o.id }}\" type=\"checkbox\" name=\"{{ f.name }}\" value=\"{{ o.value }}\">{{ o.label }}</label>\n                </sc-for>\n              </div>\n            </fieldset>\n          </sc-if>\n          <sc-if value=\"{{ f.isFile }}\" hint-placeholder-val=\"{{ false }}\">\n            <label for=\"{{ f.id }}\" style=\"display:block;font-weight:700;font-size:15.5px;margin-bottom:6px\">{{ f.label }}</label>\n            <input id=\"{{ f.id }}\" name=\"{{ f.name }}\" type=\"file\" accept=\"{{ f.accept }}\" onChange=\"{{ noFile }}\" aria-describedby=\"{{ f.noteId }}\" data-source-pointer=\"{{ f.pointer }}\">\n            <p id=\"{{ f.noteId }}\" style=\"margin:6px 0 0;font-size:14.5px;line-height:1.5;color:#75695A\">{{ f.note }}</p>\n          </sc-if>\n          <sc-if value=\"{{ f.isSubmit }}\" hint-placeholder-val=\"{{ false }}\">\n            <button type=\"submit\" id=\"{{ f.id }}\" style=\"display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 30px;background:#5A4420;color:#F7F4EA;border:0;border-radius:4px;font-weight:700;font-size:16px;cursor:pointer\">{{ f.label }}</button>\n          </sc-if>\n        </div>\n      </sc-for>\n      </div>\n      <div style=\"display:flex;flex-wrap:wrap;gap:12px\">\n        <sc-for list=\"{{ lcStepNav }}\" as=\"n\" hint-placeholder-count=\"2\">\n          <button type=\"button\" id=\"{{ n.id }}\" name=\"{{ n.name }}\" onClick=\"{{ n.act }}\" aria-label=\"{{ n.aria }}\" style=\"display:inline-flex;align-items:center;justify-content:center;min-height:52px;min-width:52px;padding:0 26px;background:{{ n.bg }};color:{{ n.fg }};border:2px solid #5A4420;border-radius:4px;font-weight:700;font-size:16px;cursor:pointer\">{{ n.label }}</button>\n        </sc-for>\n      </div>\n      <p aria-live=\"polite\" style=\"margin:0;font-size:15.5px;line-height:1.6;color:#514a3f\">{{ lcConsultNotice }}</p>\n    </form>\n  </div>\n</div>\n</sc-if>\n\n<sc-if value=\"{{ isLegacyEnquiry }}\" hint-placeholder-val=\"{{ false }}\">\n<div data-variant=\"legacy-enquiry\" style=\"width:min(1220px,94%);margin:0 auto;padding:26px 0 56px\">\n  <sc-if value=\"{{ leHasH2 }}\" hint-placeholder-val=\"{{ false }}\"><h2 style=\"font-family:'Marcellus',serif;font-size:26px;line-height:1.2;margin:0 0 14px\">{{ L.h2 }}</h2></sc-if>\n  <sc-if value=\"{{ leHasIntro }}\" hint-placeholder-val=\"{{ true }}\"><p style=\"margin:0 0 30px;font-size:17.5px;line-height:1.75;max-width:78ch;text-wrap:pretty\">{{ L.intro }}</p></sc-if>\n  <sc-if value=\"{{ leHasSkipLink }}\" hint-placeholder-val=\"{{ false }}\">\n  <a href=\"{{ leSkip.href }}\" onClick=\"{{ leSkipTo }}\" data-source-pointer=\"{{ leSkip.ptr }}\" data-source-href=\"{{ leSkip.sourceHref }}\" data-source-class=\"skip\" style=\"position:absolute;width:1px;height:1px;padding:0;margin:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap\" style-focus=\"position:static;width:auto;height:auto;clip-path:none;overflow:visible;display:inline-flex;align-items:center;min-height:48px;padding:0 20px;margin:0 0 18px;background:#5A4420;color:#F7F4EA;border-radius:4px;font-weight:700;font-size:16.5px;text-decoration:underline\">{{ leSkip.text }}</a>\n  </sc-if>\n  <sc-if value=\"{{ leHasBody }}\" hint-placeholder-val=\"{{ false }}\">\n  <div data-source-body=\"true\" style=\"margin:0 0 30px\">{{ leBodyEl }}</div>\n  </sc-if>\n  <sc-if value=\"{{ leHasContextNav }}\" hint-placeholder-val=\"{{ false }}\">\n  <nav aria-labelledby=\"le-ctx-h\" data-context-nav=\"true\" style=\"margin:0 0 30px;border:1px solid #E0D7C4;border-radius:4px;background:#fff;padding:20px 22px\">\n    <h2 id=\"le-ctx-h\" data-source-pointer=\"{{ leCtx.headingPtr }}\" style=\"font-family:'Marcellus',serif;font-size:24px;line-height:1.25;margin:0 0 12px;color:#5A4420\">{{ leCtx.heading }}</h2>\n    <ul style=\"list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:18px 40px\">\n      <sc-for list=\"{{ leCtxGroups }}\" as=\"g\" hint-placeholder-count=\"4\">\n        <li style=\"min-width:0;flex:1 1 240px\">\n          <h3 data-source-pointer=\"{{ g.ptr }}\" style=\"font-family:'Mulish',sans-serif;font-weight:700;font-size:16.5px;margin:0 0 6px\">{{ g.title }}</h3>\n          <ul style=\"list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px\">\n            <sc-for list=\"{{ g.links }}\" as=\"l\" hint-placeholder-count=\"4\">\n              <li style=\"min-width:0\"><a href=\"{{ l.url }}\" onClick=\"{{ guard }}\" data-source-pointer=\"{{ l.ptr }}\" style=\"display:flex;align-items:center;min-height:44px;font-size:16px;line-height:1.45\">{{ l.icon }}{{ l.label }}</a></li>\n            </sc-for>\n          </ul>\n        </li>\n      </sc-for>\n    </ul>\n  </nav>\n  </sc-if>\n  <form id=\"le-form\" tabindex=\"-1\" noValidate=\"{{ true }}\" onSubmit=\"{{ leSubmit }}\" data-source-action=\"{{ L.enquiry.sourceAction }}\" data-source-form=\"{{ L.enquiry.formTabId }}\" style=\"max-width:none;display:flex;flex-direction:column;gap:16px\">\n    <div style=\"display:none\" aria-hidden=\"true\"><sc-for list=\"{{ leHidden }}\" as=\"h\" hint-placeholder-count=\"13\"><input type=\"hidden\" name=\"{{ h.name }}\" value=\"\"></sc-for></div>\n    <sc-if value=\"{{ leHasSteps }}\" hint-placeholder-val=\"{{ false }}\">\n      <div id=\"le-step\" tabindex=\"-1\" role=\"status\" aria-live=\"polite\" style=\"font-weight:700;font-size:15.5px;color:#5A4420;outline-offset:2px\">{{ leStepStatus }}</div>\n      <sc-if value=\"{{ leHasStepImage }}\" hint-placeholder-val=\"{{ false }}\">{{ leStepImageEl }}</sc-if>\n    </sc-if>\n      <sc-for list=\"{{ leFields }}\" as=\"f\" hint-placeholder-count=\"6\">\n        <div style=\"min-width:0\">\n          <sc-if value=\"{{ f.isText }}\" hint-placeholder-val=\"{{ true }}\">\n            <label for=\"{{ f.id }}\" style=\"display:block;font-weight:700;font-size:15.5px;margin-bottom:6px\">{{ f.label }} <sc-if value=\"{{ f.star }}\" hint-placeholder-val=\"{{ false }}\"><span aria-hidden=\"true\" style=\"color:#A32D2D\">*</span></sc-if></label>\n            <input id=\"{{ f.id }}\" name=\"{{ f.name }}\" type=\"{{ f.type }}\" placeholder=\"{{ f.placeholder }}\" required=\"{{ f.htmlRequired }}\" autocomplete=\"{{ f.autocomplete }}\" aria-required=\"{{ f.ariaRequired }}\" min=\"{{ f.min }}\" max=\"{{ f.max }}\" maxLength=\"{{ f.maxLength }}\" aria-describedby=\"{{ f.describedBy }}\" data-source-class=\"{{ f.sourceClass }}\" data-source-pointer=\"{{ f.pointer }}\">\n          </sc-if>\n          <sc-if value=\"{{ f.isTextarea }}\" hint-placeholder-val=\"{{ false }}\">\n            <label for=\"{{ f.id }}\" style=\"display:block;font-weight:700;font-size:15.5px;margin-bottom:6px\">{{ f.label }} <sc-if value=\"{{ f.star }}\" hint-placeholder-val=\"{{ false }}\"><span aria-hidden=\"true\" style=\"color:#A32D2D\">*</span></sc-if></label>\n            <textarea id=\"{{ f.id }}\" name=\"{{ f.name }}\" autocomplete=\"{{ f.autocomplete }}\" rows=\"{{ f.rows }}\" placeholder=\"{{ f.placeholder }}\" aria-required=\"{{ f.ariaRequired }}\" maxLength=\"{{ f.maxLength }}\" data-source-pointer=\"{{ f.pointer }}\"></textarea>\n          </sc-if>\n          <sc-if value=\"{{ f.isSelect }}\" hint-placeholder-val=\"{{ false }}\">\n            <label for=\"{{ f.id }}\" style=\"display:block;font-weight:700;font-size:15.5px;margin-bottom:6px\">{{ f.label }} <sc-if value=\"{{ f.star }}\" hint-placeholder-val=\"{{ false }}\"><span aria-hidden=\"true\" style=\"color:#A32D2D\">*</span></sc-if></label>\n            <select id=\"{{ f.id }}\" name=\"{{ f.name }}\" aria-required=\"{{ f.ariaRequired }}\" disabled=\"{{ f.disabled }}\" aria-describedby=\"{{ f.noteId }}\" data-source-pointer=\"{{ f.pointer }}\">\n              <sc-for list=\"{{ f.options }}\" as=\"o\" hint-placeholder-count=\"4\"><option value=\"{{ o.value }}\" disabled=\"{{ o.disabled }}\">{{ o.label }}</option></sc-for>\n            </select>\n            <sc-if value=\"{{ f.hasNote }}\" hint-placeholder-val=\"{{ false }}\"><p id=\"{{ f.noteId }}\" style=\"margin:6px 0 0;font-size:14.5px;line-height:1.5;color:#75695A\">{{ f.note }}</p></sc-if>\n          </sc-if>\n          <sc-if value=\"{{ f.isRadio }}\" hint-placeholder-val=\"{{ false }}\">\n            <fieldset style=\"border:1px solid #D8CFBD;border-radius:4px;padding:12px 14px;margin:0\">\n              <legend style=\"font-weight:700;font-size:15.5px;padding:0 6px\">{{ f.label }} <sc-if value=\"{{ f.star }}\" hint-placeholder-val=\"{{ false }}\"><span aria-hidden=\"true\" style=\"color:#A32D2D\">*</span></sc-if></legend>\n              <div style=\"display:flex;flex-wrap:wrap;gap:8px 18px\">\n                <sc-for list=\"{{ f.options }}\" as=\"o\" hint-placeholder-count=\"2\">\n                  <label for=\"{{ o.id }}\" style=\"display:inline-flex;align-items:center;gap:10px;min-height:44px;font-size:16.5px\"><input id=\"{{ o.id }}\" type=\"radio\" name=\"{{ f.name }}\" value=\"{{ o.value }}\" defaultChecked=\"{{ o.checked }}\">{{ o.label }}</label>\n                </sc-for>\n              </div>\n            </fieldset>\n          </sc-if>\n          <sc-if value=\"{{ f.isCheckbox }}\" hint-placeholder-val=\"{{ false }}\">\n            <fieldset style=\"border:1px solid #D8CFBD;border-radius:4px;padding:12px 14px;margin:0\">\n              <legend style=\"font-weight:700;font-size:15.5px;padding:0 6px\">{{ f.label }} <sc-if value=\"{{ f.star }}\" hint-placeholder-val=\"{{ false }}\"><span aria-hidden=\"true\" style=\"color:#A32D2D\">*</span></sc-if></legend>\n              <div style=\"display:flex;flex-wrap:wrap;gap:8px 18px\">\n                <sc-for list=\"{{ f.options }}\" as=\"o\" hint-placeholder-count=\"3\">\n                  <label for=\"{{ o.id }}\" style=\"display:inline-flex;align-items:center;gap:10px;min-height:44px;font-size:16.5px\"><input id=\"{{ o.id }}\" type=\"checkbox\" name=\"{{ f.name }}\" value=\"{{ o.value }}\">{{ o.label }}</label>\n                </sc-for>\n              </div>\n            </fieldset>\n          </sc-if>\n          <sc-if value=\"{{ f.isFile }}\" hint-placeholder-val=\"{{ false }}\">\n            <label for=\"{{ f.id }}\" style=\"display:block;font-weight:700;font-size:15.5px;margin-bottom:6px\">{{ f.label }}</label>\n            <input id=\"{{ f.id }}\" name=\"{{ f.name }}\" type=\"file\" accept=\"{{ f.accept }}\" onChange=\"{{ noFile }}\" aria-describedby=\"{{ f.noteId }}\" data-source-pointer=\"{{ f.pointer }}\">\n            <p id=\"{{ f.noteId }}\" style=\"margin:6px 0 0;font-size:14.5px;line-height:1.5;color:#75695A\">{{ f.note }}</p>\n          </sc-if>\n          <sc-if value=\"{{ f.isSubmit }}\" hint-placeholder-val=\"{{ false }}\">\n            <button type=\"submit\" id=\"{{ f.id }}\" style=\"display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 30px;background:#5A4420;color:#F7F4EA;border:0;border-radius:4px;font-weight:700;font-size:16px;cursor:pointer\">{{ f.label }}</button>\n          </sc-if>\n        </div>\n      </sc-for>\n    <sc-if value=\"{{ leHasSteps }}\" hint-placeholder-val=\"{{ false }}\">\n      <div style=\"display:flex;flex-wrap:wrap;gap:12px\">\n        <sc-for list=\"{{ leStepNav }}\" as=\"n\" hint-placeholder-count=\"2\">\n          <button type=\"button\" id=\"{{ n.id }}\" name=\"{{ n.name }}\" aria-label=\"{{ n.aria }}\" data-source-pointer=\"{{ n.pointer }}\" onClick=\"{{ n.act }}\" style=\"display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 26px;background:{{ n.bg }};color:{{ n.fg }};border:2px solid #5A4420;border-radius:4px;font-weight:700;font-size:16px;cursor:pointer\">{{ n.label }}</button>\n        </sc-for>\n      </div>\n    </sc-if>\n    <sc-if value=\"{{ leHasFormHelp }}\" hint-placeholder-val=\"{{ false }}\">\n      <p id=\"le-form-help\" data-source-pointer=\"{{ leFormHelp.ptr }}\" style=\"margin:0;font-size:16.5px;line-height:1.6;color:#514a3f\">{{ leFormHelp.text }}</p>\n    </sc-if>\n    <p aria-live=\"polite\" style=\"margin:0;font-size:15.5px;line-height:1.6;color:#514a3f\">{{ leNotice }}</p>\n  </form>\n</div>\n</sc-if>\n\n<sc-if value=\"{{ isContact }}\" hint-placeholder-val=\"{{ true }}\">\n<div data-variant=\"contact\">\n<section style=\"width:min(1220px,94%);margin:0 auto;padding:28px 0 0;display:flex;flex-direction:column;gap:28px\">\n  <div>\n    <div data-eyebrow=\"true\" style=\"font-weight:700;font-size:12.5px;letter-spacing:2.6px;color:#8F6212;text-transform:uppercase\">{{ C.eyebrow }}</div>\n    <p style=\"margin:12px 0 0;font-size:19px;line-height:1.65;max-width:52ch;text-wrap:pretty\">{{ C.sub }}</p>\n    <div data-status=\"true\" style=\"display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;margin-top:18px;font-size:15.5px;font-weight:600;color:#5A4420\"><span style=\"display:inline-flex;align-items:center;gap:8px\"><span aria-hidden=\"true\" style=\"width:8px;height:8px;border-radius:50%;background:#6B7726;display:inline-block\"></span>{{ C.status.open }}</span><span aria-hidden=\"true\">|</span><span>{{ C.status.clockPlaceholder }}</span><span aria-hidden=\"true\">|</span><span>{{ C.status.badge }}</span></div>\n  </div>\n  <div data-hero-ctas=\"true\" style=\"display:flex;flex-direction:column;gap:12px\">\n    <sc-for list=\"{{ C.heroCtas }}\" as=\"a\" hint-placeholder-count=\"3\"><a href=\"{{ a.href }}\" onClick=\"{{ guard }}\" style=\"{{ a.style }}\" style-hover=\"text-decoration:none;filter:brightness(.95)\">{{ a.icon }}{{ a.label }}</a></sc-for>\n  </div>\n</section>\n<section aria-labelledby=\"router-h\" style=\"width:min(1220px,94%);margin:36px auto 0;padding:28px 0 0;border-top:1px solid #E9E2D3\">\n  <h2 id=\"router-h\" style=\"font-family:'Marcellus',serif;font-size:clamp(26px,2.4vw,34px);line-height:1.2;margin:0 0 8px\">{{ C.router.h2 }}</h2>\n  <p style=\"margin:0 0 28px;font-size:17.5px;color:#514a3f\">{{ C.router.sub }}</p>\n  <ul style=\"list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:20px 28px\">\n    <sc-for list=\"{{ C.tiles }}\" as=\"t\" hint-placeholder-count=\"6\">\n      <li><a data-tile=\"true\" href=\"{{ t.url }}\" onClick=\"{{ guard }}\" rel=\"{{ t.rel }}\" style=\"display:flex;flex-direction:column;gap:8px;height:100%;padding:18px 16px;background:#fff;border:1px solid #E0D7C4;border-radius:4px;color:#2A2118;box-sizing:border-box\" style-hover=\"border-color:#C1882C;text-decoration:none;color:#2A2118\">\n        <h3 style=\"font-family:'Marcellus',serif;font-size:22px;line-height:1.25;margin:0\">{{ t.h3 }}</h3>\n        <p style=\"margin:0;font-size:16.5px;line-height:1.6;color:#514a3f;text-wrap:pretty\">{{ t.p }}</p>\n        <span data-tile-go=\"true\" style=\"margin-top:auto;display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:15.5px;color:#006038\">{{ t.icon }}{{ t.go }}</span>\n      </a></li>\n    </sc-for>\n  </ul>\n  <p data-also=\"true\" style=\"margin:24px 0 0;font-size:16.5px;color:#514a3f\">{{ C.also }}</p>\n</section>\n<section aria-labelledby=\"chan-h\" style=\"width:min(1220px,94%);margin:36px auto 0;padding:28px 0 0;border-top:1px solid #E9E2D3\">\n  <h2 id=\"chan-h\" style=\"font-family:'Marcellus',serif;font-size:clamp(26px,2.4vw,34px);line-height:1.2;margin:0 0 8px\">{{ C.channels.h2 }}</h2>\n  <p style=\"margin:0 0 28px;font-size:17.5px;color:#514a3f\">{{ C.channels.sub }}</p>\n  <ul style=\"list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:20px 28px\">\n    <sc-for list=\"{{ C.chans }}\" as=\"ch\" hint-placeholder-count=\"4\">\n      <li data-channel=\"true\" style=\"display:flex;flex-direction:column;gap:10px;padding:18px 16px;background:#fff;border:1px solid #E0D7C4;border-radius:4px\">\n        <h3 style=\"font-family:'Marcellus',serif;font-size:22px;line-height:1.25;margin:0\">{{ ch.h3 }}</h3>\n        <div data-channel-meta=\"true\" style=\"font-weight:700;font-size:13px;letter-spacing:2px;color:#8F6212;text-transform:uppercase\">{{ ch.meta }}</div>\n        <p style=\"margin:0;font-size:16.5px;line-height:1.6;color:#514a3f\">{{ ch.best }}</p>\n        <div style=\"display:flex;flex-wrap:wrap;gap:10px;margin-top:auto;padding-top:6px\">\n          <sc-for list=\"{{ ch.links }}\" as=\"l\" hint-placeholder-count=\"1\">\n            <sc-if value=\"{{ l.href }}\" hint-placeholder-val=\"{{ true }}\"><a href=\"{{ l.href }}\" onClick=\"{{ guard }}\" rel=\"{{ l.rel }}\" style=\"display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 18px;border:2px solid #5A4420;border-radius:4px;color:#5A4420;font-weight:700;font-size:15.5px;background:#fff\" style-hover=\"text-decoration:none;background:#F7F4EA\">{{ l.icon }}{{ l.label }}</a></sc-if>\n            <sc-if value=\"{{ l.encodedEmail }}\" hint-placeholder-val=\"{{ false }}\"><span data-encoded-email=\"true\" title=\"L’adresse e-mail source est encodée par Cloudflare ; sa récupération n’est pas autorisée dans ce lot\" style=\"display:inline-flex;align-items:center;min-height:46px;padding:0 18px;border:2px dashed #C1882C;border-radius:4px;color:#75695A;font-style:italic;font-size:15.5px\">{{ l.label }}</span></sc-if>\n          </sc-for>\n        </div>\n      </li>\n    </sc-for>\n  </ul>\n</section>\n<section id=\"message\" aria-labelledby=\"msg-h\" style=\"width:min(1220px,94%);margin:36px auto 0;padding:28px 0 0;border-top:1px solid #E9E2D3;display:flex;flex-direction:column;gap:28px\">\n  <div>\n    <h2 id=\"msg-h\" style=\"font-family:'Marcellus',serif;font-size:clamp(26px,2.4vw,34px);line-height:1.2;margin:0 0 8px\">{{ C.form.h2 }}</h2>\n    <p style=\"margin:0 0 24px;font-size:17.5px;color:#514a3f\">{{ C.form.sub }}</p>\n    <form data-form=\"contact\" noValidate=\"{{ true }}\" onSubmit=\"{{ contactSubmit }}\" style=\"display:flex;flex-direction:column;gap:18px;background:#fff;border:1px solid #E0D7C4;border-radius:4px;padding:20px 18px\">\n      <div>\n        <label for=\"txtName\" style=\"display:block;font-weight:700;font-size:15.5px;margin-bottom:6px\">Votre nom</label>\n        <input id=\"txtName\" name=\"fname\" type=\"text\" autoComplete=\"name\" placeholder=\"p. ex. Anjali Menon\" required=\"{{ true }}\" aria-required=\"true\" aria-invalid=\"{{ cErr.fname }}\" aria-describedby=\"err-fname\" value=\"{{ cv.fname }}\" onChange=\"{{ cSet }}\">\n        <sc-if value=\"{{ cErr.fname }}\" hint-placeholder-val=\"{{ false }}\"><p id=\"err-fname\" role=\"alert\" style=\"margin:6px 0 0;font-size:15px;color:#A32D2D;font-weight:600\">{{ C.form.errors.fname }}</p></sc-if>\n      </div>\n      <div>\n        <label for=\"txtPhone\" style=\"display:block;font-weight:700;font-size:15.5px;margin-bottom:6px\">Numéro de téléphone / WhatsApp</label>\n        <div style=\"display:grid;grid-template-columns:110px minmax(0,1fr);gap:10px\">\n          <input id=\"cc\" name=\"country_code\" type=\"text\" aria-label=\"Indicatif pays\" autoComplete=\"tel-country-code\" required=\"{{ true }}\" aria-required=\"true\" aria-invalid=\"{{ cErr.country_code }}\" aria-describedby=\"ccError\" value=\"{{ cv.country_code }}\" onChange=\"{{ cSet }}\">\n          <input id=\"txtPhone\" name=\"phone\" type=\"tel\" autoComplete=\"tel\" placeholder=\"98765 43210\" required=\"{{ true }}\" aria-required=\"true\" aria-invalid=\"{{ cErr.phone }}\" aria-describedby=\"mobileError\" value=\"{{ cv.phone }}\" onChange=\"{{ cSet }}\">\n        </div>\n        <sc-if value=\"{{ cErr.country_code }}\" hint-placeholder-val=\"{{ false }}\"><p id=\"ccError\" role=\"alert\" style=\"margin:6px 0 0;font-size:15px;color:#A32D2D;font-weight:600\">Indiquez votre indicatif pays, par exemple +91.</p></sc-if>\n        <sc-if value=\"{{ cErr.phone }}\" hint-placeholder-val=\"{{ false }}\"><p id=\"mobileError\" role=\"alert\" style=\"margin:6px 0 0;font-size:15px;color:#A32D2D;font-weight:600\">{{ C.form.errors.phone }}</p></sc-if>\n      </div>\n      <div>\n        <label for=\"programme\" style=\"display:block;font-weight:700;font-size:15.5px;margin-bottom:6px\">À quel sujet ? <span style=\"font-weight:400;color:#75695A\">Facultatif</span></label>\n        <select id=\"programme\" name=\"programme\" value=\"{{ cv.programme }}\" onChange=\"{{ cSet }}\"><sc-for list=\"{{ programmeOptions }}\" as=\"o\" hint-placeholder-count=\"8\"><option value=\"{{ o.value }}\">{{ o.label }}</option></sc-for></select>\n      </div>\n      <div>\n        <label for=\"txtEmail\" style=\"display:block;font-weight:700;font-size:15.5px;margin-bottom:6px\">E-mail</label>\n        <input id=\"txtEmail\" name=\"email\" type=\"email\" autoComplete=\"email\" placeholder=\"you@example.com\" required=\"{{ true }}\" aria-required=\"true\" aria-invalid=\"{{ cErr.email }}\" aria-describedby=\"emailError\" value=\"{{ cv.email }}\" onChange=\"{{ cSet }}\">\n        <sc-if value=\"{{ cErr.email }}\" hint-placeholder-val=\"{{ false }}\"><p id=\"emailError\" role=\"alert\" style=\"margin:6px 0 0;font-size:15px;color:#A32D2D;font-weight:600\">{{ C.form.errors.email }}</p></sc-if>\n      </div>\n      <div>\n        <label for=\"txtMessage\" style=\"display:block;font-weight:700;font-size:15.5px;margin-bottom:6px\">Votre message <span style=\"font-weight:400;color:#75695A\">Facultatif</span></label>\n        <textarea id=\"txtMessage\" name=\"message\" placeholder=\"Une ou deux lignes sur ce que vous recherchez et sur tout problème de santé que vous souhaitez que nous prenions en compte.\" value=\"{{ cv.message }}\" onChange=\"{{ cSet }}\"></textarea>\n      </div>\n      <div style=\"display:flex;flex-wrap:wrap;gap:14px;align-items:center\">\n        <button type=\"submit\" style=\"display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 28px;background:#5A4420;color:#F7F4EA;border:0;border-radius:4px;font-weight:700;font-size:16px;cursor:pointer\" style-hover=\"background:#3E2E14\">{{ C.form.submit }}</button>\n        <p role=\"status\" aria-live=\"polite\" style=\"margin:0;font-size:15px;color:#5A4420;font-weight:600\">{{ cNotice }}</p>\n        <sc-if value=\"{{ cPending }}\" hint-placeholder-val=\"{{ false }}\"><p data-local-valid=\"true\" role=\"status\" style=\"margin:0;font-size:15px;color:#5A4420;font-weight:600\">Vos informations semblent complètes. Ce formulaire est en cours de mise en service. En attendant, veuillez écrire à info@kairali.com ou nous envoyer un message sur WhatsApp au +91 92898 38797.</p></sc-if>\n      </div>\n      <p style=\"margin:0;font-size:14.5px;color:#514a3f;line-height:1.55\">{{ C.form.note }}</p>\n    </form>\n  </div>\n  <aside data-aside=\"true\" aria-labelledby=\"aside-h\" style=\"background:#fff;border:1px solid #E0D7C4;border-radius:4px;padding:18px 16px;display:flex;flex-direction:column;gap:14px\">\n    <h3 id=\"aside-h\" style=\"font-family:'Marcellus',serif;font-size:24px;line-height:1.25;margin:0\">{{ C.aside.h3 }}</h3>\n    <p style=\"margin:0;font-size:16.5px;line-height:1.6;color:#514a3f\">{{ C.aside.p }}</p>\n    <sc-for list=\"{{ C.asideRows }}\" as=\"r\" hint-placeholder-count=\"3\"><p style=\"margin:0;font-size:16.5px;line-height:1.6\">{{ r }}</p></sc-for>\n  </aside>\n</section>\n<section data-priya=\"true\" aria-labelledby=\"priya-h\" style=\"width:min(1220px,94%);margin:32px auto 0;background:#fff;border:1px solid #E0D7C4;border-radius:4px;padding:22px 18px;box-sizing:border-box;display:flex;flex-direction:column;gap:16px\">\n  <img data-ahv-portrait=\"1\" src=\"/ahv/assets/img/priya-care-coordinator.webp\" alt=\"Priya, coordinatrice de la prise en charge des patients\" width=\"72\" height=\"72\" loading=\"lazy\" style=\"width:72px;height:72px;border-radius:50%;object-fit:cover;flex:none;display:block\">\n  <div>\n    <h3 id=\"priya-h\" style=\"font-family:'Marcellus',serif;font-size:24px;line-height:1.25;margin:0\"><a href=\"https://wa.me/919289838797\" onClick=\"{{ openPriya }}\" style=\"color:inherit;text-decoration:underline;text-underline-offset:4px\">{{ C.priya.h3 }}</a></h3>\n    <div style=\"font-weight:700;font-size:13px;letter-spacing:2px;color:#8F6212;text-transform:uppercase;margin:6px 0 10px\">{{ C.priya.role }}</div>\n    <p style=\"margin:0;font-size:18px;line-height:1.6;font-style:italic\">{{ C.priya.quote }}</p><a href=\"https://wa.me/919289838797\" onClick=\"{{ openPriya }}\" style=\"display:inline-flex;align-items:center;min-height:48px;margin-top:16px;padding:0 20px;border-radius:4px;background:#006038;color:#fff;font-weight:700;font-size:16px\">{{ chatIcon }}Discuter avec Priya</a>\n  </div>\n</section>\n<section aria-labelledby=\"visit-h\" style=\"width:min(1220px,94%);margin:36px auto 0;padding:28px 0 0;border-top:1px solid #E9E2D3\">\n  <h2 id=\"visit-h\" style=\"font-family:'Marcellus',serif;font-size:clamp(26px,2.4vw,34px);line-height:1.2;margin:0 0 8px\">{{ C.visit.h2 }}</h2>\n  <p style=\"margin:0 0 28px;font-size:17.5px;color:#514a3f\">{{ C.visit.sub }}</p>\n  <div style=\"display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:24px 32px;align-items:start\">\n    <div data-visit-main=\"true\" style=\"background:#fff;border:1px solid #E0D7C4;border-radius:4px;padding:18px 16px;display:flex;flex-direction:column;gap:10px\">\n      <div style=\"font-weight:700;font-size:12.5px;letter-spacing:2.6px;color:#8F6212;text-transform:uppercase\">{{ C.visit.lbl1 }}</div>\n      <h3 style=\"font-family:'Marcellus',serif;font-size:22px;line-height:1.25;margin:0\">{{ C.visit.h3a }}</h3>\n      <address style=\"font-style:normal;font-size:16.5px;line-height:1.6\">{{ C.addr1 }}</address>\n      <div style=\"display:flex;flex-direction:column;gap:4px\">\n        <sc-for list=\"{{ C.visitLinks }}\" as=\"l\" hint-placeholder-count=\"3\">\n          <sc-if value=\"{{ l.href }}\" hint-placeholder-val=\"{{ true }}\"><a href=\"{{ l.href }}\" onClick=\"{{ guard }}\" style=\"display:inline-flex;align-items:center;min-height:44px;font-weight:600;font-size:16.5px\">{{ l.icon }}{{ l.label }}</a></sc-if>\n          <sc-if value=\"{{ l.encodedEmail }}\" hint-placeholder-val=\"{{ false }}\"><span data-encoded-email=\"true\" style=\"display:inline-flex;align-items:center;min-height:44px;font-style:italic;color:#75695A;font-size:16.5px\">{{ l.label }}</span></sc-if>\n        </sc-for>\n      </div>\n    </div>\n    <div data-visit-travel=\"true\" style=\"display:flex;flex-direction:column;gap:14px\">\n      <sc-for list=\"{{ C.visit.pairs }}\" as=\"p\" hint-placeholder-count=\"3\"><div style=\"background:#fff;border:1px solid #E0D7C4;border-radius:4px;padding:16px 20px\"><div style=\"font-weight:700;font-size:12.5px;letter-spacing:2px;color:#8F6212;text-transform:uppercase\">{{ p.t }}</div><div style=\"font-size:18px;font-weight:600\">{{ p.v }}</div><div style=\"font-size:15.5px;color:#514a3f\">{{ p.s }}</div></div></sc-for>\n      <div style=\"background:#fff;border:1px solid #E0D7C4;border-radius:4px;padding:16px 20px\"><div style=\"font-weight:700;font-size:12.5px;letter-spacing:2px;color:#8F6212;text-transform:uppercase;margin-bottom:6px\">{{ C.visit.hoursLbl }}</div><dl style=\"margin:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 16px;font-size:16px\"><dt style=\"color:#514a3f\">{{ C.h0 }}</dt><dd style=\"margin:0;font-weight:600\">{{ C.h1t }}</dd><dt style=\"color:#514a3f\">{{ C.h2t }}</dt><dd style=\"margin:0;font-weight:600\">{{ C.h3t }}</dd></dl></div>\n    </div>\n    <div data-visit-delhi=\"true\" style=\"background:#fff;border:1px solid #E0D7C4;border-radius:4px;padding:18px 16px;display:flex;flex-direction:column;gap:10px\">\n      <div style=\"font-weight:700;font-size:12.5px;letter-spacing:2.6px;color:#8F6212;text-transform:uppercase\">{{ C.visit.lbl2 }}</div>\n      <h3 style=\"font-family:'Marcellus',serif;font-size:22px;line-height:1.25;margin:0\">{{ C.visit.h3b }}</h3>\n      <address style=\"font-style:normal;font-size:16.5px;line-height:1.6\">{{ C.addr2 }}</address>\n      <p style=\"margin:0;font-size:16.5px\"><a href=\"tel:+91 9555 156 156\" onClick=\"{{ guard }}\" style=\"display:inline-flex;align-items:center;min-height:44px;font-weight:600\">{{ C.visit.phone2 }}</a> {{ C.visit.ext2 }}</p>\n      <a href=\"https://www.google.com/maps/place/Kairali+-+The+Ayurvedic+Healing+Village/@10.7279419,76.7208737,17z\" rel=\"noopener noreferrer\" data-source-embed=\"map\" style=\"display:block;margin-top:10px;border-top:1px solid #EFE9DC;padding-top:10px;text-decoration:none\"><span style=\"display:block;font-size:14.5px;color:#514a3f;margin-bottom:8px\">{{ C.visit.mapTitle }}</span><img src=\"/ahv/assets/img/location-kerala-palakkad-map.webp\" alt=\"Carte de l’Inde montrant le Kerala sur la côte sud-ouest, avec un encart situant Kairali – The Ayurvedic Healing Village à Palakkad\" style=\"width:100%;height:auto;display:block;border:1px solid #E0D7C4;border-radius:4px\"><span style=\"display:block;padding-top:6px;font-size:12.5px;color:#75695A\">Données cartographiques © contributeurs d’OpenStreetMap</span></a><a href=\"https://www.google.com/maps/dir/?api=1&destination=10.727275,76.710507\" rel=\"noopener noreferrer\" style=\"display:inline-flex;align-items:center;min-height:44px;margin-top:6px;font-size:15px;font-weight:600;text-decoration:none\">Obtenir l’itinéraire →</a>\n    </div>\n  </div>\n</section>\n<section data-founder=\"true\" style=\"width:min(1220px,94%);margin:32px auto 0;padding:24px 20px;box-sizing:border-box;background:#2A2014;color:#F7F4EA;border-radius:4px\">\n  <blockquote style=\"margin:0;font-family:'Marcellus',serif;font-size:clamp(22px,2vw,28px);line-height:1.4;max-width:60ch;text-wrap:pretty\">{{ C.founder.quote }}</blockquote>\n  <div style=\"display:flex;align-items:center;gap:14px;margin:20px 0 0\"><img data-ahv-portrait=\"1\" src=\"/ahv/assets/img/team-gita1.webp\" alt=\"Mme Gita Ramesh\" width=\"64\" height=\"64\" loading=\"lazy\" style=\"width:64px;height:64px;border-radius:50%;object-fit:cover;flex:none;display:block\"><p style=\"margin:0;font-size:16px;color:#EEB41E\">{{ C.founder.by }}</p></div>\n</section>\n<section aria-labelledby=\"faq-h\" style=\"width:min(1220px,94%);margin:32px auto 0;padding:28px 0 48px;border-top:1px solid #E9E2D3\">\n  <img src=\"/ahv/assets/img/AHV-Enquiry-Lotus.svg\" alt=\"\" width=\"95\" height=\"57\" data-source-decoration=\"lotus\" style=\"display:block;margin:0 auto 18px;width:95px;height:auto;opacity:.85\"><h2 id=\"faq-h\" style=\"font-family:'Marcellus',serif;font-size:clamp(26px,2.4vw,34px);line-height:1.2;margin:0 0 24px\">{{ C.faq.h2 }}</h2>\n  <div style=\"display:flex;flex-direction:column;gap:10px;max-width:80ch\">\n    <sc-for list=\"{{ C.faqItems }}\" as=\"f\" hint-placeholder-count=\"6\">\n      <details data-faq=\"true\" style=\"background:#fff;border:1px solid #E0D7C4;border-radius:4px\">\n        <summary style=\"list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;padding:10px 20px;cursor:pointer;font-weight:700;font-size:17px;line-height:1.4\"><span>{{ f.q }}</span><span aria-hidden=\"true\" style=\"color:#C1882C;flex:none\">◆</span></summary>\n        <p style=\"margin:0;padding:0 20px 18px;font-size:16.5px;line-height:1.65;color:#2A2118;overflow-wrap:anywhere\">{{ f.a }}</p>\n      </details>\n    </sc-for>\n  </div>\n</section>\n</div>\n</sc-if>\n\n<sc-if value=\"{{ isApply }}\" hint-placeholder-val=\"{{ false }}\">\n<div data-variant=\"careers-apply\" style=\"width:min(1220px,94%);margin:0 auto;padding:28px 0 48px;display:flex;flex-direction:column;gap:28px\">\n  <nav aria-labelledby=\"about-h\" style=\"position:static\">\n    <h2 id=\"about-h\" style=\"font-family:'Marcellus',serif;font-size:24px;line-height:1.25;margin:0 0 14px\">{{ AP.aboutH2 }}</h2>\n    <sc-for list=\"{{ AP.about }}\" as=\"g\" hint-placeholder-count=\"4\">\n      <section style=\"margin:0 0 18px\">\n        <h3 style=\"font-weight:700;font-size:13px;letter-spacing:2.6px;color:#8F6212;text-transform:uppercase;font-family:'Mulish',sans-serif;margin:0 0 6px\">{{ g.heading }}</h3>\n        <ul style=\"list-style:none;margin:0;padding:0;display:flex;flex-direction:column;border-top:1px solid #E0D7C4\">\n          <sc-for list=\"{{ g.links }}\" as=\"k\" hint-placeholder-count=\"2\"><li style=\"border-bottom:1px solid #E0D7C4\"><a href=\"{{ k.url }}\" onClick=\"{{ guard }}\" style=\"display:flex;align-items:center;gap:12px;min-height:46px;padding:4px 0;font-size:15.5px;font-weight:600;line-height:1.4\"><span aria-hidden=\"true\" style=\"color:#C1882C;flex:none\">◆</span><span>{{ k.label }}</span></a></li></sc-for>\n        </ul>\n      </section>\n    </sc-for>\n  </nav>\n  <div>\n    <p data-intro=\"true\" style=\"margin:0 0 28px;font-size:19px;line-height:1.65;max-width:62ch;text-wrap:pretty;border-left:3px solid #C1882C;padding-left:22px\">{{ AP.intro }}</p>\n    <h2 id=\"apply-form-h\" style=\"font-family:'Marcellus',serif;font-size:clamp(26px,2.4vw,34px);line-height:1.2;margin:0 0 20px\">{{ AP.formH2 }}</h2>\n    <form data-form=\"apply\" noValidate=\"{{ true }}\" onSubmit=\"{{ applySubmit }}\" aria-labelledby=\"apply-form-h\" style=\"display:flex;flex-direction:column;gap:18px;background:#fff;border:1px solid #E0D7C4;border-radius:4px;padding:20px 18px\">\n      <sc-for list=\"{{ applyFields }}\" as=\"f\" hint-placeholder-count=\"22\">\n        <sc-if value=\"{{ f.isGroup }}\" hint-placeholder-val=\"{{ false }}\">\n          <fieldset data-group=\"{{ f.group }}\" style=\";border:0;margin:0;padding:0;min-width:0\">\n            <legend style=\"font-weight:700;font-size:15.5px;margin-bottom:8px;padding:0\">{{ f.group }}</legend>\n            <div style=\"display:flex;flex-wrap:wrap;gap:10px 24px\">\n              <sc-for list=\"{{ f.options }}\" as=\"o\" hint-placeholder-count=\"2\"><label style=\"display:inline-flex;align-items:center;gap:10px;min-height:44px;font-size:16.5px\"><input type=\"{{ f.type }}\" name=\"{{ f.name }}\" value=\"{{ o.value }}\" onChange=\"{{ aGroupSet }}\">{{ o.label }}</label></sc-for>\n            </div>\n          </fieldset>\n        </sc-if>\n        <sc-if value=\"{{ f.isPair }}\" hint-placeholder-val=\"{{ false }}\">\n          <fieldset data-group=\"{{ f.group }}\" style=\";border:0;margin:0;padding:0;min-width:0\">\n            <legend style=\"font-weight:700;font-size:15.5px;margin-bottom:8px;padding:0\">{{ f.group }}</legend>\n            <div style=\"display:flex;flex-direction:column;gap:12px\">\n              <sc-for list=\"{{ f.selects }}\" as=\"s\" hint-placeholder-count=\"2\"><select name=\"{{ s.name }}\" aria-label=\"{{ s.aria }}\" onChange=\"{{ aSet }}\"><sc-for list=\"{{ s.options }}\" as=\"o\" hint-placeholder-count=\"3\"><option value=\"{{ o }}\">{{ o }}</option></sc-for></select></sc-for>\n            </div>\n          </fieldset>\n        </sc-if>\n        <sc-if value=\"{{ f.isSelect }}\" hint-placeholder-val=\"{{ false }}\">\n          <div style=\"{{ f.span }}\"><label for=\"{{ f.id }}\" style=\"display:block;font-weight:700;font-size:15.5px;margin-bottom:6px\">{{ f.label }}</label><select id=\"{{ f.id }}\" name=\"{{ f.name }}\" onChange=\"{{ aSet }}\"><sc-for list=\"{{ f.options }}\" as=\"o\" hint-placeholder-count=\"5\"><option value=\"{{ o }}\">{{ o }}</option></sc-for></select></div>\n        </sc-if>\n        <sc-if value=\"{{ f.isTextarea }}\" hint-placeholder-val=\"{{ false }}\">\n          <div style=\"\"><label for=\"{{ f.id }}\" style=\"display:block;font-weight:700;font-size:15.5px;margin-bottom:6px\">{{ f.label }}</label><textarea id=\"{{ f.id }}\" name=\"{{ f.name }}\" maxLength=\"{{ f.maxlength }}\" onChange=\"{{ aSet }}\"></textarea></div>\n        </sc-if>\n        <sc-if value=\"{{ f.isFile }}\" hint-placeholder-val=\"{{ false }}\">\n          <div><label for=\"{{ f.id }}\" style=\"display:block;font-weight:700;font-size:15.5px;margin-bottom:6px\">{{ f.label }}</label><input id=\"{{ f.id }}\" name=\"{{ f.name }}\" type=\"file\" accept=\"{{ f.accept }}\" onChange=\"{{ aFile }}\"></div>\n        </sc-if>\n        <sc-if value=\"{{ f.isInput }}\" hint-placeholder-val=\"{{ true }}\">\n          <div style=\"{{ f.span }}\"><label for=\"{{ f.id }}\" style=\"display:block;font-weight:700;font-size:15.5px;margin-bottom:6px\">{{ f.label }}<sc-if value=\"{{ f.required }}\" hint-placeholder-val=\"{{ false }}\"><span aria-hidden=\"true\" style=\"color:#A32D2D\"> *</span></sc-if></label><input id=\"{{ f.id }}\" name=\"{{ f.name }}\" type=\"{{ f.type }}\" required=\"{{ f.required }}\" aria-required=\"{{ f.ariaReq }}\" aria-invalid=\"{{ f.invalid }}\" maxLength=\"{{ f.maxlength }}\" autoComplete=\"{{ f.autocomplete }}\" onChange=\"{{ aSet }}\"><sc-if value=\"{{ f.invalid }}\" hint-placeholder-val=\"{{ false }}\"><p id=\"{{ f.errId }}\" role=\"alert\" style=\"margin:6px 0 0;font-size:15px;color:#A32D2D;font-weight:600\">{{ f.errorText }}</p></sc-if></div>\n        </sc-if>\n      </sc-for>\n      <div style=\";display:flex;flex-wrap:wrap;gap:14px;align-items:center\">\n        <button type=\"submit\" style=\"display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 32px;background:#5A4420;color:#F7F4EA;border:0;border-radius:4px;font-weight:700;font-size:16px;cursor:pointer\" style-hover=\"background:#3E2E14\">{{ AP.form.submit }}</button>\n        <p role=\"status\" aria-live=\"polite\" style=\"margin:0;font-size:15px;color:#5A4420;font-weight:600\">{{ aNotice }}</p>\n        <sc-if value=\"{{ aPending }}\" hint-placeholder-val=\"{{ false }}\"><p data-local-valid=\"true\" role=\"status\" style=\"margin:0;font-size:15px;color:#5A4420;font-weight:600\">Les informations obligatoires semblent complètes. Ce formulaire est en cours de mise en service. En attendant, veuillez écrire à info@kairali.com ou nous envoyer un message sur WhatsApp au +91 92898 38797.</p></sc-if>\n      </div>\n    </form>\n  </div>\n</div>\n</sc-if>\n\n<sc-if value=\"{{ isJob }}\" hint-placeholder-val=\"{{ false }}\">\n<div data-variant=\"job-detail\" style=\"width:min(1220px,94%);margin:0 auto;padding:28px 0 48px;display:flex;flex-direction:column;gap:28px\">\n  <article aria-labelledby=\"page-h1\">\n    <div data-job-label=\"true\" style=\"font-weight:700;font-size:13px;letter-spacing:2.6px;color:#8F6212;text-transform:uppercase;margin-bottom:20px\">{{ J.jobDetailsLabel }}</div>\n    <sc-for list=\"{{ jobSections }}\" as=\"s\" hint-placeholder-count=\"4\">\n      <section style=\"padding:0 0 28px;margin-bottom:28px;border-bottom:1px solid #E0D7C4\">\n        <h2 style=\"font-family:'Marcellus',serif;font-size:clamp(24px,2.2vw,30px);line-height:1.25;margin:0 0 14px\">{{ s.heading }}</h2>\n        {{ s.body }}\n      </section>\n    </sc-for>\n  </article>\n  <sc-if value=\"{{ J.applicationsOpen }}\" hint-placeholder-val=\"{{ true }}\">\n<aside aria-labelledby=\"job-apply-h\" style=\"background:#fff;border:1px solid #E0D7C4;border-radius:4px;padding:20px 18px;position:static\">\n    <h2 id=\"job-apply-h\" style=\"font-family:'Marcellus',serif;font-size:26px;line-height:1.25;margin:0 0 18px\">{{ J.applyH2 }}</h2>\n    <form data-form=\"job\" noValidate=\"{{ true }}\" onSubmit=\"{{ jobSubmit }}\" style=\"display:flex;flex-direction:column;gap:16px\">\n      <sc-for list=\"{{ jobFields }}\" as=\"f\" hint-placeholder-count=\"5\">\n        <div>\n          <label for=\"{{ f.id }}\" style=\"display:block;font-weight:700;font-size:15.5px;margin-bottom:6px\">{{ f.label }} <span aria-hidden=\"true\" style=\"color:#A32D2D\">*</span></label>\n          <sc-if value=\"{{ f.isTextarea }}\" hint-placeholder-val=\"{{ false }}\"><textarea id=\"{{ f.id }}\" name=\"{{ f.name }}\" required=\"{{ true }}\" aria-required=\"true\" aria-invalid=\"{{ f.invalid }}\" aria-describedby=\"{{ f.describedBy }}\" onChange=\"{{ jSet }}\"></textarea></sc-if>\n          <sc-if value=\"{{ f.isFile }}\" hint-placeholder-val=\"{{ false }}\"><input id=\"{{ f.id }}\" name=\"{{ f.name }}\" type=\"file\" accept=\"{{ f.accept }}\" required=\"{{ true }}\" aria-required=\"true\" aria-invalid=\"{{ f.invalid }}\" aria-describedby=\"{{ f.describedBy }}\" onChange=\"{{ jFile }}\"><p style=\"margin:4px 0 0;font-size:14px;color:#514a3f\">{{ J.form.fileNote }}</p></sc-if>\n          <sc-if value=\"{{ f.isInput }}\" hint-placeholder-val=\"{{ true }}\"><input id=\"{{ f.id }}\" name=\"{{ f.name }}\" type=\"{{ f.type }}\" required=\"{{ true }}\" aria-required=\"true\" aria-invalid=\"{{ f.invalid }}\" aria-describedby=\"{{ f.describedBy }}\" onChange=\"{{ jSet }}\"></sc-if>\n          <sc-if value=\"{{ f.invalid }}\" hint-placeholder-val=\"{{ false }}\"><p id=\"{{ f.errId }}\" role=\"alert\" style=\"margin:6px 0 0;font-size:15px;color:#A32D2D;font-weight:600\">{{ f.errorText }}</p></sc-if>\n        </div>\n      </sc-for>\n      <label style=\"display:flex;align-items:flex-start;gap:12px;font-size:15.5px;line-height:1.5;min-height:44px\"><input type=\"checkbox\" id=\"awsm_form_privacy_policy\" name=\"awsm_form_privacy_policy\" required=\"{{ true }}\" aria-required=\"true\" aria-invalid=\"{{ jConsentErr }}\" onChange=\"{{ jSet }}\" style=\"margin-top:2px\"><span>{{ J.consentLabel }} <span aria-hidden=\"true\" style=\"color:#A32D2D\">*</span></span></label>\n      <sc-if value=\"{{ jConsentErr }}\" hint-placeholder-val=\"{{ false }}\"><p role=\"alert\" style=\"margin:-8px 0 0;font-size:15px;color:#A32D2D;font-weight:600\">Veuillez cocher la case pour continuer.</p></sc-if>\n      <div style=\"display:flex;flex-wrap:wrap;gap:14px;align-items:center\">\n        <button type=\"submit\" id=\"awsm-application-submit-btn\" name=\"form_sub\" style=\"display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 32px;background:#5A4420;color:#F7F4EA;border:0;border-radius:4px;font-weight:700;font-size:16px;cursor:pointer\" style-hover=\"background:#3E2E14\">{{ J.form.submit }}</button>\n        <sc-if value=\"{{ jValid }}\" hint-placeholder-val=\"{{ false }}\"><p data-local-valid=\"true\" role=\"status\" style=\"margin:0;font-size:15px;color:#5A4420;font-weight:600\">Vos informations semblent complètes. Ce formulaire est en cours de mise en service. En attendant, veuillez écrire à info@kairali.com ou nous envoyer un message sur WhatsApp au +91 92898 38797.</p></sc-if>\n      </div>\n    </form>\n  </aside>\n</sc-if>\n<sc-if value=\"{{ J.closed }}\" hint-placeholder-val=\"{{ false }}\">\n  <aside aria-labelledby=\"job-closed-h\" data-job-closed=\"true\" style=\"background:#fff;border:1px solid #E0D7C4;border-radius:4px;padding:20px 18px;position:static\">\n    <h2 id=\"job-closed-h\" style=\"font-family:'Marcellus',serif;font-size:26px;line-height:1.25;margin:0 0 18px\">Offre d’emploi clôturée</h2>\n    <p role=\"status\" style=\"margin:0 0 16px;font-size:17px;line-height:1.65\">Cette offre d’emploi est clôturée et nous n’acceptons plus de candidatures pour ce poste. La description du poste est conservée à titre de référence.</p>\n    <p style=\"margin:0;font-size:17px;line-height:1.65\"><a href=\"https://ayurvedichealingvillage.com/fr/carrieres/\" style=\"color:#006038;font-weight:700\">Carrières chez Kairali</a></p>\n  </aside>\n</sc-if>\n</div>\n</sc-if>\n\n<sc-if value=\"{{ isConsult }}\" hint-placeholder-val=\"{{ false }}\">\n<div data-variant=\"consultation\">\n  <img src=\"/ahv/assets/img/AHV-Enquiry-Lotus.svg\" alt=\"\" width=\"95\" height=\"57\" data-source-decoration=\"lotus\" style=\"display:block;margin:0 auto 18px;width:95px;height:auto;opacity:.85\">\n<section style=\"width:min(1220px,94%);margin:0 auto;padding:28px 0 0;display:flex;flex-direction:column;gap:28px\">\n  <div>\n    <div data-eyebrow=\"true\" style=\"font-weight:700;font-size:12.5px;letter-spacing:2.6px;color:#8F6212;text-transform:uppercase\">{{ O.eyebrow }}</div>\n    <p role=\"heading\" aria-level=\"2\" style=\"font-family:'Marcellus',serif;font-size:28px;line-height:1.2;margin:10px 0 14px;text-wrap:balance\">{{ O.h2x0 }} <em style=\"color:#8F6212\">{{ O.h2x1 }}</em> {{ O.h2x2 }}</p>\n    <p data-lede=\"true\" style=\"margin:0 0 18px;font-size:18.5px;line-height:1.65;max-width:56ch;text-wrap:pretty\">{{ O.lede }}</p>\n    <ul data-trust=\"true\" style=\"list-style:none;margin:0 0 24px;padding:0;display:flex;flex-wrap:wrap;gap:8px 20px;font-size:15.5px;font-weight:600;color:#5A4420\"><sc-for list=\"{{ O.trustLine }}\" as=\"t\" hint-placeholder-count=\"3\"><li style=\"display:inline-flex;align-items:center;gap:8px\"><span aria-hidden=\"true\" style=\"color:#C1882C\">◆</span>{{ t }}</li></sc-for></ul>\n    <div data-physician=\"true\" style=\"background:#fff;border:1px solid #E0D7C4;border-radius:4px;padding:16px 18px;max-width:100%;box-sizing:border-box\"><p style=\"margin:0 0 12px;font-size:12.5px;letter-spacing:2.6px;text-transform:uppercase;color:#8F6212;font-weight:700\">Notre équipe de médecins ayurvédiques</p><ul style=\"list-style:none;margin:0;padding:0;display:flex;flex-direction:column;flex-wrap:wrap;gap:12px\"><sc-for list=\"{{ O.physicians }}\" as=\"ph\" hint-placeholder-count=\"3\"><li style=\"display:flex;align-items:center;gap:12px;min-width:0\"><img src=\"{{ ph.src }}\" alt=\"{{ ph.name }}\" width=\"56\" height=\"56\" loading=\"lazy\" style=\"width:56px;height:56px;border-radius:50%;object-fit:cover;object-position:center 15%;display:block;border:1px solid #E0D7C4;flex:0 0 56px\"><span style=\"display:flex;flex-direction:column;min-width:0\"><span style=\"font-weight:700;font-size:16.5px;line-height:1.3\">{{ ph.name }}</span><span style=\"font-size:14.5px;color:#514a3f;line-height:1.4\">{{ ph.role }}</span></span></li></sc-for></ul></div>\n  </div>\n  <div id=\"ktahv-oc-requestCard\" data-request-card=\"true\" style=\"background:#fff;border:1px solid #E0D7C4;border-radius:4px;padding:20px 18px;display:flex;flex-direction:column;gap:18px\">\n    <div style=\"display:flex;justify-content:space-between;gap:12px;align-items:flex-start\">\n      <div><h2 style=\"font-family:'Marcellus',serif;font-size:26px;line-height:1.25;margin:0\">{{ O.card.h2 }}</h2><p style=\"margin:6px 0 0;font-size:15.5px;color:#514a3f\">{{ O.card.sub }}</p></div>\n      <span data-badge=\"true\" style=\"flex:none;font-weight:700;font-size:12.5px;letter-spacing:2px;color:#8F6212;text-transform:uppercase;border:1px solid #C1882C;border-radius:4px;padding:6px 10px\">{{ O.card.badge }}</span>\n    </div>\n    <div data-wa-lane=\"true\" style=\"background:#F7F4EA;border-radius:4px;padding:16px 18px;display:flex;flex-direction:column;gap:8px\">\n      <div style=\"font-weight:700;font-size:12.5px;letter-spacing:2px;color:#8F6212;text-transform:uppercase\">{{ O.card.wa.badge }}</div>\n      <div style=\"font-size:15.5px;color:#514a3f\">{{ O.card.wa.line }}</div>\n      <a href=\"{{ O.card.wa.href }}\" onClick=\"{{ guard }}\" rel=\"noopener\" style=\"display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 22px;background:#5A4420;color:#F7F4EA;border-radius:4px;font-weight:700;font-size:16px\" style-hover=\"text-decoration:none;background:#3E2E14\">{{ O.card.wa.label }}</a>\n      <p style=\"margin:0;font-size:15px;color:#514a3f\">{{ O.card.wa.callLbl }} <a href=\"{{ O.card.wa.tel }}\" onClick=\"{{ guard }}\" style=\"font-weight:700;display:inline-flex;align-items:center;min-height:44px\">{{ O.card.wa.telLabel }}</a> {{ O.card.wa.or }}</p>\n    </div>\n    <div data-progress=\"true\" aria-hidden=\"true\" style=\"display:flex;align-items:center;gap:12px;font-size:14.5px;color:#514a3f\"><span>{{ O.card.progress.stepWord }} <b style=\"color:#2A2118\">{{ stepNum }}</b> {{ O.card.progress.of }} {{ stepName }}</span><span style=\"flex:1;height:4px;background:#EFE9DC;border-radius:2px;overflow:hidden\"><i style=\"{{ pbar }}\"></i></span></div>\n    <div id=\"ktahv-oc-formArea\" role=\"group\" aria-label=\"Demande de consultation\" aria-live=\"polite\">\n      <sc-if value=\"{{ isStep1 }}\" hint-placeholder-val=\"{{ true }}\">\n        <form data-step=\"1\" noValidate=\"{{ true }}\" onSubmit=\"{{ toStep2 }}\" style=\"display:flex;flex-direction:column;gap:16px\">\n          <div><label for=\"ktahv-oc-fName\" style=\"display:block;font-weight:700;font-size:15.5px;margin-bottom:6px\">Nom complet <span aria-hidden=\"true\" style=\"color:#A32D2D\">*</span></label><input id=\"ktahv-oc-fName\" type=\"text\" autoComplete=\"name\" placeholder=\"p. ex. Anjali Menon\" required=\"{{ true }}\" aria-required=\"true\" aria-invalid=\"{{ oErr.fName }}\" aria-describedby=\"oerr-fName\" value=\"{{ ov.fName }}\" onChange=\"{{ oSet }}\"><sc-if value=\"{{ oErr.fName }}\" hint-placeholder-val=\"{{ false }}\"><p id=\"oerr-fName\" role=\"alert\" style=\"margin:6px 0 0;font-size:15px;color:#A32D2D;font-weight:600\">{{ O.err.fName }}</p></sc-if></div>\n          <div><label for=\"ktahv-oc-fPhone\" style=\"display:block;font-weight:700;font-size:15.5px;margin-bottom:6px\">WhatsApp / téléphone <span aria-hidden=\"true\" style=\"color:#A32D2D\">*</span> <span style=\"font-weight:400;color:#75695A\">— pour que le médecin puisse vous joindre</span></label><div style=\"display:grid;grid-template-columns:110px minmax(0,1fr);gap:10px\"><input id=\"ktahv-oc-fCode\" type=\"text\" aria-label=\"Indicatif pays\" autoComplete=\"tel-country-code\" required=\"{{ true }}\" aria-required=\"true\" aria-invalid=\"{{ oErr.fCode }}\" aria-describedby=\"oerr-fCode\" value=\"{{ ov.fCode }}\" onChange=\"{{ oSet }}\"><input id=\"ktahv-oc-fPhone\" type=\"tel\" autoComplete=\"tel-national\" placeholder=\"98765 43210\" required=\"{{ true }}\" aria-required=\"true\" aria-invalid=\"{{ oErr.fPhone }}\" aria-describedby=\"oerr-fPhone\" value=\"{{ ov.fPhone }}\" onChange=\"{{ oSet }}\"></div><sc-if value=\"{{ oErr.fCode }}\" hint-placeholder-val=\"{{ false }}\"><p id=\"oerr-fCode\" role=\"alert\" style=\"margin:6px 0 0;font-size:15px;color:#A32D2D;font-weight:600\">{{ countryCodeError }}</p></sc-if><sc-if value=\"{{ oErr.fPhone }}\" hint-placeholder-val=\"{{ false }}\"><p id=\"oerr-fPhone\" role=\"alert\" style=\"margin:6px 0 0;font-size:15px;color:#A32D2D;font-weight:600\">{{ O.err.fPhone }}</p></sc-if></div>\n          <div><label for=\"ktahv-oc-fEmail\" style=\"display:block;font-weight:700;font-size:15.5px;margin-bottom:6px\">E-mail <span aria-hidden=\"true\" style=\"color:#A32D2D\">*</span></label><input id=\"ktahv-oc-fEmail\" type=\"email\" autoComplete=\"email\" placeholder=\"you@example.com\" required=\"{{ true }}\" aria-required=\"true\" aria-invalid=\"{{ oErr.fEmail }}\" aria-describedby=\"oerr-fEmail\" value=\"{{ ov.fEmail }}\" onChange=\"{{ oSet }}\"><sc-if value=\"{{ oErr.fEmail }}\" hint-placeholder-val=\"{{ false }}\"><p id=\"oerr-fEmail\" role=\"alert\" style=\"margin:6px 0 0;font-size:15px;color:#A32D2D;font-weight:600\">{{ O.err.fEmail }}</p></sc-if></div>\n          <div><label for=\"ktahv-oc-fCountry\" style=\"display:block;font-weight:700;font-size:15.5px;margin-bottom:6px\">Pays de résidence <span aria-hidden=\"true\" style=\"color:#A32D2D\">*</span></label><input id=\"ktahv-oc-fCountry\" type=\"text\" autoComplete=\"country-name\" placeholder=\"Commencez à saisir — p. ex. Allemagne\" required=\"{{ true }}\" aria-required=\"true\" aria-invalid=\"{{ oErr.fCountry }}\" aria-describedby=\"oerr-fCountry\" value=\"{{ ov.fCountry }}\" onChange=\"{{ oSet }}\"><sc-if value=\"{{ oErr.fCountry }}\" hint-placeholder-val=\"{{ false }}\"><p id=\"oerr-fCountry\" role=\"alert\" style=\"margin:6px 0 0;font-size:15px;color:#A32D2D;font-weight:600\">{{ O.err.fCountry }}</p></sc-if></div>\n          <button id=\"ktahv-oc-toStep2\" type=\"submit\" style=\"display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 28px;background:#5A4420;color:#F7F4EA;border:0;border-radius:4px;font-weight:700;font-size:16px;cursor:pointer;align-self:flex-start\" style-hover=\"background:#3E2E14\">{{ O.card.step1Next }}</button>\n        </form>\n      </sc-if>\n      <sc-if value=\"{{ isStep2 }}\" hint-placeholder-val=\"{{ false }}\">\n        <form data-step=\"2\" noValidate=\"{{ true }}\" onSubmit=\"{{ toReview }}\" style=\"display:flex;flex-direction:column;gap:16px\">\n          <div><label for=\"ktahv-oc-fConcern\" style=\"display:block;font-weight:700;font-size:15.5px;margin-bottom:6px\">{{ O.card.step2.concern.label }} <span aria-hidden=\"true\" style=\"color:#A32D2D\">*</span></label><textarea id=\"ktahv-oc-fConcern\" placeholder=\"{{ O.card.step2.concern.placeholder }}\" required=\"{{ true }}\" aria-required=\"true\" aria-invalid=\"{{ oErr.fConcern }}\" aria-describedby=\"oerr-fConcern\" value=\"{{ ov.fConcern }}\" onChange=\"{{ oSet }}\"></textarea><sc-if value=\"{{ oErr.fConcern }}\" hint-placeholder-val=\"{{ false }}\"><p id=\"oerr-fConcern\" role=\"alert\" style=\"margin:6px 0 0;font-size:15px;color:#A32D2D;font-weight:600\">{{ O.card.step2.concern.error }}</p></sc-if></div>\n          <sc-for list=\"{{ chipGroups }}\" as=\"g\" hint-placeholder-count=\"4\">\n            <fieldset style=\"border:0;margin:0;padding:0;min-width:0\"><legend style=\"font-weight:700;font-size:15.5px;margin-bottom:8px;padding:0\">{{ g.label }} <span style=\"font-weight:400;color:#75695A\">{{ g.hint }}</span></legend>\n              <div role=\"group\" aria-label=\"{{ g.aria }}\" style=\"display:flex;flex-wrap:wrap;gap:8px\"><sc-for list=\"{{ g.chips }}\" as=\"c\" hint-placeholder-count=\"3\"><button type=\"button\" data-chip=\"{{ g.key }}\" aria-pressed=\"{{ c.on }}\" onClick=\"{{ c.toggle }}\" style=\"{{ c.style }}\">{{ c.label }}</button></sc-for></div>\n            </fieldset>\n          </sc-for>\n          <div style=\"display:flex;flex-wrap:wrap;gap:12px\"><button id=\"ktahv-oc-backTo1\" type=\"button\" onClick=\"{{ backTo1 }}\" style=\"display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 22px;background:#fff;color:#5A4420;border:2px solid #5A4420;border-radius:4px;font-weight:700;font-size:16px;cursor:pointer\">{{ O.card.step2.back }}</button><button id=\"ktahv-oc-toReview\" type=\"submit\" style=\"display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 28px;background:#5A4420;color:#F7F4EA;border:0;border-radius:4px;font-weight:700;font-size:16px;cursor:pointer\" style-hover=\"background:#3E2E14\">{{ O.card.step2.next }}</button></div>\n        </form>\n      </sc-if>\n      <sc-if value=\"{{ isReview }}\" hint-placeholder-val=\"{{ false }}\">\n        <form data-step=\"review\" noValidate=\"{{ true }}\" onSubmit=\"{{ submitReq }}\" style=\"display:flex;flex-direction:column;gap:16px\">\n          <p style=\"margin:0;font-size:16.5px;line-height:1.6;color:#514a3f\">{{ O.card.review.intro }}</p>\n          <dl id=\"ktahv-oc-reviewList\" style=\"margin:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 18px;font-size:16px;background:#F7F4EA;border-radius:4px;padding:16px 18px\"><sc-for list=\"{{ reviewRows }}\" as=\"r\" hint-placeholder-count=\"10\"><dt style=\"color:#514a3f\">{{ r.k }}</dt><dd style=\"margin:0;font-weight:600;overflow-wrap:anywhere\">{{ r.v }}</dd></sc-for></dl>\n          <label style=\"display:flex;align-items:flex-start;gap:12px;font-size:15.5px;line-height:1.5\"><input type=\"checkbox\" id=\"ktahv-oc-fConsent\" checked=\"{{ ov.consent }}\" onChange=\"{{ oConsent }}\" aria-invalid=\"{{ oErr.consent }}\" aria-describedby=\"oerr-consent\" style=\"margin-top:2px\"><span>{{ consentText }} <span aria-hidden=\"true\" style=\"color:#A32D2D\">*</span></span></label>\n          <sc-if value=\"{{ oErr.consent }}\" hint-placeholder-val=\"{{ false }}\"><p id=\"oerr-consent\" role=\"alert\" style=\"margin:-8px 0 0;font-size:15px;color:#A32D2D;font-weight:600\">{{ O.card.review.consentError }}</p></sc-if>\n          <p role=\"status\" aria-live=\"polite\" style=\"margin:0;font-size:15px;color:#5A4420;font-weight:600\">{{ oSubmitError }}</p>\n          <div style=\"display:flex;flex-wrap:wrap;gap:12px\"><button id=\"ktahv-oc-backTo2\" type=\"button\" onClick=\"{{ backTo2 }}\" style=\"display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 22px;background:#fff;color:#5A4420;border:2px solid #5A4420;border-radius:4px;font-weight:700;font-size:16px;cursor:pointer\">{{ O.card.review.back }}</button><button id=\"ktahv-oc-submitReq\" type=\"submit\" style=\"display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 28px;background:#5A4420;color:#F7F4EA;border:0;border-radius:4px;font-weight:700;font-size:16px;cursor:pointer\" style-hover=\"background:#3E2E14\">{{ O.card.review.submit }}</button></div>\n          <p style=\"margin:0;font-size:14.5px;line-height:1.55;color:#514a3f\">{{ reviewNote }}</p>\n        </form>\n      </sc-if>\n      <sc-if value=\"{{ isDone }}\" hint-placeholder-val=\"{{ false }}\">\n        <div data-step=\"done\" tabIndex=\"-1\" style=\"display:flex;flex-direction:column;gap:14px\">\n          <h3 style=\"font-family:'Marcellus',serif;font-size:26px;line-height:1.25;margin:0\">{{ oDoneHeading }}</h3>\n          <p style=\"margin:0;font-size:16.5px;line-height:1.6\">{{ oDoneBody }}</p>\n          <sc-if value=\"{{ oReceived }}\" hint-placeholder-val=\"{{ false }}\"><p role=\"status\" style=\"margin:0;font-size:15.5px;line-height:1.55;color:#5A4420;font-weight:600\">Merci — votre demande de consultation a bien été reçue.</p></sc-if><sc-if value=\"{{ oBlocked }}\" hint-placeholder-val=\"{{ true }}\"><p data-blocked=\"true\" role=\"status\" style=\"margin:0;font-size:15.5px;line-height:1.55;color:#5A4420;font-weight:600\">{{ O.card.done.blocked }}</p></sc-if>\n          <a data-wa-draft=\"true\" href=\"{{ waHref }}\" onClick=\"{{ guard }}\" rel=\"noopener\" style=\"display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 22px;background:#5A4420;color:#F7F4EA;border-radius:4px;font-weight:700;font-size:16px;align-self:flex-start\" style-hover=\"text-decoration:none;background:#3E2E14\">{{ oWhatsAppLabel }}</a>\n          <ol style=\"list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:10px\"><sc-for list=\"{{ O.card.done.steps }}\" as=\"s\" hint-placeholder-count=\"3\"><li style=\"display:grid;grid-template-columns:32px minmax(0,1fr);gap:12px;font-size:16px;line-height:1.55\"><span aria-hidden=\"true\" style=\"width:32px;height:32px;border-radius:50%;background:#EFE9DC;display:inline-flex;align-items:center;justify-content:center;font-weight:700\">{{ s.n }}</span><span><b>{{ s.b }}</b> {{ s.t }}</span></li></sc-for></ol>\n          <div style=\"display:flex;flex-wrap:wrap;gap:12px\"><button id=\"ktahv-oc-previewFromDone\" type=\"button\" onClick=\"{{ openPreview }}\" style=\"display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 22px;background:#fff;color:#5A4420;border:2px solid #5A4420;border-radius:4px;font-weight:700;font-size:16px;cursor:pointer\">{{ O.card.done.preview }}</button><button type=\"button\" onClick=\"{{ backTo2 }}\" style=\"display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 22px;background:transparent;color:#5A4420;border:0;font-weight:700;font-size:16px;cursor:pointer;text-decoration:underline\">Retour</button></div>\n        </div>\n      </sc-if>\n    </div>\n  </div>\n</section>\n<section aria-labelledby=\"band-h\" style=\"width:min(1220px,94%);margin:36px auto 0;padding:28px 0 0;border-top:1px solid #E9E2D3\">\n  <div style=\"font-weight:700;font-size:12.5px;letter-spacing:2.6px;color:#8F6212;text-transform:uppercase\">{{ O.band.eyebrow }}</div>\n  <h2 id=\"band-h\" style=\"font-family:'Marcellus',serif;font-size:clamp(26px,2.4vw,34px);line-height:1.2;margin:10px 0 8px;max-width:26ch;text-wrap:balance\">{{ O.band.h2 }}</h2>\n  <p style=\"margin:0 0 28px;font-size:17.5px;color:#514a3f;max-width:70ch\">{{ O.band.sub }}</p>\n  <ol style=\"list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:28px\"><sc-for list=\"{{ O.band.steps }}\" as=\"s\" hint-placeholder-count=\"3\"><li data-journey=\"true\" style=\"border-top:2px solid #C1882C;padding-top:18px\"><div style=\"font-weight:700;font-size:13px;letter-spacing:2.6px;color:#8F6212;text-transform:uppercase\">{{ s.n }}</div><h3 style=\"font-family:'Marcellus',serif;font-size:24px;line-height:1.25;margin:10px 0 10px\">{{ s.h3 }}</h3><p style=\"margin:0;font-size:17px;line-height:1.65;text-wrap:pretty\">{{ s.p }}</p><div style=\"margin-top:12px;font-size:15.5px;font-weight:700;color:#5A4420\">{{ s.meta }}</div></li></sc-for></ol>\n  <button id=\"ktahv-oc-openPreview\" type=\"button\" onClick=\"{{ openPreview }}\" style=\"display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 26px;margin-top:28px;background:#fff;color:#5A4420;border:2px solid #5A4420;border-radius:4px;font-weight:700;font-size:16px;cursor:pointer\">{{ O.band.previewBtn }}</button>\n</section>\n<section aria-labelledby=\"creds-h\" style=\"width:min(1220px,94%);margin:36px auto 0;padding:28px 0 0;border-top:1px solid #E9E2D3;display:flex;flex-direction:column;gap:28px\">\n  <div>\n    <div style=\"font-weight:700;font-size:12.5px;letter-spacing:2.6px;color:#8F6212;text-transform:uppercase\">{{ O.creds.eyebrow }}</div>\n    <h2 id=\"creds-h\" style=\"font-family:'Marcellus',serif;font-size:clamp(26px,2.4vw,34px);line-height:1.2;margin:10px 0 14px;text-wrap:balance\">{{ O.creds.h2 }}</h2>\n    <p style=\"margin:0 0 24px;font-size:17.5px;line-height:1.65;text-wrap:pretty\">{{ O.creds.lede }}</p>\n    <dl data-stats=\"true\" style=\"margin:0;display:flex;flex-direction:column;gap:12px\"><sc-for list=\"{{ O.creds.stats }}\" as=\"s\" hint-placeholder-count=\"4\"><div style=\"background:#fff;border:1px solid #E0D7C4;border-radius:4px;padding:16px 18px\"><dt style=\"font-family:'Marcellus',serif;font-size:24px\">{{ s.k }}</dt><dd style=\"margin:4px 0 0;font-size:15.5px;color:#514a3f;line-height:1.5\">{{ s.v }}</dd></div></sc-for></dl>\n  </div>\n  <figure data-founder=\"true\" style=\"margin:0;background:#2A2014;color:#F7F4EA;border-radius:4px;padding:32px 36px\"><blockquote style=\"margin:0;font-family:'Marcellus',serif;font-size:21px;line-height:1.45;text-wrap:pretty\">{{ O.creds.quote }}</blockquote><figcaption style=\"margin-top:18px;font-size:15.5px;color:#EEB41E;display:flex;align-items:center;gap:14px\"><img data-ahv-portrait=\"1\" src=\"/ahv/assets/img/team-gita1.webp\" alt=\"Mme Gita Ramesh\" width=\"64\" height=\"64\" loading=\"lazy\" style=\"width:64px;height:64px;border-radius:50%;object-fit:cover;flex:none;display:block\"><span><b style=\"color:#F7F4EA\">{{ O.creds.by }}</b><br>{{ O.creds.byRole }} <em>{{ O.creds.byBook }}</em></span></figcaption></figure>\n</section>\n<section aria-labelledby=\"rev-h\" style=\"width:min(1220px,94%);margin:32px auto 0;padding:24px 20px;box-sizing:border-box;background:#fff;border:1px solid #E0D7C4;border-radius:4px\">\n  <div style=\"font-weight:700;font-size:12.5px;letter-spacing:2.6px;color:#8F6212;text-transform:uppercase\">{{ O.reviews.eyebrow }}</div>\n  <h2 id=\"rev-h\" style=\"font-family:'Marcellus',serif;font-size:clamp(24px,2.2vw,30px);line-height:1.25;margin:10px 0 10px\">{{ O.reviews.h2 }}</h2>\n  <p style=\"margin:0 0 20px;font-size:17px;line-height:1.65;max-width:70ch\">{{ O.reviews.lede }}</p>\n  <a href=\"{{ O.reviews.link.href }}\" onClick=\"{{ guard }}\" rel=\"noopener\" style=\"display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 22px;border:2px solid #5A4420;border-radius:4px;color:#5A4420;font-weight:700;font-size:16px;background:#fff\" style-hover=\"text-decoration:none;background:#F7F4EA\">{{ O.reviews.link.label }}</a>\n</section>\n<section aria-labelledby=\"ofaq-h\" style=\"width:min(1220px,94%);margin:36px auto 0;padding:28px 0 0;border-top:1px solid #E9E2D3\">\n  <div style=\"font-weight:700;font-size:12.5px;letter-spacing:2.6px;color:#8F6212;text-transform:uppercase\">{{ O.faq.eyebrow }}</div>\n  <h2 id=\"ofaq-h\" style=\"font-family:'Marcellus',serif;font-size:clamp(26px,2.4vw,34px);line-height:1.2;margin:10px 0 24px\">{{ O.faq.h2 }}</h2>\n  <div style=\"display:flex;flex-direction:column;gap:10px;max-width:80ch\"><sc-for list=\"{{ ocFaq }}\" as=\"f\" hint-placeholder-count=\"8\"><details data-faq=\"true\" style=\"background:#fff;border:1px solid #E0D7C4;border-radius:4px\"><summary style=\"list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;padding:10px 20px;cursor:pointer;font-weight:700;font-size:17px;line-height:1.4\"><span>{{ f.q }}</span><span aria-hidden=\"true\" style=\"color:#C1882C;flex:none\">◆</span></summary><p style=\"margin:0;padding:0 20px 18px;font-size:16.5px;line-height:1.65\">{{ f.a }}</p></details></sc-for></div>\n</section>\n<nav aria-labelledby=\"more-h\" style=\"width:min(1220px,94%);margin:48px auto 0;padding:32px 0 72px;border-top:1px solid #E9E2D3\">\n  <h2 id=\"more-h\" style=\"font-weight:700;font-size:13px;letter-spacing:2.6px;color:#8F6212;text-transform:uppercase;font-family:'Mulish',sans-serif;margin:0 0 10px\">{{ O.more.eyebrow }}</h2>\n  <ul style=\"list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 28px\"><sc-for list=\"{{ moreLinks }}\" as=\"k\" hint-placeholder-count=\"3\"><li><a href=\"{{ k.url }}\" onClick=\"{{ guard }}\" style=\"display:inline-flex;align-items:center;gap:10px;min-height:44px;font-weight:600;font-size:16.5px\"><span aria-hidden=\"true\" style=\"color:#C1882C\">◆</span>{{ k.label }}</a></li></sc-for></ul>\n</nav>\n<sc-if value=\"{{ previewOpen }}\" hint-placeholder-val=\"{{ false }}\">\n<div id=\"ktahv-oc-previewModal\" role=\"dialog\" aria-modal=\"true\" aria-label=\"Aperçu du résumé de santé avant la consultation\" onKeyDown=\"{{ modalKey }}\" style=\"position:fixed;inset:0;z-index:200;display:flex;justify-content:flex-end\">\n  <div id=\"ktahv-oc-previewOv\" onClick=\"{{ closePreview }}\" style=\"position:absolute;inset:0;background:rgba(42,32,20,.55)\"></div>\n  <aside role=\"document\" tabIndex=\"-1\" style=\"position:relative;width:min(560px,100%);height:100%;overflow:auto;background:#F7F4EA;box-shadow:-20px 0 50px rgba(20,14,6,.35);padding:20px 18px 40px;box-sizing:border-box;display:flex;flex-direction:column;gap:18px\">\n    <div style=\"display:flex;justify-content:space-between;align-items:flex-start;gap:12px\">\n      <div><div style=\"font-weight:700;font-size:12.5px;letter-spacing:2.6px;color:#8F6212;text-transform:uppercase\">{{ O.preview.eyebrow }}</div><h3 style=\"font-family:'Marcellus',serif;font-size:26px;line-height:1.25;margin:8px 0 0\">{{ O.preview.h3 }}</h3></div>\n      <button id=\"ktahv-oc-closePreview\" type=\"button\" aria-label=\"Fermer l’aperçu\" onClick=\"{{ closePreview }}\" style=\"flex:none;width:48px;height:48px;border-radius:50%;border:1px solid #E0D7C4;background:#fff;font-size:22px;cursor:pointer;color:#2A2118\">×</button>\n    </div>\n    <p style=\"margin:0;font-size:15.5px;line-height:1.6;color:#514a3f;background:#fff;border:1px solid #E0D7C4;border-radius:4px;padding:14px 16px\">{{ previewNote }}</p>\n    <sc-for list=\"{{ previewSections }}\" as=\"s\" hint-placeholder-count=\"5\">\n      <section style=\"display:flex;flex-direction:column;gap:12px\">\n        <h4 style=\"font-family:'Marcellus',serif;font-size:20px;line-height:1.25;margin:0\">{{ s.h4 }}</h4>\n        <sc-if value=\"{{ s.desc }}\" hint-placeholder-val=\"{{ false }}\"><p style=\"margin:-6px 0 0;font-size:15px;color:#514a3f\">{{ s.desc }}</p></sc-if>\n        <sc-for list=\"{{ s.items }}\" as=\"it\" hint-placeholder-count=\"2\">\n          <div>\n            <sc-if value=\"{{ it.label }}\" hint-placeholder-val=\"{{ false }}\"><div style=\"font-weight:700;font-size:15px;margin-bottom:6px\">{{ it.label }}</div></sc-if>\n            <sc-if value=\"{{ it.isText }}\" hint-placeholder-val=\"{{ false }}\"><input type=\"text\" placeholder=\"{{ it.placeholder }}\" aria-label=\"{{ it.ariaLabel }}\" readOnly=\"{{ true }}\" tabIndex=\"-1\" style=\"background:#fff\"></sc-if>\n            <sc-if value=\"{{ it.isChips }}\" hint-placeholder-val=\"{{ false }}\"><div style=\"display:flex;flex-wrap:wrap;gap:8px\"><sc-for list=\"{{ it.chips }}\" as=\"c\" hint-placeholder-count=\"3\"><span style=\"display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border:1px solid #75695A;border-radius:20px;font-size:15px;background:#fff\">{{ c }}</span></sc-for></div></sc-if>\n            <sc-if value=\"{{ it.isNote }}\" hint-placeholder-val=\"{{ false }}\"><p style=\"margin:0;font-size:15px;color:#514a3f\">{{ it.text }}</p></sc-if>\n          </div>\n        </sc-for>\n      </section>\n    </sc-for>\n    <button id=\"ktahv-oc-closePreview2\" type=\"button\" onClick=\"{{ closePreview }}\" style=\"display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 26px;background:#5A4420;color:#F7F4EA;border:0;border-radius:4px;font-weight:700;font-size:16px;cursor:pointer;align-self:flex-start\">{{ O.preview.close2 }}</button>\n  </aside>\n</div>\n</sc-if>\n</div>\n</sc-if>\n\n</main>\n<dc-import name=\"AHV Chrome Footer\" narrow=\"true\" hint-size=\"100%,900px\"></dc-import>\n</div>\n",
  "logic": "\nclass Component extends DCLogic {\n  state = { cv: { fname: '', country_code: '', phone: '', programme: '', email: '', message: '' }, cErr: {}, cValid: false, cNotice: '', cPending: false,\n            av: {}, aErr: {}, aValid: false, aNotice: '', aPending: false, jv: {}, jErr: {}, jConsentErr: false, jValid: false, jFileName: '', jNotice: '',\n            step: 1, ov: { fName: '', fCode: '+91', fPhone: '', fEmail: '', fCountry: '', fConcern: '', duration: '', who: window.AHV_LEAD_RECEIPT.canonicalOption('who', 0, ''), lang: window.AHV_LEAD_RECEIPT.canonicalOption('lang', 0, ''), time: '', consent: false }, oErr: {}, oSubmitError: '', oReceived: false, previewOpen: false,\n            lcTab: 0, lcStep: 1, lcNotice: '', lcConsultNotice: '', leNotice: '' };\n  route() { return window.AHV_ENQUIRY_RENDER ? window.AHV_ENQUIRY_RENDER.resolveRoute(this.props.route) : null; }\n  componentDidMount() { const R = this.route(); if (R) { window.AHV_ENQUIRY_RENDER.applyHead(R); this._head = R.path; } this._sheet = React.createRef(); this._done = React.createRef(); this._aFiles = {}; this._jFiles = {};\n    if (R && R.path === '/contact-us/' && location.hash.startsWith('#message')) {\n      const P = window.AHV_ENQUIRY_RENDER, draft = P.homeEnquiryDraft();\n      if (draft) this.setState(s => ({ cv: Object.assign({}, s.cv, { message: s.cv.message || draft }) }));\n      setTimeout(() => P.focusEnquiry(), 100);\n    }\n  }\n  componentDidUpdate() { const R = this.route(); if (R && R.path !== this._head) { window.AHV_ENQUIRY_RENDER.applyHead(R); this._head = R.path; } }\n  focusWhen(sel, n) { const el = document.querySelector(sel); if (el) { el.focus(); return; } if ((n || 0) < 20) setTimeout(() => this.focusWhen(sel, (n || 0) + 1), 30); }\n  focusFirstInvalid(sel) { setTimeout(() => { const el = document.querySelector(sel + ' [aria-invalid=\"true\"]'); if (el) el.focus(); }, 0); }\n  tracking() { const q = new URLSearchParams(location.search); const get = k => (q.get(k) || '').slice(0, 190); return { site_language: window.AHV_LEAD_RECEIPT.siteLanguage(), utm_source: get('utm_source'), utm_medium: get('utm_medium'), utm_campaign: get('utm_campaign'), utm_term: get('utm_term'), utm_content: get('utm_content'), gclid: get('gclid'), fbclid: get('fbclid'), lead_source_url: location.href.slice(0, 500), referrer: (document.referrer || '').slice(0, 500) }; }\n  async postLead(payload) { const controller = new AbortController(); const timeout = setTimeout(() => controller.abort(), 10000); try { const response = await fetch('/api/lead/', { method: 'POST', credentials: 'same-origin', cache: 'no-store', body: new Blob([JSON.stringify(Object.assign({}, this.tracking(), payload))], { type: 'application/json' }), signal: controller.signal }); const data = await response.json().catch(() => ({})); if (response.status === 503 && /_NOT_CONFIGURED$/.test(String(data.code || ''))) throw this.notConnected(); if (!response.ok || data.ok !== true) { const message = response.status === 429 ? 'Veuillez patienter avant de réessayer. Vos informations sont toujours dans le formulaire.' : 'Nous n’avons pas pu confirmer votre envoi. Vos informations sont toujours là ; veuillez réessayer.'; throw Object.assign(new Error(message), { userFacing: true }); } this.offerGuide(data.guideUrl); return data; } catch (error) { if (error && (error.notConnected || error.userFacing)) throw error; throw new Error('Nous n’avons pas pu confirmer votre envoi. Vérifiez votre connexion et réessayez.'); } finally { clearTimeout(timeout); } }\n  async uploadApplicationFile(file, purpose, submissionToken) { if (file && file.size > 4 * 1024 * 1024) throw Object.assign(new Error('Le fichier sélectionné dépasse 4 Mo. Veuillez choisir un fichier de moins de 4 Mo. Vos informations sont toujours là.'), { userFacing: true }); const body = new FormData(); body.append('file', file); body.append('purpose', purpose); body.append('submissionToken', submissionToken); const controller = new AbortController(); const timeout = setTimeout(() => controller.abort(), 15000); try { const response = await fetch('/api/application-upload/', { method: 'POST', credentials: 'same-origin', cache: 'no-store', body, signal: controller.signal }); const data = await response.json().catch(() => ({})); if (response.status === 503 && /_NOT_CONFIGURED$/.test(String(data.code || ''))) throw this.notConnected(); if (response.status === 413 || data.code === 'FILE_TOO_LARGE') throw Object.assign(new Error('Le fichier sélectionné dépasse 4 Mo. Veuillez choisir un fichier de moins de 4 Mo. Vos informations sont toujours là.'), { userFacing: true }); if (!response.ok || data.ok !== true || !data.fileUrl) throw Object.assign(new Error('Le fichier sélectionné n’a pas pu être enregistré de manière sécurisée. Vos informations sont toujours là ; veuillez réessayer.'), { userFacing: true }); return data.fileUrl; } catch (error) { if (error && (error.notConnected || error.userFacing)) throw error; throw new Error('Le fichier sélectionné n’a pas pu être enregistré de manière sécurisée. Vos informations sont toujours là ; veuillez réessayer.'); } finally { clearTimeout(timeout); } }\n  notConnected() { const error = new Error(''); error.notConnected = true; return error; }\n  offerGuide(url) { if (typeof url !== 'string' || url.charAt(0) !== '/') return; const link = document.createElement('a'); link.href = url; link.download = ''; link.hidden = true; document.body.appendChild(link); link.click(); link.remove(); }\n  renderVals() {\n    const P = window.AHV_ENQUIRY_RENDER, D = window.AHV_ENQUIRY || {}; const R = this.route();\n    const guard = () => {}; /* preview-only nav guard neutralised for the published site */\n    if (!R || !P) return { guard, showBreadcrumb: false, crumbs: [], crumbLast: '', h1: '', isContact: false, isApply: false, isJob: false, isConsult: false, isLegacyContact: false, isLegacyEnquiry: false };\n    const A = P.A, V = P.V, inl = (tree, key) => P.inline(tree, key, guard);\n    const abs = h => h && (h.startsWith('/') ? A + h : h);\n    const chain = R.breadcrumb; const crumbs = chain.slice(0, -1).map(c => ({ url: A + c.path, label: c.label }));\n    const st = this.state;\n    const out = { guard, showBreadcrumb: !R.breadcrumbOmitted, crumbs, crumbLast: chain[chain.length - 1].label, h1: R.h1, heroGarden: R.hero === 'garden', heroResume: R.hero === 'resume',\n      isContact: R.variant === 'contact', isApply: R.variant === 'careers-apply', isJob: R.variant === 'job-detail', isConsult: R.variant === 'consultation',\n      isLegacyContact: R.variant === 'legacy-contact', isLegacyEnquiry: R.variant === 'legacy-enquiry', heroLegacy: R.hero === 'legacy-cover',\n      noFile: (e) => { e.target.value = ''; } };\n    const primary = 'display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 26px;background:#5A4420;color:#F7F4EA;border-radius:4px;font-weight:700;font-size:16px';\n    const ghost = 'display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 26px;background:#fff;color:#5A4420;border:2px solid #5A4420;border-radius:4px;font-weight:700;font-size:16px';\n    if (R.variant === 'contact') {\n      const C = R;\n      out.chatIcon = P.channelIcon('#chat');\n      out.openPriya = (e) => { const button = document.querySelector('.ahv-contact-chat'); if (button) { e.preventDefault(); button.click(); } };\n      const req = { fname: V.name(st.cv.fname), phone: V.phone(st.cv.phone), email: V.email(st.cv.email) };\n      out.C = Object.assign({}, C, { also: inl(C.router.also.tree, 'also'), addr1: inl(C.visit.addr1.tree, 'a1'), addr2: inl(C.visit.addr2.tree, 'a2'), h0: C.visit.hours[0], h1t: C.visit.hours[1], h2t: C.visit.hours[2], h3t: C.visit.hours[3],\n        heroCtas: C.heroCtas.map((a, i) => ({ href: abs(a.href), icon: P.channelIcon(a.href), label: a.label, style: i === 0 ? primary : ghost })),\n        tiles: C.router.tiles.map(t => ({ h3: t.h3, p: t.p, go: t.go, icon: P.channelIcon(t.href), url: t.encodedEmail ? A + '/contact-us/#message' : abs(t.href), rel: t.target ? 'noopener' : undefined })),\n        chans: C.channels.items.map((ch, i) => ({ h3: ch.h3, meta: ch.meta, best: inl(ch.best.tree, 'ch' + i), links: ch.links.map(l => ({ href: l.href ? abs(l.href) : false, encodedEmail: !!l.encodedEmail, icon: P.channelIcon(l.href), label: l.label, rel: l.target ? 'noopener' : undefined })) })),\n        asideRows: C.aside.rows.map((r, i) => inl(r.tree, 'ar' + i)),\n        visitLinks: C.visit.links.map(l => ({ href: l.href ? abs(l.href) : false, encodedEmail: !!l.encodedEmail, icon: P.channelIcon(l.href), label: l.label })),\n        faqItems: C.faq.items.map((f, i) => ({ q: f.q, a: f.a.tree ? inl(f.a.tree, 'fa' + i) : f.a.text })) });\n      out.programmeOptions = C.form.fields.find(f => f.name === 'programme').options.map((label, i) => ({ label, value: window.AHV_LEAD_RECEIPT.canonicalOption('programme', i, label) }));\n      out.cv = st.cv; out.cErr = st.cErr; out.cValid = st.cValid; out.cNotice = st.cNotice; out.cPending = st.cPending;\n      out.cSet = (e) => { const n = e.target.name; this._cToken = null; this.setState(s => ({ cv: Object.assign({}, s.cv, { [n]: e.target.value }), cErr: Object.assign({}, s.cErr, { [n]: false }), cValid: false, cNotice: '', cPending: false })); };\n      out.contactSubmit = async (e) => { e.preventDefault(); if (this._cBusy) return; const err = { fname: !req.fname, country_code: !(st.cv.country_code || '').trim(), phone: !req.phone, email: !req.email }; const ok = !Object.values(err).some(Boolean); this.setState({ cErr: err, cValid: false, cNotice: '', cPending: false }); if (!ok) { this.focusFirstInvalid('[data-form=\"contact\"]'); return; } if (!this._cToken) this._cToken = crypto.randomUUID(); this._cBusy = true; this.setState({ cNotice: 'Envoi en cours…' }); const cv = st.cv; try { await this.postLead({ form: location.pathname === '/enquiry-form/' ? 'enquiry-form' : 'contact', submissionToken: this._cToken, fields: { full_name: cv.fname, countrycode: cv.country_code, phone: cv.phone, programme: cv.programme, email: cv.email, message: cv.message } }); this.setState({ cValid: true, cNotice: 'Merci — vos informations ont bien été reçues.' }); } catch (error) { this.setState({ cValid: false, cPending: !!error.notConnected, cNotice: error.notConnected ? '' : error.message }); } finally { this._cBusy = false; } };\n    }\n    if (R.variant === 'careers-apply') {\n      const AP = R; out.AP = Object.assign({}, AP, { intro: inl(AP.intro.tree, 'in'), about: AP.about.map(g => ({ heading: g.heading, links: g.links.map(k => ({ url: A + k.href, label: k.label })) })) });\n      out.applyFields = AP.form.groups.map((g, i) => {\n        const id = 'ap-' + (g.name || g.group).replace(/[^a-z0-9]+/gi, '-').toLowerCase();\n        const base = { group: g.group, name: g.name, id, label: g.label || g.group, type: g.type, isGroup: false, isPair: false, isSelect: false, isTextarea: false, isFile: false, isInput: false, span: '', required: !!g.required, ariaReq: g.required ? 'true' : undefined, invalid: !!st.aErr[g.name], maxlength: g.attrs && g.attrs.maxlength ? Number(g.attrs.maxlength) : undefined, autocomplete: g.attrs && g.attrs.autocomplete ? g.attrs.autocomplete : undefined, accept: g.name === 'file-803' ? 'image/jpeg,image/png,image/webp' : (g.name === 'file-809' ? '.pdf,.doc,.docx' : (g.attrs && g.attrs.accept ? g.attrs.accept : undefined)), options: (g.type === 'radio' || g.type === 'checkbox' ? (g.options || []).map((label, k) => ({ label, value: window.AHV_LEAD_RECEIPT.canonicalOption(g.name, k, label) })) : g.options || []) };\n        if (g.type === 'checkbox' || g.type === 'radio') base.isGroup = true;\n        else if (g.type === 'select-pair') { base.isPair = true; base.selects = g.selects.map((s, k) => ({ name: s.name, options: s.options, aria: g.group + (k === 0 ? ' — ans' : ' — mois') })); }\n        else if (g.type === 'select') base.isSelect = true;\n        else if (g.type === 'textarea') base.isTextarea = true;\n        else if (g.type === 'file') base.isFile = true;\n        else { base.isInput = true; if (g.type === 'email' || g.group === 'Address') base.span = ''; }\n        return base;\n      });\n      out.aValid = st.aValid; out.aNotice = st.aNotice; out.aPending = st.aPending;\n      out.aSet = (e) => { const n = e.target.name; this._aToken = null; this.setState(s => ({ av: Object.assign({}, s.av, { [n]: e.target.value }), aErr: Object.assign({}, s.aErr, { [n]: false }), aValid: false, aNotice: '', aPending: false })); };\n      out.aGroupSet = (e) => { const n = e.target.name; const value = e.target.value; this._aToken = null; this.setState(s => { const next = Object.assign({}, s.av); if (e.target.type === 'checkbox') { const current = Array.isArray(next[n]) ? next[n] : []; next[n] = e.target.checked ? Array.from(new Set(current.concat(value))) : current.filter(x => x !== value); } else next[n] = value; return { av: next, aErr: Object.assign({}, s.aErr, { [n]: false }), aValid: false, aNotice: '', aPending: false }; }); };\n      out.aFile = (e) => { const file = e.target.files && e.target.files[0] ? e.target.files[0] : null; this._aFiles[e.target.name] = file; this._aToken = null; this.setState({ aValid: false, aNotice: '', aPending: false }); };\n      out.applySubmit = async (e) => { e.preventDefault(); if (this._aBusy) return; const err = {}; AP.form.groups.forEach(g => { const value = st.av[g.name]; if (g.required && (Array.isArray(value) ? value.length === 0 : !(value || '').toString().trim())) err[g.name] = true; }); const ok = Object.keys(err).length === 0; this.setState({ aErr: err, aValid: false, aNotice: '', aPending: false }); if (!ok) { this.focusFirstInvalid('[data-form=\"apply\"]'); return; } if (!this._aToken) this._aToken = crypto.randomUUID(); this._aBusy = true; this.setState({ aNotice: 'Envoi en cours…' }); const av = st.av; try { const photoRef = this._aFiles['file-803'] ? await this.uploadApplicationFile(this._aFiles['file-803'], 'photo', this._aToken) : ''; const resumeRef = this._aFiles['file-809'] ? await this.uploadApplicationFile(this._aFiles['file-809'], 'resume', this._aToken) : ''; await this.postLead({ form: 'apply-now', submissionToken: this._aToken, fields: { application_type: 'careers-apply', fname: av.fname, lname: av.lname, post_applied_for: av['post-applied-for'], job_reference_code: av['job-reference-code'], gender: av.gender, dob: av.dob, address: av.address, country: av.country, state: av.state, city: av.city, phone: av.phone, mobile: av.mobile, email: av.email, highest_qualification: av['highest-qualification'], experience_years: av['select-461'], experience_months: av['select-159'], current_organization: av['current-organizatione'], current_designation: av['current-designation'], current_location: av['current-location'], valid_passport: av['radio-448'], industry: av['checkbox-758[]'], photo_url: photoRef, resume_url: resumeRef } }); this.setState({ aValid: true, aNotice: 'Merci — les informations de votre candidature ont bien été reçues.' }); } catch (error) { this.setState({ aValid: false, aPending: !!error.notConnected, aNotice: error.notConnected ? '' : error.message }); } finally { this._aBusy = false; } };\n    }\n    if (R.variant === 'job-detail') {\n      const J = R;\n      out.J = Object.assign({}, J, { consentLabel: 'En utilisant ce formulaire, vous acceptez le stockage et le traitement de vos données par ce site web.' });\n      out.jobSections = J.sections.map((s, i) => ({ heading: s.heading, body: s.blocks.map((b, k) => b.p ? React.createElement('p', { key: 'p' + k, style: { margin: '0 0 12px', fontSize: '17.5px', lineHeight: 1.7 } }, ...(b.p.tree ? inl(b.p.tree, 'jp' + i + k) : [b.p.text])) : React.createElement('ul', { key: 'u' + k, style: { margin: '0 0 12px', padding: '0 0 0 26px' } }, ...b.ul.map((li, m) => React.createElement('li', { key: m, style: { margin: '0 0 8px', fontSize: '17.5px', lineHeight: 1.7, overflowWrap: 'anywhere' } }, ...inl(li, 'jl' + i + k + m))))) }));\n      out.jobFields = J.form.fields.filter(f => f.type !== 'checkbox').map(f => { const kind = st.jErr[f.name]; const errId = f.id + '-error';\n        return { id: f.id, name: f.name, label: f.label, type: f.type, isTextarea: f.type === 'textarea', isFile: f.type === 'file', isInput: !['textarea', 'file'].includes(f.type), accept: f.accept || undefined,\n          invalid: !!kind, errId: errId, describedBy: kind ? errId : undefined,\n          errorText: kind === 'email' ? 'Saisissez une adresse e-mail valide, par exemple name@example.com.' : (kind === 'file' ? 'Choisissez un fichier à joindre.' : 'Ce champ est obligatoire.') }; });\n      out.jFile = (e) => { const fs = e.target.files; const file = fs && fs.length ? fs[0] : null; const n = file ? file.name : ''; const nm = e.target.name; this._jFiles[nm] = file; this._jToken = null; this.setState(s => ({ jFileName: n, jErr: Object.assign({}, s.jErr, { [nm]: false }), jValid: false, jNotice: '' })); };\n      out.jConsentErr = st.jConsentErr; out.jValid = st.jValid; out.jNotice = st.jNotice;\n      out.jSet = (e) => { const n = e.target.name; const v = e.target.type === 'checkbox' ? e.target.checked : e.target.value; this._jToken = null; this.setState(s => ({ jv: Object.assign({}, s.jv, { [n]: v }), jErr: Object.assign({}, s.jErr, { [n]: false }), jConsentErr: n === 'awsm_form_privacy_policy' ? false : s.jConsentErr, jValid: false, jNotice: '' })); };\n      out.jobSubmit = async (e) => { e.preventDefault(); if (this._jBusy) return; const err = {}; J.form.fields.forEach(f => { if (f.type === 'checkbox') return; if (f.type === 'file') { if (!st.jFileName) err[f.name] = 'file'; return; } const value = (st.jv[f.name] || '').toString().trim(); if (!value) { err[f.name] = 'required'; return; } if ((f.type === 'email' || /email/i.test(f.name)) && !V.email(value)) err[f.name] = 'email'; }); const cErr = st.jv.awsm_form_privacy_policy !== true; const ok = Object.keys(err).length === 0 && !cErr; this.setState({ jErr: err, jConsentErr: cErr, jValid: false, jNotice: '' }); if (!ok) { this.focusFirstInvalid('[data-form=\"job\"]'); return; } if (!this._jToken) this._jToken = crypto.randomUUID(); this._jBusy = true; this.setState({ jNotice: 'Envoi en cours…' }); const jv = st.jv; try { const file = this._jFiles.awsm_file; if (!file) throw new Error('Veuillez choisir un fichier de CV.'); const fileRef = await this.uploadApplicationFile(file, 'application', this._jToken); await this.postLead({ form: 'apply-now', submissionToken: this._jToken, fields: { application_type: 'job-detail', full_name: jv.awsm_applicant_name, email: jv.awsm_applicant_email, phone: jv.awsm_applicant_phone, cover_letter: jv.awsm_applicant_letter, application_file_url: fileRef, privacy_consent: jv.awsm_form_privacy_policy === true } }); this.setState({ jValid: true, jNotice: 'Merci — votre candidature a bien été reçue.' }); } catch (error) { this.setState({ jValid: false, jNotice: error.message }); } finally { this._jBusy = false; } };\n    }\n    if (R.variant === 'legacy-contact' || R.variant === 'legacy-enquiry') {\n      const S = D.selects || {}; const guards = {\n        dependent: 'Sur le site source, cette liste est alimentée à partir du pays sélectionné via une extension côté serveur. La capture ne contient que l’option d’espace réservé : le champ reste donc désactivé et la liste d’options dépendante est consignée comme dépendance d’implémentation non résolue — aucun choix n’a été inventé.',\n        upload: 'Affiché uniquement pour la vérification de la définition du champ — tout fichier sélectionné est immédiatement effacé ; rien n’est lu, enregistré ni transmis.'\n      };\n      const decorate = (list) => list.map(f => Object.assign({}, f, { noteId: f.id + '-note', hasNote: !!f.note }));\n      const hid = names => (names || []).map(n => ({ name: n }));\n      out.L = R;\n      const lot = (R.lotus && R.lotus.src) ? R.lotus : ((D.images && D.images.legacyLotus) || null);\n      out.legacyLotusEl = (R.lotus && lot) ? React.createElement('img', { src: lot.src, alt: lot.alt || '',\n        width: lot.width, height: lot.height,\n        style: { position: 'absolute', left: '50%', top: '50%', transform: 'translate(-50%, -50%)', width: '95px', height: 'auto', display: 'block' } }) : null;\n      // Built as a React node (Article Reader heroEl pattern): a raw interpolated src attribute is prefetched\n      // by the browser before interpolation and 404s on the literal placeholder URL.\n      out.heroLegacyEl = R.heroImage ? React.createElement('img', { src: R.heroImage.src, alt: R.heroImage.alt || '',\n        width: R.heroImage.width, height: R.heroImage.height, 'data-source-pointer': R.heroImage.ptr || undefined,\n        style: { width: '100%', height: 'auto', display: 'block', opacity: .92 } }) : null;\n      const blocked = 'Ce formulaire est en cours de connexion. En attendant, veuillez écrire à info@kairali.com ou nous envoyer un message sur WhatsApp au +91 92898 38797.';\n      if (R.variant === 'legacy-enquiry') {\n        // Source body blocks (exact atoms in source order). Images are built as React nodes, never as a raw\n        // interpolated src, so no literal-template URL is ever requested.\n        // Own-source body: exact headings, paragraphs, lists, tables, inline links and images in source order.\n        // Own-source in-page jump (this route only): moves focus to the actual form, not just the scroll position.\n        out.leHasSkipLink = !!R.skipLink;\n        out.leSkip = R.skipLink ? { text: R.skipLink.text, href: R.skipLink.hrefRendered, ptr: R.skipLink.sourcePointer, sourceHref: R.skipLink.sourceHref } : { text: '', href: '', ptr: '', sourceHref: '' };\n        out.leSkipTo = (e) => { e.preventDefault(); const t = document.getElementById((R.skipLink && R.skipLink.targetId) || 'le-form'); if (t) t.focus(); };\n        out.leHasH2 = !!R.h2; out.leHasIntro = !!R.intro;\n        out.leHasBody = !!(R.body && R.body.length);\n        out.leBodyEl = P.sourceBlocks(R.body || [], guard);\n        // Own-source context navigation (labelled groups of source links), bound as navigation.\n        out.leHasContextNav = !!(R.contextNav && R.contextNav.groups && R.contextNav.groups.length);\n        out.leCtx = R.contextNav || { heading: '', headingPtr: '' };\n        out.leCtxGroups = ((R.contextNav || {}).groups || []).map(g => ({ title: g.title, ptr: g.ptr,\n          links: g.links.map(l => ({ label: l.label, ptr: l.ptr, url: /^https?:/i.test(l.href) ? l.href : (A + l.href) })) }));\n        // Form-level source helper text, associated with the controls the source associates it with.\n        const fh = R.enquiry && R.enquiry.formHelp;\n        out.leHasFormHelp = !!fh; out.leFormHelp = fh || { text: '', ptr: '' };\n        // Source multi-step forms (CF7-MLS): one captured step at a time, with the source's own Next/Back.\n        const stps = (R.enquiry && R.enquiry.steps) || null;\n        out.leHasSteps = !!stps;\n        if (stps) {\n          const si = Math.min(Math.max(st.lcStep || 1, 1), stps.length), cs = stps[si - 1];\n          out.leStepStatus = 'Étape ' + si + ' sur ' + stps.length;\n          // Own-source step illustration at its exact source width, full image, blank source alt.\n          out.leHasStepImage = !!(cs.image && cs.image.src);\n          out.leStepImageEl = cs.image ? React.createElement('img', { src: cs.image.src, alt: cs.image.alt || '',\n            loading: 'lazy', 'data-source-pointer': cs.image.ptr,\n            style: { display: 'block', width: cs.image.widthPercent || '85%', height: 'auto', margin: '4px 0 6px' } }) : null;\n          out.leFields = decorate(P.legacyFields({ fields: cs.fields }, 'le-s' + si, S, guards));\n          const go = (n) => this.setState({ lcStep: n }, () => { const el = document.getElementById('le-step'); if (el) el.focus(); });\n          out.leStepNav = cs.nav.map(n => {\n            const back = n.name === 'cf7mls_back';\n            return { id: 'le-' + n.name + '-' + si, name: n.name, label: n.label, pointer: n.pointer,\n              aria: n.label + ' — étape ' + si, bg: back ? '#fff' : '#5A4420', fg: back ? '#5A4420' : '#F7F4EA',\n              act: back ? (() => go(Math.max(1, si - 1))) : (() => go(Math.min(stps.length, si + 1))) };\n          });\n        } else {\n          out.leStepNav = []; out.leStepStatus = '';\n          out.leFields = decorate(P.legacyFields(R.enquiry, 'le', S, guards))\n            .map(x => (fh && fh.associates && fh.associates.indexOf(x.name) >= 0) ? Object.assign({}, x, { describedBy: 'le-form-help' }) : x);\n        }\n        out.leHidden = hid((R.enquiry.hiddenFieldNames || D.legacyHidden || []).length ? (R.enquiry.hiddenFieldNames || D.legacyHidden) : ['_wpcf7', '_wpcf7_version', '_wpcf7_locale', '_wpcf7_unit_tag', '_wpcf7_container_post', '_wpcf7_posted_data_hash', 'utm_source', 'utm_medium', 'utm_campaign', 'utm_keyword', 'utm_content', 'subject', 'lead_source_url']);\n        out.leNotice = st.leNotice || (R.path === '/walk-in-ayurveda-treatment/' && window.__ahvOpdBound === true ? '' : blocked);\n        out.leSubmit = (e) => { e.preventDefault(); if (e.nativeEvent && e.nativeEvent.__ahvOpdHandled === true) return; this.setState({ leNotice: 'L’envoi est désactivé en mode révision — aucune donnée n’a été envoyée, enregistrée ni confirmée.' }); };\n        return out;\n      }\n      const tabs = R.tabs, tab = st.lcTab || 0;\n      out.lcTabs = tabs.map((t, i) => ({\n        index: i, id: 'lc-tab-' + t.id, panelId: 'lc-panel-' + t.id, title: t.title,\n        selected: i === tab ? 'true' : 'false', tabIndex: i === tab ? 0 : -1,\n        bg: i === tab ? '#5A4420' : '#fff', fg: i === tab ? '#F7F4EA' : '#5A4420',\n        select: () => this.setState({ lcTab: i })\n      }));\n      out.lcTabKey = (e) => {\n        const i = parseInt(e.currentTarget.getAttribute('data-tab-index'), 10), last = tabs.length - 1;\n        let n = null;\n        if (e.key === 'ArrowRight' || e.key === 'ArrowDown') n = i >= last ? 0 : i + 1;\n        else if (e.key === 'ArrowLeft' || e.key === 'ArrowUp') n = i <= 0 ? last : i - 1;\n        else if (e.key === 'Home') n = 0; else if (e.key === 'End') n = last;\n        if (n === null) return;\n        e.preventDefault(); this.setState({ lcTab: n }, () => { const el = document.getElementById('lc-tab-' + tabs[n].id); if (el) el.focus(); });\n      };\n      [0, 1, 2].forEach(i => { out['lcHide' + i] = tab !== i; out['lcShow' + i] = tab === i ? (i === 0 ? 'grid' : 'block') : 'none'; });\n      out.lcDetails = R.details.blocks.map(b => Object.assign({}, b, {\n        isH3: b.kind === 'h3', isPair: b.kind === 'pair',\n        lines: (b.lines || []).map(t => ({ text: t })), hasEmail: !!b.email, hasPhone: !!b.phone, suffix: b.suffix || ''\n      }));\n      out.lcWriteFields = decorate(P.legacyFields(R.write, 'lc-w', S, guards));\n      out.lcWriteHidden = hid(D.legacyHidden || ['_wpcf7', '_wpcf7_version', '_wpcf7_locale', '_wpcf7_unit_tag', '_wpcf7_container_post', '_wpcf7_posted_data_hash', 'utm_source', 'utm_medium', 'utm_campaign', 'utm_keyword', 'utm_content', 'subject', 'lead_source_url']);\n      out.lcConsultHidden = out.lcWriteHidden;\n      out.lcWriteNotice = st.lcNotice || blocked;\n      out.lcWriteSubmit = (e) => { e.preventDefault(); this.setState({ lcNotice: 'L’envoi est désactivé en mode révision — aucune donnée n’a été envoyée, enregistrée ni confirmée.' }); };\n      const steps = R.consult.steps, sIdx = Math.min(Math.max(st.lcStep || 1, 1), steps.length), cur = steps[sIdx - 1];\n      // React node, not a raw interpolated src (which the browser prefetches as a literal placeholder URL).\n      out.lcStepImage = cur.image; out.lcStepAlt = '';\n      out.lcStepImageEl = cur.image ? React.createElement('img', { src: cur.image, alt: '', loading: 'lazy',\n        style: { width: '100%', height: 'auto', display: 'block', borderRadius: '4px' } }) : null;\n      out.lcStepStatus = 'Étape ' + sIdx + ' sur ' + steps.length;\n      out.lcStepFields = decorate(P.legacyFields({ fields: cur.fields }, 'lc-c' + sIdx, S, guards));\n      const goStep = (n) => this.setState({ lcStep: n }, () => { const el = document.getElementById('lc-consult-step'); if (el) el.focus(); });\n      out.lcStepNav = cur.nav.map((n, i) => {\n        const back = n.name === 'cf7mls_back';\n        const lastNext = !back && sIdx === steps.length;\n        return {\n          id: 'lc-' + n.name + '-' + sIdx, name: n.name, label: n.label || (back ? 'Retour' : 'Suivant'),\n          aria: n.label ? n.label + ' — étape ' + sIdx : (back ? 'Retour' : 'Suivant') + ' — étape ' + sIdx,\n          bg: back ? '#fff' : '#5A4420', fg: back ? '#5A4420' : '#F7F4EA',\n          act: back ? (() => goStep(Math.max(1, sIdx - 1))) : (lastNext ? (() => this.setState({ lcConsultNotice: 'Sur le site source, le bouton de la dernière étape ne porte aucun libellé et ne mène à aucune étape suivante ; rien n’est envoyé en mode révision.' })) : (() => goStep(Math.min(steps.length, sIdx + 1))))\n        };\n      });\n      out.lcConsultNotice = st.lcConsultNotice || blocked;\n      out.lcConsultSubmit = (e) => { e.preventDefault(); this.setState({ lcConsultNotice: 'L’envoi est désactivé en mode révision — aucune demande de consultation, aucune information de santé ni aucun fichier n’a été envoyé, enregistré ou confirmé.' }); };\n      return out;\n    }\n    if (R.variant === 'consultation') {\n      const O = R; const ov = st.ov;\n      out.O = Object.assign({}, O, { h2x0: O.h2x[0], h2x1: O.h2x[1], h2x2: O.h2x[2], lede: inl(O.lede.tree, 'ld'), err: Object.fromEntries(O.card.step1.map(f => [f.id, f.error || ''])) });\n      out.ocFaq = O.faq.items.map((f, i) => ({ q: f.q, a: inl(f.a.tree, 'sur' + i) }));\n      out.moreLinks = O.more.links.map(k => ({ url: A + k.href, label: k.label }));\n      out.consentText = inl(O.card.review.consent.tree, 'cs'); out.reviewNote = inl(O.card.review.note.tree, 'rn'); out.previewNote = inl(O.preview.note.tree, 'pn');\n      out.previewSections = O.preview.sections.map(s => ({ h4: s.h4, desc: s.desc || false, items: s.items.map(it => ({ label: it.label || false, isText: it.type === 'text', isChips: it.type === 'chips', isNote: it.type === 'text-note', placeholder: it.placeholder || '', ariaLabel: it.label || 'Champ d’aperçu', chips: it.chips || [], text: it.text || '' })) }));\n      const stepIdx = st.step === 1 ? 1 : 2; out.stepNum = String(stepIdx); out.stepName = O.card.progress.names[stepIdx - 1]; out.pbar = 'display:block;height:100%;background:#C1882C;width:' + (st.step === 1 ? 50 : 100) + '%';\n      out.isStep1 = st.step === 1; out.isStep2 = st.step === 2; out.isReview = st.step === 'review'; out.isDone = st.step === 'done';\n      out.ov = ov; out.oErr = st.oErr; out.countryCodeError = window.AHV_LEAD_RECEIPT.countryCodeError(); out.oSubmitError = st.oSubmitError; out.oReceived = st.oReceived === true; out.oBlocked = st.oReceived !== true; out.oDoneHeading = out.oReceived ? O.card.done.sourceHeading : O.card.done.heading; out.oDoneBody = out.oReceived ? O.card.done.sourceBody : O.card.done.body; out.oWhatsAppLabel = out.oReceived ? O.card.done.followUp : O.card.done.retry; out.previewOpen = st.previewOpen; out.sheetRef = this._sheet; out.doneRef = this._done;\n      out.oSet = (e) => { const id = e.target.id.replace('ktahv-oc-', ''); this._oToken = null; this.setState(s => ({ ov: Object.assign({}, s.ov, { [id]: e.target.value }), oErr: Object.assign({}, s.oErr, { [id]: false }), oSubmitError: '' })); };\n      out.oConsent = (e) => { const c = e.target.checked; this._oToken = null; this.setState(s => ({ ov: Object.assign({}, s.ov, { consent: c }), oErr: Object.assign({}, s.oErr, { consent: false }), oSubmitError: '' })); };\n      const chipStyle = on => 'display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:22px;border:' + (on ? '2px solid #5A4420' : '1px solid #75695A') + ';background:' + (on ? '#5A4420' : '#fff') + ';color:' + (on ? '#F7F4EA' : '#2A2118') + ';font-size:15.5px;font-weight:600;cursor:pointer';\n      out.chipGroups = O.card.step2.chips.map(g => ({ key: g.key, label: g.label, hint: g.hint || '', aria: g.aria, chips: g.options.map((label, i) => { const value = window.AHV_LEAD_RECEIPT.canonicalOption(g.key, i, label); return { label, on: ov[g.key] === value, style: chipStyle(ov[g.key] === value), toggle: () => { this._oToken = null; this.setState(s => ({ ov: Object.assign({}, s.ov, { [g.key]: value }), oSubmitError: '' })); } }; }) }));\n      out.toStep2 = (e) => { e.preventDefault(); const err = { fName: !V.name(ov.fName), fCode: !(ov.fCode || '').trim(), fPhone: !V.phone(ov.fPhone), fEmail: !V.email(ov.fEmail), fCountry: !V.country(ov.fCountry) }; if (Object.values(err).some(Boolean)) { this.setState({ oErr: err }); this.focusFirstInvalid('#ktahv-oc-formArea'); return; } this.setState({ step: 2, oErr: {} }); };\n      out.toReview = (e) => { e.preventDefault(); if (!V.concern(ov.fConcern)) { this.setState({ oErr: { fConcern: true } }); this.focusFirstInvalid('#ktahv-oc-formArea'); return; } this.setState({ step: 'review', oErr: {} }); };\n      out.backTo1 = () => this.setState({ step: 1, oErr: {} }); out.backTo2 = () => this.setState({ step: 2, oErr: {} });\n      // Receipt is shown only after the server confirms durable storage. WhatsApp remains an optional follow-up lane.\n      out.submitReq = async (e) => { e.preventDefault(); if (this._oBusy) return; if (!V.consent(ov.consent)) { this.setState({ oErr: { consent: true } }); this.focusFirstInvalid('#ktahv-oc-formArea'); return; } if (!this._oToken) this._oToken = crypto.randomUUID(); this._oBusy = true; this.setState({ oSubmitError: 'Envoi en cours…' }); try { await this.postLead({ form: 'online-consultation', submissionToken: this._oToken, fields: { full_name: ov.fName, countrycode: ov.fCode, phone: ov.fPhone, email: ov.fEmail, country: ov.fCountry, consent: ov.consent === true, health_concern: ov.fConcern, duration: ov.duration, consultation_for: ov.who, preferred_language: ov.lang, preferred_time: ov.time } }); this.setState({ step: 'done', oErr: {}, oSubmitError: '', oReceived: true }); this.focusWhen('#ktahv-oc-formArea [data-step=\"done\"]'); } catch (error) { if (error.notConnected) { this.setState({ step: 'done', oErr: {}, oSubmitError: '', oReceived: false }); this.focusWhen('#ktahv-oc-formArea [data-step=\"done\"]'); } else this.setState({ oSubmitError: error.message }); } finally { this._oBusy = false; } };\n      out.waHref = P.waDraft(O, ov);\n      out.reviewRows = [['Nom', ov.fName], ['Téléphone', (ov.fCode + ' ' + ov.fPhone).trim()], ['E-mail', ov.fEmail], ['Pays', ov.fCountry], ['Motif', ov.fConcern], ['Durée', ov.duration || '-'], ['Consultation pour', ov.who || '-'], ['Langue préférée', ov.lang || '-'], ['Moment préféré', ov.time || '-']].map(([k, v]) => ({ k, v }));\n      out.openPreview = (e) => { this._lastTrigger = e.currentTarget; this.setState({ previewOpen: true }); this.focusWhen('#ktahv-oc-previewModal aside'); };\n      out.closePreview = () => { this.setState({ previewOpen: false }); const t = this._lastTrigger; if (t) setTimeout(() => { try { t.focus(); } catch (e) {} }, 30); };\n      out.modalKey = (e) => { if (e.key === 'Escape') { e.stopPropagation(); out.closePreview(); } if (e.key === 'Tab') { const f = [...e.currentTarget.querySelectorAll('button,[href],input:not([tabindex=\"-1\"]),[tabindex]:not([tabindex=\"-1\"])')].filter(x => x.offsetParent !== null); if (!f.length) return; const first = f[0], last = f[f.length - 1]; if (e.shiftKey && (document.activeElement === first || document.activeElement === e.currentTarget.querySelector('aside'))) { e.preventDefault(); last.focus(); } else if (!e.shiftKey && document.activeElement === last) { e.preventDefault(); first.focus(); } } };\n    }\n    return out;\n  }\n}\n",
  "props": "{\"route\":{\"editor\":\"enum\",\"default\":\"/contact-us/\",\"tsType\":\"string\",\"options\":[\"/contact-us/\",\"/apply-now/\",\"/jobs/business-development-manager/\",\"/online-consultation/\",\"/contact-us-old/\",\"/enquiry-form-old/\",\"/online-consultation-old/\",\"/postulez-maintenant/\",\"/walk-in-ayurveda-treatment/\",\"/enquiry-form/\"],\"section\":\"Prototype route binding (not part of the public design)\"}}",
  "scripts": [
    "/ahv/l10n/fr/assets/enquiry-family-data.js",
    "/ahv/l10n/fr/assets/enquiry-family-render.js"
  ],
  "locale": "fr"
}
