{
  "id": "ahv-page-confirmation-desktop",
  "file": "AHV Page Confirmation Desktop.dc.html",
  "sourceSha256": "2478a6aa530be6efdfdd25fc1dd5801482422401d1898245a1478ea6ba616fdc",
  "variant": "desktop",
  "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}\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=\"Confirmation — Desktop\">\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\" hint-size=\"100%,72px\"></dc-import>\n<main id=\"main-content\" style=\"display:flow-root\">\n<sc-if value=\"{{ showBreadcrumb }}\" hint-placeholder-val=\"{{ false }}\">\n<nav aria-label=\"Kruimelpad\" style=\"width:min(1220px,94%);margin:0 auto;padding:24px 0 0;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;overflow-wrap:anywhere\">{{ 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;overflow-wrap:anywhere\">{{ crumbLast }}</span>\n</nav>\n</sc-if>\n\n\n<sc-if value=\"{{ isDirect }}\" hint-placeholder-val=\"{{ true }}\">\n<section data-state=\"direct-visit\" style=\"width:min(1220px,94%);margin:0 auto;padding:72px 0 96px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px 64px;align-items:center\">\n  <div>\n    <div style=\"font-weight:700;font-size:12.5px;letter-spacing:2.6px;color:#8F6212;text-transform:uppercase\">Kairali — The Ayurvedic Healing Village · Sinds 1908</div>\n    <h1 style=\"font-family:'Marcellus',serif;font-size:clamp(36px,4vw,56px);line-height:1.1;margin:12px 0 20px;max-width:20ch;text-wrap:balance\">{{ dv.heading }}</h1>\n    <p style=\"margin:0 0 28px;font-size:19px;line-height:1.65;max-width:44ch;text-wrap:pretty\">{{ dv.body }}</p>\n    <a href=\"{{ dv.link.href }}\" onClick=\"{{ guard }}\" rel=\"{{ dv.rel }}\" style=\"display:inline-flex;align-items:center;gap:10px;min-height:52px;padding:0 28px;background:#5A4420;color:#F7F4EA;border-radius:4px;font-weight:700;font-size:16px;letter-spacing:.4px\" style-hover=\"background:#3E2E14;color:#F7F4EA;text-decoration:none\">{{ dv.link.label }}</a>\n  </div>\n  <sc-if value=\"{{ hasOwnImages }}\" hint-placeholder-val=\"{{ false }}\">\n    <div data-own-source-images=\"true\" style=\"display:flex;flex-direction:column;gap:16px;align-items:flex-start;min-width:0\">{{ ownImagesEl }}</div>\n  </sc-if>\n  <sc-if value=\"{{ hasDefaultArtwork }}\" hint-placeholder-val=\"{{ true }}\">\n    <img src=\"/ahv/assets/img/AHV-Confirm-Landscape-1440.webp\" alt=\"\" width=\"1440\" height=\"524\" style=\"width:100%;height:auto;display:block;border-radius:4px\">\n  </sc-if>\n</section>\n</sc-if>\n\n<sc-if value=\"{{ isNext }}\" hint-placeholder-val=\"{{ false }}\">\n<div data-state=\"receipt\" data-variant=\"next-steps\">\n<section style=\"width:min(1220px,94%);margin:0 auto;padding:40px 0 0\">\n  <sc-if value=\"{{ hero1024 }}\" hint-placeholder-val=\"{{ false }}\"><img src=\"/ahv/assets/img/AHV-Confirm-Landscape-1024.webp\" alt=\"\" width=\"1024\" height=\"373\" style=\"width:100%;max-width:1024px;height:auto;display:block;border-radius:4px;margin:0 auto\"></sc-if>\n  <sc-if value=\"{{ hero1440 }}\" hint-placeholder-val=\"{{ false }}\"><img src=\"/ahv/assets/img/AHV-Confirm-Landscape-1440.webp\" alt=\"\" width=\"1440\" height=\"524\" style=\"width:100%;max-width:1440px;height:auto;display:block;border-radius:4px\"></sc-if>\n</section>\n<section style=\"width:min(1220px,94%);margin:0 auto;padding:48px 0 0;text-align:center\">\n  <sc-if value=\"{{ lotus }}\" hint-placeholder-val=\"{{ false }}\"><img src=\"/ahv/assets/img/AHV-Confirm-Lotus.svg\" alt=\"\" width=\"95\" height=\"57\" style=\"width:95px;height:57px;display:block;margin:0 auto 18px\"></sc-if>\n  <sc-if value=\"{{ hasEyebrow }}\" hint-placeholder-val=\"{{ false }}\"><div data-eyebrow=\"true\" style=\"font-weight:700;font-size:12.5px;letter-spacing:2.6px;color:#8F6212;text-transform:uppercase;margin-bottom:12px\">{{ eyebrow }}</div></sc-if>\n  <h1 style=\"font-family:'Marcellus',serif;font-size:clamp(36px,4vw,56px);line-height:1.1;margin:0 auto;max-width:22ch;text-wrap:balance\">{{ h1Lead }}<sc-if value=\"{{ hasEm }}\" hint-placeholder-val=\"{{ false }}\"><em style=\"font-style:italic;color:#8F6212\">{{ h1Em }}</em></sc-if></h1>\n  <div data-lede=\"true\" style=\"max-width:62ch;margin:22px auto 0;font-size:19px;line-height:1.65;text-wrap:pretty\">\n    <sc-for list=\"{{ lede }}\" as=\"p\" hint-placeholder-count=\"1\"><p style=\"margin:0 0 8px\">{{ p }}</p></sc-for>\n  </div>\n  <sc-if value=\"{{ hasNote }}\" hint-placeholder-val=\"{{ false }}\"><div data-note=\"true\" style=\"display:inline-flex;align-items:center;gap:10px;margin-top:20px;font-size:16px;font-weight:600;color:#5A4420\"><span aria-hidden=\"true\" style=\"width:8px;height:8px;border-radius:50%;background:#C1882C;display:inline-block\"></span>{{ note }}</div></sc-if>\n</section>\n<section aria-label=\"Volgende stappen\" style=\"width:min(1220px,94%);margin:56px auto 0;padding:48px 0 0;border-top:1px solid #E9E2D3\">\n  <sc-if value=\"{{ hasStepsHeading }}\" hint-placeholder-val=\"{{ false }}\"><h2 style=\"font-family:'Marcellus',serif;font-size:clamp(26px,2.4vw,34px);line-height:1.2;margin:0 0 28px;text-wrap:balance\">{{ stepsHeading }}</h2></sc-if>\n  <ol style=\"list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 40px\">\n    <sc-for list=\"{{ steps }}\" as=\"s\" hint-placeholder-count=\"3\">\n      <li data-step=\"true\" style=\"border-top:2px solid #C1882C;padding-top:18px\">\n        <div data-step-n=\"true\" style=\"font-weight:700;font-size:13px;letter-spacing:2.6px;color:#8F6212;text-transform:uppercase\">{{ s.n }}</div>\n        <h3 style=\"font-family:'Marcellus',serif;font-size:24px;line-height:1.25;margin:10px 0 10px\">{{ s.h }}</h3>\n        <p style=\"margin:0;font-size:17.5px;line-height:1.7;text-wrap:pretty\">{{ s.p }}</p>\n        <sc-if value=\"{{ s.when }}\" hint-placeholder-val=\"{{ false }}\"><div data-step-when=\"true\" style=\"margin-top:12px;font-size:15.5px;font-weight:700;color:#5A4420\">{{ s.when }}</div></sc-if>\n      </li>\n    </sc-for>\n  </ol>\n</section>\n<section aria-labelledby=\"sooner-h\" style=\"width:min(1220px,94%);margin:56px auto 0;background:#fff;border:1px solid #E0D7C4;border-radius:4px;padding:36px 40px;box-sizing:border-box;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:24px 48px;align-items:center\">\n  <div>\n    <sc-if value=\"{{ hasSoonerEyebrow }}\" hint-placeholder-val=\"{{ false }}\"><div data-sooner-eyebrow=\"true\" style=\"font-weight:700;font-size:12.5px;letter-spacing:2.6px;color:#8F6212;text-transform:uppercase;margin-bottom:8px\">{{ sooner.eyebrow }}</div></sc-if>\n    <h2 id=\"sooner-h\" style=\"font-family:'Marcellus',serif;font-size:clamp(24px,2.2vw,30px);line-height:1.25;margin:0 0 12px;text-wrap:balance\">{{ sooner.h2 }}</h2>\n    <sc-for list=\"{{ sooner.paragraphs }}\" as=\"p\" hint-placeholder-count=\"1\"><p style=\"margin:0 0 10px;font-size:17.5px;line-height:1.7;text-wrap:pretty\">{{ p }}</p></sc-for>\n  </div>\n  <div data-actions=\"true\" style=\"display:flex;flex-wrap:wrap;gap:14px;justify-content:flex-end\">\n    <sc-for list=\"{{ actions }}\" as=\"a\" hint-placeholder-count=\"2\">\n      <a href=\"{{ a.href }}\" onClick=\"{{ guard }}\" rel=\"{{ a.rel }}\" style=\"{{ a.style }}\" style-hover=\"text-decoration:none;filter:brightness(.95)\">{{ a.label }}</a>\n    </sc-for>\n  </div>\n</section>\n<nav aria-labelledby=\"wait-h\" style=\"width:min(1220px,94%);margin:64px auto 0;padding:48px 0 0;border-top:1px solid #E9E2D3\">\n  <h2 id=\"wait-h\" style=\"font-family:'Marcellus',serif;font-size:clamp(26px,2.4vw,34px);line-height:1.2;margin:0 0 8px\">{{ wait.h2 }}</h2>\n  <p style=\"margin:0 0 28px;font-size:17.5px;color:#514a3f\">{{ wait.lead }}</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:24px 32px\">\n    <sc-for list=\"{{ cards }}\" as=\"c\" hint-placeholder-count=\"3\">\n      <li><a data-card=\"true\" href=\"{{ c.url }}\" onClick=\"{{ guard }}\" style=\"display:flex;flex-direction:column;gap:8px;min-height:44px;height:100%;padding:22px 24px;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        <sc-if value=\"{{ c.kicker }}\" hint-placeholder-val=\"{{ false }}\"><span data-card-kicker=\"true\" style=\"font-weight:700;font-size:12.5px;letter-spacing:2.6px;color:#8F6212;text-transform:uppercase\">{{ c.kicker }}</span></sc-if>\n        <h3 style=\"font-family:'Marcellus',serif;font-size:22px;line-height:1.25;margin:0\">{{ c.h3 }}</h3>\n        <p style=\"margin:0;font-size:16.5px;line-height:1.6;color:#514a3f;text-wrap:pretty\">{{ c.p }}</p>\n        <sc-if value=\"{{ c.go }}\" hint-placeholder-val=\"{{ false }}\"><span data-card-go=\"true\" style=\"margin-top:auto;display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:15.5px;color:#006038\"><span aria-hidden=\"true\" style=\"color:#C1882C\">◆</span>{{ c.go }}</span></sc-if>\n      </a></li>\n    </sc-for>\n  </ul>\n</nav>\n<sc-if value=\"{{ hasTrust }}\" hint-placeholder-val=\"{{ false }}\">\n<section aria-label=\"Accreditaties\" data-trust=\"true\" style=\"width:min(1220px,94%);margin:56px auto 0;padding:24px 0 0;border-top:1px solid #E9E2D3;display:flex;flex-wrap:wrap;gap:12px 36px;align-items:center;font-size:15.5px;color:#514a3f\">\n  <span data-trust-seal=\"true\" style=\"font-family:'Marcellus',serif;font-size:17px;color:#2A2118\">{{ trust.seal }}</span>\n  <sc-for list=\"{{ trust.items }}\" as=\"t\" hint-placeholder-count=\"3\"><span data-trust-item=\"true\" style=\"display:inline-flex;align-items:center;gap:8px\"><span aria-hidden=\"true\" style=\"color:#C1882C\">◆</span><span><sc-if value=\"{{ t.b }}\" hint-placeholder-val=\"{{ false }}\"><b style=\"font-weight:700;color:#2A2118\">{{ t.b }}</b></sc-if>{{ t.rest }}</span></span></sc-for>\n</section>\n</sc-if>\n<div style=\"height:80px\"></div>\n</div>\n</sc-if>\n\n<sc-if value=\"{{ isLegacy }}\" hint-placeholder-val=\"{{ false }}\">\n<section data-state=\"receipt\" data-variant=\"legacy-queue\" style=\"position:relative;overflow:hidden;background:#423c32;color:#F7F4EA;padding:72px 0 88px;isolation:isolate\">\n  <img src=\"/ahv/assets/img/AHV-Confirm-Booking-Bg.webp\" alt=\"\" width=\"1440\" height=\"683\" style=\"position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.42;z-index:-1\">\n  <div style=\"width:min(720px,92%);margin:0 auto;background:rgba(247,244,234,.96);color:#2A2118;border-radius:4px;padding:40px 44px 44px;text-align:center;box-shadow:0 20px 50px rgba(20,14,6,.35)\">\n    <img src=\"/ahv/assets/img/AHV-Confirm-Booking-Logo.webp\" alt=\"\" width=\"83\" height=\"56\" style=\"width:83px;height:56px;display:block;margin:0 auto 18px\">\n    <div style=\"height:1px;background:#C1882C;width:72px;margin:0 auto 18px\"></div>\n    <p data-brand=\"true\" style=\"margin:0 0 8px;font-weight:700;font-size:14px;letter-spacing:2.4px;color:#8F6212;text-transform:uppercase\">{{ brandLine }}</p>\n    <h1 style=\"font-family:'Marcellus',serif;font-size:clamp(36px,4vw,52px);line-height:1.1;margin:0 0 22px;text-transform:uppercase;letter-spacing:1px\">{{ h1 }}</h1>\n    <sc-for list=\"{{ paragraphs }}\" as=\"p\" hint-placeholder-count=\"3\"><p style=\"margin:0 0 16px;font-size:17.5px;line-height:1.7;text-wrap:pretty\">{{ p }}</p></sc-for>\n    <a href=\"{{ action.href }}\" onClick=\"{{ guard }}\" style=\"display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 32px;margin-top:8px;background:#5A4420;color:#F7F4EA;border-radius:4px;font-weight:700;font-size:15px;letter-spacing:1.5px\" style-hover=\"background:#3E2E14;color:#F7F4EA;text-decoration:none\">{{ action.label }}</a>\n  </div>\n</section>\n</sc-if>\n\n<sc-if value=\"{{ isImage }}\" hint-placeholder-val=\"{{ false }}\">\n<div data-state=\"receipt\" data-variant=\"image-receipt\">\n<section style=\"width:min(1220px,94%);margin:0 auto;padding:40px 0 0\">\n  <img src=\"/ahv/assets/img/AHV-Confirm-Landscape-1440.webp\" alt=\"\" width=\"1440\" height=\"524\" style=\"width:100%;max-width:1440px;height:auto;display:block;border-radius:4px\">\n</section>\n<section style=\"width:min(1220px,94%);margin:0 auto;padding:48px 0 0;text-align:center\">\n  <img src=\"/ahv/assets/img/AHV-Confirm-Lotus.svg\" alt=\"\" width=\"95\" height=\"57\" style=\"width:95px;height:57px;display:block;margin:0 auto 18px\">\n  <h1 style=\"font-family:'Marcellus',serif;font-size:clamp(36px,4vw,56px);line-height:1.1;margin:0 auto;max-width:22ch;text-wrap:balance\">{{ h1 }}</h1>\n</section>\n<sc-if value=\"{{ hasBody }}\" hint-placeholder-val=\"{{ false }}\">\n<section style=\"width:min(1220px,94%);margin:0 auto;padding:20px 0 0;text-align:center\">\n  <p data-source-pointer=\"{{ bodyPtr }}\" style=\"max-width:62ch;margin:0 auto;font-size:19px;line-height:1.65;text-wrap:pretty\">{{ bodyText }}</p>\n</section>\n</sc-if>\n<section aria-label=\"Bedankposter\" style=\"width:min(1220px,94%);margin:48px auto 0;padding-bottom:88px;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:32px 56px;align-items:start\">\n  <figure style=\"margin:0\">\n    {{ posterEl }}\n  </figure>\n  <sc-if value=\"{{ hasTranscript }}\" hint-placeholder-val=\"{{ true }}\">\n  <div data-transcript=\"true\" style=\"background:#fff;border:1px solid #E0D7C4;border-radius:4px;padding:28px 32px\">\n    <h2 style=\"font-weight:700;font-size:13px;letter-spacing:2.6px;color:#8F6212;text-transform:uppercase;font-family:'Mulish',sans-serif;margin:0 0 14px\">{{ transcript.heading }}</h2>\n    <ul style=\"list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px\">\n      <sc-for list=\"{{ transcript.lines }}\" as=\"l\" hint-placeholder-count=\"6\"><li style=\"font-size:17.5px;line-height:1.6;padding:6px 0;border-bottom:1px solid #EFE9DC\">{{ l }}</li></sc-for>\n    </ul>\n  </div>\n</sc-if>\n</section>\n</div>\n</sc-if>\n\n</main>\n<dc-import name=\"AHV Chrome Footer\" hint-size=\"100%,560px\"></dc-import>\n</div>\n",
  "logic": "\nclass Component extends DCLogic {\n  route() { return window.AHV_CONFIRM_RENDER ? window.AHV_CONFIRM_RENDER.resolveRoute(this.props.route) : null; }\n  componentDidMount() { const R = this.route(); if (R) { window.AHV_CONFIRM_RENDER.applyHead(R); this._head = R.path; } }\n  componentDidUpdate() { const R = this.route(); if (R && R.path !== this._head) { window.AHV_CONFIRM_RENDER.applyHead(R); this._head = R.path; } }\n  renderVals() {\n    const P = window.AHV_CONFIRM_RENDER, D = window.AHV_CONFIRM || {}; const R = this.route();\n    const guard = () => {}; /* preview-only nav guard neutralised for the published site */\n    const receipt = P ? P.resolveReceipt(this.props.prototypeReceipt) : false;\n    // Utility routes (/book-now/, /cart/, /checkout/) carry their own exact direct-visit copy and have no\n    // receipt state at all: they are anonymous fallback states, never a confirmation of a transaction.\n    const dv = (R && R.directVisit) || D.directVisit || { heading: '', body: '', link: { href: '', label: '' } };\n    const utility = !!(R && R.utility);\n    // A route that carries its own source images binds them here; every other route keeps the existing\n    // default artwork untouched. Built as React nodes so no raw interpolated src is ever requested.\n    const own = (R && R.images && R.images.length) ? R.images : null;\n    // Route-specific breadcrumb from the record; routes without a recorded chain render no nav.\n    const bcChain = (R && R.crumbs) || [];\n    const bcVals = { showBreadcrumb: bcChain.length > 0,\n      crumbs: bcChain.slice(0, -1).map(c => ({ url: 'https://ayurvedichealingvillage.com' + c.path, label: c.label })),\n      crumbLast: bcChain.length ? bcChain[bcChain.length - 1].label : '' };\n    const base = Object.assign({}, bcVals, { guard, dv, isDirect: utility || !receipt || !R, isNext: false, isLegacy: false, isImage: false,\n      hasOwnImages: !!own, hasDefaultArtwork: !own,\n      ownImagesEl: own ? own.map((im, k) => React.createElement('img', { key: 'oi' + k, src: im.file,\n        alt: im.alt || '', width: im.width, height: im.height, loading: 'lazy',\n        'data-source-pointer': im.ptr,\n        // natural proportions, capped at the recorded natural width so the 83x56 logo is never upscaled\n        style: { display: 'block', width: '100%', maxWidth: im.width + 'px', height: 'auto', borderRadius: '4px' } })) : null });\n    if (!R || !receipt || utility) return base;\n    // Own-source images belong to the route, not to a state: carry them into every branch below.\n    const imgFields = { hasOwnImages: base.hasOwnImages, hasDefaultArtwork: base.hasDefaultArtwork,\n      ownImagesEl: base.ownImagesEl };\n    const A = P.A;\n    const btn = (k) => k === 'primary'\n      ? '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      : '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    const v = R.variant;\n    const out = Object.assign(base, { isNext: v === 'next-steps', isLegacy: v === 'legacy-queue', isImage: v === 'image-receipt', h1: R.h1 });\n    if (v === 'next-steps') {\n      const em = R.h1Em; const lead = em ? R.h1.slice(0, R.h1.lastIndexOf(em)) : R.h1;\n      Object.assign(out, {\n        hero1024: R.hero === 'landscape1024', hero1440: R.hero === 'landscape1440', lotus: !!R.lotus,\n        hasEyebrow: !!R.eyebrow, eyebrow: R.eyebrow, h1Lead: lead, hasEm: !!em, h1Em: em,\n        lede: R.lede, hasNote: !!R.note, note: R.note, hasStepsHeading: !!R.stepsHeading, stepsHeading: R.stepsHeading,\n        steps: R.steps.map(s => Object.assign({}, s, { when: s.when || false })),\n        sooner: R.sooner, hasSoonerEyebrow: !!R.sooner.eyebrow,\n        actions: R.sooner.actions.map(a => ({ href: a.href, label: a.label, rel: a.external ? 'noopener' : undefined, style: btn(a.kind) })),\n        wait: R.wait, cards: R.wait.cards.map(c => Object.assign({}, c, { url: A + c.href, kicker: c.kicker || false, go: c.go || false })),\n        hasTrust: !!R.trust, trust: R.trust ? { seal: R.trust.seal, items: R.trust.items.map(t => ({ b: t.b || false, rest: t.rest })) } : { seal: '', items: [] }\n      });\n    } else if (v === 'legacy-queue') {\n      Object.assign(out, { brandLine: R.brandLine, paragraphs: R.paragraphs, action: R.action });\n    } else {\n      // Image receipt: the receipt image, optional source body paragraph and optional transcript are data-driven.\n      // A route without them (the accepted /onlineconsultation-thanks/ dataset) renders exactly as before.\n      const pi = R.posterImage || D.images.poster;\n      Object.assign(out, {\n        transcript: R.transcript || { heading: '', lines: [] }, hasTranscript: !!R.transcript,\n        poster: { src: pi.src, width: pi.width, height: pi.height, maxWidth: pi.width + 'px', ptr: pi.ptr || '' },\n        posterAlt: pi.alt || '',\n        // Built as a React node (same pattern as the Article Reader heroEl): a raw interpolated src attribute in the\n        // template is prefetched by the browser before interpolation and 404s on the literal placeholder URL.\n        posterEl: React.createElement('img', { src: pi.src, alt: pi.alt || '', width: pi.width, height: pi.height,\n          'data-source-pointer': pi.ptr || undefined,\n          style: { width: '100%', maxWidth: pi.width + 'px', height: 'auto', display: 'block', borderRadius: '4px' } }),\n        hasBody: !!(R.body && R.body.text), bodyText: (R.body && R.body.text) || '', bodyPtr: (R.body && R.body.ptr) || ''\n      });\n    }\n    return out;\n  }\n}\n",
  "props": "{\"route\":{\"editor\":\"enum\",\"default\":\"/thanks/\",\"tsType\":\"string\",\"options\":[\"/contact-us/thank-you/\",\"/onlinebookingthankyou/\",\"/onlineconsultation-thanks/\",\"/ppc-thanks/\",\"/thanks/\",\"/book-now/\",\"/cart/\",\"/checkout/\",\"/emailsubscriber/\"],\"section\":\"Prototype route binding (not part of the public design)\"},\"prototypeReceipt\":{\"editor\":\"boolean\",\"default\":false,\"tsType\":\"boolean\",\"section\":\"Review only — synthetic receipt mockup. Public default is the neutral direct-visit state; a URL never proves submission.\"}}",
  "scripts": [
    "/ahv/l10n/nl/assets/confirmation-family-data.js",
    "/ahv/l10n/nl/assets/confirmation-family-render.js"
  ],
  "locale": "nl"
}
