{
  "id": "ahv-page-maharaja-suite-mobile",
  "file": "AHV Page Maharaja Suite Mobile.dc.html",
  "sourceSha256": "890bbd400689c7393660daf21072b53991488de005b6150d10e23378dab3ccf4",
  "variant": "mobile",
  "template": "\n<helmet>\n<link href=\"/ahv/fonts/ahv-33eeac48ab44.css\" rel=\"stylesheet\">\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}\ndl,dt,dd{margin:0}\nbutton{font-family:'Mulish',sans-serif;cursor:pointer}\n@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}\n@media (prefers-reduced-motion:reduce){*{transition:none !important;animation:none !important}}\n</style>\n<title>Maharaja Suite | Kairali – The Ayurvedic Healing Village</title>\n<meta name=\"description\" content=\"Verblijf in de Maharaja Suite bij Kairali Ayurvedic Healing Village voor een vorstelijke ervaring met Ayurveda, yoga en holistische heling in Kerala.\">\n<link rel=\"canonical\" href=\"https://ayurvedichealingvillage.com/nl/maharaja-suite/\">\n<meta name=\"robots\" content=\"noindex, nofollow\">\n<meta property=\"og:locale\" content=\"nl_NL\">\n<meta property=\"og:type\" content=\"article\">\n<meta property=\"og:title\" content=\"Maharaja Suite\">\n<meta property=\"og:description\" content=\"Verblijf in de Maharaja Suite bij Kairali Ayurvedic Healing Village voor een vorstelijke ervaring met Ayurveda, yoga en holistische heling in Kerala.\">\n<meta property=\"og:url\" content=\"https://ayurvedichealingvillage.com/nl/maharaja-suite/\">\n<meta property=\"og:site_name\" content=\"Ayurvedic Healing Village\">\n<meta name=\"twitter:card\" content=\"summary_large_image\">\n<link rel=\"icon\" href=\"/ahv/assets/img/logo_color-da22eb.svg\" sizes=\"192x192\">\n<script type=\"application/ld+json\">\n{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https://ayurvedichealingvillage.com/nl/maharaja-suite/\",\"url\":\"https://ayurvedichealingvillage.com/nl/maharaja-suite/\",\"name\":\"Maharaja Suite | Kairali – The Ayurvedic Healing Village\",\"description\":\"Verblijf in de Maharaja Suite bij Kairali Ayurvedic Healing Village voor een vorstelijke ervaring met Ayurveda, yoga en holistische heling in Kerala.\",\"isPartOf\":{\"@id\":\"https://ayurvedichealingvillage.com/nl/#website\"},\"inLanguage\":\"nl\"},{\"@type\":\"WebSite\",\"@id\":\"https://ayurvedichealingvillage.com/nl/#website\",\"url\":\"https://ayurvedichealingvillage.com/nl/\",\"name\":\"Kairali — The Ayurvedic Healing Village\",\"inLanguage\":\"nl\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://ayurvedichealingvillage.com/nl/maharaja-suite/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https://ayurvedichealingvillage.com/nl/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Onze villa's\",\"item\":\"https://ayurvedichealingvillage.com/nl/our-villas/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Maharaja Suite\",\"item\":\"https://ayurvedichealingvillage.com/nl/maharaja-suite/\"}]}]}\n</script>\n</helmet>\n<div data-screen-label=\"Maharaja Suite — Mobile\" style=\"max-width:430px;margin:0 auto;background:#F7F4EA;box-shadow:0 0 40px rgba(70,50,20,.15);position:relative;box-sizing:border-box\">\n<a href=\"#main-content\" style=\"position:fixed;left:-9999px;top:12px;z-index:120;background:#5A4420;color:#F7F4EA;padding:14px 24px;border-radius:4px;font-weight:700;font-size:15px\" style-focus=\"left:16px\">Direct naar de hoofdinhoud</a>\n<dc-import name=\"AHV Chrome Header\" narrow=\"true\" style=\"position:sticky;top:0;z-index:80\" hint-size=\"100%,64px\"></dc-import>\n<main id=\"main-content\">\n<section style=\"width:min(1220px,94%);margin:0 auto;padding:20px 0 0\">\n  <nav aria-label=\"Kruimelpad\" style=\"font-size:15px;color:#75695A;display:flex;flex-wrap:wrap;gap:0 8px;align-items:center;line-height:1.4\"><a href=\"https://ayurvedichealingvillage.com/nl/\" onClick=\"{{ guard }}\" style=\"display:inline-flex;align-items:center;min-height:44px;min-width:44px\">Home</a><span aria-hidden=\"true\">/</span><a href=\"https://ayurvedichealingvillage.com/nl/our-villas/\" onClick=\"{{ guard }}\" style=\"display:inline-flex;align-items:center;min-height:44px;min-width:44px\">Onze villa’s</a><span aria-hidden=\"true\">/</span><span aria-current=\"page\" style=\"color:#2A2118;display:inline-flex;align-items:center;min-height:44px\">Maharaja Suite</span></nav>\n  <div style=\"font-weight:700;font-size:13px;letter-spacing:2.6px;color:#8F6212;text-transform:uppercase;margin-top:4px\">Onze villa's</div>\n  <h1 style=\"font-family:'Marcellus',serif;font-size:30px;line-height:1.2;margin:12px 0 0;text-wrap:balance\">Maharaja Suite</h1>\n  <div><ul aria-label=\"Feiten over de villa\" style=\"list-style:none;margin:18px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px\">\n    <sc-for list=\"{{ D.facts }}\" as=\"f\" hint-placeholder-count=\"4\"><li style=\"display:inline-flex;align-items:center;min-height:44px;padding:0 14px;background:#fff;border:1px solid #E0D7C4;border-radius:4px;font-size:15.5px;font-weight:600\">{{ f }}</li></sc-for>\n  </ul><div data-ahv-villa-rate=\"1\" style=\"margin-top:18px;max-width:62ch\"><p style=\"margin:0;font-weight:700;font-size:15px\">Dagtarief bij opname per villa</p><p style=\"margin:4px 0 0;font-size:16px\">Bezetting door 1 persoon, per villa per nacht: {{ villaRate }}.</p><p style=\"margin:6px 0 0;font-size:15px;line-height:1.6\">Inclusief accommodatie, vegetarische maaltijden, één Ayurvedische massage met kruidenolie per persoon, één consult bij een arts en één yoga- en meditatiesessie. Dit zijn opnametarieven, geen prijzen voor alleen de kamer. <a href=\"/documents/pdf/daily-admission-tariff/nl/KTAHV-Daily-Admission-Tariff-NL-EUR_20260925-R1.pdf\">Dagtarief bij opname, geldigheid en voorwaarden</a></p></div></div>\n  <img src=\"/ahv/assets/img/AHV-Maharaja-G18.webp\" alt=\"Buitenkant en tuinpad van de Maharaja Suite\" width=\"1400\" height=\"1000\" style=\"width:100%;max-width:1400px;height:auto;display:block;border-radius:4px;margin-top:22px\">\n</section>\n\n<section aria-labelledby=\"about-h\" style=\"width:min(1220px,94%);margin:0 auto;padding:32px 0 0;display:flex;flex-direction:column;gap:24px\">\n  <blockquote style=\"margin:0;padding:18px 20px;background:#fff;border:1px solid #E0D7C4;border-left:6px solid #C1882C;border-radius:4px;font-family:'Marcellus',serif;font-size:19px;line-height:1.5;color:#2A2118\">{{ D.quote }}</blockquote>\n  <div>\n    <h2 id=\"about-h\" style=\"font-family:'Marcellus',serif;font-size:25px;line-height:1.22;margin:0 0 16px\">Over de suite</h2>\n    <sc-for list=\"{{ aboutBlocks }}\" as=\"b\" hint-placeholder-count=\"6\"><div><sc-if value=\"{{ b.isP }}\" hint-placeholder-val=\"{{ true }}\"><p style=\"margin:0 0 14px;font-size:17px\">{{ b.text }}</p></sc-if><sc-if value=\"{{ b.isUl }}\" hint-placeholder-val=\"{{ false }}\"><ul style=\"margin:0 0 14px;padding:0;list-style:none;display:flex;flex-direction:column;border-top:1px solid #E0D7C4\"><sc-for list=\"{{ b.items }}\" as=\"it\" hint-placeholder-count=\"5\"><li style=\"display:flex;gap:12px;padding:10px 0;border-bottom:1px solid #E0D7C4;font-size:17px;line-height:1.55\"><span aria-hidden=\"true\" style=\"color:#C1882C;flex:none\">◆</span><span>{{ it }}</span></li></sc-for></ul></sc-if></div></sc-for>\n  </div>\n  <div aria-label=\"Aanvraag\" style=\"background:#43331E;color:#F7F4EA;border-radius:4px;padding:20px 18px;display:flex;flex-direction:column;gap:12px\">\n    <a href=\"https://ayurvedichealingvillage.com/nl/contact-us/\" onClick=\"{{ guard }}\" style=\"display:flex;align-items:center;justify-content:center;min-height:52px;background:#EEB41E;color:#2A2118;border-radius:4px;font-weight:700;font-size:13px;letter-spacing:1.5px;text-transform:uppercase;padding:6px 16px;text-align:center;line-height:1.35\" style-hover=\"background:#D9A317;color:#2A2118;text-decoration:none\">Informeer naar uw verblijf</a> <a href=\"https://ayurvedichealingvillage.com/nl/all-programs/\" onClick=\"{{ guard }}\" style=\"display:flex;align-items:center;justify-content:center;min-height:52px;border:1.5px solid rgba(247,244,234,.7);color:#F7F4EA;border-radius:4px;font-weight:700;font-size:13px;letter-spacing:1.5px;text-transform:uppercase;padding:6px 16px;text-align:center;line-height:1.35\" style-hover=\"background:rgba(247,244,234,.12);color:#F7F4EA;text-decoration:none\">Bekijk de programma's</a>\n  </div>\n</section>\n\n<section id=\"amenities\" aria-labelledby=\"amenities-h\" style=\"width:min(1220px,94%);margin:32px auto 0;padding-top:28px;border-top:1px solid #E9E2D3\">\n  <h2 id=\"amenities-h\" style=\"font-family:'Marcellus',serif;font-size:25px;line-height:1.22;margin:0 0 16px\">Kenmerken van de suite</h2>\n  <h3 style=\"font-family:'Marcellus',serif;font-size:21px;line-height:1.25;margin:0 0 10px\">Twee suites. Twee verschillende indelingen.</h3>\n  <p style=\"margin:0 0 18px;max-width:68ch;font-size:17px;line-height:1.65;color:#514a3f\">Kies een slaapkamer met kingsize bed en een aparte woonkamer, of een suite met twee slaapkamers met een kingsize bed en twee eenpersoonsbedden. Beide suites hebben twee badkamers en twee kledingkasten, met in elke kamer één van elk.</p>\n  <ul aria-label=\"Indelingen van de suites\" style=\"list-style:none;margin:0 0 36px;padding:0;display:flex;flex-direction:column;gap:16px\">\n    <sc-for list=\"{{ F.layouts }}\" as=\"l\" hint-placeholder-count=\"2\">\n      <li style=\"min-width:0;background:#fff;border:1px solid #E0D7C4;border-radius:4px;padding:20px 18px 8px\">\n        <p style=\"margin:0;font-weight:700;font-size:13px;letter-spacing:2px;text-transform:uppercase;color:#8F6212\">{{ l.suite }}</p>\n        <h4 style=\"font-family:'Marcellus',serif;font-weight:400;font-size:21px;line-height:1.25;margin:6px 0 10px\">{{ l.title }}</h4>\n        <ul style=\"margin:0;padding:0;list-style:none\">\n          <sc-for list=\"{{ l.items }}\" as=\"it\" hint-placeholder-count=\"4\"><li style=\"padding:10px 0;border-top:1px solid #E9E2D3;font-size:17px;line-height:1.55\">{{ it }}</li></sc-for>\n        </ul>\n      </li>\n    </sc-for>\n  </ul>\n  <h3 style=\"font-family:'Marcellus',serif;font-size:21px;line-height:1.25;margin:0 0 16px\">In uw suite</h3>\n  <div style=\"display:flex;flex-direction:column;gap:28px\">\n    <sc-for list=\"{{ F.groups }}\" as=\"g\" hint-placeholder-count=\"3\">\n      <div style=\"min-width:0;border-top:2px solid #006038;padding-top:14px\">\n        <h4 style=\"font-weight:700;font-size:13px;letter-spacing:2px;text-transform:uppercase;color:#004226;margin:0 0 6px;font-family:'Mulish',sans-serif\">{{ g.title }}</h4>\n        <ul style=\"margin:0;padding:0;list-style:none\">\n          <sc-for list=\"{{ g.items }}\" as=\"it\" hint-placeholder-count=\"4\"><li style=\"padding:10px 0;border-bottom:1px solid #E9E2D3;font-size:17px;line-height:1.55\">{{ it }}</li></sc-for>\n        </ul>\n      </div>\n    </sc-for>\n  </div>\n</section>\n\n<section id=\"gallery\" aria-labelledby=\"gallery-h\" style=\"width:min(1220px,94%);margin:32px auto 0;padding-top:28px;border-top:1px solid #E9E2D3\">\n  <h2 id=\"gallery-h\" style=\"font-family:'Marcellus',serif;font-size:25px;line-height:1.22;margin:0 0 20px\">Galerij</h2>\n  <sc-for list=\"{{ galleryGroups }}\" as=\"grp\" hint-placeholder-count=\"2\">\n    <div style=\"margin-bottom:32px\">\n      <h3 id=\"{{ grp.hid }}\" style=\"font-family:'Marcellus',serif;font-size:22px;line-height:1.25;margin:0 0 14px;display:flex;align-items:center;gap:10px;flex-wrap:wrap\"><span aria-hidden=\"true\" style=\"color:#C1882C;font-size:13px\">◆</span>{{ grp.name }}<span style=\"font-family:'Mulish',sans-serif;font-size:15px;color:#75695A;font-weight:600\">{{ grp.countLabel }}</span></h3>\n      <ul aria-labelledby=\"{{ grp.hid }}\" style=\"list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px\">\n        <sc-for list=\"{{ grp.items }}\" as=\"g\" hint-placeholder-count=\"15\">\n          <li style=\"background:#fff;border:1px solid #E9E2D3;border-radius:4px;overflow:hidden\">\n            <button type=\"button\" data-gallery-index=\"{{ g.i }}\" aria-label=\"{{ g.btnLabel }}\" onClick=\"{{ g.open }}\" style=\"display:flex;flex-direction:column;width:100%;padding:0;border:0;background:#fff;color:#2A2118;text-align:left\" style-hover=\"color:#006038\">\n              <img src=\"{{ g.image }}\" alt=\"{{ g.alt }}\" width=\"{{ g.width }}\" height=\"{{ g.height }}\" loading=\"lazy\" style=\"width:100%;height:auto;display:block\">\n              <span style=\"display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:4px 12px;font-weight:700;font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:#006038\">Bekijken<span aria-hidden=\"true\" style=\"color:#C1882C\">→</span></span>\n            </button>\n          </li>\n        </sc-for>\n      </ul>\n    </div>\n  </sc-for>\n</section>\n\n<section id=\"rooms\" aria-labelledby=\"rooms-h\" style=\"width:min(1220px,94%);margin:0 auto;padding-top:28px;border-top:1px solid #E9E2D3\">\n  <h2 id=\"rooms-h\" style=\"font-family:'Marcellus',serif;font-size:25px;line-height:1.22;margin:0 0 16px\">Naam en nummers van de suite</h2>\n  <ul aria-labelledby=\"rooms-h\" style=\"list-style:none;margin:0;padding:0;display:flex;flex-direction:column;border-top:1px solid #E0D7C4\">\n    <sc-for list=\"{{ rooms }}\" as=\"r\" hint-placeholder-count=\"2\">\n      <li style=\"padding:14px 0;border-bottom:1px solid #E0D7C4;display:grid;grid-template-columns:48px minmax(0,1fr);gap:8px 14px;align-items:center\">\n        <img src=\"{{ r.zodiacImage.image }}\" alt=\"{{ r.zodiacImage.alt }}\" width=\"120\" height=\"120\" loading=\"lazy\" style=\"width:48px;height:48px;display:block\">\n        <dl style=\"display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 12px;font-size:16.5px;line-height:1.45\">\n          <dt style=\"font-weight:700;font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:#75695A;align-self:center\">Villa</dt><dd style=\"font-family:'Marcellus',serif;font-size:20px\">{{ r.name }}</dd>\n          <dt style=\"font-weight:700;font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:#75695A;align-self:center\">Bed</dt><dd>{{ r.bed }}</dd>\n          <dt style=\"font-weight:700;font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:#75695A;align-self:center\">Kamer</dt><dd>{{ r.room }}</dd>\n        </dl>\n        <button type=\"button\" data-room-index=\"{{ r.i }}\" onClick=\"{{ r.open }}\" style=\"grid-column:1 / -1;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:0 16px;border:1.5px solid #006038;border-radius:4px;background:transparent;color:#006038;font-weight:700;font-size:13px;letter-spacing:1.5px;text-transform:uppercase\" style-hover=\"background:#006038;color:#F7F4EA\">{{ r.btnLabel }}<span aria-hidden=\"true\">→</span></button>\n      </li>\n    </sc-for>\n  </ul>\n</section>\n\n<section id=\"related\" aria-labelledby=\"related-h\" style=\"width:min(1220px,94%);margin:32px auto 0;padding:28px 0 56px;border-top:1px solid #E9E2D3\">\n  <h2 id=\"related-h\" style=\"font-family:'Marcellus',serif;font-size:25px;margin:0 0 18px\">De andere villa's</h2>\n  <ul style=\"list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px\">\n    <sc-for list=\"{{ relatedVillas }}\" as=\"o\" hint-placeholder-count=\"3\">\n      <li><a href=\"{{ o.url }}\" onClick=\"{{ guard }}\" style=\"display:flex;flex-direction:column;background:#fff;border:1px solid #E9E2D3;border-radius:4px;overflow:hidden;color:#2A2118\" style-hover=\"border-color:#C1882C;text-decoration:none;color:#006038\">\n        <img src=\"{{ o.image }}\" alt=\"{{ o.alt }}\" width=\"378\" height=\"335\" loading=\"lazy\" style=\"width:100%;max-width:378px;height:auto;display:block;align-self:center\">\n        <span style=\"display:flex;align-items:center;gap:10px;min-height:52px;padding:8px 16px;font-family:'Marcellus',serif;font-size:20px\"><span aria-hidden=\"true\" style=\"color:#C1882C;font-size:13px\">◆</span>{{ o.label }}</span>\n      </a></li>\n    </sc-for>\n  </ul>\n</section>\n</main>\n<dc-import name=\"AHV Chrome Footer\" narrow=\"true\" hint-size=\"100%,900px\"></dc-import>\n\n<div id=\"villa-dialog\" role=\"dialog\" aria-modal=\"true\" aria-label=\"{{ dlgLabel }}\" onKeyDown=\"{{ dlgKey }}\" style=\"display:{{ dlgDisplay }};position:fixed;inset:0;z-index:200;background:rgba(26,20,12,.94);flex-direction:column;align-items:center;justify-content:center;padding:16px;box-sizing:border-box\">\n  <div style=\"width:100%;max-width:430px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;color:#F7F4EA\">\n    <div aria-live=\"polite\" style=\"font-weight:700;font-size:13px;letter-spacing:2px;text-transform:uppercase;min-height:44px;display:inline-flex;align-items:center\">{{ counter }}</div>\n    <button type=\"button\" id=\"villa-close\" onClick=\"{{ close }}\" style=\"display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:0 16px;border:1px solid rgba(247,244,234,.5);border-radius:4px;background:transparent;color:#F7F4EA;font-weight:700;font-size:12.5px;letter-spacing:1.5px;text-transform:uppercase\" style-hover=\"background:rgba(247,244,234,.12)\">Afbeelding sluiten<span aria-hidden=\"true\">✕</span></button>\n  </div>\n  <sc-if value=\"{{ dlgOpen }}\" hint-placeholder-val=\"{{ false }}\"><img id=\"villa-expanded\" ref=\"{{ curRef }}\" alt=\"{{ cur.alt }}\" width=\"{{ cur.width }}\" height=\"{{ cur.height }}\" style=\"display:block;width:auto;height:auto;max-width:100%;max-height:calc(100vh - 200px);object-fit:contain;margin:16px 0;border-radius:4px;background:#000\"></sc-if>\n  <div style=\"width:100%;max-width:430px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap\">\n    <button type=\"button\" id=\"villa-prev\" onClick=\"{{ prev }}\" style=\"display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:0 16px;border:1px solid rgba(247,244,234,.5);border-radius:4px;background:transparent;color:#F7F4EA;font-weight:700;font-size:12.5px;letter-spacing:1.5px;text-transform:uppercase\" style-hover=\"background:rgba(247,244,234,.12)\"><span aria-hidden=\"true\">←</span>Vorige</button>\n    <button type=\"button\" id=\"villa-next\" onClick=\"{{ next }}\" style=\"display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:0 16px;border:1px solid #EEB41E;border-radius:4px;background:#EEB41E;color:#2A2118;font-weight:700;font-size:12.5px;letter-spacing:1.5px;text-transform:uppercase\" style-hover=\"filter:brightness(.94)\">Volgende<span aria-hidden=\"true\">→</span></button>\n  </div>\n</div>\n</div>\n",
  "logic": "\n// TF-19 villa daily-admission rate (28 Sep 2026): approved edition 20260925-R1, APAI single occupancy (english-candidate/final-rates) —\n// the same figures the homepage prints under \"Daily admission by villa\". Selection by currency, never conversion.\nconst VILLA_DAY = {'INR':{\"deluxe\":26700,\"classic\":29145,\"royal\":33450,\"suite\":53400},'USD':{\"deluxe\":381,\"classic\":416,\"royal\":478,\"suite\":763},'EUR':{\"deluxe\":334,\"classic\":364,\"royal\":418,\"suite\":668}};\nconst villaMoney = (n, c) => { const s = String(n); if (c === 'INR') { const l3 = s.slice(-3), r = s.slice(0, -3); return '₹' + (r ? r.replace(/\\B(?=(\\d{2})+(?!\\d))/g, ',') + ',' : '') + l3; } return (c === 'USD' ? '$' : '€') + s.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ','); };\n\nclass Component extends DCLogic {\n  state = { open: false, set: null, i: 0, ret: null, cur: 'EUR' };\n  componentDidMount() { try { const c = localStorage.getItem('ahv-cur'); if (c && VILLA_DAY[c] && c !== this.state.cur) this.setState({ cur: c }); } catch (e) {} document.documentElement.lang = 'nl'; }\n  componentWillUnmount() { document.body.style.overflow = ''; }\n  openSet(set, idx, ret, label) {\n    this.setState({ open: true, set, i: idx, ret, label });\n    document.body.style.overflow = 'hidden';\n    setTimeout(() => { const c = document.getElementById('villa-close'); if (c) c.focus(); }, 30);\n  }\n  closeViewer() {\n    const ret = this.state.ret;\n    this.setState({ open: false });\n    document.body.style.overflow = '';\n    setTimeout(() => { const btn = ret ? document.querySelector(ret) : null; if (btn) btn.focus(); }, 30);\n  }\n  renderVals() {\n    const D = window.AHV_ROOMS_2026.apply('maharaja', window.AHV_MAHARAJA) || { facts: [], aboutBlocks: [], amenities: [], gallery: [], galleryGroups: [], rooms: [], relatedVillas: [], quote: '' };\n    const A = 'https://ayurvedichealingvillage.com';\n    const gallery = D.gallery || [];\n    const groups = (D.galleryGroups || []).map(name => {\n      const items = gallery.map((g, idx) => ({ ...g, i: idx })).filter(g => g.group === name);\n      return { name, hid: 'gallery-' + name.toLowerCase() + '-h', countLabel: items.length + ' photographs', items: items.map(g => ({ ...g, btnLabel: 'Afbeelding bekijken: ' + g.alt, open: () => this.openSet(gallery, g.i, 'button[data-gallery-index=\"' + g.i + '\"]', 'Galerij van de Maharaja Suite') })) };\n    });\n    const rooms = (D.rooms || []).map((r, idx) => ({ ...r, i: idx, btnLabel: r.images.length + ' foto\\'s', open: () => this.openSet(r.images, 0, 'button[data-room-index=\"' + idx + '\"]', r.name + ' kamer ' + r.room + ' foto\\'s') }));\n    const set = this.state.set || [];\n    const n = set.length, i = this.state.i;\n    const cur = set[i] || { image: '', alt: '', width: 1400, height: 1000 };\n    const go = (d) => this.setState(s => ({ i: (s.i + d + n) % n }));\n    const villaCur = VILLA_DAY[this.state.cur] ? this.state.cur : 'EUR';\n    return { F: window.AHV_ROOMS_2026.features('maharaja'), villaRate: villaMoney(VILLA_DAY[villaCur].suite, villaCur), guard: () => {} /* preview-only nav guard neutralised for the published site */,\n      D, galleryGroups: groups, rooms, aboutBlocks: (D.aboutBlocks || []).map(b => ({ ...b, isP: b.type === 'p', isUl: b.type === 'ul' })),\n      relatedVillas: (D.relatedVillas || []).map(o => ({ ...o, url: A + o.href })),\n      dlgDisplay: this.state.open ? 'flex' : 'none', dlgOpen: this.state.open, dlgLabel: this.state.label || 'Galerij van de Maharaja Suite',\n      cur,\n      // New closure per render, so React re-attaches and assigns the current source each time cur changes.\n      curRef: (el) => { if (el && cur.image) { el.setAttribute('src', cur.image); } },\n      counter: n ? (i + 1) + ' van ' + n : '',\n      close: () => this.closeViewer(), prev: () => go(-1), next: () => go(1),\n      dlgKey: (e) => {\n        if (e.key === 'Escape') { e.preventDefault(); this.closeViewer(); return; }\n        if (e.key === 'ArrowLeft') { e.preventDefault(); go(-1); return; }\n        if (e.key === 'ArrowRight') { e.preventDefault(); go(1); return; }\n        if (e.key === 'Tab') {\n          const f = [...e.currentTarget.querySelectorAll('button')];\n          const first = f[0], last = f[f.length - 1];\n          if (e.shiftKey && document.activeElement === first) { e.preventDefault(); last.focus(); }\n          else if (!e.shiftKey && document.activeElement === last) { e.preventDefault(); first.focus(); }\n        }\n      }\n    };\n  }\n}\n",
  "props": "",
  "scripts": [
    "/ahv/l10n/nl/assets/maharaja-suite-data.js",
    "/ahv/l10n/nl/assets/rooms-2026-candidate.js"
  ],
  "revision": {
    "task": "WOPS-AHV-FINAL-DRAFT-20260924-001",
    "source": "AHV Page Maharaja Suite Mobile 2026 Candidate.dc.html",
    "sha256": "02ecba60ef6efee1142b22c0e1afd79d1f46aa877ef671c391018d0ec67429ca"
  },
  "locale": "nl"
}
