{"id":2025,"date":"2026-03-10T12:53:00","date_gmt":"2026-03-10T10:53:00","guid":{"rendered":"https:\/\/kaksik.ee\/?page_id=2025"},"modified":"2026-11-02T22:31:50","modified_gmt":"2026-11-02T20:31:50","slug":"e-oppematerjali-loomise-hind","status":"publish","type":"page","link":"https:\/\/kaksik.ee\/en\/e-oppematerjali-loomise-hind\/","title":{"rendered":"Price for creating e-learning material"},"content":{"rendered":"<div class=\"brz brz-root__container brz-reset-all brz-root__container-page\">\n<section id=\"wpPvHbqmjeYd_wpPvHbqmjeYd\" class=\"brz-section brz-css-d-ynf0il brz-css-1ukk04e\">\n<div class=\"brz-section__content brz-section--boxed brz-css-d-oh3bvl brz-css-1ns9vx7\" data-brz-custom-id=\"t4Pb0XKIpJPT\">\n<div class=\"brz-container brz-css-d-x9rvyp brz-css-1461jye\">\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-15kiok8 brz-wrapper\">\n<div class=\"brz-rich-text brz-rich-text__custom brz-css-d-1ehz5mr brz-css-n044bu\" data-brz-custom-id=\"zZHO1mRj2ejy\">\n<div data-brz-translate-text=\"1\">\n<p class=\"brz-text-lg-center brz-bcp-color7 brz-tp-lg-heading1 brz-css-1rn6pw1\" data-uniq-id=\"ailgn\" data-generated-css=\"brz-css-g2INl\"><span class=\"brz-cp-color7\">E\u2011\u00f5ppematerjali hinnakalkulaator<\/span><\/p>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-1mpxx96 brz-wrapper\">\n<div class=\"brz-rich-text brz-rich-text__custom brz-css-d-1ehz5mr brz-css-1isuvid\" data-brz-custom-id=\"yZj0XTCo42V4\">\n<div data-brz-translate-text=\"1\">\n<p class=\"brz-tp-lg-paragraph brz-text-lg-center brz-css-dqzu38\" data-uniq-id=\"yuGdz\" data-generated-css=\"brz-css-iKb8u\"><span class=\"brz-cp-color7\">E-\u00f5ppematerjali loomise hind on oluline k\u00fcsimus. Hinnakalkulaator annab <\/span><strong class=\"brz-cp-color7\">kiire hinnangulise projekti maksumuse<\/strong><span class=\"brz-cp-color7\"> \u2013 ilma m\u00fc\u00fcgijututa, ilma kohustuseta. <\/span><\/p>\n<p class=\"brz-tp-lg-paragraph brz-text-lg-center brz-css-dqzu38\" data-uniq-id=\"uJ4yD\" data-generated-css=\"brz-css-e8h0Y\"><span class=\"brz-cp-color7\">Ideaalne lahendus organisatsioonidele, kes soovivad luua e-koolitusi. <\/span><\/p>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-1303pxm brz-wrapper\">\n<div data-brz-animationstyle=\"text\" data-brz-duration=\"2500\" data-brz-effecttype=\"typing\" data-brz-text=\"alates 100\u20ac\" data-brz-loop=\"true\" data-brz-textbefore=\"E-\u00f5ppematerjali loomise hind\" class=\"brz-animatedHeadline--wrapper brz-css-d-l925eg brz-css-lujq4c\" data-brz-custom-id=\"aFuqNrV3ZbXf\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<section id=\"rmAgyU7yUOSI_rmAgyU7yUOSI\" class=\"brz-section brz-css-d-ynf0il brz-css-1inv1gy\">\n<div class=\"brz-section__content brz-section--boxed brz-css-d-oh3bvl brz-css-us9ks9\" data-brz-custom-id=\"hmA6WJm1_JWM\">\n<div class=\"brz-bg\">\n<div class=\"brz-bg-color\"><\/div>\n<\/div>\n<div class=\"brz-container brz-css-d-x9rvyp brz-css-50ob0x\">\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-1dh1jjr brz-wrapper\">\n<div class=\"brz-rich-text brz-rich-text__custom brz-css-d-1ehz5mr brz-css-4k0xl8\" data-brz-custom-id=\"eCo1doTgPx6M\">\n<div data-brz-translate-text=\"1\">\n<h2 data-uniq-id=\"ehSy7\" data-generated-css=\"brz-css-wF9R5\" class=\"brz-tp-lg-heading2 brz-text-lg-center brz-css-1dgp6hp\"><span class=\"brz-cp-color7\">Proovi kalkulaatorit<\/span><\/h2>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-1wdjerh brz-wrapper\">\n<div class=\"brz-rich-text brz-rich-text__custom brz-css-d-1ehz5mr brz-css-1exs6mz\" data-brz-custom-id=\"pZn0ybhhobiW\">\n<div data-brz-translate-text=\"1\">\n<p class=\"brz-text-lg-center brz-tp-lg-subtitle brz-css-2yc4lt\" data-generated-css=\"brz-css-h0FvT\" data-uniq-id=\"lUA6u\"><span class=\"brz-cp-color7\">N\u00e4iteks lihtne 10-minutiline e-\u00f5ppematerjal algab tavaliselt 600\u20ac juurest. Sisesta oma projekti andmed ja saad kohe teada hinnangulise maksumuse.<\/span><\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"brz-wrapper-clone brz-flex-xs-wrap brz-css-d-x0dcve brz-css-o2a7ei\" data-brz-custom-id=\"kcykPBPmXJd6\">\n<div class=\"brz-icon__container\" data-brz-custom-id=\"kVqWEEiLaY3G\"><span class=\"brz-icon brz-span brz-css-d-127a3es brz-css-b7ys9b\"><\/span><\/div>\n<\/div>\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-8au35s brz-wrapper\">\n<div class=\"brz-embed-code brz-css-d-12mke1z brz-css-uta1do\" data-brz-custom-id=\"qOqdD7udYvMZ\">\n<div class=\"brz-embed-content\">\n<div>\n<div id=\"elearn-wrap\">\n<div id=\"kk-calc-root\"><\/div>\n<\/div>\n<p><!-- \u2500\u2500 EXIT-INTENT POPUP \u2500\u2500 --><\/p>\n<div id=\"kk-popup-overlay\" style=\"display:none;position:fixed;z-index:99999;align-items:center;justify-content:center;padding:20px\">\n<div id=\"kk-popup\" style=\"background:#faf8f6;border-radius:16px;max-width:480px;width:100%;overflow:hidden;position:relative\"><\/div>\n<\/div>\n<p>#elearn-wrap {<\/p>\n<p>  max-width: 720px;<\/p>\n<p>  margin: 40px auto;<\/p>\n<p>  font-family: &#8216;DM Sans&#8217;, system-ui, sans-serif;<\/p>\n<p>}<\/p>\n<p>#kk-calc-root {<\/p>\n<p>  background: #faf8f6;<\/p>\n<p>  border-radius: 16px;<\/p>\n<p>  overflow: hidden;<\/p>\n<p>  position: relative;<\/p>\n<p>  box-shadow: 0 8px 48px rgba(8,27,118,0.10), 0 1px 0 rgba(8,27,118,0.06);<\/p>\n<p>}<\/p>\n<p>#kk-calc-root::before {<\/p>\n<p>  content: &#8221;;<\/p>\n<p>  position: absolute;<\/p>\n<p>  inset: 0;<\/p>\n<p>  background-image:<\/p>\n<p>    linear-gradient(rgba(232,49,110,0.035) 1px, transparent 1px),<\/p>\n<p>    linear-gradient(90deg, rgba(232,49,110,0.035) 1px, transparent 1px);<\/p>\n<p>  background-size: 36px 36px;<\/p>\n<p>  pointer-events: none;<\/p>\n<p>  z-index: 0;<\/p>\n<p>}<\/p>\n<p>.kk-body { position: relative; z-index: 1; padding: 32px 40px; }<\/p>\n<p>.kk-field-group { margin-bottom: 24px; }<\/p>\n<p>.kk-label {<\/p>\n<p>  display: block; font-size: 11px; font-weight: 600; color: #081b76;<\/p>\n<p>  letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 8px;<\/p>\n<p>}<\/p>\n<p>.kk-input {<\/p>\n<p>  width: 100%; padding: 12px 16px; border: 1.5px solid #e0dbd4; border-radius: 8px;<\/p>\n<p>  font-family: &#8216;DM Sans&#8217;, sans-serif; font-size: 15px; color: #1a1a1a;<\/p>\n<p>  background: #fff; box-sizing: border-box; transition: border-color 0.2s, box-shadow 0.2s;<\/p>\n<p>  -moz-appearance: textfield;<\/p>\n<p>}<\/p>\n<p>.kk-input::-webkit-outer-spin-button,<\/p>\n<p>.kk-input::-webkit-inner-spin-button { -webkit-appearance: none; }<\/p>\n<p>.kk-input:focus { outline: none; border-color: #e8316e; box-shadow: 0 0 0 3px rgba(232,49,110,0.1); }<\/p>\n<p>.kk-input::placeholder { color: #bbb; }<\/p>\n<p>.kk-duration-row { display: flex; align-items: stretch; gap: 0; }<\/p>\n<p>.kk-duration-row .kk-input-wrap { flex: 1; }<\/p>\n<p>.kk-duration-row .kk-input-wrap:first-child .kk-input { border-radius: 8px 0 0 8px; border-right: none; }<\/p>\n<p>.kk-duration-row .kk-input-wrap:last-child .kk-input { border-radius: 0 8px 8px 0; border-left: none; }<\/p>\n<p>.kk-or-pill {<\/p>\n<p>  display: flex; align-items: center; justify-content: center; padding: 0 12px;<\/p>\n<p>  background: #f0ece6; border-top: 1.5px solid #e0dbd4; border-bottom: 1.5px solid #e0dbd4;<\/p>\n<p>  font-size: 10px; font-weight: 600; color: #aaa; letter-spacing: 0.06em; flex-shrink: 0;<\/p>\n<p>}<\/p>\n<p>.kk-duration-sublabels { display: flex; gap: 0; margin-bottom: 6px; }<\/p>\n<p>.kk-duration-sublabels span { flex: 1; font-size: 11px; color: #888; }<\/p>\n<p>.kk-duration-sublabels span:last-child { text-align: right; }<\/p>\n<p>.kk-select {<\/p>\n<p>  width: 100%; padding: 12px 16px; border: 1.5px solid #e0dbd4; border-radius: 8px;<\/p>\n<p>  font-family: &#8216;DM Sans&#8217;, sans-serif; font-size: 15px; color: #1a1a1a;<\/p>\n<p>  background: #fff url(&#8220;data:image\/svg+xml,%3Csvg xmlns=&#8217;http:\/\/www.w3.org\/2000\/svg&#8217; width=&#8217;12&#8217; height=&#8217;8&#8242; viewBox=&#8217;0 0 12 8&#8217;%3E%3Cpath d=&#8217;M1 1l5 5 5-5&#8242; stroke=&#8217;%23e8316e&#8217; stroke-width=&#8217;1.8&#8242; fill=&#8217;none&#8217; stroke-linecap=&#8217;round&#8217;\/%3E%3C\/svg%3E&#8221;) no-repeat right 16px center;<\/p>\n<p>  -webkit-appearance: none; appearance: none; box-sizing: border-box; cursor: pointer; transition: border-color 0.2s;<\/p>\n<p>}<\/p>\n<p>.kk-select:focus { outline: none; border-color: #e8316e; box-shadow: 0 0 0 3px rgba(232,49,110,0.1); }<\/p>\n<p>.kk-checks { display: flex; flex-wrap: wrap; gap: 10px; }<\/p>\n<p>.kk-check-label {<\/p>\n<p>  display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px;<\/p>\n<p>  background: #fff; border: 1.5px solid #e0dbd4; border-radius: 8px;<\/p>\n<p>  font-size: 13px; color: #444; cursor: pointer;<\/p>\n<p>  transition: border-color 0.2s, background 0.2s, color 0.2s; user-select: none;<\/p>\n<p>}<\/p>\n<p>.kk-check-label:hover { border-color: #e8316e; color: #1a1a1a; }<\/p>\n<p>.kk-check-label input[type=&#8221;checkbox&#8221;] { display: none; }<\/p>\n<p>.kk-checkmark {<\/p>\n<p>  width: 16px; height: 16px; border: 1.5px solid #ccc; border-radius: 4px;<\/p>\n<p>  display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: all 0.15s;<\/p>\n<p>}<\/p>\n<p>.kk-check-label:has(input:checked) { border-color: #e8316e; background: rgba(232,49,110,0.06); }<\/p>\n<p>.kk-check-label:has(input:checked) .kk-checkmark { background: #e8316e; border-color: #e8316e; }<\/p>\n<p>.kk-check-label:has(input:checked) .kk-checkmark::after {<\/p>\n<p>  content: &#8221;; width: 9px; height: 5px;<\/p>\n<p>  border-left: 2px solid #fff; border-bottom: 2px solid #fff;<\/p>\n<p>  transform: rotate(-45deg) translateY(-1px); display: block;<\/p>\n<p>}<\/p>\n<p>.kk-check-label:has(input:checked) .kk-label-text { color: #c0254f; }<\/p>\n<p>.kk-label-text { font-size: 13px; }<\/p>\n<p>.kk-check-label.disabled { opacity: 0.35; cursor: not-allowed; pointer-events: none; }<\/p>\n<p>.tt-wrap { position: relative; display: inline-flex; align-items: center; gap: 5px; }<\/p>\n<p>.tt-icon {<\/p>\n<p>  display: inline-flex; align-items: center; justify-content: center;<\/p>\n<p>  width: 15px; height: 15px; border-radius: 50%;<\/p>\n<p>  background: rgba(8,27,118,0.12); color: #081b76;<\/p>\n<p>  font-size: 9px; font-weight: 700; cursor: pointer; flex-shrink: 0; line-height: 1; user-select: none;<\/p>\n<p>}<\/p>\n<p>.tt-icon:hover { background: #081b76; color: #fff; }<\/p>\n<p>.tt-bubble {<\/p>\n<p>  display: none; position: absolute; bottom: calc(100% + 8px); left: 50%;<\/p>\n<p>  transform: translateX(-50%); background: #081b76; color: #fff;<\/p>\n<p>  font-size: 12px; line-height: 1.5; padding: 8px 12px; border-radius: 8px;<\/p>\n<p>  width: 220px; z-index: 999; pointer-events: none; box-shadow: 0 4px 20px rgba(8,27,118,0.3);<\/p>\n<p>}<\/p>\n<p>.tt-bubble::after {<\/p>\n<p>  content: &#8221;; position: absolute; top: 100%; left: 50%; transform: translateX(-50%);<\/p>\n<p>  border: 6px solid transparent; border-top-color: #081b76;<\/p>\n<p>}<\/p>\n<p>.tt-wrap:hover .tt-bubble { display: block; }<\/p>\n<p>.kk-calc-btn {<\/p>\n<p>  width: 100%; padding: 16px; background: #e8316e; color: #fff;<\/p>\n<p>  border: none; border-radius: 8px; font-family: &#8216;DM Sans&#8217;, sans-serif;<\/p>\n<p>  font-size: 15px; font-weight: 600; letter-spacing: 0.04em; cursor: pointer;<\/p>\n<p>  display: flex; align-items: center; justify-content: center; gap: 10px;<\/p>\n<p>  transition: background 0.2s, transform 0.15s;<\/p>\n<p>}<\/p>\n<p>.kk-calc-btn:hover { background: #c0254f; transform: translateY(-1px); }<\/p>\n<p>.kk-calc-btn:active { transform: translateY(0); }<\/p>\n<p>.kk-calc-btn .arrow { font-size: 18px; }<\/p>\n<p>.kk-err { color: #c0254f; font-size: 12px; margin-top: 6px; display: none; }<\/p>\n<p>.kk-result { display: none; position: relative; z-index: 1; }<\/p>\n<p>.kk-result-header {<\/p>\n<p>  background: #eef3ff; padding: 32px 40px; text-align: center;<\/p>\n<p>  position: relative; overflow: hidden; border-bottom: 1px solid #c7d7f9;<\/p>\n<p>}<\/p>\n<p>.kk-result-header::before {<\/p>\n<p>  content: &#8221;; position: absolute; bottom: -30px; left: -30px;<\/p>\n<p>  width: 140px; height: 140px;<\/p>\n<p>  background: radial-gradient(circle, rgba(232,49,110,0.08) 0%, transparent 70%); border-radius: 50%;<\/p>\n<p>}<\/p>\n<p>.kk-result-eyebrow {<\/p>\n<p>  font-size: 18px; font-weight: 600; color: #081b76;<\/p>\n<p>  letter-spacing: 0.1em; text-transform: uppercase; margin-bottom: 8px; opacity: 0.6;<\/p>\n<p>}<\/p>\n<p>.kk-result-price {<\/p>\n<p>  font-family: &#8216;DM Serif Display&#8217;, serif; font-size: 60px; color: #081b76;<\/p>\n<p>  line-height: 1; margin-bottom: 6px;<\/p>\n<p>  display: flex; align-items: flex-start; justify-content: center; gap: 4px;<\/p>\n<p>}<\/p>\n<p>.kk-result-price #price-num { font-size: 60px; }<\/p>\n<p>.kk-result-price span:last-child { font-size: 32px; margin-top: 10px; color: #e8316e; }<\/p>\n<p>.kk-result-disclaimer { font-size: 11px; color: #6b7db3; font-weight: 300; line-height: 1.5; }<\/p>\n<p>.kk-result-adjust {<\/p>\n<p>  background: none; border: none; color: #e8316e; font-size: 12px;<\/p>\n<p>  font-family: &#8216;DM Sans&#8217;, sans-serif; cursor: pointer;<\/p>\n<p>  text-decoration: underline; text-underline-offset: 3px; margin-top: 12px; display: inline-block; padding: 0;<\/p>\n<p>}<\/p>\n<p>.kk-roi { margin: 0; padding: 24px 40px; background: rgba(8,27,118,0.04); border-bottom: 1px solid #e0dbd4; }<\/p>\n<p>.kk-roi-label {<\/p>\n<p>  font-size: 12px; font-weight: 600; color: #081b76;<\/p>\n<p>  letter-spacing: 0.06em; text-transform: uppercase; margin-bottom: 12px; display: block;<\/p>\n<p>}<\/p>\n<p>.kk-roi-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }<\/p>\n<p>.kk-roi-text { font-size: 13px; color: #666; white-space: nowrap; }<\/p>\n<p>.kk-roi-input {<\/p>\n<p>  width: 110px; min-width: 80px; padding: 10px 14px;<\/p>\n<p>  border: 1.5px solid #c7d7f9; border-radius: 8px;<\/p>\n<p>  font-family: &#8216;DM Sans&#8217;, sans-serif; font-size: 15px; color: #1a1a1a;<\/p>\n<p>  background: #fff; box-sizing: border-box; -moz-appearance: textfield;<\/p>\n<p>}<\/p>\n<p>.kk-roi-input::-webkit-outer-spin-button,<\/p>\n<p>.kk-roi-input::-webkit-inner-spin-button { -webkit-appearance: none; }<\/p>\n<p>.kk-roi-input:focus { outline: none; border-color: #e8316e; box-shadow: 0 0 0 3px rgba(232,49,110,0.1); }<\/p>\n<p>.kk-roi-result { font-size: 14px; color: #333; margin-top: 10px; display: none; }<\/p>\n<p>.kk-email-section { padding: 28px 40px; background: #fff; }<\/p>\n<p>.kk-section-title {<\/p>\n<p>  font-size: 11px; font-weight: 600; color: #081b76;<\/p>\n<p>  letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 16px;<\/p>\n<p>}<\/p>\n<p>.kk-email-section .kk-input { margin-bottom: 10px; }<\/p>\n<p>.kk-gdpr {<\/p>\n<p>  display: flex; align-items: flex-start; gap: 10px;<\/p>\n<p>  font-size: 12px; color: #666; margin: 14px 0; line-height: 1.5; cursor: pointer;<\/p>\n<p>}<\/p>\n<p>.kk-gdpr input[type=&#8221;checkbox&#8221;] { margin-top: 2px; flex-shrink: 0; accent-color: #e8316e; }<\/p>\n<p>.kk-gdpr a { color: #e8316e; text-decoration: none; }<\/p>\n<p>.kk-gdpr a:hover { text-decoration: underline; }<\/p>\n<p>.kk-send-btn {<\/p>\n<p>  width: 100%; padding: 14px; background: #081b76; color: #fff;<\/p>\n<p>  border: none; border-radius: 8px; font-family: &#8216;DM Sans&#8217;, sans-serif;<\/p>\n<p>  font-size: 14px; font-weight: 600; letter-spacing: 0.04em; cursor: pointer;<\/p>\n<p>  transition: background 0.2s, transform 0.15s;<\/p>\n<p>}<\/p>\n<p>.kk-send-btn:hover { background: #0a2494; transform: translateY(-1px); }<\/p>\n<p>.kk-success {<\/p>\n<p>  color: #1a6e3c; font-size: 13px; text-align: center; margin-top: 10px;<\/p>\n<p>  display: none; background: #e8f5ee; padding: 10px; border-radius: 6px;<\/p>\n<p>}<\/p>\n<p>.kk-footer-cta { padding: 24px 40px 32px; background: #faf8f6; text-align: center; border-top: 1px solid #e0dbd4; }<\/p>\n<p>.kk-calendly-btn {<\/p>\n<p>  display: inline-flex; align-items: center; gap: 10px;<\/p>\n<p>  background: #e8316e; color: #fff; border: none; border-radius: 8px;<\/p>\n<p>  padding: 16px 32px; font-family: &#8216;DM Sans&#8217;, sans-serif;<\/p>\n<p>  font-size: 14px; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase;<\/p>\n<p>  cursor: pointer; transition: background 0.2s, transform 0.15s, box-shadow 0.2s;<\/p>\n<p>  box-shadow: 0 4px 20px rgba(232,49,110,0.3);<\/p>\n<p>}<\/p>\n<p>.kk-calendly-btn:hover { background: #c0254f; transform: translateY(-2px); box-shadow: 0 8px 28px rgba(232,49,110,0.4); }<\/p>\n<p>\/* \u2500\u2500 POPUP \u2500\u2500 *\/<\/p>\n<p>@keyframes kk-fade-in  { from { opacity: 0; } to { opacity: 1; } }<\/p>\n<p>@keyframes kk-slide-up { from { transform: translateY(20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }<\/p>\n<p>#kk-popup-overlay.kk-visible { animation: kk-fade-in 0.25s ease; }<\/p>\n<p>#kk-popup { animation: kk-slide-up 0.3s ease; }<\/p>\n<p>.kk-popup-header {<\/p>\n<p>  background: #081b76; padding: 28px 32px 24px; position: relative; overflow: hidden;<\/p>\n<p>}<\/p>\n<p>.kk-popup-header::after {<\/p>\n<p>  content: &#8221;; position: absolute; top: -40px; right: -40px; width: 160px; height: 160px;<\/p>\n<p>  background: radial-gradient(circle, rgba(232,49,110,0.22) 0%, transparent 70%);<\/p>\n<p>  border-radius: 50%; pointer-events: none;<\/p>\n<p>}<\/p>\n<p>.kk-popup-close {<\/p>\n<p>  position: absolute; top: 12px; right: 14px; background: none; border: none;<\/p>\n<p>  color: rgba(255,255,255,0.45); font-size: 22px; cursor: pointer; padding: 4px 8px;<\/p>\n<p>  line-height: 1; font-family: sans-serif; transition: color 0.15s;<\/p>\n<p>}<\/p>\n<p>.kk-popup-close:hover { color: #fff; }<\/p>\n<p>.kk-popup-eyebrow {<\/p>\n<p>  font-size: 10px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase;<\/p>\n<p>  color: rgba(255,255,255,0.45); margin-bottom: 8px;<\/p>\n<p>}<\/p>\n<p>.kk-popup-title {<\/p>\n<p>  font-family: &#8216;DM Serif Display&#8217;, serif; font-size: 24px; font-style: italic;<\/p>\n<p>  color: #fff; line-height: 1.2; margin: 0;<\/p>\n<p>}<\/p>\n<p>.kk-popup-title em { color: #e8316e; font-style: normal; }<\/p>\n<p>.kk-popup-body { padding: 24px 32px 28px; }<\/p>\n<p>.kk-popup-text { font-size: 14px; color: #555; line-height: 1.65; margin-bottom: 20px; }<\/p>\n<p>.kk-popup-calendly {<\/p>\n<p>  display: flex; align-items: center; justify-content: center; gap: 10px;<\/p>\n<p>  width: 100%; padding: 15px 20px; background: #e8316e; color: #fff;<\/p>\n<p>  border: none; border-radius: 8px; font-family: &#8216;DM Sans&#8217;, sans-serif;<\/p>\n<p>  font-size: 14px; font-weight: 600; letter-spacing: 0.04em; cursor: pointer;<\/p>\n<p>  transition: background 0.2s, transform 0.15s, box-shadow 0.2s;<\/p>\n<p>  box-shadow: 0 4px 16px rgba(232,49,110,0.3); margin-bottom: 14px;<\/p>\n<p>}<\/p>\n<p>.kk-popup-calendly:hover { background: #c0254f; transform: translateY(-1px); box-shadow: 0 8px 24px rgba(232,49,110,0.4); }<\/p>\n<p>.kk-popup-divider {<\/p>\n<p>  display: flex; align-items: center; gap: 10px; font-size: 11px; color: #bbb; margin-bottom: 12px;<\/p>\n<p>}<\/p>\n<p>.kk-popup-divider::before,<\/p>\n<p>.kk-popup-divider::after { content: &#8221;; flex: 1; height: 1px; background: #e0dbd4; }<\/p>\n<p>.kk-popup-email-row { display: flex; gap: 8px; }<\/p>\n<p>.kk-popup-email-row .kk-input { margin-bottom: 0; flex: 1; font-size: 14px; padding: 11px 14px; }<\/p>\n<p>.kk-popup-send {<\/p>\n<p>  padding: 11px 18px; background: #081b76; color: #fff; border: none; border-radius: 8px;<\/p>\n<p>  font-family: &#8216;DM Sans&#8217;, sans-serif; font-size: 13px; font-weight: 600;<\/p>\n<p>  cursor: pointer; white-space: nowrap; transition: background 0.2s;<\/p>\n<p>}<\/p>\n<p>.kk-popup-send:hover { background: #0a2494; }<\/p>\n<p>\/* GDPR inside popup \u2014 same style as calculator *\/<\/p>\n<p>.kk-popup-gdpr {<\/p>\n<p>  display: flex; align-items: flex-start; gap: 10px;<\/p>\n<p>  font-size: 11px; color: #666; margin: 10px 0 0; line-height: 1.5; cursor: pointer;<\/p>\n<p>}<\/p>\n<p>.kk-popup-gdpr input[type=&#8221;checkbox&#8221;] { margin-top: 2px; flex-shrink: 0; accent-color: #e8316e; }<\/p>\n<p>.kk-popup-gdpr a { color: #e8316e; text-decoration: none; }<\/p>\n<p>.kk-popup-gdpr a:hover { text-decoration: underline; }<\/p>\n<p>.kk-popup-dismiss {<\/p>\n<p>  display: block; text-align: center; margin-top: 14px; font-size: 12px; color: #bbb;<\/p>\n<p>  cursor: pointer; background: none; border: none; font-family: &#8216;DM Sans&#8217;, sans-serif;<\/p>\n<p>  text-decoration: underline; text-underline-offset: 3px; width: 100%;<\/p>\n<p>}<\/p>\n<p>.kk-popup-dismiss:hover { color: #888; }<\/p>\n<p>.kk-popup-err { color: #c0254f; font-size: 12px; margin-top: 6px; display: none; }<\/p>\n<p>.kk-popup-success {<\/p>\n<p>  color: #1a6e3c; font-size: 13px; margin-top: 8px; display: none;<\/p>\n<p>  background: #e8f5ee; padding: 10px; border-radius: 6px; text-align: center;<\/p>\n<p>}<\/p>\n<p>\/* \u2500\u2500 MOBILE \u2500\u2500 *\/<\/p>\n<p>@media (max-width: 520px) {<\/p>\n<p>  .kk-body, .kk-email-section, .kk-roi, .kk-footer-cta { padding-left: 20px; padding-right: 20px; }<\/p>\n<p>  .kk-result-header { padding: 24px 20px; }<\/p>\n<p>  .kk-result-price, .kk-result-price #price-num { font-size: 40px; }<\/p>\n<p>  .kk-roi-row { flex-direction: column; align-items: flex-start; }<\/p>\n<p>  .kk-roi-input { width: 100%; }<\/p>\n<p>  .kk-duration-sublabels span:last-child { text-align: left; }<\/p>\n<p>  #kk-popup-overlay { align-items: flex-end; padding: 0; }<\/p>\n<p>  #kk-popup { border-radius: 16px 16px 0 0; max-width: 100%; }<\/p>\n<p>  .kk-popup-header { padding: 22px 20px 18px; }<\/p>\n<p>  .kk-popup-body { padding: 20px 20px 24px; }<\/p>\n<p>  .kk-popup-email-row { flex-direction: column; }<\/p>\n<p>  .kk-popup-send { width: 100%; }<\/p>\n<p>}<\/p>\n<p>\/\/ =============================================================<\/p>\n<p>\/\/ LANGUAGE DETECTION<\/p>\n<p>\/\/ =============================================================<\/p>\n<p>function detectLang() {<\/p>\n<p>    if (window.location.pathname.startsWith(&#8216;\/en\/&#8217;)) return &#8216;en&#8217;;<\/p>\n<p>    if (typeof window.SITE_LANG === &#8216;string&#8217; &amp;&amp; window.SITE_LANG.length &gt; 0)<\/p>\n<p>        return window.SITE_LANG.toLowerCase().startsWith(&#8216;en&#8217;) ? &#8216;en&#8217; : &#8216;et&#8217;;<\/p>\n<p>    return document.documentElement.lang.toLowerCase().startsWith(&#8216;en&#8217;) ? &#8216;en&#8217; : &#8216;et&#8217;;<\/p>\n<p>}<\/p>\n<p>const LANG = detectLang();<\/p>\n<p>\/\/ =============================================================<\/p>\n<p>\/\/ TRANSLATIONS<\/p>\n<p>\/\/ =============================================================<\/p>\n<p>const T = {<\/p>\n<p>    et: {<\/p>\n<p>        brand: &#8216;Kaksik O\u00dc&#8217;,<\/p>\n<p>        contentSize:        &#8216;Koolituse sisu maht&#8217;,<\/p>\n<p>        durationMin:        &#8216;Kestus (minutites)&#8217;,<\/p>\n<p>        wordCount:          &#8216;S\u00f5nade arv&#8217;,<\/p>\n<p>        wordCountSub:       &#8216;(100 s\u00f5na = ~1 minut)&#8217;,<\/p>\n<p>        minutePlaceholder:  &#8216;nt 10&#8217;,<\/p>\n<p>        wordPlaceholder:    &#8216;nt 500&#8217;,<\/p>\n<p>        orDivider:          &#8216;V\u00d5I&#8217;,<\/p>\n<p>        complexityLabel:    &#8216;Materjali teostuse viis&#8217;,<\/p>\n<p>        contentLabel:       &#8216;Materjali esitamise viis(id)&#8217;,<\/p>\n<p>        addonsLabel:        &#8216;Lisateenused&#8217;,<\/p>\n<p>        languagesLabel:     &#8216;Keelte arv&#8217;,<\/p>\n<p>        calcBtn:            &#8216;Arvuta hind&#8217;,<\/p>\n<p>        hintMax15:          &#8216;Soovituslik pikkus on kuni 15 minutit&#8217;,<\/p>\n<p>        basic:          &#8216;Lihtne e-\u00f5ppematerjal (tekst, graafika)&#8217;,<\/p>\n<p>        medium:         &#8216;Interaktiivne e-\u00f5ppematerjal (tekst, graafika ja lisavalik(ud) allpool)&#8217;,<\/p>\n<p>        videokoolitus:  &#8216;Videokoolitus&#8217;,<\/p>\n<p>        physical_video: &#8216;F\u00fc\u00fcsilise klassiruumikoolituse videoj\u00e4\u00e4dvustus&#8217;,<\/p>\n<p>        ai_video:          &#8216;AI esinejaga video&#8217;,<\/p>\n<p>        interactiveobject: &#8216;Interaktiivsed elemendid&#8217;,<\/p>\n<p>        voiceover:         &#8216;Voiceover&#8217;,<\/p>\n<p>        videotrainingcontentcreation: &#8216;Videokoolituse sisu loomine&#8217;,<\/p>\n<p>        contentcreation:              &#8216;Koolituse alusmaterjali loomine&#8217;,<\/p>\n<p>        quizzes:                      &#8216;Testik\u00fcsimused&#8217;,<\/p>\n<p>        lms:                          &#8216;LMSi integreerimine&#8217;,<\/p>\n<p>        scorm:                        &#8216;SCORM\/xAPI&#8217;,<\/p>\n<p>        lang1: &#8216;1 keel&#8217;, lang2: &#8216;2 keelt&#8217;, lang3: &#8216;3 keelt&#8217;,<\/p>\n<p>        lang4: &#8216;4 keelt&#8217;, lang5: &#8216;5 keelt&#8217;, lang6: &#8216;6 keelt&#8217;,<\/p>\n<p>        resultEyebrow:    &#8216;Projekti hinnanguline maksumus alates&#8217;,<\/p>\n<p>        resultDisclaimer: &#8216;Esialgne kalkulatsioon vastavalt sisestatud andmetele (KM-ta) \u00b7 t\u00e4psema pakkumise saamiseks broneeri tasuta konsultatsioon&#8217;,<\/p>\n<p>        adjustOptions:    &#8216;\u2190 Muuda valikuid&#8217;,<\/p>\n<p>        roiLabel:       &#8216;Maksumus t\u00f6\u00f6taja kohta&#8217;,<\/p>\n<p>        roiInputLabel:  &#8216;Sisesta koolitatavate t\u00f6\u00f6tajate arv:&#8217;,<\/p>\n<p>        roiPlaceholder: &#8216;nt 50&#8217;,<\/p>\n<p>        roiResult:      (n, cost) =&gt; `${n} t\u00f6\u00f6taja kohta: <strong style=\"color:#081b76;font-size:1.2em;font-weight:700\">${cost} \u20ac<\/strong>`,<\/p>\n<p>        pdfRoiLabel:    &#8216;Maksumus t\u00f6\u00f6taja kohta&#8217;,<\/p>\n<p>        emailSectionTitle:  &#8216;Saada kokkuv\u00f5te e-postile&#8217;,<\/p>\n<p>        projectNameLabel:   &#8216;Projekti nimi&#8217;,<\/p>\n<p>        projectPlaceholder: &#8216;nt E-\u00f5ppe projekt 1&#8217;,<\/p>\n<p>        namePlaceholder:    &#8216;Sinu nimi&#8217;,<\/p>\n<p>        emailPlaceholder:   &#8216;Sinu e-post&#8217;,<\/p>\n<p>        gdprText:           &#8216;N\u00f5ustun oma andmete t\u00f6\u00f6tlemisega ning luban Kaksik O\u00dc-l minu hinnapakkumisega seoses \u00fchendust v\u00f5tta.&#8217;,<\/p>\n<p>        gdprLink:           &#8216;Privaatsuspoliitika&#8217;,<\/p>\n<p>        sendBtn:            &#8216;Saada kokkuv\u00f5te&#8217;,<\/p>\n<p>        calendlyBtn:        &#8216;Soovin t\u00e4pset hinnapakkumist \u2192&#8217;,<\/p>\n<p>        errSelectContent:  &#8216;Vali v\u00e4hemalt \u00fcks materjali esitamise viis.&#8217;,<\/p>\n<p>        errPhysicalWords:  &#8216;F\u00fc\u00fcsilise koolituse videoj\u00e4\u00e4dvustuse puhul saab sisestada ainult minutid.&#8217;,<\/p>\n<p>        errNoMinutes:      &#8216;Palun sisesta kestus minutites v\u00f5i s\u00f5nade arv.&#8217;,<\/p>\n<p>        errNoPrice:        &#8216;Palun arvuta esmalt hind.&#8217;,<\/p>\n<p>        errName:           &#8216;Palun sisesta oma nimi.&#8217;,<\/p>\n<p>        errEmail:          &#8216;Palun sisesta kehtiv e-posti aadress.&#8217;,<\/p>\n<p>        errGdpr:           &#8216;Palun n\u00f5ustu andmete t\u00f6\u00f6tlemisega, et saaksin kokkuv\u00f5tte saata.&#8217;,<\/p>\n<p>        errSendFail:       &#8216;Saatmine eba\u00f5nnestus. Palun proovi uuesti.&#8217;,<\/p>\n<p>        successMsg:        &#8216;\u2713 Kokkuv\u00f5te saadeti aadressile &#8216;,<\/p>\n<p>        sending:           &#8216;Saadan&#8230;&#8217;,<\/p>\n<p>        hintSelectContent: &#8216;Vali v\u00e4hemalt \u00fcks esitamise viis, et hinda arvutada.&#8217;,<\/p>\n<p>        exclusionHint:     &#8216;AI video ja voiceover ei ole samaaegselt valitavad.&#8217;,<\/p>\n<p>        exclusionTitleAI:  &#8216;Ei saa valida koos AI videoga&#8217;,<\/p>\n<p>        exclusionTitleVO:  &#8216;Ei saa valida koos voiceoveriga&#8217;,<\/p>\n<p>        pdfBrand:       &#8216;KAKSIK&#8217;,<\/p>\n<p>        pdfSubBrand:    &#8216;E-\u00f5ppe lahendused ettev\u00f5tetele&#8217;,<\/p>\n<p>        pdfSummaryLine: &#8216;Hinnanguline kokkuv\u00f5te \u00b7 kaksik.ee&#8217;,<\/p>\n<p>        pdfComplexity:  &#8216;Materjali teostuse viis&#8217;,<\/p>\n<p>        pdfDuration:    &#8216;Sisu maht&#8217;,<\/p>\n<p>        pdfLanguages:   &#8216;Keelte arv&#8217;,<\/p>\n<p>        pdfContent:     &#8216;Materjali esitamise viis&#8217;,<\/p>\n<p>        pdfAddons:      &#8216;Lisateenused&#8217;,<\/p>\n<p>        pdfPriceLabel:  &#8216;Projekti hinnanguline maksumus alates (KM-ta):&#8217;,<\/p>\n<p>        pdfDisclaimer:  &#8216;* Esialgne kalkulatsioon vastavalt sisestatud andmetele (KM-ta). T\u00e4psema hinnapakkumise saamiseks v\u00f5ta minuga \u00fchendust: stanislav@kaksik.ee.&#8217;,<\/p>\n<p>        pdfCTA:         &#8216;Broneeri tasuta konsultatsioon: calendly.com\/stanislav-kaksik\/30min&#8217;,<\/p>\n<p>        pdfFooter:      &#8216;Kaksik O\u00dc \u00b7 kaksik.ee \u00b7 stanislav@kaksik.ee&#8217;,<\/p>\n<p>        pdfLangUnit:    (n) =&gt; n === 1 ? &#8216;1 keel&#8217; : n + &#8216; keelt&#8217;,<\/p>\n<p>        pdfMinUnit:     (m) =&gt; m + &#8216; min&#8217;,<\/p>\n<p>        pdfWordUnit:    (w) =&gt; w + &#8216; s\u00f5na&#8217;,<\/p>\n<p>        pdfFileSuffix:  &#8216;hinnanguline-kokkuvote&#8217;,<\/p>\n<p>        emailSubject:   (proj) =&gt; &#8216;Sinu e-\u00f5ppematerjali hinnakalkulatsioon \u2013 &#8216; + proj,<\/p>\n<p>        emailGreeting:  (name) =&gt; &#8216;Tere, <strong>&#8216; + name + &#8216;<\/strong>!&#8217;,<\/p>\n<p>        emailIntro:     (proj) =&gt; &#8216;T\u00e4name, et kasutasite meie hinnakalkulaatorit. Manusest leiate projekti <strong>&#8216; + proj + &#8216;<\/strong> hinnangulise kokkuv\u00f5tte.&#8217;,<\/p>\n<p>        emailPriceLabel:&#8217;Projekti hinnanguline maksumus alates:&#8217;,<\/p>\n<p>        emailNote:      &#8216;See on esialgne kalkulatsioon vastavalt sisestatud andmetele. T\u00e4psema hinnapakkumise saamiseks broneeri tasuta konsultatsioon:&#8217;,<\/p>\n<p>        emailCTA:       &#8216;Broneeri tasuta konsultatsioon \u2192&#8217;,<\/p>\n<p>        emailSign:      &#8216;Parimate soovidega,&#8217;,<\/p>\n<p>        emailFooter:    &#8216;Said selle kirja, kuna kasutasid kaksik.ee hinnakalkulaatorit ja n\u00f5ustusite andmete t\u00f6\u00f6tlemisega.&#8217;,<\/p>\n<p>        tt_ai_video:                     &#8216;AI-genereeritud koolitaja esitab teksti video kujul. Realistlik koolitaja ilma videoproduktsioonita \u2014 saadaval rohkem kui 60 erinevat keelt.&#8217;,<\/p>\n<p>        tt_interactiveobject:            &#8216;Klikitavad elemendid, lohistamis\u00fclesanded, stsenaariumid jm tegevused, mis muudavad \u00f5ppija aktiivseks osalejaks.&#8217;,<\/p>\n<p>        tt_voiceover:                    &#8216;Professionaalne h\u00e4\u00e4l esitab sisu koolituse taustal. Soodsam kui videoproduktsioon. Saadaval rohkem kui 60 erinevat keelt.&#8217;,<\/p>\n<p>        tt_videotrainingcontentcreation: &#8216;Kirjutan stsenaariumi ja koostan kogu videosisu nullist.&#8217;,<\/p>\n<p>        tt_contentcreation:              &#8216;Loon e-\u00f5ppematerjali aluseks vajaliku sisu: tekst, struktuur.&#8217;,<\/p>\n<p>        tt_quizzes:                      &#8216;Mitme valikuga k\u00fcsimused, mis kontrollivad \u00f5ppija teadmisi. Saab lisada iga teema l\u00f5ppu v\u00f5i kokkuv\u00f5tteks.&#8217;,<\/p>\n<p>        tt_lms:                          &#8216;Laen valmis materjali \u00fcles sinu \u00f5pihalduss\u00fcsteemi (nt Moodle, TalentLMS, 360Learning, Coursy).&#8217;,<\/p>\n<p>        tt_scorm:                        &#8216;SCORM\/xAPI v\u00f5imaldab e-\u00f5ppematerjalil edastada tulemused, l\u00e4bimisprotsendi ja aja LMS-ile.&#8217;,<\/p>\n<p>        \/\/ \u2500\u2500 POPUP \u2500\u2500<\/p>\n<p>        popupEyebrow:    &#8216;Enne kui lahkud&#8230;&#8217;,<\/p>\n<p>        popupTitle:      &#8216;Saan aidata leida <em>parima lahenduse<\/em>&#8216;,<\/p>\n<p>        popupText:       &#8216;Tasuta 30-minutiline konsultatsioon \u2014 kirjelda oma koolitusvajadus ja annan selge \u00fclevaate, milline lahendus sobib.&#8217;,<\/p>\n<p>        popupCalendly:   &#8216;Broneeri tasuta konsultatsioon \u2192&#8217;,<\/p>\n<p>        popupOr:         &#8216;V\u00f5i saada endale kalkulaatori kokkuv\u00f5te e-postile&#8217;,<\/p>\n<p>        popupEmailPh:    &#8216;Sinu e-post&#8217;,<\/p>\n<p>        popupSend:       &#8216;Saada&#8217;,<\/p>\n<p>        popupDismiss:    &#8216;Ei, t\u00e4nan&#8217;,<\/p>\n<p>        popupSending:    &#8216;Saadan&#8230;&#8217;,<\/p>\n<p>        popupSuccess:    &#8216;\u2713 Kokkuv\u00f5te on saadetud!&#8217;,<\/p>\n<p>        popupErrEmail:   &#8216;Palun sisesta kehtiv e-posti aadress.&#8217;,<\/p>\n<p>        popupErrGdpr:    &#8216;Palun n\u00f5ustu andmete t\u00f6\u00f6tlemisega, et saaksin kokkuv\u00f5tte saata.&#8217;,<\/p>\n<p>        popupErrNoPrice: &#8216;Arvuta esmalt hind kalkulaatoris.&#8217;,<\/p>\n<p>        popupGdprText:   &#8216;N\u00f5ustun oma andmete t\u00f6\u00f6tlemisega ning luban Kaksik O\u00dc-l minu hinnapakkumisega seoses \u00fchendust v\u00f5tta.&#8217;,<\/p>\n<p>        popupGdprLink:   &#8216;Privaatsuspoliitika&#8217;,<\/p>\n<p>    },<\/p>\n<p>    en: {<\/p>\n<p>        brand: &#8216;Kaksik O\u00dc&#8217;,<\/p>\n<p>        contentSize:        &#8216;Training content volume&#8217;,<\/p>\n<p>        durationMin:        &#8216;Duration (in minutes)&#8217;,<\/p>\n<p>        wordCount:          &#8216;Word count&#8217;,<\/p>\n<p>        wordCountSub:       &#8216;(100 words = ~1 minute)&#8217;,<\/p>\n<p>        minutePlaceholder:  &#8216;e.g. 10&#8217;,<\/p>\n<p>        wordPlaceholder:    &#8216;e.g. 500&#8217;,<\/p>\n<p>        orDivider:          &#8216;OR&#8217;,<\/p>\n<p>        complexityLabel:    &#8216;Type of material&#8217;,<\/p>\n<p>        contentLabel:       &#8216;Presentation format(s)&#8217;,<\/p>\n<p>        addonsLabel:        &#8216;Additional services&#8217;,<\/p>\n<p>        languagesLabel:     &#8216;Number of languages&#8217;,<\/p>\n<p>        calcBtn:            &#8216;Calculate price&#8217;,<\/p>\n<p>        hintMax15:          &#8216;Recommended length is up to 15 minutes&#8217;,<\/p>\n<p>        basic:          &#8216;Simple e-learning material (text, graphics)&#8217;,<\/p>\n<p>        medium:         &#8216;Interactive e-learning material (text, graphics and additional options below)&#8217;,<\/p>\n<p>        videokoolitus:  &#8216;Video training&#8217;,<\/p>\n<p>        physical_video: &#8216;Video recording of a physical classroom training&#8217;,<\/p>\n<p>        ai_video:          &#8216;AI presenter video&#8217;,<\/p>\n<p>        interactiveobject: &#8216;Interactive elements&#8217;,<\/p>\n<p>        voiceover:         &#8216;Voiceover&#8217;,<\/p>\n<p>        videotrainingcontentcreation: &#8216;Video training content creation&#8217;,<\/p>\n<p>        contentcreation:              &#8216;Training base material creation&#8217;,<\/p>\n<p>        quizzes:                      &#8216;Quiz questions&#8217;,<\/p>\n<p>        lms:                          &#8216;LMS integration&#8217;,<\/p>\n<p>        scorm:                        &#8216;SCORM\/xAPI&#8217;,<\/p>\n<p>        lang1: &#8216;1 language&#8217;, lang2: &#8216;2 languages&#8217;, lang3: &#8216;3 languages&#8217;,<\/p>\n<p>        lang4: &#8216;4 languages&#8217;, lang5: &#8216;5 languages&#8217;, lang6: &#8216;6 languages&#8217;,<\/p>\n<p>        resultEyebrow:    &#8216;Estimated project cost from&#8217;,<\/p>\n<p>        resultDisclaimer: &#8216;Preliminary estimate based on data entered (w\/o VAT) \u00b7 book a free consultation for a detailed quote&#8217;,<\/p>\n<p>        adjustOptions:    &#8216;\u2190 Adjust options&#8217;,<\/p>\n<p>        roiLabel:       &#8216;Cost per employee&#8217;,<\/p>\n<p>        roiInputLabel:  &#8216;Enter number of employees to train:&#8217;,<\/p>\n<p>        roiPlaceholder: &#8216;e.g. 50&#8217;,<\/p>\n<p>        roiResult:      (n, cost) =&gt; `${n} employees: <strong style=\"color:#081b76;font-size:1.2em;font-weight:700\">${cost} \u20ac<\/strong>`,<\/p>\n<p>        pdfRoiLabel:    &#8216;Cost per employee&#8217;,<\/p>\n<p>        emailSectionTitle:  &#8216;Send summary by e-mail&#8217;,<\/p>\n<p>        projectNameLabel:   &#8216;Project name&#8217;,<\/p>\n<p>        projectPlaceholder: &#8216;e.g. E-learning project 1&#8217;,<\/p>\n<p>        namePlaceholder:    &#8216;Your name&#8217;,<\/p>\n<p>        emailPlaceholder:   &#8216;Your e-mail&#8217;,<\/p>\n<p>        gdprText:           &#8216;I agree to the processing of my personal data and allow Kaksik O\u00dc to contact me regarding this price estimate.&#8217;,<\/p>\n<p>        gdprLink:           &#8216;Privacy policy&#8217;,<\/p>\n<p>        sendBtn:            &#8216;Send summary&#8217;,<\/p>\n<p>        calendlyBtn:        &#8216;Request a detailed quote \u2192&#8217;,<\/p>\n<p>        errSelectContent:  &#8216;Please select at least one presentation format.&#8217;,<\/p>\n<p>        errPhysicalWords:  &#8216;For physical classroom video recording, only minutes can be entered.&#8217;,<\/p>\n<p>        errNoMinutes:      &#8216;Please enter duration in minutes or word count.&#8217;,<\/p>\n<p>        errNoPrice:        &#8216;Please calculate the price first.&#8217;,<\/p>\n<p>        errName:           &#8216;Please enter your name.&#8217;,<\/p>\n<p>        errEmail:          &#8216;Please enter a valid e-mail address.&#8217;,<\/p>\n<p>        errGdpr:           &#8216;Please accept the data processing terms to send the summary.&#8217;,<\/p>\n<p>        errSendFail:       &#8216;Sending failed. Please try again.&#8217;,<\/p>\n<p>        successMsg:        &#8216;\u2713 Summary sent to &#8216;,<\/p>\n<p>        sending:           &#8216;Sending&#8230;&#8217;,<\/p>\n<p>        hintSelectContent: &#8216;Please select at least one format to calculate.&#8217;,<\/p>\n<p>        exclusionHint:     &#8216;AI video and voiceover cannot be selected at the same time.&#8217;,<\/p>\n<p>        exclusionTitleAI:  &#8216;Cannot be selected together with AI video&#8217;,<\/p>\n<p>        exclusionTitleVO:  &#8216;Cannot be selected together with voiceover&#8217;,<\/p>\n<p>        pdfBrand:       &#8216;KAKSIK&#8217;,<\/p>\n<p>        pdfSubBrand:    &#8216;E-learning solutions for organisations&#8217;,<\/p>\n<p>        pdfSummaryLine: &#8216;Estimate summary \u00b7 kaksik.ee&#8217;,<\/p>\n<p>        pdfComplexity:  &#8216;Type of material&#8217;,<\/p>\n<p>        pdfDuration:    &#8216;Content volume&#8217;,<\/p>\n<p>        pdfLanguages:   &#8216;Number of languages&#8217;,<\/p>\n<p>        pdfContent:     &#8216;Presentation format&#8217;,<\/p>\n<p>        pdfAddons:      &#8216;Additional services&#8217;,<\/p>\n<p>        pdfPriceLabel:  &#8216;Estimated project cost from (w\/o VAT):&#8217;,<\/p>\n<p>        pdfDisclaimer:  &#8216;* Preliminary estimate based on the data entered (w\/o VAT). For a detailed quote, please contact me: stanislav@kaksik.ee.&#8217;,<\/p>\n<p>        pdfCTA:         &#8216;Book a free consultation: calendly.com\/stanislav-kaksik\/30min&#8217;,<\/p>\n<p>        pdfFooter:      &#8216;Kaksik O\u00dc \u00b7 kaksik.ee \u00b7 stanislav@kaksik.ee&#8217;,<\/p>\n<p>        pdfLangUnit:    (n) =&gt; n === 1 ? &#8216;1 language&#8217; : n + &#8216; languages&#8217;,<\/p>\n<p>        pdfMinUnit:     (m) =&gt; m + &#8216; min&#8217;,<\/p>\n<p>        pdfWordUnit:    (w) =&gt; w + &#8216; words&#8217;,<\/p>\n<p>        pdfFileSuffix:  &#8216;price-estimate&#8217;,<\/p>\n<p>        emailSubject:   (proj) =&gt; &#8216;Your e-learning price estimate \u2013 &#8216; + proj,<\/p>\n<p>        emailGreeting:  (name) =&gt; &#8216;Hello, <strong>&#8216; + name + &#8216;<\/strong>!&#8217;,<\/p>\n<p>        emailIntro:     (proj) =&gt; &#8216;Thank you for using our price calculator. Please find attached the estimate summary for project <strong>&#8216; + proj + &#8216;<\/strong>.&#8217;,<\/p>\n<p>        emailPriceLabel:&#8217;Estimated project cost from:&#8217;,<\/p>\n<p>        emailNote:      &#8216;This is a preliminary estimate based on the data you entered. For a detailed quote, book a free consultation:&#8217;,<\/p>\n<p>        emailCTA:       &#8216;Book a free consultation \u2192&#8217;,<\/p>\n<p>        emailSign:      &#8216;Kind regards,&#8217;,<\/p>\n<p>        emailFooter:    &#8216;You received this email because you used kaksik.ee price calculator and agreed to data processing.&#8217;,<\/p>\n<p>        tt_ai_video:                     &#8216;AI-generated trainer presents your content in video format. Realistic trainer without production costs \u2014 available in 60+ languages.&#8217;,<\/p>\n<p>        tt_interactiveobject:            &#8216;Clickable elements, drag-and-drop tasks, scenario choices and other activities that make the learner active.&#8217;,<\/p>\n<p>        tt_voiceover:                    &#8216;A professional voice presents the content over slides. More affordable than video production. Available in 60+ languages.&#8217;,<\/p>\n<p>        tt_videotrainingcontentcreation: &#8216;I write the script and create all video content from scratch.&#8217;,<\/p>\n<p>        tt_contentcreation:              &#8216;I create the underlying content: text, structure, exercises.&#8217;,<\/p>\n<p>        tt_quizzes:                      &#8216;Multiple-choice questions to test learner knowledge. Can be added at the end of each topic or as a final assessment.&#8217;,<\/p>\n<p>        tt_lms:                          &#8216;I upload the finished material to your LMS (e.g. Moodle, TalentLMS, 360Learning, Coursy).&#8217;,<\/p>\n<p>        tt_scorm:                        &#8216;SCORM\/xAPI lets e-learning communicate with your LMS \u2014 sending results, completion % and time spent.&#8217;,<\/p>\n<p>        \/\/ \u2500\u2500 POPUP \u2500\u2500<\/p>\n<p>        popupEyebrow:    &#8216;Before you go&#8217;,<\/p>\n<p>        popupTitle:      &#8216;Let me help you find <em>the right solution<\/em>&#8216;,<\/p>\n<p>        popupText:       &#8216;Free 30-minute consultation \u2014 describe your training need and I&#8217;ll give you a clear overview of what fits your needs the best.&#8217;,<\/p>\n<p>        popupCalendly:   &#8216;Book a free consultation \u2192&#8217;,<\/p>\n<p>        popupOr:         &#8216;Or send the calculator summary to your e-mail&#8217;,<\/p>\n<p>        popupEmailPh:    &#8216;Your e-mail&#8217;,<\/p>\n<p>        popupSend:       &#8216;Send&#8217;,<\/p>\n<p>        popupDismiss:    &#8216;No thanks&#8217;,<\/p>\n<p>        popupSending:    &#8216;Sending&#8230;&#8217;,<\/p>\n<p>        popupSuccess:    &#8216;\u2713 Summary sent!&#8217;,<\/p>\n<p>        popupErrEmail:   &#8216;Please enter a valid e-mail address.&#8217;,<\/p>\n<p>        popupErrGdpr:    &#8216;Please accept the data processing terms to send the summary.&#8217;,<\/p>\n<p>        popupErrNoPrice: &#8216;Please calculate the price in the calculator first.&#8217;,<\/p>\n<p>        popupGdprText:   &#8216;I agree to the processing of my personal data and allow Kaksik O\u00dc to contact me regarding this price estimate.&#8217;,<\/p>\n<p>        popupGdprLink:   &#8216;Privacy policy&#8217;,<\/p>\n<p>    }<\/p>\n<p>};<\/p>\n<p>const t = T[LANG];<\/p>\n<p>function tt(label, tipKey) {<\/p>\n<p>    const tip = t[tipKey] || &#8221;;<\/p>\n<p>    if (!tip) return `<span class=\"kk-label-text\">${label}<\/span>`;<\/p>\n<p>    return `<span class=\"tt-wrap\"><span class=\"kk-label-text\">${label}<\/span><span class=\"tt-icon\" tabindex=\"0\">?<\/span><span class=\"tt-bubble\">${tip}<\/span><\/span>`;<\/p>\n<p>}<\/p>\n<p>function ckItem(cls, value, label, tipKey) {<\/p>\n<p>    return `<label class=\"kk-check-label\" data-value=\"${value}\"><\/p>\n<p>        <span class=\"kk-checkmark\"><\/span><\/p>\n<p>        ${tt(label, tipKey)}<\/p>\n<p>    <\/label>`;<\/p>\n<p>}<\/p>\n<p>\/\/ =============================================================<\/p>\n<p>\/\/ BUILD FORM HTML<\/p>\n<p>\/\/ =============================================================<\/p>\n<p>document.getElementById(&#8216;kk-calc-root&#8217;).innerHTML = `<\/p>\n<div class=\"kk-body\">\n<div class=\"kk-field-group\">\n<p>      <label class=\"kk-label\">${t.contentSize}<\/label><\/p>\n<div class=\"kk-duration-sublabels\">\n<p>        <span>${t.durationMin}<\/span><\/p>\n<p>        <span id=\"words-sublabel\">${t.wordCount} <span style=\"color:#bbb;font-size:10px\">${t.wordCountSub}<\/span><\/span><\/p><\/div>\n<div class=\"kk-duration-row\">\n<div class=\"kk-input-wrap\" id=\"minutes-wrap\"><\/div>\n<div class=\"kk-or-pill\" id=\"or-divider\">${t.orDivider}<\/div>\n<div class=\"kk-input-wrap\" id=\"words-wrap\"><\/div>\n<\/p><\/div>\n<div class=\"kk-err\" id=\"err-minutes\"><\/div>\n<div class=\"kk-err\" id=\"videokoolitus-hint\"><\/div>\n<\/p><\/div>\n<div class=\"kk-field-group\">\n<p>      <label class=\"kk-label\">${t.complexityLabel}<\/label><\/p>\n<p>        ${t.basic}<\/p>\n<p>        ${t.medium}<\/p>\n<p>        ${t.videokoolitus}<\/p>\n<p>        ${t.physical_video}<\/p><\/div>\n<div class=\"kk-field-group\" id=\"content-block\">\n<p>      <label class=\"kk-label\">${t.contentLabel}<\/label><\/p>\n<div class=\"kk-checks\" id=\"content-checks\">\n<p>        ${ckItem(&#8216;content&#8217;, &#8216;ai_video&#8217;, t.ai_video, &#8216;tt_ai_video&#8217;)}<\/p>\n<p>        ${ckItem(&#8216;content&#8217;, &#8217;interactiveobject&#8217;, t.interactiveobject, &#8216;tt_interactiveobject&#8217;)}<\/p>\n<p>        ${ckItem(&#8216;content&#8217;, &#8216;voiceover&#8217;, t.voiceover, &#8216;tt_voiceover&#8217;)}<\/p><\/div>\n<div class=\"kk-err\" id=\"err-content\"><\/div>\n<\/p><\/div>\n<div class=\"kk-field-group\" id=\"addons-block\">\n<p>      <label class=\"kk-label\">${t.addonsLabel}<\/label><\/p>\n<div class=\"kk-checks\" id=\"addon-checks\">\n<p>        ${ckItem(&#8216;addon&#8217;, &#8216;videotrainingcontentcreation&#8217;, t.videotrainingcontentcreation, &#8216;tt_videotrainingcontentcreation&#8217;)}<\/p>\n<p>        ${ckItem(&#8216;addon&#8217;, &#8216;contentcreation&#8217;, t.contentcreation, &#8216;tt_contentcreation&#8217;)}<\/p>\n<p>        ${ckItem(&#8216;addon&#8217;, &#8216;quizzes&#8217;, t.quizzes, &#8216;tt_quizzes&#8217;)}<\/p>\n<p>        ${ckItem(&#8216;addon&#8217;, &#8216;lms&#8217;, t.lms, &#8216;tt_lms&#8217;)}<\/p>\n<p>        ${ckItem(&#8216;addon&#8217;, &#8216;scorm&#8217;, t.scorm, &#8216;tt_scorm&#8217;)}<\/p><\/div>\n<\/p><\/div>\n<div class=\"kk-field-group\" id=\"languages-wrap\">\n<p>      <label class=\"kk-label\">${t.languagesLabel}<\/label><\/p>\n<p>        ${t.lang1}<\/p>\n<p>        ${t.lang2}<\/p>\n<p>        ${t.lang3}<\/p>\n<p>        ${t.lang4}<\/p>\n<p>        ${t.lang5}<\/p>\n<p>        ${t.lang6}<\/p><\/div>\n<p>    <button type=\"button\" id=\"calc-btn\" class=\"kk-calc-btn\"><\/p>\n<p>      ${t.calcBtn} <span class=\"arrow\">\u2192<\/span><\/p>\n<p>    <\/button><\/p><\/div>\n<div class=\"kk-result\" id=\"result\">\n<div class=\"kk-result-header\">\n<div class=\"kk-result-eyebrow\">${t.resultEyebrow}<\/div>\n<div class=\"kk-result-price\"><span id=\"price-num\">0<\/span><span>\u20ac<\/span><\/div>\n<div class=\"kk-result-disclaimer\">${t.resultDisclaimer}<\/div>\n<p>      <button class=\"kk-result-adjust\" id=\"adjust-btn\">${t.adjustOptions}<\/button><\/p><\/div>\n<div class=\"kk-roi\">\n<p>      <span class=\"kk-roi-label\">${t.roiLabel}<\/span><\/p>\n<div class=\"kk-roi-row\" id=\"roi-row\">\n<p>        <span class=\"kk-roi-text\">${t.roiInputLabel}<\/span><\/p><\/div>\n<div class=\"kk-roi-result\" id=\"roi-result\"><\/div>\n<\/p><\/div>\n<div class=\"kk-email-section\">\n<div class=\"kk-section-title\">${t.emailSectionTitle}<\/div>\n<div class=\"kk-label\" style=\"margin-top:4px;margin-bottom:6px\">${t.projectNameLabel}<\/div>\n<p>      <label class=\"kk-gdpr\"><\/p>\n<p>        <span>${t.gdprText} <a href=\"https:\/\/kaksik.ee\/privaatsuspoliitika\" target=\"_blank\">${t.gdprLink}<\/a><\/span><\/p>\n<p>      <\/label><\/p>\n<div class=\"kk-err\" id=\"email-error\"><\/div>\n<p>      <button type=\"button\" id=\"email-btn\" class=\"kk-send-btn\">${t.sendBtn}<\/button><\/p>\n<div class=\"kk-success\" id=\"email-success\"><\/div>\n<\/p><\/div>\n<div class=\"kk-footer-cta\">\n<p>      <button type=\"button\" id=\"calendly-btn\" class=\"kk-calendly-btn\">${t.calendlyBtn}<\/button><\/p><\/div>\n<\/p><\/div>\n<p>`;<\/p>\n<p>\/\/ =============================================================<\/p>\n<p>\/\/ BUILD POPUP HTML<\/p>\n<p>\/\/ =============================================================<\/p>\n<p>document.getElementById(&#8216;kk-popup&#8217;).innerHTML = `<\/p>\n<div class=\"kk-popup-header\">\n<p>    <button class=\"kk-popup-close\" id=\"popup-close\" aria-label=\"Sulge\">\u00d7<\/button><\/p>\n<div class=\"kk-popup-eyebrow\">${t.popupEyebrow}<\/div>\n<h2 class=\"kk-popup-title\">${t.popupTitle}<\/h2>\n<\/p><\/div>\n<div class=\"kk-popup-body\">\n<p class=\"kk-popup-text\">${t.popupText}<\/p>\n<p>    <button type=\"button\" id=\"popup-calendly\" class=\"kk-popup-calendly\">${t.popupCalendly}<\/button><\/p>\n<div class=\"kk-popup-divider\">${t.popupOr}<\/div>\n<div class=\"kk-popup-email-row\">\n<p>      <button type=\"button\" id=\"popup-send\" class=\"kk-popup-send\">${t.popupSend}<\/button><\/p><\/div>\n<p>    <label class=\"kk-popup-gdpr\"><\/p>\n<p>      <span>${t.popupGdprText} <a href=\"https:\/\/kaksik.ee\/privaatsuspoliitika\" target=\"_blank\">${t.popupGdprLink}<\/a><\/span><\/p>\n<p>    <\/label><\/p>\n<div class=\"kk-popup-err\" id=\"popup-err\"><\/div>\n<div class=\"kk-popup-success\" id=\"popup-success\"><\/div>\n<p>    <button type=\"button\" class=\"kk-popup-dismiss\" id=\"popup-dismiss\">${t.popupDismiss}<\/button><\/p><\/div>\n<p>`;<\/p>\n<p>\/\/ =============================================================<\/p>\n<p>\/\/ STATE &amp; DOM REFS<\/p>\n<p>\/\/ =============================================================<\/p>\n<p>let lastResult    = null;<\/p>\n<p>let userConverted = false;<\/p>\n<p>let inactivityTimer = null;<\/p>\n<p>const complexitySelect     = document.getElementById(&#8220;complexity&#8221;);<\/p>\n<p>const contentBlock         = document.getElementById(&#8220;content-block&#8221;);<\/p>\n<p>const addonsBlock          = document.getElementById(&#8220;addons-block&#8221;);<\/p>\n<p>const languagesWrap        = document.getElementById(&#8220;languages-wrap&#8221;);<\/p>\n<p>const minutesInput         = document.getElementById(&#8220;minutes&#8221;);<\/p>\n<p>const wordsInput           = document.getElementById(&#8220;words&#8221;);<\/p>\n<p>const wordsWrap            = document.getElementById(&#8220;words-wrap&#8221;);<\/p>\n<p>const hintEl               = document.getElementById(&#8220;videokoolitus-hint&#8221;);<\/p>\n<p>const contentExclusionHint = document.getElementById(&#8220;err-content&#8221;);<\/p>\n<p>const errMinutes           = document.getElementById(&#8220;err-minutes&#8221;);<\/p>\n<p>const overlay              = document.getElementById(&#8220;kk-popup-overlay&#8221;);<\/p>\n<p>const videokoolitusPrices = { 1:600,2:900,3:1200,4:1500,5:1800,6:2050,7:2300,8:2550,9:2800,10:3000,11:3200,12:3400,13:3600,14:3800,15:4000 };<\/p>\n<p>\/\/ ROI<\/p>\n<p>document.getElementById(&#8220;roi-employees&#8221;).addEventListener(&#8220;input&#8221;, () =&gt; {<\/p>\n<p>    if (!lastResult) return;<\/p>\n<p>    const el = document.getElementById(&#8220;roi-result&#8221;);<\/p>\n<p>    const n  = parseInt(document.getElementById(&#8220;roi-employees&#8221;).value);<\/p>\n<p>    if (!n || n  {<\/p>\n<p>    document.getElementById(&#8220;elearn-form&#8221;).scrollIntoView({ behavior: &#8220;smooth&#8221;, block: &#8220;start&#8221; });<\/p>\n<p>});<\/p>\n<p>\/\/ =============================================================<\/p>\n<p>\/\/ POPUP \u2014 SHOW \/ HIDE<\/p>\n<p>\/\/ =============================================================<\/p>\n<p>function showPopup() {<\/p>\n<p>    if (userConverted || sessionStorage.getItem(&#8216;kk_popup_seen&#8217;)) return;<\/p>\n<p>    if (!lastResult) return;<\/p>\n<p>    sessionStorage.setItem(&#8216;kk_popup_seen&#8217;, &#8216;1&#8217;);<\/p>\n<p>    overlay.style.display = &#8216;flex&#8217;;<\/p>\n<p>    overlay.classList.add(&#8216;kk-visible&#8217;);<\/p>\n<p>}<\/p>\n<p>function hidePopup() {<\/p>\n<p>    overlay.style.display = &#8216;none&#8217;;<\/p>\n<p>}<\/p>\n<p>\/\/ Trigger 1: exit intent<\/p>\n<p>document.addEventListener(&#8216;mouseleave&#8217;, (e) =&gt; { if (e.clientY  { if (e.target === overlay) hidePopup(); });<\/p>\n<p>document.addEventListener(&#8220;keydown&#8221;, (e) =&gt; { if (e.key === &#8220;Escape&#8221;) hidePopup(); });<\/p>\n<p>\/\/ Popup Calendly<\/p>\n<p>document.getElementById(&#8220;popup-calendly&#8221;).addEventListener(&#8220;click&#8221;, () =&gt; {<\/p>\n<p>    userConverted = true;<\/p>\n<p>    hidePopup();<\/p>\n<p>    window.open(&#8220;https:\/\/calendly.com\/stanislav-kaksik\/30min&#8221;, &#8220;_blank&#8221;);<\/p>\n<p>});<\/p>\n<p>\/\/ Popup quick email send \u2014 includes GDPR check<\/p>\n<p>document.getElementById(&#8220;popup-send&#8221;).addEventListener(&#8220;click&#8221;, function () {<\/p>\n<p>    const errEl  = document.getElementById(&#8220;popup-err&#8221;);<\/p>\n<p>    const succEl = document.getElementById(&#8220;popup-success&#8221;);<\/p>\n<p>    errEl.style.display = succEl.style.display = &#8220;none&#8221;;<\/p>\n<p>    const email = document.getElementById(&#8220;popup-email&#8221;).value.trim();<\/p>\n<p>    const gdpr  = document.getElementById(&#8220;popup-gdpr-check&#8221;).checked;<\/p>\n<p>    if (!email || !\/^[^s@]+@[^s@]+.[^s@]+$\/.test(email)) {<\/p>\n<p>        errEl.innerHTML = t.popupErrEmail; errEl.style.display = &#8220;block&#8221;; return;<\/p>\n<p>    }<\/p>\n<p>    if (!gdpr) {<\/p>\n<p>        errEl.innerHTML = t.popupErrGdpr; errEl.style.display = &#8220;block&#8221;; return;<\/p>\n<p>    }<\/p>\n<p>    if (!lastResult) {<\/p>\n<p>        errEl.innerHTML = t.popupErrNoPrice; errEl.style.display = &#8220;block&#8221;; return;<\/p>\n<p>    }<\/p>\n<p>    const btn = this;<\/p>\n<p>    btn.disabled = true; btn.textContent = t.popupSending;<\/p>\n<p>    const pdfB64      = generatePDF().output(&#8220;datauristring&#8221;).split(&#8220;,&#8221;)[1];<\/p>\n<p>    const projectName = document.getElementById(&#8220;project-name&#8221;).value.trim() || (LANG === &#8216;en&#8217; ? &#8216;E-learning project&#8217; : &#8216;E-\u00f5ppe projekt&#8217;);<\/p>\n<p>    fetch(&#8220;\/wp-admin\/admin-ajax.php?action=kaksik_send_email&#8221;, {<\/p>\n<p>        method: &#8220;POST&#8221;, headers: { &#8220;Content-Type&#8221;: &#8220;application\/json&#8221; },<\/p>\n<p>        body: JSON.stringify({ name: email, email, project_name: projectName, price: lastResult.price, pdf_base64: pdfB64, lang: LANG, security: window.KAKSIK_CALC_NONCE })<\/p>\n<p>    })<\/p>\n<p>    .then(r =&gt; r.json())<\/p>\n<p>    .then(res =&gt; {<\/p>\n<p>        btn.disabled = false; btn.textContent = t.popupSend;<\/p>\n<p>        if (res.success) {<\/p>\n<p>            succEl.innerHTML = t.popupSuccess; succEl.style.display = &#8220;block&#8221;;<\/p>\n<p>            userConverted = true;<\/p>\n<p>            setTimeout(hidePopup, 2000);<\/p>\n<p>        } else {<\/p>\n<p>            errEl.innerHTML = t.errSendFail; errEl.style.display = &#8220;block&#8221;;<\/p>\n<p>        }<\/p>\n<p>    })<\/p>\n<p>    .catch(() =&gt; {<\/p>\n<p>        btn.disabled = false; btn.textContent = t.popupSend;<\/p>\n<p>        errEl.innerHTML = t.errSendFail; errEl.style.display = &#8220;block&#8221;;<\/p>\n<p>    });<\/p>\n<p>});<\/p>\n<p>\/\/ =============================================================<\/p>\n<p>\/\/ MUTUAL EXCLUSION: AI video \u2194 voiceover<\/p>\n<p>\/\/ =============================================================<\/p>\n<p>function handleContentMutualExclusion(changed) {<\/p>\n<p>    const aiVideo   = document.querySelector(&#8216;.content[value=&#8221;ai_video&#8221;]&#8217;);<\/p>\n<p>    const voiceover = document.querySelector(&#8216;.content[value=&#8221;voiceover&#8221;]&#8217;);<\/p>\n<p>    if (!aiVideo || !voiceover) return;<\/p>\n<p>    [aiVideo, voiceover].forEach(el =&gt; {<\/p>\n<p>        el.disabled = false; el.closest(&#8216;.kk-check-label&#8217;)?.classList.remove(&#8217;disabled&#8217;);<\/p>\n<p>    });<\/p>\n<p>    if (contentExclusionHint.innerHTML === t.exclusionHint) {<\/p>\n<p>        contentExclusionHint.style.display = &#8220;none&#8221;; contentExclusionHint.innerHTML = &#8220;&#8221;;<\/p>\n<p>    }<\/p>\n<p>    if (changed === aiVideo &amp;&amp; aiVideo.checked) {<\/p>\n<p>        voiceover.checked = false; voiceover.disabled = true;<\/p>\n<p>        voiceover.closest(&#8216;.kk-check-label&#8217;)?.classList.add(&#8217;disabled&#8217;);<\/p>\n<p>        contentExclusionHint.innerHTML = t.exclusionHint; contentExclusionHint.style.display = &#8220;block&#8221;;<\/p>\n<p>    } else if (changed === voiceover &amp;&amp; voiceover.checked) {<\/p>\n<p>        aiVideo.checked = false; aiVideo.disabled = true;<\/p>\n<p>        aiVideo.closest(&#8216;.kk-check-label&#8217;)?.classList.add(&#8217;disabled&#8217;);<\/p>\n<p>        contentExclusionHint.innerHTML = t.exclusionHint; contentExclusionHint.style.display = &#8220;block&#8221;;<\/p>\n<p>    }<\/p>\n<p>    updateCalcButtonState();<\/p>\n<p>}<\/p>\n<p>function resetContentExclusionState() {<\/p>\n<p>    document.querySelectorAll(&#8216;.content&#8217;).forEach(el =&gt; {<\/p>\n<p>        el.disabled = false; el.closest(&#8216;.kk-check-label&#8217;)?.classList.remove(&#8217;disabled&#8217;);<\/p>\n<p>    });<\/p>\n<p>    contentExclusionHint.style.display = &#8220;none&#8221;; contentExclusionHint.innerHTML = &#8220;&#8221;;<\/p>\n<p>}<\/p>\n<p>\/\/ =============================================================<\/p>\n<p>\/\/ CALC BUTTON STATE<\/p>\n<p>\/\/ =============================================================<\/p>\n<p>function updateCalcButtonState() {<\/p>\n<p>    const level    = complexitySelect.value;<\/p>\n<p>    const btn      = document.getElementById(&#8220;calc-btn&#8221;);<\/p>\n<p>    const selected = document.querySelectorAll(&#8220;.content:checked&#8221;).length;<\/p>\n<p>    const hint     = document.getElementById(&#8220;err-content&#8221;);<\/p>\n<p>    if (level === &#8220;medium&#8221; &amp;&amp; selected === 0) {<\/p>\n<p>        btn.style.opacity = &#8220;0.55&#8221;; btn.style.cursor = &#8220;not-allowed&#8221;;<\/p>\n<p>        if (!hint.innerHTML || hint.innerHTML === t.hintSelectContent) {<\/p>\n<p>            hint.innerHTML = t.hintSelectContent; hint.style.display = &#8220;block&#8221;; hint.style.color = &#8220;#888&#8221;;<\/p>\n<p>        }<\/p>\n<p>    } else {<\/p>\n<p>        btn.style.opacity = &#8220;1&#8221;; btn.style.cursor = &#8220;pointer&#8221;;<\/p>\n<p>        if (hint.innerHTML === t.hintSelectContent) { hint.style.display = &#8220;none&#8221;; hint.innerHTML = &#8220;&#8221;; }<\/p>\n<p>    }<\/p>\n<p>}<\/p>\n<p>\/\/ =============================================================<\/p>\n<p>\/\/ UPDATE UI<\/p>\n<p>\/\/ =============================================================<\/p>\n<p>function updateUI() {<\/p>\n<p>    const level = complexitySelect.value;<\/p>\n<p>    contentBlock.style.display = addonsBlock.style.display = languagesWrap.style.display = &#8220;block&#8221;;<\/p>\n<p>    document.querySelectorAll(&#8220;.content&#8221;).forEach(c =&gt; { c.checked = false; c.closest(&#8216;.kk-check-label&#8217;).style.display = &#8220;none&#8221;; });<\/p>\n<p>    document.querySelectorAll(&#8220;.addon&#8221;).forEach(a  =&gt; { a.checked = false; a.disabled = false; a.closest(&#8216;.kk-check-label&#8217;).style.display = &#8220;none&#8221;; });<\/p>\n<p>    resetContentExclusionState();<\/p>\n<p>    errMinutes.style.display = &#8220;none&#8221;; errMinutes.innerHTML = &#8220;&#8221;;<\/p>\n<p>    if (level === &#8220;basic&#8221;) {<\/p>\n<p>        contentBlock.style.display = &#8220;none&#8221;;<\/p>\n<p>        [&#8220;contentcreation&#8221;,&#8221;quizzes&#8221;,&#8221;lms&#8221;,&#8221;scorm&#8221;].forEach(v =&gt;<\/p>\n<p>            document.querySelector(`.addon[value=&#8221;${v}&#8221;]`)?.closest(&#8216;.kk-check-label&#8217;)?.style.setProperty(&#8217;display&#8217;,&#8217;inline-flex&#8217;));<\/p>\n<p>    }<\/p>\n<p>    if (level === &#8220;medium&#8221;) {<\/p>\n<p>        [&#8220;ai_video&#8221;,&#8221;interactiveobject&#8221;,&#8221;voiceover&#8221;].forEach(v =&gt;<\/p>\n<p>            document.querySelector(`.content[value=&#8221;${v}&#8221;]`)?.closest(&#8216;.kk-check-label&#8217;)?.style.setProperty(&#8217;display&#8217;,&#8217;inline-flex&#8217;));<\/p>\n<p>        [&#8220;contentcreation&#8221;,&#8221;quizzes&#8221;,&#8221;lms&#8221;,&#8221;scorm&#8221;].forEach(v =&gt;<\/p>\n<p>            document.querySelector(`.addon[value=&#8221;${v}&#8221;]`)?.closest(&#8216;.kk-check-label&#8217;)?.style.setProperty(&#8217;display&#8217;,&#8217;inline-flex&#8217;));<\/p>\n<p>    }<\/p>\n<p>    if (level === &#8220;videokoolitus&#8221;) {<\/p>\n<p>        contentBlock.style.display = &#8220;none&#8221;;<\/p>\n<p>        [&#8220;videotrainingcontentcreation&#8221;,&#8221;quizzes&#8221;,&#8221;lms&#8221;,&#8221;scorm&#8221;].forEach(v =&gt;<\/p>\n<p>            document.querySelector(`.addon[value=&#8221;${v}&#8221;]`)?.closest(&#8216;.kk-check-label&#8217;)?.style.setProperty(&#8217;display&#8217;,&#8217;inline-flex&#8217;));<\/p>\n<p>    }<\/p>\n<p>    if (level === &#8220;physical_video&#8221;) {<\/p>\n<p>        contentBlock.style.display = addonsBlock.style.display = languagesWrap.style.display = &#8220;none&#8221;;<\/p>\n<p>        wordsInput.value = &#8220;&#8221;; wordsWrap.style.display = &#8220;none&#8221;;<\/p>\n<p>        document.getElementById(&#8220;or-divider&#8221;).style.display = &#8220;none&#8221;;<\/p>\n<p>        document.getElementById(&#8220;words-sublabel&#8221;).style.display = &#8220;none&#8221;;<\/p>\n<p>        minutesInput.style.borderRadius = &#8220;8px&#8221;; minutesInput.style.borderRight = &#8220;1.5px solid #e0dbd4&#8221;;<\/p>\n<p>    } else {<\/p>\n<p>        wordsWrap.style.display = &#8220;block&#8221;;<\/p>\n<p>        document.getElementById(&#8220;or-divider&#8221;).style.display = &#8220;flex&#8221;;<\/p>\n<p>        document.getElementById(&#8220;words-sublabel&#8221;).style.display = &#8220;block&#8221;;<\/p>\n<p>        minutesInput.style.borderRadius = &#8220;8px 0 0 8px&#8221;; minutesInput.style.borderRight = &#8220;none&#8221;;<\/p>\n<p>    }<\/p>\n<p>    updateVideokoolitusHint();<\/p>\n<p>    updateCalcButtonState();<\/p>\n<p>}<\/p>\n<p>updateUI();<\/p>\n<p>complexitySelect.addEventListener(&#8220;change&#8221;, updateUI);<\/p>\n<p>document.querySelectorAll(&#8220;.content&#8221;).forEach(c =&gt;<\/p>\n<p>    c.addEventListener(&#8220;change&#8221;, () =&gt; { handleContentMutualExclusion(c); updateCalcButtonState(); }));<\/p>\n<p>minutesInput.addEventListener(&#8220;input&#8221;, () =&gt; {<\/p>\n<p>    if (minutesInput.value.trim()) wordsInput.value = &#8220;&#8221;;<\/p>\n<p>    errMinutes.style.display = &#8220;none&#8221;; updateVideokoolitusHint();<\/p>\n<p>});<\/p>\n<p>wordsInput.addEventListener(&#8220;input&#8221;, () =&gt; {<\/p>\n<p>    if (wordsInput.value.trim()) minutesInput.value = &#8220;&#8221;;<\/p>\n<p>    errMinutes.style.display = &#8220;none&#8221;; updateVideokoolitusHint();<\/p>\n<p>});<\/p>\n<p>function updateVideokoolitusHint() {<\/p>\n<p>    const level = complexitySelect.value;<\/p>\n<p>    if (level !== &#8220;videokoolitus&#8221;) { hintEl.style.display = &#8220;none&#8221;; return; }<\/p>\n<p>    let m = parseFloat(minutesInput.value) || parseFloat(wordsInput.value) \/ 100;<\/p>\n<p>    if (!m || m  a.addEventListener(&#8220;change&#8221;, updateVideokoolitusHint));<\/p>\n<p>document.getElementById(&#8220;languages&#8221;).addEventListener(&#8220;change&#8221;, updateVideokoolitusHint);<\/p>\n<p>\/\/ =============================================================<\/p>\n<p>\/\/ CALCULATE<\/p>\n<p>\/\/ =============================================================<\/p>\n<p>document.getElementById(&#8220;calc-btn&#8221;).addEventListener(&#8220;click&#8221;, function () {<\/p>\n<p>    const level = complexitySelect.value;<\/p>\n<p>    const selectedContent = Array.from(document.querySelectorAll(&#8220;.content:checked&#8221;)).map(x =&gt; x.value);<\/p>\n<p>    let hasError = false;<\/p>\n<p>    if (!minutesInput.value.trim() &amp;&amp; !wordsInput.value.trim()) {<\/p>\n<p>        errMinutes.innerHTML = t.errNoMinutes; errMinutes.style.display = &#8220;block&#8221;; hasError = true;<\/p>\n<p>    }<\/p>\n<p>    if (level === &#8220;medium&#8221; &amp;&amp; selectedContent.length === 0) {<\/p>\n<p>        contentExclusionHint.innerHTML = t.errSelectContent;<\/p>\n<p>        contentExclusionHint.style.color = &#8220;#c0254f&#8221;; contentExclusionHint.style.display = &#8220;block&#8221;; hasError = true;<\/p>\n<p>    }<\/p>\n<p>    if (level === &#8220;physical_video&#8221; &amp;&amp; wordsInput.value.trim()) {<\/p>\n<p>        errMinutes.innerHTML = t.errPhysicalWords; errMinutes.style.display = &#8220;block&#8221;; hasError = true;<\/p>\n<p>    }<\/p>\n<p>    if (hasError) return;<\/p>\n<p>    const data = {<\/p>\n<p>        minutes: minutesInput.value, words: wordsInput.value, complexity: level,<\/p>\n<p>        content: selectedContent,<\/p>\n<p>        addons:  Array.from(document.querySelectorAll(&#8220;.addon:checked&#8221;)).map(x =&gt; x.value),<\/p>\n<p>        languages: document.getElementById(&#8220;languages&#8221;).value, lang: LANG, security: window.KAKSIK_CALC_NONCE<\/p>\n<p>    };<\/p>\n<p>    fetch(&#8220;\/wp-admin\/admin-ajax.php?action=kaksik_calculate&#8221;, {<\/p>\n<p>        method: &#8220;POST&#8221;, headers: { &#8220;Content-Type&#8221;: &#8220;application\/json&#8221; }, body: JSON.stringify(data)<\/p>\n<p>    })<\/p>\n<p>    .then(r =&gt; r.json())<\/p>\n<p>    .then(res =&gt; {<\/p>\n<p>        if (res.error) { errMinutes.innerHTML = res.error; errMinutes.style.display = &#8220;block&#8221;; return; }<\/p>\n<p>        document.getElementById(&#8220;price-num&#8221;).textContent = res.low.toLocaleString();<\/p>\n<p>        const resultEl = document.getElementById(&#8220;result&#8221;);<\/p>\n<p>        resultEl.style.display = &#8220;block&#8221;;<\/p>\n<p>        resultEl.scrollIntoView({ behavior: &#8220;smooth&#8221;, block: &#8220;start&#8221; });<\/p>\n<p>        document.getElementById(&#8220;roi-employees&#8221;).value = &#8220;&#8221;;<\/p>\n<p>        document.getElementById(&#8220;roi-result&#8221;).style.display = &#8220;none&#8221;;<\/p>\n<p>        lastResult = {<\/p>\n<p>            price: res.low, minutes: data.minutes, words: data.words,<\/p>\n<p>            complexity: data.complexity, content: data.content,<\/p>\n<p>            addons: data.addons, languages: data.languages,<\/p>\n<p>            date: new Date().toLocaleDateString(LANG === &#8216;en&#8217; ? &#8216;en-GB&#8217; : &#8216;et-EE&#8217;)<\/p>\n<p>        };<\/p>\n<p>        startInactivityTimer();<\/p>\n<p>    })<\/p>\n<p>    .catch(() =&gt; {<\/p>\n<p>        errMinutes.innerHTML = (LANG === &#8216;en&#8217;)<br \/>\n            ? &#8216;Something went wrong. Please try again in a moment or contact us directly.&#8217;<br \/>\n            : &#8216;Midagi l\u00e4ks valesti. Palun proovi hetke p\u00e4rast uuesti v\u00f5i v\u00f5ta meiega otse \u00fchendust.&#8217;;<\/p>\n<p>        errMinutes.style.display = &#8220;block&#8221;;<\/p>\n<p>    });<\/p>\n<p>});<\/p>\n<p>\/\/ =============================================================<\/p>\n<p>\/\/ PDF<\/p>\n<p>\/\/ =============================================================<\/p>\n<p>function generatePDF() {<\/p>\n<p>    const { jsPDF } = window.jspdf;<\/p>\n<p>    const doc = new jsPDF({ unit: &#8220;mm&#8221;, format: &#8220;a4&#8221; });<\/p>\n<p>    const W = 210, margin = 18;<\/p>\n<p>    const navy=[8,27,118], pink=[216,22,95], lightGray=[245,247,250], darkGray=[60,60,70];<\/p>\n<p>    const projectName = document.getElementById(&#8220;project-name&#8221;).value.trim() || (LANG===&#8217;en&#8217;?&#8217;E-learning project&#8217;:&#8217;E-\u00f5ppe projekt&#8217;);<\/p>\n<p>    const r = lastResult;<\/p>\n<p>    const langTxt     = t.pdfLangUnit(parseInt(r.languages));<\/p>\n<p>    const durationTxt = r.minutes ? t.pdfMinUnit(r.minutes) : (r.words ? t.pdfWordUnit(r.words) : &#8216;\u2014&#8217;);<\/p>\n<p>    doc.setFillColor(&#8230;navy); doc.rect(0,0,W,38,&#8221;F&#8221;);<\/p>\n<p>    doc.setFont(&#8220;helvetica&#8221;,&#8221;bold&#8221;); doc.setFontSize(22); doc.setTextColor(255,255,255);<\/p>\n<p>    doc.text(t.pdfBrand, margin, 18);<\/p>\n<p>    doc.setFont(&#8220;helvetica&#8221;,&#8221;normal&#8221;); doc.setFontSize(9); doc.setTextColor(180,200,255);<\/p>\n<p>    doc.text(t.pdfSubBrand, margin, 25);<\/p>\n<p>    doc.setFontSize(8); doc.text(r.date, W-margin, 18, {align:&#8221;right&#8221;});<\/p>\n<p>    doc.setFillColor(&#8230;pink); doc.rect(0,38,W,3,&#8221;F&#8221;);<\/p>\n<p>    doc.setFont(&#8220;helvetica&#8221;,&#8221;bold&#8221;); doc.setFontSize(17); doc.setTextColor(&#8230;navy);<\/p>\n<p>    doc.text(projectName, margin, 58);<\/p>\n<p>    doc.setFont(&#8220;helvetica&#8221;,&#8221;normal&#8221;); doc.setFontSize(10); doc.setTextColor(&#8230;darkGray);<\/p>\n<p>    doc.text(t.pdfSummaryLine, margin, 66);<\/p>\n<p>    doc.setDrawColor(&#8230;pink); doc.setLineWidth(0.5); doc.line(margin,71,W-margin,71);<\/p>\n<p>    let y=82; const col2=90, rowH=10; let rowShade=false;<\/p>\n<p>    function drawRow(label, value) {<\/p>\n<p>        if (rowShade) { doc.setFillColor(&#8230;lightGray); doc.rect(margin-2,y-6,W-(margin-2)*2,rowH,&#8221;F&#8221;); }<\/p>\n<p>        doc.setFont(&#8220;helvetica&#8221;,&#8221;bold&#8221;); doc.setFontSize(9); doc.setTextColor(&#8230;navy); doc.text(label,margin,y);<\/p>\n<p>        doc.setFont(&#8220;helvetica&#8221;,&#8221;normal&#8221;); doc.setTextColor(&#8230;darkGray); doc.text(value||&#8221;\u2014&#8221;,col2,y);<\/p>\n<p>        y+=rowH; rowShade=!rowShade;<\/p>\n<p>    }<\/p>\n<p>    drawRow(t.pdfComplexity, t[r.complexity]||r.complexity);<\/p>\n<p>    drawRow(t.pdfDuration, durationTxt);<\/p>\n<p>    drawRow(t.pdfLanguages, langTxt);<\/p>\n<p>    if (r.content.length&gt;0) drawRow(t.pdfContent, r.content.map(c=&gt;t[c]||c).join(&#8220;, &#8220;));<\/p>\n<p>    if (r.addons.length&gt;0)  drawRow(t.pdfAddons,  r.addons.map(a=&gt;t[a]||a).join(&#8220;, &#8220;));<\/p>\n<p>    const empVal = parseInt(document.getElementById(&#8220;roi-employees&#8221;).value);<\/p>\n<p>    if (empVal&gt;0) drawRow(t.pdfRoiLabel, Math.ceil(r.price\/empVal)+&#8221; \u20ac \/ &#8220;+(LANG===&#8217;en&#8217;?&#8217;employee&#8217;:&#8217;t\u00f6\u00f6taja&#8217;)+&#8221; (&#8220;+empVal+&#8221;)&#8221;);<\/p>\n<p>    y+=4;<\/p>\n<p>    doc.setFillColor(&#8230;navy); doc.roundedRect(margin-2,y,W-(margin-2)*2,28,4,4,&#8221;F&#8221;);<\/p>\n<p>    doc.setFont(&#8220;helvetica&#8221;,&#8221;normal&#8221;); doc.setFontSize(10); doc.setTextColor(180,200,255);<\/p>\n<p>    doc.text(t.pdfPriceLabel, margin+4, y+10);<\/p>\n<p>    doc.setFont(&#8220;helvetica&#8221;,&#8221;bold&#8221;); doc.setFontSize(26); doc.setTextColor(255,255,255);<\/p>\n<p>    doc.text(r.price+&#8221; \u20ac&#8221;, margin+4, y+23);<\/p>\n<p>    y+=40;<\/p>\n<p>    doc.setFont(&#8220;helvetica&#8221;,&#8221;italic&#8221;); doc.setFontSize(8); doc.setTextColor(140,140,150);<\/p>\n<p>    const lines = doc.splitTextToSize(t.pdfDisclaimer, W-margin*2);<\/p>\n<p>    doc.text(lines, margin, y); y+=lines.length*5+10;<\/p>\n<p>    doc.setFillColor(&#8230;pink); doc.roundedRect(margin-2,y,W-(margin-2)*2,14,3,3,&#8221;F&#8221;);<\/p>\n<p>    doc.setFont(&#8220;helvetica&#8221;,&#8221;bold&#8221;); doc.setFontSize(9); doc.setTextColor(255,255,255);<\/p>\n<p>    doc.text(t.pdfCTA, W\/2, y+9, {align:&#8221;center&#8221;}); y+=24;<\/p>\n<p>    doc.setDrawColor(220,220,230); doc.setLineWidth(0.3); doc.line(margin,y,W-margin,y); y+=6;<\/p>\n<p>    doc.setFont(&#8220;helvetica&#8221;,&#8221;normal&#8221;); doc.setFontSize(8); doc.setTextColor(160,160,170);<\/p>\n<p>    doc.text(t.pdfFooter, W\/2, y, {align:&#8221;center&#8221;});<\/p>\n<p>    return doc;<\/p>\n<p>}<\/p>\n<p>\/\/ =============================================================<\/p>\n<p>\/\/ EMAIL<\/p>\n<p>\/\/ =============================================================<\/p>\n<p>document.getElementById(&#8220;email-btn&#8221;).addEventListener(&#8220;click&#8221;, function () {<\/p>\n<p>    const errEl  = document.getElementById(&#8220;email-error&#8221;);<\/p>\n<p>    const succEl = document.getElementById(&#8220;email-success&#8221;);<\/p>\n<p>    errEl.style.display = succEl.style.display = &#8220;none&#8221;;<\/p>\n<p>    if (!lastResult) { errEl.innerHTML = t.errNoPrice; errEl.style.display = &#8220;block&#8221;; return; }<\/p>\n<p>    const name  = document.getElementById(&#8220;email-name&#8221;).value.trim();<\/p>\n<p>    const email = document.getElementById(&#8220;email-address&#8221;).value.trim();<\/p>\n<p>    const gdpr  = document.getElementById(&#8220;gdpr-check&#8221;).checked;<\/p>\n<p>    if (!name)  { errEl.innerHTML = t.errName;  errEl.style.display = &#8220;block&#8221;; return; }<\/p>\n<p>    if (!email || !\/^[^s@]+@[^s@]+.[^s@]+$\/.test(email)) { errEl.innerHTML = t.errEmail; errEl.style.display = &#8220;block&#8221;; return; }<\/p>\n<p>    if (!gdpr)  { errEl.innerHTML = t.errGdpr;  errEl.style.display = &#8220;block&#8221;; return; }<\/p>\n<p>    const pdfB64      = generatePDF().output(&#8220;datauristring&#8221;).split(&#8220;,&#8221;)[1];<\/p>\n<p>    const projectName = document.getElementById(&#8220;project-name&#8221;).value.trim() || (LANG===&#8217;en&#8217;?&#8217;E-learning project&#8217;:&#8217;E-\u00f5ppe projekt&#8217;);<\/p>\n<p>    const btn         = document.getElementById(&#8220;email-btn&#8221;);<\/p>\n<p>    btn.disabled = true; btn.textContent = t.sending;<\/p>\n<p>    fetch(&#8220;\/wp-admin\/admin-ajax.php?action=kaksik_send_email&#8221;, {<\/p>\n<p>        method: &#8220;POST&#8221;, headers: { &#8220;Content-Type&#8221;: &#8220;application\/json&#8221; },<\/p>\n<p>        body: JSON.stringify({ name, email, project_name: projectName, price: lastResult.price, pdf_base64: pdfB64, lang: LANG, security: window.KAKSIK_CALC_NONCE })<\/p>\n<p>    })<\/p>\n<p>    .then(r =&gt; r.json())<\/p>\n<p>    .then(res =&gt; {<\/p>\n<p>        btn.disabled = false; btn.textContent = t.sendBtn;<\/p>\n<p>        if (res.success) {<\/p>\n<p>            succEl.innerHTML = t.successMsg + email; succEl.style.display = &#8220;block&#8221;;<\/p>\n<p>            userConverted = true;<\/p>\n<p>        } else { errEl.innerHTML = res.error || t.errSendFail; errEl.style.display = &#8220;block&#8221;; }<\/p>\n<p>    })<\/p>\n<p>    .catch(() =&gt; { btn.disabled = false; btn.textContent = t.sendBtn; errEl.innerHTML = t.errSendFail; errEl.style.display = &#8220;block&#8221;; });<\/p>\n<p>});<\/p>\n<p>\/\/ =============================================================<\/p>\n<p>\/\/ CALENDLY<\/p>\n<p>\/\/ =============================================================<\/p>\n<p>document.getElementById(&#8220;calendly-btn&#8221;).addEventListener(&#8220;click&#8221;, () =&gt; {<\/p>\n<p>    userConverted = true;<\/p>\n<p>    window.open(&#8220;https:\/\/calendly.com\/stanislav-kaksik\/30min&#8221;, &#8220;_blank&#8221;);<\/p>\n<p>});<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-1ezjygs brz-wrapper\">\n<div class=\"brz-embed-code brz-css-d-12mke1z brz-css-1fnnaej\" data-brz-custom-id=\"fekhSnvbfANM\">\n<div class=\"brz-embed-content\">\n<div>\n<div style=\"display:inline-flex;align-items:center;gap:8px;background:#eef3ff;border:1px solid #c7d7f9;border-radius:8px;padding:8px 14px;font-family:system-ui,sans-serif\">\n<p>  <span style=\"font-size:13px;font-weight:600;color:#0c447c\">T\u00fc\u00fcpiline tarneaeg:<\/span><br \/>\n  <span style=\"font-size:13px;font-weight:700;color:#081b76\">2\u20133 n\u00e4dalat<\/span>\n<\/div>\n<div style=\"display:inline-flex;align-items:center;gap:8px;background:#eef3ff;border:1px solid #c7d7f9;border-radius:8px;padding:8px 14px;font-family:system-ui,sans-serif\">\n<p>  <span style=\"font-size:13px;font-weight:700;color:#081b76\">Konfidentsiaalsus tagatud<\/span>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<section id=\"df9dBbeXDU1x_df9dBbeXDU1x\" class=\"brz-section brz-css-d-ynf0il brz-css-16u460c\">\n<div class=\"brz-section__content brz-section--boxed brz-css-d-oh3bvl brz-css-6x3nfi\" data-brz-custom-id=\"juWPuGHMHzVf\">\n<div class=\"brz-bg\">\n<div class=\"brz-bg-color\"><\/div>\n<\/div>\n<div class=\"brz-container brz-css-d-x9rvyp brz-css-1n9soni\">\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-1kj8djv brz-wrapper\">\n<div class=\"brz-rich-text brz-rich-text__custom brz-css-d-1ehz5mr brz-css-choh8g\" data-brz-custom-id=\"sDX6tfbnhNyD\">\n<div data-brz-translate-text=\"1\">\n<h2 class=\"brz-text-lg-center brz-tp-lg-heading2 brz-css-1dgp6hp\" data-generated-css=\"brz-css-fueOq\" data-uniq-id=\"uZnKA\">E-\u00f5ppematerjali esitamise variandid<\/h2>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-r-18yxudy brz-css-tgzgdi brz-wrapper\">\n<div class=\"brz-spacer brz-css-d-d4vxpd brz-css-1d5z010\"><\/div>\n<\/div>\n<div class=\"brz-row__container brz-css-d-w3a52u brz-css-17xh811\" data-brz-custom-id=\"wUiwVkYnoyAN\">\n<div class=\"brz-row brz-css-d-1n95ksq brz-css-r-1xc399q brz-css-y4qfcd\">\n<div class=\"brz-columns brz-css-d-j7y22h brz-css-1vohch3\" data-brz-custom-id=\"gqqYCLYVZTB4\">\n<div class=\"brz-column__items brz-css-d-v5w42e brz-css-1fyhyik\">\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-zy6elr brz-wrapper\">\n<div class=\"brz-embed-code brz-css-d-12mke1z brz-css-8lh6fz\" data-brz-custom-id=\"oKm57CLQZq8B\">\n<div class=\"brz-embed-content\">\n<div><video class=\"kk-lazyvideo\" muted=\"\" loop=\"\" playsinline=\"\" preload=\"none\" width=\"540\" height=\"360\" poster=\"https:\/\/kaksik.ee\/wp-content\/uploads\/2026\/10\/lihtne-e-oppematerjal-poster.webp\" aria-label=\"Lihtsa e-\u00f5ppematerjali n\u00e4ide: slaidid ja helitekst\"><\/p>\n<p><\/video><\/p>\n<p>.kk-lazyvideo { display: block; width: 100%; max-width: 540px; height: auto; aspect-ratio: 3 \/ 2; margin: 0 auto; background: #faf8f6; }<\/p>\n<p>(function () {<br \/>\n  if (window.kkLazyVideo) { window.kkLazyVideo(); return; }<br \/>\n  var reduce = window.matchMedia &amp;&amp; window.matchMedia(&#8216;(prefers-reduced-motion: reduce)&#8217;).matches;<\/p>\n<p>  function prime(v) {<br \/>\n    if (v.dataset.kkLoaded) return;<br \/>\n    v.dataset.kkLoaded = &#8216;1&#8217;;<br \/>\n    v.querySelectorAll(&#8216;source[data-src]&#8217;).forEach(function (s) { s.src = s.getAttribute(&#8217;data-src&#8217;); });<br \/>\n    v.load();<br \/>\n  }<\/p>\n<p>  var io = &#8216;IntersectionObserver&#8217; in window ? new IntersectionObserver(function (entries) {<br \/>\n    entries.forEach(function (en) {<br \/>\n      var v = en.target;<br \/>\n      if (en.isIntersecting) { prime(v); if (!reduce) { var p = v.play(); if (p &amp;&amp; p.catch) p.catch(function () {}); } }<br \/>\n      else if (!v.paused) v.pause();<br \/>\n    });<br \/>\n  }, { rootMargin: &#8216;200px 0px&#8217; }) : null;<\/p>\n<p>  window.kkLazyVideo = function () {<br \/>\n    document.querySelectorAll(&#8216;video.kk-lazyvideo&#8217;).forEach(function (v) {<br \/>\n      if (v.dataset.kkSeen) return;<br \/>\n      v.dataset.kkSeen = &#8216;1&#8217;;<br \/>\n      if (reduce) v.controls = true; \/\/ liikumise v\u00e4hendamise eelistusega kasutaja k\u00e4ivitab ise<br \/>\n      if (io) io.observe(v); else { prime(v); if (!reduce) v.play(); }<br \/>\n    });<br \/>\n  };<br \/>\n  window.kkLazyVideo();<br \/>\n})();\n<\/p><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"brz-columns brz-css-d-j7y22h brz-css-10yrt3r\" data-brz-custom-id=\"t6lzO3dhEKQt\">\n<div class=\"brz-column__items brz-css-d-v5w42e brz-css-x1rn5u\">\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-14jfa9b brz-wrapper\">\n<div class=\"brz-rich-text brz-rich-text__custom brz-css-d-1ehz5mr brz-css-1cnc8gu\" data-brz-custom-id=\"s1_B0Fumi_Hi\">\n<div data-brz-translate-text=\"1\">\n<p data-uniq-id=\"omuyg\" class=\"brz-bcp-color2 brz-tp-lg-heading3 brz-css-1j5auji\" data-generated-css=\"brz-css-mECDa\"><span class=\"brz-cp-color2\">Lihtne e-\u00f5ppematerjal<\/span><\/p>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-15qvve7 brz-wrapper\">\n<div class=\"brz-rich-text brz-rich-text__custom brz-css-d-1ehz5mr brz-css-ps2eme\" data-brz-custom-id=\"kL2vDl4DA0oi\">\n<div data-brz-translate-text=\"1\">\n<p class=\"brz-tp-lg-paragraph brz-css-1wkli4b\" data-uniq-id=\"vI3Wl\" data-generated-css=\"brz-css-hPTrV\"><span class=\"brz-cp-color7\">N\u00e4ide: SCORM paketina tehtud lihtne e-\u00f5ppematerjal animeeritud presentatsiooni vormis koos men\u00fc\u00fcribaga.<\/span><\/p>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-r-18yxudy brz-css-3fmz7d brz-wrapper\">\n<div class=\"brz-spacer brz-css-d-d4vxpd brz-css-nqa0lc\"><\/div>\n<\/div>\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-1s8tkit brz-wrapper\">\n<div class=\"brz-icon-text brz-css-d-12ll232 brz-css-1itqcaf\" data-brz-custom-id=\"x3leeShMeRyc\">\n<div class=\"brz-icon__container\" data-brz-custom-id=\"kvLvi6kVDmy8\"><span class=\"brz-icon brz-span brz-css-d-127a3es brz-css-doysrr\"><\/span><\/div>\n<div class=\"brz-text-btn\">\n<div class=\"brz-rich-text brz-rich-text__custom brz-css-d-1ehz5mr brz-css-10vxikb\" data-brz-custom-id=\"cqdrIS94ZD0Q\">\n<div data-brz-translate-text=\"1\">\n<h5 class=\"brz-tp-lg-heading5 brz-mb-lg-10 brz-mt-lg-15 brz-css-jgjkvd\" data-uniq-id=\"bz2aP\" data-generated-css=\"brz-css-zoSki\"><span class=\"brz-cp-color2\">Tekst, graafika<\/span><\/h5>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-r-18yxudy brz-css-5s03fz brz-wrapper\">\n<div class=\"brz-spacer brz-css-d-d4vxpd brz-css-10vqu3s\"><\/div>\n<\/div>\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-1u60vc3 brz-wrapper\">\n<div class=\"brz-icon-text brz-css-d-12ll232 brz-css-1fw71x\" data-brz-custom-id=\"icIJRkDXOMGx\">\n<div class=\"brz-icon__container\" data-brz-custom-id=\"iqKUX3CS5Ztt\"><span class=\"brz-icon brz-span brz-css-d-127a3es brz-css-8g2stu\"><\/span><\/div>\n<div class=\"brz-text-btn\">\n<div class=\"brz-rich-text brz-rich-text__custom brz-css-d-1ehz5mr brz-css-1un1m66\" data-brz-custom-id=\"fzbUQ1XTeeWl\">\n<div data-brz-translate-text=\"1\">\n<h5 class=\"brz-tp-lg-heading5 brz-mb-lg-10 brz-mt-lg-15 brz-css-jgjkvd\" data-uniq-id=\"sWjcl\" data-generated-css=\"brz-css-muFnG\"><span class=\"brz-cp-color2\">Valikuliselt: testk\u00fcsimused<\/span><\/h5>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<section id=\"cksQ6L6m_Rzu_cksQ6L6m_Rzu\" class=\"brz-section brz-css-d-ynf0il brz-css-r3f3to\">\n<div class=\"brz-section__content brz-section--boxed brz-css-d-oh3bvl brz-css-8hbp0b\" data-brz-custom-id=\"xO5zCFxYDABJ\">\n<div class=\"brz-bg\">\n<div class=\"brz-bg-color\"><\/div>\n<\/div>\n<div class=\"brz-container brz-css-d-x9rvyp brz-css-11mtvuu\">\n<div class=\"brz-row__container brz-css-d-w3a52u brz-css-1ceamda\" data-brz-custom-id=\"srW47DatH_mK\">\n<div class=\"brz-row brz-css-d-1n95ksq brz-css-r-1xc399q brz-css-1ltvi9a\">\n<div class=\"brz-columns brz-css-d-j7y22h brz-css-c0cd8h\" data-brz-custom-id=\"srnqlmHE2vQq\">\n<div class=\"brz-column__items brz-css-d-v5w42e brz-css-bkroms\">\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-79sq3a brz-wrapper\">\n<div class=\"brz-rich-text brz-rich-text__custom brz-css-d-1ehz5mr brz-css-sy8i4s\" data-brz-custom-id=\"iRkptcKnikGG\">\n<div data-brz-translate-text=\"1\">\n<h3 class=\"brz-tp-lg-heading3 brz-css-1j5auji\" data-generated-css=\"brz-css-wmFe4\" data-uniq-id=\"l3yat\"><span class=\"brz-cp-color2\">Interaktiivne e-\u00f5ppematerjal<\/span><\/h3>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-r-18yxudy brz-css-9zuoff brz-wrapper\">\n<div class=\"brz-spacer brz-css-d-d4vxpd brz-css-1ul6ai1\"><\/div>\n<\/div>\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-o1pny6 brz-wrapper\">\n<div class=\"brz-rich-text brz-rich-text__custom brz-css-d-1ehz5mr brz-css-fi44zs\" data-brz-custom-id=\"o3cBfTSZZadR\">\n<div data-brz-translate-text=\"1\">\n<p class=\"brz-tp-lg-paragraph brz-css-1wkli4b\" data-generated-css=\"brz-css-nYow7\" data-uniq-id=\"vQzlI\"><span class=\"brz-cp-color7\">N\u00e4ide: SCORM paketina tehtud interaktiivne e-\u00f5ppematerjal animeeritud presentatsiooni vormis koos interaktiivsete elementide, testk\u00fcsimustega ja men\u00fc\u00fcribaga.<\/span><\/p>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-8usiw5 brz-wrapper\">\n<div class=\"brz-icon-text brz-css-d-12ll232 brz-css-1sy3ptg\" data-brz-custom-id=\"jZwrSLaOXK5T\">\n<div class=\"brz-icon__container\" data-brz-custom-id=\"oW_WB3A5vgIj\"><span class=\"brz-icon brz-span brz-css-d-127a3es brz-css-8mknt0\"><\/span><\/div>\n<div class=\"brz-text-btn\">\n<div class=\"brz-rich-text brz-rich-text__custom brz-css-d-1ehz5mr brz-css-1mhefpn\" data-brz-custom-id=\"vJAZohtSrjM6\">\n<div data-brz-translate-text=\"1\">\n<h5 class=\"brz-tp-lg-heading5 brz-mb-lg-10 brz-mt-lg-15 brz-css-jgjkvd\" data-generated-css=\"brz-css-s2sd0\" data-uniq-id=\"wuaOH\"><span class=\"brz-cp-color2\">Interaktiivsed elemendid, testk\u00fcsimused<\/span><\/h5>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-r-18yxudy brz-css-1mtqw97 brz-wrapper\">\n<div class=\"brz-spacer brz-css-d-d4vxpd brz-css-r3gqbd\"><\/div>\n<\/div>\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-zz65n2 brz-wrapper\">\n<div class=\"brz-icon-text brz-css-d-12ll232 brz-css-1d3mcwv\" data-brz-custom-id=\"xo6EdRVkyfeW\">\n<div class=\"brz-icon__container\" data-brz-custom-id=\"eXBcOSsrvI7o\"><span class=\"brz-icon brz-span brz-css-d-127a3es brz-css-69umjo\"><\/span><\/div>\n<div class=\"brz-text-btn\">\n<div class=\"brz-rich-text brz-rich-text__custom brz-css-d-1ehz5mr brz-css-1469dy5\" data-brz-custom-id=\"dpcn_iHLp9Yy\">\n<div data-brz-translate-text=\"1\">\n<h5 class=\"brz-tp-lg-heading5 brz-mb-lg-10 brz-mt-lg-5 brz-css-18taj6\" data-generated-css=\"brz-css-lftwU\" data-uniq-id=\"lrkKX\"><span class=\"brz-cp-color2\">Valikuliselt: videosisu (AI \/ filmitud), voiceover<\/span><\/h5>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-r-18yxudy brz-css-1croir2 brz-wrapper\">\n<div class=\"brz-spacer brz-css-d-d4vxpd brz-css-sawibn\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"brz-columns brz-css-d-j7y22h brz-css-rop0sw\" data-brz-custom-id=\"b2MGVOkz1uKx\">\n<div class=\"brz-column__items brz-css-d-v5w42e brz-css-1rqb27f\">\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-1o0r9wu brz-wrapper\">\n<div class=\"brz-embed-code brz-css-d-12mke1z brz-css-5yy84x\" data-brz-custom-id=\"u5za_2kfndIA\">\n<div class=\"brz-embed-content\">\n<div><!-- Kaksik: GIF-i asendus videoga (interaktiivne). Asenda kaustatee (2026\/10) Meediateegi tegeliku URL-iga. --><br \/>\n<video class=\"kk-lazyvideo\" muted=\"\" loop=\"\" playsinline=\"\" preload=\"none\" width=\"540\" height=\"360\" poster=\"https:\/\/kaksik.ee\/wp-content\/uploads\/2026\/10\/interaktiivne-e-oppematerjal-poster.webp\" aria-label=\"Interaktiivse e-\u00f5ppematerjali n\u00e4ide: k\u00fcsimused ja \u00fclesanded\"><\/p>\n<p><\/video><\/p>\n<p>.kk-lazyvideo { display: block; width: 100%; max-width: 540px; height: auto; aspect-ratio: 3 \/ 2; margin: 0 auto; background: #faf8f6; }<\/p>\n<p>(function () {<br \/>\n  if (window.kkLazyVideo) { window.kkLazyVideo(); return; }<br \/>\n  var reduce = window.matchMedia &amp;&amp; window.matchMedia(&#8216;(prefers-reduced-motion: reduce)&#8217;).matches;<\/p>\n<p>  function prime(v) {<br \/>\n    if (v.dataset.kkLoaded) return;<br \/>\n    v.dataset.kkLoaded = &#8216;1&#8217;;<br \/>\n    v.querySelectorAll(&#8216;source[data-src]&#8217;).forEach(function (s) { s.src = s.getAttribute(&#8217;data-src&#8217;); });<br \/>\n    v.load();<br \/>\n  }<\/p>\n<p>  var io = &#8216;IntersectionObserver&#8217; in window ? new IntersectionObserver(function (entries) {<br \/>\n    entries.forEach(function (en) {<br \/>\n      var v = en.target;<br \/>\n      if (en.isIntersecting) { prime(v); if (!reduce) { var p = v.play(); if (p &amp;&amp; p.catch) p.catch(function () {}); } }<br \/>\n      else if (!v.paused) v.pause();<br \/>\n    });<br \/>\n  }, { rootMargin: &#8216;200px 0px&#8217; }) : null;<\/p>\n<p>  window.kkLazyVideo = function () {<br \/>\n    document.querySelectorAll(&#8216;video.kk-lazyvideo&#8217;).forEach(function (v) {<br \/>\n      if (v.dataset.kkSeen) return;<br \/>\n      v.dataset.kkSeen = &#8216;1&#8217;;<br \/>\n      if (reduce) v.controls = true; \/\/ liikumise v\u00e4hendamise eelistusega kasutaja k\u00e4ivitab ise<br \/>\n      if (io) io.observe(v); else { prime(v); if (!reduce) v.play(); }<br \/>\n    });<br \/>\n  };<br \/>\n  window.kkLazyVideo();<br \/>\n})();\n<\/p><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<section id=\"xYkO6FP1S1NF_xYkO6FP1S1NF\" class=\"brz-section brz-css-d-ynf0il brz-css-16jsl6c\">\n<div class=\"brz-section__content brz-section--boxed brz-css-d-oh3bvl brz-css-n3egkq\" data-brz-custom-id=\"bsNtOxbdiMah\">\n<div class=\"brz-bg\">\n<div class=\"brz-bg-color\"><\/div>\n<\/div>\n<div class=\"brz-container brz-css-d-x9rvyp brz-css-4godmj\">\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-r-18yxudy brz-css-40xxkb brz-wrapper\">\n<div class=\"brz-spacer brz-css-d-d4vxpd brz-css-1epwgw9\"><\/div>\n<\/div>\n<div class=\"brz-row__container brz-css-d-w3a52u brz-css-p7giaj\" data-brz-custom-id=\"p5ME78ozBrxt\">\n<div class=\"brz-row brz-css-d-1n95ksq brz-css-r-1xc399q brz-css-ygns2q\">\n<div class=\"brz-columns brz-css-d-j7y22h brz-css-8li03s\" data-brz-custom-id=\"sc7cpStaBw9Q\">\n<div class=\"brz-column__items brz-css-d-v5w42e brz-css-1suro88\">\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-bpk40c brz-wrapper\">\n<div class=\"brz-embed-code brz-css-d-12mke1z brz-css-bhy42\" data-brz-custom-id=\"l5F2FJYZULNG\">\n<div class=\"brz-embed-content\">\n<div><!-- Kaksik: GIF-i asendus videoga (koolitusvideo). Asenda kaustatee (2026\/10) Meediateegi tegeliku URL-iga. --><br \/>\n<video class=\"kk-lazyvideo\" muted=\"\" loop=\"\" playsinline=\"\" preload=\"none\" width=\"540\" height=\"360\" poster=\"https:\/\/kaksik.ee\/wp-content\/uploads\/2026\/10\/koolitusvideo-poster.webp\" aria-label=\"Koolitusvideo n\u00e4ide: esineja ja ekraanil olev tekst\"><\/p>\n<p><\/video><\/p>\n<p>.kk-lazyvideo { display: block; width: 100%; max-width: 540px; height: auto; aspect-ratio: 3 \/ 2; margin: 0 auto; background: #faf8f6; }<\/p>\n<p>(function () {<br \/>\n  if (window.kkLazyVideo) { window.kkLazyVideo(); return; }<br \/>\n  var reduce = window.matchMedia &amp;&amp; window.matchMedia(&#8216;(prefers-reduced-motion: reduce)&#8217;).matches;<\/p>\n<p>  function prime(v) {<br \/>\n    if (v.dataset.kkLoaded) return;<br \/>\n    v.dataset.kkLoaded = &#8216;1&#8217;;<br \/>\n    v.querySelectorAll(&#8216;source[data-src]&#8217;).forEach(function (s) { s.src = s.getAttribute(&#8217;data-src&#8217;); });<br \/>\n    v.load();<br \/>\n  }<\/p>\n<p>  var io = &#8216;IntersectionObserver&#8217; in window ? new IntersectionObserver(function (entries) {<br \/>\n    entries.forEach(function (en) {<br \/>\n      var v = en.target;<br \/>\n      if (en.isIntersecting) { prime(v); if (!reduce) { var p = v.play(); if (p &amp;&amp; p.catch) p.catch(function () {}); } }<br \/>\n      else if (!v.paused) v.pause();<br \/>\n    });<br \/>\n  }, { rootMargin: &#8216;200px 0px&#8217; }) : null;<\/p>\n<p>  window.kkLazyVideo = function () {<br \/>\n    document.querySelectorAll(&#8216;video.kk-lazyvideo&#8217;).forEach(function (v) {<br \/>\n      if (v.dataset.kkSeen) return;<br \/>\n      v.dataset.kkSeen = &#8216;1&#8217;;<br \/>\n      if (reduce) v.controls = true; \/\/ liikumise v\u00e4hendamise eelistusega kasutaja k\u00e4ivitab ise<br \/>\n      if (io) io.observe(v); else { prime(v); if (!reduce) v.play(); }<br \/>\n    });<br \/>\n  };<br \/>\n  window.kkLazyVideo();<br \/>\n})();\n<\/p><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"brz-columns brz-css-d-j7y22h brz-css-14oqzok\" data-brz-custom-id=\"llyixQbVPXAA\">\n<div class=\"brz-column__items brz-css-d-v5w42e brz-css-1azprqx\">\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-szrg1q brz-wrapper\">\n<div class=\"brz-rich-text brz-rich-text__custom brz-css-d-1ehz5mr brz-css-17xa10n\" data-brz-custom-id=\"fc100w2iJAQ8\">\n<div data-brz-translate-text=\"1\">\n<p class=\"brz-tp-lg-heading3 brz-bcp-color2 brz-css-1j5auji\" data-generated-css=\"brz-css-mD0Kw\" data-uniq-id=\"oAVny\"><span class=\"brz-cp-color2\">Videokoolitus<\/span><\/p>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-t90zc brz-wrapper\">\n<div class=\"brz-rich-text brz-rich-text__custom brz-css-d-1ehz5mr brz-css-46wg0s\" data-brz-custom-id=\"e7odetxRiISR\">\n<div data-brz-translate-text=\"1\">\n<p class=\"brz-tp-lg-paragraph brz-css-1wkli4b\" data-uniq-id=\"dc5Fe\" data-generated-css=\"brz-css-sAUQH\"><span class=\"brz-cp-color7\">N\u00e4ide: katteplaanidega videokoolitus koos graafiliste elisanditega<\/span><\/p>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-r-18yxudy brz-css-1dooyip brz-wrapper\">\n<div class=\"brz-spacer brz-css-d-d4vxpd brz-css-6fyoeo\"><\/div>\n<\/div>\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-1o5yqh5 brz-wrapper\">\n<div class=\"brz-icon-text brz-css-d-12ll232 brz-css-va15np\" data-brz-custom-id=\"mMdTb2RObvbM\">\n<div class=\"brz-icon__container\" data-brz-custom-id=\"fb48qawW8UPx\"><span class=\"brz-icon brz-span brz-css-d-127a3es brz-css-165ws8q\"><\/span><\/div>\n<div class=\"brz-text-btn\">\n<div class=\"brz-rich-text brz-rich-text__custom brz-css-d-1ehz5mr brz-css-h1rfzr\" data-brz-custom-id=\"ikF0iPSoZVIk\">\n<div data-brz-translate-text=\"1\">\n<h5 class=\"brz-tp-lg-heading5 brz-mb-lg-10 brz-mt-lg-15 brz-css-jgjkvd\" data-generated-css=\"brz-css-jRpqx\" data-uniq-id=\"z5cca\"><span class=\"brz-cp-color2\">Katteplaanid, graafika<\/span><\/h5>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-r-18yxudy brz-css-6yrk6o brz-wrapper\">\n<div class=\"brz-spacer brz-css-d-d4vxpd brz-css-1f5nev6\"><\/div>\n<\/div>\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-110ztv9 brz-wrapper\">\n<div class=\"brz-icon-text brz-css-d-12ll232 brz-css-1wmrwbe\" data-brz-custom-id=\"o7w5yDvx_vHn\">\n<div class=\"brz-icon__container\" data-brz-custom-id=\"iW9dEsNn0SvZ\"><span class=\"brz-icon brz-span brz-css-d-127a3es brz-css-nvd7n3\"><\/span><\/div>\n<div class=\"brz-text-btn\">\n<div class=\"brz-rich-text brz-rich-text__custom brz-css-d-1ehz5mr brz-css-fbel5\" data-brz-custom-id=\"kyueuXxLQMpC\">\n<div data-brz-translate-text=\"1\">\n<h5 class=\"brz-mt-lg-15 brz-mb-lg-10 brz-tp-lg-heading5 brz-css-jgjkvd\" data-uniq-id=\"qq19U\" data-generated-css=\"brz-css-ggeou\"><span class=\"brz-cp-color2\">Valikuliselt: voiceover, subtiitrid<\/span><\/h5>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<section id=\"trustedby\" data-brz-id=\"tEtcUhxmRW8d_tEtcUhxmRW8d\" class=\"brz-section brz-css-d-ynf0il brz-css-52lead\">\n<div class=\"brz-section__content brz-section--boxed brz-css-d-oh3bvl brz-css-znwinj\" data-brz-custom-id=\"vh_ld9u5E45i\">\n<div class=\"brz-container brz-css-d-x9rvyp brz-css-bllcjj\">\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-1no5fdt brz-wrapper\">\n<div class=\"brz-rich-text brz-rich-text__custom brz-css-d-1ehz5mr brz-css-1xv2ksu\" data-brz-custom-id=\"gUt57TC6icjl\">\n<div data-brz-translate-text=\"1\">\n<h2 class=\"brz-fsft-xs-0 brz-fwdth-xs-100 brz-vfw-xs-400 brz-lh-xs-1_3 brz-ls-xs-m_1 brz-fw-xs-400 brz-fss-xs-px brz-fs-xs-36 brz-tp-xs-empty brz-text-lg-center brz-tp-lg-heading2 brz-text-xs-center brz-css-ubacvs\" data-generated-css=\"brz-css-rkfgX\" data-uniq-id=\"z3UuB\"><span class=\"brz-cp-color2\">MIND USALDAVAD<\/span><\/h2>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-r-18yxudy brz-css-1a5c9q8 brz-wrapper\">\n<div class=\"brz-spacer brz-css-d-d4vxpd brz-css-1hswvi\"><\/div>\n<\/div>\n<div class=\"brz-row__container brz-css-d-w3a52u brz-css-1z00qtk\" data-brz-custom-id=\"jGA300uv_Uwg\">\n<div class=\"brz-row brz-css-d-1n95ksq brz-css-r-1xc399q brz-css-1dpkiq2\">\n<div class=\"brz-columns brz-css-d-j7y22h brz-css-2yuzha\" data-brz-custom-id=\"zwShKstT9BWp\">\n<div class=\"brz-column__items brz-css-d-v5w42e brz-css-1rme2j5\">\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-1y8lo33 brz-wrapper\">\n<div class=\"brz-image brz-css-d-1kwlr37 brz-css-q2h06x\" data-brz-custom-id=\"ioDG2tHT0Ean\"><a class=\"brz-a\" target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/www.vkg.ee\/\" data-brz-link-type=\"external\"><img decoding=\"async\" class=\"brz-img brz-img-svg\" src=\"https:\/\/kaksik.ee\/wp-content\/uploads\/2025\/09\/vkg-logo.svg\" loading=\"lazy\" alt=\"VKG logo\" title=\"vkg-logo\"><\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"brz-columns brz-css-d-j7y22h brz-css-15k820m\" data-brz-custom-id=\"d1JhIj8S9BmV\">\n<div class=\"brz-column__items brz-css-d-v5w42e brz-css-6yz85o\">\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-bwlcv4 brz-wrapper\">\n<div class=\"brz-image brz-css-d-13q36xv brz-css-3xx21o\" data-brz-custom-id=\"x8lb8oj7RJda\"><a class=\"brz-a\" target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/www.lidl.ee\/\" data-brz-link-type=\"external\"><img decoding=\"async\" class=\"brz-img brz-img-svg\" src=\"https:\/\/kaksik.ee\/wp-content\/uploads\/2025\/09\/Lidl_Logo_Basis_115x115px_RGB.svg\" loading=\"lazy\" alt=\"Lidl logo\" title=\"Lidl_Logo\"><\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"brz-columns brz-css-d-j7y22h brz-css-s9ld6e\" data-brz-custom-id=\"paQVzGtsDavz\">\n<div class=\"brz-column__items brz-css-d-v5w42e brz-css-3trnv8\">\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-ybayrs brz-wrapper\">\n<div class=\"brz-image brz-css-d-6c49je brz-css-rrp6fa\" data-brz-custom-id=\"qsVLk4tmBXSj\"><a class=\"brz-a\" target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/www.smit.ee\/\" data-brz-link-type=\"external\"><img decoding=\"async\" class=\"brz-img\" src=\"https:\/\/kaksik.ee\/wp-content\/uploads\/2025\/10\/SMIT_logoslogan_no-dot-300x83.png\" loading=\"lazy\" alt=\"SMIT logo\" title=\"SMIT_logo+slogan_no-dot\"><\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"brz-columns brz-css-d-j7y22h brz-css-18705sz\" data-brz-custom-id=\"s_4eRIJWCeKf\">\n<div class=\"brz-column__items brz-css-d-v5w42e brz-css-1xthg4x\">\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-iw0qgy brz-wrapper\">\n<div class=\"brz-image brz-css-d-1n5ut7j brz-css-rzll4x\" data-brz-custom-id=\"hnURG9vXM5m8\"><a class=\"brz-a\" target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/sunly.ee\/\" data-brz-link-type=\"external\"><img decoding=\"async\" class=\"brz-img\" src=\"https:\/\/kaksik.ee\/wp-content\/uploads\/brizy\/imgs\/Sunly_icon_violet@2x-168x89x0x10x168x69x1775049027.png\" loading=\"lazy\" alt=\"Sunly logo\" title=\"Sunly_logo_\"><\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"brz-row__container brz-css-d-w3a52u brz-css-1521xrl\" data-brz-custom-id=\"otWWAqFRBPss\">\n<div class=\"brz-row brz-css-d-1n95ksq brz-css-r-1xc399q brz-css-xvw1cx\">\n<div class=\"brz-columns brz-css-d-j7y22h brz-css-19q8hh5\" data-brz-custom-id=\"omC72XfBJ2of\">\n<div class=\"brz-column__items brz-css-d-v5w42e brz-css-1gtaf63\"><\/div>\n<\/div>\n<div class=\"brz-columns brz-css-d-j7y22h brz-css-xzav61\" data-brz-custom-id=\"lrqXayJvS85E\">\n<div class=\"brz-column__items brz-css-d-v5w42e brz-css-1fl70c\">\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-nqac32 brz-wrapper\">\n<div class=\"brz-image brz-css-d-1buj7kc brz-css-sx3uc0\" data-brz-custom-id=\"rWn9_cXgZ0iN\"><a class=\"brz-a\" target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/www.lallemand.com\/en\/\" data-brz-link-type=\"external\"><img decoding=\"async\" class=\"brz-img\" src=\"https:\/\/kaksik.ee\/wp-content\/uploads\/brizy\/imgs\/Salutaguse_Parmitehas_logo-159x82x0x0x158x82x1757313918.png\" loading=\"lazy\" alt=\"Salutaguse P\u00e4rmitehas logo\" title=\"Salutaguse_Pa\u0308rmitehas_logo\"><\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"brz-columns brz-css-d-j7y22h brz-css-1rpln2d\" data-brz-custom-id=\"ctQv2avc5GG5\">\n<div class=\"brz-column__items brz-css-d-v5w42e brz-css-j90wrc\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p><a class=\"brz-a brz-anchor brz-link-container\" target=\"_self\" rel=\"noopener\" href=\"#tbdCDg0PvY_W_tbdCDg0PvY_W\" data-brz-link-type=\"anchor\"><\/a><\/div>\n<\/section>\n<section id=\"xqBrOWOh8_0b_xqBrOWOh8_0b\" class=\"brz-section brz-css-d-ynf0il brz-css-qo9m5c\">\n<div class=\"brz-section__content brz-section--boxed brz-css-d-oh3bvl brz-css-avw9ma\" data-brz-custom-id=\"v_yae_L1oHoi\">\n<div class=\"brz-bg\">\n<div class=\"brz-bg-color\"><\/div>\n<\/div>\n<div class=\"brz-container brz-css-d-x9rvyp brz-css-1uxmwm2\">\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-fn1tee brz-wrapper\">\n<div class=\"brz-rich-text brz-rich-text__custom brz-css-d-1ehz5mr brz-css-3jgmnb\" data-brz-custom-id=\"euzAWW7u96KP\">\n<div data-brz-translate-text=\"1\">\n<h2 class=\"brz-text-lg-center brz-tp-lg-heading2 brz-css-1dgp6hp\" data-generated-css=\"brz-css-kIOnt\" data-uniq-id=\"dIXcB\">Korduma kippuvad k\u00fcsimused<\/h2>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-12no9wo brz-wrapper\">\n<div class=\"brz-accordion brz-css-d-1re8uxh brz-css-1pd4t2e\" data-brz-duration=\"300\" data-brz-custom-id=\"vEu7P_uYP4tN\">\n<div class=\"brz-accordion__item brz-accordion__item--active\">\n<div class=\"brz-accordion__nav\" data-brz-collapsible=\"on\">\n<h3 data-brz-translate-text=\"1\" class=\"brz-accordion__nav-title brz-h3 brz-text__editor\">Kui kaua projekt aega v\u00f5tab?<\/h3>\n<\/div>\n<div class=\"brz-accordion__content brz-d-xs-flex brz-flex-xs-column\">\n<div class=\"brz-accordion__item-content brz-d-xs-flex brz-flex-xs-column\">\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-1i9f85r brz-wrapper\">\n<div class=\"brz-rich-text brz-rich-text__custom brz-css-d-1ehz5mr brz-css-h4t70o\" data-brz-custom-id=\"rnFP8FpnWsMy\">\n<div data-brz-translate-text=\"1\">\n<p class=\"brz-fsft-lg-0 brz-fwdth-lg-100 brz-vfw-lg-400 brz-lh-lg-1_9 brz-ls-lg-0 brz-fw-lg-400 brz-fss-lg-px brz-fs-lg-17 brz-ft-google brz-ff-oxygen brz-tp-lg-empty brz-css-18jatyl\" data-uniq-id=\"nNvm1\" data-generated-css=\"brz-css-dOcG4\"><span class=\"brz-cp-color7\">Projekti valmimine s\u00f5ltub suuresti tehtavate t\u00f6\u00f6de nimekirjast, kuid praktika n\u00e4itab, et 2-3 n\u00e4dala jooksul on v\u00f5imalik ka keerukam e-\u00f5ppematerjal kvaliteetselt teostada. T\u00e4pse ajakava saad teada tasuta konsultatsiooni k\u00e4igus -&gt; <\/span><a class=\"brz-cp-color3 link--external\" href=\"https:\/\/calendly.com\/stanislav-kaksik\/30min\" data-brz-link-type=\"external\" target=\"_blank\" rel=\"noreferrer noopener\">broneeri konsultatsioon.<\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"brz-accordion__item\">\n<div class=\"brz-accordion__nav\" data-brz-collapsible=\"on\">\n<h3 data-brz-translate-text=\"1\" class=\"brz-accordion__nav-title brz-h3 brz-text__editor\">Millest s\u00f5ltub e-\u00f5ppematerjali hind?<\/h3>\n<\/div>\n<div class=\"brz-accordion__content brz-d-xs-flex brz-flex-xs-column\">\n<div class=\"brz-accordion__item-content brz-d-xs-flex brz-flex-xs-column\">\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-1hltage brz-wrapper\">\n<div class=\"brz-rich-text brz-rich-text__custom brz-css-d-1ehz5mr brz-css-12p933r\" data-brz-custom-id=\"kwu3TqFwFwGI\">\n<div data-brz-translate-text=\"1\">\n<p class=\"brz-fsft-lg-0 brz-fwdth-lg-100 brz-vfw-lg-400 brz-lh-lg-1_9 brz-ls-lg-0 brz-fw-lg-400 brz-fss-lg-px brz-fs-lg-17 brz-ft-google brz-ff-oxygen brz-tp-lg-empty brz-css-18jatyl\" data-generated-css=\"brz-css-18jatyl\" data-uniq-id=\"md0ot\"><span class=\"brz-cp-color7\">E-\u00f5ppematerjali hind s\u00f5ltub peamiselt kolmest tegurist: materjali mahust, keerukusastmest ja kasutatavatest visuaalsetest elementidest. Hinnakalkulaator annab hea indikatsiooni projekti hinnangulisest hinnast, samas peab arvestama, et iga projekt on unikaalne, mist\u00f5ttu koostan alati personaalse hinnapakkumise <\/span><a class=\"link--external brz-cp-color3\" href=\"https:\/\/calendly.com\/stanislav-kaksik\/30min\" data-brz-link-type=\"external\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>p\u00e4rast esmast konsultatsiooni.<\/strong><\/a><\/p>\n<p class=\"brz-fsft-lg-0 brz-fwdth-lg-100 brz-vfw-lg-400 brz-lh-lg-1_9 brz-ls-lg-0 brz-fw-lg-400 brz-fss-lg-px brz-fs-lg-17 brz-ft-google brz-ff-oxygen brz-tp-lg-empty brz-css-18jatyl\" data-generated-css=\"brz-css-18jatyl\" data-uniq-id=\"qqeUG\"><a class=\"link--external brz-cp-color3\" href=\"https:\/\/calendly.com\/stanislav-kaksik\/30min\" data-brz-link-type=\"external\" target=\"_blank\" rel=\"noreferrer noopener\"><strong> <\/strong><\/a><\/p>\n<p class=\"brz-fsft-lg-0 brz-fwdth-lg-100 brz-vfw-lg-400 brz-lh-lg-1_9 brz-ls-lg-0 brz-fw-lg-400 brz-fss-lg-px brz-fs-lg-17 brz-ft-google brz-ff-oxygen brz-tp-lg-empty brz-css-18jatyl\" data-generated-css=\"brz-css-18jatyl\" data-uniq-id=\"ccWKB\"><span class=\"brz-cp-color7 brz-span\">P\u00f5hjalikum selgitus koos kolme n\u00e4idisprojektiga: <\/span><a class=\"brz-cp-color3 link--external\" href=\"https:\/\/kaksik.ee\/e-oppematerjali-hind-kolm-naidist-ja-vahemikud\/\" data-brz-link-type=\"external\" target=\"_blank\" rel=\"noreferrer noopener\">E-\u00f5ppematerjali hind 2026: kolm n\u00e4idist ja vahemikud<\/a><span class=\"brz-cp-color7 brz-span\">. <\/span><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"brz-accordion__item\">\n<div class=\"brz-accordion__nav\" data-brz-collapsible=\"on\">\n<h3 data-brz-translate-text=\"1\" class=\"brz-accordion__nav-title brz-h3 brz-text__editor\">Millisel kujul valmivad e-\u00f5ppematerjalid?<\/h3>\n<\/div>\n<div class=\"brz-accordion__content brz-d-xs-flex brz-flex-xs-column\">\n<div class=\"brz-accordion__item-content brz-d-xs-flex brz-flex-xs-column\">\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-1vl8x86 brz-wrapper\">\n<div class=\"brz-rich-text brz-rich-text__custom brz-css-d-1ehz5mr brz-css-1dkxxyp\" data-brz-custom-id=\"iZrW2lwzc0OS\">\n<div data-brz-translate-text=\"1\">\n<p data-generated-css=\"brz-css-x08IS\" data-uniq-id=\"nOXha\" class=\"brz-tp-lg-empty brz-ff-oxygen brz-ft-google brz-fs-lg-17 brz-fss-lg-px brz-fw-lg-400 brz-ls-lg-0 brz-lh-lg-1_9 brz-vfw-lg-400 brz-fwdth-lg-100 brz-fsft-lg-0 brz-css-18jatyl\"><span class=\"brz-cp-color7\">E-\u00f5ppematerjalid valmivad otse Sinu organisatsiooni \u00f5pihalduss\u00fcsteemi (LMS) v\u00f5i SCORM\/xAPI paketina, mida saad ise \u00fcles laadida oma \u00f5pihalduss\u00fcsteemi. Juhul kui organisatsioonis ei ole kasutusele v\u00f5etud \u00f5pihalduss\u00fcsteemi, on k\u00f5ige m\u00f5istlikum variant kasutada videokoolituse formaati, mida saab edukalt kuvada erinevates keskkondades (SharePoint, Drive, OneDrive jmt). Igal juhul leiame lahenduse, kuidas e-\u00f5ppematerjali k\u00f5ige paremini kuvada Sinu organisatsioonis.<\/span><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"brz-accordion__item\">\n<div class=\"brz-accordion__nav\" data-brz-collapsible=\"on\">\n<h3 data-brz-translate-text=\"1\" class=\"brz-accordion__nav-title brz-h3 brz-text__editor\">Kellele kuulub valminud materjal?<\/h3>\n<\/div>\n<div class=\"brz-accordion__content brz-d-xs-flex brz-flex-xs-column\">\n<div class=\"brz-accordion__item-content brz-d-xs-flex brz-flex-xs-column\">\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-1xvetgv brz-wrapper\">\n<div class=\"brz-rich-text brz-rich-text__custom brz-css-d-1ehz5mr brz-css-18dlnxs\" data-brz-custom-id=\"kMw8aWSAS3vp\">\n<div data-brz-translate-text=\"1\">\n<p class=\"brz-fsft-lg-0 brz-fwdth-lg-100 brz-vfw-lg-400 brz-lh-lg-1_9 brz-ls-lg-0 brz-fw-lg-400 brz-fss-lg-px brz-fs-lg-17 brz-ft-google brz-ff-oxygen brz-tp-lg-empty brz-css-18jatyl\" data-uniq-id=\"v53_6\" data-generated-css=\"brz-css-vEx3v\"><span class=\"brz-cp-color7\">E-\u00f5ppematerjal valmiskujul kuulub tavap\u00e4raselt tellijale. Projektifaile hoian turvaliselt alles kokkulepitud aja jooksul, et vajadusel saaks nendes muudatusi teha tulevikus.<\/span><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"brz-accordion__item\">\n<div class=\"brz-accordion__nav\" data-brz-collapsible=\"on\">\n<h3 data-brz-translate-text=\"1\" class=\"brz-accordion__nav-title brz-h3 brz-text__editor\">Kas materjali saan ise edaspidi muuta?<\/h3>\n<\/div>\n<div class=\"brz-accordion__content brz-d-xs-flex brz-flex-xs-column\">\n<div class=\"brz-accordion__item-content brz-d-xs-flex brz-flex-xs-column\">\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-1wla9or brz-wrapper\">\n<div class=\"brz-rich-text brz-rich-text__custom brz-css-d-1ehz5mr brz-css-z8vuy1\" data-brz-custom-id=\"wNq7Aq1Mrb6q\">\n<div data-brz-translate-text=\"1\">\n<p class=\"brz-tp-lg-empty brz-ff-oxygen brz-ft-google brz-fs-lg-17 brz-fss-lg-px brz-fw-lg-400 brz-ls-lg-0 brz-lh-lg-1_9 brz-vfw-lg-400 brz-fwdth-lg-100 brz-fsft-lg-0 brz-css-18jatyl\" data-generated-css=\"brz-css-hzTeZ\" data-uniq-id=\"vmP5_\">E-\u00f5ppematerjali muutmise v\u00f5imalus s\u00f5ltub sellest, kuidas oleme leppinud kokku materjali teostamises. Kui materjal valmib otse LMS-i, siis saad edaspidi ise muuta materjali. Kui tegu on SCORM \/ xAPI paketiga, siis nende muutmisega saan abistada.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"brz-accordion__item\">\n<div class=\"brz-accordion__nav\" data-brz-collapsible=\"on\">\n<h3 data-brz-translate-text=\"1\" class=\"brz-accordion__nav-title brz-h3 brz-text__editor\">Kas materjal t\u00f6\u00f6tab nii arvutis, tahvelarvutis kui ka telefonis?<\/h3>\n<\/div>\n<div class=\"brz-accordion__content brz-d-xs-flex brz-flex-xs-column\">\n<div class=\"brz-accordion__item-content brz-d-xs-flex brz-flex-xs-column\">\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-157m18h brz-wrapper\">\n<div class=\"brz-rich-text brz-rich-text__custom brz-css-d-1ehz5mr brz-css-yylxp6\" data-brz-custom-id=\"wMIVyFcVJ4Fs\">\n<div data-brz-translate-text=\"1\">\n<p class=\"brz-tp-lg-empty brz-ff-oxygen brz-ft-google brz-fs-lg-17 brz-fss-lg-px brz-fw-lg-400 brz-ls-lg-0 brz-lh-lg-1_9 brz-vfw-lg-400 brz-fwdth-lg-100 brz-fsft-lg-0 brz-css-18jatyl\" data-generated-css=\"brz-css-vK8Jv\" data-uniq-id=\"m0HrP\">T\u00e4nap\u00e4eval ei istu t\u00f6\u00f6tajad koolituse ajal alati arvuti taga \u2014 sageli l\u00e4bitakse koolitusi kohvipausil telefonis v\u00f5i kodus tahvelarvutis. Seet\u00f5ttu on mulle oluline, et iga minu loodud materjal toimiks igas seadmes t\u00e4pselt nii, nagu see on m\u00f5eldud. Enne materjali \u00fcleandmist testin seda alati erinevates seadmetes ja brauserites, et saaks olla kindel selles, et t\u00f6\u00f6tajate \u00f5pikogemus on sujuv s\u00f5ltumata sellest, millist seadet nad kasutavad.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"brz-accordion__item\">\n<div class=\"brz-accordion__nav\" data-brz-collapsible=\"on\">\n<h3 data-brz-translate-text=\"1\" class=\"brz-accordion__nav-title brz-h3 brz-text__editor\">Kuidas k\u00e4sitletakse minu konfidentsiaalseid andmeid?<\/h3>\n<\/div>\n<div class=\"brz-accordion__content brz-d-xs-flex brz-flex-xs-column\">\n<div class=\"brz-accordion__item-content brz-d-xs-flex brz-flex-xs-column\">\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-12vkvvn brz-wrapper\">\n<div class=\"brz-rich-text brz-rich-text__custom brz-css-d-1ehz5mr brz-css-1rsbkwa\" data-brz-custom-id=\"xYw71bGJyk8x\">\n<div data-brz-translate-text=\"1\">\n<p class=\"brz-fsft-lg-0 brz-fwdth-lg-100 brz-vfw-lg-400 brz-lh-lg-1_9 brz-ls-lg-0 brz-fw-lg-400 brz-fss-lg-px brz-fs-lg-17 brz-ft-google brz-ff-oxygen brz-tp-lg-empty brz-css-18jatyl\" data-uniq-id=\"aJV_o\" data-generated-css=\"brz-css-vq0Ef\">Konfidentsiaalsus on koost\u00f6\u00f6 alustala. Olen t\u00f6\u00f6tanud paljude organisatsioonidega, kes on usaldanud mulle tundlikku sisuteavet, ning see usaldus on mulle \u00e4\u00e4rmiselt t\u00e4htis. Vajadusel s\u00f5lmime enne iga projekti algust NDA ning tagan, et info ei j\u00f5ua kunagi kolmandate osapoolteni, kes pole projektiga teostamisega seotud. Minu jaoks ei ole see pelgalt juriidiline kohustus \u2014 see on professionaalse koost\u00f6\u00f6 loomulik osa.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<section id=\"au4nE07r32D7_au4nE07r32D7\" class=\"brz-section brz-css-d-ynf0il brz-css-1lu35g7\">\n<div class=\"brz-section__content brz-section--boxed brz-css-d-oh3bvl brz-css-c916nf\" data-brz-custom-id=\"sNoSbMoSnXNi\">\n<div class=\"brz-bg\">\n<div class=\"brz-bg-color\"><\/div>\n<\/div>\n<div class=\"brz-container brz-css-d-x9rvyp brz-css-2jrfvt\">\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-o2d6ma brz-wrapper\">\n<div class=\"brz-rich-text brz-rich-text__custom brz-css-d-1ehz5mr brz-css-1l46132\" data-brz-custom-id=\"uVlKuOGg7MeA\">\n<div data-brz-translate-text=\"1\">\n<h2 class=\"brz-text-lg-center brz-tp-lg-heading2 brz-css-1dgp6hp\" data-generated-css=\"brz-css-kVh93\" data-uniq-id=\"yQnZP\">Pole kindel, milline lahendus sobib?<\/h2>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"brz-row__container brz-css-d-w3a52u brz-css-5ctew3\" data-brz-custom-id=\"tzarI17NAyw1\">\n<div class=\"brz-row brz-css-d-1n95ksq brz-css-r-1xc399q brz-css-mkjjvw\">\n<div class=\"brz-columns brz-css-d-j7y22h brz-css-63xw6x\" data-brz-custom-id=\"zcRpa1qx8VzC\">\n<div class=\"brz-column__items brz-css-d-v5w42e brz-css-10hiys8\">\n<div id=\"\" class=\"brz-css-d-1wonu5h brz-css-1thvpg8 brz-wrapper\">\n<div class=\"brz-rich-text brz-rich-text__custom brz-css-d-1ehz5mr brz-css-b9yrgi\" data-brz-custom-id=\"fSkQWV2_HmPR\">\n<div data-brz-translate-text=\"1\">\n<p class=\"brz-tp-lg-paragraph brz-text-lg-center brz-css-dqzu38\" data-generated-css=\"brz-css-u2O1U\" data-uniq-id=\"cNGyT\"><span class=\"brz-cp-color7\">Kirjelda oma koolituse idee v\u00f5i koolitusvajadus ning annan tasuta 30-minutilise konsultatsiooni k\u00e4igus selge \u00fclevaate, mis sobib just sinu vajadustele. <\/span><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"brz-columns brz-css-d-j7y22h brz-css-1q3gjzp\" data-brz-custom-id=\"qLgqgjc7w2B3\">\n<div class=\"brz-column__items brz-css-d-v5w42e brz-css-1njbta1\">\n<div class=\"brz-row__container brz-css-d-w3a52u brz-css-sbsat5\" data-brz-custom-id=\"dik81HqLTWkp\">\n<div class=\"brz-row brz-row--inner brz-css-d-1n95ksq brz-css-r-1xc399q brz-css-du8f6k\">\n<div class=\"brz-columns brz-css-d-j7y22h brz-css-146gw0a\" data-brz-custom-id=\"zOeiRiK_vI1g\">\n<div class=\"brz-column__items brz-css-d-v5w42e brz-css-kp6d4z\">\n<div class=\"brz-wrapper-clone brz-flex-xs-wrap brz-css-d-x0dcve brz-css-t4jocb\" data-brz-custom-id=\"m6lSxCX8cqc3\"><a class=\"brz-a brz-btn brz-css-d-1syz9i2 brz-css-cnf2p3 brz-css-d-13c78oe brz-css-e7v549\" target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/calendly.com\/stanislav-kaksik\/30min\" data-brz-link-type=\"external\" data-brz-custom-id=\"vnm8dB2JHJTg\"><span data-brz-translate-text=\"1\" class=\"brz-span brz-text__editor\">Broneeri tasuta konsultatsioon<\/span><\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section><\/div>\n<p><!-- version:1793457844 --><\/p>\n","protected":false},"excerpt":{"rendered":"<p>E\u2011\u00f5ppematerjali hinnakalkulaator E-\u00f5ppematerjali loomise hind on oluline k\u00fcsimus. Hinnakalkulaator annab kiire hinnangulise projekti maksumuse \u2013 ilma m\u00fc\u00fcgijututa, ilma kohustuseta. Ideaalne lahendus organisatsioonidele, kes soovivad luua e-koolitusi. Proovi kalkulaatorit N\u00e4iteks lihtne 10-minutiline e-\u00f5ppematerjal algab tavaliselt 600\u20ac juurest. Sisesta oma projekti andmed ja saad kohe teada hinnangulise maksumuse. #elearn-wrap { max-width: 720px; margin: 40px auto; font-family: &#8216;DM [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"brizy-blank-template.php","meta":{"_monsterinsights_skip_tracking":false,"footnotes":""},"class_list":["post-2025","page","type-page","status-publish","hentry"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.5 - aioseo.com -->\n\t<meta name=\"description\" content=\"Sisesta materjali pikkus, interaktiivsus ja formaat ning saad ligikaudse hinna kohe. SCORM, xAPI, videokoolitus. Ilma m\u00fc\u00fcgijututa, ilma kohustuseta.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/kaksik.ee\/en\/e-oppematerjali-loomise-hind\/\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.5\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Kaksik O\u00dc - E-\u00f5ppe lahendused ettev\u00f5tetele: e-\u00f5ppematerjalide loomine, sisekoolitajate koolitus, LMS juurutamine, videokoolitus ettev\u00f5tetele.\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"E-\u00f5ppematerjali hinnakalkulaator \u2013 arvuta hind kohe | Kaksik\" \/>\n\t\t<meta property=\"og:description\" content=\"Sisesta materjali pikkus, interaktiivsus ja formaat ning saad ligikaudse hinna kohe. SCORM, xAPI, videokoolitus. Ilma m\u00fc\u00fcgijututa, ilma kohustuseta.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/kaksik.ee\/en\/e-oppematerjali-loomise-hind\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/kaksik.ee\/wp-content\/uploads\/2024\/12\/2ik_koolitus_web_icon-new.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/kaksik.ee\/wp-content\/uploads\/2024\/12\/2ik_koolitus_web_icon-new.png\" \/>\n\t\t<meta property=\"og:image:width\" content=\"195\" \/>\n\t\t<meta property=\"og:image:height\" content=\"197\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-03-10T10:53:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-11-02T20:31:50+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"E-\u00f5ppematerjali hinnakalkulaator \u2013 arvuta hind kohe | Kaksik\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Sisesta materjali pikkus, interaktiivsus ja formaat ning saad ligikaudse hinna kohe. SCORM, xAPI, videokoolitus. Ilma m\u00fc\u00fcgijututa, ilma kohustuseta.\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/kaksik.ee\/wp-content\/uploads\/2024\/12\/2ik_koolitus_web_icon-new.png\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/kaksik.ee\\\/en\\\/e-oppematerjali-loomise-hind\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/kaksik.ee\\\/en\\\/#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/kaksik.ee\\\/en\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/kaksik.ee\\\/en\\\/e-oppematerjali-loomise-hind\\\/#listItem\",\"name\":\"E-\\u00f5ppematerjali loomise hind\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/kaksik.ee\\\/en\\\/e-oppematerjali-loomise-hind\\\/#listItem\",\"position\":2,\"name\":\"E-\\u00f5ppematerjali loomise hind\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/kaksik.ee\\\/en\\\/#listItem\",\"name\":\"Home\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/kaksik.ee\\\/en\\\/#organization\",\"name\":\"Kaksik O\\u00dc\",\"description\":\"E-\\u00f5ppe lahendused ettev\\u00f5tetele: e\\u2011\\u00f5ppematerjalide loomine, sisekoolitajate koolitus, LMS juurutamine, videokoolitus ettev\\u00f5tetele.\",\"url\":\"https:\\\/\\\/kaksik.ee\\\/en\\\/\",\"email\":\"stanislav@kaksik.ee\",\"telephone\":\"+37256824834\",\"foundingDate\":\"2023-06-01\",\"numberOfEmployees\":{\"@type\":\"QuantitativeValue\",\"value\":1},\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/kaksik.ee\\\/wp-content\\\/uploads\\\/2024\\\/12\\\/2ik_koolitus_logo_ikoon_new_pink_small.png\",\"@id\":\"https:\\\/\\\/kaksik.ee\\\/en\\\/e-oppematerjali-loomise-hind\\\/#organizationLogo\",\"width\":400,\"height\":114,\"caption\":\"E-\\u00f5ppe lahendused ettev\\u00f5tetele | Kaksik O\\u00dc\"},\"image\":{\"@id\":\"https:\\\/\\\/kaksik.ee\\\/en\\\/e-oppematerjali-loomise-hind\\\/#organizationLogo\"},\"sameAs\":[\"https:\\\/\\\/linkedin.com\\\/company\\\/kaksik\"]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/kaksik.ee\\\/en\\\/e-oppematerjali-loomise-hind\\\/#webpage\",\"url\":\"https:\\\/\\\/kaksik.ee\\\/en\\\/e-oppematerjali-loomise-hind\\\/\",\"name\":\"E-\\u00f5ppematerjali hinnakalkulaator \\u2013 arvuta hind kohe | Kaksik\",\"description\":\"Sisesta materjali pikkus, interaktiivsus ja formaat ning saad ligikaudse hinna kohe. SCORM, xAPI, videokoolitus. Ilma m\\u00fc\\u00fcgijututa, ilma kohustuseta.\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/kaksik.ee\\\/en\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/kaksik.ee\\\/en\\\/e-oppematerjali-loomise-hind\\\/#breadcrumblist\"},\"datePublished\":\"2026-03-10T12:53:00+02:00\",\"dateModified\":\"2026-11-02T22:31:50+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/kaksik.ee\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/kaksik.ee\\\/en\\\/\",\"name\":\"Kaksik O\\u00dc\",\"alternateName\":\"2ik koolitus\",\"description\":\"E-\\u00f5ppe lahendused ettev\\u00f5tetele: e-\\u00f5ppematerjalide loomine, sisekoolitajate koolitus, LMS juurutamine, videokoolitus ettev\\u00f5tetele.\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/kaksik.ee\\\/en\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"E-\u00f5ppematerjali hinnakalkulaator \u2013 arvuta hind kohe | Kaksik","description":"Sisesta materjali pikkus, interaktiivsus ja formaat ning saad ligikaudse hinna kohe. SCORM, xAPI, videokoolitus. Ilma m\u00fc\u00fcgijututa, ilma kohustuseta.","canonical_url":"https:\/\/kaksik.ee\/en\/e-oppematerjali-loomise-hind\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BreadcrumbList","@id":"https:\/\/kaksik.ee\/en\/e-oppematerjali-loomise-hind\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/kaksik.ee\/en\/#listItem","position":1,"name":"Home","item":"https:\/\/kaksik.ee\/en\/","nextItem":{"@type":"ListItem","@id":"https:\/\/kaksik.ee\/en\/e-oppematerjali-loomise-hind\/#listItem","name":"E-\u00f5ppematerjali loomise hind"}},{"@type":"ListItem","@id":"https:\/\/kaksik.ee\/en\/e-oppematerjali-loomise-hind\/#listItem","position":2,"name":"E-\u00f5ppematerjali loomise hind","previousItem":{"@type":"ListItem","@id":"https:\/\/kaksik.ee\/en\/#listItem","name":"Home"}}]},{"@type":"Organization","@id":"https:\/\/kaksik.ee\/en\/#organization","name":"Kaksik O\u00dc","description":"E-\u00f5ppe lahendused ettev\u00f5tetele: e\u2011\u00f5ppematerjalide loomine, sisekoolitajate koolitus, LMS juurutamine, videokoolitus ettev\u00f5tetele.","url":"https:\/\/kaksik.ee\/en\/","email":"stanislav@kaksik.ee","telephone":"+37256824834","foundingDate":"2023-06-01","numberOfEmployees":{"@type":"QuantitativeValue","value":1},"logo":{"@type":"ImageObject","url":"https:\/\/kaksik.ee\/wp-content\/uploads\/2024\/12\/2ik_koolitus_logo_ikoon_new_pink_small.png","@id":"https:\/\/kaksik.ee\/en\/e-oppematerjali-loomise-hind\/#organizationLogo","width":400,"height":114,"caption":"E-\u00f5ppe lahendused ettev\u00f5tetele | Kaksik O\u00dc"},"image":{"@id":"https:\/\/kaksik.ee\/en\/e-oppematerjali-loomise-hind\/#organizationLogo"},"sameAs":["https:\/\/linkedin.com\/company\/kaksik"]},{"@type":"WebPage","@id":"https:\/\/kaksik.ee\/en\/e-oppematerjali-loomise-hind\/#webpage","url":"https:\/\/kaksik.ee\/en\/e-oppematerjali-loomise-hind\/","name":"E-\u00f5ppematerjali hinnakalkulaator \u2013 arvuta hind kohe | Kaksik","description":"Sisesta materjali pikkus, interaktiivsus ja formaat ning saad ligikaudse hinna kohe. SCORM, xAPI, videokoolitus. Ilma m\u00fc\u00fcgijututa, ilma kohustuseta.","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/kaksik.ee\/en\/#website"},"breadcrumb":{"@id":"https:\/\/kaksik.ee\/en\/e-oppematerjali-loomise-hind\/#breadcrumblist"},"datePublished":"2026-03-10T12:53:00+02:00","dateModified":"2026-11-02T22:31:50+02:00"},{"@type":"WebSite","@id":"https:\/\/kaksik.ee\/en\/#website","url":"https:\/\/kaksik.ee\/en\/","name":"Kaksik O\u00dc","alternateName":"2ik koolitus","description":"E-\u00f5ppe lahendused ettev\u00f5tetele: e-\u00f5ppematerjalide loomine, sisekoolitajate koolitus, LMS juurutamine, videokoolitus ettev\u00f5tetele.","inLanguage":"en-US","publisher":{"@id":"https:\/\/kaksik.ee\/en\/#organization"}}]},"og:locale":"en_US","og:site_name":"Kaksik O\u00dc - E-\u00f5ppe lahendused ettev\u00f5tetele: e-\u00f5ppematerjalide loomine, sisekoolitajate koolitus, LMS juurutamine, videokoolitus ettev\u00f5tetele.","og:type":"article","og:title":"E-\u00f5ppematerjali hinnakalkulaator \u2013 arvuta hind kohe | Kaksik","og:description":"Sisesta materjali pikkus, interaktiivsus ja formaat ning saad ligikaudse hinna kohe. SCORM, xAPI, videokoolitus. Ilma m\u00fc\u00fcgijututa, ilma kohustuseta.","og:url":"https:\/\/kaksik.ee\/en\/e-oppematerjali-loomise-hind\/","og:image":"https:\/\/kaksik.ee\/wp-content\/uploads\/2024\/12\/2ik_koolitus_web_icon-new.png","og:image:secure_url":"https:\/\/kaksik.ee\/wp-content\/uploads\/2024\/12\/2ik_koolitus_web_icon-new.png","og:image:width":195,"og:image:height":197,"article:published_time":"2026-03-10T10:53:00+00:00","article:modified_time":"2026-11-02T20:31:50+00:00","twitter:card":"summary_large_image","twitter:title":"E-\u00f5ppematerjali hinnakalkulaator \u2013 arvuta hind kohe | Kaksik","twitter:description":"Sisesta materjali pikkus, interaktiivsus ja formaat ning saad ligikaudse hinna kohe. SCORM, xAPI, videokoolitus. Ilma m\u00fc\u00fcgijututa, ilma kohustuseta.","twitter:image":"https:\/\/kaksik.ee\/wp-content\/uploads\/2024\/12\/2ik_koolitus_web_icon-new.png"},"aioseo_meta_data":{"post_id":"2025","title":"E-\u00f5ppematerjali hinnakalkulaator \u2013 arvuta hind kohe | Kaksik","description":"Sisesta materjali pikkus, interaktiivsus ja formaat ning saad ligikaudse hinna kohe. SCORM, xAPI, videokoolitus. Ilma m\u00fc\u00fcgijututa, ilma kohustuseta.","keywords":null,"keyphrases":{"focus":{"keyphrase":"e-\u00f5ppematerjali loomise hind","score":80},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"WebPage","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":{"faqs":[],"keyPoints":[],"schemas":[],"titles":[],"descriptions":[],"socialPosts":{"email":{"subject":"","preview":"","content":""},"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"created":"2026-03-10 10:29:12","updated":"2026-11-02 20:37:28","seo_analyzer_scan_date":null,"focus_keyword":"e-\u00f5ppematerjali loomise hind","additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/kaksik.ee\/en\/\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tE-\u00f5ppematerjali loomise hind\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/kaksik.ee\/en\/"},{"label":"E-\u00f5ppematerjali loomise hind","link":"https:\/\/kaksik.ee\/en\/e-oppematerjali-loomise-hind\/"}],"brizy_media":[{"id":1987,"url":"https:\/\/kaksik.ee\/wp-content\/uploads\/2026\/03\/1_.png","name":"1_.png","meta":{"brizy_attachment_uid":"wp-079ec8face03308f73dbf449a24030f9.png","brizy_post_uid":["2eeaa2b1aa17f02ff7b6842b0cc88e89","5c0da4f4ef2b920f6fce0d6e4708235b"]}},{"id":1990,"url":"https:\/\/kaksik.ee\/wp-content\/uploads\/2026\/03\/2_.png","name":"2_.png","meta":{"brizy_attachment_uid":"wp-fe27ad161c26b406923196808e1d46f9.png","brizy_post_uid":["2eeaa2b1aa17f02ff7b6842b0cc88e89","5c0da4f4ef2b920f6fce0d6e4708235b"]}},{"id":1991,"url":"https:\/\/kaksik.ee\/wp-content\/uploads\/2026\/03\/3_.png","name":"3_.png","meta":{"brizy_attachment_uid":"wp-5d3bfc93d324459abcf5be17202898e4.png","brizy_post_uid":["2eeaa2b1aa17f02ff7b6842b0cc88e89","5c0da4f4ef2b920f6fce0d6e4708235b"]}},{"id":2370,"url":"https:\/\/kaksik.ee\/wp-content\/uploads\/2026\/03\/lihtne_e-oppematerjal_kaksik.ee_2.gif","name":"lihtne_e-oppematerjal_kaksik.ee_2.gif","meta":{"brizy_attachment_uid":"wp-e71c69a57b047032387e9d35f52c4ff4.gif","brizy_post_uid":["2eeaa2b1aa17f02ff7b6842b0cc88e89","5c0da4f4ef2b920f6fce0d6e4708235b"]}},{"id":2408,"url":"https:\/\/kaksik.ee\/wp-content\/uploads\/2026\/03\/interaktiivne_e-oppematerjal_kaksik.ee_2.gif","name":"interaktiivne_e-oppematerjal_kaksik.ee_2.gif","meta":{"brizy_attachment_uid":"wp-31b599268dd6132cc9566904388e2c05.gif","brizy_post_uid":["2eeaa2b1aa17f02ff7b6842b0cc88e89","5c0da4f4ef2b920f6fce0d6e4708235b"]}},{"id":2441,"url":"https:\/\/kaksik.ee\/wp-content\/uploads\/2026\/03\/koolitusvideo.gif","name":"koolitusvideo.gif","meta":{"brizy_attachment_uid":"wp-4aec03c91a0893c595bd356d985e57f7.gif","brizy_post_uid":["2eeaa2b1aa17f02ff7b6842b0cc88e89","5c0da4f4ef2b920f6fce0d6e4708235b"]}},{"id":2812,"url":"https:\/\/kaksik.ee\/wp-content\/uploads\/2026\/04\/Sunly_icon_violet@2x.png","name":"Sunly_icon_violet@2x.png","meta":{"brizy_attachment_uid":"wp-bbf81616bb5bbe25250a19803ad20f1d.png","brizy_post_uid":["5c0da4f4ef2b920f6fce0d6e4708235b","aefa99aa9879f7aee34e0f8661fbb0d3"]}}],"_links":{"self":[{"href":"https:\/\/kaksik.ee\/en\/wp-json\/wp\/v2\/pages\/2025","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kaksik.ee\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/kaksik.ee\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/kaksik.ee\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kaksik.ee\/en\/wp-json\/wp\/v2\/comments?post=2025"}],"version-history":[{"count":15,"href":"https:\/\/kaksik.ee\/en\/wp-json\/wp\/v2\/pages\/2025\/revisions"}],"predecessor-version":[{"id":3394,"href":"https:\/\/kaksik.ee\/en\/wp-json\/wp\/v2\/pages\/2025\/revisions\/3394"}],"wp:attachment":[{"href":"https:\/\/kaksik.ee\/en\/wp-json\/wp\/v2\/media?parent=2025"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}