<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <!--metatextblock--> <title>Курс "Дизайн интерьеров" — профессия с нуля 🏠 | Курсы онлайн | Eduson Academy</title> <meta name="description" content="Станьте дизайнером интерьеров! Освойте 3D-визуализацию, работу с клиентами и создание проектов. Практика + диплом. Начните обучение сегодня! ☎ +7 (800) 101-14-04" /> <meta property="og:url" content="https://eduson.academy/interior-designer" /> <meta property="og:title" content="Дизайн интерьеров. Курс-профессия." /> <meta property="og:description" content="Освойте одну из самых востребованных профессий в сфере дизайна и получите первый заказ уже через 4 месяца обучения." /> <meta property="og:type" content="website" /> <meta property="og:image" content="https://static.tildacdn.com/tild6134-3866-4466-a634-313962663263/interior-director-ba.png" /> <link rel="canonical" href="https://eduson.academy/interior-designer"> <!--/metatextblock--> <meta name="format-detection" content="telephone=no" /> <meta http-equiv="x-dns-prefetch-control" content="on"> <link rel="dns-prefetch" href="https://ws.tildacdn.com"> <link rel="dns-prefetch" href="https://static.tildacdn.com"> <link rel="shortcut icon" href="https://static.tildacdn.com/tild3839-3636-4237-b762-326233613635/favicon.ico" type="image/x-icon" /> <!-- Assets --> <script src="https://neo.tildacdn.com/js/tilda-fallback-1.0.min.js" async charset="utf-8"></script> <link rel="stylesheet" href="https://static.tildacdn.com/css/tilda-grid-3.0.min.css" type="text/css" media="all" onerror="this.loaderr='y';"/> <link rel="stylesheet" href="https://static.tildacdn.com/ws/project2716788/tilda-blocks-page70132555.min.css?t=1771255292" type="text/css" media="all" onerror="this.loaderr='y';" /> <link rel="stylesheet" href="https://static.tildacdn.com/css/tilda-popup-1.1.min.css" type="text/css" media="print" onload="this.media='all';" onerror="this.loaderr='y';" /> <noscript><link rel="stylesheet" href="https://static.tildacdn.com/css/tilda-popup-1.1.min.css" type="text/css" media="all" /></noscript> <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Alegreya+Sans:wght@300;400;700&display=swap" type="text/css" /> <script nomodule src="https://static.tildacdn.com/js/tilda-polyfill-1.0.min.js" charset="utf-8"></script> <script type="text/javascript">function t_onReady(func) {if(document.readyState!='loading') {func();} else {document.addEventListener('DOMContentLoaded',func);}}
function t_onFuncLoad(funcName,okFunc,time) {if(typeof window[funcName]==='function') {okFunc();} else {setTimeout(function() {t_onFuncLoad(funcName,okFunc,time);},(time||100));}}function t396_initialScale(t){var e=document.getElementById("rec"+t);if(e){var i=e.querySelector(".t396__artboard");if(i){window.tn_scale_initial_window_width||(window.tn_scale_initial_window_width=document.documentElement.clientWidth);var a=window.tn_scale_initial_window_width,r=[],n,l=i.getAttribute("data-artboard-screens");if(l){l=l.split(",");for(var o=0;o<l.length;o++)r[o]=parseInt(l[o],10)}else r=[320,480,640,960,1200];for(var o=0;o<r.length;o++){var d=r[o];a>=d&&(n=d)}var _="edit"===window.allrecords.getAttribute("data-tilda-mode"),c="center"===t396_getFieldValue(i,"valign",n,r),s="grid"===t396_getFieldValue(i,"upscale",n,r),w=t396_getFieldValue(i,"height_vh",n,r),g=t396_getFieldValue(i,"height",n,r),u=!!window.opr&&!!window.opr.addons||!!window.opera||-1!==navigator.userAgent.indexOf(" OPR/");if(!_&&c&&!s&&!w&&g&&!u){var h=parseFloat((a/n).toFixed(3)),f=[i,i.querySelector(".t396__carrier"),i.querySelector(".t396__filter")],v=Math.floor(parseInt(g,10)*h)+"px",p;i.style.setProperty("--initial-scale-height",v);for(var o=0;o<f.length;o++)f[o].style.setProperty("height","var(--initial-scale-height)");t396_scaleInitial__getElementsToScale(i).forEach((function(t){t.style.zoom=h}))}}}}function t396_scaleInitial__getElementsToScale(t){return t?Array.prototype.slice.call(t.children).filter((function(t){return t&&(t.classList.contains("t396__elem")||t.classList.contains("t396__group"))})):[]}function t396_getFieldValue(t,e,i,a){var r,n=a[a.length-1];if(!(r=i===n?t.getAttribute("data-artboard-"+e):t.getAttribute("data-artboard-"+e+"-res-"+i)))for(var l=0;l<a.length;l++){var o=a[l];if(!(o<=i)&&(r=o===n?t.getAttribute("data-artboard-"+e):t.getAttribute("data-artboard-"+e+"-res-"+o)))break}return r}window.TN_SCALE_INITIAL_VER="1.0",window.tn_scale_initial_window_width=null;</script> <script src="https://static.tildacdn.com/js/jquery-1.10.2.min.js" charset="utf-8" onerror="this.loaderr='y';"></script> <script src="https://static.tildacdn.com/js/tilda-scripts-3.0.min.js" charset="utf-8" defer onerror="this.loaderr='y';"></script> <script src="https://static.tildacdn.com/ws/project2716788/tilda-blocks-page70132555.min.js?t=1771255292" charset="utf-8" async onerror="this.loaderr='y';"></script> <script src="https://static.tildacdn.com/js/tilda-lazyload-1.0.min.js" charset="utf-8" async onerror="this.loaderr='y';"></script> <script src="https://static.tildacdn.com/js/tilda-zero-1.1.min.js" charset="utf-8" async onerror="this.loaderr='y';"></script> <script src="https://static.tildacdn.com/js/tilda-forms-1.0.min.js" charset="utf-8" async onerror="this.loaderr='y';"></script> <script src="https://static.tildacdn.com/js/tilda-popup-1.0.min.js" charset="utf-8" async onerror="this.loaderr='y';"></script> <script src="https://static.tildacdn.com/js/tilda-zero-scale-1.0.min.js" charset="utf-8" async onerror="this.loaderr='y';"></script> <script src="https://static.tildacdn.com/js/tilda-events-1.0.min.js" charset="utf-8" async onerror="this.loaderr='y';"></script> <!-- nominify begin --><meta name="google-site-verification" content="E8VcpimflWUASFfuZQHhNh4E70zTyRtDSLW03wLyaFM" /> <meta name="cmsmagazine" content="8e288ad6b5bd5c89f67d49590d260492" /> <meta name="mailru-verification" content="cd9d8d4a5de19bde" /> <script src="https://sentry02.infr.eduson.tv/js-sdk-loader/80445702fe3a4a8198b52ba694910462.min.js" crossorigin="anonymous"></script> <script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Organization",
"name": "Eduson Academy",
"alternateName": "Онлайн-университет профессий Eduson Academy",
"description": "Eduson — ведущий сервис корпоративного онлайн-обучения в России",
"url": "https://eduson.academy/",
"email": "ask@eduson.tv",
"legalName": "ООО «ЭДЮСОН»",
"logo": "https://static.tildacdn.com/tild6232-6466-4063-a665-323361383566/Eduson_Academy.svg",
"address": {
"@type": "PostalAddress",
"addressCountry": "RU",
"addressLocality": "Москва",
"addressRegion": "Московская область",
"postalCode": "115280",
"streetAddress": "ул. Ленинская слобода, д. 19"
},
"telephone": "+7 (991) 222-04-31",
"sameAs": ["https://www.facebook.com/Eduson", "https://vk.com/edusontv", "https://www.youtube.com/channel/UC2GApr18qoIgvxJX2SGBesQ"]
}
</script> <script>
//REDIRECTS
const pagesToRedirect = {
"https://eduson.academy/excel-all": "https://eduson.academy/excel",
"https://eduson.academy/data-analyst-new": "https://eduson.academy/data-analyst",
// "https://eduson.academy/python-new": "https://eduson.academy/python",
"https://eduson.academy/blog": "https://free.eduson.academy",
"https://eduson.academy/data-scientist-start": "https://eduson.academy/data-scientist",
"https://eduson.academy/gen-dir-pivovarov": "https://eduson.academy/gen-dir",
"https://eduson.academy/free": "https://free.eduson.academy",
"https://eduson.academy/education-methodist-basic": "https://eduson.academy/education-methodist",
"https://eduson.academy/page58972557.html": "https://eduson.academy/data-analyst",
"https://eduson.academy/practicing-psychologist": "https://eduson.academy/psy-base",
"https://eduson.academy/catalogue/mba": "https://eduson.academy/mba-all",
};
const currentAddress = window.location.origin + window.location.pathname;
if (pagesToRedirect[currentAddress]) {
window.location.replace(pagesToRedirect[currentAddress] + window.location.search);
}
</script> <script>
function padZero(i) {
return i.toString().padStart(2, "0");
}
const monthNames = ["января", "февраля", "марта", "апреля", "мая", "июня", "июля", "августа", "сентября", "октября", "ноября", "декабря"];
// Current date details
const today = new Date();
const [currentDay, currentMonth, currentYear] = [today.getDate(), today.getMonth(), today.getFullYear()];
// Course start date: 2 days ahead, set to 23:59:59
const courseStartDate = new Date(today);
courseStartDate.setDate(currentDay + 2);
courseStartDate.setHours(23, 59, 59);
const [courseStartDay, courseStartMonth] = [courseStartDate.getDate(), courseStartDate.getMonth()];
// Format dates and values
var discountDateOne = `до ${currentDay} ${monthNames[currentMonth]}`;
var discountDateTwo = `до ${padZero(currentDay)}.${padZero(currentMonth + 1)}`;
var startDateText = `${courseStartDay} ${monthNames[courseStartMonth]}`;
var discount = 0.5;
var countdownDate = today.setHours(23, 59, 59); // Countdown to end of the day
var priceValidUntilSeo = new Date(countdownDate).toISOString().split("T")[0];
// Log the values
console.log({
discountDateOne,
discountDateTwo,
startDateText,
discount,
countdownDate,
priceValidUntilSeo,
});
</script> <!-- HELPERS --> <script>
window.HELPERS = window.HELPERS || {};
window.HELPERS.deleteInputsByName = (inputName, formSelector) => {
if (!inputName) {
console.error("Input name is required.");
return;
}
if (formSelector) {
$(formSelector)
.find('input[name="' + inputName + '"]')
.remove();
} else {
$('input[name="' + inputName + '"]').remove();
}
};
window.HELPERS.updateOrCreateHiddenInput = (name, value, formSelector = "form.js-form-proccess") => {
$(formSelector).each(function () {
let input = $(this).find(`input[name="${name}"]`);
if (input.length) {
input.val(value);
} else {
input = $("<input>", {
type: "hidden",
name: name,
value: value,
});
$(this).append(input);
}
});
};
</script> <!-- HELPERS END --> <script>
(function (i, s, o, g, r, a, m) {
i["GoogleAnalyticsObject"] = r;
(i[r] =
i[r] ||
function () {
(i[r].q = i[r].q || []).push(arguments);
}),
(i[r].l = 1 * new Date());
(a = s.createElement(o)), (m = s.getElementsByTagName(o)[0]);
a.async = 1;
a.src = g;
m.parentNode.insertBefore(a, m);
})(window, document, "script", "//www.google-analytics.com/analytics.js", "ga");
ga("create", "UA-39536742-6", "auto");
ga(function (tracker) {
var clientId = tracker.get("clientId");
document.cookie = "_ga_cid=" + clientId + "; path=/";
ga("set", "dimension1", clientId);
});
ga("send", "pageview");
</script> <script>
function setCookie(cname, cvalue, exdays) {
const d = new Date();
d.setTime(d.getTime() + exdays * 24 * 60 * 60 * 1000);
let expires = "expires=" + d.toUTCString();
document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}
function getCookie(cname) {
let name = cname + "=";
let ca = document.cookie.split(";");
for (let i = 0; i < ca.length; i++) {
let c = ca[i];
while (c.charAt(0) == " ") {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return decodeURIComponent(c.substring(name.length, c.length));
}
}
return null;
}
</script> <script>
mindbox =
window.mindbox ||
function () {
mindbox.queue.push(arguments);
};
mindbox.queue = mindbox.queue || [];
mindbox("create");
</script> <script src="https://api.mindbox.ru/scripts/v1/tracker.js" async></script> <script type="text/javascript" id="advcakeAsync">
(function (a) {
var b = a.createElement("script");
b.async = 1;
b.src = "//k5teiv.ru/";
a = a.getElementsByTagName("script")[0];
a.parentNode.insertBefore(b, a);
})(document);
</script> <script type="text/javascript" src="https://api.flocktory.com/v2/loader.js?site_id=3583" async="async"></script> <!-- BEGIN ROISTAT A/B TEST --> <script>
function normalizePathname(pathname) {
if (!pathname) return "/";
if (pathname.length > 1 && pathname.endsWith("/")) return pathname.slice(0, -1);
return pathname;
}
const currentPathRoistat = normalizePathname(window.location.pathname);
const ROISTAT_AB_COOKIE = "roistat_ab";
const ROISTAT_AB_SUBMITTED_COOKIE = "roistat_ab_submit";
const COOKIE_EXPIRE = 7 * 24 * 60 * 60;
const COOKIE_CONFIG = { expires: COOKIE_EXPIRE, path: "/" };
const PROJECT_API_URL = "https://cloud.roistat.com/api/site/1.0/169321/ab/variant/get";
var expConfigVariants = {
"/excel": { "excel-redesign-011125": ["standard", "redesigned"] },
"/director-economy-finance": { "director-economy-finance-191125": ["standard", "redesigned"] },
"/education-methodist": { "education-methodist-redesign-151225": ["standard", "redesigned"] },
};
var expConfigDict = {
"excel-redesign-011125": { sources: ["all"], sources_type: "include", type: "block-hide", variants: { standard: ["#rec1753253151", "#rec818658906", "#rec661814510", "#rec936813446", "#rec404472329", "#rec404472330", "#rec404472331", "#rec402380415", "#rec401873443", "#rec401873444", "#rec401873447", "#rec661244434", "#rec661244998", "#rec661246885", "#rec401873449", "#rec401873451", "#rec401873452", "#rec401873454", "#rec401873457", "#rec614415661", "#rec401873458", "#rec401873459", "#rec537874731", "#rec537874751", "#rec577210181", "#rec605107709", "#rec479666780", "#rec401873467", "#rec498919727", "#rec402179275", "#rec402179276", "#rec402179277", "#rec407423091", "#rec531866911", "#rec211782590", "#rec739064877", "#rec739065506", "#rec683282382", "#rec733843901"], redesigned: ["#rec1509342031", "#rec1509342041", "#rec1509342051", "#rec1509342061", "#rec1509342081", "#rec1509351571", "#rec1509351581", "#rec1509351591", "#rec1509351601", "#rec1509351611", "#rec1509351621", "#rec1509351631", "#rec1509351641", "#rec1509351651", "#rec1509351661", "#rec1509351671", "#rec1509351681", "#rec1509351691", "#rec1509351701", "#rec1509351711", "#rec1509351721", "#rec1509351731", "#rec1509351741", "#rec1509351751", "#rec1509351761", "#rec1509351771", "#rec1509351781", "#rec1509351791", "#rec1509351801", "#rec1509351811", "#rec1509351821", "#rec1509351831", "#rec1509351841", "#rec1509351851", "#rec1509351861", "#rec1509351871", "#rec1509351881", "#rec1509351891", "#rec1509351901", "#rec1509351911", "#rec1509351921", "#rec1509351931", "#rec1509351941", "#rec1509351951", "#rec1509351961", "#rec1509351971", "#rec1509351981", "#rec1509351991", "#rec1509352001", "#rec1509352011", "#rec1509352021", "#rec1509352031", "#rec1509352041", "#rec1509352051", "#rec1509352061", "#rec1509352071", "#rec1509352081", "#rec1509352091", "#rec1509352101", "#rec1509352111", "#rec1509352121", "#rec1509352131", "#rec1509352141", "#rec1509352151", "#rec1045493601", "#rec968023206", "#rec973743146", "#rec1509352251"] } },
"director-economy-finance-191125": { sources: ["all"], sources_type: "include", type: "block-hide", variants: { standard: ["#rec1583059491", "#rec1043277906", "#rec839696281", "#rec839773175", "#rec839780329", "#rec839785932", "#rec839692735", "#rec839792461", "#rec839947677", "#rec841954652", "#rec839947680", "#rec1043276696", "#rec1043277326", "#rec1043277671", "#rec839692736", "#rec839692737", "#rec839692738", "#rec839692741", "#rec839692742", "#rec839692743", "#rec839692744", "#rec839692745", "#rec839692746", "#rec839692747", "#rec839692748", "#rec839692749", "#rec839692750", "#rec839692751", "#rec839692752", "#rec839692753", "#rec839692754", "#rec839692755", "#rec839692756", "#rec839692757", "#rec839692758", "#rec867939570", "#rec867939659", "#rec839692759", "#rec839692760", "#rec842082462", "#rec842094769", "#rec839692761", "#rec839692762", "#rec842083793", "#rec842083921", "#rec844647705", "#rec844647706", "#rec844647722", "#rec844647723", "#rec839692767", "#rec839692768", "#rec839692769", "#rec839692770", "#rec839692771", "#rec839692772", "#rec839692773", "#rec839692774", "#rec839692775", "#rec839692776", "#rec839692777", "#rec839692778", "#rec839692779", "#rec839692780", "#rec839692781", "#rec839692782", "#rec839692783", "#rec839692784", "#rec839692785", "#rec839692786", "#rec839692787", "#rec839692788", "#rec839692789", "#rec839692790", "#rec839692791", "#rec839692792", "#rec839692793", "#rec839692794", "#rec842113892", "#rec842113893", "#rec839692795", "#rec839692796", "#rec839692797", "#rec839692798", "#rec839692799", "#rec839692800", "#rec839692801", "#rec926263336", "#rec926261116", "#rec839692802", "#rec839692803", "#rec839692804", "#rec839692805", "#rec839692806", "#rec839692807", "#rec840974126", "#rec840974127", "#rec839692809", "#rec839959522", "#rec936620541", "#rec839692819", "#rec839692820", "#rec839692821", "#rec839968749", "#rec839968954", "#rec839958801", "#rec839958802", "#rec839958803", "#rec839958804", "#rec839958805", "#rec839958806", "#rec841086245", "#rec839974962", "#rec841466740", "#rec841466741", "#rec839958813", "#rec839958814", "#rec839692849", "#rec211782590", "#rec839692855", "#rec445477271", "#rec316124553", "#rec839692863", "#rec358248722", "#rec839692870", "#rec839692871", "#rec839692872", "#rec841086787", "#rec839692876", "#rec839692877", "#rec665333586", "#rec683282382"], redesigned: ["#rec1580559651", "#rec1580559661", "#rec1580559681", "#rec1578122121", "#rec1578122141", "#rec1578122151", "#rec1578122161", "#rec1578122171", "#rec1578122181", "#rec1578122191", "#rec1578122201", "#rec1578122211", "#rec1578122221", "#rec1578122231", "#rec1578122251", "#rec1578122261", "#rec1578122281", "#rec1578122291", "#rec1578122301", "#rec1578122311", "#rec1578122321", "#rec1578122331", "#rec1578122341", "#rec1578122351", "#rec1578122361", "#rec1578122371", "#rec1578122381", "#rec1578122401", "#rec1578122411", "#rec1578122421", "#rec1578122431", "#rec1578122441", "#rec1578122461", "#rec1578122491", "#rec1578122501", "#rec1578122511", "#rec1578122531", "#rec1578122541", "#rec1578122551", "#rec1578122561", "#rec1578122571", "#rec1578122581", "#rec1578122591", "#rec1578122601", "#rec1578122611", "#rec1578122621", "#rec1578122631", "#rec1578122641", "#rec1578122651", "#rec1578122661", "#rec1578122671", "#rec1578122681", "#rec1578122691", "#rec1578122701", "#rec1578122711", "#rec1578122721", "#rec1578122741", "#rec1578122751", "#rec1578122761", "#rec1578122771", "#rec1578122781", "#rec1578122791", "#rec1578122801", "#rec1578122811", "#rec1578122841", "#rec1578122851", "#rec1578122871", "#rec1578122881", "#rec1578122891", "#rec1578122901", "#rec1578122911", "#rec1578122921", "#rec1578122931", "#rec1578122941", "#rec1578122951", "#rec1578122961", "#rec1578122971", "#rec1578122981", "#rec1578122991", "#rec1578123001", "#rec1578123011", "#rec1578123021", "#rec1578123031", "#rec1578123041", "#rec1578123051", "#rec1578123061", "#rec1578123071", "#rec1578123081", "#rec1578123091", "#rec1578123101", "#rec1578123111", "#rec1578123131", "#rec1578123141", "#rec1578123151", "#rec1578123161", "#rec1578123171", "#rec1578123181", "#rec1578123191", "#rec1578123201", "#rec1578123211", "#rec1578123221", "#rec1578123251", "#rec1578123261", "#rec1578123271", "#rec1578123281", "#rec1578123291", "#rec1578123301", "#rec1578123311", "#rec1578123321", "#rec1578123331", "#rec1578123341", "#rec1578123351", "#rec1578123361", "#rec1578123381", "#rec1578123401", "#rec1578123421", "#rec1578123431", "#rec958028801", "#rec996428781", "#rec1578123481", "#rec1578123491", "#rec973743146", "#rec1578123521", "#rec1578123541", "#rec316124553", "#rec358248722", "#rec1578123601", "#rec665333586", "#rec1578123621"] } },
"education-methodist-redesign-151225": { sources: ["all"], sources_type: "include", type: "block-hide", variants: { standard: ["#rec818658906", "#rec569026373", "#rec1691352161", "#rec467023218", "#rec569072480", "#rec360629058", "#rec360628530", "#rec569127946", "#rec469111191", "#rec657066965", "#rec359870064", "#rec359870065", "#rec1245271171", "#rec1245271181", "#rec469044873", "#rec491560608", "#rec359870068", "#rec360719900", "#rec603297995", "#rec605107709", "#rec569131283", "#rec569131294", "#rec569131296", "#rec359870075", "#rec359870077", "#rec569129965", "#rec359870080", "#rec211782590", "#rec661949723", "#rec445477271", "#rec316124553", "#rec359870088", "#rec515463678", "#rec359870093", "#rec479060103", "#rec479060105", "#rec414248481", "#rec1145614256"], redesigned: ["#rec1691345051", "#rec1691345071", "#rec1691345081", "#rec1691345091", "#rec1691345101", "#rec1691351641", "#rec1691363041", "#rec1691363051", "#rec1691363061", "#rec1691363071", "#rec1691363081", "#rec1691363091", "#rec1691363101", "#rec1691363111", "#rec1691363121", "#rec1691363131", "#rec1691363141", "#rec1691363151", "#rec1691363161", "#rec1691363171", "#rec1691363181", "#rec1691363191", "#rec1691363201", "#rec1691363211", "#rec1691363221", "#rec1691363231", "#rec1691363241", "#rec1691363251", "#rec1691363261", "#rec1691363271", "#rec1691363281", "#rec1691363291", "#rec1691363301", "#rec1691363311", "#rec1691363321", "#rec1691363331", "#rec1691363341", "#rec1691363351", "#rec1691363361", "#rec1691363371", "#rec1691363381", "#rec1691363391", "#rec1691363401", "#rec1691363411", "#rec1691363421", "#rec1691363431", "#rec1691363441", "#rec1691363451", "#rec1691363471", "#rec1691363481", "#rec1691363491", "#rec1691363501", "#rec1045493601", "#rec968023206", "#rec1691363541", "#rec1691363551", "#rec1691363561", "#rec1691363571", "#rec957769931", "#rec1691363591", "#rec1691363601", "#rec1691363611", "#rec1692673891", "#rec1692743501"] } },
};
var marker = getMarker();
var testValues = [];
var roistatAbCookieValues = [];
var isRoistatABTestSumbitted = false;
window.isNoGroupVariant = false;
/* ROISTAT AB TEST EVENT CALLBACKS */
const abTestCallbackQueue = [];
let isABTestStarted = false;
function addOnRoistatABTestStarted(callback) {
if (isABTestStarted) {
return callback();
} else {
abTestCallbackQueue.push(callback);
}
}
function executeRoistatABTestCallbacks() {
isABTestStarted = true;
while (abTestCallbackQueue.length > 0) {
const callback = abTestCallbackQueue.shift();
callback();
}
}
document.addEventListener("RoistatABTestStarted", function () {
executeRoistatABTestCallbacks();
});
addOnRoistatABTestStarted(function () {
console.log("addOnRoistatABTestStarted");
});
/* ROISTAT AB TEST EVENT CALLBACKS END */
function getCookieValue(name) {
var matches = document.cookie.match(new RegExp("(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, "\\$1") + "=([^;]*)"));
return matches ? matches[1] : undefined;
}
function setCookieValue(name, value, options) {
options = options || {};
var expires = options.expires;
if (typeof expires == "number" && expires) {
var d = new Date();
d.setTime(d.getTime() + expires * 1000);
expires = options.expires = d;
}
if (expires && expires.toUTCString) {
options.expires = expires.toUTCString();
}
value = encodeURIComponent(value);
var updatedCookie = name + "=" + value;
for (var propName in options) {
updatedCookie += "; " + propName;
var propValue = options[propName];
if (propValue !== true) {
updatedCookie += "=" + propValue;
}
}
Sentry.addBreadcrumb({
category: "abtest",
message: "SetcookieValue_updatedCookie: " + updatedCookie,
level: "debug",
});
document.cookie = updatedCookie;
Sentry.addBreadcrumb({
category: "abtest",
message: "SetcookieValue_document.cookie: " + document.cookie,
level: "debug",
});
}
function getMarker() {
return new URL(window.location.href).searchParams.get("utm_source") || "default";
}
function getDistributionUniformVariants(data, marker) {
var dataToSend = { ab_tests: data, marker: marker };
s = document.createElement("script");
s.src = PROJECT_API_URL + "?data=" + JSON.stringify(dataToSend) + "&jsonp=true";
document.head.appendChild(s);
}
function formatRedirectUrl(defaultUrlRoistat) {
const currentUTMRoistat = window.location.search.substring(1);
const separatorRoistat = defaultUrlRoistat.includes("?") ? "&" : "?";
return `${defaultUrlRoistat}${currentUTMRoistat ? separatorRoistat + currentUTMRoistat : ""}`;
}
function initABTestStartedEvent() {
document.dispatchEvent(new Event("RoistatABTestStarted"));
isRoistatABTestSumbitted = true;
}
function callbackAbTest(response) {
for (var test in response) {
var testValue = getCookieValue(test);
if (typeof testValue === "undefined") {
testValue = response[test];
setCookieValue(test, testValue, COOKIE_CONFIG);
}
testValues.push({ id: test, value: testValue });
}
for (var i = 0; i < testValues.length; i++) {
roistatAbCookieValues.push(testValues[i].id + ":" + testValues[i].value);
}
setCookieValue(ROISTAT_AB_COOKIE, roistatAbCookieValues.join(","), COOKIE_CONFIG);
setCookieValue(ROISTAT_AB_SUBMITTED_COOKIE, "1", COOKIE_CONFIG);
expName = Object.keys(expConfigVariants[currentPathRoistat])[0];
expCookieGroup = getCookieValue(expName);
if (typeof expCookieGroup === "undefined" || expCookieGroup === null || typeof response === "undefined" || response === null) {
if (typeof Sentry !== "undefined" && "captureException" in Sentry) {
Sentry.addBreadcrumb({
category: "abtest",
message: "Roistat response: " + JSON.stringify(response),
level: "debug",
});
Sentry.addBreadcrumb({
category: "abtest",
message: "ExpCookieGroup: " + expCookieGroup,
level: "debug",
});
Sentry.addBreadcrumb({
category: "abtest",
message: "getCookieValueRoistatABSubmit: " + getCookieValue("roistat_ab_submit"),
level: "debug",
});
Sentry.addBreadcrumb({
category: "abtest",
message: "getCookieValueExpName: " + getCookieValue(expName),
level: "debug",
});
Sentry.addBreadcrumb({
category: "abtest",
message: "ExpName: " + expName,
level: "debug",
});
Sentry.addBreadcrumb({
category: "abtest",
message: "testValues: " + JSON.stringify(testValues),
level: "debug",
});
Sentry.captureException(
JSON.stringify({
message: "Experiment cookie not found during callbackAbTest",
data: { getCookieValueRoistatABSubmit: getCookieValue("roistat_ab_submit"), getCookieValueExpName: getCookieValue(expName), response },
})
);
}
}
window.callBackAbTestDataToLog = {
response,
testValues,
};
console.log("callbackAbTest", response, roistatAbCookieValues, getCookieValue(Object.keys(expConfigVariants[currentPathRoistat])[0]));
initABTestStartedEvent();
}
var currentPathRoistatKeys = Object.keys(expConfigVariants);
if (currentPathRoistatKeys.includes(currentPathRoistat)) {
var expName = Object.keys(expConfigVariants[currentPathRoistat])[0];
var expSourceOptions = expConfigDict[expName]["sources"];
const expSourcesType = expConfigDict[expName]["sources_type"];
let currentExpSourceIncluded = false;
let currentExpSourceNotExcluded = false;
if (expSourcesType === "include" && expSourceOptions.includes(marker)) {
currentExpSourceIncluded = true;
} else if (expSourcesType === "exclude" && !expSourceOptions.includes(marker)) {
currentExpSourceNotExcluded = true;
}
if (expSourceOptions.includes("all") || currentExpSourceIncluded || currentExpSourceNotExcluded) {
//Изменено 17.12.2024
//раньше в условии было getCookieValue(ROISTAT_AB_SUBMITTED_COOKIE) !== "1"
//Работало неккоректно, так как кука была общая для всех лендов
const cookieValue = getCookieValue(expName);
if (typeof cookieValue === "undefined" || cookieValue === null) {
getDistributionUniformVariants(expConfigVariants[currentPathRoistat], marker);
} else {
initABTestStartedEvent();
}
} else {
window.isNoGroupVariant = true;
}
}
</script> <!-- END ROISTAT A/B TEST --> <script>
/* ROISTAT MODULES INIT CALLBACKS */
const visitProcessedCallbackQueue = [];
let isVisitProcessed = false;
function addOnRoistatVisitProcessed(callback) {
if (isVisitProcessed) {
return callback();
} else {
visitProcessedCallbackQueue.push(callback);
}
}
function executeOnRoistatVisitProcessedCallbacks() {
isVisitProcessed = true;
while (visitProcessedCallbackQueue.length > 0) {
const callback = visitProcessedCallbackQueue.shift();
callback();
}
}
window.onRoistatAllModulesLoaded = function () {
window.roistat.registerOnVisitProcessedCallback(function () {
executeOnRoistatVisitProcessedCallbacks();
});
};
</script> <!-- Roistat Counter Start --> <script>
(function (w, d, s, h, id) {
w.roistatProjectId = id;
w.roistatHost = h;
var p = d.location.protocol == "https:" ? "https://" : "http://";
var u = /^.*roistat_visit=[^;]+(.*)?$/.test(d.cookie) ? "/dist/module.js" : "/api/site/1.0/" + id + "/init?referrer=" + encodeURIComponent(d.location.href);
var js = d.createElement(s);
js.charset = "UTF-8";
js.async = 1;
js.src = p + h + u;
var js2 = d.getElementsByTagName(s)[0];
js2.parentNode.insertBefore(js, js2);
})(window, document, "script", "cloud.roistat.com", "6290903adee767f275051f47d5d598e3");
</script> <!-- Roistat Counter End --> <style>
.t-form-success-popup__text a {
color: white;
background: #0a76fe;
display: inline-block;
padding: 10px 50px;
border-radius: 50px;
}
.t1196__controls .t-btn {
border-radius: 8px !important;
-webkit-border-radius: 8px !important;
-moz-border-radius: 8px !important;
}
</style> <script src="https://cdn.jsdelivr.net/npm/scrollbooster@3.0.2/dist/scrollbooster.min.js" integrity="sha256-NN8srawERFmf4DLqobXVIYCcuy3HbHNotmQFIXx6Z+M=" crossorigin="anonymous" defer></script> <!-- nominify end --><!-- nominify begin --><!-- Responsive viewport --> <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- Google Fonts --> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700;800&display=swap" rel="stylesheet"> <!-- Cloudpayments widget --> <script src="https://widget.cloudpayments.ru/bundles/cloudpayments"></script> <!-- Bootstrap CDN --> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.5/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-SgOJa3DmI69IUzQ2PVdRZhwQ+dy64/BUtbMJw1MZ8t5HZApcHrRKUc4W0kG879m7" crossorigin="anonymous"> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.5/dist/js/bootstrap.bundle.min.js" integrity="sha384-k6d4wzSIapyDyv1kpU366/PK5hCdSbCRGRCMv+eplOQJWyd1fbcAu9OCUj5zNLiq" crossorigin="anonymous" defer></script> <!-- Core JS dependencies --> <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/jquery-validation@1.19.5/dist/jquery.validate.min.js" defer></script> <script src="https://cdn.jsdelivr.net/npm/jquery.maskedinput@1.4.1/src/jquery.maskedinput.min.js" defer></script> <script src="https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.min.js" defer></script> <!-- Slick JS --> <script src="https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.js" defer></script> <!-- Refactored Stylesheets --> <!-- Vendor CSS from CDN --> <!--<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css">--> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/normalize.css@8.0.1/normalize.min.css"> <!--<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.min.css">--> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css"> <!--<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick-theme.min.css">--> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick-theme.css"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.css"> <!-- Tilda’s own scripts (last) --> <!--<script src="https://static.tildacdn.com/js/jquery-1.10.2.min.js"></script>--> <script src="https://neo.tildacdn.com/js/tilda-fallback-1.0.min.js" charset="utf-8"></script> <script src="https://static.tildacdn.com/js/tilda-scripts-3.0.min.js" charset="utf-8"></script> <script src="https://static.tildacdn.com/js/tilda-lazyload-1.0.min.js" charset="utf-8"></script> <script src="https://static.tildacdn.com/js/tilda-zero-1.1.min.js" charset="utf-8"></script> <script src="https://static.tildacdn.com/js/tilda-forms-1.0.min.js" charset="utf-8"></script> <script src="https://static.tildacdn.com/js/tilda-zero-forms-1.0.min.js" charset="utf-8"></script> <script src="https://static.tildacdn.com/js/tilda-zero-scale-1.0.min.js" charset="utf-8"></script> <script src="https://static.tildacdn.com/js/tilda-events-1.0.min.js" charset="utf-8"></script> <script src="https://static.tildacdn.com/js/tilda-stat-1.0.min.js" charset="utf-8"></script> <script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Course",
"name": "Дизайнер Интерьеров",
"description": "Как стать дизайнером интерьеров: от концепции до реализации проектов для жилых и коммерческих помещений.",
"url": "https://eduson.academy/interior-designer",
"provider": {
"@type": "Organization",
"name": "Академия Eduson",
"sameAs": "https://eduson.academy"
},
"offers": {
"@type": "Offer",
"price": "270900",
"priceCurrency": "RUB",
"priceValidUntil": "2025-12-31",
"validFrom": "2025-03-25",
"url": "https://eduson.academy/interior-designer",
"category": "Дизайн интерьеров"
},
"hasCourseInstance": {
"@type": "CourseInstance",
"courseMode": ["online", "with-support"],
"courseSchedule": {
"@type": "Schedule",
"duration": "P4M",
"repeatCount": 12,
"repeatFrequency": "monthly"
}
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.7",
"bestRating": "5",
"ratingCount": "210"
},
"about": {
"@type": "Thing",
"name": "Дизайн интерьеров"
},
"educationalCredentialAwarded": {
"@type": "EducationalOccupationalCredential",
"name": "Сертификат о завершении курса"
},
"creator": {
"@type": "Organization",
"name": "Академия Eduson"
},
"workExample": [
{
"@type": "CreativeWork",
"name": "Кейс Проект по дизайну интерьеров",
"description": "Проектирование интерьеров для жилых и коммерческих помещений."
},
{
"@type": "DigitalDocument",
"name": "Интерьерный проект",
"description": "Проектирование интерьеров для частных и коммерческих объектов."
}
],
"competencyRequired": "Дизайн интерьеров",
"timeRequired": "PT10H",
"image": "https://optim.tildacdn.com/tild3462-6361-4435-b539-363232343065/-/resize/702x/-/format/webp/noroot.png",
"datePublished": "2025-03-26",
"dateModified": "2025-03-26"
}
</script> <script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "На какой срок я получу доступ к курсу?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Доступ к курсу и всем обновлениям предоставляется навсегда. Мы регулярно обновляем курсы и дополняем их наиболее востребованными темами."
}
},
{
"@type": "Question",
"name": "Подойдет ли мне курс?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Чтобы понять, подходит ли вам курс, оставьте заявку на консультацию с нашим менеджером в форме выше. Менеджер подробно расскажет об обучении, ответит на все ваши вопросы и предоставит демо-версию курса."
}
},
{
"@type": "Question",
"name": "Получу ли я диплом?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Да, после прохождения всех уроков вы можете обратиться к куратору и получить официальный диплом о прохождении обучения с уникальным номером, печатью Академии и подписью ее основателя."
}
},
{
"@type": "Question",
"name": "Какие требования для старта обучения?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Для старта обучения не нужны специальные знания в финансах. Курс будет максимально полезен, если у вас уже есть опыт в финансах, смежной сфере или ведении бизнеса."
}
},
{
"@type": "Question",
"name": "Сколько времени потребуется для прохождения курса?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Зависит только от вас. Вы можете пройти курс за 2 месяца интенсивного обучения или осваивать программу чуть дольше. Мы не оставим вас без поддержки – куратор будет с вами в течение целого года."
}
},
{
"@type": "Question",
"name": "Можно ли приобрести этот курс в подарок?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Да, конечно. Более подробную информацию о подарочных сертификатах можно найти в этом разделе."
}
}
]
}
</script> <script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Главная",
"item": "https://eduson.academy/"
},
{
"@type": "ListItem",
"position": 2,
"name": "🎁 Кейс Проект по дизайну интерьеров ✅",
"item": "https://eduson.academy/catalogue"
},
{
"@type": "ListItem",
"position": 3,
"name": "Дизайнер Интерьеров",
"item": "https://eduson.academy/interior-designer"
}
]
}
</script> <script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Product",
"name": "Дизайнер Интерьеров",
"image": "https://optim.tildacdn.com/tild3462-6361-4435-b539-363232343065/-/resize/702x/-/format/webp/noroot.png",
"description": "Как стать дизайнером интерьеров: от концепции до реализации проектов для жилых и коммерческих помещений.",
"offers": {
"@type": "AggregateOffer",
"lowPrice": "270900",
"highPrice": "108360",
"priceCurrency": "RUB",
"offerCount": 1,
"offers": [
{
"@type": "FinancialProduct",
"name": "Дизайнер Интерьеров",
"brand": "Академия Eduson"
}
]
},
"aggregateRating": {
"bestRating": "5",
"worstRating": "1",
"ratingCount": "210",
"ratingValue": "4.7"
}
}
</script> <script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "QAPage",
"mainEntity": {
"@type": "Question",
"@id": "https://eduson.academy/interior-designer",
"name": "Дизайнер Интерьеров",
"text": "Проектирование интерьеров для частных и коммерческих объектов.",
"answerCount": 13.4,
"upvoteCount": 2,
"datePublished": "2025-03-26T13:16:55+03:00",
"author": {
"@type": "Organization",
"name": "Eduson Academy",
"url": "https://eduson.academy/"
},
"acceptedAnswer": {
"@type": "Answer",
"@id": "https://eduson.academy/interior-designer#accordion10_694020282",
"text": "Дизайнер Интерьеров → 🛋️ Дизайнер Интерьеров: от эскиза до реализации за 14 дней!",
"upvoteCount": 2,
"datePublished": "2025-03-25T15:36:57+03:00",
"author": {
"@type": "Person",
"name": "Дизайнер Интерьеров",
"url": "https://eduson.academy/interior-designer#accordion10_694020282"
},
"url": "https://eduson.academy/interior-designer#accordion10_694020282"
}
}
}
</script> <!-- nominify end --><script type="text/javascript">window.dataLayer=window.dataLayer||[];</script> <!-- Google Tag Manager --> <script type="text/javascript">(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-KDDBXBS');</script> <!-- End Google Tag Manager --> <!-- Facebook Pixel Code --> <script type="text/javascript" data-tilda-cookie-type="advertising">setTimeout(function(){!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';n.agent='pltilda';n.queue=[];t=b.createElement(e);t.async=!0;t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,document,'script','https://connect.facebook.net/en_US/fbevents.js');fbq('init','1100170521353824');fbq('track','PageView');},2000);</script> <!-- End Facebook Pixel Code --> <!-- VK Pixel Code --> <script type="text/javascript" data-tilda-cookie-type="advertising">setTimeout(function(){!function(){var t=document.createElement("script");t.type="text/javascript",t.async=!0,t.src="https://vk.com/js/api/openapi.js?161",t.onload=function(){VK.Retargeting.Init("VK-RTRG-1870518-henw8"),VK.Retargeting.Hit()},document.head.appendChild(t)}();},2000);</script> <!-- End VK Pixel Code --> <script type="text/javascript">(function() {if((/bot|google|yandex|baidu|bing|msn|duckduckbot|teoma|slurp|crawler|spider|robot|crawling|facebook/i.test(navigator.userAgent))===false&&typeof(sessionStorage)!='undefined'&&sessionStorage.getItem('visited')!=='y'&&document.visibilityState){var style=document.createElement('style');style.type='text/css';style.innerHTML='@media screen and (min-width: 980px) {.t-records {opacity: 0;}.t-records_animated {-webkit-transition: opacity ease-in-out .2s;-moz-transition: opacity ease-in-out .2s;-o-transition: opacity ease-in-out .2s;transition: opacity ease-in-out .2s;}.t-records.t-records_visible {opacity: 1;}}';document.getElementsByTagName('head')[0].appendChild(style);function t_setvisRecs(){var alr=document.querySelectorAll('.t-records');Array.prototype.forEach.call(alr,function(el) {el.classList.add("t-records_animated");});setTimeout(function() {Array.prototype.forEach.call(alr,function(el) {el.classList.add("t-records_visible");});sessionStorage.setItem("visited","y");},400);}
document.addEventListener('DOMContentLoaded',t_setvisRecs);}})();</script></head> <body class="t-body" style="margin:0;"> <!--allrecords--> <div id="allrecords" class="t-records" data-hook="blocks-collection-content-node" data-tilda-project-id="2716788" data-tilda-page-id="70132555" data-tilda-page-alias="interior-designer" data-tilda-formskey="3f17e0ce78f719cf57b4c72767749250" data-tilda-cookie="no" data-tilda-stat-scroll="yes" data-tilda-lazy="yes" data-tilda-root-zone="com" data-tilda-project-headcode="yes" data-tilda-page-headcode="yes" data-tilda-project-country="RU"> <!--header--> <header id="t-header" class="t-records" data-hook="blocks-collection-content-node" data-tilda-project-id="2716788" data-tilda-page-id="96499866" data-tilda-page-alias="header" data-tilda-formskey="3f17e0ce78f719cf57b4c72767749250" data-tilda-cookie="no" data-tilda-stat-scroll="yes" data-tilda-lazy="yes" data-tilda-root-zone="com" data-tilda-project-headcode="yes" data-tilda-project-country="RU"> <div id="rec1589590691" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <style>
/* Close controls should look clickable across both popups */
.close_id,
.close_id .tn-atom {
cursor: pointer;
user-select: none;
}
.close_id .tn-atom:focus,
.close_id:focus {
outline: 2px solid rgba(0,0,0,.6);
outline-offset: 2px;
}
/* Hide both popup records by default; script will unhide chosen one */
#rec1581518131,
#rec1593614311,
#rec1588996901,
#rec1593592241 {
display: none !important;
}
</style> <!-- nominify end --> </div> </div> </div> </div> <div id="rec1921664091" class="r t-rec" style=" " data-animationappear="off" data-record-type="367"> <!-- T367 --> <div class="t367"> <a href="#blackfriday-popup" class="t367__opener" data-trigger-time="8" data-cookie-name="blackfriday-popup" data-cookie-time="-1"></a> </div> <script>t_onReady(function() {t_onFuncLoad('t367_autoInit',function() {t367_autoInit('1921664091');});});</script> </div> <div id="rec1589064231" class="r t-rec" style=" " data-animationappear="off" data-record-type="1093"> <!-- t1093 --> <div class="t1093"> <div class="t-popup " data-popup-disable-lock-scroll="y" data-popup-close-on-open-another="true" data-anim="fadein" data-anim-timeout="0.3" data-tooltip-hook="#blackfriday-popup" data-popup-rec-ids="rec1588996901"
role="dialog"
aria-modal="true"
tabindex="-1"> <div class="t-popup__container t-width t-valign_middle"> </div> </div> </div> <style>#recrec1588996901[data-record-type="396"],#recrec1588996901[data-parenttplid="396"]{display:none;}.t1093 .t-popup #recrec1588996901[data-record-type="396"],.t1093 .t-popup #recrec1588996901[data-parenttplid="396"]{display:block;}</style> <style>#rec1589064231 .t1093 .t-popup.t-popup-anim-fadein .t-popup__container{transition-timing-function:ease-in-out;}</style> <script>t_onReady(function() {t_onFuncLoad('t1093__init',function() {t1093__init('1589064231');});t_onFuncLoad('t1093__initPopup',function() {t1093__initPopup('1589064231');});});</script> </div> <div id="rec1588996901" class="r t-rec" style=" " data-animationappear="off" data-record-type="396"> <!-- T396 --> <style>#rec1588996901 .t396__artboard {height:700px;}#rec1588996901 .t396__filter {height:700px;}#rec1588996901 .t396__carrier{height:700px;background-position:center center;background-attachment:scroll;background-size:cover;background-repeat:no-repeat;}@media screen and (max-width:1199px) {#rec1588996901 .t396__artboard,#rec1588996901 .t396__filter,#rec1588996901 .t396__carrier {height:450px;}#rec1588996901 .t396__filter {}#rec1588996901 .t396__carrier {background-attachment:scroll;}}#rec1588996901 .tn-elem[data-elem-id="1767097929756"]{z-index:3;top:53px;;left:calc(50% - 600px + 342px);;width:549px;height:auto;}#rec1588996901 .tn-elem[data-elem-id="1767097929756"] .tn-atom{border-radius:0px 0px 0px 0px;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;}#rec1588996901 .tn-elem[data-elem-id="1767097929756"] .tn-atom__img{border-radius:0px 0px 0px 0px;object-position:center center;}@media screen and (max-width:1199px){#rec1588996901 .tn-elem[data-elem-id="1767097929756"]{display:table;top:103px;;left:calc(50% - 160px + 20px);;width:279px;height:auto;}#rec1588996901 .tn-elem[data-elem-id="1767097929756"] .tn-atom{background-size:cover;opacity:1;}}#rec1588996901 .tn-elem[data-elem-id="176199416253369280"]{color:#ffffff;text-align:center;z-index:3;top:458px;;left:calc(50% - 600px + 510px);;width:200px;height:43px;}#rec1588996901 .tn-elem[data-elem-id="176199416253369280"] .tn-atom{color:#ffffff;font-size:14px;font-family:var(--t-text-font,Arial);line-height:1.55;font-weight:700;border-radius:30px 30px 30px 30px;--t396-speedhover:0.1s;transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;--t396-bgcolor-color:transparent;--t396-bgcolor-image:linear-gradient(0.266turn,rgba(0,0,0,1) 0%,rgba(0,0,0,1) 100%);--t396-bgcolor-hover-color:transparent;--t396-bgcolor-hover-image:linear-gradient(0.266turn,rgba(255,0,0,1) 0%,rgba(255,135,2,1) 100%);background-image:var(--t396-bgcolor-image,none);position:relative;z-index:1;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;}#rec1588996901 .tn-elem[data-elem-id="176199416253369280"] .tn-atom::after{display:block;transition:opacity var(--t396-speedhover,0s) ease-in-out;background-image:var(--t396-bgcolor-hover-image,var(--t396-bgcolor-image,none));}#rec1588996901 .tn-elem[data-elem-id="176199416253369280"] .tn-atom .tn-atom__button-content{column-gap:10px;padding:0px 0px 0px 0px;}#rec1588996901 .tn-elem[data-elem-id="176199416253369280"] .tn-atom .tn-atom__button-text{transition:color var(--t396-speedhover,0s) ease-in-out;color:#ffffff;}#rec1588996901 .tn-elem[data-elem-id="176199416253369280"] .tn-atom .tn-atom__button-border::before{display:none;}#rec1588996901 .tn-elem[data-elem-id="176199416253369280"] .tn-atom .tn-atom__button-border::after{display:none;}@media (hover),(min-width:0\0){#rec1588996901 .tn-elem[data-elem-id="176199416253369280"] .tn-atom:hover::after{opacity:1;}#rec1588996901 .tn-elem[data-elem-id="176199416253369280"] .tn-atom:hover{animation-name:t-button-hover-animation;animation-duration:0s;animation-fill-mode:forwards;animation-delay:var(--t396-speedhover,0s);animation-timing-function:linear;}}@media screen and (max-width:1199px){#rec1588996901 .tn-elem[data-elem-id="176199416253369280"]{display:block;top:313px;;left:calc(50% - 160px + 40px);;width:241px;height:auto;}#rec1588996901 .tn-elem[data-elem-id="176199416253369280"] .tn-atom{--t396-bgcolor-hover-color:transparent;--t396-bgcolor-hover-image:linear-gradient(0.266turn,rgba(255,0,0,1) 0%,rgba(255,135,2,1) 100%);background-image:var(--t396-bgcolor-image,none);position:relative;z-index:1;}#rec1588996901 .tn-elem[data-elem-id="176199416253369280"] .tn-atom::after{display:block;transition:opacity var(--t396-speedhover,0s) ease-in-out;background-image:var(--t396-bgcolor-hover-image,var(--t396-bgcolor-image,none));}#rec1588996901 .tn-elem[data-elem-id="176199416253369280"] .tn-atom .tn-atom__button-border::before{display:none;}#rec1588996901 .tn-elem[data-elem-id="176199416253369280"] .tn-atom .tn-atom__button-border::after{display:none;}@media (hover),(min-width:0\0){#rec1588996901 .tn-elem[data-elem-id="176199416253369280"] .tn-atom:hover::after{opacity:1;}#rec1588996901 .tn-elem[data-elem-id="176199416253369280"] .tn-atom:hover{animation-name:t-button-hover-animation;animation-duration:0s;animation-fill-mode:forwards;animation-delay:var(--t396-speedhover,0s);animation-timing-function:linear;}}}#rec1588996901 .tn-elem[data-elem-id="176199987864281440"]{text-align:center;z-index:3;top:103px;;left:calc(50% - 600px + 807px);;width:55px;height:55px;}#rec1588996901 .tn-elem[data-elem-id="176199987864281440"] .tn-atom{color:transparent;font-size:14px;font-family:var(--t-text-font,Arial);line-height:1.55;font-weight:700;border-radius:30px 30px 30px 30px;background-position:center center;--t396-speedhover:0.1s;transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;--t396-bgcolor-hover-color:rgba(0,0,0,0.05);--t396-bgcolor-hover-image:none;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;}#rec1588996901 .tn-elem[data-elem-id="176199987864281440"] .tn-atom::after{display:none;}#rec1588996901 .tn-elem[data-elem-id="176199987864281440"] .tn-atom .tn-atom__button-content{column-gap:10px;padding:0px 0px 0px 0px;}#rec1588996901 .tn-elem[data-elem-id="176199987864281440"] .tn-atom .tn-atom__button-text{transition:color var(--t396-speedhover,0s) ease-in-out;color:transparent;}#rec1588996901 .tn-elem[data-elem-id="176199987864281440"] .tn-atom .tn-atom__button-border::before{display:none;}#rec1588996901 .tn-elem[data-elem-id="176199987864281440"] .tn-atom .tn-atom__button-border::after{display:none;}@media (hover),(min-width:0\0){#rec1588996901 .tn-elem[data-elem-id="176199987864281440"] .tn-atom:hover::after{opacity:0;}#rec1588996901 .tn-elem[data-elem-id="176199987864281440"] .tn-atom:hover{animation-name:none;background-color:var(--t396-bgcolor-hover-color,var(--t396-bgcolor-color,transparent));}}@media screen and (max-width:1199px){#rec1588996901 .tn-elem[data-elem-id="176199987864281440"]{display:block;top:127px;;left:calc(50% - 160px + 256px);;width:29px;height:auto;}#rec1588996901 .tn-elem[data-elem-id="176199987864281440"] .tn-atom::after{display:none;}#rec1588996901 .tn-elem[data-elem-id="176199987864281440"] .tn-atom .tn-atom__button-border::before{display:none;}#rec1588996901 .tn-elem[data-elem-id="176199987864281440"] .tn-atom .tn-atom__button-border::after{display:none;}@media (hover),(min-width:0\0){#rec1588996901 .tn-elem[data-elem-id="176199987864281440"] .tn-atom:hover::after{opacity:0;}#rec1588996901 .tn-elem[data-elem-id="176199987864281440"] .tn-atom:hover{animation-name:none;background-color:var(--t396-bgcolor-hover-color,var(--t396-bgcolor-color,transparent));}}}</style> <div class='t396'> <div class="t396__artboard" data-artboard-recid="1588996901" data-artboard-screens="320,1200" data-artboard-height="700" data-artboard-valign="center" data-artboard-upscale="grid" data-artboard-height-res-320="450"> <div class="t396__carrier" data-artboard-recid="1588996901"></div> <div class="t396__filter" data-artboard-recid="1588996901"></div> <div class='t396__elem tn-elem tn-elem__15889969011767097929756' data-elem-id='1767097929756' data-elem-type='image' data-field-top-value="53" data-field-left-value="342" data-field-height-value="502" data-field-width-value="549" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-filewidth-value="991" data-field-fileheight-value="907" data-field-lazyoff-value="y" data-field-widthmode-value="fixed" data-field-heightmode-value="hug" data-field-top-res-320-value="103" data-field-left-res-320-value="20" data-field-height-res-320-value="255" data-field-width-res-320-value="279" data-field-container-res-320-value="grid" data-field-widthmode-res-320-value="fixed"> <div class='tn-atom'> <img class='tn-atom__img' src='https://static.tildacdn.com/tild3465-6461-4139-a536-663338346162/blin-50_1.svg' alt='' imgfield='tn_img_1767097929756' /> </div> </div> <div class='t396__elem tn-elem tn-elem__1588996901176199416253369280' data-elem-id='176199416253369280' data-elem-type='button' data-field-top-value="458" data-field-left-value="510" data-field-height-value="43" data-field-width-value="200" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-textfit-value="fixedsize" data-field-widthmode-value="fixed" data-field-heightmode-value="fixed" data-field-fontsize-value="14" data-field-top-res-320-value="313" data-field-left-res-320-value="40" data-field-height-res-320-value="37" data-field-width-res-320-value="241" data-field-container-res-320-value="grid"> <a class='tn-atom' href="#bottom-form"> <div class='tn-atom__button-content'> <span class="tn-atom__button-text">Подобрать обучение</span> </div> <span class="tn-atom__button-border"></span> </a> </div> <div class='t396__elem tn-elem close_id tn-elem__1588996901176199987864281440' data-elem-id='176199987864281440' data-elem-type='button' data-field-top-value="103" data-field-left-value="807" data-field-height-value="55" data-field-width-value="55" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-textfit-value="fixedsize" data-field-widthmode-value="fixed" data-field-heightmode-value="fixed" data-field-fontsize-value="14" data-field-top-res-320-value="127" data-field-left-res-320-value="256" data-field-height-res-320-value="29" data-field-width-res-320-value="29" data-field-widthmode-res-320-value="fixed" data-field-heightmode-res-320-value="fixed"> <a class='tn-atom' href="#popup-close"> <div class='tn-atom__button-content'> <span class="tn-atom__button-text"></span> </div> <span class="tn-atom__button-border"></span> </a> </div> </div> </div> <script>t_onReady(function() {t_onFuncLoad('t396_init',function() {t396_init('1588996901');});});</script> <!-- /T396 --> </div> <div id="rec1921931271" class="r t-rec" style=" " data-animationappear="off" data-record-type="367"> <!-- T367 --> <div class="t367"> <a href="#blackfriday-65-popup" class="t367__opener" data-trigger-time="8" data-cookie-name="blackfriday-65-popup" data-cookie-time="-1"></a> </div> <script>t_onReady(function() {t_onFuncLoad('t367_autoInit',function() {t367_autoInit('1921931271');});});</script> </div> <div id="rec1593591871" class="r t-rec" style=" " data-animationappear="off" data-record-type="1093"> <!-- t1093 --> <div class="t1093"> <div class="t-popup " data-popup-disable-lock-scroll="y" data-popup-close-on-open-another="true" data-anim="fadein" data-anim-timeout="0.3" data-tooltip-hook="#blackfriday-65-popup" data-popup-rec-ids="rec1593592241"
role="dialog"
aria-modal="true"
tabindex="-1"> <div class="t-popup__container t-width t-valign_middle"> </div> </div> </div> <style>#recrec1593592241[data-record-type="396"],#recrec1593592241[data-parenttplid="396"]{display:none;}.t1093 .t-popup #recrec1593592241[data-record-type="396"],.t1093 .t-popup #recrec1593592241[data-parenttplid="396"]{display:block;}</style> <style>#rec1593591871 .t1093 .t-popup.t-popup-anim-fadein .t-popup__container{transition-timing-function:ease-in-out;}</style> <script>t_onReady(function() {t_onFuncLoad('t1093__init',function() {t1093__init('1593591871');});t_onFuncLoad('t1093__initPopup',function() {t1093__initPopup('1593591871');});});</script> </div> <div id="rec1593592241" class="r t-rec" style=" " data-animationappear="off" data-record-type="396"> <!-- T396 --> <style>#rec1593592241 .t396__artboard {height:700px;}#rec1593592241 .t396__filter {height:700px;}#rec1593592241 .t396__carrier{height:700px;background-position:center center;background-attachment:scroll;background-size:cover;background-repeat:no-repeat;}@media screen and (max-width:1199px) {#rec1593592241 .t396__artboard,#rec1593592241 .t396__filter,#rec1593592241 .t396__carrier {height:450px;}#rec1593592241 .t396__filter {}#rec1593592241 .t396__carrier {background-attachment:scroll;}}#rec1593592241 .tn-elem[data-elem-id="1770366929165000003"]{z-index:3;top:53px;;left:calc(50% - 600px + 342px);;width:549px;height:auto;}#rec1593592241 .tn-elem[data-elem-id="1770366929165000003"] .tn-atom{border-radius:0px 0px 0px 0px;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;}#rec1593592241 .tn-elem[data-elem-id="1770366929165000003"] .tn-atom__img{border-radius:0px 0px 0px 0px;object-position:center center;}@media screen and (max-width:1199px){#rec1593592241 .tn-elem[data-elem-id="1770366929165000003"]{display:table;top:103px;;left:calc(50% - 160px + 15px);;width:279px;height:auto;}#rec1593592241 .tn-elem[data-elem-id="1770366929165000003"] .tn-atom{background-size:cover;opacity:1;}}#rec1593592241 .tn-elem[data-elem-id="1770366929166000004"]{color:#ffffff;text-align:center;z-index:3;top:468px;;left:calc(50% - 600px + 510px);;width:200px;height:43px;}#rec1593592241 .tn-elem[data-elem-id="1770366929166000004"] .tn-atom{color:#ffffff;font-size:14px;font-family:var(--t-text-font,Arial);line-height:1.55;font-weight:700;border-radius:30px 30px 30px 30px;--t396-speedhover:0.1s;transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;--t396-bgcolor-color:transparent;--t396-bgcolor-image:linear-gradient(0.266turn,rgba(0,0,0,1) 0%,rgba(0,0,0,1) 100%);--t396-bgcolor-hover-color:transparent;--t396-bgcolor-hover-image:linear-gradient(0.266turn,rgba(255,0,0,1) 0%,rgba(255,135,2,1) 100%);background-image:var(--t396-bgcolor-image,none);position:relative;z-index:1;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;}#rec1593592241 .tn-elem[data-elem-id="1770366929166000004"] .tn-atom::after{display:block;transition:opacity var(--t396-speedhover,0s) ease-in-out;background-image:var(--t396-bgcolor-hover-image,var(--t396-bgcolor-image,none));}#rec1593592241 .tn-elem[data-elem-id="1770366929166000004"] .tn-atom .tn-atom__button-content{column-gap:10px;padding:0px 0px 0px 0px;}#rec1593592241 .tn-elem[data-elem-id="1770366929166000004"] .tn-atom .tn-atom__button-text{transition:color var(--t396-speedhover,0s) ease-in-out;color:#ffffff;}#rec1593592241 .tn-elem[data-elem-id="1770366929166000004"] .tn-atom .tn-atom__button-border::before{display:none;}#rec1593592241 .tn-elem[data-elem-id="1770366929166000004"] .tn-atom .tn-atom__button-border::after{display:none;}@media (hover),(min-width:0\0){#rec1593592241 .tn-elem[data-elem-id="1770366929166000004"] .tn-atom:hover::after{opacity:1;}#rec1593592241 .tn-elem[data-elem-id="1770366929166000004"] .tn-atom:hover{animation-name:t-button-hover-animation;animation-duration:0s;animation-fill-mode:forwards;animation-delay:var(--t396-speedhover,0s);animation-timing-function:linear;}}@media screen and (max-width:1199px){#rec1593592241 .tn-elem[data-elem-id="1770366929166000004"]{display:block;top:308px;;left:calc(50% - 160px + 40px);;width:241px;height:auto;}#rec1593592241 .tn-elem[data-elem-id="1770366929166000004"] .tn-atom{--t396-bgcolor-hover-color:transparent;--t396-bgcolor-hover-image:linear-gradient(0.266turn,rgba(255,0,0,1) 0%,rgba(255,135,2,1) 100%);background-image:var(--t396-bgcolor-image,none);position:relative;z-index:1;}#rec1593592241 .tn-elem[data-elem-id="1770366929166000004"] .tn-atom::after{display:block;transition:opacity var(--t396-speedhover,0s) ease-in-out;background-image:var(--t396-bgcolor-hover-image,var(--t396-bgcolor-image,none));}#rec1593592241 .tn-elem[data-elem-id="1770366929166000004"] .tn-atom .tn-atom__button-border::before{display:none;}#rec1593592241 .tn-elem[data-elem-id="1770366929166000004"] .tn-atom .tn-atom__button-border::after{display:none;}@media (hover),(min-width:0\0){#rec1593592241 .tn-elem[data-elem-id="1770366929166000004"] .tn-atom:hover::after{opacity:1;}#rec1593592241 .tn-elem[data-elem-id="1770366929166000004"] .tn-atom:hover{animation-name:t-button-hover-animation;animation-duration:0s;animation-fill-mode:forwards;animation-delay:var(--t396-speedhover,0s);animation-timing-function:linear;}}}#rec1593592241 .tn-elem[data-elem-id="1770366929166000005"]{text-align:center;z-index:3;top:104px;;left:calc(50% - 600px + 807px);;width:55px;height:55px;}#rec1593592241 .tn-elem[data-elem-id="1770366929166000005"] .tn-atom{color:transparent;font-size:14px;font-family:var(--t-text-font,Arial);line-height:1.55;font-weight:700;border-radius:30px 30px 30px 30px;background-position:center center;--t396-speedhover:0.1s;transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;--t396-bgcolor-hover-color:rgba(0,0,0,0.05);--t396-bgcolor-hover-image:none;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;}#rec1593592241 .tn-elem[data-elem-id="1770366929166000005"] .tn-atom::after{display:none;}#rec1593592241 .tn-elem[data-elem-id="1770366929166000005"] .tn-atom .tn-atom__button-content{column-gap:10px;padding:0px 0px 0px 0px;}#rec1593592241 .tn-elem[data-elem-id="1770366929166000005"] .tn-atom .tn-atom__button-text{transition:color var(--t396-speedhover,0s) ease-in-out;color:transparent;}#rec1593592241 .tn-elem[data-elem-id="1770366929166000005"] .tn-atom .tn-atom__button-border::before{display:none;}#rec1593592241 .tn-elem[data-elem-id="1770366929166000005"] .tn-atom .tn-atom__button-border::after{display:none;}@media (hover),(min-width:0\0){#rec1593592241 .tn-elem[data-elem-id="1770366929166000005"] .tn-atom:hover::after{opacity:0;}#rec1593592241 .tn-elem[data-elem-id="1770366929166000005"] .tn-atom:hover{animation-name:none;background-color:var(--t396-bgcolor-hover-color,var(--t396-bgcolor-color,transparent));}}@media screen and (max-width:1199px){#rec1593592241 .tn-elem[data-elem-id="1770366929166000005"]{display:block;top:127px;;left:calc(50% - 160px + 251px);;width:29px;height:auto;}#rec1593592241 .tn-elem[data-elem-id="1770366929166000005"] .tn-atom::after{display:none;}#rec1593592241 .tn-elem[data-elem-id="1770366929166000005"] .tn-atom .tn-atom__button-border::before{display:none;}#rec1593592241 .tn-elem[data-elem-id="1770366929166000005"] .tn-atom .tn-atom__button-border::after{display:none;}@media (hover),(min-width:0\0){#rec1593592241 .tn-elem[data-elem-id="1770366929166000005"] .tn-atom:hover::after{opacity:0;}#rec1593592241 .tn-elem[data-elem-id="1770366929166000005"] .tn-atom:hover{animation-name:none;background-color:var(--t396-bgcolor-hover-color,var(--t396-bgcolor-color,transparent));}}}</style> <div class='t396'> <div class="t396__artboard" data-artboard-recid="1593592241" data-artboard-screens="320,1200" data-artboard-height="700" data-artboard-valign="center" data-artboard-upscale="grid" data-artboard-height-res-320="450"> <div class="t396__carrier" data-artboard-recid="1593592241"></div> <div class="t396__filter" data-artboard-recid="1593592241"></div> <div class='t396__elem tn-elem tn-elem__15935922411770366929165000003' data-elem-id='1770366929165000003' data-elem-type='image' data-field-top-value="53" data-field-left-value="342" data-field-height-value="502" data-field-width-value="549" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-filewidth-value="991" data-field-fileheight-value="907" data-field-lazyoff-value="y" data-field-widthmode-value="fixed" data-field-heightmode-value="hug" data-field-top-res-320-value="103" data-field-left-res-320-value="15" data-field-height-res-320-value="255" data-field-width-res-320-value="279" data-field-widthmode-res-320-value="fixed"> <div class='tn-atom'> <img class='tn-atom__img' src='https://static.tildacdn.com/tild3933-6139-4462-b366-383261316639/blin-55_1.svg' alt='' imgfield='tn_img_1770366929165000003' /> </div> </div> <div class='t396__elem tn-elem tn-elem__15935922411770366929166000004' data-elem-id='1770366929166000004' data-elem-type='button' data-field-top-value="468" data-field-left-value="510" data-field-height-value="43" data-field-width-value="200" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-textfit-value="fixedsize" data-field-widthmode-value="fixed" data-field-heightmode-value="fixed" data-field-fontsize-value="14" data-field-top-res-320-value="308" data-field-left-res-320-value="40" data-field-height-res-320-value="37" data-field-width-res-320-value="241" data-field-container-res-320-value="grid"> <a class='tn-atom' href="#bottom-form"> <div class='tn-atom__button-content'> <span class="tn-atom__button-text">Подобрать обучение</span> </div> <span class="tn-atom__button-border"></span> </a> </div> <div class='t396__elem tn-elem close_id tn-elem__15935922411770366929166000005' data-elem-id='1770366929166000005' data-elem-type='button' data-field-top-value="104" data-field-left-value="807" data-field-height-value="55" data-field-width-value="55" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-textfit-value="fixedsize" data-field-widthmode-value="fixed" data-field-heightmode-value="fixed" data-field-fontsize-value="14" data-field-top-res-320-value="127" data-field-left-res-320-value="251" data-field-height-res-320-value="29" data-field-width-res-320-value="29" data-field-widthmode-res-320-value="fixed" data-field-heightmode-res-320-value="fixed"> <a class='tn-atom' href="#popup-close"> <div class='tn-atom__button-content'> <span class="tn-atom__button-text"></span> </div> <span class="tn-atom__button-border"></span> </a> </div> </div> </div> <script>t_onReady(function() {t_onFuncLoad('t396_init',function() {t396_init('1593592241');});});</script> <!-- /T396 --> </div> <div id="rec1581518121" class="r t-rec" style=" " data-animationappear="off" data-record-type="1093"> <!-- t1093 --> <div class="t1093"> <div class="t-popup " data-popup-disable-lock-scroll="y" data-popup-open-on-page-load="y" data-popup-close-on-open-another="true" data-anim="fadein" data-anim-timeout="0.3" data-tooltip-hook="#november-friday-popup" data-popup-rec-ids="rec1581518131"
role="dialog"
aria-modal="true"
tabindex="-1"> <div class="t-popup__container t-width t-valign_middle"> </div> </div> </div> <style>#recrec1581518131[data-record-type="396"],#recrec1581518131[data-parenttplid="396"]{display:none;}.t1093 .t-popup #recrec1581518131[data-record-type="396"],.t1093 .t-popup #recrec1581518131[data-parenttplid="396"]{display:block;}</style> <style>#rec1581518121 .t1093 .t-popup.t-popup-anim-fadein .t-popup__container{transition-timing-function:ease-in-out;}</style> <script>t_onReady(function() {t_onFuncLoad('t1093__init',function() {t1093__init('1581518121');});t_onFuncLoad('t1093__initPopup',function() {t1093__initPopup('1581518121');});});</script> </div> <div id="rec1581518131" class="r t-rec" style=" " data-animationappear="off" data-record-type="396"> <!-- T396 --> <style>#rec1581518131 .t396__artboard {height:700px;}#rec1581518131 .t396__filter {height:700px;}#rec1581518131 .t396__carrier{height:700px;background-position:center center;background-attachment:scroll;background-size:cover;background-repeat:no-repeat;}@media screen and (max-width:1199px) {#rec1581518131 .t396__artboard,#rec1581518131 .t396__filter,#rec1581518131 .t396__carrier {height:450px;}#rec1581518131 .t396__filter {}#rec1581518131 .t396__carrier {background-attachment:scroll;}}#rec1581518131 .tn-elem[data-elem-id="1769719409014000030"]{z-index:3;top:96px;;left:calc(50% - 600px + 342px);;width:512px;height:512px;}#rec1581518131 .tn-elem[data-elem-id="1769719409014000030"] .tn-atom{border-radius:3000px 3000px 3000px 3000px;opacity:0.5;background-color:#ffffff;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);box-shadow:0px 0px 90px 0px rgba(255,74,188,0.79);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;}@media screen and (max-width:1199px){#rec1581518131 .tn-elem[data-elem-id="1769719409014000030"]{display:table;top:108px;;left:calc(50% - 160px + 30px);;width:253px;height:253px;}}#rec1581518131 .tn-elem[data-elem-id="1769719409014000031"]{z-index:3;top:94px;;left:calc(50% - 600px + 342px);;width:522px;height:auto;}#rec1581518131 .tn-elem[data-elem-id="1769719409014000031"] .tn-atom{border-radius:0px 0px 0px 0px;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;}#rec1581518131 .tn-elem[data-elem-id="1769719409014000031"] .tn-atom__img{border-radius:0px 0px 0px 0px;object-position:center center;}@media screen and (max-width:1199px){#rec1581518131 .tn-elem[data-elem-id="1769719409014000031"]{display:table;top:103px;;left:calc(50% - 160px + 29px);;width:262px;height:auto;}}#rec1581518131 .tn-elem[data-elem-id="1769761954365"]{z-index:3;top:433px;;left:calc(50% - 600px + 630px);;width:205px;height:auto;}#rec1581518131 .tn-elem[data-elem-id="1769761954365"] .tn-atom{border-radius:0px 0px 0px 0px;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;}#rec1581518131 .tn-elem[data-elem-id="1769761954365"] .tn-atom__img{border-radius:0px 0px 0px 0px;object-position:center center;}@media screen and (max-width:1199px){#rec1581518131 .tn-elem[data-elem-id="1769761954365"]{display:table;top:270px;;left:calc(50% - 160px + 163px);;width:153px;height:auto;}#rec1581518131 .tn-elem[data-elem-id="1769761954365"] .tn-atom{background-size:cover;opacity:1;}}#rec1581518131 .tn-elem[data-elem-id="1769719409014000032"]{color:#ffffff;text-align:center;z-index:3;top:516px;;left:calc(50% - 600px + 479px);;width:241px;height:37px;}#rec1581518131 .tn-elem[data-elem-id="1769719409014000032"] .tn-atom{color:#ffffff;font-size:14px;font-family:var(--t-text-font,Arial);line-height:1.55;font-weight:700;border-radius:30px 30px 30px 30px;background-position:center center;--t396-speedhover:0.1s;transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;--t396-bgcolor-color:#ff4abc;--t396-bgcolor-image:none;--t396-bgcolor-hover-color:#ff0f4f;--t396-bgcolor-hover-image:none;background-color:var(--t396-bgcolor-color,transparent);-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;}#rec1581518131 .tn-elem[data-elem-id="1769719409014000032"] .tn-atom::after{display:none;}#rec1581518131 .tn-elem[data-elem-id="1769719409014000032"] .tn-atom .tn-atom__button-content{column-gap:10px;padding:0px 0px 0px 0px;}#rec1581518131 .tn-elem[data-elem-id="1769719409014000032"] .tn-atom .tn-atom__button-text{transition:color var(--t396-speedhover,0s) ease-in-out;color:#ffffff;}#rec1581518131 .tn-elem[data-elem-id="1769719409014000032"] .tn-atom .tn-atom__button-border::before{display:none;}#rec1581518131 .tn-elem[data-elem-id="1769719409014000032"] .tn-atom .tn-atom__button-border::after{display:none;}@media (hover),(min-width:0\0){#rec1581518131 .tn-elem[data-elem-id="1769719409014000032"] .tn-atom:hover::after{opacity:0;}#rec1581518131 .tn-elem[data-elem-id="1769719409014000032"] .tn-atom:hover{animation-name:none;background-color:var(--t396-bgcolor-hover-color,var(--t396-bgcolor-color,transparent));}}@media screen and (max-width:1199px){#rec1581518131 .tn-elem[data-elem-id="1769719409014000032"]{display:block;top:325px;;left:calc(50% - 160px + 40px);;height:auto;}#rec1581518131 .tn-elem[data-elem-id="1769719409014000032"] .tn-atom{background-color:var(--t396-bgcolor-color,transparent);}#rec1581518131 .tn-elem[data-elem-id="1769719409014000032"] .tn-atom::after{display:none;}#rec1581518131 .tn-elem[data-elem-id="1769719409014000032"] .tn-atom .tn-atom__button-border::before{display:none;}#rec1581518131 .tn-elem[data-elem-id="1769719409014000032"] .tn-atom .tn-atom__button-border::after{display:none;}@media (hover),(min-width:0\0){#rec1581518131 .tn-elem[data-elem-id="1769719409014000032"] .tn-atom:hover::after{opacity:0;}#rec1581518131 .tn-elem[data-elem-id="1769719409014000032"] .tn-atom:hover{animation-name:none;background-color:var(--t396-bgcolor-hover-color,var(--t396-bgcolor-color,transparent));}}}#rec1581518131 .tn-elem[data-elem-id="1769719409014000033"]{text-align:center;z-index:3;top:126px;;left:calc(50% - 600px + 810px);;width:55px;height:55px;}#rec1581518131 .tn-elem[data-elem-id="1769719409014000033"] .tn-atom{color:transparent;font-size:14px;font-family:var(--t-text-font,Arial);line-height:1.55;font-weight:700;border-radius:30px 30px 30px 30px;background-position:center center;--t396-speedhover:0.1s;transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;--t396-bgcolor-hover-color:rgba(0,0,0,0.05);--t396-bgcolor-hover-image:none;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;}#rec1581518131 .tn-elem[data-elem-id="1769719409014000033"] .tn-atom::after{display:none;}#rec1581518131 .tn-elem[data-elem-id="1769719409014000033"] .tn-atom .tn-atom__button-content{column-gap:10px;padding:0px 0px 0px 0px;}#rec1581518131 .tn-elem[data-elem-id="1769719409014000033"] .tn-atom .tn-atom__button-text{transition:color var(--t396-speedhover,0s) ease-in-out;color:transparent;}#rec1581518131 .tn-elem[data-elem-id="1769719409014000033"] .tn-atom .tn-atom__button-border::before{display:none;}#rec1581518131 .tn-elem[data-elem-id="1769719409014000033"] .tn-atom .tn-atom__button-border::after{display:none;}@media (hover),(min-width:0\0){#rec1581518131 .tn-elem[data-elem-id="1769719409014000033"] .tn-atom:hover::after{opacity:0;}#rec1581518131 .tn-elem[data-elem-id="1769719409014000033"] .tn-atom:hover{animation-name:none;background-color:var(--t396-bgcolor-hover-color,var(--t396-bgcolor-color,transparent));}}@media screen and (max-width:1199px){#rec1581518131 .tn-elem[data-elem-id="1769719409014000033"]{display:block;top:117px;;left:calc(50% - 160px + 274px);;width:34px;height:auto;}#rec1581518131 .tn-elem[data-elem-id="1769719409014000033"] .tn-atom::after{display:none;}#rec1581518131 .tn-elem[data-elem-id="1769719409014000033"] .tn-atom .tn-atom__button-border::before{display:none;}#rec1581518131 .tn-elem[data-elem-id="1769719409014000033"] .tn-atom .tn-atom__button-border::after{display:none;}@media (hover),(min-width:0\0){#rec1581518131 .tn-elem[data-elem-id="1769719409014000033"] .tn-atom:hover::after{opacity:0;}#rec1581518131 .tn-elem[data-elem-id="1769719409014000033"] .tn-atom:hover{animation-name:none;background-color:var(--t396-bgcolor-hover-color,var(--t396-bgcolor-color,transparent));}}}#rec1581518131 .tn-elem[data-elem-id="1769719409014000035"]{color:#000000;z-index:3;top:456px;;left:calc(50% - 600px + 680px);;width:136px;height:32px;}#rec1581518131 .tn-elem[data-elem-id="1769719409014000035"] .tn-atom{vertical-align:middle;color:#000000;font-size:16px;font-family:var(--t-text-font,Arial);line-height:1;font-weight:800;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;--t396-shadow-text-opacity:100%;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));-webkit-transform:rotate(9deg);-moz-transform:rotate(9deg);transform:rotate(9deg);}@media screen and (max-width:1199px){#rec1581518131 .tn-elem[data-elem-id="1769719409014000035"]{display:table;top:284px;;left:calc(50% - 160px + 201px);;width:110px;height:auto;}#rec1581518131 .tn-elem[data-elem-id="1769719409014000035"] .tn-atom{font-size:12px;background-size:cover;}}</style> <div class='t396'> <div class="t396__artboard" data-artboard-recid="1581518131" data-artboard-screens="320,1200" data-artboard-height="700" data-artboard-valign="center" data-artboard-upscale="grid" data-artboard-height-res-320="450"> <div class="t396__carrier" data-artboard-recid="1581518131"></div> <div class="t396__filter" data-artboard-recid="1581518131"></div> <div class='t396__elem tn-elem tn-elem__15815181311769719409014000030' data-elem-id='1769719409014000030' data-elem-type='shape' data-field-top-value="96" data-field-left-value="342" data-field-height-value="512" data-field-width-value="512" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-top-res-320-value="108" data-field-left-res-320-value="30" data-field-height-res-320-value="253" data-field-width-res-320-value="253"> <div class='tn-atom'> </div> </div> <div class='t396__elem tn-elem tn-elem__15815181311769719409014000031' data-elem-id='1769719409014000031' data-elem-type='image' data-field-top-value="94" data-field-left-value="342" data-field-height-value="514" data-field-width-value="522" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-filewidth-value="864" data-field-fileheight-value="850" data-field-widthmode-value="fixed" data-field-heightmode-value="hug" data-field-top-res-320-value="103" data-field-left-res-320-value="29" data-field-height-res-320-value="258" data-field-width-res-320-value="262" data-field-widthmode-res-320-value="fixed"> <div class='tn-atom'> <img class='tn-atom__img t-img' data-original='https://static.tildacdn.com/tild3865-6230-4261-b761-333665366166/Group_2087330162_1.svg'
src='https://static.tildacdn.com/tild3865-6230-4261-b761-333665366166/Group_2087330162_1.svg'
alt='' imgfield='tn_img_1769719409014000031'
/> </div> </div> <div class='t396__elem tn-elem tn-elem__15815181311769761954365' data-elem-id='1769761954365' data-elem-type='image' data-field-top-value="433" data-field-left-value="630" data-field-height-value="92" data-field-width-value="205" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-filewidth-value="282" data-field-fileheight-value="127" data-field-heightmode-value="hug" data-field-top-res-320-value="270" data-field-left-res-320-value="163" data-field-height-res-320-value="69" data-field-width-res-320-value="153"> <div class='tn-atom'> <img class='tn-atom__img t-img' data-original='https://static.tildacdn.com/tild6563-3061-4838-b739-343863613636/2.svg'
src='https://static.tildacdn.com/tild6563-3061-4838-b739-343863613636/2.svg'
alt='' imgfield='tn_img_1769761954365'
/> </div> </div> <div class='t396__elem tn-elem tn-elem__15815181311769719409014000032' data-elem-id='1769719409014000032' data-elem-type='button' data-field-top-value="516" data-field-left-value="479" data-field-height-value="37" data-field-width-value="241" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-textfit-value="fixedsize" data-field-widthmode-value="fixed" data-field-heightmode-value="fixed" data-field-fontsize-value="14" data-field-top-res-320-value="325" data-field-left-res-320-value="40"> <a class='tn-atom' href="#bottom-form"> <div class='tn-atom__button-content'> <span class="tn-atom__button-text">Приобрести курс со скидкой</span> </div> <span class="tn-atom__button-border"></span> </a> </div> <div class='t396__elem tn-elem close_id tn-elem__15815181311769719409014000033' data-elem-id='1769719409014000033' data-elem-type='button' data-field-top-value="126" data-field-left-value="810" data-field-height-value="55" data-field-width-value="55" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-textfit-value="fixedsize" data-field-widthmode-value="fixed" data-field-heightmode-value="fixed" data-field-fontsize-value="14" data-field-top-res-320-value="117" data-field-left-res-320-value="274" data-field-height-res-320-value="34" data-field-width-res-320-value="34" data-field-widthmode-res-320-value="fixed" data-field-heightmode-res-320-value="fixed"> <a class='tn-atom' href="#popup-close"> <div class='tn-atom__button-content'> <span class="tn-atom__button-text"></span> </div> <span class="tn-atom__button-border"></span> </a> </div> <div class='t396__elem tn-elem popup-oto-date tn-elem__15815181311769719409014000035' data-elem-id='1769719409014000035' data-elem-type='text' data-field-top-value="456" data-field-left-value="680" data-field-height-value="32" data-field-width-value="136" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-textfit-value="fixedsize" data-field-widthmode-value="fixed" data-field-fontsize-value="16" data-field-top-res-320-value="284" data-field-left-res-320-value="201" data-field-width-res-320-value="110" data-field-widthmode-res-320-value="fixed" data-field-fontsize-res-320-value="12"> <div class='tn-atom'field='tn_text_1769719409014000035'>Только сегодня</div> </div> </div> </div> <script>t_onReady(function() {t_onFuncLoad('t396_init',function() {t396_init('1581518131');});});</script> <!-- /T396 --> </div> <div id="rec1593614351" class="r t-rec" style=" " data-animationappear="off" data-record-type="1093"> <!-- t1093 --> <div class="t1093"> <div class="t-popup " data-popup-disable-lock-scroll="y" data-popup-open-on-page-load="y" data-popup-close-on-open-another="true" data-anim="fadein" data-anim-timeout="0.3" data-tooltip-hook="#november-friday-65-popup" data-popup-rec-ids="rec1593614311"
role="dialog"
aria-modal="true"
tabindex="-1"> <div class="t-popup__container t-width t-valign_middle"> </div> </div> </div> <style>#recrec1593614311[data-record-type="396"],#recrec1593614311[data-parenttplid="396"]{display:none;}.t1093 .t-popup #recrec1593614311[data-record-type="396"],.t1093 .t-popup #recrec1593614311[data-parenttplid="396"]{display:block;}</style> <style>#rec1593614351 .t1093 .t-popup.t-popup-anim-fadein .t-popup__container{transition-timing-function:ease-in-out;}</style> <script>t_onReady(function() {t_onFuncLoad('t1093__init',function() {t1093__init('1593614351');});t_onFuncLoad('t1093__initPopup',function() {t1093__initPopup('1593614351');});});</script> </div> <div id="rec1593614311" class="r t-rec" style=" " data-animationappear="off" data-record-type="396"> <!-- T396 --> <style>#rec1593614311 .t396__artboard {height:700px;}#rec1593614311 .t396__filter {height:700px;}#rec1593614311 .t396__carrier{height:700px;background-position:center center;background-attachment:scroll;background-size:cover;background-repeat:no-repeat;}@media screen and (max-width:1199px) {#rec1593614311 .t396__artboard,#rec1593614311 .t396__filter,#rec1593614311 .t396__carrier {height:450px;}#rec1593614311 .t396__filter {}#rec1593614311 .t396__carrier {background-attachment:scroll;}}#rec1593614311 .tn-elem[data-elem-id="1761993664150"]{z-index:3;top:94px;;left:calc(50% - 600px + 343px);;width:512px;height:512px;}#rec1593614311 .tn-elem[data-elem-id="1761993664150"] .tn-atom{border-radius:3000px 3000px 3000px 3000px;background-color:#ffffff;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);box-shadow:0px 0px 90px 0px rgba(255,74,188,0.43);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;}@media screen and (max-width:1199px){#rec1593614311 .tn-elem[data-elem-id="1761993664150"]{display:table;top:98px;;left:calc(50% - 160px + 34px);;width:253px;height:253px;}}#rec1593614311 .tn-elem[data-elem-id="1761993442794"]{z-index:3;top:92px;;left:calc(50% - 600px + 343px);;width:522px;height:auto;}#rec1593614311 .tn-elem[data-elem-id="1761993442794"] .tn-atom{border-radius:0px 0px 0px 0px;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;}#rec1593614311 .tn-elem[data-elem-id="1761993442794"] .tn-atom__img{border-radius:0px 0px 0px 0px;object-position:center center;}@media screen and (max-width:1199px){#rec1593614311 .tn-elem[data-elem-id="1761993442794"]{display:table;top:93px;;left:calc(50% - 160px + 33px);;width:262px;height:auto;}}#rec1593614311 .tn-elem[data-elem-id="176199416253369280"]{color:#ffffff;text-align:center;z-index:3;top:515px;;left:calc(50% - 600px + 480px);;width:241px;height:37px;}#rec1593614311 .tn-elem[data-elem-id="176199416253369280"] .tn-atom{color:#ffffff;font-size:14px;font-family:var(--t-text-font,Arial);line-height:1.55;font-weight:700;border-radius:30px 30px 30px 30px;background-position:center center;--t396-speedhover:0.1s;transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;--t396-bgcolor-color:#ff4abc;--t396-bgcolor-image:none;--t396-bgcolor-hover-color:#ff0f4f;--t396-bgcolor-hover-image:none;background-color:var(--t396-bgcolor-color,transparent);-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;}#rec1593614311 .tn-elem[data-elem-id="176199416253369280"] .tn-atom::after{display:none;}#rec1593614311 .tn-elem[data-elem-id="176199416253369280"] .tn-atom .tn-atom__button-content{column-gap:10px;padding:0px 0px 0px 0px;}#rec1593614311 .tn-elem[data-elem-id="176199416253369280"] .tn-atom .tn-atom__button-text{transition:color var(--t396-speedhover,0s) ease-in-out;color:#ffffff;}#rec1593614311 .tn-elem[data-elem-id="176199416253369280"] .tn-atom .tn-atom__button-border::before{display:none;}#rec1593614311 .tn-elem[data-elem-id="176199416253369280"] .tn-atom .tn-atom__button-border::after{display:none;}@media (hover),(min-width:0\0){#rec1593614311 .tn-elem[data-elem-id="176199416253369280"] .tn-atom:hover::after{opacity:0;}#rec1593614311 .tn-elem[data-elem-id="176199416253369280"] .tn-atom:hover{animation-name:none;background-color:var(--t396-bgcolor-hover-color,var(--t396-bgcolor-color,transparent));}}@media screen and (max-width:1199px){#rec1593614311 .tn-elem[data-elem-id="176199416253369280"]{display:block;top:315px;;left:calc(50% - 160px + 40px);;height:auto;}#rec1593614311 .tn-elem[data-elem-id="176199416253369280"] .tn-atom{background-color:var(--t396-bgcolor-color,transparent);}#rec1593614311 .tn-elem[data-elem-id="176199416253369280"] .tn-atom::after{display:none;}#rec1593614311 .tn-elem[data-elem-id="176199416253369280"] .tn-atom .tn-atom__button-border::before{display:none;}#rec1593614311 .tn-elem[data-elem-id="176199416253369280"] .tn-atom .tn-atom__button-border::after{display:none;}@media (hover),(min-width:0\0){#rec1593614311 .tn-elem[data-elem-id="176199416253369280"] .tn-atom:hover::after{opacity:0;}#rec1593614311 .tn-elem[data-elem-id="176199416253369280"] .tn-atom:hover{animation-name:none;background-color:var(--t396-bgcolor-hover-color,var(--t396-bgcolor-color,transparent));}}}#rec1593614311 .tn-elem[data-elem-id="176199987864281440"]{text-align:center;z-index:3;top:125px;;left:calc(50% - 600px + 811px);;width:55px;height:55px;}#rec1593614311 .tn-elem[data-elem-id="176199987864281440"] .tn-atom{color:transparent;font-size:14px;font-family:var(--t-text-font,Arial);line-height:1.55;font-weight:700;border-radius:30px 30px 30px 30px;background-position:center center;--t396-speedhover:0.1s;transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;--t396-bgcolor-hover-color:rgba(0,0,0,0.05);--t396-bgcolor-hover-image:none;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;}#rec1593614311 .tn-elem[data-elem-id="176199987864281440"] .tn-atom::after{display:none;}#rec1593614311 .tn-elem[data-elem-id="176199987864281440"] .tn-atom .tn-atom__button-content{column-gap:10px;padding:0px 0px 0px 0px;}#rec1593614311 .tn-elem[data-elem-id="176199987864281440"] .tn-atom .tn-atom__button-text{transition:color var(--t396-speedhover,0s) ease-in-out;color:transparent;}#rec1593614311 .tn-elem[data-elem-id="176199987864281440"] .tn-atom .tn-atom__button-border::before{display:none;}#rec1593614311 .tn-elem[data-elem-id="176199987864281440"] .tn-atom .tn-atom__button-border::after{display:none;}@media (hover),(min-width:0\0){#rec1593614311 .tn-elem[data-elem-id="176199987864281440"] .tn-atom:hover::after{opacity:0;}#rec1593614311 .tn-elem[data-elem-id="176199987864281440"] .tn-atom:hover{animation-name:none;background-color:var(--t396-bgcolor-hover-color,var(--t396-bgcolor-color,transparent));}}@media screen and (max-width:1199px){#rec1593614311 .tn-elem[data-elem-id="176199987864281440"]{display:block;top:107px;;left:calc(50% - 160px + 264px);;width:34px;height:auto;}#rec1593614311 .tn-elem[data-elem-id="176199987864281440"] .tn-atom::after{display:none;}#rec1593614311 .tn-elem[data-elem-id="176199987864281440"] .tn-atom .tn-atom__button-border::before{display:none;}#rec1593614311 .tn-elem[data-elem-id="176199987864281440"] .tn-atom .tn-atom__button-border::after{display:none;}@media (hover),(min-width:0\0){#rec1593614311 .tn-elem[data-elem-id="176199987864281440"] .tn-atom:hover::after{opacity:0;}#rec1593614311 .tn-elem[data-elem-id="176199987864281440"] .tn-atom:hover{animation-name:none;background-color:var(--t396-bgcolor-hover-color,var(--t396-bgcolor-color,transparent));}}}#rec1593614311 .tn-elem[data-elem-id="1769764927783000002"]{z-index:3;top:438px;;left:calc(50% - 600px + 634px);;width:205px;height:auto;}#rec1593614311 .tn-elem[data-elem-id="1769764927783000002"] .tn-atom{border-radius:0px 0px 0px 0px;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;}#rec1593614311 .tn-elem[data-elem-id="1769764927783000002"] .tn-atom__img{border-radius:0px 0px 0px 0px;object-position:center center;}@media screen and (max-width:1199px){#rec1593614311 .tn-elem[data-elem-id="1769764927783000002"]{display:table;top:251px;;left:calc(50% - 160px + 160px);;width:153px;height:auto;}#rec1593614311 .tn-elem[data-elem-id="1769764927783000002"] .tn-atom{background-size:cover;opacity:1;}}#rec1593614311 .tn-elem[data-elem-id="1769764927783000003"]{color:#000000;z-index:3;top:461px;;left:calc(50% - 600px + 684px);;width:136px;height:32px;}#rec1593614311 .tn-elem[data-elem-id="1769764927783000003"] .tn-atom{vertical-align:middle;color:#000000;font-size:16px;font-family:var(--t-text-font,Arial);line-height:1;font-weight:800;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;--t396-shadow-text-opacity:100%;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));-webkit-transform:rotate(9deg);-moz-transform:rotate(9deg);transform:rotate(9deg);}@media screen and (max-width:1199px){#rec1593614311 .tn-elem[data-elem-id="1769764927783000003"]{display:table;top:265px;;left:calc(50% - 160px + 198px);;width:110px;height:auto;}#rec1593614311 .tn-elem[data-elem-id="1769764927783000003"] .tn-atom{font-size:12px;background-size:cover;}}</style> <div class='t396'> <div class="t396__artboard" data-artboard-recid="1593614311" data-artboard-screens="320,1200" data-artboard-height="700" data-artboard-valign="center" data-artboard-upscale="grid" data-artboard-height-res-320="450"> <div class="t396__carrier" data-artboard-recid="1593614311"></div> <div class="t396__filter" data-artboard-recid="1593614311"></div> <div class='t396__elem tn-elem tn-elem__15936143111761993664150' data-elem-id='1761993664150' data-elem-type='shape' data-field-top-value="94" data-field-left-value="343" data-field-height-value="512" data-field-width-value="512" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-top-res-320-value="98" data-field-left-res-320-value="34" data-field-height-res-320-value="253" data-field-width-res-320-value="253"> <div class='tn-atom'> </div> </div> <div class='t396__elem tn-elem tn-elem__15936143111761993442794' data-elem-id='1761993442794' data-elem-type='image' data-field-top-value="92" data-field-left-value="343" data-field-height-value="514" data-field-width-value="522" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-filewidth-value="864" data-field-fileheight-value="850" data-field-widthmode-value="fixed" data-field-heightmode-value="hug" data-field-top-res-320-value="93" data-field-left-res-320-value="33" data-field-height-res-320-value="258" data-field-width-res-320-value="262" data-field-widthmode-res-320-value="fixed"> <div class='tn-atom'> <img class='tn-atom__img t-img' data-original='https://static.tildacdn.com/tild3132-3336-4536-b031-643837386433/CM-65.svg'
src='https://static.tildacdn.com/tild3132-3336-4536-b031-643837386433/CM-65.svg'
alt='' imgfield='tn_img_1761993442794'
/> </div> </div> <div class='t396__elem tn-elem tn-elem__1593614311176199416253369280' data-elem-id='176199416253369280' data-elem-type='button' data-field-top-value="515" data-field-left-value="480" data-field-height-value="37" data-field-width-value="241" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-textfit-value="fixedsize" data-field-widthmode-value="fixed" data-field-heightmode-value="fixed" data-field-fontsize-value="14" data-field-top-res-320-value="315" data-field-left-res-320-value="40"> <a class='tn-atom' href="#bottom-form"> <div class='tn-atom__button-content'> <span class="tn-atom__button-text">Приобрести курс со скидкой</span> </div> <span class="tn-atom__button-border"></span> </a> </div> <div class='t396__elem tn-elem close_id tn-elem__1593614311176199987864281440' data-elem-id='176199987864281440' data-elem-type='button' data-field-top-value="125" data-field-left-value="811" data-field-height-value="55" data-field-width-value="55" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-textfit-value="fixedsize" data-field-widthmode-value="fixed" data-field-heightmode-value="fixed" data-field-fontsize-value="14" data-field-top-res-320-value="107" data-field-left-res-320-value="264" data-field-height-res-320-value="34" data-field-width-res-320-value="34" data-field-widthmode-res-320-value="fixed" data-field-heightmode-res-320-value="fixed"> <a class='tn-atom' href="#popup-close"> <div class='tn-atom__button-content'> <span class="tn-atom__button-text"></span> </div> <span class="tn-atom__button-border"></span> </a> </div> <div class='t396__elem tn-elem tn-elem__15936143111769764927783000002' data-elem-id='1769764927783000002' data-elem-type='image' data-field-top-value="438" data-field-left-value="634" data-field-height-value="92" data-field-width-value="205" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-filewidth-value="282" data-field-fileheight-value="127" data-field-heightmode-value="hug" data-field-top-res-320-value="251" data-field-left-res-320-value="160" data-field-height-res-320-value="69" data-field-width-res-320-value="153"> <div class='tn-atom'> <img class='tn-atom__img t-img' data-original='https://static.tildacdn.com/tild6563-3061-4838-b739-343863613636/2.svg'
src='https://static.tildacdn.com/tild6563-3061-4838-b739-343863613636/2.svg'
alt='' imgfield='tn_img_1769764927783000002'
/> </div> </div> <div class='t396__elem tn-elem popup-oto-date tn-elem__15936143111769764927783000003' data-elem-id='1769764927783000003' data-elem-type='text' data-field-top-value="461" data-field-left-value="684" data-field-height-value="32" data-field-width-value="136" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-textfit-value="fixedsize" data-field-widthmode-value="fixed" data-field-fontsize-value="16" data-field-top-res-320-value="265" data-field-left-res-320-value="198" data-field-width-res-320-value="110" data-field-widthmode-res-320-value="fixed" data-field-fontsize-res-320-value="12"> <div class='tn-atom'field='tn_text_1769764927783000003'>Только сегодня</div> </div> </div> </div> <script>t_onReady(function() {t_onFuncLoad('t396_init',function() {t396_init('1593614311');});});</script> <!-- /T396 --> </div> <div id="rec1922403031" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <script>
// Decide which popup is active right now.
(function computeActivePopup() {
const PRIMARY_POPUP_HOOK = "#blackfriday-popup";
const SEASONAL_POPUP_HOOK = "#november-friday-popup";
const PRIMARY_SPECIAL_POPUP_HOOK = "#blackfriday-65-popup";
const SEASONAL_SPECIAL_POPUP_HOOK = "#november-friday-65-popup";
const PRIMARY_POPUP_REC_ID = "rec1588996901";
const SEASONAL_POPUP_REC_ID = "rec1581518131";
const PRIMARY_SPECIAL_POPUP_REC_ID = "rec1593592241";
const SEASONAL_SPECIAL_POPUP_REC_ID = "rec1593614311";
const CLOSED_KEY = "popup_closed_this_session";
const SHOWN_KEY = "popup_shown_this_session";
const LEGACY_REC_IDS = [
"rec1509076161",
"rec1509076471",
];
const PREHIDE_STYLE_ID = "popup-prehide-style";
function injectPrehideStyles() {
if (document.getElementById(PREHIDE_STYLE_ID)) return;
const recIds = [
PRIMARY_POPUP_REC_ID,
SEASONAL_POPUP_REC_ID,
PRIMARY_SPECIAL_POPUP_REC_ID,
SEASONAL_SPECIAL_POPUP_REC_ID,
].concat(LEGACY_REC_IDS);
const style = document.createElement("style");
style.id = PREHIDE_STYLE_ID;
style.textContent =
recIds.map(function (id) {
return "#" + id;
}).join(",\n") + " { display: none !important; }";
const head =
document.head ||
document.getElementsByTagName("head")[0];
if (head) {
head.appendChild(style);
} else if (document.documentElement) {
document.documentElement.appendChild(style);
}
}
// Prevent legacy popup logic from showing stale blocks.
window.__DISABLE_LEGACY_POPUPS = true;
injectPrehideStyles();
// normalize a path or url to lowercase pathname without trailing slash
const normPath =
window.__NORM_PATH ||
function normPath(p) {
try {
if (/^https?:\/\//i.test(p)) p = new URL(p).pathname;
} catch (_) {}
p = p.split("#")[0].split("?")[0];
if (!p.startsWith("/")) p = "/" + p;
if (p.length > 1 && p.endsWith("/")) p = p.slice(0, -1);
return p.toLowerCase();
};
window.__NORM_PATH = normPath;
const BLOCKED_PATHS = new Set(
[
"/data-analyst",
"/systems-analyst",
"/business-analyst",
"/data-scientist",
"/analytics-for-managers",
"/analytics-director",
"/sql-developer",
"/scorm",
"/corp-sale",
"/it-specialist-grant",
"/grant-hrdirector",
"/b2b-scorm",
"/qa-grant",
"/frontend-cpa",
"/marketplace-web-new",
"/ai-integration",
"/infl-operations-director",
"/start-for-everyone",
"/start-rules",
"/ai-for-life",
"/platform-special",
"/offer",
"/offer-old-04-07-2022",
"/offer-old-06-06-2022",
"/offer-old-12-09-2021",
"/offer-old-09-11-2021",
"/offer-3",
"/offer-yl",
"/offer-yl-info",
"/offer-ny-2023",
"/offer-psychology",
"/ru/offer-yl",
"/offer-eng",
"/offer-4",
"/kz/offer",
"/kz/offer-yl",
"/infl-client-services-director",
"/short-executive-director",
"/referral",
"/info",
].map(normPath),
);
const SPECIAL_PATHS = new Set(
[
"/context-unreal-engine",
"/context-it-specialist",
"/context-qa-autotester",
"/context-java-razrabotchik",
"/context-python",
"/context-fullstack-python",
"/context-frontend",
].map(normPath),
);
const UTM_BLOCKED_PATHS = new Set(
[
"/ruchnoe-testirovanie-po",
"/qa-autotester",
"/autotester-python",
"/python",
"/fullstack-python",
"/frontend",
"/it-specialist",
"/fullstack-razrabotchik-javascript",
"/it-director",
"/react",
"/product-owner",
"/team-lead-it",
"/1c-developer",
"/cybersecurity-specialist",
"/devops-engineer",
"/machine-learning",
"/java-razrabotchik",
"/ios-developer",
"/android-developer",
"/unreal-engine",
"/unity-developer",
].map(normPath),
);
function getUtmSource() {
try {
return new URLSearchParams(
String(window.location.search || "").toLowerCase(),
).get("utm_source");
} catch (_) {
return null;
}
}
const now = new Date();
const windowStart = new Date(2026, 0, 26, 0, 0, 0, 0); // EXPECT: Jan 26, 2026 00:00:00 (local time)
const windowEnd = new Date(2026, 1, 2, 0, 0, 0, 0); // EXPECT: Feb 2, 2026 00:00:00 (local time)
const isWindowActive =
now >= windowStart && now < windowEnd; // EXPECT: true only from Jan 26 (inclusive) until Feb 2 (exclusive)
const isSpecialPath = SPECIAL_PATHS.has(
normPath(location.pathname),
);
const isBlacklistedPath = BLOCKED_PATHS.has(
normPath(location.pathname),
);
const utmSource = (getUtmSource() || "").toLowerCase();
const isUtmBlockedSource =
utmSource === "google" || utmSource === "yandex";
const isUtmBlockedPath =
isUtmBlockedSource &&
UTM_BLOCKED_PATHS.has(normPath(location.pathname));
const shouldDisablePopups =
isBlacklistedPath || isUtmBlockedPath;
const allPopups = [
{ hook: PRIMARY_POPUP_HOOK, recId: PRIMARY_POPUP_REC_ID },
{ hook: SEASONAL_POPUP_HOOK, recId: SEASONAL_POPUP_REC_ID },
{ hook: PRIMARY_SPECIAL_POPUP_HOOK, recId: PRIMARY_SPECIAL_POPUP_REC_ID },
{ hook: SEASONAL_SPECIAL_POPUP_HOOK, recId: SEASONAL_SPECIAL_POPUP_REC_ID },
];
function prehidePopupShells() {
allPopups.forEach(function (entry) {
const nodes = document.querySelectorAll(
'.t-popup[data-tooltip-hook="' + entry.hook + '"]',
);
nodes.forEach(function (popup) {
popup.removeAttribute("data-popup-open-on-page-load");
popup.setAttribute("aria-hidden", "true");
popup.style.display = "none";
popup.classList.remove("t-popup_show");
popup.classList.remove("t-popup_opened");
});
});
}
prehidePopupShells();
// Legacy blocks that should never render on this page.
const ALWAYS_REMOVE_REC_IDS = LEGACY_REC_IDS.slice();
// Rec blocks that should be fully removed when popups are not needed.
const REC_IDS_TO_REMOVE = [
"rec1581518121",
"rec1581518131",
"rec1593614351",
"rec1593614311",
"rec1589064231",
"rec1588996901",
"rec1593591871",
"rec1593592241",
];
function removeRecsById(ids) {
ids.forEach(function (id) {
var el = document.getElementById(id);
if (el && el.parentNode) {
el.parentNode.removeChild(el);
console.log("[popup] rec removed:", id);
}
});
}
function removePopupRecsNow() {
removeRecsById(REC_IDS_TO_REMOVE);
}
function removeAlwaysRecsNow() {
removeRecsById(ALWAYS_REMOVE_REC_IDS);
}
let alwaysRecObserver;
function startAlwaysRecObserver() {
if (alwaysRecObserver) return;
alwaysRecObserver = new MutationObserver(function () {
removeAlwaysRecsNow();
});
alwaysRecObserver.observe(document.documentElement, {
childList: true,
subtree: true,
});
}
let popupRecObserver;
function startPopupRecObserver() {
if (popupRecObserver) return;
popupRecObserver = new MutationObserver(function () {
removePopupRecsNow();
});
popupRecObserver.observe(document.documentElement, {
childList: true,
subtree: true,
});
}
// Expose helper that is safe to call before DOM is ready.
window.__REMOVE_POPUP_RECS = function () {
if (document.readyState === "loading") {
document.addEventListener(
"DOMContentLoaded",
removePopupRecsNow,
{ once: true },
);
document.addEventListener(
"DOMContentLoaded",
removeAlwaysRecsNow,
{ once: true },
);
document.addEventListener(
"DOMContentLoaded",
startPopupRecObserver,
{ once: true },
);
document.addEventListener(
"DOMContentLoaded",
startAlwaysRecObserver,
{ once: true },
);
} else {
removePopupRecsNow();
removeAlwaysRecsNow();
startPopupRecObserver();
startAlwaysRecObserver();
}
};
window.__REMOVE_ALWAYS_POPUP_RECS = function () {
if (document.readyState === "loading") {
document.addEventListener(
"DOMContentLoaded",
removeAlwaysRecsNow,
{ once: true },
);
document.addEventListener(
"DOMContentLoaded",
startAlwaysRecObserver,
{ once: true },
);
} else {
removeAlwaysRecsNow();
startAlwaysRecObserver();
}
};
// Remove legacy popups immediately and keep watching for late inserts.
if (document.documentElement) {
removeAlwaysRecsNow();
startAlwaysRecObserver();
}
window.__POPUP_CLOSED =
sessionStorage.getItem(CLOSED_KEY) === "1";
window.__POPUP_SHOWN =
sessionStorage.getItem(SHOWN_KEY) === "1";
window.__POPUPS_DISABLED = shouldDisablePopups;
let activeHook = PRIMARY_POPUP_HOOK;
let activeRecId = PRIMARY_POPUP_REC_ID;
// If the path is blacklisted, disable all popups immediately.
if (shouldDisablePopups) {
window.__POPUP_CLOSED = true;
window.__POPUP_SHOWN = true;
sessionStorage.setItem(CLOSED_KEY, "1");
sessionStorage.setItem(SHOWN_KEY, "1");
activeHook = null;
activeRecId = null;
console.log(
"[popup] popups disabled via blacklist/utm check",
{
path: location.pathname,
utmSource,
},
);
}
if (!shouldDisablePopups && isSpecialPath) {
if (isWindowActive) {
activeHook = SEASONAL_SPECIAL_POPUP_HOOK;
activeRecId = SEASONAL_SPECIAL_POPUP_REC_ID;
} else {
activeHook = PRIMARY_SPECIAL_POPUP_HOOK;
activeRecId = PRIMARY_SPECIAL_POPUP_REC_ID;
}
} else if (!shouldDisablePopups && isWindowActive) {
activeHook = SEASONAL_POPUP_HOOK;
activeRecId = SEASONAL_POPUP_REC_ID;
}
window.__ACTIVE_POPUP_HOOK = activeHook;
window.__ACTIVE_POPUP_REC_ID = activeRecId;
window.__ALL_POPUPS = allPopups;
console.log(
"[popup] active hook decided:",
window.__ACTIVE_POPUP_HOOK,
);
// expose helper to mark closed from any handler
window.__MARK_POPUP_CLOSED = function () {
sessionStorage.setItem(CLOSED_KEY, "1");
window.__POPUP_CLOSED = true;
console.log(
"[popup] auto-open disabled for this session",
);
};
// expose helper to mark shown once per session
window.__MARK_POPUP_SHOWN = function () {
sessionStorage.setItem(SHOWN_KEY, "1");
window.__POPUP_SHOWN = true;
console.log(
"[popup] popup marked as shown for this session",
);
};
// utility to force-hide all popups (used whenever we skip)
window.__HIDE_ALL_POPUPS = function () {
const popups =
Array.isArray(window.__ALL_POPUPS) &&
window.__ALL_POPUPS.length
? window.__ALL_POPUPS
: [
{ hook: PRIMARY_POPUP_HOOK, recId: PRIMARY_POPUP_REC_ID },
{ hook: SEASONAL_POPUP_HOOK, recId: SEASONAL_POPUP_REC_ID },
];
popups.forEach(function (entry) {
const p = document.querySelector(
'.t-popup[data-tooltip-hook="' + entry.hook + '"]',
);
if (!p) return;
p.removeAttribute("data-popup-open-on-page-load");
p.setAttribute("aria-hidden", "true");
p.style.display = "none";
p.classList.remove("t-popup_show");
p.classList.remove("t-popup_opened");
if (p.parentElement && p.parentElement.id) {
const recEl = document.getElementById(
p.parentElement.id,
);
if (recEl)
recEl.style.setProperty(
"display",
"none",
"important",
);
}
});
popups.forEach(function (entry) {
const rec = document.getElementById(entry.recId);
if (rec)
rec.style.setProperty("display", "none", "important");
});
};
// Only fully remove popup recs when popups are explicitly disabled for this path/session.
if (window.__POPUPS_DISABLED) {
window.__REMOVE_POPUP_RECS();
}
})();
</script> <script>
// Black Friday popup: no auto-open on load, keep close behavior and guards.
(function BlackFridayPopup() {
"use strict";
const PRIMARY_POPUP_HOOK = "#blackfriday-popup";
const PRIMARY_POPUP_REC_ID = "rec1588996901";
const SHOWN_COOKIE_NAME = "bf_popup_shown";
const EVT_NS = ".bfclose";
// local midnight at Dec 1 of 2025
const POPUP_EXPIRY_AT = new Date(2026, 1, 1, 0, 0, 0, 0); // Feb 1, 2026 00:00:00
// normalize a path or url to lowercase pathname without trailing slash
const normPath =
window.__NORM_PATH ||
function normPath(p) {
try {
if (/^https?:\/\//i.test(p)) p = new URL(p).pathname;
} catch (_) {}
p = p.split("#")[0].split("?")[0];
if (!p.startsWith("/")) p = "/" + p;
if (p.length > 1 && p.endsWith("/")) p = p.slice(0, -1);
return p.toLowerCase();
};
// blacklist as paths
const BLOCKED_PATHS = new Set(
[
"/data-analyst",
"/systems-analyst",
"/business-analyst",
"/data-scientist",
"/analytics-for-managers",
"/analytics-director",
"/sql-developer",
"/scorm",
"/corp-sale",
"/it-specialist-grant",
"/grant-hrdirector",
"/b2b-scorm",
"/frontend-cpa",
].map(normPath),
);
function allowed() {
const nowOk = Date.now() < +POPUP_EXPIRY_AT;
const pathOk =
!BLOCKED_PATHS.has(normPath(location.pathname)) &&
!window.__POPUPS_DISABLED;
console.log("[popup] status:", nowOk && pathOk);
return nowOk && pathOk;
}
$(function () {
// If some other popup is active, skip BF logic entirely.
if (
window.__ACTIVE_POPUP_HOOK &&
window.__ACTIVE_POPUP_HOOK !== PRIMARY_POPUP_HOOK
) {
console.log(
"[popup] BF logic skipped; another popup is active:",
window.__ACTIVE_POPUP_HOOK,
);
return;
}
const $popup = $(
'.t-popup[data-tooltip-hook="' +
PRIMARY_POPUP_HOOK +
'"]',
);
if (!$popup.length) {
console.warn("[popup] BF popup not found");
return;
}
if (!allowed() || getCookie(SHOWN_COOKIE_NAME)) {
$popup.hide().attr("aria-hidden", "true");
console.log(
"[popup] BF hidden (blocked or cookie present)",
);
return;
}
// Explicitly disable load-time opening.
$popup.hide().attr("aria-hidden", "true");
console.log("[popup] BF auto-open disabled on load");
// a11y attributes for the close control if present
const $ctrl = $popup
.find(".close_id .tn-atom, .close_id")
.first();
if ($ctrl.length)
$ctrl.attr({
role: "button",
tabindex: "0",
"aria-label": "Close",
});
// close on click via delegated handler
$(document)
.off("click" + EVT_NS)
.on(
"click" + EVT_NS,
".close_id .tn-atom, .close_id",
function (e) {
if (!$(this).closest($popup).length) return; // ensure it belongs to this popup
e.preventDefault();
e.stopPropagation();
$popup.stop(true, true).fadeOut(200, function () {
$popup
.attr("aria-hidden", "true")
.css("display", "none");
});
if (
typeof window.__MARK_POPUP_CLOSED === "function"
)
window.__MARK_POPUP_CLOSED();
console.log("popup closed", $popup);
},
);
// close on Enter, Space, or Escape
$(document)
.off("keydown" + EVT_NS)
.on("keydown" + EVT_NS, function (e) {
const isActivator =
document.activeElement &&
($(document.activeElement).is(
".close_id .tn-atom, .close_id",
) ||
$(document.activeElement).closest(
".close_id .tn-atom, .close_id",
).length);
if (!isActivator && e.key !== "Escape") return;
if (
e.key === "Enter" ||
e.key === " " ||
e.key === "Escape"
) {
e.preventDefault();
$popup.stop(true, true).fadeOut(200, function () {
$popup
.attr("aria-hidden", "true")
.css("display", "none");
});
if (
typeof window.__MARK_POPUP_CLOSED === "function"
)
window.__MARK_POPUP_CLOSED();
}
});
});
})();
</script> <script>
// Switcher: computes active popup and wires non-URL open/close handlers.
(function bannerSwitcher() {
const PRIMARY_POPUP_HOOK = "#blackfriday-popup";
const SEASONAL_POPUP_HOOK = "#november-friday-popup";
const PRIMARY_POPUP_REC_ID = "rec1588996901";
const SEASONAL_POPUP_REC_ID = "rec1581518131";
const POPUP_DEFINITIONS =
Array.isArray(window.__ALL_POPUPS) &&
window.__ALL_POPUPS.length
? window.__ALL_POPUPS
: [
{ hook: PRIMARY_POPUP_HOOK, recId: PRIMARY_POPUP_REC_ID },
{ hook: SEASONAL_POPUP_HOOK, recId: SEASONAL_POPUP_REC_ID },
];
const ACTIVE_POPUP_HOOK = window.__POPUPS_DISABLED
? null
: window.__ACTIVE_POPUP_HOOK || PRIMARY_POPUP_HOOK;
const POPUP_CLOSE_HASHES = new Set([
"#popup-close",
"#popupclose",
]);
const CLOSE_FADE_MS = 220;
const POPUP_LINK_HOOKS = new Set(
POPUP_DEFINITIONS.map(function (p) {
return String(p.hook || "").toLowerCase();
}),
);
let observer;
function getPopup(hook) {
return document.querySelector(
'.t-popup[data-tooltip-hook="' + hook + '"]',
);
}
function hasVisiblePopup(popupEl) {
if (!popupEl) return false;
if (popupEl.classList.contains("t-popup_show")) return true;
return popupEl.style.display !== "none";
}
function isManagedPopupElement(el) {
if (!el || !el.closest) return false;
const popupRoot = el.closest(".t-popup");
if (!popupRoot) return false;
const hook = String(
popupRoot.getAttribute("data-tooltip-hook") || "",
).toLowerCase();
return POPUP_LINK_HOOKS.has(hook);
}
function preparePopups(activeHook) {
const activeEntry = POPUP_DEFINITIONS.find(function (p) {
return p.hook === activeHook;
});
const others = POPUP_DEFINITIONS.filter(function (p) {
return p.hook !== activeHook;
});
if (window.__POPUP_SHOWN || window.__POPUP_CLOSED) {
console.log(
"[popup] toggle aborted; already shown/closed this session",
);
if (typeof window.__HIDE_ALL_POPUPS === "function")
window.__HIDE_ALL_POPUPS();
return;
}
others.forEach(function (entry) {
const inactive = getPopup(entry.hook);
if (inactive) {
inactive.removeAttribute(
"data-popup-open-on-page-load",
);
inactive.classList.remove("t-popup_show");
inactive.classList.remove("t-popup_opened");
inactive.setAttribute("aria-hidden", "true");
inactive.style.display = "none";
console.log(
"[popup] Hidden inactive popup:",
entry.hook,
);
}
const inactiveRec = document.getElementById(
entry.recId,
);
if (inactiveRec)
inactiveRec.style.setProperty(
"display",
"none",
"important",
);
});
if (!activeEntry) {
console.warn(
"[popup] Active popup entry not found:",
activeHook,
);
return;
}
const active = getPopup(activeEntry.hook);
if (!active) {
console.warn(
"[popup] Active popup not found:",
activeEntry.hook,
);
return;
}
active.removeAttribute("data-popup-open-on-page-load");
active.classList.remove("t-popup_show");
active.classList.remove("t-popup_opened");
active.setAttribute("aria-hidden", "true");
active.style.display = "none";
active.style.opacity = "";
active.style.visibility = "";
const activeRec = document.getElementById(
activeEntry.recId,
);
if (activeRec) {
activeRec.style.setProperty(
"display",
"none",
"important",
);
}
console.log(
"[popup] Active popup prepared without auto-open:",
activeHook,
);
}
function openPopupFromLinkHook(hook) {
const wanted = hook || ACTIVE_POPUP_HOOK;
const targetHook = ACTIVE_POPUP_HOOK || wanted;
const entry = POPUP_DEFINITIONS.find(function (p) {
return p.hook === targetHook;
});
if (!entry) return;
const preservedScrollY =
window.scrollY || window.pageYOffset || 0;
const popup = getPopup(entry.hook);
if (!popup) return;
popup.removeAttribute("data-popup-open-on-page-load");
popup.classList.add("t-popup_show");
popup.classList.add("t-popup_opened");
popup.setAttribute("aria-hidden", "false");
popup.style.display = "block";
popup.style.opacity = "1";
popup.style.visibility = "visible";
const rec = document.getElementById(entry.recId);
if (rec) {
rec.style.setProperty("display", "block", "important");
rec.hidden = false;
}
// Keep the viewport stable when opening from a link hook.
requestAnimationFrame(function () {
window.scrollTo(0, preservedScrollY);
});
if (typeof window.__MARK_POPUP_SHOWN === "function") {
window.__MARK_POPUP_SHOWN();
}
console.log("[popup] Opened popup without URL hash:", entry.hook);
}
function fadeHidePopup(popupEl) {
if (!popupEl) return;
if (popupEl.style.display === "none") return;
popupEl.style.transition = "opacity " + CLOSE_FADE_MS + "ms ease";
popupEl.style.opacity = "0";
popupEl.style.pointerEvents = "none";
setTimeout(function () {
popupEl.classList.remove("t-popup_show");
popupEl.classList.remove("t-popup_opened");
popupEl.setAttribute("aria-hidden", "true");
popupEl.style.display = "none";
popupEl.style.opacity = "";
popupEl.style.visibility = "";
popupEl.style.transition = "";
popupEl.style.pointerEvents = "";
}, CLOSE_FADE_MS);
}
function closeOpenPopups() {
POPUP_DEFINITIONS.forEach(function (entry) {
const popup = getPopup(entry.hook);
if (!popup) return;
popup.removeAttribute("data-popup-open-on-page-load");
fadeHidePopup(popup);
const rec = document.getElementById(entry.recId);
if (rec) {
setTimeout(function () {
rec.style.setProperty("display", "none", "important");
}, CLOSE_FADE_MS);
}
});
document.body.classList.remove("t-body_popupshowed");
document.documentElement.style.overflow = "";
document.body.style.overflow = "";
if (typeof window.__MARK_POPUP_CLOSED === "function") {
window.__MARK_POPUP_CLOSED();
}
console.log("[popup] Closed popup without URL hash");
}
function isPopupHash(hash) {
const normalized = String(hash || "").toLowerCase();
return (
POPUP_CLOSE_HASHES.has(normalized) ||
POPUP_LINK_HOOKS.has(normalized)
);
}
function clearPopupHash() {
if (!isPopupHash(window.location.hash)) return;
history.replaceState(
null,
"",
window.location.pathname + window.location.search,
);
}
function enforce() {
if (window.__POPUPS_DISABLED) {
console.log(
"[popup] enforce aborted; path is blacklisted",
);
if (typeof window.__HIDE_ALL_POPUPS === "function")
window.__HIDE_ALL_POPUPS();
if (observer) observer.disconnect();
return;
}
if (window.__POPUP_CLOSED) {
console.log(
"[popup] enforce aborted; user closed popup this session",
);
if (typeof window.__HIDE_ALL_POPUPS === "function")
window.__HIDE_ALL_POPUPS();
if (observer) observer.disconnect();
return;
}
if (window.__POPUP_SHOWN) {
console.log(
"[popup] enforce aborted; popup already shown this session",
);
if (observer) observer.disconnect();
return;
}
// Defensive: strip auto-open state from all known popups.
const found = POPUP_DEFINITIONS.map(function (entry) {
const p = getPopup(entry.hook);
if (!p) return null;
p.removeAttribute("data-popup-open-on-page-load");
p.setAttribute("aria-hidden", "true");
p.style.display = "none";
p.classList.remove("t-popup_show");
p.classList.remove("t-popup_opened");
if (p.parentElement && p.parentElement.id) {
const recEl = document.getElementById(
p.parentElement.id,
);
if (recEl)
recEl.style.setProperty(
"display",
"none",
"important",
);
}
const rec = document.getElementById(entry.recId);
if (rec)
rec.style.setProperty("display", "none", "important");
return entry.hook;
}).filter(Boolean);
console.log(
"[popup] enforce called; found popups:",
found,
);
preparePopups(ACTIVE_POPUP_HOOK);
// After first successful enforce, disconnect observer to avoid constant re-applies.
if (observer) observer.disconnect();
}
// Run as soon as DOM is ready; if already loaded, run immediately.
if (
document.readyState === "complete" ||
document.readyState === "interactive"
) {
enforce();
} else {
document.addEventListener("DOMContentLoaded", enforce, {
once: true,
});
}
// Also watch for popups being injected later and re-apply.
observer = new MutationObserver(function () {
if (window.__POPUPS_DISABLED) {
if (observer) observer.disconnect();
return;
}
const foundPopup = POPUP_DEFINITIONS.some(function (entry) {
return !!getPopup(entry.hook);
});
if (foundPopup) enforce();
});
observer.observe(document.documentElement, {
childList: true,
subtree: true,
});
document.addEventListener(
"click",
function (e) {
const target = e.target;
if (!target || !target.closest) return;
const closeControl = target.closest(
".t-popup__close, .t-popup__close-wrapper, .close_id, [data-tooltip-close], [data-tooltip-close-hook], a[href='#popup-close'], a[href='#popupclose']",
);
if (closeControl) {
if (!isManagedPopupElement(closeControl)) return;
e.preventDefault();
e.stopPropagation();
closeOpenPopups();
clearPopupHash();
return;
}
const popupRoot = target.closest(".t-popup");
if (
popupRoot &&
isManagedPopupElement(popupRoot) &&
hasVisiblePopup(popupRoot)
) {
const bottomFormLink = target.closest(
"a[href='#bottom-form']",
);
if (bottomFormLink) {
closeOpenPopups();
clearPopupHash();
return;
}
const clickedInsidePopupContent = !!target.closest(
".t-popup__container, .t-popup__container-animated, .t-popup__container-static, .t-popup__content",
);
if (!clickedInsidePopupContent) {
e.preventDefault();
e.stopPropagation();
closeOpenPopups();
clearPopupHash();
return;
}
}
const openLink = target.closest("a[href]");
if (!openLink) return;
const href = String(openLink.getAttribute("href") || "");
if (!href || href.charAt(0) !== "#") return;
const hash = href.toLowerCase();
if (!POPUP_LINK_HOOKS.has(hash)) return;
e.preventDefault();
e.stopPropagation();
openPopupFromLinkHook(hash);
clearPopupHash();
},
true,
);
window.addEventListener("hashchange", clearPopupHash);
})();
</script> <script>
// Updates "#popup-oto-date .tn-atom"
// Observes DOM until successful update, then disconnects after a short settle window.
(function PopupOtoDateText() {
"use strict";
const TARGET_SELECTOR = ".popup-oto-date .tn-atom";
const FALLBACK_SELECTOR = ".popup-oto-date";
const SETTLE_MS = 1500; // keep observing briefly after success (Tilda can overwrite once more)
const MAX_OBSERVE_MS = 12000; // stop trying after 12s no matter what
const RU_MONTHS_GENITIVE = [
"января",
"февраля",
"марта",
"апреля",
"мая",
"июня",
"июля",
"августа",
"сентября",
"октября",
"ноября",
"декабря",
];
function buildLabel(d) {
return (
"Только " +
d.getDate() +
" " +
RU_MONTHS_GENITIVE[d.getMonth()]
);
}
function apply() {
const label = buildLabel(new Date());
const atoms = document.querySelectorAll(TARGET_SELECTOR);
if (atoms.length) {
atoms.forEach(function (el) {
el.textContent = label;
});
return true;
}
// Fallback if id is directly on the text node (rare)
const roots =
document.querySelectorAll(FALLBACK_SELECTOR);
if (roots.length) {
roots.forEach(function (el) {
el.textContent = label;
});
return true;
}
return false;
}
function start() {
let settleTimer = null;
let hardStopTimer = null;
let scheduled = false;
function scheduleApply() {
if (scheduled) return;
scheduled = true;
requestAnimationFrame(function () {
scheduled = false;
const updated = apply();
if (updated) {
// Reset settle timer every time we successfully apply.
if (settleTimer) clearTimeout(settleTimer);
settleTimer = setTimeout(function () {
if (observer) observer.disconnect();
observer = null;
if (hardStopTimer) clearTimeout(hardStopTimer);
console.log(
"[popup] popup-oto-date updated and observer disconnected",
);
}, SETTLE_MS);
}
});
}
// Try immediately
scheduleApply();
// Observe for late-injected/re-rendered blocks
let observer = new MutationObserver(function () {
scheduleApply();
});
observer.observe(document.documentElement, {
childList: true,
subtree: true,
});
// Hard stop if the element never appears
hardStopTimer = setTimeout(function () {
if (observer) observer.disconnect();
observer = null;
if (settleTimer) clearTimeout(settleTimer);
console.log(
"[popup] popup-oto-date observer hard-stopped (not found in time)",
);
}, MAX_OBSERVE_MS);
// Optional: if someone leaves the page open past midnight, update once at next midnight.
// No observer restart needed; it just updates if the node exists.
(function scheduleMidnightRefresh() {
const now = new Date();
const nextMidnight = new Date(
now.getFullYear(),
now.getMonth(),
now.getDate() + 1,
0,
0,
1,
0,
);
const ms = nextMidnight - now;
setTimeout(function () {
apply();
scheduleMidnightRefresh();
}, ms);
})();
}
if (document.readyState === "loading") {
document.addEventListener("DOMContentLoaded", start, {
once: true,
});
} else {
start();
}
})();
</script> <!-- nominify end --> </div> </div> </div> </div> </header> <!--/header--> <!-- ./js/course-config.js --> <div id="rec1078810531" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <script type="text/javascript" id="js-course-config">
(function (w) {
// Helper function to ensure a hidden input exists within a specific form and return it
function _ensureHiddenInputInForm(formElement, nameAttribute) {
if (!formElement || typeof formElement.querySelector !== 'function') {
// console.error('Invalid formElement passed to _ensureHiddenInputInForm for name:', nameAttribute);
return null;
}
var input = formElement.querySelector('input[type="hidden"][name="' + nameAttribute + '"]');
if (!input) {
input = document.createElement('input');
input.type = 'hidden';
input.name = nameAttribute;
formElement.appendChild(input);
}
return input;
}
// FUNCTION for updating visual display elements
function _updateDisplayElements() {
if (!w.COURSE_CONFIG || !w.COURSE_CONFIG.selectors || !w.COURSE_CONFIG.pricing) {
// console.warn("COURSE_CONFIG, selectors, or pricing not available for display updates.");
return;
}
var selectors = w.COURSE_CONFIG.selectors;
var pricing = w.COURSE_CONFIG.pricing;
var locale = w.COURSE_CONFIG.locale || 'ru-RU';
// Update Price Display (e.g., ".od-price-custom")
var fullPrice = parseFloat(pricing.full);
fullPrice = isNaN(fullPrice) ? 0 : fullPrice;
var installmentMonths = parseInt(pricing.installmentMonths, 10);
installmentMonths = (isNaN(installmentMonths) || installmentMonths <= 0) ? 1 : installmentMonths; // Avoid division by zero/negative
var priceCurrentEl = document.querySelector(selectors.priceCurrent);
var priceOriginalEl = document.querySelector(selectors.priceOriginal);
// Calculate current discounted monthly price
var discountPctToApply = parseFloat(pricing.currentSessionDiscountPct) > 0 ?
parseFloat(pricing.currentSessionDiscountPct) :
parseFloat(pricing.defaultDiscountPct);
discountPctToApply = isNaN(discountPctToApply) ? 0 : discountPctToApply;
var discountedTotalForDisplay = fullPrice * (1 - discountPctToApply / 100);
var currentMonthlyDisplay = Math.round(discountedTotalForDisplay / installmentMonths);
if (priceCurrentEl) {
var formattedCurrentPrice = currentMonthlyDisplay.toLocaleString(locale, {minimumFractionDigits: 0, maximumFractionDigits: 0});
priceCurrentEl.textContent = formattedCurrentPrice + ' ₽ / мес';
priceCurrentEl.setAttribute('data-price', currentMonthlyDisplay.toString());
}
// Update Original Price Display (e.g., ".od-last")
// This will be the non-discounted monthly price based on pricing.full
var originalMonthlyDisplay = Math.round(fullPrice / installmentMonths);
if (priceOriginalEl) {
var formattedOriginalPrice = originalMonthlyDisplay.toLocaleString(locale, {minimumFractionDigits: 0, maximumFractionDigits: 0});
priceOriginalEl.textContent = formattedOriginalPrice + ' ₽ / мес';
}
// 4. Update Discount Badge (e.g., ".od-price .radio-sale")
var discountBadgeEl = document.querySelector(selectors.mainDiscountBadge);
if (discountBadgeEl) {
var primaryDiscountPct = parseFloat(pricing.currentSessionDiscountPct) > 0 ?
parseFloat(pricing.currentSessionDiscountPct) :
parseFloat(pricing.defaultDiscountPct);
primaryDiscountPct = isNaN(primaryDiscountPct) ? 0 : primaryDiscountPct;
discountBadgeEl.textContent = '-' + primaryDiscountPct.toString() + '%';
}
}
// Function to calculate and update hidden price fields within all configured forms
function _updateHiddenPriceFields() {
if (!w.COURSE_CONFIG || !w.COURSE_CONFIG.pricing || typeof w.COURSE_CONFIG.pricing.full === 'undefined') {
// console.warn("COURSE_CONFIG and its pricing details are not yet available for hidden fields update.");
return;
}
var pricing = w.COURSE_CONFIG.pricing;
var fullPrice = parseFloat(pricing.full);
var primaryDiscountPct = parseFloat(pricing.currentSessionDiscountPct) > 0 ?
parseFloat(pricing.currentSessionDiscountPct) :
parseFloat(pricing.defaultDiscountPct);
primaryDiscountPct = isNaN(primaryDiscountPct) ? 0 : primaryDiscountPct;
// This is the value for the PRICEDISCOUNT field (full price after initial/promo discount)
var priceForDiscountField = fullPrice * (1 - primaryDiscountPct / 100);
// Autopay discount is calculated for other potential uses, but NOT for PRICEDISCOUNT hidden field.
var autopayDiscountPct = parseFloat(pricing.autopayDiscountPct) || 0;
// var finalPayablePrice = priceForDiscountField * (1 - autopayDiscountPct / 100); // This would be the final price if autopay is used
var installmentMonths = parseInt(pricing.installmentMonths, 10);
// PRICEMONTH is based on PRICEDISCOUNT (which does not include autopay discount)
var monthlyPrice = (installmentMonths > 0 && priceForDiscountField > 0) ? priceForDiscountField / installmentMonths : 0;
var fullPriceRounded = Math.round(fullPrice);
var priceForDiscountFieldRounded = Math.round(priceForDiscountField);
var monthlyPriceRounded = Math.round(monthlyPrice);
// Iterate over all forms defined in COURSE_CONFIG.forms
if (w.COURSE_CONFIG.forms && typeof w.COURSE_CONFIG.forms === 'object') {
for (var formKey in w.COURSE_CONFIG.forms) {
if (w.COURSE_CONFIG.forms.hasOwnProperty(formKey)) {
var formConfig = w.COURSE_CONFIG.forms[formKey];
if (formConfig && typeof formConfig.selector === 'string') {
var formElement = document.querySelector(formConfig.selector);
if (formElement) {
var fullField = _ensureHiddenInputInForm(formElement, 'PRICEFULL');
if (fullField) fullField.value = fullPriceRounded;
var discountField = _ensureHiddenInputInForm(formElement, 'PRICEDISCOUNT');
if (discountField) discountField.value = priceForDiscountFieldRounded; // Use the price before autopay discount
var monthField = _ensureHiddenInputInForm(formElement, 'PRICEMONTH');
if (monthField) monthField.value = monthlyPriceRounded; // Based on the new PRICEDISCOUNT value
} else {
// console.warn('Form element not found for selector:', formConfig.selector);
}
}
}
}
}
// After updating hidden fields, also update the visual display elements
_updateDisplayElements();
}
/** Master course configuration ― extend for other courses later */
w.COURSE_CONFIG = {
// ─── General meta ───────────────────────────────────────────────────────────
id: 'interiod-designer‑2025', // internal slug
name: 'Дизайнер интерьеров', // human title
subtitle: 'Онлайн‑курс', // small label on hero
version: '2025', // badge "Обновлён • 2025"
locale: 'ru-RU', // UI / moment.js locale (Standard Hyphen)
currency: 'RUB', // ISO 3 code
// ─── Pricing & promo logic ─────────────────────────────────────────────────
pricing: {
full: 265343, // base ₽ before any sale
defaultDiscountPct: 50, // hero banner / public sale (data‑discount)
autopayDiscountPct: 5, // "Оплатить сразу со скидкой"
installmentMonths: 12,
currentSessionDiscountPct: 0, // Tracks discount from an applied promo code for the session
currentSessionPromoCode: null, // Tracks the applied promo code string for the session
promoCodes: { // extra codes fetched from server API later
SPRING60: 50,
TEST: 10 // test code already used in discounts.js
}
},
// ─── Payment gateway (CloudPayments) ──────────────────────────────────────
payment: {
cpPublicId: 'pk_68263d052565d48754d3f1e592726',
cpLang: 'ru‑RU',
successUrl: 'https://eduson.academy/payment-success',
failUrl: '#'
},
// ─── DOM selectors (so scripts don't hard‑code any class) ─────────────────
selectors: {
priceCurrent: '.od-price-custom', // element holding real price
priceOriginal: '.od-last', // element with stricken base price
discountBadge: '.od-hero-discount', // Hero discount banner
mainDiscountBadge: '.od-price .radio-sale', // Main discount text next to the calculated price
startDate: '.od-start span'
},
// ─── Cookies used by discounts.js ─────────────────────────────────────────
cookieNames: { promoPct: 'promoDiscount', promoCode: 'promoCode' },
// ─── Form configurations ────────────────────────────────────────────────────
forms: {
question: {
selector: '.question_form',
formname: 'Interior-designer: Question',
services: [
'b1bbe24fa836979f342a7be72fccedd5',
'bfe6fdaa20870ad1e9b6bcba9afc764e',
'32d935ba171a121ee0a4da1c35ab3d04',
'769ba9574428f8c7de109e72c9e89b8c',
'a5ebc9ad4733b3c9aaa21380331ae0bd',
'82a2242fd57e46ff269b58c2d27efad5',
'1e35778a3a080ac3e0933157e199ffb4',
'294a62b0b2a9a17e4bf11b07634bf235',
'1265fc65c73da9e5e0a5f80807712443'
],
rules: {
name: { required: true, minlength: 2 },
phone: { required: true, minlength: 5 },
agree: { required: true }
},
messages: {
name: { required: 'Пожалуйста, введите ваше имя.', minlength: 'Имя должно содержать не менее 2 символов.' },
phone: { required: 'Пожалуйста, введите ваш телефон.', minlength: 'Телефон должен содержать не менее 5 цифр.' },
agree: { required: 'Необходимо согласие на обработку персональных данных.' }
}
},
pay: {
selector: '.pay_form',
formname: 'Interior-designer: Buy',
services: [
'b1bbe24fa836979f342a7be72fccedd5',
'bfe6fdaa20870ad1e9b6bcba9afc764e',
'32d935ba171a121ee0a4da1c35ab3d04',
'769ba9574428f8c7de109e72c9e89b8c',
'a5ebc9ad4733b3c9aaa21380331ae0bd',
'82a2242fd57e46ff269b58c2d27efad5',
'1e35778a3a080ac3e0933157e199ffb4',
'294a62b0b2a9a17e4bf11b07634bf235',
'1265fc65c73da9e5e0a5f80807712443'
],
rules: {
name: { required: true, minlength: 2 },
phone: { required: true, minlength: 5 },
email: { required: true, email: true },
agree: { required: true }
},
messages: {
name: { required: 'Пожалуйста, введите ваше имя.', minlength: 'Имя должно содержать не менее 2 символов.' },
phone: { required: 'Пожалуйста, введите ваш телефон.', minlength: 'Телефон должен содержать не менее 5 цифр.' },
email: { required: 'Пожалуйста, введите ваш email.', email: 'Пожалуйста, введите корректный email.' },
agree: { required: 'Необходимо согласие на обработку персональных данных.' }
}
},
programDownload: {
selector: '.form_programm',
formname: 'Interior-designer: Download-Programm',
services: [
'b1bbe24fa836979f342a7be72fccedd5',
'bfe6fdaa20870ad1e9b6bcba9afc764e',
'32d935ba171a121ee0a4da1c35ab3d04',
'769ba9574428f8c7de109e72c9e89b8c',
'a5ebc9ad4733b3c9aaa21380331ae0bd',
'82a2242fd57e46ff269b58c2d27efad5',
'1e35778a3a080ac3e0933157e199ffb4',
'294a62b0b2a9a17e4bf11b07634bf235',
'1265fc65c73da9e5e0a5f80807712443'
],
rules: {
name: { required: true, minlength: 2 },
phone: { required: true, minlength: 5 },
email: { required: true, email: true },
agree: { required: true }
},
messages: {
name: { required: 'Пожалуйста, введите ваше имя.', minlength: 'Имя должно содержать не менее 2 символов.' },
phone: { required: 'Пожалуйста, введите ваш телефон.', minlength: 'Телефон должен содержать не менее 5 цифр.' },
email: { required: 'Пожалуйста, введите ваш email.', email: 'Пожалуйста, введите корректный email.' },
agree: { required: 'Необходимо согласие на обработку персональных данных.' }
}
},
heroPopup: {
selector: '.form_hero_popup',
formname: 'Interior-designer: Hero-Popup',
services: [
'b1bbe24fa836979f342a7be72fccedd5',
'bfe6fdaa20870ad1e9b6bcba9afc764e',
'32d935ba171a121ee0a4da1c35ab3d04',
'769ba9574428f8c7de109e72c9e89b8c',
'a5ebc9ad4733b3c9aaa21380331ae0bd',
'82a2242fd57e46ff269b58c2d27efad5',
'1e35778a3a080ac3e0933157e199ffb4',
'294a62b0b2a9a17e4bf11b07634bf235',
'1265fc65c73da9e5e0a5f80807712443'
],
rules: {
name: { required: true, minlength: 2 },
phone: { required: true, minlength: 5 },
email: { required: true, email: true },
agree: { required: true }
},
messages: {
name: { required: 'Пожалуйста, введите ваше имя.', minlength: 'Имя должно содержать не менее 2 символов.' },
phone: { required: 'Пожалуйста, введите ваш телефон.', minlength: 'Телефон должен содержать не менее 5 цифр.' },
email: { required: 'Пожалуйста, введите ваш email.', email: 'Пожалуйста, введите корректный email.' },
agree: { required: 'Необходимо согласие на обработку персональных данных.' }
}
}
}
};
// Expose the update function on COURSE_CONFIG and call it initially
if (w.COURSE_CONFIG && w.COURSE_CONFIG.pricing) {
w.COURSE_CONFIG.updateHiddenPriceFields = _updateHiddenPriceFields;
// Initial population of hidden fields.
// Call after DOM is ready to ensure document.body is available for appending inputs
// and other scripts (like discounts.js reading cookies) might have run.
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', function() {
_updateHiddenPriceFields();
});
} else {
// DOMContentLoaded has already fired
_updateHiddenPriceFields();
}
} else {
console.error("COURSE_CONFIG or COURSE_CONFIG.pricing is not defined. Hidden price fields cannot be initialized.");
}
})(window);
</script> <!-- nominify end --> </div> </div> </div> </div> <!-- ./css/base.css --> <div id="rec1078810541" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <style type="text/css" id="css-base">
/* Base element styles */
:root {
--color-yellow: #FFD53B;
--color-black: #1E1E20;
--color-white: #F3F3F6;
--color-light: #A3A3AB;
--color-text: var(--color-black);
--trans-timing: ease-in-out;
--trans-duration: 0.25s;
--trans: all var(--trans-duration) var(--trans-timing);
--font-fallback: sans-serif;
--font-primary: 'Inter Display', var(--font-fallback);
}
body {
background: var(--color-white);
margin: 0;
padding: 0;
font-family: 'Inter', sans-serif;
color: var(--color-text);
overflow-x: hidden; /* prevents accidental wide tracks */
}
body main {
/* padding-top: 121px; Removed as hero section handles its own top padding */
}
h1, h2, h3, h4, h5 {
margin-top: 0;
color: #000;
font-weight: 500;
}
body h2 {
text-align: center;
color: var(--color-text);
font-weight: 700;
font-size: 48px;
line-height: 100%;
margin-bottom: 80px;
}
ul, ol {
padding: 0;
margin: 0;
list-style: none;
}
a {
color: #000 !important;
text-decoration: none !important;
transition: all 0.2s ease-in-out;
}
a:hover,
a:focus {
text-decoration: none !important;
color: #000 !important;
}
a.od-view:hover,
a.od-sign:hover,
a.od-dwn:hover {
color: #fff !important; /* White text on hover for specific links */
}
p {
font-size: 16px;
line-height: 22px;
color: #000;
margin-top: 0;
margin-bottom: 22px;
}
body p {
color: var(--color-text);
}
img {
vertical-align: top;
}
/* svg {
vertical-align: top; // Removed as this is now in utilities.css
} */
/* Remove outline for specific elements - consider moving to utilities if used more broadly */
button, a,
.slide.slick-slide.slick-current.slick-active{
outline: none !important;
}
/* Media Query Adjustments for Base Styles */
@media (max-width: 991px) {
body {
overflow-x: hidden; /* Prevent horizontal body scroll */
}
body main {
/* padding-top: 60px; Removed */
}
body h2 {
margin-bottom: 30px !important; /* Consider specificity */
font-weight: 700;
font-size: 32px;
line-height: 120%;
}
}
@media (max-width: 559px) {
.od-hero h1 { /* This seems specific to hero, should it be here? Moving to hero.css might be better */
font-size: 35px;
}
h2 br {
display: none;
}
}
html {
box-sizing: border-box;
scroll-behavior: smooth;
}
*, *::before, *::after {
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
/* Class applied to body when mobile navigation is open */
.js-open {
overflow: hidden;
}
.od-price-custom {
font-family: 'Inter', sans-serif;
}
</style> <!-- nominify end --> </div> </div> </div> </div> <!-- ./css/layout.css --> <div id="rec1078810551" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <style type="text/css" id="css-layout">
.container {
padding-left: 10px;
padding-right: 10px;
margin: 0px auto;
}
@media (min-width: 1200px) {
.container {
max-width: 1180px;
}
}
/* Specific container adjustments within header */
body .header .container {
display: flex;
align-items: center;
justify-content: space-between;
}
/* Responsive adjustments */
@media (max-width: 991px) {
body .header .container {
padding-right: 59px;
position: relative;
}
}
/* Removed section.curator .container block for 960px */
/* Utilities removed as they are in utilities.css */
/* Base transition - apply directly where needed instead of extending */
/* Example: a { transition: all 0.2s ease-in-out; } */
/* Example: .btn { transition: all 0.2s ease-in-out; } */
/* Layout Utilities */
/* Grid Row */
.row {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
margin-left: -8px; /* Gutter compensation */
margin-right: -8px; /* Gutter compensation */
}
/* Grid Column */
.col {
padding-left: 8px; /* Gutter */
padding-right: 8px; /* Gutter */
-webkit-box-flex: 1;
-ms-flex-positive: 1;
flex-grow: 1; /* Default to grow if no specific flex basis is set */
max-width: 100%; /* Ensure columns don't overflow by default */
}
/* Additional layout helpers can be added here */
.align-items-center {
-webkit-box-align: center !important;
-ms-flex-align: center !important;
align-items: center !important;
}
.flex-row-reverse {
-webkit-box-orient: horizontal !important;
-webkit-box-direction: reverse !important;
-ms-flex-direction: row-reverse !important;
flex-direction: row-reverse !important;
}
/* Display Utilities */
.d-none {
display: none !important;
}
.d-block {
display: block !important;
}
/* Show only on screens smaller than lg (992px) */
/* Used for elements that should be d-block by default, then d-lg-none */
@media (min-width: 992px) { /* lg and up */
.d-lg-none {
display: none !important;
}
}
/* Show only on screens lg (992px) and wider */
.d-lg-block {
display: none !important; /* Hidden by default */
}
@media (min-width: 992px) { /* lg and up */
.d-lg-block {
display: block !important;
}
}
/* Flexbox Utilities */
.d-flex {
display: -webkit-box !important;
display: -ms-flexbox !important;
display: flex !important;
}
.justify-content-end {
-webkit-box-pack: end !important;
-ms-flex-pack: end !important;
justify-content: flex-end !important;
}
/* Responsive Column Sizing (Simplified Bootstrap-like) */
/* Base .col is already flex-grow: 1, max-width: 100% */
/* Medium devices (tablets, 768px and up) */
@media (min-width: 768px) {
.col-md-6 {
-webkit-box-flex: 0;
-ms-flex: 0 0 50%;
flex: 0 0 50%;
max-width: 50%;
}
/* Add other -md- variants as needed */
}
/* Large devices (desktops, 992px and up) */
@media (min-width: 992px) {
.col-lg-6 {
-webkit-box-flex: 0;
-ms-flex: 0 0 50%;
flex: 0 0 50%;
max-width: 50%;
}
/* Add other -lg- variants as needed */
}
</style> <!-- nominify end --> </div> </div> </div> </div> <!-- ./css/utilities.css --> <div id="rec1078810561" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <style type="text/css" id="css-utilities">
.align {
display: inline-block;
vertical-align: top;
}
svg {
display: inline-block;
vertical-align: top;
width: 100%;
height: 100%;
}
.no-shadow {
outline: none !important;
-webkit-box-shadow: 0 0 0 transparent !important;
box-shadow: 0 0 0 transparent !important;
}
.text-center {
text-align: center;
}
/* Base transition - apply directly where needed instead of extending */
/* Example: a { transition: all 0.2s ease-in-out; } */
/* Example: .btn { transition: all 0.2s ease-in-out; } */
</style> <!-- nominify end --> </div> </div> </div> </div> <!-- ./css/components/button.css --> <div id="rec1078810571" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <style type="text/css" id="css-components-button">
/* Button Styles */
.btn {
border: 0;
display: inline-block;
vertical-align: top;
text-align: center;
text-decoration: none;
-webkit-transition: var(--trans);
transition: var(--trans);
cursor: pointer;
position: relative;
z-index: 1;
background: #2A2A2E; /* Default button background: var(--color-dark-background) or var(--color-black) could be used */
padding: 21px 56px;
border-radius: 100px;
font-weight: 500;
font-size: 18px;
line-height: 100%;
color: var(--color-white);
}
.btn:hover {
color: var(--color-black);
/* text-decoration: none; Already set in base.css for a:hover */
background: var(--color-yellow);
}
.btn:focus {
color: var(--color-black);
background: var(--color-yellow);
/* Default browser outline is often sufficient if not explicitly removed elsewhere */
/* Consider adding a more pronounced custom focus style if needed for accessibility */
/* outline: 2px solid var(--color-black); */
/* outline-offset: 2px; */
}
.yellow-btn {
color: var(--color-black);
background: var(--color-yellow);
}
.yellow-btn:hover,
.yellow-btn:focus {
background: #37373D; /* Darker shade for hover/focus: var(--color-dark-gray) or similar */
color: var(--color-white);
}
/*
From all.css (line 1253 & 1287):
button, a, .slide.slick-slide.slick-current.slick-active {
outline: none !important;
}
.no-shadow, .form-control:focus, .btn:focus {
outline: none !important;
-webkit-box-shadow: 0 0 0 transparent !important;
box-shadow: 0 0 0 transparent !important;
}
It is generally better for accessibility to have focus outlines.
If outlines are removed, ensure focus states are otherwise visually clear.
The .no-shadow class can be used if specific elements must not have an outline.
*/
/* Ensure anchor tags styled as buttons have white text */
a.btn,
.od-sign { /* Assuming .od-sign is always an anchor button */
color: #fff !important;
}
body .btn {
padding: 21px 35px;
font-weight: 400;
font-size: 18px;
line-height: 100%;
border-radius: 100px;
background: #1E1E20;
transition: all 0.2s ease-in-out;
border: 0;
}
body .btn:hover,
body .btn:focus {
color: #fff;
background: #37373D;
}
.od-vk-btn {
display: none;
align-items: center;
text-decoration: none;
color: var(--color-text);
font-weight: 400;
font-size: 16px;
line-height: 100%;
width: 288px;
margin: 0px auto 15px;
background: #fff;
border-radius: 100px;
box-shadow: 0px 6px 12px 0px #6B5EEC1A;
padding: 17px;
max-width: 100%;
transition: all 0.2s ease-in-out;
}
.od-vk-btn .ico {
flex: 0 0 27px;
max-width: 27px;
height: 16px;
margin-right: 10px;
}
.od-vk-btn:hover {
background: #F3F3F6;
}
.code-btn {
font-weight: 400;
font-size: 14px;
line-height: 100%;
padding: 11px 23px;
border-radius: 8px;
margin-bottom: 6px;
border: 0;
flex: 0 0 120px;
max-width: 120px;
}
@media (max-width: 1199px) {
.od-hero-form .od-vk-btn {
font-size: 14px;
}
.od-form .od-vk-btn {
font-size: 14px;
}
}
@media (max-width: 991px) {
.od-hero-form .od-form-row button.btn {
width: calc(100% - 20px);
max-width: calc(100% - 20px);
margin-top: 10px;
margin-bottom: 10px;
}
}
</style> <!-- nominify end --> </div> </div> </div> </div> <!-- ./css/components/forms.css --> <div id="rec1078810581" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <style type="text/css" id="css-components-forms">
.od-form .form-group {
margin-bottom: 10px;
}
.od-form .form-control {
display: block;
width: 100%;
border-radius: 12px;
border: 1px solid #E6E6EC;
height: 54px;
padding: 10px 15px;
font-family: 'Inter Display', sans-serif;
font-weight: 300;
font-size: 18px;
line-height: 32px;
transition: all 0.2s ease-in-out;
transition: background-color 0.3s ease-in-out;
}
.od-form .form-control::placeholder {
color: #A3A3AB;
opacity: 1;
}
.od-form .form-control:focus {
box-shadow: 0 0 0 transparent;
outline: none !important;
border-color: #6B5EEC;
}
.od-form .btn {
width: 100%;
}
.agree {
margin-bottom: 15px;
position: relative;
}
.agree input {
position: absolute;
opacity: 0;
visibility: hidden;
}
.agree label {
display: block;
position: relative;
margin: 0;
padding-left: 32px;
padding-top: 6px;
font-weight: 400;
font-size: 14px;
line-height: 100%;
cursor: pointer;
}
.agree label:before {
content: "";
position: absolute;
top: 2px;
left: 2px;
width: 18px;
height: 18px;
border: 1px solid var(--color-text);
border-radius: 6px;
z-index: 1;
}
.agree label:after {
content: "";
position: absolute;
top: 2px;
left: 2px;
width: 20px;
height: 20px;
background: url("https://static.tildacdn.com/tild3365-3131-4235-a361-336638393835/checkbox.svg") 0 0 no-repeat;
background-size: 100%;
transition: var(--trans);
opacity: 0;
z-index: 2;
}
.agree input:checked + label:after {
opacity: 1;
}
.od-code {
margin-bottom: 15px;
}
.od-code.js-toggle .od-code-btn {
display: none;
}
.od-code.js-toggle .od-code-body {
max-height: 1000px;
min-height: 50px;
}
.od-code-btn {
padding: 20px;
text-align: center;
display: block;
font-weight: 400;
font-size: 14px;
line-height: 100%;
text-decoration: underline;
color: #88888f;
}
.od-code-body {
max-height: 0px;
transition: all 0.2s ease-in-out;
overflow: hidden;
}
.od-code-body .od-code-row {
display: flex;
align-items: flex-start;
}
.od-code-body .od-code-row .form-group {
margin-bottom: 6px;
padding-right: 7px;
flex-grow: 1;
}
.od-code-body .od-code-row .form-control {
height: 36px;
padding: 10px 14px;
line-height: 14px;
font-size: 14px;
border-radius: 8px;
width: 100%;
box-sizing: border-box;
}
.od-code-body .od-code-row .form-control::placeholder {
color: #a3a3ab;
opacity: 1;
}
.od-code-body .od-code-row .code-btn {
font-weight: 400;
font-size: 14px;
line-height: 100%;
padding: 11px 23px;
border-radius: 8px;
margin-bottom: 6px;
border: 0;
flex: 0 0 120px;
max-width: 120px;
height: 36px;
box-sizing: border-box;
}
.form-note {
font-weight: 500;
font-size: 12px;
line-height: 100%;
color: #40b166;
margin-top: 6px;
}
.error-note {
color: #e95d55;
}
.od-who-form {
max-width: 964px;
padding: 30px;
border-radius: 30px;
background: #fff;
margin: 0px auto;
}
.od-form .od-form-row {
align-items: flex-start;
display: flex;
margin: 0 -10px 10px;
gap: 10px;
text-align: center;
}
.od-form .od-form-row button.btn {
flex: 0 0 252px;
max-width: 252px;
padding: 19px 35px;
margin: 0 10px;
}
.od-form .form-group {
flex: 1;
padding: 0 10px;
}
.od-promo-form {
padding: 20px;
border-radius: 30px;
background: #F3F3F6;
display: flex;
position: relative;
z-index: 1;
overflow: hidden;
}
.od-promo-form:before {
content: "";
position: absolute;
z-index: -1;
left: 50%;
top: 50%;
width: 761px;
height: 601px;
transform: translate(-50%, -50%);
opacity: 0.5;
background: radial-gradient(68.94% 68.94% at 50% 50%, rgba(255, 213, 59, 0.16) 12.62%, rgba(255, 255, 255, 0) 100%);
}
.od-promo-form .od-form {
border-radius: 30px;
background: #fff;
padding: 35px 25px;
flex: 0 0 443px;
max-width: 443px;
}
.od-promo-form .od-form .form-group {
padding-left: 0;
padding-right: 10px;
}
.od-promo-form .agree {
margin-bottom: 15px;
}
.od-promo-form .btn {
display: block;
width: 316px;
max-width: 100%;
margin: 0px auto;
}
.od-promo-form .form-control {
background: #fff;
border: 1px solid #E6E6EC;
}
/* Contact section styles from original design */
.contact {
padding: 120px 0;
}
.contact h2 {
margin-bottom: 20px;
}
.contact-title-icons {
display: flex;
flex-wrap: wrap;
justify-content: center;
align-items: center;
padding-bottom: 70px;
}
.contact-item {
display: flex;
align-items: center;
background: var(--color-yellow);
margin: 0 5px 10px;
font-weight: 400;
font-size: 16px;
line-height: 100%;
padding: 9px 24px 9px 12px;
border-radius: 70px;
}
.contact-item .ico {
flex: 0 0 24px;
max-width: 24px;
height: 24px;
margin-right: 7px;
}
.contact-item .ico svg {
fill: var(--color-black);
}
.contact-info {
font-weight: 400;
font-size: 16px;
line-height: 100%;
display: flex;
justify-content: space-between;
color: #fff;
padding: 35px 85px 55px;
background: #2A2A2E;
border-radius: 32px;
position: relative;
z-index: 1;
max-width: 964px;
margin: 0 auto;
}
.contact-info li {
padding: 0 10px;
display: flex;
align-items: flex-start;
margin-bottom: 20px;
}
.contact-info li .ico {
flex: 0 0 24px;
max-width: 24px;
height: 24px;
margin-right: 11px;
}
.contact-form {
position: relative;
z-index: 2;
max-width: 964px;
margin: -50px auto 20px;
background: #fff;
border-radius: 30px;
padding: 30px;
}
.form-row {
display: flex;
flex-wrap: wrap;
margin: 0 -5px;
}
.form-row .form-group {
padding: 0 5px;
flex: 0 0 33.33333%;
max-width: 33.33333%;
}
.od-radio {
padding-bottom: 15px;
}
.od-radio-item {
margin-bottom: 5px;
position: relative;
}
.od-radio-item input {
position: absolute;
opacity: 0;
top: 0;
left: 0;
visibility: hidden;
}
.od-radio-item label {
display: flex;
align-items: center;
justify-content: space-between;
position: relative;
padding: 15px 13px 15px 42px;
border: 1px solid #E6E6EC;
border-radius: 10px;
font-weight: 400;
font-size: 16px;
line-height: 26px;
cursor: pointer;
transition: all 0.2s ease-in-out;
}
.od-radio-item label:hover {
border-color: #2A2A2E;
}
.od-radio-item label:before {
content: '';
position: absolute;
top: 19px;
left: 14px;
width: 18px;
height: 18px;
border: 1px solid #2A2A2E;
border-radius: 50%;
}
.od-radio-item label:after {
content: '';
position: absolute;
top: 22px;
left: 17px;
width: 12px;
height: 12px;
background: var(--color-yellow);
border-radius: 50%;
transition: all 0.2s ease-in-out;
opacity: 0;
}
.od-radio-item input:checked + label {
border-color: #2A2A2E;
}
.od-radio-item input:checked + label:after {
opacity: 1;
}
/* Media Queries */
@media (max-width: 991px) {
.od-who-form {
border-radius: 15px;
}
.od-who-form .od-form-row {
display: block;
}
.od-who-form .form-control {
background: #F3F3F6;
border-color: #F3F3F6;
}
.od-promo-form {
border-radius: 15px;
background: transparent;
padding: 0;
}
.od-form {
padding: 36px 15px;
}
.od-radio-item label {
height: 51px;
padding: 5px 18px 5px 41px;
}
.od-radio-item label::before {
top: 15px;
}
.od-radio-item label::after {
top: 18px;
}
/* Contact section responsive styles */
.contact {
padding: 60px 0;
}
.contact .text-center {
margin-top: -80px;
position: relative;
z-index: 2;
}
.contact-title-icons {
padding-bottom: 24px;
}
.contact-item {
margin: 0 3px 6px;
font-size: 14px;
padding: 8px 15px 8px 10px;
}
.contact-info {
padding: 30px 20px 50px;
border-radius: 15px;
display: block;
text-align: center;
}
.contact-info li {
flex-direction: column;
align-items: center;
}
.contact-info li .ico {
margin: 0 0 10px;
}
.contact-form {
border-radius: 15px;
margin: 0;
padding: 27px 30px 90px;
}
.contact-form .agree {
margin: 15px 0;
}
.form-row {
margin: 0;
display: block;
}
.form-row .form-group {
padding: 0;
max-width: none;
margin-bottom: 10px;
}
}
@media (max-width: 577px) {
.od-radio-item label {
font-size: 14px;
padding-top: 10px;
padding-bottom: 10px;
line-height: 1.2;
}
}
/* Styles for #pop-up modal (originally .od-comm-modal) */
/* Apply max-width directly to the element Fancybox identifies as content */
/* Increase specificity by including the class Fancybox adds */
#pop-up.fancybox-content {
border-radius: 30px;
overflow: visible;
background: #F3F3F6;
padding: 0;
max-width: 420px;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}
/* Add display:none by default, Fancybox will manage visibility */
#pop-up {
display: none;
}
/* Helper to ensure Fancybox stage centers the content */
.fancybox-slide--html {
padding: 0;
}
#pop-up .modal-content-wrapper {
padding: 40px 30px 30px;
position: relative;
border-radius: 30px;
background: #fff;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
width: 376px;
box-sizing: border-box;
margin-left: auto;
margin-right: auto;
}
#pop-up .modal-title {
text-align: center;
font-weight: 600;
font-size: 24px;
line-height: 120%;
margin-bottom: 30px;
color: #1E1E20;
}
#hero-pop-up .modal-title {
text-align: center;
font-weight: 600;
font-size: 24px;
line-height: 120%;
margin-bottom: 30px;
color: #1E1E20;
}
#pop-up .od-form .form-group {
margin-bottom: 20px;
}
#pop-up .close-modal {
position: absolute;
top: 15px;
right: 15px;
width: 30px;
height: 30px;
cursor: pointer;
background: none;
border: none;
padding: 0;
}
#pop-up .close-modal:hover {
opacity: 0.7;
}
#pop-up .thank-ico {
text-align: center;
margin-bottom: 20px;
}
#pop-up .modal-body p {
font-weight: 400;
font-size: 18px;
line-height: 120%;
text-align: center;
color: #1E1E20;
}
#pop-up .modal-content.inline_success {
display: block;
border: none;
padding: 0;
}
#pop-up .modal-content.inline_success .modal-body {
padding: 0;
}
#pop-up .od-form .btn {
width: 100%;
padding: 16px 10px;
font-size: 18px;
font-weight: 600;
}
/* Style for temporarily highlighting invalid fields */
.form-control.is-invalid-highlight {
background-color: #fdecea;
border-color: #f5c6cb;
}
/* Hide success messages by default */
.inline_success,
.js-successbox {
display: none;
}
/* Hide detailed validation error text boxes */
/* keep hidden by default */
.js-errorbox-all {
display: none;
}
form.tilda-has-errors .js-errorbox-all {
display: block;
animation: fadeIn 0.25s ease-in;
}
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
/* Styles for the form notes (like promo code status) */
.form-note {
font-size: 0.8em;
color: #dc3545;
margin-top: 4px;
display: none;
}
.form-group.is-invalid .form-note {
/* Example: Maybe show if parent has error class? Depends on validation logic */
/* display: block; */
}
.od-code-body {
/* Existing styles */
}
.od-code-row {
/* Existing styles */
}
/* Success message styles */
.js-successbox {
text-align: center;
width: 100%;
opacity: 0;
transition: opacity 0.3s ease-in-out;
background: #fff;
padding: 30px;
border-radius: 12px;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
min-width: 300px;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}
.js-successbox.show {
opacity: 1;
}
.js-successbox .thank-ico {
margin-bottom: 20px;
}
.js-successbox .thank-ico img {
width: 93px;
height: auto;
}
.js-successbox .modal-body p {
font-weight: 400;
font-size: 18px;
line-height: 1.4;
color: #1E1E20;
margin: 0;
}
/* Ensure form container has relative positioning */
.od-form {
position: relative;
min-height: 200px;
}
.custom-modal {
position: fixed;
z-index: 99999;
left: 0; top: 0; right: 0; bottom: 0;
background: rgba(0,0,0,0.4);
justify-content: center;
align-items: center;
opacity: 0;
pointer-events: none;
transition: opacity 0.3s;
display: flex;
}
.custom-modal.show {
opacity: 1;
pointer-events: auto;
}
.custom-modal-content {
background: #fff;
border-radius: 20px;
padding: 40px 30px 30px;
text-align: center;
min-width: 300px;
box-shadow: 0 4px 20px rgba(0,0,0,0.1);
position: relative;
transform: translateY(40px);
opacity: 0;
transition: opacity 0.3s, transform 0.3s;
}
.custom-modal.show .custom-modal-content {
opacity: 1;
transform: translateY(0);
}
.custom-modal .thank-ico {
margin-bottom: 20px;
}
.custom-modal-close {
position: absolute;
top: 15px;
right: 15px;
background: none;
border: none;
font-size: 2rem;
color: #888;
cursor: pointer;
z-index: 2;
transition: color 0.2s;
}
.custom-modal-close:hover {
color: #e95d55;
}
/* Ensure this selector is specific enough if other .error classes are used elsewhere. */
.form-group.is-invalid .form-control,
.form-control.is-invalid {
border-color: #e95d55 !important;
background-color: #fdecea !important;
}
/* Style for the error message block added by jQuery Validate */
.validation-error-message.help-block {
color: #e95d55;
font-size: 10px;
margin-top: 4px;
display: block;
text-align: left;
opacity: 1;
transform: translateY(-4px);
transition: all .25s ease;
}
.form-group.is-invalid .validation-error-message.help-block {
opacity: 1;
transform: none;
}
/* Adjust spacing if an error message is present in a form group */
.form-group.is-invalid {
/* margin-bottom: 15px; */
}
/* Ensure that the general .is-invalid class used by jQuery Validate on the div doesn't
conflict with other uses of .is-invalid if any. The .validation-error-message and .help-block
provide more specificity. */
div.is-invalid {
/* This is a general selector jQuery Validate might use for the errorElement: 'div' */
/* The .validation-error-message.help-block above is more specific and preferred */
}
/* Defensive rule for visibility of invalid fields */
.form-group.is-invalid,
.form-control.is-invalid {
display:block!important;
visibility:visible!important;
opacity:1!important;
}
/* Shake + red border when a field is invalid */
/* @keyframes field-shake{0%,100%{transform:translateX(0);}25%{transform:translateX(-3px);}75%{transform:translateX(3px);}} */
.form-group.is-invalid .form-control{border-color:#E74141!important;}
.validation-error-message{color:#E74141;font-size:.825rem;margin-top:.25rem;}
/* Kill Tilda's big aggregated error block */
.t-form__errorbox-wrapper{display:none!important;}
/* Fancybox stage below our success modal, above everything else */
.fancybox-container { z-index: 99998 !important; }
#custom-success-modal { z-index: 99999; }
</style> <!-- nominify end --> </div> </div> </div> </div> <!-- ./css/components/nav.css --> <div id="rec1078810591" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <style type="text/css" id="css-components-nav">
body .header {
background: #2A2A2E;
position: fixed;
z-index: 101;
inset: 0 0 auto;
padding: 15px 0 15px;
}
/* Container styles moved to layout.css */
/* body.od .header .container { ... } */
.od-sign {
position: relative;
display: inline-flex;
align-items: center;
vertical-align: top;
text-decoration: none;
color: #fff;
font-weight: 400;
font-size: 16px;
line-height: 100%;
padding: 7px 14px;
background: #1E1E20;
border-radius: 6px;
transition: all 0.2s ease-in-out;
}
.od-sign .ico {
flex: 0 0 22px;
max-width: 22px;
height: 22px;
margin-right: 6px;
}
.od-sign .ico img {
width: 100%;
height: 100%;
}
.od-sign:hover,
.od-sign:focus {
background: #6B5EEC;
color: #fff;
}
.od-top-nav {
flex: 1 1 auto;
width: 1%;
display: flex;
align-items: center;
justify-content: center;
font-weight: 400;
font-size: 14px;
line-height: 100%;
padding: 0;
margin: 0;
}
.od-top-nav li {
display: block;
list-style: none;
padding: 0 4px;
}
.od-top-nav li a {
display: block;
text-decoration: none;
color: #1F1F1F;
transition: all 0.2s ease-in-out;
padding: 5px 10px;
border-radius: 19px;
background: transparent;
}
.od-top-nav li a:hover {
color: #1F1F1F;
background: #E6E6EC;
}
/* Mobile Navigation Toggle Icon (Burger/X) */
.nav-ico {
display: none; /* Hidden by default, shown via media query */
position: absolute;
top: 50%;
-webkit-transform: translateY(-50%);
transform: translateY(-50%);
right: 15px;
width: 42px;
height: 42px;
overflow: hidden;
cursor: pointer; /* Indicate it's clickable */
z-index: 120; /* Above main-nav and backdrop */
}
.nav-ico span {
display: block;
position: absolute;
border-radius: 2px;
background: #fff; /* Changed from var(--color-white) for better contrast */
-webkit-transition: all 0.2s ease-in-out; /* Specific transition for burger animation */
transition: all 0.2s ease-in-out;
width: 24px;
height: 2px;
left: 9px;
}
.nav-ico span:first-child {
top: 13px;
}
.nav-ico span:nth-child(2) {
top: 20px;
}
.nav-ico span:nth-child(3) {
top: 27px;
}
/* Backdrop for mobile navigation */
.backdrop {
position: fixed;
background: var(--color-black); /* Changed to black for better contrast */
z-index: 100; /* Below main-nav (110) and nav-ico (120) */
inset: 0;
-webkit-transition: opacity var(--trans-duration) var(--trans-timing), visibility 0s var(--trans-timing) var(--trans-duration);
transition: opacity var(--trans-duration) var(--trans-timing), visibility 0s var(--trans-timing) var(--trans-duration);
opacity: 0;
visibility: hidden;
}
/* Styles for when mobile navigation is open (triggered by .js-open on body) */
.js-open .nav-ico span:nth-child(2) {
opacity: 0; /* Hide middle bar */
}
.js-open .nav-ico span:first-child {
top: 50%;
left: 50%;
-webkit-transform: translate(-50%, -50%) rotate(45deg);
transform: translate(-50%, -50%) rotate(45deg);
}
.js-open .nav-ico span:nth-child(3) {
top: 50%;
left: 50%;
-webkit-transform: translate(-50%, -50%) rotate(-45deg);
transform: translate(-50%, -50%) rotate(-45deg);
}
.js-open .backdrop {
opacity: 0.5; /* Semi-transparent backdrop */
visibility: visible;
-webkit-transition-delay: 0s;
transition-delay: 0s; /* Ensure visibility transition applies correctly */
}
/* Media query to show nav-ico */
@media (max-width: 991px) {
.nav-ico {
display: block;
}
}
/* Media Queries */
@media (max-width: 991px) {
body .header {
padding: 7px 0;
}
body .logo {
max-width: 76px;
flex: 0 0 76px;
}
body .logo img {
max-width: 100%;
}
.od-top-nav {
position: fixed;
z-index: 101;
background: #fff;
inset: 0 auto 0 0;
height: 100vh;
overflow: auto;
width: 500px;
max-width: 80%;
display: block;
transition: all 0.2s ease-in-out;
font-size: 18px;
padding: 20px;
transform: translate(-120%);
}
.od-top-nav li {
display: block;
padding: 0;
border-bottom: 1px solid var(--color-light);
}
.od-top-nav li a {
display: block;
padding: 15px 0;
}
.js-open .od-top-nav {
transform: translateX(0);
}
.header .container {
padding-right: 64px;
position: relative;
}
}
/* Header styles */
.header {
padding: 5px 0;
position: fixed;
z-index: 99;
inset: 0 0 auto;
background: #2A2A2E;
}
.header .container {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-pack: justify;
-ms-flex-pack: justify;
justify-content: space-between;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
}
/* Logo specific to header */
.header .logo {
display: block;
}
.header .logo img {
max-width: 100%;
}
/* Main Navigation styles */
.main-nav {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
font-weight: 400;
font-size: 14px;
line-height: 100%;
}
.main-nav li {
display: block;
padding: 0 1px;
}
.main-nav li a {
display: block;
text-decoration: none;
color: #fff !important;
-webkit-transition: var(--trans);
transition: var(--trans);
padding: 8px 11px;
}
.main-nav li a:hover,
.main-nav li a.active {
color: var(--color-yellow);
}
/* Header Button styles */
.head-btn {
font-weight: 400;
font-size: 16px;
line-height: 100%;
display: -webkit-inline-box;
display: -ms-inline-flexbox;
display: inline-flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
text-decoration: none;
border: 0;
padding: 8px 16px;
-webkit-box-shadow: 0px -2px 0px 0px rgba(0, 0, 0, 0.1607843137) inset;
box-shadow: 0px -2px 0px 0px rgba(0, 0, 0, 0.1607843137) inset;
background: var(--color-white);
border-radius: 8px;
-webkit-transition: var(--trans);
transition: var(--trans);
color: var(--color-black);
}
.head-btn .ico {
-webkit-box-flex: 0;
-ms-flex: 0 0 16px;
flex: 0 0 16px;
max-width: 16px;
height: 16px;
margin-right: 10px;
}
.head-btn .ico svg {
fill: var(--color-black);
}
.head-btn:hover,
.head-btn:focus {
background: var(--color-yellow);
color: var(--color-black);
}
/* Mobile Navigation Toggle Icon (Burger/X) & Backdrop */
.nav-ico {
display: none; /* Hidden by default, shown via media query */
position: absolute;
top: 50%;
-webkit-transform: translateY(-50%);
transform: translateY(-50%);
right: 15px;
width: 42px;
height: 42px;
overflow: hidden;
cursor: pointer;
z-index: 120; /* Above main-nav (110) and backdrop (100) */
}
.nav-ico span {
display: block;
position: absolute;
border-radius: 2px;
background: #fff; /* Changed from var(--color-white) for better contrast */
-webkit-transition: all 0.2s ease-in-out; /* Specific transition for burger animation */
transition: all 0.2s ease-in-out;
width: 24px;
height: 2px;
left: 9px;
}
.nav-ico span:first-child { top: 13px; }
.nav-ico span:nth-child(2) { top: 20px; }
.nav-ico span:nth-child(3) { top: 27px; }
.backdrop {
position: fixed;
background: var(--color-black); /* Dark backdrop */
z-index: 100; /* Below nav-ico and main-nav slide-out */
inset: 0;
-webkit-transition: opacity var(--trans-duration) var(--trans-timing), visibility 0s var(--trans-timing) var(--trans-duration);
transition: opacity var(--trans-duration) var(--trans-timing), visibility 0s var(--trans-timing) var(--trans-duration);
opacity: 0;
visibility: hidden;
}
/* --- Responsive and JS-Open States --- */
/* For .js-open state on body (mobile nav open) */
/* Note: .js-open on body for overflow:hidden is in base.css */
.js-open .main-nav {
-webkit-transform: translateX(0);
transform: translateX(0);
}
.js-open .nav-ico span:nth-child(2) { opacity: 0; } /* Hide middle burger line */
.js-open .nav-ico span:first-child {
top: 50%; left: 50%;
-webkit-transform: translate(-50%, -50%) rotate(45deg);
transform: translate(-50%, -50%) rotate(45deg);
}
.js-open .nav-ico span:nth-child(3) {
top: 50%; left: 50%;
-webkit-transform: translate(-50%, -50%) rotate(-45deg);
transform: translate(-50%, -50%) rotate(-45deg);
}
.js-open .backdrop {
opacity: 0.5;
visibility: visible;
-webkit-transition-delay: 0s; /* Ensure visibility transition applies correctly */
transition-delay: 0s;
}
/* Media Queries for Header/Nav */
@media (max-width: 991px) {
.header .container {
position: relative;
padding-right: 59px; /* Space for the nav-ico */
}
.main-nav {
overflow: auto;
position: fixed;
z-index: 110; /* Above backdrop */
inset: 0 auto 0 0;
height: 100vh;
display: block;
background: #2A2A2E; /* Match header background */
padding: 20px;
width: 500px;
max-width: 80%;
-webkit-transition: var(--trans);
transition: var(--trans);
font-size: 16px;
-webkit-transform: translateX(-120%);
transform: translateX(-120%);
}
.main-nav li {
border-bottom: 1px solid rgba(255, 255, 255, 0.3);
padding: 10px 5px;
}
.nav-ico {
display: block; /* Show burger icon */
}
}
</style> <!-- nominify end --> </div> </div> </div> </div> <!-- ./css/components/hero.css --> <div id="rec1078810601" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <style type="text/css" id="css-components-hero">
.od-hero {
margin-bottom: 120px;
padding-top: 65px;
}
.od-hero h1 {
text-align: center;
margin-bottom: 30px;
font-weight: 800;
font-size: 56px;
line-height: 110%;
color: var(--color-text);
}
.od-hero h1 span {
position: relative;
}
.od-hero-title {
text-align: center;
margin-bottom: 80px;
}
.od-hero-label {
position: absolute;
left: calc(100% + 10px);
top: 10px;
font-weight: 400;
font-size: 14px;
line-height: 100%;
color: #fff;
padding: 6px 12px;
white-space: nowrap;
background: #6B5EEC;
border-radius: 22px;
}
.od-hero-subtitle {
margin-bottom: 11px;
text-align: center;
font-weight: 400;
font-size: 16px;
line-height: 100%;
color: var(--color-light);
}
.od-hero-time {
text-align: center;
font-weight: 400;
font-size: 16px;
line-height: 100%;
padding: 12px 24px 12px 43px;
display: inline-block;
vertical-align: top;
background: url("https://static.tildacdn.com/tild6466-3030-4262-b834-656639333234/od-time.png") 12px 8px no-repeat #fff;
background-size: 24px 24px;
border-radius: 20px;
margin-bottom: 40px;
}
.od-hero-body {
display: flex;
position: relative;
padding: 14px;
background-color: #fff;
border-radius: 30px 30px 30px 0;
overflow: hidden;
margin-bottom: 20px;
height: calc(100% - 20px);
}
.od-hero-img {
position: relative;
z-index: 1;
overflow: hidden;
flex: 344px;
max-width: 344px;
border-radius: 35px 30px 30px 30px;
}
.od-hero-img img {
width: 100%;
height: 100%;
object-fit: cover;
}
.od-hero-img:before,
.od-hero-img:after,
.od-hero-body::before,
.od-hero-body:after {
content: "";
display: inline-block;
width: 68px;
height: 68px;
position: absolute;
border-right: 30px solid #fff;
border-top: 30px solid #fff;
transform: rotate(90deg);
z-index: 2;
}
.od-hero-img:before {
border-top-right-radius: 100px;
bottom: 112px;
right: -30px;
}
.od-hero-img:after {
bottom: -30px;
top: unset;
right: 113px;
height: 60px;
width: 60px;
border-top-right-radius: 100px;
}
.od-hero-body:before {
border-top-right-radius: 100px;
bottom: 48px;
left: -30px;
transform: rotate(180deg);
border-right: 30px solid#F3F3F6;
border-top: 30px solid #F3F3F6;
}
.od-hero-body:after {
bottom: -30px;
top: unset;
left: 255px;
height: 60px;
width: 60px;
border-top-right-radius: 100px;
transform: rotate(180deg);
border-right: 30px solid#F3F3F6;
border-top: 30px solid #F3F3F6;
}
.od-hero-text {
flex: 1 1 auto;
width: 1%;
border-radius: 24px 0 0 24px;
overflow: hidden;
background: #fff;
padding: 19px 24px 120px;
}
.od-hero-text img {
width: 100%;
height: 100%;
object-fit: cover;
}
.od-view {
padding: 20px;
background: #fff;
font-weight: 400;
font-size: 18px;
line-height: 100%;
border-radius: 40px;
box-shadow: 0 1rem 0 #F3F3F6, 0 0 0 1rem #F3F3F6;
position: absolute;
left: 0;
bottom: 0;
z-index: 10;
display: inline-flex;
align-items: center;
text-decoration: none;
transition: all 0.2s ease-in-out;
color: #000;
}
.od-view .ico {
flex: 0 0 22px;
max-width: 22px;
height: 22px;
margin-right: 10px;
padding: 0;
}
.od-view .ico svg {
fill: #000;
transition: all 0.2s ease-in-out;
}
.od-view:hover,
.od-view:focus {
background: #6B5EEC;
color: #fff;
}
.od-view:hover .ico svg,
.od-view:focus .ico svg {
fill: #fff;
}
.od-hero-bn {
font-weight: 400;
font-size: 18px;
line-height: 120%;
}
.od-hero-bn li {
padding: 30px 4px 14px 4px;
display: flex;
align-items: flex-start;
}
.od-hero-bn li .ico {
flex: 0 0 64px;
max-width: 64px;
}
.od-hero-bn li span:not([class]) {
padding-left: 29px;
flex: 1 1 auto;
width: 1%;
}
.od-hero-form {
padding: 30px;
border-radius: 30px;
margin-bottom: 20px;
height: calc(100% - 20px);
background: #fff;
}
.od-hero-title {
font-weight: 600;
font-size: 24px;
line-height: 110%;
text-align: center;
margin-bottom: 20px;
}
/* Media Queries */
@media (max-width: 1199px) {
.od-hero h1 {
font-size: 48px;
}
.od-hero-img {
max-width: 300px;
flex: 0 0 300px;
border-radius: 20px;
}
.od-hero-img img {
width: 100%;
height: 100%;
object-fit: cover;
}
.od-hero-text {
padding-left: 0;
padding-right: 10px;
}
.od-hero-bn li span:not([class]) {
padding-left: 12px;
}
.od-hero-bn {
font-size: 16px;
}
.od-hero-img:before {
bottom: 112px;
}
.od-hero-img:after {
bottom: -30px;
}
.od-hero-form {
padding-left: 14px;
padding-right: 14px;
}
}
@media (max-width: 991px) {
.od-hero {
margin-bottom: 60px;
}
.od-hero h1 {
font-size: 40px;
margin-bottom: 27px;
position: relative;
}
.od-hero-subtitle {
padding-right: 117px;
}
.od-hero-label {
position: absolute;
left: 50%;
top: -33px;
background: none;
border: 1px solid #6B5EEC;
color: var(--bs-black);
}
.od-hero-time {
font-size: 12px;
background-size: 16px 16px;
background-position: 10px 7px;
padding: 9px 11px 9px 34px;
margin: 0;
}
.od-hero-title {
margin-bottom: 30px;
}
.od-hero-body {
flex-direction: column-reverse;
padding: 11px 12px 32px;
border-radius: 15px;
margin-bottom: 30px;
height: auto;
}
.od-hero-body:before, .od-hero-body:after {
display: none;
}
.od-hero-img {
flex: 0 0 auto;
width: 100%;
max-width: none;
border-radius: 15px 5px 15px 50px;
margin-bottom: 30px;
}
.od-hero-img img {
border-radius: 15px 5px 15px 50px;
}
.od-hero-img:before,
.od-hero-img:after {
display: none;
}
.od-hero-text {
flex: 0 0 auto;
width: 100%;
max-width: none;
padding: 0 0 123px;
position: relative;
}
.od-hero-bn li {
padding: 0 3px 27px 5px;
}
.od-hero-bn li .ico {
flex: 0 0 48px;
max-width: 48px;
}
.od-hero-bn li span:not([class]) {
padding-left: 29px;
}
.od-view {
border: 0;
box-shadow: 0 0 0 transparent;
left: 28px;
bottom: 32px;
right: 28px;
justify-content: center;
font-size: 18px;
background: #F3F3F6;
}
.od-hero-form {
padding: 30px 15px;
height: auto;
margin: 0 -7px 30px;
}
.countdown .time {
font-size: 14px;
padding: 5px 8px;
}
.hero-img-title .btn.yellow-btn {
padding-left: 30px;
padding-right: 30px;
}
.hero-slogan {
font-size: 20px;
margin-bottom: 30px;
}
.hero-bentfits.row {
display: block;
}
.hero-bentfits .col {
max-width: none;
}
.hero-benefits-card {
padding: 20px;
}
.hero-benefits-card p {
font-size: 16px;
}
}
@media (max-width: 577px) {
.od-hero-img {
height: 304px;
}
.od-hero-subtitle {
padding-right: 145px;
}
.od-hero-label {
margin-left: 20px;
}
.od-hero-text {
padding-bottom: 60px;
}
}
@media (max-width: 559px) {
.od-view {
font-size: 14px;
}
}
/* Hero Items from cards.css */
.od-hero-items {
padding: 30px 28px 14px;
background: #fff;
position: relative;
z-index: 1;
border-radius: 15px;
overflow: hidden;
display: flex;
flex-wrap: wrap;
}
.od-hero-items:before {
content: '';
position: absolute;
z-index: -1;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
background: radial-gradient(50% 50% at 50% 50%, rgba(114, 86, 252, 0.1) 30%, rgba(255, 255, 255, 0) 100%);
width: 643px; /* Corrected Width/Height */
height: 1280px;
opacity: 0.5;
}
.od-item-card {
margin: 0 8px 16px;
padding: 20px 28px;
border-radius: 30px;
background: #fff;
font-weight: 400;
font-size: 16px;
line-height: 120%;
flex: 0 0 calc(25% - 16px);
max-width: calc(25% - 16px);
}
.od-item-card .ico {
margin-bottom: 11px;
}
.od-item-title {
min-height: 39px;
margin-bottom: 11px;
font-weight: 600;
font-size: 20px;
line-height: 100%;
}
/* Media Queries for Hero Items */
@media (max-width: 1199px) {
.od-item-card {
padding-left: 20px;
padding-right: 20px;
}
}
@media (max-width: 991px) {
.od-hero-items {
padding: 18px 15px 4px;
display: block;
}
.od-item-card {
max-width: none;
margin: 0 0 14px;
padding: 17px 19px;
border-radius: 15px;
}
.od-item-title {
min-height: auto;
}
}
/* Hero Section Styles for html/02-hero.html */
.hero {
padding: 100px 0 64px;
background: #2A2A2E; /* From all.css */
}
.hero-title {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
text-align: center;
margin-bottom: 35px;
}
.hero-subtitle {
font-weight: 400;
font-size: 16px;
line-height: 100%;
color: var(--color-white);
margin-bottom: 11px;
}
/* Styles for H1 specifically within .hero section */
.hero h1 {
font-weight: 800;
font-size: 56px;
line-height: 100%;
color: #fff;
margin-top: 0;
margin-bottom: 28px;
position: relative;
}
/* Styles for SUP within .hero H1 */
.hero h1 sup {
display: block;
position: absolute;
font-weight: 400;
font-size: 14px;
line-height: 100%;
padding: 6px 12px;
border-radius: 22px;
background: var(--color-yellow);
color: #2A2A2E; /* Direct color from all.css, consider var(--color-black) */
top: -5px;
left: 100%;
width: 155px;
}
.hero-time {
font-weight: 400;
font-size: 16px;
line-height: 100%;
padding: 14px 24px 14px 43px;
position: relative;
color: #fff;
border-radius: 70px;
background: #37373D; /* Direct color from all.css */
}
.hero-time .ico {
position: absolute;
top: 9px;
left: 12px;
width: 24px;
height: 24px;
}
.hero-time .ico svg {
fill: var(--color-yellow);
}
.hero-img {
position: relative;
z-index: 2;
}
.hero-img img,
.hero-img picture img /* Ensure picture element direct child img is also targeted */
{
max-width: 100%;
display: block;
}
.hero-img-title {
padding: 70px 26px 26px;
background: var(--color-black); /* Assuming #1E1E20 from all.css is var(--color-black) */
margin: -50px 0 48px;
position: relative;
z-index: 1; /* Base z-index for the container */
border-radius: 0 0 32px 32px;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
}
/* Ensure button visibility and stacking within hero-img-title */
.hero-img-title .btn.yellow-btn {
color: #1E1E20 !important;
background-color: var(--color-yellow); /* Removed !important */
z-index: 3; /* Ensure button is above other direct children of hero-img-title */
position: relative; /* Required for z-index to take effect reliably */
}
/* Added hover and focus states for the specific button */
.hero-img-title .btn.yellow-btn:hover,
.hero-img-title .btn.yellow-btn:focus {
background-color: #37373D; /* Style from .yellow-btn:hover */
color: #ffffff !important; /* Style from .yellow-btn:hover */
}
.hero-sale {
margin-left: 16px;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
border-radius: 32px;
border: 1px solid var(--color-yellow);
-webkit-backdrop-filter: blur(14.3362550735px);
backdrop-filter: blur(14.3362550735px);
position: relative; /* For stacking context */
z-index: 2; /* Ensure it's contextually above/managed with the button */
}
/* Styles for .sale inside .hero-sale (this is .od-hero-discount in HTML) */
/* This rule makes the sale badge flow normally within .hero-sale */
.hero-sale .sale {
font-weight: 500;
font-size: 30px;
line-height: 100%;
padding: 12px 26px;
border-radius: 32px;
background: var(--color-yellow); /* Retains yellow background */
color: var(--color-black); /* Retains black text */
/* Overriding .od-hero-discount styles for in-flow layout */
position: static !important; /* CRITICAL: Removes absolute positioning */
width: auto !important; /* Resets fixed width */
height: auto !important; /* Resets fixed height */
border: none !important; /* Removes the border from .od-hero-discount */
margin: 0; /* Reset margins if any */
/* Ensure its content (span) is visible */
display: inline-block; /* Or flex, if inner span needs alignment */
}
.hero-sale .sale span {
display: inline-block; /* Ensures span content is rendered */
}
.counter-wrapper {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
padding: 0 26px; /* Original padding */
position: relative; /* For stacking context within hero-sale */
z-index: 1; /* Stack below the .sale badge if they were to overlap, though now static */
}
.counter-wrapper p {
font-weight: 400;
font-size: 20px;
line-height: 100%;
margin: 0 10px 0 0;
color: #fff;
}
.countdown {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
color: #fff;
}
.countdown .days,
.countdown .time {
background: #EDEBEB;
color: #000;
padding: 5px 13px;
border-radius: 8px;
margin: 0 4px;
font-weight: 400;
font-size: 20px;
line-height: 110%;
}
.hero-slogan {
font-weight: 700;
font-size: 32px;
line-height: 100%;
text-align: center;
color: #fff;
margin-bottom: 48px;
}
/* Styles for .col directly within .hero-bentfits */
.hero-bentfits .col {
-webkit-box-flex: 0;
-ms-flex: 0 0 33.333333%;
flex: 0 0 33.333333%;
max-width: 33.333333%;
}
.hero-benefits-card {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
margin-bottom: 16px;
background: #37373D; /* Direct color from all.css */
border-radius: 16px;
height: calc(100% - 16px);
padding: 26px;
}
.hero-benefits-card .ico {
-webkit-box-flex: 0;
-ms-flex: 0 0 56px;
flex: 0 0 56px;
max-width: 56px;
}
.hero-benefits-card .ico img {
max-width: 100%;
display: block;
}
.hero-benefits-card p {
margin: 0;
font-weight: 500;
font-size: 18px;
line-height: 110%;
color: #fff;
padding-left: 11px;
}
/* --- Responsive Hero Styles --- */
@media (max-width: 991px) {
.hero {
padding-bottom: 1px;
border-radius: 0 0 32px 32px;
}
.hero-subtitle {
padding-right: 140px;
}
.hero h1 {
font-size: 40px;
margin-bottom: 25px;
}
.hero h1 sup {
border: 1px solid var(--color-yellow);
color: #fff;
padding: 5px 12px;
background: none;
left: 50%;
top: -32px;
white-space: nowrap;
margin-left: -10px;
}
.hero-time {
font-size: 12px;
padding: 8px 24px 8px 35px;
}
.hero-time .ico {
width: 16px;
height: 16px;
top: 5px;
}
.hero-img {
height: 304px;
border-radius: 15px 15px 30px 30px;
overflow: hidden;
}
.hero-img img,
.hero-img picture img {
width: 100%;
height: 100%;
-o-object-fit: cover;
object-fit: cover;
}
.hero-img-title {
padding: 64px 12px 16px 12px;
margin-bottom: 30px;
flex-direction: column-reverse;
align-items: center;
}
.hero-sale {
margin: 0 0 16px 0;
padding-right: 14px;
}
.hero-sale .counter-wrapper {
padding: 0 0 0 8px;
}
.hero-sale .sale {
font-size: 21px;
padding: 19px 17px;
}
.counter-wrapper p {
font-size: 14px;
margin-right: 5px;
}
.countdown .days,
.countdown .time {
font-size: 14px;
padding: 5px 8px;
}
.hero-slogan {
font-size: 20px;
margin-bottom: 30px;
}
.hero-bentfits.row { /* Target .row specifically within .hero-bentfits */
display: block;
}
.hero-bentfits .col {
max-width: none;
}
.hero-benefits-card {
padding: 20px;
}
.hero-benefits-card p {
font-size: 16px;
}
}
</style> <!-- nominify end --> </div> </div> </div> </div> <!-- ./css/components/accordion.css --> <div id="rec1078810611" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <style type="text/css" id="css-components-accordion">
.od-faq {
padding: 120px 0 80px;
}
.od-faq h2 {
margin-bottom: 80px;
}
.od-acco {
max-width: 768px;
margin: 0px auto;
}
.od-acco-panel {
margin-bottom: 10px;
background: #fff;
transition: all 0.2s ease-in-out;
border-radius: 20px;
overflow: hidden;
}
.od-acco-card {
padding: 0 88px 25px 30px;
}
.od-acco-card p {
margin: 0;
font-weight: 400;
font-size: 18px;
line-height: 120%;
}
.od-acco-card p a {
display: inline-block;
vertical-align: top;
color: #000;
text-decoration: underline;
}
.od-acco-card p a:hover {
text-decoration: none;
}
.od-acco-body {
max-height: 0;
overflow: hidden;
transition: max-height 0.2s ease-out;
}
/* Add: Show body when panel is active */
.od-acco-panel.active .od-acco-body {
display: block;
max-height: 1000px;
}
.od-acco-btn {
position: relative;
border: 0;
padding: 29px 88px 29px 30px;
width: 100%;
text-align: left;
background: #fff;
font-weight: 600;
font-size: 20px;
line-height: 120%;
color: var(--color-text) !important; /* Adjusted from var(--bs-black) */
cursor: pointer; /* Added cursor */
}
.od-acco-btn .caret {
display: block;
position: absolute;
width: 24px;
height: 24px;
top: 26px;
right: 34px;
transition: all 0.2s ease-in-out;
}
.od-acco-btn .caret svg {
fill: #A3A3AB;
}
.od-acco-panel.active .od-acco-body {
display: block;
}
.od-acco-panel.active .od-acco-btn .caret {
transform: rotate(45deg);
}
/* Media Queries */
@media (max-width: 991px) {
.od-faq {
padding: 60px 0 50px;
}
.od-acco-btn {
padding: 25px 72px 25px 30px;
}
.od-acco-btn .caret {
width: 18px;
height: 18px;
top: 22px;
fill: var(--color-text); /* Adjusted from var(--bs-black) */
}
.od-acco-card {
padding: 0 25px 25px 30px;
}
.od-acco-card p {
font-size: 16px;
}
}
</style> <!-- nominify end --> </div> </div> </div> </div> <!-- ./css/components/footer.css --> <div id="rec1078810621" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <style type="text/css" id="css-components-footer">
.od-footer {
padding-top: 80px;
}
.od-bank {
background: #FFD53B;
border-radius: 20px;
display: flex;
align-items: center;
padding: 20px 30px;
margin-bottom: 80px;
}
.od-bank-text {
flex: 1 1 auto;
width: 1%;
text-align: center;
font-weight: 600;
font-size: 24px;
line-height: 120%;
padding: 0 20px;
}
.f-title {
margin-bottom: 30px;
font-weight: 600;
font-size: 20px;
line-height: 100%;
}
.f-list {
font-weight: 400;
font-size: 16px;
line-height: 100%;
padding-bottom: 30px;
}
.f-list li {
display: block;
margin-bottom: 10px;
}
.f-list li a {
display: inline-block;
vertical-align: top;
text-decoration: none;
transition: all 0.2s ease-in-out;
color: #37373D;
}
.f-list li a:hover {
text-decoration: underline;
}
.od-footer-mdl {
padding-bottom: 20px;
}
.od-f-contact {
display: flex;
flex-direction: column;
}
.od-tel {
display: inline-block;
font-weight: 600;
font-size: 24px;
line-height: 100%;
margin-bottom: 10px;
color: var(--color-text); /* Adjusted from var(--bs-black) */
}
.od-email {
display: inline-block;
font-weight: 400;
font-size: 18px;
line-height: 100%;
margin-bottom: 20px;
color: var(--color-text); /* Added default color */
}
.od-email a {
color: var(--color-text); /* Ensure link color consistency */
}
.od-social {
display: flex;
align-items: center;
margin-bottom: 20px;
}
.od-social li {
display: block;
list-style: none;
margin-right: 15px;
}
.od-social li a {
display: block;
}
.od-social li .telegram {
width: 21px;
height: 18px;
}
.od-social li .vk {
width: 26px;
height: 15px;
}
.od-social li .youtube {
width: 24px;
height: 17px;
}
.od-social li .zen {
width: 17px;
height: 17px;
}
.od-social li svg {
fill: #37373D;
transition: all 0.2s ease-in-out;
}
.od-social li a:hover svg {
opacity: 0.7;
}
.od-rewards {
display: flex;
align-items: flex-end;
justify-content: flex-end;
margin: 0 -10px 20px;
}
.od-rewards li {
margin: 0 10px;
}
.od-rewards li img {
max-width: 100%;
}
.od-footer-btm {
display: flex;
align-items: center;
justify-content: space-between;
padding-bottom: 20px;
font-weight: 400;
font-size: 14px;
line-height: 100%;
}
.od-footer-btm > div {
margin-bottom: 20px;
}
/* Media Queries */
@media (max-width: 991px) {
.od-footer {
padding: 0;
}
.od-bank {
padding: 20px;
margin-bottom: 30px;
flex-direction: column;
}
.bank-logo {
margin-bottom: 20px;
}
.od-bank-text {
padding: 0;
width: 100%;
margin-bottom: 20px;
}
.f-list {
font-size: 14px;
padding-bottom: 20px;
}
.f-list li {
margin-bottom: 22px;
}
.two-col {
column-gap: 12px;
column-count: 2;
}
.od-footer-mdl {
position: relative;
padding-bottom: 20px;
margin-bottom: 14px;
}
.od-footer-mdl .od-social {
position: absolute;
z-index: 10;
left: 50%;
transform: translateX(-50%);
margin: 0;
bottom: 10px;
}
.od-tel {
font-size: 20px;
margin-bottom: 12px;
}
.od-email {
font-size: 16px;
margin-bottom: 0;
}
.od-rewards {
margin-top: -45px;
}
.od-footer-btm {
flex-direction: column-reverse;
text-align: center;
font-size: 14px;
}
.od-footer-btm > div {
margin-bottom: 10px;
}
}
</style> <!-- nominify end --> </div> </div> </div> </div> <!-- ./css/components/about.css --> <div id="rec1078810631" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <style type="text/css" id="css-components-about">
/* About Section */
.od-about {
padding-bottom: 120px;
}
.od-top-title {
max-width: 634px;
margin: 0px auto 80px;
font-weight: 400;
font-size: 20px;
line-height: 120%;
text-align: center;
}
.od-about-body {
padding: 68px 52px 30px;
background: #fff;
border-radius: 15px;
position: relative;
z-index: 1;
min-height: 436px;
margin-bottom: 16px;
}
.od-about-body::before {
content: '';
position: absolute;
top: 0;
left: -123px;
width: 605px;
height: 918px;
z-index: -1;
background: radial-gradient(68.94% 68.94% at 50% 50%, rgba(114, 86, 252, 0.1) 12.62%, rgba(255, 255, 255, 0) 100%);
opacity: 0.5;
pointer-events: none;
}
.od-about-img {
overflow: hidden;
position: absolute;
top: 0;
right: 0;
width: 50%;
z-index: 1;
}
.od-about-img img {
width: 100%;
height: 100%;
object-fit: cover;
}
.od-about-title {
max-width: 450px;
margin-bottom: 73px;
font-weight: 600;
font-size: 24px;
line-height: 120%;
}
.od-about-cards {
display: flex;
flex-wrap: wrap;
margin: 0 -8px;
margin-bottom: 60px;
position: relative;
z-index: 2;
}
.od-about-item {
margin: 0 8px 16px;
border-radius: 30px;
padding: 39px 28px;
background: #fff;
flex: 0 0 278px;
max-width: 278px;
font-weight: 400;
font-size: 16px;
line-height: 120%;
}
.od-about-item .ico {
margin-bottom: 11px;
}
.ob-benefit {
display: flex;
align-items: flex-start;
margin-bottom: 35px;
font-weight: 400;
font-size: 16px;
line-height: 100%;
}
.ob-benefit .ico {
flex: 0 0 75px;
max-width: 75px;
}
.ob-benefit .ico img {
max-width: 100%;
}
.ob-benfit-text { /* Typo fix */
flex: 1 1 auto;
width: 1%;
padding-top: 19px;
}
.ob-benfit-text span {
display: block;
font-weight: 600;
font-size: 48px;
line-height: 100%;
margin-bottom: 14px;
}
.od-about-note {
text-align: center;
font-weight: 400;
font-size: 14px;
line-height: 100%;
color: #88888F;
}
/* Media Queries for About Section */
@media (max-width: 1199px) {
.od-about-title {
max-width: 400px;
}
.od-about-item {
flex: 0 0 calc(33.33333% - 16px);
max-width: calc(33.33333% - 16px);
}
.ob-benfit-text span {
font-size: 42px;
}
}
@media (max-width: 991px) {
.od-about {
padding-bottom: 60px;
}
.od-about h2 img { /* H2 styles are in base.css, but img is specific */
width: 62px;
}
.od-about .row div[class*="col-"]:nth-child(2) {
order: 2;
}
.od-about .row div[class*="col-"]:nth-child(4) {
order: 2;
}
.od-about .row div[class*="col-"]:nth-child(4) .ob-benefit {
margin-bottom: 50px;
}
.od-about .row div[class*="col-"]:nth-child(3) .ob-benefit {
margin-bottom: 50px;
}
.od-about .ob-benefit {
margin-bottom: 0px;
font-size: 14px;
text-align: center;
display: block;
}
.od-about .ob-benefit .ico {
margin: 0px auto 15px;
}
.od-about .ob-benefit span {
font-size: 40px;
}
.ob-benfit-text {
padding: 0;
width: 100%;
}
.od-top-title {
font-size: 16px;
margin-bottom: 30px;
}
.od-about-body {
padding: 358px 15px 1px;
border-radius: 15px;
overflow: hidden;
}
.od-about-img {
width: 100%;
left: 0;
height: 328px;
}
.od-about-img img {
border-radius: 15px 15px 15px 100px;
}
.od-about-title {
margin: 0 0 30px 13px;
font-size: 20px;
}
.od-about-cards {
margin: 0 0 30px;
display: block;
}
.od-about-item {
max-width: none;
margin: 0 0 8px;
padding: 23px 28px;
border-radius: 15px;
}
.od-about-title {
margin-left: 13px;
}
}
@media (max-width: 577px) {
.od-about-img img {
object-fit: cover;
}
}
/* About Section Cards from cards.css */
.od-about {
padding-bottom: 120px;
}
.od-top-title {
max-width: 634px;
margin: 0px auto 80px;
font-weight: 400;
font-size: 20px;
line-height: 120%;
text-align: center;
}
.od-about-body {
padding: 68px 52px 30px;
background: #fff;
border-radius: 15px;
position: relative;
z-index: 1;
min-height: 436px;
margin-bottom: 16px;
}
.od-about-body::before {
content: '';
position: absolute;
top: 0;
left: -123px;
width: 605px;
height: 918px;
z-index: -1;
background: radial-gradient(68.94% 68.94% at 50% 50%, rgba(114, 86, 252, 0.1) 12.62%, rgba(255, 255, 255, 0) 100%);
opacity: 0.5;
pointer-events: none;
}
.od-about-img {
overflow: hidden;
position: absolute;
top: 0;
right: 0;
width: 50%;
z-index: 1;
}
.od-about-img img {
width: 100%;
height: 100%;
object-fit: cover;
}
.od-about-title {
max-width: 450px;
margin-bottom: 73px;
font-weight: 600;
font-size: 24px;
line-height: 120%;
}
.od-about-cards {
display: flex;
flex-wrap: wrap;
margin: 0 -8px;
margin-bottom: 60px;
position: relative;
z-index: 2;
}
.od-about-item {
margin: 0 8px 16px;
border-radius: 30px;
padding: 39px 28px;
background: #fff;
flex: 0 0 278px;
max-width: 278px;
font-weight: 400;
font-size: 16px;
line-height: 120%;
}
.od-about-item .ico {
margin-bottom: 11px;
}
.ob-benefit {
display: flex;
align-items: flex-start;
margin-bottom: 35px;
font-weight: 400;
font-size: 16px;
line-height: 100%;
}
.ob-benefit .ico {
flex: 0 0 75px;
max-width: 75px;
}
.ob-benefit .ico img {
max-width: 100%;
}
.ob-benfit-text { /* Typo fix */
flex: 1 1 auto;
width: 1%;
padding-top: 19px;
}
.ob-benfit-text span {
display: block;
font-weight: 600;
font-size: 48px;
line-height: 100%;
margin-bottom: 14px;
}
.od-about-note {
text-align: center;
font-weight: 400;
font-size: 14px;
line-height: 100%;
color: #88888F;
}
/* Media Queries for About Section */
@media (max-width: 1199px) {
.od-about-title {
max-width: 400px;
}
.od-about-item {
flex: 0 0 calc(33.33333% - 16px);
max-width: calc(33.33333% - 16px);
}
.ob-benfit-text span {
font-size: 42px;
}
}
@media (max-width: 991px) {
.od-about {
padding-bottom: 60px;
}
.od-about h2 img {
width: 62px;
}
.od-about .row div[class*="col-"]:nth-child(2) {
order: 2;
}
.od-about .row div[class*="col-"]:nth-child(4) {
order: 2;
}
.od-about .row div[class*="col-"]:nth-child(4) .ob-benefit {
margin-bottom: 50px;
}
.od-about .row div[class*="col-"]:nth-child(3) .ob-benefit {
margin-bottom: 50px;
}
.od-about .ob-benefit {
margin-bottom: 0px;
font-size: 14px;
text-align: center;
display: block;
}
.od-about .ob-benefit .ico {
margin: 0px auto 15px;
}
.od-about .ob-benefit span {
font-size: 40px;
}
.ob-benfit-text {
padding: 0;
width: 100%;
}
.od-top-title {
font-size: 16px;
margin-bottom: 30px;
}
.od-about-body {
padding: 358px 15px 1px;
border-radius: 15px;
overflow: hidden;
}
.od-about-img {
width: 100%;
left: 0;
height: 328px;
}
.od-about-img img {
border-radius: 15px 15px 15px 100px;
}
.od-about-title {
margin: 0 0 30px 13px;
font-size: 20px;
}
.od-about-cards {
margin: 0 0 30px;
display: block;
}
.od-about-item {
max-width: none;
margin: 0 0 8px;
padding: 23px 28px;
border-radius: 15px;
}
.od-about-title {
margin-left: 13px;
}
}
@media (max-width: 577px) {
.od-about-img img {
object-fit: cover;
}
}
/* About Section Styles */
.about {
padding: 120px 0 80px;
}
/* General h2 styles are in base.css. Add specific overrides if any for .about h2 */
/* .about h2 { ... } */
.about-card {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
margin-bottom: 43px;
}
.about-text {
/* Base padding, overridden by .reverse */
padding-right: 114px;
}
.about-card.reverse .about-text {
padding-right: 0;
padding-left: 114px;
}
.about-title {
font-weight: 700;
font-size: 32px;
line-height: 100%;
margin-bottom: 34px;
color: var(--color-black); /* Ensure color consistency */
}
.about-card p {
margin-bottom: 0; /* Overrides base p margin if inside .about-card */
font-weight: 400;
font-size: 18px;
line-height: 100%; /* From all.css, though base.css p has 22px/24px */
text-wrap: balance;
color: var(--color-black);
}
.about-img {
overflow: hidden;
-webkit-box-flex: 0;
-ms-flex: 0 0 60%;
flex: 0 0 60%;
max-width: 60%;
border-radius: 30px;
}
/* Styles for responsive video aspect ratio */
.video-aspect-ratio-16-9 {
position: relative;
padding-bottom: 56.25%; /* 16:9 Aspect Ratio */
height: 0;
overflow: hidden;
}
.video-aspect-ratio-16-9 video {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
-o-object-fit: cover; /* Ensure video covers the area */
object-fit: cover;
}
/* --- Responsive About Section Styles --- */
@media (max-width: 991px) {
.about {
padding: 60px 0 30px;
}
.about-card {
/* margin-bottom: 43px; Remains same as base */
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
background: #fff; /* Card background on mobile */
border-radius: 15px;
}
.about-card.reverse {
-webkit-box-orient: vertical;
-webkit-box-direction: reverse;
-ms-flex-direction: column-reverse;
flex-direction: column-reverse;
}
.about-text,
.about-card.reverse .about-text {
padding: 26px;
width: 100%; /* Ensure text block takes full width */
max-width: 100%;
}
.about-title {
font-size: 20px;
line-height: 20px;
font-weight: 600;
margin-bottom: 20px;
}
.about-card p {
font-size: 16px;
line-height: 110%; /* Adjusted line-height for mobile */
}
.about-card p br {
display: none; /* Remove forced line breaks on mobile */
}
.about-img {
-webkit-box-flex: 0;
-ms-flex: 0 0 auto;
flex: 0 0 auto;
max-width: none;
width: 100%;
height: 200px;
border-radius: 15px;
}
}
</style> <!-- nominify end --> </div> </div> </div> </div> <!-- ./css/components/areas.css --> <!-- ./css/components/who.css --> <!-- ./css/components/compos.css --> <!-- ./css/components/diploma.css --> <div id="rec1078810671" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <style type="text/css" id="css-components-diploma">
/* Diploma Section */
.od-diploma {
padding: 120px 0 60px;
background: var(--color-white);
position: relative;
z-index: 1;
overflow: hidden;
}
.od-diploma h2 {
margin: 0px auto 60px;
max-width: 900px;
}
.od-diploma-item {
max-width: 904px;
margin: 0 auto 40px;
display: flex;
align-items: center;
}
.od-diploma-item:last-child {
margin-bottom: 0;
}
/* Column sizing within .od-diploma-item */
.od-diploma-item > .col {
flex: 0 0 50%;
max-width: 50%;
}
.od-diploma-img {
overflow: hidden;
}
.od-diploma-img img {
display: block;
width: 100%;
height: auto;
max-width: 100%;
}
.od-diploma-title {
font-weight: 700;
font-size: 32px;
line-height: 120%;
color: var(--color-text);
margin-bottom: 40px;
}
.od-diploma-text {
max-width: 364px;
margin: 0 auto;
}
.od-diploma-text p {
font-weight: 400;
font-size: 18px;
line-height: 120%;
color: var(--color-text);
margin-bottom: 0;
}
/* Media Queries for Diploma Section */
@media (max-width: 991px) {
.od-diploma {
padding: 60px 0 30px;
}
.od-diploma h2 img {
width: 30px;
}
.od-diploma-item {
margin-bottom: 30px;
flex-direction: column;
}
.od-diploma-item.reverse {
flex-direction: column-reverse;
}
.od-diploma-item .col {
flex: 0 0 auto;
max-width: none;
width: 100%;
}
.od-diploma-img {
margin-bottom: 30px;
}
.od-diploma-title {
font-size: 24px;
font-weight: 600;
margin-bottom: 20px;
}
.od-diploma-title br {
display: none;
}
.od-diploma-text {
max-width: none;
}
.od-diploma-text p {
font-size: 16px;
margin: 0;
}
}
</style> <!-- nominify end --> </div> </div> </div> </div> <!-- ./css/components/skills.css --> <div id="rec1078810681" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <style type="text/css" id="css-components-skills">
/* Skills Section */
.od-skils {
padding: 80px 0;
background: #fff;
}
.od-skils h2 {
margin-bottom: 80px;
}
.od-skils-body {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
background: #F3F3F6;
border-radius: 30px;
align-items: flex-start;
}
.od-skils-img {
position: relative;
overflow: hidden;
width: 440px;
height: 725px;
border-radius: 30px 0 150px 30px;
}
.od-skils-img > img {
position: relative;
z-index: 1;
display: block;
width: 100%;
height: 100%;
-o-object-fit: cover;
object-fit: cover;
}
.od-skils-img-title {
position: absolute;
z-index: 2;
font-weight: 700;
font-size: 32px;
line-height: 100%;
color: #fff;
left: 49px;
bottom: 49px;
max-width: 278px;
}
.od-hh {
font-weight: 400;
font-size: 24px;
line-height: 100%;
color: #fff;
margin-top: 20px;
}
.od-hh img {
width: 28px;
height: auto;
margin-right: 8px;
border-radius: 0;
vertical-align: middle;
}
.od-skils-text {
-webkit-box-flex: 1;
-ms-flex: 1 1 auto;
flex: 1 1 auto;
width: 1%;
padding: 33px 20px 20px 50px;
}
.od-skils-title {
font-weight: 600;
font-size: 24px;
line-height: 100%;
color: var(--color-text);
margin-bottom: 30px;
}
.od-check-list,
.od-skils-list {
list-style: none;
padding: 0;
margin: 0;
}
#allrecords .od-check-list {
padding-left: 0 !important;
}
#allrecords .od-info-list {
padding-left: 0 !important;
}
.od-check-list {
padding-bottom: 20px;
font-weight: 400;
font-size: 18px;
line-height: 120%;
}
.od-skils-list {
margin-bottom: 0;
font-weight: 400;
font-size: 16px;
line-height: 100%;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
margin: 0 -5px 0 -5px;
max-width: 96%;
}
.od-check-list li {
padding-left: 28px;
position: relative;
margin-bottom: 12px;
color: var(--color-text);
font-size: inherit;
line-height: inherit;
}
.od-skils-list li {
display: -webkit-inline-box;
display: -ms-inline-flexbox;
display: inline-flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
gap: 4px;
min-height: 40px;
padding: 5px 20px 5px 10px;
border-radius: 9px;
background: #fff;
margin: 0 5px 10px 5px;
position: relative;
color: var(--color-text);
font-size: inherit;
line-height: inherit;
white-space: nowrap;
}
.od-check-list li:last-child,
.od-skils-list li:last-child {
margin-bottom: 1;
}
.od-check-list li .ico {
position: absolute;
left: 0;
top: 0px;
width: 20px;
height: 20px;
}
.od-check-list li .ico svg {
fill: #6B5EEC;
}
.od-skils-list li .ico {
-webkit-box-flex: 0;
-ms-flex: 0 0 30px;
flex: 0 0 30px;
max-width: 30px;
height: 30px;
margin-right: 10px;
overflow: hidden;
flex-shrink: 0;
}
.od-skils-list li .ico img {
display: block;
width: 100%;
height: 100%;
border-radius: 0;
}
.od-skils-list li.js-active .tooltip {
display: block;
opacity: 1;
visibility: visible;
}
.skill-q {
position: absolute;
width: 24px;
height: 24px;
background: url("https://static.tildacdn.com/tild3731-3039-4736-b665-646363653265/download.png") center center no-repeat var(--color-yellow);
background-size: 7px 12px;
border-radius: 50%;
cursor: pointer;
top: -10px;
right: -10px;
}
.tooltip {
position: absolute;
z-index: 100;
display: none;
width: 282px;
padding: 16px;
border-radius: 16px;
background: #fff;
border: 1px solid #CDCDD4;
-webkit-box-shadow: 0 0 16px rgba(30, 30, 32, 0.1);
box-shadow: 0 0 16px rgba(30, 30, 32, 0.1);
opacity: 0;
visibility: hidden;
-webkit-transition: opacity 0.2s ease-in-out;
transition: opacity 0.2s ease-in-out;
bottom: 120%;
left: 50%;
-webkit-transform: translateX(-50%);
transform: translateX(-50%);
}
.tooltip p {
font-weight: 400;
font-size: 14px;
line-height: 100%;
margin: 0;
}
.tooltip .close {
position: absolute;
width: 24px;
height: 24px;
top: 10px;
right: 10px;
background: transparent;
border: 0;
cursor: pointer;
}
.tooltip .close::before, .tooltip .close:after {
content: "";
position: absolute;
top: 50%;
left: 50%;
width: 20px;
height: 2px;
border-radius: 2px;
background: #CDCDD4;
}
.tooltip .close:before {
-webkit-transform: translate(-50%, -50%) rotate(45deg);
transform: translate(-50%, -50%) rotate(45deg);
}
.tooltip .close:after {
-webkit-transform: translate(-50%, -50%) rotate(-45deg);
transform: translate(-50%, -50%) rotate(-45deg);
}
.tooltip-title {
font-weight: 700;
font-weight: 700;
font-size: 14px;
line-height: 100%;
margin: 0 0 5px;
}
/* Media Queries for Skills Section */
@media (max-width: 1199px) {
.od-skils-text {
padding-left: 20px;
padding-right: 20px;
}
}
@media (max-width: 991px) {
.od-skils {
padding: 60px 0 30px;
}
.od-skils h2 img {
width: 70px;
}
.od-skils-body {
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
display: block;
padding: 30px;
border-radius: 15px;
}
.od-skils-img {
position: relative;
margin-bottom: 31px;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
width: auto;
height: auto;
}
.od-skils-img > img {
display: none;
}
.mob-od-skils-img {
overflow: hidden;
flex: 0 0 95px;
max-width: 95px;
height: 95px;
border-radius: 100%;
display: block;
}
.mob-od-skils-img img {
width: 100%;
height: 100%;
object-fit: cover;
}
.od-skils-img-title {
position: static;
padding-left: 18px;
font-weight: 600;
font-size: 20px;
line-height: 120%;
color: var(--bs-black);
}
.od-hh {
font-size: 15px;
margin-top: 8px;
color: var(--color-black);
}
.od-hh img {
width: 18px;
height: 18px;
margin-right: 1px;
}
.od-skils-text {
width: 100%;
padding: 0 0 0px;
}
.od-skils-title {
font-size: 20px;
margin-bottom: 20px;
}
.od-check-list li,
.od-skils-list li {
font-size: 14px;
padding-left: 25px;
margin-bottom: 10px;
}
.od-check-list li {
margin-bottom: 8px;
}
.od-check-list li .ico {
width: 20px;
height: 20px;
top: 0;
}
.od-skils-list li .ico {
width: 30px;
height: 30px;
}
.skill-q {
width: 24px;
height: 24px;
}
.tooltip-title {
margin-bottom: 25px;
}
img.d-none {
display: none;
}
.od-skils-list li:first-child .tooltip,
.od-skils-list li:nth-child(3) .tooltip,
.od-skils-list li:nth-child(5) .tooltip {
left: 0;
-webkit-transform: translateX(0);
transform: translateX(0);
}
}
@media (max-width: 577px) {
.od-skils-body{
padding: 30px 15px 20px;
}
.od-skils-list li{
padding: 5px 10px 5px 10px;
}
.od-skils-list li .ico{
margin-right: 5px;
}
#allrecords .od-skils-list {
padding-left: 0 !important;
}
}
/* Show tooltip on hover or focus */
.od-skils-list li:hover > .tooltip,
.od-skils-list li:focus-within > .tooltip {
display: block !important;
opacity: 1;
visibility: visible;
}
</style> <!-- nominify end --> </div> </div> </div> </div> <!-- ./css/components/teachers.css --> <div id="rec1078810691" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <style type="text/css" id="css-components-teachers">
/* Teachers Section */
.od-teachers {
padding: 0 0 120px 0;
background: #F3F3F6;
}
.od-teacher-title {
position: relative;
margin-bottom: 80px;
}
.od-teacher-title h2 {
max-width: 850px;
margin: 0px auto;
font-weight: 700;
font-size: 48px;
line-height: 100%;
text-align: center;
}
.od-teacher-nav {
position: absolute;
right: 0;
bottom: 0;
margin: 0;
padding: 0;
display: flex;
font-size: 0;
}
.slick-arrow {
width: 40px;
height: 40px;
background: #fff;
border-radius: 8px;
-webkit-transition: var(--trans);
transition: var(--trans);
position: relative;
border: 0;
padding: 0;
margin: 0;
font-size: 0;
cursor: pointer;
}
.slick-arrow:before {
content: "";
display: block;
position: absolute;
top: 50%;
left: 50%;
width: 10px;
height: 10px;
border-bottom: 2px solid var(--color-black);
border-right: 2px solid var(--color-black);
-webkit-transition: var(--trans);
transition: var(--trans);
}
.od-comm-nav .slick-arrow:before {
border-right: 0px solid var(--color-black) !important;
}
.slick-arrow.slick-prev:before {
-webkit-transform: translate(-50%, -50%) rotate(135deg);
transform: translate(-50%, -50%) rotate(135deg);
}
.slick-arrow.slick-next {
margin-left: 7px;
right: 0 !important;
}
.slick-arrow.slick-next:before {
-webkit-transform: translate(-50%, -50%) rotate(-45deg);
transform: translate(-50%, -50%) rotate(-45deg);
}
.slick-arrow:hover {
background: #2A2A2E;
}
.slick-arrow:hover:before {
border-color: #fff;
}
.od-teacher-slider {
margin: 0 -8px;
overflow: hidden;
/* opacity: 0; */
/* visibility: hidden; */
/* max-height: 0px; */
}
.od-teacher-slider.slick-initialized {
overflow: visible;
opacity: 1;
max-height: none;
visibility: visible;
}
.od-teacher-slider .slide {
padding: 0 8px;
box-sizing: border-box;
}
.od-teacher-card {
background: #fff;
border-radius: 30px;
position: relative;
padding: 25px;
z-index: 1;
overflow: hidden;
height: 100%;
display: flex;
flex-direction: column;
box-sizing: border-box;
}
.od-teacher-card:before {
content: '';
position: absolute;
z-index: -1;
background: radial-gradient(68.94% 68.94% at 50% 50%, rgba(114, 86, 252, 0.1) 12.62%, rgba(255, 255, 255, 0) 100%);
width: 267px;
height: 307px;
left: -86px;
bottom: -86px;
opacity: 0.5;
}
.od-teacher-card.js-toggle .od-plus {
background: #fff;
}
.od-teacher-card.js-toggle .od-plus svg {
transform: rotate(45deg);
fill: #A3A3AB;
}
.od-teacher-card.js-toggle .od-teacher-descript {
transform: translateX(0);
}
.od-teacher-descript {
position: absolute;
z-index: 10;
background: #fff;
inset: 0;
border-radius: 30px;
padding: 60px 26px 30px;
-webkit-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
-webkit-box-pack: end;
-ms-flex-pack: end;
justify-content: flex-end;
-webkit-transform: translateX(120%);
transform: translateX(120%);
}
.od-plus {
position: absolute;
top: 19px;
right: 19px;
width: 42px;
height: 42px;
background: #F3F3F6;
border-radius: 12px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
z-index: 50;
transition: all 0.2s ease-in-out;
}
.od-plus:before {
content: '';
position: absolute;
z-index: -1;
inset: -8px;
border: 12px solid #fff;
border-radius: 20px;
}
.od-plus svg {
width: 20px;
height: 20px;
fill: #A3A3AB;
transition: all 0.2s ease-in-out;
}
.od-teacher-img {
position: relative;
border-radius: 15px;
overflow: hidden;
margin-bottom: 20px;
height: 371px;
z-index: 1;
}
.od-teacher-img img {
display: block;
width: 100%;
height: 100%;
object-fit: cover;
}
.od-teacher-img::before,
.od-teacher-img:after {
box-sizing: border-box;
content: "";
display: inline-block;
width: 50px;
height: 50px;
position: absolute;
border-right: 20px solid #fff;
border-top: 20px solid #fff;
z-index: 10;
background: transparent;
}
.od-teacher-img:before {
border-top-right-radius: 40px;
top: -20px;
right: 23px;
left: auto;
transform: rotate(0deg);
}
.od-teacher-img:after {
top: 23px;
right: -20px;
border-top-right-radius: 40px;
}
.od-teacher-name {
position: absolute;
bottom: 0;
left: 0;
right: 0;
padding: 0 20px 25px;
color: #fff;
font-weight: 700;
font-size: 32px;
line-height: 120%;
text-align: center;
z-index: 3;
}
.od-teacher-name:before {
content: '';
position: absolute;
z-index: -1;
inset: 0;
background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0, rgba(0, 0, 0, 0.69) 100%);
}
.od-teacher-logo {
position: absolute;
top: 10px;
left: 12px;
width: 42px;
height: 42px;
border-radius: 50%;
overflow: hidden;
z-index: 3;
}
.od-teacher-logo img {
width: 100%;
height: 100%;
display: block;
object-fit: cover;
}
.od-year {
margin-bottom: 20px;
display: flex;
align-items: center;
}
.od-year-num {
flex: 0 0 67px;
max-width: 67px;
height: 58px;
line-height: 58px;
font-weight: 600;
font-size: 24px;
color: var(--color-text);
margin-bottom: 0;
background: #fff;
border-radius: 20px 0 20px 20px;
text-align: center;
}
.od-year-text {
flex: 1 1 auto;
width: 1%;
padding-left: 18px;
font-weight: 400;
font-size: 18px;
line-height: 120%;
color: var(--color-text);
}
.od-descr-item {
display: flex;
align-items: flex-start;
margin-bottom: 25px;
font-size: 16px;
line-height: 120%;
color: var(--color-text);
}
.od-descr-item:last-child {
margin-bottom: 0;
}
.od-descr-text {
flex: 1 1 auto;
width: 1%;
padding-right: 15px;
font-weight: 400;
font-size: 16px;
line-height: 120%;
}
.od-descr-item .ico {
flex: 0 0 42px;
max-width: 42px;
height: 42px;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
overflow: hidden;
border-radius: 50%;
}
.od-descr-item .ico img {
width: 100%;
height: 100%;
object-fit: cover;
}
@media (max-width: 1199px) {
.od-teacher-name {
font-size: 28px;
}
.od-year-text {
font-size: 16px;
}
}
@media (max-width: 991px) {
.od-teachers {
padding: 60px 0;
}
.od-teacher-title {
margin-bottom: 0;
}
.od-teacher-nav {
display: none;
}
.od-teacher-card {
padding: 11px 12px 15px;
border-radius: 15px;
}
.od-teacher-img {
height: 311px;
}
.od-teacher-img:before {
right: 26px;
}
.od-teacher-img:after {
top: 26px;
right: -20px;
}
.od-plus {
width: 42px;
height: 42px;
top: 8px;
right: 8px;
}
.od-plus svg {
width: 20px;
height: 20px;
}
.od-teacher-logo {
top: 8px;
left: 8px;
}
.od-teacher-name {
font-size: 24px;
right: 15px;
left: 15px;
}
.od-year-num {
font-size: 20px;
flex: 0 0 53px;
max-width: 53px;
height: 46px;
line-height: 46px;
border-radius: 10px 0 10px 10px;
}
.od-year-text {
font-size: 14px;
}
.od-descr-text {
font-size: 14px;
}
.od-teacher-title h2 {
font-size: 32px;
}
}
@media (max-width: 577px) {
.od-teachers {
overflow: hidden;
}
.od-teacher-slider {
margin-right: -15px;
}
.od-teacher-slider .slick-list {
padding-right: 46px;
}
.od-teachers h2 {
margin-bottom: 30px;
}
}
@media (max-width: 559px) {
}
.od-teacher-slider .slick-track {
display: flex !important;
margin-left: auto;
margin-right: auto;
}
.od-teacher-slider .slick-slide {
height: auto;
display: flex !important;
align-items: stretch !important;
float: none !important;
box-sizing: border-box;
}
.od-teacher-slider .slick-slide > div {
width: 100%;
display: flex !important;
height: 100%;
box-sizing: border-box;
}
.od-teacher-slider .slick-slide > div > .slide {
width: 100%;
height: 100%;
display: flex;
box-sizing: border-box;
}
/* .od-teacher-card height: 100% is already set, this ensures it fills the .slide container */
/* .od-teacher-card display:flex and flex-direction:column are already set */
</style> <!-- nominify end --> </div> </div> </div> </div> <!-- ./css/components/curator.css --> <div id="rec1078810701" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <style type="text/css" id="css-components-curator">
/* Curator Section Styles */
.curator {
padding: 80px 0;
background: var(--color-white); /* Or a specific background for this section */
}
/* h2 styling from base.css, p styling from base.css */
/* .curator h2 { ... specific overrides ... } */
/* .curator p { ... specific overrides ... } */
.curator .row > .col-lg-6:first-child p {
/* Specific paragraph styling from all.css for the left column text */
max-width: 400px; /* As per original styles */
}
.curator-comm {
background: #F3F3F6; /* Light gray, consider var(--color-bg-light) */
border-radius: 15px;
padding: 20px;
margin-bottom: 20px;
max-width: 380px; /* Max width from all.css */
position: relative; /* For speech bubble triangle */
}
.curator-comm:last-child {
margin-bottom: 0;
}
/* Speech bubble triangle */
.curator-comm::after {
content: '';
position: absolute;
width: 0;
height: 0;
border-style: solid;
}
/* Student bubble (comm-1, typically on the right, triangle points left) */
.curator-comm.comm-1 { /* Student message, pushed right */
margin-left: auto; /* Align to right if parent is flex justify-content-end */
background: var(--color-yellow); /* Yellow background for student */
color: var(--color-black);
}
.curator-comm.comm-1::after {
bottom: 20px;
left: -10px; /* Triangle on the left */
border-width: 10px 10px 10px 0;
border-color: transparent var(--color-yellow) transparent transparent;
}
/* Curator bubble (typically on the left, triangle points right) */
.curator-comm:not(.comm-1) { /* Curator message */
margin-right: auto; /* Default alignment to left */
/* background is #F3F3F6 by default */
}
.curator-comm:not(.comm-1)::after {
bottom: 20px;
right: -10px; /* Triangle on the right */
border-width: 10px 0 10px 10px;
border-color: transparent transparent transparent #F3F3F6;
}
.curator-text {
font-size: 16px;
line-height: 130%;
margin-bottom: 15px;
}
.curator-sign {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
font-size: 14px;
color: var(--color-light);
}
.curator-comm.comm-1 .curator-sign {
color: var(--color-black); /* Text color matches background */
-webkit-box-pack: end;
-ms-flex-pack: end;
justify-content: flex-end; /* Student sign on the right */
}
.curator-comm.comm-1 .curator-sign span {
-webkit-box-ordinal-group: 2;
-ms-flex-order: 1;
order: 1; /* Text after avatar */
margin-left: 10px;
}
/* Curator sign default (avatar first, then text) */
.curator-comm:not(.comm-1) .curator-sign span {
-webkit-box-ordinal-group: 0;
-ms-flex-order: -1;
order: -1; /* Text before avatar for curator - this matches original CSS more closely */
margin-right: 10px;
}
.c-ava {
width: 32px;
height: 32px;
border-radius: 50%;
overflow: hidden;
-ms-flex-negative: 0;
flex-shrink: 0;
}
.c-ava img {
width: 100%;
height: 100%;
-o-object-fit: cover;
object-fit: cover;
}
/* --- Responsive Curator Section --- */
@media (max-width: 991px) { /* lg breakpoint */
.curator {
padding: 60px 0 30px;
}
.curator .row > .col-lg-6:first-child {
text-align: center; /* Center title and paragraph on mobile */
margin-bottom: 30px;
}
.curator .row > .col-lg-6:first-child p {
margin-left: auto;
margin-right: auto;
}
.curator-comm {
margin-left: auto; /* Center bubbles if not full width */
margin-right: auto;
max-width: 90%; /* Allow bubbles to be wider */
}
/* Triangles might need adjustment if bubbles are centered */
}
@media (max-width: 767px) { /* md breakpoint */
.curator-comm {
max-width: 100%; /* Full width for smaller screens */
padding: 15px;
}
.curator-text {
font-size: 14px;
}
.curator-sign {
font-size: 12px;
}
}
/* Styles for the promo section, adapted from all.css */
.promo {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
max-width: 964px;
background: #2A2A2E; /* var(--color-black) if defined and appropriate */
margin: 0 auto 120px; /* Consider adjusting margin based on new context */
border-radius: 30px;
/* Add other relevant promo styles if needed */
}
.promo-img {
-webkit-box-flex: 0;
-ms-flex: 0 0 50%;
flex: 0 0 50%;
max-width: 50%;
height: 298px;
overflow: hidden;
border-radius: 0 30px 30px 30px; /* This creates a specific shape, confirm if needed */
}
.promo-img img {
width: 100%;
height: 100%;
-o-object-fit: cover;
object-fit: cover;
}
.promo-text {
-webkit-box-flex: 0;
-ms-flex: 0 0 50%;
flex: 0 0 50%;
max-width: 50%;
padding: 50px; /* Adjust padding as needed for the new layout */
}
.promo-text p {
font-weight: 400;
font-size: 16px;
line-height: 100%; /* Or 1.2, 1.3 etc. for better readability if it's just 100% */
color: #fff; /* var(--color-white) or similar if defined */
margin-bottom: 0; /* Remove default paragraph margin if text is short */
}
.promo-title {
font-weight: 700;
font-size: 32px;
line-height: 100%; /* Or 1.2, 1.3 etc. */
color: #fff; /* var(--color-white) or similar if defined */
margin-bottom: 14px;
}
/* Responsive adjustments for promo if needed */
@media (max-width: 991px) {
.promo {
margin-bottom: 60px; /* Copied from all.css */
-webkit-box-orient: vertical;
-webkit-box-direction: reverse;
-ms-flex-direction: column-reverse;
flex-direction: column-reverse;
}
.promo-img {
-webkit-box-flex: 0;
-ms-flex: 0 0 auto;
flex: 0 0 auto;
max-width: none;
width: 100%;
height: 226px;
overflow: hidden;
border-radius: 30px; /* Simpler border radius for stacked layout */
}
.promo-text {
-webkit-box-flex: 0;
-ms-flex: 0 0 auto;
flex: 0 0 auto;
max-width: none;
width: 100%;
padding: 30px 20px 30px 40px; /* Adjusted padding */
}
.promo-text p {
margin-bottom: 0;
}
}
/* Further adjustments for smaller screens if necessary */
@media (max-width: 767px) {
.promo-title {
font-size: 28px; /* Slightly smaller for mobile */
}
.promo-text {
padding: 20px; /* Consistent padding for smaller screens */
}
}
</style> <!-- nominify end --> </div> </div> </div> </div> <!-- ./css/components/comments.css --> <div id="rec1078810711" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <style type="text/css" id="css-components-comments">
/* od-comments */
.od-comments {
margin-bottom: 60px;
}
/* od-rate-info */
.od-rate-info {
margin: 24px auto 0;
position: relative;
color: var(--color-black);
background: var(--color-yellow);
border-radius: 15px;
padding: 6px 12px;
font-weight: 400;
font-size: 14px;
line-height: 120%;
width: 175px;
}
.od-rate-info:before {
content: '';
position: absolute;
bottom: 100%;
left: 50%;
transform: translateX(-50%);
width: 34px;
height: 11px;
background: url("https://static.tildacdn.com/tild6663-3666-4264-a364-306265323931/union-arrow.png") 0 0 no-repeat;
background-size: 100%;
}
.od-rate-info span {
font-weight: 600;
font-size: 16px;
}
.od-comments h2 {
margin-bottom: 20px !important;
}
/* od-comm-nav */
.od-comm-nav {
display: flex;
justify-content: flex-end;
margin-bottom: 40px;
z-index: 500;
}
/* od-comm-slider */
.od-comm-slider {
overflow: hidden;
margin: 0 -8px;
}
.od-comm-slider.slick-initialized {
overflow: visible;
opacity: 1;
max-height: none;
visibility: visible;
}
.od-comm-slider .slick-track {
display: flex;
}
.od-comm-slider .slide {
padding: 0 8px;
height: auto !important;
}
/* od-comm-card */
.od-comm-card {
border-radius: 30px;
background: #fff;
padding: 20px 30px 30px;
display: flex;
flex-direction: column;
height: calc(100%);
}
.od-comm-card p {
margin-bottom: 30px;
flex: 1;
font-weight: 400;
font-size: 16px;
line-height: 120%;
}
/* od-comm-top */
.od-comm-top {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 30px;
}
/* od-comm-name */
.od-comm-name {
font-weight: 400;
font-size: 16px;
line-height: 100%;
letter-spacing: 0px;
}
/* od-comm-rating */
.od-comm-rating {
display: flex;
align-items: center;
}
/* od-comm-num */
.od-comm-num {
font-weight: 600;
font-size: 16px;
line-height: 100%;
margin-right: 15px;
}
/* od-stars */
.od-stars {
display: flex;
}
.od-stars span {
margin-left: 1px;
flex: 0 0 22px;
max-width: 22px;
height: 22px;
}
/* od-comm-subtitle */
.od-comm-subtitle {
font-weight: 400;
font-size: 16px;
line-height: 120%;
color: #6B5EEC;
margin-bottom: 15px;
}
/* od-comm-title */
.od-comm-title {
font-weight: 600;
font-size: 20px;
line-height: 120%;
margin-bottom: 15px;
}
/* od-more */
.od-more {
display: inline-block;
text-decoration: none;
font-weight: 400;
font-size: 14px;
line-height: 120%;
color: #A3A3AB;
}
/* ======================================================================= */
.od-comm-nav .slick-arrow {
position: relative;
font-size: 0;
width: 40px;
height: 40px;
background: #fff;
border: none;
border-radius: 8px;
cursor: pointer;
}
.od-comm-nav .slick-arrow:before {
content: '';
position: absolute;
top: 50%;
left: 50%;
width: 13px;
height: 13px;
border-left: 2px solid #1F1F1F;
border-bottom: 2px solid #1F1F1F;
}
.od-comm-nav .slick-arrow:hover {
background: #E6E6EC;
}
.od-comm-nav .slick-prev {
margin-left: 0;
}
.od-comm-nav .slick-prev:before {
transform: translate(-50%, -50%) rotate(45deg);
margin-left: 2px;
}
.od-comm-nav .slick-next:before {
transform: translate(-50%, -50%) rotate(-135deg);
margin-left: -2px;
}
.od-comm-nav .slick-next {
/* margin-left: 10px; is now handled by the general .slick-arrow rule */
}
.od-comm-modal{
display: none;
border-radius: 30px;
p{
font-weight: 400;
font-size: 16px;
line-height: 120%;
margin: 0;
}
}
.fancybox-content{
max-width: 572px !important;
padding: 28px !important;
}
.fancybox-active .od-comm-modal{
display: block;
}
@media (max-width: 991px) {
.od-comments {
margin-bottom: 60px;
}
.od-comm-nav {
display: none;
}
}
/* Mobile adjustments for comment card layout */
@media (max-width: 576px) {
.od-comm-top {
flex-direction: column;
align-items: flex-start; /* Align items to the start of the column */
}
.od-comm-rating {
order: 1; /* Stars and rating first */
margin-bottom: 8px; /* Add some space between rating and name */
/* Optionally, adjust layout within od-comm-rating if needed */
/* display: flex; */
/* flex-direction: column; */
/* align-items: flex-start; */
}
.od-comm-name {
order: 2; /* Name second */
}
.od-comm-card {
padding: 20px; /* Slightly reduce padding on mobile for the card itself */
}
.od-comm-top {
margin-bottom: 20px; /* Reduce margin below the top section */
}
}
</style> <!-- nominify end --> </div> </div> </div> </div> <!-- ./css/components/leaders.css --> <!-- ./css/components/promo.css --> <div id="rec1078810731" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <style type="text/css" id="css-components-promo">
/* Promo Section */
.od-promo {
position: relative;
z-index: 1;
padding-bottom: 60px;
}
.od-promo:before {
content: '';
position: absolute;
inset: 309px 0 0;
z-index: -1;
background: #2A2A2E;
}
div.od-promo-box {
border-radius: 30px 150px 30px 30px;
position: relative;
z-index: 1;
padding: 391px 26px 6px;
margin-bottom: 26px;
overflow: hidden;
}
div.od-promo-box:before {
content: '';
position: absolute;
z-index: 1;
inset: 0;
background: linear-gradient(180deg, rgba(42, 42, 46, 0) 55.75%, rgba(42, 42, 46, 0.77) 84.51%);
border-radius: 30px 150px 30px 30px;
}
div.od-promo-box .od-promo-bg {
position: absolute;
inset: 0;
z-index: -1;
overflow: hidden;
}
div.od-promo-box .od-promo-bg img {
width: 100%;
height: 100%;
object-fit: cover;
}
div.od-promo-box h2 {
text-align: center;
color: #fff;
font-weight: 800;
font-size: 56px;
line-height: 110%;
margin-bottom: 26px;
position: relative;
z-index: 2;
}
div.od-promo-box h2 + p {
max-width: 729px;
margin: 0px auto 33px;
font-weight: 400;
font-size: 20px;
line-height: 100%;
color: #fff;
text-align: center;
position: relative;
z-index: 2;
}
/* promo advantages list */
.promo-benefits {
position: relative;
z-index: 10;
}
.promo-benefits .col {
flex: 0 0 33.3333%;
max-width: 33.3333%;
}
.promo-card {
padding: 20px 30px 20px;
text-align: center;
font-weight: 500;
font-size: 18px;
line-height: 100%;
color: #fff;
background: #2A2A2E;
border-radius: 30px;
margin-bottom: 16px;
}
.promo-card .ico {
margin-bottom: 17px;
}
.od-promo-list {
position: relative;
z-index: 2;
display: flex;
flex-wrap: wrap;
margin: 0 -9px;
font-weight: 400;
font-size: 16px;
line-height: 120%;
}
.od-promo-list li {
margin: 0 9px 18px;
flex: 0 0 calc(25% - 18px);
max-width: calc(25% - 18px);
background: #fff;
padding: 38px 20px 40px;
border-radius: 30px;
}
.od-promo-list li span {
display: block;
font-weight: 700;
font-size: 48px;
line-height: 100%;
margin-bottom: 12px;
}
.radio-sale { /* Often related to pricing cards */
font-weight: 400;
font-size: 14px;
line-height: 100%;
color: var(--bs-black);
padding: 6px 7px;
background: var(--color-yellow);
border-radius: 6px;
}
.od-promo-info {
padding: 40px 30px 30px;
}
.od-promo-info .counter-wrapper {
padding: 0;
margin-bottom: 20px;
}
.od-promo-info .counter-wrapper p {
color: var(--bs-black);
}
.od-info-title {
font-weight: 700;
font-size: 40px;
line-height: 100%;
margin-bottom: 15px;
}
.od-info-title + p {
margin-bottom: 20px;
max-width: 435px;
font-size: 16px;
line-height: 120%;
}
.od-last {
font-weight: 400;
font-size: 18px;
line-height: 100%;
margin-bottom: 3px;
text-decoration: line-through;
color: #A3A3AB;
}
.od-price {
font-weight: 600;
font-size: 40px;
line-height: 100%;
margin-bottom: 17px;
position: relative;
}
.od-price .radio-sale {
position: relative;
border-radius: 20px;
top: -15px;
left: 5px;
padding: 4px 12px;
background: var(--color-yellow);
}
.od-start {
display: inline-block;
vertical-align: top;
margin-bottom: 20px;
background: #fff;
border-radius: 20px;
padding: 6px 12px;
font-weight: 400;
font-size: 16px;
line-height: 100%;
}
.od-start span {
color: #6B5EEC;
}
.od-info-list {
display: flex;
flex-wrap: wrap;
margin: 0 -15px;
font-weight: 400;
font-size: 16px;
line-height: 120%;
}
.od-info-list li {
display: block;
position: relative;
padding-left: 35px;
margin: 0 15px 35px;
flex: 0 0 calc(50% - 30px);
max-width: calc(50% - 30px);
}
.od-info-list li .ico {
width: 24px;
position: absolute;
top: 0;
left: 0;
}
.od-info-list li .ico img {
max-width: 100%;
}
/* Media Queries for Promo */
@media (max-width: 1199px) {
.od-promo-list li span {
font-size: 44px;
}
}
/* >>> MOBILE (≤991 px) — keeps tablet & phones in one place <<< */
@media (max-width: 991px) {
.od-promo-info .counter-wrapper {
display: none;
}
/* Step 2: .od-promo */
.od-promo {
padding-bottom: 24px;
padding: 0;
background: #2A2A2E;
border-radius: 0 100px 0 0;
overflow: hidden;
}
.od-promo::before {
top: auto;
bottom: 0;
left: 0;
right: 0;
height: 807px;
}
/* Step 3: .od-promo-box */
div.od-promo-box {
margin: 0 -10px 17px;
padding: 300px 0 0;
background-size: auto 617px;
border-radius: 0 100px 15px 15px;
overflow: hidden;
}
div.od-promo-box::before {
bottom: auto;
height: 369px;
border-radius: 0 100px 15px 15px;
}
div.od-promo-box .od-promo-bg {
border-radius: 0 100px 15px 15px;
height: 369px;
}
div.od-promo-box h2 {
font-size: 32px;
font-weight: 600;
margin-bottom: 30px;
}
/* Promo advantages layout adjustments */
.promo-benefits {
margin: 0;
display: block;
}
.promo-benefits .col {
max-width: none;
}
/* Promo advantages layout adjustments */
.promo-benefits {
margin: 0;
display: block;
}
.promo-benefits .col {
max-width: none;
}
.promo-card {
max-width: none;
background: #37373D;
display: flex;
align-items: center;
font-size: 16px;
height: 96px;
padding: 20px 20px 20px 32px;
border-radius: 16px;
text-align: left;
}
.promo-card .ico {
margin: 0 20px 0 0;
}
/* Step 4: .od-promo-list */
.od-promo-list {
display: block;
margin: 0;
}
.od-promo-list li {
width: 100%;
max-width: 100%;
margin: 0 0 18px 0;
padding: 19px 10px 10px;
border-radius: 15px;
text-align: center;
}
/* Step 5: .od-promo-info */
.od-promo-info {
background: #F3F3F6;
padding: 30px 15px 10px;
border-radius: 15px;
margin-bottom: 30px;
overflow: hidden;
}
/* Step 6: .od-promo-form & nested elements */
/* 6.1 Wrapper .od-promo-form (parent of .row that contains info and form column) */
.od-promo-form {
background: transparent;
padding: 0;
border-radius: 15px;
display: block;
}
.od-promo-form:before {
display: none;
}
.od-promo-form .row {
display: block;
margin: 0;
}
/* 6.2 Inner form – shrink padding */
#od-promo .od-form {
padding: 36px 15px;
border-radius: 29px;
max-width: none;
margin: 60px 16px 30px;
position: relative;
z-index: 10;
background: #fff;
}
#od-promo .od-form:after {
content: "";
inset: 0;
position: absolute;
z-index: -1;
background: #fff;
}
#od-promo .od-form:before {
content: "";
inset: -30px -15px -30px;
position: absolute;
z-index: -1;
background: var(--color-yellow);
border-radius: 0;
}
/* 6.3 Radio buttons – tighter height & padding */
#od-promo .od-form .od-radio-item label {
height: 51px;
padding: 5px 18px 5px 41px;
display: flex;
align-items: center;
line-height: normal; /* Ensure text fits if default is too large */
}
/* 6.4 Info list – switch to vertical list on mobile */
.od-promo-info .od-info-list {
display: block;
margin: 0;
}
.od-promo-info .od-info-list li {
max-width: none;
width: 100%;
margin: 0 0 16px 0;
/* padding-left: 35px; is inherited from desktop and should provide space for the icon */
}
.od-info-list li .ico {
top: -4px;
}
/* 6.5 Typography tweaks */
.od-promo-info .od-info-title {
font-size: 32px;
margin-bottom: 30px;
text-align: center;
}
.od-promo-info .od-info-title + p {
text-align: center;
margin: 0px auto 30px;
font-size: 16px;
}
.od-price .radio-sale {
position: absolute;
top: -15px;
right: 0;
left: auto;
font-size: 16px;
padding: 3px 8px;
border-radius: 15px;
line-height: 1.2;
background: var(--color-yellow);
}
.od-radio-item label::before {
top: 15px;
}
.od-radio-item label::after {
top: 18px;
}
.od-start {
margin-bottom: 35px;
}
}
/* Styling for the promo code status message text */
.od-code .promocode-status .tn-atom {
display: block; /* Ensure it appears on its own line below the input */
width: 100%; /* Make it take the full width of its parent container (.promocode-status) */
box-sizing: border-box; /* Ensures padding/border are included in the 100% width */
font-size: 12px; /* Changed from 14px */
line-height: 1.4; /* Improves readability for a line of text. */
margin-top: 5px; /* Provides some space between the input field and the message. */
/* Color is dynamically set by the JavaScript via inline styles */
}
/* Layout for the promo code input row to position status message correctly */
.od-code .od-code-row {
display: flex;
flex-wrap: wrap;
align-items: center; /* Align items vertically centered on the line */
gap: 8px; /* Space between input and button if on the same line */
width: 100%; /* Make the row take full width of its parent */
box-sizing: border-box; /* Ensure padding is included in the width */
padding: 0 10px; /* Add 10px padding on left and right to narrow content area */
}
/*
Using display: contents; on .form-group allows its children (input and .promocode-status)
to become direct flex items of the parent .od-code-row.
This is useful for reordering them with the button.
This assumes .form-group here is a simple wrapper without critical styling like padding/borders.
*/
.od-code .od-code-row .form-group {
display: contents;
}
/* Promo code input field styling within the flex layout */
.od-code .od-code-row input.promo-code-input {
order: 1; /* First item */
flex-grow: 1; /* Allows input to take available horizontal space */
flex-basis: 0; /* Start with a basis of 0 for flex calculation */
width: 0; /* Override .form-control's width: 100% and let flex-grow determine size from basis */
min-width: 150px; /* A reasonable minimum for a promo code input */
height: 38px; /* Consistent height with button */
box-sizing: border-box;
}
/* Promo code apply button styling within the flex layout */
.od-code .od-code-row .promocode-button {
order: 2; /* Second item */
flex-shrink: 0; /* Prevent button from shrinking */
height: 38px; /* Consistent height with input */
box-sizing: border-box;
padding: 0 0.75rem; /* Adjust padding for fixed height */
display: inline-flex; /* For vertical centering of text */
align-items: center;
justify-content: center;
}
/* Promo code status container styling within the flex layout */
.od-code .od-code-row .promocode-status {
order: 3; /* Third item, will appear on the next line */
flex-basis: 100%; /* Takes full width, forcing it to a new line */
/* The .tn-atom inside this will have margin-top for spacing */
}
</style> <!-- nominify end --> </div> </div> </div> </div> <!-- ./css/components/program.css --> <div id="rec1078810741" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <style type="text/css" id="css-components-program">
/* Program Section Styles */
.od-programm {
padding: 82px 0 60px;
background: #fff;
}
.od-title-wrap {
display: flex;
align-items: center;
justify-content: space-between;
}
.od-dwn {
display: inline-flex;
align-items: center;
text-decoration: none;
border: 1px solid #1E1E20;
border-radius: 8px;
padding: 7px 17px;
font-weight: 400;
font-size: 16px;
line-height: 100%;
margin-bottom: 80px;
}
.od-dwn .ico {
margin-right: 10px;
flex: 0 0 23px;
max-width: 23px;
height: 22px;
}
.od-dwn .ico svg {
fill: var(--color-text);
transition: all 0.2s ease-in-out;
}
.od-dwn:hover,
.od-dwn:focus {
border-color: var(--color-yellow);
background: var(--color-yellow);
color: var(--color-black);
text-decoration: none;
}
.od-dwn:hover .ico svg,
.od-dwn:focus .ico svg {
fill: var(--color-black);
}
.od-programm-info {
margin: 0 -12px;
padding-bottom: 38px;
display: flex;
align-items: center;
justify-content: center;
}
.od-info-num {
display: flex;
align-items: center;
margin: 0 12px 24px;
font-weight: 400;
font-size: 18px;
line-height: 100%;
}
.od-info-num strong {
margin-right: 10px;
padding: 5px 10px;
font-weight: 600;
font-size: 20px;
line-height: 100%;
border-radius: 8px;
background: #F3F3F6;
}
.od-programm-box {
max-width: 964px;
overflow: hidden;
margin: 0 auto 0px;
position: relative;
z-index: 1;
}
.od-card {
background: #F3F3F6;
border-radius: 5px;
margin-bottom: 6px;
transition: all 0.2s ease-in-out;
}
.od-card.js-toggle { background: #fff; }
.od-card.js-toggle .od-card-btn .ico { transform: translateY(-50%) rotate(45deg); }
.od-card.js-toggle .od-card-body { max-height: 3000px; }
.od-card.js-toggle .bonus-label { opacity: 0; }
.od-card-btn {
display: flex;
flex-direction: column;
justify-content: center;
position: relative;
font-weight: 600;
font-size: 24px;
line-height: 100%;
padding: 23px 86px 23px 21px;
height: 103px;
color: var(--color-text);
transition: all 0.2s ease-in-out;
cursor: pointer;
border-radius: 5px;
}
.od-card-btn.no-hover { pointer-events: none; }
.od-card-btn.has-bg { background: #FFEB9F; }
.od-card-btn .ico {
position: absolute;
top: 50%;
transform: translateY(-50%);
width: 24px;
height: 24px;
right: 33px;
transition: all 0.2s ease-in-out;
}
.od-card-btn .ico svg { fill: #A3A3AB; }
.od-card-btn .bonus-label {
position: absolute;
display: flex;
padding: 6px 15px;
font-weight: 400;
font-size: 14px;
line-height: 100%;
background: #2A2A2E;
color: #fff;
border-radius: 3px 3px 0 0;
margin-right: 10px;
bottom: 0;
left: 21px;
}
.od-card-labels {
display: flex;
flex-wrap: wrap;
position: absolute;
top: 0;
left: 21px;
}
.od-card-labels > span {
display: flex;
padding: 6px 15px;
font-weight: 400;
font-size: 14px;
line-height: 100%;
background: #FFEB9F;
border-radius: 0 0 3px 3px;
margin-right: 10px;
}
.od-card-labels > span i {
display: inline-block;
vertical-align: top;
font-weight: 700;
font-style: normal;
margin-right: 3px;
}
.headline {
padding: 43px 20px;
background: #2A2A2E;
color: #fff;
text-align: center;
font-weight: 600;
font-size: 24px;
line-height: 100%;
}
.od-card-body { max-height: 0; overflow: hidden; }
.od-card-body .inner { padding: 0 109px 22px 21px; }
.od-programm-box-body {
max-height: 520px;
overflow-y: auto;
scrollbar-width: none;
}
.od-list {
font-weight: 400;
font-size: 16px;
line-height: 120%;
padding-left: 12px;
}
.od-list li {
position: relative;
display: block;
padding-left: 16px;
margin-bottom: 12px;
}
.od-list li:before {
content: "";
position: absolute;
left: 0;
top: 7px;
width: 4px;
height: 4px;
border-radius: 50%;
background: var(--color-black);
}
.programm-acces {
margin: 0 auto 60px;
max-width: 964px;
}
.programm-acces img { margin-right: 16px; }
.programm-acces-inner {
display: flex;
align-items: center;
justify-content: center;
background: var(--color-yellow);
padding: 40px;
font-weight: 600;
font-size: 24px;
line-height: 100%;
border-radius: 10px 10px 30px 30px;
}
@media (max-width: 991px) {
.od-programm { padding: 30px 0; }
.od-title-wrap { flex-direction: column; align-items: center; text-align: center; padding-bottom: 10px; }
.od-dwn { font-size: 14px; margin-bottom: 30px; }
.od-programm-info { padding-bottom: 26px; margin: 0 -5px; flex-wrap: wrap; }
.od-info-num { margin: 0 5px 4px; font-size: 14px; }
.od-info-num strong { margin-right: 4px; font-size: 14px; font-weight: 500; padding: 5px; }
.od-programm-box { margin-bottom: 0px; }
.od-card-btn { padding: 23px 57px 23px 15px; height: 96px; font-size: 18px; font-weight: 500; }
.od-card-btn .ico { right: 24px; }
.od-card-labels { left: 15px; }
.od-card-labels > span { padding: 5px 10px; margin-right: 5px; }
.od-card-labels > span i { font-weight: 500; }
/*.programm-acces { display: none; }*/
.od-card-body .inner { padding: 0 15px 15px 15px; }
.od-list { font-size: 14px; }
.programm-acces-inner {
display: flex;
align-items: center;
justify-content: center;
background: var(--color-yellow);
padding: 25px;
font-weight: 600;
font-size: 14px;
line-height: 100%;
border-radius: 10px 10px 30px 30px;
}
}
</style> <!-- nominify end --> </div> </div> </div> </div> <!-- ./css/components/custom-modal.css --> <div id="rec1078810751" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <style type="text/css" id="css-components-custom-modal">
/* Custom Modal Styles */
.custom-modal-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.6); /* Semi-transparent overlay */
display: none; /* Hidden by default */
justify-content: center;
align-items: center;
z-index: 9998; /* Below the modal content, but above everything else */
}
/* Apply these styles only when #pop-up is a custom-modal but NOT a fancybox content */
#pop-up.custom-modal-active:not(.fancybox-content) {
display: block; /* Or flex, grid, etc., depending on content styling */
position: fixed; /* Fixed position to stay in view */
left: 50%;
top: 50%;
transform: translate(-50%, -50%); /* Center the modal */
background-color: #fff;
padding: 40px 30px 30px; /* New padding */
border-radius: 30px; /* New border-radius */
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
z-index: 9999; /* Above the overlay */
width: 376px; /* Fixed width */
box-sizing: border-box;
}
/* Style for the close button you will add inside #pop-up */
#pop-up .custom-modal-close-btn {
position: absolute;
top: 20px; /* Relative to parent #pop-up's padding */
right: 20px; /* Relative to parent #pop-up's padding */
width: 30px;
height: 30px;
background: none;
border: none;
font-size: 2rem; /* Larger 'x' */
line-height: 1; /* Better vertical alignment */
padding: 0;
cursor: pointer;
color: #888;
z-index: 10; /* Ensure it is above other content */
text-align: center;
transition: color 0.2s, opacity 0.2s;
}
/* Apply same styles for the hero popup modal */
#hero-pop-up.custom-modal-active:not(.fancybox-content) {
display: block;
position: fixed;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
background-color: #fff;
padding: 40px 30px 30px;
border-radius: 30px;
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
z-index: 9999;
width: 376px;
box-sizing: border-box;
}
#hero-pop-up .custom-modal-close-btn {
position: absolute;
top: 20px;
right: 20px;
width: 30px;
height: 30px;
background: none;
border: none;
font-size: 2rem;
line-height: 1;
padding: 0;
cursor: pointer;
color: #888;
z-index: 10;
text-align: center;
transition: color 0.2s, opacity 0.2s;
}
#hero-pop-up .custom-modal-close-btn:hover {
color: #333;
opacity: 0.8;
}
#hero-pop-up:not(.custom-modal-active) {
display: none !important;
}
#pop-up .custom-modal-close-btn:hover {
color: #333;
opacity: 0.8;
}
/* Hide #pop-up by default when it's not active as our custom modal */
#pop-up:not(.custom-modal-active) {
display: none !important; /* Important to override other potential display styles */
}
</style> <!-- nominify end --> </div> </div> </div> </div> <!-- ./css/components/course.css --> <div id="rec1082340136" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <style type="text/css" id="css-components-course">
.course {
padding-top: 120px;
}
.course-body {
background: #fff;
border-radius: 32px;
}
.course-top {
margin-bottom: 36px;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
}
.course-img {
overflow: hidden;
height: 457px;
border-radius: 0 30px 0 90px;
-webkit-box-flex: 0;
-ms-flex: 0 0 49%;
flex: 0 0 49%;
max-width: 49%;
}
.course-img img {
width: 100%;
height: 100%;
-o-object-fit: cover;
object-fit: cover;
}
.course-text {
-webkit-box-flex: 0;
-ms-flex: 0 0 51%;
flex: 0 0 51%;
max-width: 51%;
padding: 60px 70px 0 50px;
}
.course-text p {
font-weight: 400;
font-size: 24px;
line-height: 120%;
text-wrap: balance;
margin-bottom: 0;
}
.salary {
padding: 0 50px 58px;
}
.salary-title {
font-weight: 700;
font-size: 32px;
line-height: 100%;
margin-bottom: 15px;
max-width: 376px;
}
.salary-row {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: end;
-ms-flex-align: end;
align-items: flex-end;
margin: 0 -4px;
}
.salary-card {
padding: 0 4px;
}
.salary-card.salary-1 {
-webkit-box-flex: 0;
-ms-flex: 0 0 27%;
flex: 0 0 27%;
max-width: 27%;
}
.salary-card.salary-2 {
-webkit-box-flex: 0;
-ms-flex: 0 0 31%;
flex: 0 0 31%;
max-width: 31%;
}
.salary-card.salary-3 {
-webkit-box-flex: 0;
-ms-flex: 0 0 42%;
flex: 0 0 42%;
max-width: 42%;
}
.salary-subtitle {
font-weight: 400;
font-size: 18px;
line-height: 100%;
margin-bottom: 14px;
}
.salary-price {
font-weight: 600;
font-size: 32px;
line-height: 100%;
margin-bottom: 30px;
}
.salary-vision {
border-radius: 12px 12px 4px 4px;
}
.salary-1 .salary-vision {
height: 60px;
background: #FFE06D;
}
.salary-2 .salary-vision {
height: 80px;
background: #FFD53B;
}
.salary-3 .salary-vision {
height: 120px;
background: #F5C218;
}
@media (max-width: 991px) {
.course {
padding-top: 60px;
}
.course-top {
margin-bottom: 25px;
-webkit-box-orient: vertical;
-webkit-box-direction: reverse;
-ms-flex-direction: column-reverse;
flex-direction: column-reverse;
}
.course-img {
-webkit-box-flex: 0;
-ms-flex: 0 0 auto;
flex: 0 0 auto;
max-width: none;
width: 100%;
}
.course-text {
padding: 15px;
-webkit-box-flex: 0;
-ms-flex: 0 0 auto;
flex: 0 0 auto;
max-width: none;
width: 100%;
}
.course-text p {
font-size: 20px;
}
.salary-title {
font-size: 24px;
margin-bottom: 30px;
}
.salary-row {
margin: 0;
display: block;
}
.salary-card {
max-width: none;
padding: 0;
margin: 0 0 16px;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
}
.salary-card > div {
-webkit-box-flex: 0;
-ms-flex: 0 0 135px;
flex: 0 0 135px;
max-width: 135px;
}
.salary-subtitle {
font-size: 14px;
margin-bottom: 8px;
}
.salary-price {
font-size: 20px;
margin-bottom: 0;
font-weight: 600;
}
.salary-vision {
height: 44px !important;
border-radius: 4px 12px 4px 4px;
}
.salary-1 .salary-vision {
-webkit-box-flex: 0;
-ms-flex: 0 0 65px;
flex: 0 0 65px;
max-width: 65px;
}
.salary-2 .salary-vision {
-webkit-box-flex: 0;
-ms-flex: 0 0 105px;
flex: 0 0 105px;
max-width: 105px;
}
.salary-3 .salary-vision {
-webkit-box-flex: 0;
-ms-flex: 0 0 161px;
flex: 0 0 161px;
max-width: 161px;
}
.salary {
padding: 0 15px 15px;
}
}
</style> <!-- nominify end --> </div> </div> </div> </div> <!-- ./css/components/you-work.css --> <div id="rec1082340761" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <style type="text/css" id="css-components-you-work">
/* Styles for the 'you-work' section */
.you-work {
padding: 120px 0;
}
.tabs {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
}
.tabs label {
-webkit-box-ordinal-group: 2;
-ms-flex-order: 1;
order: 1;
display: block;
padding: 7px 9px;
margin: 0 0 40px;
background: #fff;
cursor: pointer;
font-weight: 500;
font-size: 18px;
line-height: 100%;
text-align: center;
}
.tabs label span {
display: block;
background: #fff;
padding: 24px 24px;
border-radius: 70px;
-webkit-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out;
}
.tabs label:hover span {
background: #F3F3F6;
}
.tabs label.tabone {
border-radius: 100px 0 0 100px;
padding-right: 6px;
}
.tabs label.tabtwo {
border-radius: 0 100px 100px 0;
padding-left: 6px;
}
.tabs .tab {
-webkit-box-ordinal-group: 100;
-ms-flex-order: 99;
order: 99;
-webkit-box-flex: 1;
-ms-flex-positive: 1;
flex-grow: 1;
width: 100%;
display: none;
background: #fff;
padding: 30px;
padding-bottom: 60px;
border-radius: 30px;
overflow: hidden;
}
.tabs .tab.tab-2 .slick-arrow {
background: #F3F3F6;
}
.tabs .tab.tab-2 .slick-arrow:hover {
background: #2A2A2E;
}
.tabs .tab.tab-2 .slick-arrow:hover:before {
border-color: #fff;
}
.tabs input[type=radio] {
display: none;
}
.tabs input[type=radio]:checked + label span {
background: var(--color-yellow);
}
.tabs input[type=radio]:checked + label + .tab {
display: block;
}
.work-slider-wrapper {
overflow: visible; /* allow nav to show fully */
border-radius: 16px;
position: relative;
}
.work-slider {
opacity: 0;
visibility: hidden;
max-height: 0px;
overflow: hidden;
margin: 0 -10px;
}
.work-slider.slick-initialized {
opacity: 1;
visibility: visible;
max-height: none;
overflow: visible;
}
.work-slider .slick-list {
padding-right: 190px;
}
.work-slider .slide {
padding: 0 10px;
}
.work-card {
overflow: hidden;
height: 682px;
width: 100%;
margin: 0 auto;
border-radius: 16px;
border: 1px solid #A3A3AB;
}
.work-card a {
display: block;
height: 100%;
overflow: hidden;
border-radius: 16px;
pointer-events: none; /* disable opening images */
cursor: default;
}
.work-card img {
width: 100%;
height: 100%;
-o-object-fit: cover;
object-fit: cover;
border-radius: 16px;
}
.slick-dots {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
position: absolute;
bottom: 17px;
left: 0;
right: 0;
margin-top: 0;
list-style-type: none;
padding-left: 0;
z-index: 20;
}
.slick-dots li {
padding: 0 4px;
list-style-type: none;
}
.slick-dots li button {
display: block;
padding: 0;
border: 0;
font-size: 0;
width: 16px;
height: 16px;
background: #E6E6EC;
border-radius: 50%;
margin-top: 75px;
-webkit-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out;
}
.slick-dots li button::before {
display: none;
}
.slick-dots .slick-active button {
background: #88888F;
}
.work-slider-nav {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
margin-top: 28px;
position: absolute;
z-index: 30; /* keep above slider */
right: 40px;
bottom: 17px;
-webkit-transform: none;
transform: none;
}
/* Media Queries */
@media (max-width: 1199px) {
.work-card { /* This was a standalone rule at line 4239 */
height: 580px;
}
}
@media (max-width: 991px) {
.you-work {
padding: 0 0;
}
.tabs label {
margin-bottom: 23px;
font-size: 14px;
padding: 4px;
}
.tabs label span {
padding: 5px 20px;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
height: 48px;
}
.tabs label.tabone {
padding-right: 2px;
}
.tabs label.tabtwo {
padding-left: 2px;
}
.tabs .tab {
border-radius: 16px;
padding: 0;
background: none;
padding-bottom: 60px;
position: relative;
}
.tabs .tab.tab-2 .slick-arrow {
background: #fff;
}
.work-slider-wrapper {
border-radius: 15px;
overflow: visible;
position: relative; /* keep positioning for nav */
}
.work-slider {
margin: 0 -8px;
}
.work-slider.slick-initialized {
}
.work-slider .slide {
padding: 0 8px;
}
.work-card {
height: 240px;
}
.work-slider .slick-list {
padding-right: 33%;
}
.slick-dots li {
padding: 0 3px;
list-style-type: none;
}
.slick-dots li button {
width: 12px;
height: 12px;
}
.work-slider-nav {
display: none;
}
}
@media (max-width: 577px) {
.you-work {
overflow: hidden;
}
.tabs label {
-webkit-box-flex: 0;
-ms-flex: 0 0 50%;
flex: 0 0 50%;
max-width: 50%;
}
.tabs .tab {
overflow: visible;
}
.work-slider-wrapper {
margin-right: -10px;
border-radius: 16px 0 0 16px;
}
.work-slider .slick-list {
padding-right: 32px;
}
}
</style> <!-- nominify end --> </div> </div> </div> </div> <!-- ./css/components/help.css --> <div id="rec1082341246" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <style type="text/css" id="css-components-help">
/* Styles for the help section */
.help {
padding: 80px 0 40px;
background: #fff;
}
.help-list {
text-align: center;
list-style: none;
counter-reset: point;
margin: 0 -22px;
font-weight: 400;
font-size: 18px;
line-height: 120%;
display: flex;
flex-wrap: wrap;
justify-content: center;
color: #1E1E20;
}
.help-list li {
flex: 0 0 320px;
max-width: 320px;
margin-bottom: 40px;
position: relative;
padding: 49px 22px 0;
}
.help-list li:before {
content: counter(point);
counter-increment: point 1;
position: absolute;
top: 0;
left: 50%;
transform: translateX(-50%);
width: 28px;
height: 28px;
text-align: center;
border-radius: 50%;
background: var(--color-yellow);
font-weight: 600;
font-size: 16px;
line-height: 28px;
z-index: 2;
}
.help-list li:after {
content: "";
position: absolute;
z-index: 1;
top: 11px;
left: 50%;
width: 320px;
height: 3px;
background: var(--color-yellow);
}
.help-list li:last-child:after {
display: none;
}
.help-list .help-list-title {
display: block;
font-weight: 600;
font-size: 20px;
line-height: 100%;
margin-bottom: 20px;
}
@media (max-width: 991px) {
.help {
padding: 30px 10px 1px;
margin: 0 10px;
border-radius: 15px;
}
.help-list {
margin: 0;
flex-direction: column;
align-items: center;
}
.help-list li {
flex: 0 0 auto;
max-width: none;
width: 276px;
padding-left: 0;
padding-right: 0;
margin-bottom: 30px;
padding-top: 67px;
}
.help-list .help-list-title {
margin-bottom: 15px;
}
.help-list li:after {
width: 3px;
height: 49px;
transform: translateX(-50%);
background: linear-gradient(to bottom, #ffd53b 0%, #ffffff 100%);
}
.help-list li:last-child:after {
display: block;
}
}
</style> <!-- nominify end --> </div> </div> </div> </div> <!-- ./js/core.js --> <div id="rec1078810761" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <script type="text/javascript" id="js-core">
// Core utilities and helper functions
const core = {
// Cookie management
cookies: {
set: function(name, value, days) {
let expires = '';
if (days) {
const date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
expires = '; expires=' + date.toUTCString();
}
document.cookie = name + '=' + (value || '') + expires + '; path=/';
},
get: function(name) {
const nameEQ = name + '=';
const ca = document.cookie.split(';');
for (let i = 0; i < ca.length; i++) {
let c = ca[i];
while (c.charAt(0) === ' ') c = c.substring(1, c.length);
if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length);
}
return null;
},
delete: function(name) {
document.cookie = name + '=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';
}
},
// UI notifications
notifications: {
showError: function(message) {
// Implement error notification UI
console.error(message);
},
showSuccess: function(message) {
// Implement success notification UI
console.log(message);
}
},
// DOM utilities
dom: {
ready: function(fn) {
if (document.readyState !== 'loading') {
fn();
} else {
document.addEventListener('DOMContentLoaded', fn);
}
}
}
};
// Export core module
window.core = core;
</script> <!-- nominify end --> </div> </div> </div> </div> <!-- ./js/discounts.js --> <div id="rec1107302856" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <script type="text/javascript" id="js-discounts">
// Discount and promo code handling
const discounts = {
// State
// currentDiscount: 0, // DELETED - Will use COURSE_CONFIG.pricing.currentSessionDiscountPct
// promoCode: null, // DELETED - Will use COURSE_CONFIG.pricing.currentSessionPromoCode
// Initialize discount handling
init: function() {
if (window.isCustomPromocodeScript) {
console.log('discounts.js: custom promo script detected, skipping legacy initialization.');
return;
}
this.checkSavedPromo();
this.initializePromoCodeUI();
},
// Initialize promo code UI
initializePromoCodeUI: function() {
console.log('Initializing promo code UI...');
// Initially hide all promo code bodies and error messages
const $codeBodies = $('.od-code-body');
const $errorMessages = $('.form-note');
console.log('Found promo code bodies:', $codeBodies.length);
$codeBodies.css({
'display': 'none',
'max-height': '0',
'overflow': 'hidden'
});
$errorMessages.css('display', 'none');
// Handle promo code button clicks
const $promoButtons = $('.od-code-btn');
console.log('Found promo code buttons:', $promoButtons.length);
$promoButtons.off('click').on('click', function(e) {
console.log('Promo code button clicked');
e.preventDefault();
const $codeSection = $(this).closest('.od-code');
const $codeBody = $codeSection.find('.od-code-body');
const $promoButton = $(this);
const $errorMessage = $codeSection.find('.form-note');
console.log('Code section found:', $codeSection.length);
console.log('Code body found:', $codeBody.length);
// Show the form, hide the button, and ensure error message is hidden
$promoButton.css('display', 'none');
$codeBody.css({
'display': 'block',
'max-height': '1000px',
'overflow': 'visible'
});
$errorMessage.css('display', 'none');
});
// Handle promo code application
const $applyButtons = $('.promocode-button');
console.log('Found apply buttons (now looking for .promocode-button):', $applyButtons.length);
$applyButtons.off('click').on('click', function(e) {
e.preventDefault();
const $btn = $(this);
const $input = $btn.closest('.od-code-row').find('.promo-code-input');
const $note = $btn.closest('.od-code-row').find('.form-note');
const code = $input.val().trim();
if (!code) {
$note.removeClass('success').addClass('error').text('Введите промокод').css('display', 'block');
return;
}
// Disable button while processing
$btn.prop('disabled', true);
// Apply promo code
discounts.applyPromoCode(code)
.then(response => {
if (response.success) {
$note.removeClass('error').addClass('success').text('Промокод применен').css('display', 'block');
setTimeout(() => {
const $codeSection = $btn.closest('.od-code');
$codeSection.find('.od-code-body').css({
'display': 'none',
'max-height': '0',
'overflow': 'hidden'
});
$codeSection.find('.od-code-btn').css('display', 'block');
$note.css('display', 'none');
}, 1500);
} else {
$note.removeClass('success').addClass('error').text('Промокод не найден').css('display', 'block');
}
})
.catch(error => {
$note.removeClass('success').addClass('error').text(error || 'Ошибка при проверке промокода').css('display', 'block');
})
.finally(() => {
$btn.prop('disabled', false);
});
});
// Close promo code section when clicking outside
$(document).off('click').on('click', function(e) {
if (!$(e.target).closest('.od-code').length) {
$('.od-code.active').removeClass('active')
.find('.od-code-body').css('max-height', '0');
}
});
},
// Parse discount from response
parseDiscount: function(response) {
try {
const data = typeof response === 'string' ? JSON.parse(response) : response;
return {
discount: parseFloat(data.discount) || 0,
promoCode: data.promoCode || null
};
} catch (e) {
core.notifications.showError('Invalid discount data');
return { discount: 0, promoCode: null };
}
},
// Apply additional discount
applyAdditionalDiscount: function(newDiscount, promoCode) {
if (newDiscount > 0) {
// this.currentDiscount = newDiscount; // DELETED
// this.promoCode = promoCode; // DELETED
window.COURSE_CONFIG.pricing.currentSessionDiscountPct = newDiscount;
window.COURSE_CONFIG.pricing.currentSessionPromoCode = promoCode;
// this.updatePriceWithDiscount(newDiscount); // DELETED - Will call global updater
window.updateDOMFromConfig(); // Placeholder for global DOM updater in ui.js
core.cookies.set(window.COURSE_CONFIG.cookieNames.promoPct, newDiscount, 7);
core.cookies.set(window.COURSE_CONFIG.cookieNames.promoCode, promoCode, 7);
return true;
} else {
this.clearPromoData();
return false;
}
},
// Check for saved promo
checkSavedPromo: function() {
const savedDiscount = core.cookies.get(window.COURSE_CONFIG.cookieNames.promoPct);
const savedCode = core.cookies.get(window.COURSE_CONFIG.cookieNames.promoCode);
if (savedDiscount && savedCode) {
// this.currentDiscount = parseFloat(savedDiscount); // DELETED
// this.promoCode = savedCode; // DELETED
window.COURSE_CONFIG.pricing.currentSessionDiscountPct = parseFloat(savedDiscount);
window.COURSE_CONFIG.pricing.currentSessionPromoCode = savedCode;
// this.updatePriceWithDiscount(this.currentDiscount); // DELETED - Will call global updater
window.updateDOMFromConfig(); // Placeholder for global DOM updater in ui.js
}
},
// Clear promo data
clearPromoData: function() {
// this.currentDiscount = 0; // DELETED
// this.promoCode = null; // DELETED
window.COURSE_CONFIG.pricing.currentSessionDiscountPct = 0;
window.COURSE_CONFIG.pricing.currentSessionPromoCode = null;
core.cookies.delete(window.COURSE_CONFIG.cookieNames.promoPct);
core.cookies.delete(window.COURSE_CONFIG.cookieNames.promoCode);
// this.updatePriceWithDiscount(0); // DELETED - Will call global updater
window.updateDOMFromConfig(); // Placeholder for global DOM updater in ui.js
},
// Apply promo code
applyPromoCode: function(code) {
if (!code) {
return Promise.reject('Введите промокод');
}
// Simulate API call for now
return new Promise((resolve, reject) => {
setTimeout(() => {
// Mock response - replace with actual API call
const promoCodeConfig = window.COURSE_CONFIG.pricing.promoCodes;
if (promoCodeConfig && promoCodeConfig[code.toUpperCase()]) {
resolve({
success: true,
discount: promoCodeConfig[code.toUpperCase()],
promoCode: code.toUpperCase()
});
} else {
reject('Промокод не найден');
}
}, 500);
}).then(data => {
const { discount, promoCode } = this.parseDiscount(data);
const success = this.applyAdditionalDiscount(discount, promoCode);
return { success, discount, promoCode };
});
}
};
// Initialize when DOM is ready
// $(document).ready(function() {
// discounts.init();
// });
</script> <!-- nominify end --> </div> </div> </div> </div> <!-- ./js/ui.js --> <div id="rec1078810781" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <script type="text/javascript" id="js-ui">
// UI interactions and components
const ui = {
accordionsInitialized: false, // Add a flag
// Initialize all UI components
init: function() {
this.initSliders();
this.initAccordions();
this.initScrollTo();
this.initMobileNav();
this.initModals();
// this.initProgrammBoxScroll();
this.initSkillsTooltips();
this.initDiplomaPopup();
},
// Initialize all sliders
initSliders: function() {
// Teacher slider
const $teacherSlider = $('.od-teacher-slider');
if ($teacherSlider.length) {
console.log("Found .od-teacher-slider (" + $teacherSlider.length + "), attempting to initialize Slick.");
$teacherSlider.slick({
slidesToShow: 3,
slidesToScroll: 1,
arrows: true,
dots: false,
appendArrows: '.od-teacher-nav',
responsive: [
{
breakpoint: 1200,
settings: {
slidesToShow: 3
}
},
{
breakpoint: 992,
settings: {
slidesToShow: 2
}
},
{
breakpoint: 576,
settings: {
slidesToShow: 1
}
}
]
});
} else {
console.warn(".od-teacher-slider not found in the DOM. Slick not initialized for teachers.");
}
// Comments slider
const $commSlider = $('.od-comm-slider');
if ($commSlider.length) {
console.log("Found .od-comm-slider (" + $commSlider.length + "), attempting to initialize Slick.");
$commSlider.slick({
slidesToShow: 2,
slidesToScroll: 1,
arrows: true,
dots: false,
appendArrows: '.od-comm-nav',
infinite: true,
responsive: [
{
breakpoint: 991,
settings: {
arrows: false
}
},
{
breakpoint: 577,
settings: {
slidesToShow: 1,
arrows: false,
centerMode: true,
centerPadding: '20px',
}
}
]
});
} else {
console.warn(".od-comm-slider not found. Slick not initialized for comments.");
}
// Work sliders
const $workSlider1 = $('.work-slider-1');
if ($workSlider1.length) {
console.log("Found .work-slider-1 (" + $workSlider1.length + "), attempting to initialize Slick.");
$workSlider1.slick({
slidesToShow: 1, // Display one slide at any screen width
slidesToScroll: 1,
arrows: true,
dots: true,
appendArrows: '.work-slider-nav-1',
appendDots: $workSlider1.closest('.work-slider-wrapper'), // Place dots inside its wrapper
});
if ($.fn.slickLightbox) {
$workSlider1.slickLightbox({ itemSelector: 'a' });
}
} else {
console.warn(".work-slider-1 not found. Slick not initialized.");
}
const $workSlider2 = $('.work-slider-2');
if ($workSlider2.length) {
console.log("Found .work-slider-2 (" + $workSlider2.length + "), attempting to initialize Slick.");
$workSlider2.slick({
slidesToShow: 1,
slidesToScroll: 1,
arrows: true,
dots: true,
appendArrows: '.work-slider-nav-2',
appendDots: $workSlider2.closest('.work-slider-wrapper'),
});
if ($.fn.slickLightbox) {
$workSlider2.slickLightbox({ itemSelector: 'a' });
}
} else {
console.warn(".work-slider-2 not found. Slick not initialized.");
}
// Handle slick slider recalculation when tabs are changed
$('input[name="tabs"]').on('change', function() {
setTimeout(function() {
if ($workSlider1.length && $workSlider1.is(':visible') && $workSlider1.hasClass('slick-initialized')) {
console.log("Tab changed, calling slick('setPosition') on .work-slider-1");
$workSlider1.slick('setPosition');
}
if ($workSlider2.length && $workSlider2.is(':visible') && $workSlider2.hasClass('slick-initialized')) {
console.log("Tab changed, calling slick('setPosition') on .work-slider-2");
$workSlider2.slick('setPosition');
}
}, 100); // Timeout to ensure the tab content is visible before recalculating
});
// Resize handler (formerly in nested document.ready)
$(window).on('resize', function() {
if ($commSlider.length && $commSlider.hasClass('slick-initialized')) {
console.log("Window resized, calling slick('resize') on .od-comm-slider");
$commSlider.slick('resize');
}
if ($workSlider1.length && $workSlider1.hasClass('slick-initialized')) {
console.log("Window resized, calling slick('resize') on .work-slider-1");
$workSlider1.slick('resize');
}
if ($workSlider2.length && $workSlider2.hasClass('slick-initialized')) {
console.log("Window resized, calling slick('resize') on .work-slider-2");
$workSlider2.slick('resize');
}
// If other sliders like $teacherSlider or $areasSlider need explicit resize handling,
// add similar checks here:
// if ($teacherSlider.length && $teacherSlider.hasClass('slick-initialized')) {
// $teacherSlider.slick('resize');
// }
});
},
// Initialize accordions
initAccordions: function() {
// Prevent double initialization
if (this.accordionsInitialized) {
console.warn("Accordions already initialized. Skipping.");
return;
}
this.accordionsInitialized = true;
console.log("Initializing accordions...");
// Program accordion
$('.od-card-btn:not(.no-hover)').on('click', function() {
const $card = $(this).closest('.od-card');
const $body = $card.find('.od-card-body');
if ($card.hasClass('js-toggle')) {
$card.removeClass('js-toggle');
$body.slideUp();
} else {
$('.od-card.js-toggle').removeClass('js-toggle');
$('.od-card.js-toggle .od-card-body').slideUp();
$card.addClass('js-toggle');
$body.slideDown();
}
});
// FAQ accordion
$(document).on('click', '.od-acco-btn', function(e) {
// Ensure jQuery and required methods are loaded
if (typeof $ === 'undefined' || !$.fn.slideToggle || !$.fn.toggleClass) {
// Keep this error check just in case
console.error("FAQ Click: jQuery or toggle methods not found!");
return;
}
const $button = $(this);
const $panel = $button.closest('.od-acco-panel');
const $body = $panel.find('.od-acco-body');
if (!$body.length) {
// Keep this error check
console.error("FAQ Click: Accordion body not found for button:", this);
return;
}
// Restore original logic with slideToggle and closing others
if ($panel.hasClass('active')) {
// Clicked on an already active panel: close it
$panel.removeClass('active');
$body.slideUp(); // Use slideUp when explicitly closing
} else {
// Clicked on an inactive panel: close others, then open this one
// Close other active panels first
$('.od-acco-panel.active').not($panel).each(function() {
$(this).removeClass('active');
$(this).find('.od-acco-body').slideUp();
});
// Open the clicked panel
$panel.addClass('active');
$body.removeAttr('style').slideDown(); // Remove style attribute before sliding down
}
// Stop other listeners from interfering
e.stopImmediatePropagation(); // Use immediate stop propagation
});
},
// Initialize smooth scroll
initScrollTo: function() {
$('.od-scroll-to').on('click', function(e) {
e.preventDefault();
const target = $(this).attr('href');
const offset = $(target).offset().top - 100;
$('html, body').animate({
scrollTop: offset
}, 800);
// Close mobile menu if open
$('body').removeClass('js-open');
});
},
// Initialize mobile navigation
initMobileNav: function() {
const $body = $('body');
$('.nav-ico').on('click', function() {
$body.toggleClass('js-open');
});
$('.backdrop').on('click', function() {
$body.removeClass('js-open');
});
},
// Initialize modals using Fancybox
initModals: function() {
// Initialize Fancybox for the PDF download link
// $('a.od-dwn[href="#pop-up"]').fancybox({ // GORGONE - Comment out or remove Fancybox initialization for #pop-up
// type: 'inline',
// src: '#pop-up',
// touch: false,
// afterShow: function(instance, current) {
// // Optional: Focus the first input after showing
// $(current.src).find('input[type="text"]:first').focus();
// }
// });
// New: Handle PDF download link with custom modal
$('a.od-dwn[href="#pop-up"]').on('click', function(e) {
e.preventDefault(); // Prevent default link behavior
if (typeof EdusonCustomModal !== 'undefined') {
EdusonCustomModal.openProgramModal();
}
});
// Hero button opens a separate modal
$('.hero-img-title .btn.yellow-btn').on('click', function(e) {
e.preventDefault();
if (typeof EdusonCustomModal !== 'undefined') {
EdusonCustomModal.openHeroModal();
}
});
// Manually trigger Fancybox for comment popups on click
$('.od-comments').on('click', 'a.od-more', function(e) {
e.preventDefault();
$.fancybox.open({
src: $(this).attr('href'),
type: 'inline',
opts: {
loop: false
}
});
});
},
// Add this function to handle the fade overlay on the program box
initProgrammBoxScroll: function() {
var $boxBody = $('.od-programm-box-body');
$boxBody.on('scroll', function() {
var scrollTop = $(this).scrollTop();
var scrollHeight = $(this)[0].scrollHeight;
var clientHeight = $(this)[0].clientHeight;
if (scrollTop + clientHeight >= scrollHeight - 2) {
$(this).addClass('scrolled-to-bottom');
} else {
$(this).removeClass('scrolled-to-bottom');
}
});
// Initial check in case already at bottom
$boxBody.trigger('scroll');
},
// Initialize tooltips in the skills section
// Initialize tooltips in the skills section
initSkillsTooltips: function() {
var $items = $('.od-skils-list li');
console.log('initSkillsTooltips: found', $items.length, 'list items'); // DEBUG_LOG
$items.on('mouseenter focusin', function() {
console.log('show tooltip for', this); // DEBUG_LOG
$(this).addClass('js-active');
});
$items.on('mouseleave focusout', function() {
console.log('hide tooltip for', this); // DEBUG_LOG
$(this).removeClass('js-active');
});
},
// Show program modal when the diploma block becomes fully visible
initDiplomaPopup: function() {
var target = document.querySelector('.od-diploma');
var trigger = document.querySelector('a.od-dwn[href="#pop-up"]');
console.log('initDiplomaPopup: target', target, 'trigger', trigger); // DEBUG_LOG
if (!target) {
console.error('initDiplomaPopup: .od-diploma not found');
}
if (!trigger) {
console.error('initDiplomaPopup: trigger not found');
}
if (!target || !trigger) return;
var disabled = false;
var openModal = function() {
if (disabled) return;
if (typeof EdusonCustomModal !== 'undefined' &&
typeof EdusonCustomModal.openProgramModal === 'function') {
EdusonCustomModal.openProgramModal();
} else {
trigger.click();
}
};
var observer = new IntersectionObserver(function(entries) {
entries.forEach(function(entry) {
if (entry.isIntersecting) {
observer.disconnect();
openModal();
}
});
}, { threshold: 1 });
observer.observe(target);
document.querySelectorAll('a[href="#od-promo"]').forEach(function(a) {
a.addEventListener('click', function() {
disabled = true;
observer.disconnect();
});
});
}
};
// Function to update DOM elements based on COURSE_CONFIG
window.updateDOMFromConfig = function() {
console.log('Attempting to update DOM from COURSE_CONFIG...'); // DEBUG_LOG
const cfg = window.COURSE_CONFIG;
if (!cfg) {
console.error('COURSE_CONFIG not found. DOM hydration skipped.');
return;
}
if (!cfg.pricing) {
console.error('COURSE_CONFIG.pricing not found. DOM hydration skipped.');
return;
}
if (!cfg.selectors) {
console.error('COURSE_CONFIG.selectors not found. DOM hydration skipped.');
return;
}
const fmt = (d) => new Date(d).toLocaleDateString(cfg.locale, {
day: 'numeric',
month: 'long'
});
// Determine effective discount percentage
const effectiveDiscountPct = cfg.pricing.currentSessionDiscountPct > 0 ?
cfg.pricing.currentSessionDiscountPct :
cfg.pricing.defaultDiscountPct;
console.log('Effective Discount Pct:', effectiveDiscountPct); // DEBUG_LOG
// Update current price
const priceNow = cfg.pricing.full * (1 - effectiveDiscountPct / 100);
const pricePerMonthNow = priceNow / cfg.pricing.installmentMonths;
const priceCurrentEl = document.querySelector(cfg.selectors.priceCurrent);
if (priceCurrentEl) {
priceCurrentEl.textContent = pricePerMonthNow.toLocaleString(cfg.locale, { minimumFractionDigits: 0, maximumFractionDigits: 0 }) + ' ₽ / мес';
priceCurrentEl.setAttribute('data-price', cfg.pricing.full.toString());
console.log('Updated Current Price:', priceCurrentEl.textContent); // DEBUG_LOG
} else {
console.error('Element for current price not found using selector:', cfg.selectors.priceCurrent);
}
// Update original price (stricken)
const originalPricePerMonth = cfg.pricing.full / cfg.pricing.installmentMonths;
const priceOriginalEl = document.querySelector(cfg.selectors.priceOriginal);
if (priceOriginalEl) {
priceOriginalEl.textContent = originalPricePerMonth.toLocaleString(cfg.locale, { minimumFractionDigits: 0, maximumFractionDigits: 0 }) + ' ₽ / мес';
console.log('Updated Original Price:', priceOriginalEl.textContent); // DEBUG_LOG
} else {
console.error('Element for original price not found using selector:', cfg.selectors.priceOriginal);
}
// Update main discount badge (next to current price)
const mainDiscountBadgeEl = document.querySelector(cfg.selectors.mainDiscountBadge);
if (mainDiscountBadgeEl) {
if (effectiveDiscountPct > 0) {
mainDiscountBadgeEl.textContent = '-' + effectiveDiscountPct + '%';
mainDiscountBadgeEl.style.display = ''; // Ensure it's visible
console.log('Updated Main Discount Badge:', mainDiscountBadgeEl.textContent); // DEBUG_LOG
} else {
mainDiscountBadgeEl.style.display = 'none'; // Hide if no discount
console.log('Hid Main Discount Badge'); // DEBUG_LOG
}
} else {
console.error('Element for main discount badge not found using selector:', cfg.selectors.mainDiscountBadge);
}
// Update discount badge in hero
const discountBadgeEl = document.querySelector(cfg.selectors.discountBadge);
if (discountBadgeEl) {
const spanInsideBadge = discountBadgeEl.querySelector('span');
if (spanInsideBadge) {
spanInsideBadge.textContent = '-' + effectiveDiscountPct + '%';
} else {
discountBadgeEl.textContent = '-' + effectiveDiscountPct + '%';
}
console.log('Updated Discount Badge:', discountBadgeEl.textContent); // DEBUG_LOG
} else {
console.error('Element for discount badge not found using selector:', cfg.selectors.discountBadge);
}
// Update course start date
const startDateEl = document.querySelector(cfg.selectors.startDate);
if (startDateEl) {
startDateEl.textContent = window.startDateText;
console.log('Updated Start Date:', startDateEl.textContent); // DEBUG_LOG
} else {
console.error('Element for start date not found using selector:', cfg.selectors.startDate);
}
// Update autopay discount percentage label
const autopayDiscountLabel = $('#od-promo .pay_form .od-radio-item label[for="rad-2"] .radio-sale'); // Corrected jQuery selector
if (autopayDiscountLabel.length > 0 && cfg.pricing.autopayDiscountPct > 0) {
autopayDiscountLabel.text('-' + cfg.pricing.autopayDiscountPct + '%');
console.log('Updated Autopay Discount Label:', autopayDiscountLabel.text()); // DEBUG_LOG
} else if (autopayDiscountLabel.length > 0 && cfg.pricing.autopayDiscountPct <= 0) {
autopayDiscountLabel.hide();
console.log('Hid Autopay Discount Label'); // DEBUG_LOG
} else {
console.error('Element for autopay discount label not found or cfg.pricing.autopayDiscountPct is invalid.');
}
console.log('DOM update from COURSE_CONFIG complete.'); // DEBUG_LOG
};
// Ensure all initializations happen after the window (and all its resources) are fully loaded.
// $(window).on('load', function() {
// console.log("Window loaded. Initializing UI components...");
// ui.init();
// if (typeof window.updateDOMFromConfig === 'function') {
// console.log("Window loaded. Calling updateDOMFromConfig...");
// window.updateDOMFromConfig();
// }
// // Initialize discounts after initial DOM hydration to ensure elements are set up
// if (typeof discounts !== 'undefined' && typeof discounts.init === 'function') {
// console.log("Window loaded. Initializing discounts...");
// discounts.init();
// }
// // Teacher card expand/collapse
// // This can be bound earlier, but keeping it here for consistency of this block
// // Ensure it uses event delegation if cards might be added dynamically later by other means
// $(document).on('click', '.od-plus', function(e) { // Changed to $(document).on for potential dynamic content
// e.preventDefault();
// $(this).closest('.od-teacher-card').toggleClass('js-toggle');
// });
// if (typeof EdusonCustomModal !== 'undefined') {
// console.log("Window loaded. Initializing EdusonCustomModal...");
// EdusonCustomModal.init();
// }
// console.log("All window load initializations complete.");
// });
// ⚡ Init as soon as the DOM is parsed instead of waiting for every image / pixel / tracker.
(function () {
function boot() {
console.log("DOM ready. Initializing UI components...");
ui.init();
if (typeof window.updateDOMFromConfig === 'function') {
console.log("DOM ready. Calling updateDOMFromConfig…");
window.updateDOMFromConfig();
}
if (typeof discounts !== 'undefined' && typeof discounts.init === 'function') {
console.log("DOM ready. Initializing discounts…");
discounts.init();
}
// Teacher card expand/collapse (delegated so it works for future elements too)
$(document).on('click', '.od-plus', function (e) {
e.preventDefault();
$(this).closest('.od-teacher-card').toggleClass('js-toggle');
});
if (typeof EdusonCustomModal !== 'undefined') {
console.log("DOM ready. Initializing EdusonCustomModal…");
EdusonCustomModal.init();
}
console.log("All DOM-ready initializations complete.");
}
// Use core.dom.ready to ensure boot runs once DOM is parsed
if (window.core && core.dom && typeof core.dom.ready === 'function') {
core.dom.ready(boot);
} else {
// Fallback if core.dom.ready is unavailable
if (document.readyState !== 'loading') boot();
else document.addEventListener('DOMContentLoaded', boot, { once: true });
}
})();
// Optional: once every resource is finally in, nudge Slick to recalc sizes.
window.addEventListener('load', () => $('.slick-initialized').slick('setPosition'));
// Custom Modal Logic
const EdusonCustomModal = {
programModal: null,
heroModal: null,
overlay: null,
init: function() {
this.programModal = document.getElementById('pop-up');
this.heroModal = document.getElementById('hero-pop-up');
// Create overlay if it doesn't exist
this.overlay = document.querySelector('.custom-modal-overlay');
if (!this.overlay) {
this.overlay = document.createElement('div');
this.overlay.className = 'custom-modal-overlay';
document.body.appendChild(this.overlay);
}
if (!this.programModal) {
console.error('Custom Modal: #pop-up element not found!');
return;
}
// Event listener for closing via overlay click
this.overlay.addEventListener('click', () => {
this.closeProgramModal();
this.closeHeroModal();
});
// Wire up close button inside modal
const closeButton = this.programModal.querySelector('.custom-modal-close-btn');
if (closeButton) {
closeButton.addEventListener('click', () => this.closeProgramModal());
}
const heroClose = this.heroModal ? this.heroModal.querySelector('.custom-modal-close-btn') : null;
if (heroClose) {
heroClose.addEventListener('click', () => this.closeHeroModal());
}
console.log('EdusonCustomModal initialized.');
},
openProgramModal: function() {
if (!this.programModal || !this.overlay) {
console.error('Custom Modal: Not initialized or elements missing.');
// Attempt to re-initialize if elements are missing, e.g. if init wasn't called at the right time.
this.init();
if(!this.programModal || !this.overlay) return; // if still not found, exit
}
console.log('Custom Modal: Opening #pop-up');
this.overlay.style.display = 'flex'; // Show overlay
this.programModal.classList.add('custom-modal-active'); // Show modal by adding class
// Optional: Focus the first input after showing
const firstInput = this.programModal.querySelector('input[type="text"]:first-child, input[type="tel"]:first-child, input[type="email"]:first-child');
if (firstInput) {
firstInput.focus();
}
},
closeProgramModal: function() {
if (!this.programModal || !this.overlay) {
console.error('Custom Modal: Not initialized or elements missing.');
return;
}
console.log('Custom Modal: Closing #pop-up');
this.overlay.style.display = 'none'; // Hide overlay
this.programModal.classList.remove('custom-modal-active'); // Hide modal by removing class
},
openHeroModal: function() {
if (!this.heroModal || !this.overlay) {
console.error('Custom Modal: Not initialized or elements missing.');
this.init();
if(!this.heroModal || !this.overlay) return;
}
console.log('Custom Modal: Opening #hero-pop-up');
this.overlay.style.display = 'flex';
this.heroModal.classList.add('custom-modal-active');
const firstInput = this.heroModal.querySelector('input[type="text"], input[type="tel"], input[type="email"]');
if (firstInput) firstInput.focus();
},
closeHeroModal: function() {
if (!this.heroModal || !this.overlay) return;
console.log('Custom Modal: Closing #hero-pop-up');
this.overlay.style.display = 'none';
this.heroModal.classList.remove('custom-modal-active');
}
};
</script> <!-- nominify end --> </div> </div> </div> </div> <!-- index.html → header --> <div id="rec1078810791" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <header class="header"> <div class="container"> <a href="#" class="logo"><img src="https://static.tildacdn.com/tild3265-6366-4663-b937-323161616364/logo.svg" alt=""></a> <ul class="main-nav"> <li><a href="#course" class="scroll-to">О профессии</a></li> <li><a href="#about" class="scroll-to">Состав курса</a></li> <li><a href="#od-teachers" class="scroll-to">Эксперты</a></li> <li><a href="#od-skils" class="scroll-to">Навыки</a></li> <li><a href="#od-programm" class="scroll-to">Программа</a></li> </ul> <a href="#od-promo" class="scroll-to head-btn"> <span class="ico"><svg class="icon"><use xlink:href="#arr"></use></svg></span>
Записаться
</a> <div class="nav-ico"> <span></span> <span></span> <span></span> </div> <div class="backdrop"></div> </div> </header> <!-- nominify end --> </div> </div> </div> </div> <!-- index.html → hero --> <div id="rec1078876731" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <!-- hero --> <section class="hero"> <div class="container"> <!-- header is in 01-header.html --> <div class="hero-title"> <div class="hero-subtitle">Профессия</div> <h1>Дизайнер интерьеров <sup>Обновлено • 2025</sup></h1> <div class="hero-time"> <div class="ico"><svg class="icon"><use xlink:href="#time"></use></svg></div>
Первый заказ уже через 4 месяца обучения
</div> </div> <div class="hero-img"> <picture> <source srcset="https://static.tildacdn.com/tild3937-6130-4766-a335-383936326365/hero-mob.png" media="(max-width: 992px)"> <img role="presentation" src="https://static.tildacdn.com/tild6531-3435-4962-b132-623132393433/hero.png" alt="" > </picture> </div> <div class="hero-img-title"> <a href="#od-promo" class="btn yellow-btn">Записаться со скидкой</a> <div class="hero-sale"> <div class="sale od-hero-discount" data-discount="60"><span>-60%</span></div> <div class="counter-wrapper"> <p>Осталось</p> <div class="countdown" data-deadline="2025-05-21T12:30:00"> <div class="days">0 дня</div> <div class="time">00:00:00</div> </div> </div> </div> </div> <div class="hero-slogan">Освойте одну из самых востребованных<br> профессий в сфере дизайна</div> <div class="hero-bentfits row"> <div class="col"> <div class="hero-benefits-card"> <div class="ico"><img src="https://static.tildacdn.com/tild3734-3565-4333-a433-663134313263/hero-ico-1.svg" width="56" alt=""></div> <p>Портфолио <br>из 8 проектов</p> </div> </div> <div class="col"> <div class="hero-benefits-card"> <div class="ico"><img src="https://static.tildacdn.com/tild3137-6134-4333-a235-343561646231/hero-ico-2.svg" width="56" alt=""></div> <p>Помощь <br>в трудоустройстве</p> </div> </div> <div class="col"> <div class="hero-benefits-card"> <div class="ico"><img src="https://static.tildacdn.com/tild3035-3265-4734-a136-323439353963/hero-ico-3.svg" width="56" alt=""></div> <p>Диплом <br>о профессиональной <br>переподготовке</p> </div> </div> </div> </div> </section> <!-- / hero --> <!-- nominify end --> </div> </div> </div> </div> <!-- index.html → course --> <div id="rec1082310481" class="r t-rec t-rec_pt_0" style="padding-top:0px; " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <!-- course --> <section class="course" id="course"> <div class="container"> <h2>Профессия дизайнера интерьеров — <br>на пике популярности</h2> <div class="course-body"> <div class="course-top"> <div class="course-text"> <p>Только за 2024 год количество вакансий увеличилось почти на 49%, а зарплата специалистов — на 20%.</p> <p>При этом в стране дефицит квалифицированных дизайнеров интерьеров: по данным HeadHunter, на одну вакансию претендовали всего четыре человека.</p> <p>А значит — специалисты могут выбирать проекты и рассчитывать на высокую оплату труда.</p> </div> <div class="course-img"><img src="https://static.tildacdn.com/tild3935-6439-4361-b438-376132343436/course.png" alt="" loading="lazy"></div> </div> <div class="salary"> <div class="salary-title">За один проект <br>на фрилансе</div> <div class="salary-row"> <div class="salary-card salary-1"> <div> <div class="salary-subtitle">После курса</div> <div class="salary-price">от 50 000 ₽</div> </div> <div class="salary-vision"></div> </div> <div class="salary-card salary-2"> <div> <div class="salary-subtitle">Опыт 1–3 года</div> <div class="salary-price">от 90 000 ₽</div> </div> <div class="salary-vision"></div> </div> <div class="salary-card salary-3"> <div> <div class="salary-subtitle">Опыт от 3 лет</div> <div class="salary-price">от 180 000 ₽</div> </div> <div class="salary-vision"></div> </div> </div> </div> </div> </div> </section> <!-- / course --> <!-- nominify end --> </div> </div> </div> </div> <!-- index.html → about --> <div id="rec1078881161" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <!-- about --> <section class="about" id="about"> <div class="container"> <h2>Все обучение – онлайн <br>на нашей платформе</h2> <div class="about-card"> <div class="about-text"> <div class="about-title">Интерактивные <br>уроки</div> <p>Вы освоите навыки <br>на видеолекциях и скринкастах. Дополнительно получите полезные конспекты, шаблоны и чек-листы для работы.</p> </div> <div class="about-img"> <div class="video-aspect-ratio-16-9"> <video autoplay muted loop playsinline src="https://downloads.eduson.tv/pdf/academy/video/video-tilda-interior-designer-1.mp4"></video> </div> </div> </div> <div class="about-card reverse"> <div class="about-img"> <div class="video-aspect-ratio-16-9"> <video autoplay muted loop playsinline src="https://downloads.eduson.tv/pdf/academy/video/video-tilda-interior-designer-2.mp4"></video> </div> </div> <div class="about-text"> <div class="about-title">Отработка навыков <br>на практике</div> <p>Закрепите новые навыки <br>на кейсах, с которыми будете сталкиваться в реальной работе.</p> </div> </div> <div class="about-card"> <div class="about-text"> <div class="about-title">Обратная связь <br>от эксперта</div> <p>Получите разбор ваших практических заданий от опытного специалиста.</p> </div> <div class="about-img"> <div class="video-aspect-ratio-16-9"> <video src="https://downloads.eduson.tv/pdf/academy/video/video-tilda-interior-designer-3.mp4" autoplay muted loop playsinline></video> </div> </div> </div> <div class="about-card reverse"> <div class="about-img"> <div class="video-aspect-ratio-16-9"> <video src="https://downloads.eduson.tv/pdf/academy/video/video-tilda-interior-designer-4.mp4" autoplay muted loop playsinline></video> </div> </div> <div class="about-text"> <div class="about-title">Итоговый <br>проект</div> <p>Сделаете дипломную работу <br> и добавите большой дизайн-проект <br>в портфолио. Так вы сможете продемонстрировать свои навыки будущему работодателю или клиенту.</p> </div> </div> </div> </section> <!-- / about --> <!-- nominify end --> </div> </div> </div> </div> <!-- index.html → support --> <div id="rec1082313691" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <div class="container"> <!-- promo --> <div class="promo"> <div class="promo-text"> <div class="promo-title">365 дней поддержки</div> <p>Личный куратор всегда на связи, чтобы ответить на вопросы по обучению.</p> </div> <div class="promo-img"><img loading="lazy" src="https://static.tildacdn.com/tild3531-6431-4033-b036-663562316663/promo-img.jpg" alt=""></div> </div> <!-- / promo --> </div> <!-- nominify end --> </div> </div> </div> </div> <!-- index.html → teachers --> <div id="rec1082316001" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <!-- od-teachers --> <section class="od-teachers" id="od-teachers"> <div class="container"> <div class="od-teacher-title"> <h2>Эксперты — практики, <br>которые сами начинали с нуля</h2> <div class="od-teacher-nav"></div> </div> <div class="od-teacher-slider"> <div class="slide"> <!-- od-teacher-card --> <div class="od-teacher-card"> <div class="od-plus"><svg class="icon"><use xlink:href="#plus"></use></svg></div> <div class="od-teacher-img"> <img src="https://static.tildacdn.com/tild6561-3466-4765-a364-663962353333/od-ph-1.png" loading="lazy" alt=""> <div class="od-teacher-name">Катерина <br>Пережогина</div> <div class="od-teacher-logo"><img src="https://static.tildacdn.com/tild3661-3738-4132-a636-393262626338/od-tn-1.png" alt=""></div> </div> <div class="od-year"> <div class="od-year-num">10+</div> <div class="od-year-text">лет опыта в дизайне интерьеров</div> </div> <div class="od-teacher-descript"> <div class="od-descr-item"> <div class="od-descr-text">Работала на крупнейшего застройщика в РФ - компанию «ПИК»</div> <div class="ico"><img src="https://static.tildacdn.com/tild3661-3738-4132-a636-393262626338/od-tn-1.png" alt=""></div> </div> <div class="od-descr-item"> <div class="od-descr-text">Основала бутиковую студию дизайна интерьеров</div> <div class="ico"> </div> </div> <div class="od-descr-item"> <div class="od-descr-text">Дизайнер жилых и общественных пространств</div> <div class="ico"> </div> </div> </div> </div> <!-- / od-teacher-card --> </div> <div class="slide"> <!-- od-teacher-card --> <div class="od-teacher-card"> <div class="od-plus"><svg class="icon"><use xlink:href="#plus"></use></svg></div> <div class="od-teacher-img"> <img src="https://static.tildacdn.com/tild3865-3865-4031-b635-313865346134/od-ph-2.png" loading="lazy" alt=""> <div class="od-teacher-name">Елена <br>Никитина</div> <div class="od-teacher-logo"><img src="https://static.tildacdn.com/tild6164-6138-4435-b262-616538626235/od-tn-2.png" alt=""></div> </div> <div class="od-year"> <div class="od-year-num">15+</div> <div class="od-year-text">лет опыта в дизайне интерьеров</div> </div> <div class="od-teacher-descript"> <div class="od-descr-item"> <div class="od-descr-text">Основала дизайн-бюро Unik Design Team</div> <div class="ico"><img src="https://static.tildacdn.com/tild6164-6138-4435-b262-616538626235/od-tn-2.png" alt=""></div> </div> <div class="od-descr-item"> <div class="od-descr-text">Реализовывает проекты квартир и концептуальных архитектурных пространств</div> <div class="ico"> </div> </div> <div class="od-descr-item"> <div class="od-descr-text">Проекты публикуются в ELLE DECORATION, AD, Interior plus design и INMYROOMTV</div> <div class="ico"> </div> </div> </div> </div> <!-- / od-teacher-card --> </div> <div class="slide"> <!-- od-teacher-card --> <div class="od-teacher-card"> <div class="od-plus"><svg class="icon"><use xlink:href="#plus"></use></svg></div> <div class="od-teacher-img"> <img src="https://static.tildacdn.com/tild3463-3330-4433-b132-313632343565/od-ph-3.png" loading="lazy" alt=""> <div class="od-teacher-name">Елена <br>Парамонова</div> <div class="od-teacher-logo"><img src="https://static.tildacdn.com/tild3666-6161-4166-b932-303037316537/od-tn-3.png" alt=""></div> </div> <div class="od-year"> <div class="od-year-num">15+</div> <div class="od-year-text">лет в профессии, дизайнер интерьеров, декоратор</div> </div> <div class="od-teacher-descript"> <div class="od-descr-item"> <div class="od-descr-text">Основала дизайн-бюро Unik Design Team</div> <div class="ico"><img src="https://static.tildacdn.com/tild3666-6161-4166-b932-303037316537/od-tn-3.png" alt=""></div> </div> <div class="od-descr-item"> <div class="od-descr-text">Реализовывает проекты квартир и концептуальных архитектурных пространств</div> <div class="ico"> </div> </div> <div class="od-descr-item"> <div class="od-descr-text">Проекты публикуются в ELLE DECORATION, AD, Interior plus design и INMYROOMTV</div> <div class="ico"> </div> </div> </div> </div> <!-- / od-teacher-card --> </div> <div class="slide"> <!-- od-teacher-card --> <div class="od-teacher-card"> <div class="od-plus"><svg class="icon"><use xlink:href="#plus"></use></svg></div> <div class="od-teacher-img"> <img src="https://static.tildacdn.com/tild6339-6234-4062-b765-316566636130/od-ph-4.png" loading="lazy" alt=""> <div class="od-teacher-name">Анастасия <br>Анпилогова</div> </div> <div class="od-year"> <div class="od-year-num">15+</div> <div class="od-year-text">лет в профессии, дизайнер жилых и общественных пространств</div> </div> <div class="od-teacher-descript"> <div class="od-descr-item"> <div class="od-descr-text">80+ дизайн-проектов квартир и домов от идеи до реализации в Москве, регионах и других странах</div> </div> <div class="od-descr-item"> <div class="od-descr-text">Участница конкурсов и конференций по дизайну</div> </div> </div> </div> <!-- / od-teacher-card --> </div> <div class="slide"> <!-- od-teacher-card --> <div class="od-teacher-card"> <div class="od-plus"><svg class="icon"><use xlink:href="#plus"></use></svg></div> <div class="od-teacher-img"> <img src="https://static.tildacdn.com/tild3737-6636-4663-b238-643730393662/od-ph-5.png" loading="lazy" alt=""> <div class="od-teacher-name">Дарья <br>Варламова</div> </div> <div class="od-year"> <div class="od-year-num">10+</div> <div class="od-year-text">в профессии, дизайнер интерьеров</div> </div> <div class="od-teacher-descript"> <div class="od-descr-item"> <div class="od-descr-text">Владелец студии DV Interiors</div> <div class="ico"> </div> </div> <div class="od-descr-item"> <div class="od-descr-text">Руководит дизайн-проектами</div> <div class="ico"> </div> </div> <div class="od-descr-item"> <div class="od-descr-text">Проектирует частные интерьеры</div> <div class="ico"> </div> </div> </div> </div> <!-- / od-teacher-card --> </div> <div class="slide"> <!-- od-teacher-card --> <div class="od-teacher-card"> <div class="od-plus"><svg class="icon"><use xlink:href="#plus"></use></svg></div> <div class="od-teacher-img"> <img src="https://static.tildacdn.com/tild6137-3139-4234-b965-366434363539/od-ph-6.png" loading="lazy" alt=""> <div class="od-teacher-name">Светлана <br>Аксёнова</div> </div> <div class="od-year"> <div class="od-year-num">11+</div> <div class="od-year-text">лет в профессии, дизайнер интерьеров</div> </div> <div class="od-teacher-descript"> <div class="od-descr-item"> <div class="od-descr-text">Куратор и наставник начинающих дизайнеров</div> <div class="ico"> </div> </div> <div class="od-descr-item"> <div class="od-descr-text">Автор курсов по дизайну интерьеров</div> <div class="ico"> </div> </div> <div class="od-descr-item"> <div class="od-descr-text">Создаёт 3D-визуализации в Homestyler</div> <div class="ico"> </div> </div> </div> </div> <!-- / od-teacher-card --> </div> <div class="slide"> <!-- od-teacher-card --> <div class="od-teacher-card"> <div class="od-plus"><svg class="icon"><use xlink:href="#plus"></use></svg></div> <div class="od-teacher-img"> <img src="https://static.tildacdn.com/tild6131-6561-4631-a664-343964383630/od-ph-7.png" loading="lazy" alt=""> <div class="od-teacher-name">Полина <br>Морозова</div> <div class="od-teacher-logo"><img src="https://static.tildacdn.com/tild6164-6138-4435-b262-616538626235/od-tn-2.png" alt=""></div> </div> <div class="od-year"> <div class="od-year-num">6+</div> <div class="od-year-text">лет в профессии, дизайнер интерьеров</div> </div> <div class="od-teacher-descript"> <div class="od-descr-item"> <div class="od-descr-text">Дизайнер студии UNIK DESIGN</div> <div class="ico"> </div> </div> <div class="od-descr-item"> <div class="od-descr-text">Занимается концептуальным дизайном</div> <div class="ico"> </div> </div> <div class="od-descr-item"> <div class="od-descr-text">Создаёт планировочные решения и 3D-визуализации</div> <div class="ico"> </div> </div> </div> </div> <!-- / od-teacher-card --> </div> </div> </div> </section> <!-- / od-teachers --> <!-- nominify end --> </div> </div> </div> </div> <!-- index.html → skills --> <div id="rec1078887131" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <!-- od-skils --> <section class="od-skils" id="od-skils"> <div class="container"> <h2>Ваши навыки <br>после обучения</h2> <div class="od-skils-body"> <div class="od-skils-img"> <img src="https://static.tildacdn.com/tild3562-6239-4064-b338-373064663166/image-skills.png" loading="lazy" alt="" class="d-none d-lg-block"> <div class="mob-od-skils-img d-block d-lg-none"><img src="https://static.tildacdn.com/tild3962-6531-4465-b033-313533313237/image-skills-m.jpg" alt=""></div> <div class="od-skils-img-title">
Дизайнер интерьеров
<div class="od-hh"><img src="https://static.tildacdn.com/tild3738-6663-4661-a332-383034356431/hh-icon.svg" width="28" alt=""> hh.ru</div> </div> </div> <div class="od-skils-text"> <div class="od-skils-title">Навыки</div> <ul class="od-check-list"> <li> <span class="ico"><svg class="icon"><use xlink:href="#check"></use></svg></span>
Создаю проекты интерьеров под ключ — от планировки до финального декора
</li> <li> <span class="ico"><svg class="icon"><use xlink:href="#check"></use></svg></span>
Делаю обмерный план помещения
</li> <li> <span class="ico"><svg class="icon"><use xlink:href="#check"></use></svg></span>
Продумываю эргономичные планировки, чтобы помещение было не только красивым, но и комфортным для клиентов
</li> <li> <span class="ico"><svg class="icon"><use xlink:href="#check"></use></svg></span>
Создаю коллажи и мудборды для передачи стиля интерьера
</li> <li> <span class="ico"><svg class="icon"><use xlink:href="#check"></use></svg></span>
Владею колористикой, подбираю цвета и свет
</li> <li> <span class="ico"><svg class="icon"><use xlink:href="#check"></use></svg></span>
Подбираю материалы и комплектующие, мебель и декор
</li> <li> <span class="ico"><svg class="icon"><use xlink:href="#check"></use></svg></span>
Создаю 3D-визуализации интерьера
</li> <li> <span class="ico"><svg class="icon"><use xlink:href="#check"></use></svg></span>
Обладаю навыками управления проектами и эффективной коммуникации с заказчиками, поставщиками, строителями и владельцами мебельных магазинов
</li> <li> <span class="ico"><svg class="icon"><use xlink:href="#check"></use></svg></span>
Умею рассчитывать бюджеты
</li> <li> <span class="ico"><svg class="icon"><use xlink:href="#check"></use></svg></span>
Разбираюсь в юридических тонкостях работы
</li> </ul> <div class="od-skils-title">Инструменты</div> <ul class="od-skils-list"> <li> <span class="skill-q" tabindex="0" aria-label="Подробнее о 3Ds Max"></span> <span class="ico"><img src="https://static.tildacdn.com/tild3434-3739-4430-a365-366461626637/tool-i-01.png" width="30" alt=""></span>
3Ds Max
<div class="tooltip" role="tooltip"> <!--<button class="close" aria-label="Закрыть"></button>--> <h3 class="tooltip-title">3Ds Max</h3> <p>Мощнейший инструмент для 3D-визуализации будущего интерьера.</p> </div> </li> <li> <span class="skill-q" tabindex="0" aria-label="Подробнее об Adobe Photoshop"></span> <span class="ico"><img src="https://static.tildacdn.com/tild6533-3465-4031-a531-373230393134/tool-i-02.png" width="30" alt=""></span>
Adobe Photoshop
<div class="tooltip" role="tooltip"> <!--<button class="close" aria-label="Закрыть"></button>--> <h3 class="tooltip-title">Adobe Photoshop</h3> <p>Один из самых популярных инструментов для того, чтобы создать коллаж. Их используют, чтобы передать настроение и стиль будущего интерьера.</p> </div> </li> <li> <span class="skill-q" tabindex="0" aria-label="Подробнее о Revit Autodesk"></span> <span class="ico"><img src="https://static.tildacdn.com/tild6531-3336-4430-a437-646139643865/tool-i-03.png" width="30" alt=""></span>
Revit Autodesk
<div class="tooltip" role="tooltip"> <!--<button class="close" aria-label="Закрыть"></button>--> <h3 class="tooltip-title">Revit Autodesk</h3> <p>Инструмент, с помощью которого делают детальный план проекта в объеме. Активно набирает популярность среди современных дизайнеров.</p> </div> </li> <li> <span class="skill-q" tabindex="0" aria-label="Подробнее об ArchiCAD"></span> <span class="ico"><img src="https://static.tildacdn.com/tild3135-6338-4335-b536-623862653834/tool-i-04.png" width="30" alt=""></span>
ArchiCAD
<div class="tooltip" role="tooltip"> <!--<button class="close" aria-label="Закрыть"></button>--> <h3 class="tooltip-title">ArchiCAD</h3> <p>Инструмент, с помощью которого делают детальный план проекта. Основная программа всех дизайнеров интерьера.</p> </div> </li> <li> <span class="skill-q" tabindex="0" aria-label="Подробнее о Homestyler"></span> <span class="ico"><img src="https://static.tildacdn.com/tild3966-3733-4232-b732-613166613662/tool-i-05.png" width="30" alt=""></span>
Homestyler
<div class="tooltip" role="tooltip"> <!--<button class="close" aria-label="Закрыть"></button>--> <h3 class="tooltip-title">Homestyler</h3> <p>Инструмент для проектирования дизайна интерьера онлайн. Позволяет выполнять планировку, моделирование и рендеринг.</p> </div> </li> </ul> </div> </div> </div> </section> <!-- / od-skils --> <!-- nominify end --> </div> </div> </div> </div> <!-- index.html → you-work --> <div id="rec1078888111" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <!-- you-work --> <section class="you-work"> <div class="container"> <h2>Ваши работы после курса</h2> <div class="tabs"> <input type="radio" name="tabs" id="tabone" checked="checked"> <label for="tabone" class="tabone"><span>Визуализация интерьера</span></label> <div class="tab tab-1"> <div class="work-slider-wrapper"> <div class="work-slider work-slider-1"> <div class="slide"> <div class="work-card"><a href="https://static.tildacdn.com/tild3766-3261-4764-a538-393532373435/work-1.jpg" data-fancybox="group"><img src="https://static.tildacdn.com/tild3766-3261-4764-a538-393532373435/work-1.jpg" loading="lazy" alt=""></a></div> </div> <div class="slide"> <div class="work-card"><a href="https://static.tildacdn.com/tild3631-3562-4334-a265-356130313233/work-2.jpg" data-fancybox="group"><img src="https://static.tildacdn.com/tild3631-3562-4334-a265-356130313233/work-2.jpg" loading="lazy" alt=""></a></div> </div> <div class="slide"> <div class="work-card"><a href="https://static.tildacdn.com/tild3733-6535-4562-b137-346137393264/work-3.jpg" data-fancybox="group"><img src="https://static.tildacdn.com/tild3733-6535-4562-b137-346137393264/work-3.jpg" loading="lazy" alt=""></a></div> </div> <div class="slide"> <div class="work-card"><a href="https://static.tildacdn.com/tild6338-3639-4362-a335-353766663937/work-4.jpg" data-fancybox="group"><img src="https://static.tildacdn.com/tild6338-3639-4362-a335-353766663937/work-4.jpg" loading="lazy" alt=""></a></div> </div> </div> <div class="work-slider-nav work-slider-nav-1"></div> </div> </div> <input type="radio" name="tabs" id="tabtwo"> <label for="tabtwo" class="tabtwo"><span>Планировка и эргономика</span></label> <div class="tab tab-2"> <div class="work-slider-wrapper"> <div class="work-slider work-slider-2"> <div class="slide"> <div class="work-card"><a href="https://static.tildacdn.com/tild6565-3032-4465-a166-346232396639/scheme-1.jpg" data-fancybox="group"><img src="https://static.tildacdn.com/tild3362-3233-4334-b739-643933393461/scheme-1.jpg" loading="lazy" alt=""></a></div> </div> <div class="slide"> <div class="work-card"><a href="https://static.tildacdn.com/tild6637-6461-4561-a133-346533656564/scheme-2.jpg" data-fancybox="group"><img src="https://static.tildacdn.com/tild3530-6438-4436-a563-643865333137/scheme-2.jpg" loading="lazy" alt=""></a></div> </div> <div class="slide"> <div class="work-card"><a href="https://static.tildacdn.com/tild3535-3663-4837-b562-323137393531/scheme-4.jpg" data-fancybox="group"><img src="https://static.tildacdn.com/tild3233-3761-4236-b863-663864623664/scheme-4.jpg" loading="lazy" alt=""></a></div> </div> </div> <div class="work-slider-nav work-slider-nav-2"></div> </div> </div> </div> </div> </section> <!-- / you-work --> <!-- nominify end --> </div> </div> </div> </div> <!-- index.html → help --> <div id="rec1078889406" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <!-- help --> <section class="help"> <div class="container"> <h2>Поможем найти работу <br>дизайнером интерьеров</h2> <ul class="help-list"> <li> <span class="help-list-title">Подготовитесь <br>к поиску работы</span>
Получите доступ к материалам курса, который поможет начать поиск работы
</li> <li> <span class="help-list-title">Проверим <br>ваше резюме</span>
Проверим резюме и дадим рекомендации по его улучшению
</li> <li> <span class="help-list-title">Проведем карьерную консультацию</span>
Узнаете, как правильно искать работу и успешно проходить собеседования
</li> </ul> </div> </section> <!-- / help --> <!-- nominify end --> </div> </div> </div> </div> <!-- index.html → contact --> <div id="rec1078890166" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <!-- contact --> <section class="contact"> <div class="container"> <form id="form1078890166" name="form1078890166" method="post" enctype="multipart/form-data" class="question_form"> <h2>Оставьте заявку <br>на бесплатную консультацию</h2> <div class="contact-title-icons"> <div class="contact-item"> <div class="ico"><svg class="icon"><use xlink:href="#time"></use></svg></div>
Бесплатно
</div> <div class="contact-item"> <div class="ico"><svg class="icon"><use xlink:href="#time"></use></svg></div>
В удобное вам время
</div> </div> <ul class="contact-info"> <li> <span class="ico"><svg class="icon"><use xlink:href="#cnt-1"></use></svg></span>
вышлем подробную <br>программу
</li> <li> <span class="ico"><svg class="icon"><use xlink:href="#cnt-2"></use></svg></span>
расскажем про профессию, <br>навыки, зарплату
</li> <li> <span class="ico"><svg class="icon"><use xlink:href="#cnt-3"></use></svg></span>
ответим на все <br>ваши вопросы
</li> </ul> <div class="contact-form"> <div class="form-row"> <input type="hidden" name="formAction" value="autopayment" /> <div class="form-group"><input type="text" placeholder="Имя" class="form-control" name="name"></div> <div class="form-group"><input type="email" placeholder="Электронная почта" class="form-control" name="email"></div> <div class="form-group"><input type="tel" placeholder="Телефон" class="form-control" name="phone"></div> </div> <div class="agree"> <input type="checkbox" checked name="agree" id="agree" class="checkbox__input"> <label for="agree" class="checkbox__label">Я соглашаюсь на обработку персональных данных персональных данных</label> </div> </div> <div class="text-center"><button class="btn">Получить консультацию</button></div> <div class="modal-content inline_success"> <div class="modal-body"> <div class="thank-ico"> <img src="https://static.tildacdn.com/tild3931-3964-4230-b635-393731303463/check.svg" width="93" alt=""> </div> <p>Заявка успешно отправлена! <br>Скоро с вами свяжется менеджер</p> </div> </div> </form> </div> </section> <!-- / contact --> <!-- nominify end --> </div> </div> </div> </div> <!-- index.html → program --> <div id="rec1078891221" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <!-- od-programm --> <section class="od-programm" id="od-programm"> <div class="container"> <div class="od-title-wrap"> <h2>Программа обучения</h2> <a href="#pop-up" data-fancybox="modal" class="od-dwn"> <span class="ico"><svg class="icon"><use xlink:href="#dwn"></use></svg></span>
Скачать полную версию в PDF
</a> </div> <div class="od-programm-info"> <div class="od-info-num"><strong>400</strong><span>часов</span></div> <div class="od-info-num"><strong>43</strong><span>раздатки</span></div> <div class="od-info-num"><strong>42</strong><span>практических заданий</span></div> <div class="od-info-num"><strong>8</strong><span>проектов в портфолио</span></div> </div> <div class="od-programm-box"> <div class="od-programm-box-body--no-scroll"> <div class="od-card"> <div class="od-card-btn"> <div class="od-card-labels"> <span><i>8</i> уроков</span> <span><i>1</i> текст</span> </div> <span>Введение в профессию</span> <span class="ico"><svg class="icon"><use xlink:href="#plus"></use></svg></span> </div> <div class="od-card-body"> <div class="inner"> <ul class="od-list"> <li>Чем занимается дизайнер интерьеров</li> <li>Возможные карьерные треки</li> <li>Истории успеха экспертов курса</li> </ul> </div> </div> </div> <div class="od-card"> <div class="od-card-btn"> <div class="od-card-labels"> <span><i>13</i> уроков</span> <span><i>4</i> задания</span> <span><i>1</i> раздатка</span> </div> <span>Основы дизайна интерьеров</span> <span class="ico"><svg class="icon"><use xlink:href="#plus"></use></svg></span> </div> <div class="od-card-body"> <div class="inner"> <ul class="od-list"> <li>Стили в дизайне интерьеров</li> <li>Композиция</li> <li>Свет и цвет в интерьерах</li> <li>Библиотека развития насмотренности</li> </ul> </div> </div> </div> <div class="od-card"> <div class="od-card-btn"> <div class="od-card-labels"> <span><i>16</i> уроков</span> <span><i>1</i> задание</span> <span><i>2</i> раздатки</span> </div> <span>Материалы и комплектующие</span> <span class="ico"><svg class="icon"><use xlink:href="#plus"></use></svg></span> </div> <div class="od-card-body"> <div class="inner"> <ul class="od-list"> <li>Комплектация проекта</li> <li>Работа с черновыми и чистовыми материалами</li> <li>Сантехника и электрика</li> </ul> </div> </div> </div> <div class="od-card"> <div class="od-card-btn"> <div class="od-card-labels"> <span><i>6</i> уроков</span> <span><i>2</i> задания</span> <span><i>2</i> раздатки</span> </div> <span>Коммуникация до начала работы</span> <span class="ico"><svg class="icon"><use xlink:href="#plus"></use></svg></span> </div> <div class="od-card-body"> <div class="inner"> <ul class="od-list"> <li>ТЗ и интервью с заказчиком</li> <li>Бюджет и смета проекта</li> <li>Защита договором</li> </ul> </div> </div> </div> <div class="od-card"> <div class="od-card-btn"> <div class="od-card-labels"> <span><i>4</i> урока</span> <span><i>1</i> задание</span> <span><i>1</i> раздатка</span> </div> <span>Замеры на объекте</span> <span class="ico"><svg class="icon"><use xlink:href="#plus"></use></svg></span> </div> <div class="od-card-body"> <div class="inner"> <ul class="od-list"> <li>Подготовка к замерам</li> <li>Замеры сухих и мокрых зон</li> <li>Фото и видео помещения</li> </ul> </div> </div> </div> <div class="od-card"> <div class="od-card-btn"> <div class="od-card-labels"> <span><i>52</i> урока</span> <span><i>8</i> заданий</span> <span><i>10</i> раздаток</span> </div> <span>Revit Autodesk</span> <span class="bonus-label">2 проекта в портфолио</span> <span class="ico"><svg class="icon"><use xlink:href="#plus"></use></svg></span> </div> <div class="od-card-body"> <div class="inner"> <ul class="od-list"> <li>Создание обмерного плана</li> <li>Планы демонтажа и монтажа</li> <li>Меблировка помещений</li> <li>Планы электрики и сантехники</li> <li>Визуализация</li> <li>Развёртки и альбомы</li> </ul> </div> </div> </div> <div class="od-card"> <div class="od-card-btn"> <div class="od-card-labels"> <span><i>26</i> уроков</span> <span><i>2</i> задания</span> <span><i>1</i> тренажёр</span> </div> <span>Планировка и эргономика</span> <span class="bonus-label">2 проекта в портфолио</span> <span class="ico"><svg class="icon"><use xlink:href="#plus"></use></svg></span> </div> <div class="od-card-body"> <div class="inner"> <ul class="od-list"> <li>Модульные сетки и оси</li> <li>Стены и проёмы</li> <li>Особенности планировки разных помещений</li> <li>Зонирование и эргономика</li> <li>Согласование планировки и перепланировки</li> </ul> </div> </div> </div> <div class="od-card headline">Можно брать первые заказы</div> <div class="od-card"> <div class="od-card-btn"> <div class="od-card-labels"> <span><i>4</i> урока</span> </div> <span>Коллажи в Adobe Photoshop</span> <span class="bonus-label">1 проект в портфолио</span> <span class="ico"><svg class="icon"><use xlink:href="#plus"></use></svg></span> </div> <div class="od-card-body"> <div class="inner"> <ul class="od-list"> <li>Мудборды и коллажи</li> <li>Работа в Photoshop</li> <li>Сборка коллажей</li> </ul> </div> </div> </div> <div class="od-card"> <div class="od-card-btn"> <div class="od-card-labels"> <span><i>7</i> уроков</span> <span><i>1</i> задание</span> <span><i>1</i> раздатка</span> </div> <span>Создание презентаций</span> <span class="ico"><svg class="icon"><use xlink:href="#plus"></use></svg></span> </div> <div class="od-card-body"> <div class="inner"> <ul class="od-list"> <li>Как делать презентации</li> <li>Коммерческие презентации</li> </ul> </div> </div> </div> <div class="od-card"> <div class="od-card-btn"> <div class="od-card-labels"> <span><i>7</i> заданий</span> <span><i>15</i> раздаток</span> </div> <span>3Ds Max</span> <span class="bonus-label">2 проекта в портфолио</span> <span class="ico"><svg class="icon"><use xlink:href="#plus"></use></svg></span> </div> <div class="od-card-body"> <div class="inner"> <ul class="od-list"> <li>Создание 3D-объектов</li> <li>Стены, двери и окна</li> <li>Мебель и отделка</li> <li>Работа со светом</li> <li>Обработка изображений</li> <li>Плагин Corona Renderer</li> <li>Плагины Floor Generator и Multi Texture</li> </ul> </div> </div> </div> <div class="od-card headline">Можно работать визуализатором</div> <div class="od-card"> <div class="od-card-btn"> <div class="od-card-labels"> <span><i>7</i> уроков</span> <span><i>1</i> тест</span> </div> <span>Коммуникация во время работы</span> <span class="ico"><svg class="icon"><use xlink:href="#plus"></use></svg></span> </div> <div class="od-card-body"> <div class="inner"> <ul class="od-list"> <li>Презентация проекта</li> <li>Решение конфликтов</li> </ul> </div> </div> </div> <div class="od-card"> <div class="od-card-btn"> <div class="od-card-labels"> <span><i>5</i> уроков</span> <span><i>1</i> задание</span> <span><i>2</i> раздатки</span> </div> <span>Авторский надзор</span> <span class="ico"><svg class="icon"><use xlink:href="#plus"></use></svg></span> </div> <div class="od-card-body"> <div class="inner"> <ul class="od-list"> <li>Проведение авторского надзора</li> <li>Контроль авторского надзора</li> </ul> </div> </div> </div> <div class="od-card"> <div class="od-card-btn"> <div class="od-card-labels"> <span><i>27</i> уроков</span> <span><i>1</i> задание</span> <span><i>2</i> раздатки</span> </div> <span>ArchiCAD</span> <span class="bonus-label">2 проекта в портфолио</span> <span class="ico"><svg class="icon"><use xlink:href="#plus"></use></svg></span> </div> <div class="od-card-body"> <div class="inner"> <ul class="od-list"> <li>Интерфейс программы</li> <li>2D и 3D моделирование</li> <li>Оформление листов дизайн-проекта</li> <li>Расширения и библиотеки</li> </ul> </div> </div> </div> <div class="od-card"> <div class="od-card-btn"> <div class="od-card-labels"> <span><i>32</i> урока</span> <span><i>8</i> заданий</span> </div> <span>Homestyler</span> <span class="bonus-label">1 проект в портфолио</span> <span class="ico"><svg class="icon"><use xlink:href="#plus"></use></svg></span> </div> <div class="od-card-body"> <div class="inner"> <ul class="od-list"> <li>Интерфейс программы</li> <li>Моделирование кухни и гостиной</li> <li>Мебель и декор</li> <li>Рендеринг</li> </ul> </div> </div> </div> <div class="od-card"> <div class="od-card-btn"> <div class="od-card-labels"> <span><i>4</i> урока</span> </div> <span>Нейросети для дизайнера</span> <span class="ico"><svg class="icon"><use xlink:href="#plus"></use></svg></span> </div> <div class="od-card-body"> <div class="inner"> <ul class="od-list"> <li>ChatGPT и Midjourney</li> <li>Нейросети для работы</li> </ul> </div> </div> </div> <div class="od-card headline">Содействие в трудоустройстве</div> </div> </div> <div class="programm-acces"> <div class="programm-acces-inner"> <img src="https://static.tildacdn.com/tild3465-6132-4364-a636-363331633939/acces-ico.svg" width="46px" alt=""> <span>Доступ к материалам и обновлениям курса навсегда</span> </div> </div> <div class="text-center"><a href="#od-promo" class="btn">Забронировать место</a></div> </div> </section> <!-- / od-programm --> <!-- nominify end --> </div> </div> </div> </div> <!-- index.html → diploma --> <div id="rec1679658631" class="r t-rec" style=" " data-animationappear="off" data-record-type="396"> <!-- T396 --> <style>#rec1679658631 .t396__artboard {height:0px;background-color:#ffffff;}#rec1679658631 .t396__filter {height:0px;}#rec1679658631 .t396__carrier{height:0px;background-position:center center;background-attachment:scroll;background-size:cover;background-repeat:no-repeat;}@media screen and (max-width:1199px) {#rec1679658631 .t396__artboard,#rec1679658631 .t396__filter,#rec1679658631 .t396__carrier {}#rec1679658631 .t396__filter {}#rec1679658631 .t396__carrier {background-attachment:scroll;}}@media screen and (max-width:959px) {#rec1679658631 .t396__artboard,#rec1679658631 .t396__filter,#rec1679658631 .t396__carrier {}#rec1679658631 .t396__filter {}#rec1679658631 .t396__carrier {background-attachment:scroll;}}@media screen and (max-width:639px) {#rec1679658631 .t396__artboard,#rec1679658631 .t396__filter,#rec1679658631 .t396__carrier {}#rec1679658631 .t396__filter {}#rec1679658631 .t396__carrier {background-attachment:scroll;}}@media screen and (max-width:479px) {#rec1679658631 .t396__artboard,#rec1679658631 .t396__filter,#rec1679658631 .t396__carrier {}#rec1679658631 .t396__filter {}#rec1679658631 .t396__carrier {background-attachment:scroll;}}#rec1679658631 .tn-elem[data-elem-id="1470210033144"]{z-index:3;top:12px;;left:calc(50% - 600px + 20px);;width:51px;height:auto;}#rec1679658631 .tn-elem[data-elem-id="1470210033144"] .tn-atom{border-radius:0px 0px 0px 0px;opacity:0;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;}#rec1679658631 .tn-elem[data-elem-id="1470210033144"] .tn-atom__img{border-radius:0px 0px 0px 0px;object-position:center center;}@media screen and (max-width:1199px){#rec1679658631 .tn-elem[data-elem-id="1470210033144"]{display:table;height:auto;}}@media screen and (max-width:959px){#rec1679658631 .tn-elem[data-elem-id="1470210033144"]{display:table;height:auto;}}@media screen and (max-width:639px){#rec1679658631 .tn-elem[data-elem-id="1470210033144"]{display:table;height:auto;}}@media screen and (max-width:479px){#rec1679658631 .tn-elem[data-elem-id="1470210033144"]{display:table;height:auto;}}</style> <div class='t396'> <div class="t396__artboard" data-artboard-recid="1679658631" data-artboard-screens="320,480,640,960,1200" data-artboard-height="0" data-artboard-valign="center" data-artboard-upscale="grid"> <div class="t396__carrier" data-artboard-recid="1679658631"></div> <div class="t396__filter" data-artboard-recid="1679658631"></div> <div class='t396__elem tn-elem tn-elem__16796586311470210033144' data-elem-id='1470210033144' data-elem-type='image' data-field-top-value="12" data-field-left-value="20" data-field-height-value="36" data-field-width-value="51" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-filewidth-value="1024" data-field-fileheight-value="724" data-field-heightmode-value="hug" data-field-height-res-320-value="36"> <div class='tn-atom'> <img class='tn-atom__img t-img' data-original='https://static.tildacdn.com/tild6435-6266-4132-b330-653633646439/image.png'
src='https://thb.tildacdn.com/tild6435-6266-4132-b330-653633646439/-/resize/20x/image.png'
alt='' imgfield='tn_img_1470210033144'
/> </div> </div> </div> </div> <script>t_onReady(function() {t_onFuncLoad('t396_init',function() {t396_init('1679658631');});});</script> <!-- /T396 --> </div> <div id="rec1078892726" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <!-- od-diploma --> <section class="od-diploma"> <div class="container"> <h2>После обучения <br>вы получите</h2> <div class="od-diploma-item row"> <div class="col"> <div class="od-diploma-img"><img src="https://static.tildacdn.com/tild6435-6266-4132-b330-653633646439/image.png" loading="lazy" alt=""></div> </div> <div class="col"> <div class="od-diploma-text"> <div class="od-diploma-title">Диплом <br>о прохождении <br>курса</div> <p>После прохождения уроков и выполнения практических кейсов вы получите официальный диплом Академии Eduson — резидента «Сколково»</p> </div> </div> </div> <div class="od-diploma-item row align-items-center reverse"> <div class="col"> <div class="od-diploma-text"> <div class="od-diploma-title">Диплом о профессиональной переподготовке</div> <p>После успешного прохождения курса вы получите диплом о профпереподготовке, который подтвердит повышение квалификации</p> </div> </div> <div class="col"> <div class="od-diploma-img"><img src="https://static.tildacdn.com/tild3935-6563-4465-b663-386133623137/____1.png" loading="lazy" alt=""></div> </div> </div> </div> </section> <!-- / od-diploma --> <!-- nominify end --> </div> </div> </div> </div> <!-- index.html → comments --> <div id="rec1082327446" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <!-- od-comments --> <section class="od-comments"> <div class="container"> <h2>
Студенты любят наши курсы
<div class="od-rate-info">Средний рейтинг <span>4.8</span></div> </h2> <!-- arrows will be injected here by Slick --> <div class="od-comm-nav"></div> <div class="od-comm-slider"> <!-- 1 --> <div class="slide"> <div class="od-comm-card"> <div class="od-comm-top"> <div class="od-comm-name">Виталий Яловчук</div> <div class="od-comm-rating"> <div class="od-comm-num">5.0</div> <div class="od-stars"> <span><svg class="icon"><use xlink:href="#star"></use></svg></span> <span><svg class="icon"><use xlink:href="#star"></use></svg></span> <span><svg class="icon"><use xlink:href="#star"></use></svg></span> <span><svg class="icon"><use xlink:href="#star"></use></svg></span> <span><svg class="icon"><use xlink:href="#star"></use></svg></span> </div> </div> </div> <div class="od-comm-subtitle">Дизайнер интерьеров</div> <p>Не сразу выбрал обучение — искал подходящие варианты. Хотелось стажировку и дальнейшее трудоустройство. В Eduson адекватная цена и актуальная программа. С нуля освоил всё без особых сложностей, куратор всегда помогал. К концу курса собрал приличное портфолио, которое сильно пригодилось при поиске работы.</p> </div> </div> <!-- 2 --> <div class="slide"> <div class="od-comm-card"> <div class="od-comm-top"> <div class="od-comm-name">Анна</div> <div class="od-comm-rating"> <div class="od-comm-num">5.0</div> <div class="od-stars"> <span><svg class="icon"><use xlink:href="#star"></use></svg></span> <span><svg class="icon"><use xlink:href="#star"></use></svg></span> <span><svg class="icon"><use xlink:href="#star"></use></svg></span> <span><svg class="icon"><use xlink:href="#star"></use></svg></span> <span><svg class="icon"><use xlink:href="#star"></use></svg></span> </div> </div> </div> <div class="od-comm-subtitle">Дизайнер интерьеров</div> <p>Очень хотелось творческого развития. Купила курс — и не пожалела: актуальные инструменты, замечательные спикеры, разбирали подсчёт, план, 3D-визуал. Интенсивно и интересно: теперь есть мотивация и чёткий план действий.</p> </div> </div> <!-- 3 --> <div class="slide"> <div class="od-comm-card"> <div class="od-comm-top"> <div class="od-comm-name">Маша Флорова</div> <div class="od-comm-rating"> <div class="od-comm-num">5.0</div> <div class="od-stars"> <span><svg class="icon"><use xlink:href="#star"></use></svg></span> <span><svg class="icon"><use xlink:href="#star"></use></svg></span> <span><svg class="icon"><use xlink:href="#star"></use></svg></span> <span><svg class="icon"><use xlink:href="#star"></use></svg></span> <span><svg class="icon"><use xlink:href="#star"></use></svg></span> </div> </div> </div> <div class="od-comm-subtitle">Дизайнер интерьеров</div> <p>Для творческих людей без опыта — идеальное обучение. Ещё не закончила курс, но уже вижу прогресс. Композиция, колористика, свет, 3D модели — всё подано грамотно и актуально. Осталась дипломная работа, а дальше — новые проекты!</p> </div> </div> <!-- 4 --> <div class="slide"> <div class="od-comm-card"> <div class="od-comm-top"> <div class="od-comm-name">Мария Орлова</div> <div class="od-comm-rating"> <div class="od-comm-num">5.0</div> <div class="od-stars"> <span><svg class="icon"><use xlink:href="#star"></use></svg></span> <span><svg class="icon"><use xlink:href="#star"></use></svg></span> <span><svg class="icon"><use xlink:href="#star"></use></svg></span> <span><svg class="icon"><use xlink:href="#star"></use></svg></span> <span><svg class="icon"><use xlink:href="#star"></use></svg></span> </div> </div> </div> <div class="od-comm-subtitle">Дизайнер интерьеров</div> <p>Только начала путь на курсе и уже понимаю, что выбрала верное направление. Планирую освоить профессию и собрать портфолио для будущей работы в дизайне интерьеров.</p> </div> </div> </div> </div> </section> <!-- / od-comments --> <!-- nominify end --> </div> </div> </div> </div> <!-- index.html → promo --> <div id="rec1078893351" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <!-- od-promo --> <section class="od-promo"> <div class="container"> <div class="od-promo-box"> <div class="od-promo-bg"><img src="https://static.tildacdn.com/tild6661-3862-4432-a633-633061623830/promo.png" loading="lazy" width="1160" alt=""></div> <h2>Выгодная оплата курса</h2> <div class="promo-benefits row"> <div class="col"> <div class="promo-card"> <div class="ico"><img src="https://static.tildacdn.com/tild3334-6166-4730-b037-643031616236/promo-1.png" width="56" loading="lazy" alt=""></div>
Налоговый вычет 13% от стоимости обучения
</div> </div> <div class="col"> <div class="promo-card"> <div class="ico"><img src="https://static.tildacdn.com/tild3730-3835-4235-b236-636162383738/promo-2.png" width="56" loading="lazy" alt=""></div>
Беспроцентная рассрочка <br>на 12 месяцев
</div> </div> <div class="col"> <div class="promo-card"> <div class="ico"><img src="https://static.tildacdn.com/tild3037-6338-4935-b739-663533356563/promo-3.png" width="56" loading="lazy" alt=""></div>
Курс на ваш выбор <br>в подарок
</div> </div> </div> </div> <div class="od-promo-form" id="od-promo"> <div class="row"> <div class="od-promo-info"> <div class="od-info-title">Успейте обучиться <br>со скидкой</div> <p>Обучение можно оплатить сразу или воспользоваться <strong>беспроцентной рассрочкой на 12 месяцев</strong></p> <div class="od-last">21 500 ₽ / мес</div> <div class="od-price"> <span class="od-price-custom" data-price="13500">8 600 ₽ / мес</span> <span class="radio-sale">-60%</span> </div> <div class="od-start">Начало обучения: <span>6 марта</span></div> <div class="counter-wrapper"> <p>До конца скидки осталось</p> <div class="countdown" data-deadline="2025-05-21T12:30:00"> <div class="days">0 дня</div> <div class="time">00:00:00</div> </div> </div> <ul class="od-info-list"> <li> <span class="ico"><img src="https://static.tildacdn.com/tild6430-6334-4666-b632-373535613730/ico-1.png" width="24" alt=""></span>
8+ проектов в портфолио
</li> <li> <span class="ico"><img src="https://static.tildacdn.com/tild3239-3933-4133-b137-366536633365/ico-2.png" width="24" alt=""></span>
160+ часов практики
</li> <li> <span class="ico"><img src="https://static.tildacdn.com/tild6538-3265-4665-a236-336164383130/ico-3.png" width="24" alt=""></span>
Обратная связь от опытного дизайнера
</li> <li> <span class="ico"><img src="https://static.tildacdn.com/tild3238-3861-4637-a139-623765323964/ico-4.png" width="24" alt=""></span>
Диплом о профессиональной переподготовке
</li> <li> <span class="ico"><img src="https://static.tildacdn.com/tild3633-3337-4433-b632-653139393136/ico-5.png" width="24" alt=""></span>
Современные и востребованные инструменты
</li> <li> <span class="ico"><img src="https://static.tildacdn.com/tild3431-3439-4564-a365-366635343137/ico-6.png" width="24" alt=""></span>
Высокооплачиваемые навыки: 3D-визуализация и авторский надзор
</li> <li> <span class="ico"><img src="https://static.tildacdn.com/tild3539-3862-4634-a230-366634616132/ico-7.png" width="24" alt=""></span>
Нейросети для вдохновения в подарок
</li> </ul> </div> </div> <div class="od-form"> <form id="form1078893351" name="form1078893351" class="pay_form js-form-proccess" method="post" data-formactiontype="2" data-inputbox=".form-group" data-original-success-callback="t396_onSuccess" data-success-callback="combinedCallbackOrchestrator" novalidate> <div class="od-hero-title">Записаться на курс <br>или получить бесплатную консультацию</div> <div class="od-radio"> <div class="od-radio-item"> <input type="radio" name="rad" id="rad-1" checked> <label for="rad-1">Записаться на бесплатную консультацию</label> </div> <div class="od-radio-item"> <input type="radio" name="rad" id="rad-2"> <label for="rad-2">
Оплатить сразу со скидкой
<span class="radio-sale"></span> </label> </div> </div> <a href="#" class="od-vk-btn"> <span class="ico"><svg class="icon"><use xlink:href="#vk"></use></svg></span>
Заполнить форму через VK
</a> <div class="form-group"><input type="text" placeholder="Имя" class="form-control" name="name" id="pay-name"></div> <div class="form-group"><input type="tel" placeholder="Телефон" class="form-control" name="phone" id="pay-phone"></div> <div class="form-group"><input type="text" placeholder="Email" class="form-control" name="email" id="pay-email"></div> <div class="od-code"> <a href="#" class="od-code-btn">У меня есть промокод</a> <div class="od-code-body"> <div class="od-code-row"> <!-- <div class="form-group error"> <input type="text" placeholder="Ввести промокод" class="form-control"> <div class="error-note form-note">Промокод не найден</div> </div> --> <div class="form-group"> <input type="text" name="promocode" placeholder="Ввести промокод" class="form-control promo-code-input"> <div class="promocode-status"></div> </div> <button class="btn code-btn promocode-button">Применить</button> </div> </div> </div> <div class="agree"> <input type="checkbox" name="agree" id="agree-2" checked class="checkbox__input"> <label for="agree-2" class="checkbox__label">Я соглашаюсь на обработку персональных данных персональных данных</label> </div> <button type="submit" class="btn t-submit">Отправить заявку</button> <div class="js-errorbox-all t-form__errorbox-wrapper"> <div class="t-form__errorbox-text t-text t-text_md"> <p class="t-form__errorbox-item js-rule-error js-rule-error-all"></p> <p class="t-form__errorbox-item js-rule-error js-rule-error-req">Это обязательное поле.</p> <p class="t-form__errorbox-item js-rule-error js-rule-error-email">Неверный формат Email.</p> <p class="t-form__errorbox-item js-rule-error js-rule-error-name"></p> <p class="t-form__errorbox-item js-rule-error js-rule-error-phone">Неверный формат телефона.</p> </div> </div> <div class="modal-content inline_success js-successbox"> <div class="modal-body"> <div class="thank-ico"> <img src="https://static.tildacdn.com/tild3931-3964-4230-b635-393731303463/check.svg" width="93" alt=""> </div> <p>Заявка успешно отправлена! <br>Скоро с вами свяжется менеджер</p> </div> </div> </form> </div> </div> </div> </div> </div> </section> <!-- / od-promo --> <!-- nominify end --> </div> </div> </div> </div> <!-- index.html → faq --> <div id="rec1078893796" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <!-- od-faq --> <section class="od-faq"> <div class="container"> <h2>Часто задаваемые вопросы</h2> <div class="od-acco"> <div class="od-acco-panel"> <button class="od-acco-btn">
Есть какие-то требования для старта обучения?
<span class="caret"><svg class="icon"><use xlink:href="#plus"></use></svg></span> </button> <div class="od-acco-body"> <div class="od-acco-card"> <p>Для старта не нужны специальные знания в отрасли. Однако курс будет максимально полезен, если у вас уже есть опыт в операционном управлении или ведении бизнеса.</p> </div> </div> </div> <div class="od-acco-panel"> <button class="od-acco-btn">
Сколько времени нужно, чтобы пройти курс?
<span class="caret"><svg class="icon"><use xlink:href="#plus"></use></svg></span> </button> <div class="od-acco-body"> <div class="od-acco-card"> <p>Зависит от комфортного для вас темпа. При общей нагрузке в 7-8 часов в неделю вы сможете пройти курс за 6 месяцев.</p> </div> </div> </div> <div class="od-acco-panel"> <button class="od-acco-btn">
Какие документы я получу после успешного прохождения курса?
<span class="caret"><svg class="icon"><use xlink:href="#plus"></use></svg></span> </button> <div class="od-acco-body"> <div class="od-acco-card"> <p>Вы получите диплом о профессиональной переподготовке установленного образца, а также диплом от нашей Академии с официальной печатью и подписью основателя.</p> </div> </div> </div> <div class="od-acco-panel"> <button class="od-acco-btn">
К кому можно будет обращаться во время обучения?
<span class="caret"><svg class="icon"><use xlink:href="#plus"></use></svg></span> </button> <div class="od-acco-body"> <div class="od-acco-card"> <p>После старта обучения на следующие 365 дней за вами будет закреплён куратор. Вы сможете обращаться к нему по любым вопросам через удобные вам каналы связи.</p> </div> </div> </div> <div class="od-acco-panel"> <button class="od-acco-btn">
У вас есть лицензия? Смогу ли получить налоговый вычет?
<span class="caret"><svg class="icon"><use xlink:href="#plus"></use></svg></span> </button> <div class="od-acco-body"> <div class="od-acco-card"> <p>Да, получить вычет можно. Образовательная деятельность в Академии Eduson ведется на основании <a href="#">государственной лицензии</a> №00374370 от 27 мая 2022 года.</p> </div> </div> </div> <div class="od-acco-panel"> <button class="od-acco-btn">
Какие есть способы оплаты?
<span class="caret"><svg class="icon"><use xlink:href="#plus"></use></svg></span> </button> <div class="od-acco-body"> <div class="od-acco-card"> <p>Вы можете оплатить обучение одним платежом с помощью банковской карты или вносить ежемесячный платеж вместо единовременной оплаты. Проценты за это не начисляются. Также обучение можно оплатить по счёту от юридического лица.</p> </div> </div> </div> </div> </div> </section> <!-- / od-faq --> <!-- nominify end --> </div> </div> </div> </div> <!-- index.html → footer --> <div id="rec1078895416" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <!-- od-footer --> <footer class="od-footer"> <div class="container"> <div class="od-bank"> <div class="bank-logo"><img src="https://static.tildacdn.com/tild6561-6436-4164-a661-386663623035/od-bank-logo.png" width="159" alt="" loading="lazy"></div> <div class="od-bank-text">Рассрочка за 2 минуты, не выходя из дома</div> <a href="#" class="btn">Оформить рассрочку</a> </div> <div class="row"> <div class="col-lg-4"> <div class="f-title">Направления обучения</div> <div class="row"> <div class="col-6"> <ul class="f-list"> <li><a href="https://eduson.academy/catalogue/management-and-business">Управление и бизнес</a></li> <li><a href="https://eduson.academy/catalogue/analytics">Аналитика</a></li> <li><a href="https://eduson.academy/catalogue/hr">HR</a></li> <li><a href="https://eduson.academy/catalogue/accounting">Бухгалтерия</a></li> <li><a href="https://eduson.academy/it-all">IT</a></li> <li><a href="https://eduson.academy/catalogue/marketing">Маркетинг</a></li> <li><a href="https://eduson.academy/catalogue/soft-skills">Soft skills</a></li> <li><a href="https://eduson.academy/mba-all">Программы МВА</a></li> </ul> </div> <div class="col-6"> <ul class="f-list"> <li><a href="https://eduson.academy/catalogue/sales">Продажи</a></li> <li><a href="https://eduson.academy/catalogue/remote-work">Профессии на удалёнке</a></li> <li><a href="https://eduson.academy/catalogue/excel">Excel</a></li> <li><a href="https://eduson.academy/catalogue/psychology">Психология</a></li> <li><a href="https://eduson.academy/catalogue/finance">Финансы</a></li> <li><a href="https://eduson.academy/catalogue/popular">Популярные курсы</a></li> <li><a href="https://eduson.academy/catalogue/design">Дизайн</a></li> </ul> </div> </div> </div> <div class="col-lg-4"> <div class="row"> <div class="col-lg-6"> <div class="f-title">Академия</div> <ul class="f-list two-col"> <li><a href="https://eduson.academy/work">Вакансии</a></li> <li><a href="https://eduson.academy/otzyvy">Отзывы</a></li> <li><a href="https://eduson.academy/contacts">Контакты</a></li> <li><a href="https://blog.eduson.academy/">Блог</a></li> </ul> </div> <div class="col-lg-6"> <div class="f-title">Программы</div> <ul class="f-list two-col"> <li><a href="https://free.eduson.academy/">Бесплатные курсы</a></li> <li><a href="https://eduson.academy/referral">Реферальная программа</a></li> <li><a href="https://eduson.academy/corp-sale">Корпоративное обучение</a></li> </ul> </div> </div> </div> <div class="col-lg-4"> <div class="row"> <div class="col-lg-6"> <div class="f-title">Документы</div> <ul class="f-list"> <li><a href="https://eduson.academy/policy-personal-data">Политика обработки персональных данных</a></li> <li><a href="https://eduson.academy/offer">Публичная оферта для физических лиц</a></li> <li><a href="https://eduson.academy/ru/offer-yl">Публичная оферта для юридических лиц и ИП</a></li> <li><a href="https://eduson.academy/license">Государственная лицензия</a></li> <li><a href="https://eduson.academy/info">Сведения об образовательной организации</a></li> </ul> </div> </div> </div> </div> <div class="od-footer-mdl"> <div class="row"> <div class="col-lg-8"> <div class="od-f-contact"> <a href="tel:+78001011404" class="od-tel">+7 (800) 101-14-04</a> <a href="mailto:academy@eduson.tv" class="od-email">academy@eduson.tv</a> <ul class="od-social"> <li><a href="https://t.me/edusondaily" class="telegram"><svg class="icon"><use xlink:href="#telegram"></use></svg></a></li> <li><a href="https://vk.com/public201850172" class="vk"><svg class="icon"><use xlink:href="#black-vk"></use></svg></a></li> <li><a href="https://www.youtube.com/@EdusonTV" class="youtube"><svg class="icon"><use xlink:href="#youtube"></use></svg></a></li> <li><a href="https://dzen.ru/eduson_academy" class="zen"><svg class="icon"><use xlink:href="#zen"></use></svg></a></li> </ul> </div> </div> <div class="col-lg-4"> <ul class="od-rewards"> <li><a href="https://navigator.sk.ru/navigator/orn/1123244"><img src="https://static.tildacdn.com/tild3261-3930-4238-b264-303265613936/skolkovo-logo.png" width="185" alt="" loading="lazy"></a></li> <li><img src="https://static.tildacdn.com/tild3634-3035-4232-a563-343263343133/reward.png" width="120" alt="" loading="lazy"></li> </ul> </div> </div> </div> <div class="od-footer-btm"> <div class="copy">© 2020–2026 Eduson Academy</div> <div class="od-adress">115280, г. Москва, ул. Ленинская слобода, д. 19</div> </div> </div> </footer> <!-- / od-footer --> <!-- nominify end --> </div> </div> </div> </div> <!-- index.html → modal --> <div id="rec1078895731" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <!-- Modal --> <div class="od-comm-modal" id="popup"> <p>У меня свой бизнес, заметил, что большую часть времени трачу на операционку, а не на развитие. Курс Операционный директор сильно помог. Информация конечно не для новичков, но разобраться никогда не помешает. Курс продолжительный, я проходил почти пол года. Много интересной информации и практических заданий. Уже спустя 4 месяца увидел собственные косяки.</p> <p>Сейчас оптимизировал большую часть процессов, плюс кое-где сократились затраты.</p> </div> <div class="od-comm-modal" id="popup-2"> <p>Меня повысили на работе, но получив желаемую должность операционного директора, поняла что надо срочно ликвидировать пробелы в знаниях, дабы успешно справляться с поставленными задачами. Академию Эдюсон мне посоветовал руководитель, сам тут обучался. Курс "Операционный директор" завершила недавно. Уже во время обучения, многое пригодилось на практике.</p> </div> <div class="od-comm-modal" id="popup-3"> <p>Настало время выразить искеннюю благодарность Eduson Academy, за то, что помогли мне получить долгожданное повышение. Курс «Операционнный директор» стоил каждой потраченной на него копейки. Программу вы можете посмотреть сами на сайте, одно могу сказать, такого емкого и информативного курса с кучей плльзы нет нигде больше.</p> <p>Формат тоже очень удобный, можно легко совмещать учебу с работой. Гигантский плюс, что доступ к материалам остается навсегда, я до сих пор пользуюсь ими в работе и переслушиваю лекции. Может бренд Академии Эдюсон не раскрученный, но с такими образовательными программами думаю это дело времени. Рекомендую от души!</p> </div> <div class="od-comm-modal" id="popup-4"> <p>Устроилась на должность бизнес-ассистента в крупную компанию. Да, опыт в этой сфере у меня уже был, но на новом месте поняла, что знаний мне не хватает как вроздуха. Курс «операционный директор» стал для меня мегаполезным.</p> <p>Долго изучала рынок курсов, перед тем как выбрать Эдюсон. И по-моему, аналогов по такой стоимости просто нет на рынке. Понравилось качество материалов и подача информации, все четко, по делу без воды. Очень сильные спикеры-эксперты. В целом, получила от курса, все что мне было нужно.</p> </div> <div class="od-comm-modal" id="popup-5"> <p>Устроился на должность операционного директора в молодую, но динамично развивающуюся компанию. Это мой первый руководящий опыт. Конечно были пробелы по некоторым вопросам. Обучение помогло мне систематизировать знания в финансах и операционном менджменте, внедрить новые инструменты. Курс понравился, буду дальше применять полученные знания на практике, тем более доступ к материалам остался и после учебы. Цена отлична за такое качественное наполнение. Рекомедую.</p> </div> <div class="od-comm-modal" id="popup-6"> <p>Сейчас занимаю должность топ-менеджера, для дальнейшего роста срочно потребовалось прокачать свои навыки в сфере экономики и финансов, подходящий курс нашел здесь. Посмотрел программу, в описании как раз все необходимое, ничего лишнего и удобный формат обучения, который не привязывает тебя к определенному времени, записанные видеолекции, сразу открывается доступ ко всему курсу, после теории отрабатывается практика.</p> <p>В программе нашел все, что мне было нужно.</p> </div> <div id="pop-up" class="modal-content-wrapper"> <button type="button" class="custom-modal-close-btn">×</button> <form id="form1078895731" name="form1078895731" class="od-form form_programm js-form-proccess" method="post" data-formactiontype="2" data-inputbox=".form-group" data-original-success-callback="t396_onSuccess" data-success-callback="combinedCallbackOrchestrator"> <div class="modal-title">Получите полную программу курса в PDF</div> <div class="form-group"> <input type="text" placeholder="Имя" class="form-control" name="name" id="program-name"> </div> <div class="form-group"> <input type="tel" placeholder="Телефон" class="form-control" name="phone" id="program-phone"> </div> <div class="form-group"> <input type="text" placeholder="Email" class="form-control" name="email" id="program-email"> </div> <div class="agree"> <input type="checkbox" checked name="agree" id="agree" class="checkbox__input"> <label for="agree" class="checkbox__label">Я соглашаюсь на обработку персональных данных персональных данных</label> </div> <div class="js-errorbox-all t-form__errorbox-wrapper"></div> <button type="submit" class="btn t-submit">Получить программу</button> </form> </div> <div id="custom-success-modal" class="custom-modal"> <div class="custom-modal-content"> <button class="custom-modal-close" aria-label="Закрыть">×</button> <div class="thank-ico"> <img src="https://static.tildacdn.com/tild3931-3964-4230-b635-393731303463/check.svg" width="93" alt=""> </div> <p>Заявка успешно отправлена! <br>Скоро с вами свяжется менеджер</p> </div> </div> <div id="hero-pop-up" class="modal-content-wrapper"> <button type="button" class="custom-modal-close-btn">×</button> <form id="form10788957312" name="form10788957312" class="od-form form_programm form_hero_popup js-form-proccess" method="post" data-formactiontype="2" data-inputbox=".form-group" data-original-success-callback="t396_onSuccess" data-success-callback="combinedCallbackOrchestrator"> <div class="modal-title">Получить консультацию или записаться на курс</div> <div class="form-group"> <input type="text" placeholder="Имя" class="form-control" name="name" id="hero-program-name"> </div> <div class="form-group"> <input type="tel" placeholder="Телефон" class="form-control" name="phone" id="hero-program-phone"> </div> <div class="form-group"> <input type="text" placeholder="Email" class="form-control" name="email" id="hero-program-email"> </div> <div class="agree"> <input type="checkbox" checked name="agree" id="agree" class="checkbox__input"> <label for="agree" class="checkbox__label">Я соглашаюсь на обработку персональных данных персональных данных</label> </div> <div class="js-errorbox-all t-form__errorbox-wrapper"></div> <button type="submit" class="btn t-submit">Отправить заявку</button> </form> </div> <!-- Modal --> <svg width="0" height="0" style="display: none;"> <symbol viewBox="0 0 16 16" id="arr"> <path fill-rule="evenodd" clip-rule="evenodd" d="M13.6345 7.33164C13.92 7.61715 13.92 8.08004 13.6345 8.36554L8.00004 14L2.36558 8.36554C2.08008 8.08004 2.08008 7.61714 2.36558 7.33164C2.65108 7.04614 3.11397 7.04614 3.39947 7.33164L7.26897 11.2011L7.26897 2.73107C7.26897 2.32731 7.59628 2 8.00004 2C8.4038 2 8.73112 2.32731 8.73112 2.73107V11.2011L12.6006 7.33164C12.8861 7.04614 13.349 7.04614 13.6345 7.33164Z"></path> </symbol> <symbol viewBox="0 0 25 25" id="time"> <path d="M12.3644 6.75662C12.6248 6.75662 12.8746 6.86006 13.0587 7.04419C13.2428 7.22831 13.3463 7.47804 13.3463 7.73844V12.0427L15.7321 13.2435C15.8513 13.2989 15.9582 13.3777 16.0464 13.4752C16.1346 13.5727 16.2023 13.6869 16.2455 13.8111C16.2887 13.9353 16.3066 14.0669 16.298 14.1981C16.2894 14.3293 16.2545 14.4574 16.1954 14.5749C16.1364 14.6924 16.0543 14.7968 15.9542 14.8819C15.854 14.9671 15.7377 15.0312 15.6123 15.0706C15.4868 15.11 15.3547 15.1238 15.2239 15.1111C15.093 15.0985 14.966 15.0597 14.8504 14.997L11.9236 13.5243C11.761 13.4427 11.6243 13.3175 11.5287 13.1627C11.4332 13.0078 11.3826 12.8295 11.3826 12.6475V7.73844C11.3826 7.47804 11.4861 7.22831 11.6702 7.04419C11.8543 6.86006 12.104 6.75662 12.3644 6.75662ZM12.3644 2.82935C14.3063 2.82935 16.2045 3.40517 17.8191 4.48401C19.4337 5.56284 20.6921 7.09623 21.4352 8.89027C22.1784 10.6843 22.3728 12.6584 21.994 14.563C21.6151 16.4675 20.68 18.2169 19.3069 19.59C17.9338 20.9631 16.1844 21.8982 14.2799 22.2771C12.3753 22.6559 10.4012 22.4615 8.60718 21.7183C6.81314 20.9752 5.27975 19.7168 4.20092 18.1022C3.12208 16.4876 2.54625 14.5894 2.54625 12.6475C2.54911 10.0445 3.58444 7.54883 5.42509 5.70818C7.26574 3.86753 9.76137 2.8322 12.3644 2.82935ZM12.3644 20.5021C13.9179 20.5021 15.4365 20.0414 16.7282 19.1783C18.0199 18.3153 19.0266 17.0886 19.6211 15.6533C20.2156 14.2181 20.3711 12.6388 20.0681 11.1152C19.765 9.59155 19.0169 8.192 17.9184 7.09352C16.82 5.99505 15.4204 5.24697 13.8968 4.9439C12.3731 4.64084 10.7939 4.79638 9.35863 5.39087C7.9234 5.98537 6.69669 6.9921 5.83362 8.28377C4.97055 9.57545 4.50989 11.094 4.50989 12.6475C4.51249 14.7299 5.34085 16.7262 6.8133 18.1987C8.28575 19.6711 10.2821 20.4995 12.3644 20.5021Z"></path> </symbol> <symbol viewBox="0 0 24 25" id="plus"> <path d="M24 12.5C24 13.1392 23.4818 13.6575 22.8425 13.6575L1.15746 13.6575C0.518214 13.6575 2.79424e-08 13.1392 0 12.5C-2.79424e-08 11.8608 0.518213 11.3425 1.15746 11.3425L22.8425 11.3425C23.4818 11.3425 24 11.8608 24 12.5ZM13.1664 23.3336C13.1664 23.9778 12.6442 24.5 12 24.5C11.3558 24.5 10.8336 23.9778 10.8336 23.3336L10.8336 1.66639C10.8336 1.02221 11.3558 0.5 12 0.5C12.6442 0.5 13.1664 1.02221 13.1664 1.66639L13.1664 23.3336Z"></path> </symbol> <symbol viewBox="0 0 20 21" fill="none" id="check"> <path fill-rule="evenodd" clip-rule="evenodd" d="M10 18.4805C14.4183 18.4805 18 14.8987 18 10.4805C18 6.06219 14.4183 2.48047 10 2.48047C5.58172 2.48047 2 6.06219 2 10.4805C2 14.8987 5.58172 18.4805 10 18.4805ZM13.716 9.67857C14.1016 9.28313 14.0935 8.65002 13.6981 8.26447C13.3027 7.87892 12.6695 7.88693 12.284 8.28237L9.12158 11.5259L7.73639 10.0182C7.36274 9.6115 6.73014 9.58471 6.32344 9.95836C5.91675 10.332 5.88996 10.9646 6.26361 11.3713L8.36361 13.657C8.5495 13.8594 8.81044 13.9763 9.08517 13.9804C9.35989 13.9844 9.62419 13.8753 9.816 13.6786L13.716 9.67857Z" fill="#40B166"></path> </symbol> <symbol viewBox="0 0 24 25" fill="none" id="cnt-1"> <path fill-rule="evenodd" clip-rule="evenodd" d="M12 22.9199C17.5228 22.9199 22 18.4428 22 12.9199C22 7.39707 17.5228 2.91992 12 2.91992C6.47715 2.91992 2 7.39707 2 12.9199C2 18.4428 6.47715 22.9199 12 22.9199ZM16.592 10.3804C16.8463 10.0535 16.7874 9.58224 16.4605 9.32794C16.1335 9.07364 15.6623 9.13254 15.408 9.4595L11.401 14.6114C11.3119 14.7259 11.1443 14.7408 11.0364 14.6437L8.50173 12.3625C8.19385 12.0854 7.71963 12.1104 7.44254 12.4182C7.16544 12.7261 7.1904 13.2003 7.49828 13.4774L10.033 15.7586C10.7881 16.4383 11.9613 16.3342 12.585 15.5323L16.592 10.3804Z" fill="#FFD53B"></path> </symbol> <symbol viewBox="0 0 24 25" fill="none" id="cnt-2"> <path fill-rule="evenodd" clip-rule="evenodd" d="M10 3.91992H11.1429C14.3782 3.91992 17.0902 6.20727 17.8118 9.28426C17.9348 9.80899 18 10.3567 18 10.9199C18 14.7859 14.93 17.9199 11.1429 17.9199H6.96161H4.28571C3.02335 17.9199 2 16.8753 2 15.5866V12.0866C2 7.57626 5.58172 3.91992 10 3.91992ZM11.4286 19.9199H8.05814C9.29491 21.1571 10.9888 21.9199 12.8571 21.9199H17.0384H19.7143C20.9766 21.9199 22 20.8752 22 19.5866V16.0866C22 14.0138 21.2435 12.1213 19.997 10.6813C19.999 10.7606 20 10.8401 20 10.9199C20 15.8905 16.1624 19.9199 11.4286 19.9199Z" fill="#FFD53B"></path> </symbol> <symbol viewBox="0 0 24 25" fill="none" id="cnt-3"> <path fill-rule="evenodd" clip-rule="evenodd" d="M12 6.44415L12.765 5.62221C14.8777 3.35249 18.3029 3.35249 20.4155 5.62221C22.5282 7.89192 22.5282 11.5719 20.4155 13.8416L13.5301 21.239C12.685 22.1469 11.3149 22.1469 10.4699 21.239L3.58447 13.8416C1.47184 11.5719 1.47184 7.89192 3.58447 5.62221C5.69709 3.35249 9.12233 3.35249 11.235 5.62221L12 6.44415ZM17 6.16992C16.5858 6.16992 16.25 6.50571 16.25 6.91992C16.25 7.33414 16.5858 7.66992 17 7.66992C17.6904 7.66992 18.25 8.22957 18.25 8.91992C18.25 9.33414 18.5858 9.66992 19 9.66992C19.4142 9.66992 19.75 9.33414 19.75 8.91992C19.75 7.40114 18.5188 6.16992 17 6.16992Z" fill="#FFD53B"></path> </symbol> <symbol viewBox="0 0 23 22" id="dwn"> <path d="M11.3106 2.64014C9.5506 2.64014 7.78101 3.31139 6.43907 4.65331C5.44111 5.65127 4.83611 6.88925 4.57958 8.1802C1.97545 8.68538 0 10.9596 0 13.7049C0 16.8195 2.54071 19.3602 5.65532 19.3602H17.7036C20.4152 19.3602 22.6213 17.1542 22.6213 14.4425C22.6213 11.8833 20.6497 9.79999 18.1493 9.57098C18.1608 7.79102 17.5286 6.00739 16.1745 4.65331C14.8338 3.31249 13.0707 2.64014 11.3106 2.64014ZM11.3106 4.11544C12.697 4.11544 14.0698 4.63089 15.1295 5.69063C16.3541 6.91521 16.8723 8.57897 16.6817 10.1703C16.6553 10.38 16.7201 10.591 16.8597 10.7497C16.9993 10.9084 17.2003 10.9996 17.4116 11.0002H17.7036C19.6234 11.0002 21.146 12.5227 21.146 14.4425C21.146 16.3624 19.6234 17.8849 17.7036 17.8849H5.65532C3.33806 17.8849 1.4753 16.0222 1.4753 13.7049C1.4753 11.5166 3.13956 9.73376 5.27113 9.54024C5.6155 9.50668 5.89029 9.23829 5.93194 8.8948C6.06767 7.7256 6.58503 6.58967 7.48408 5.69063C8.54275 4.63198 9.9243 4.11544 11.3106 4.11544ZM11.3106 8.54134C10.9032 8.54134 10.573 8.8716 10.573 9.27899V14.0046L9.10536 12.6676C8.81927 12.4083 8.32111 12.4289 8.06035 12.7137C7.79962 12.9984 7.79419 13.4688 8.10648 13.7587L10.8112 16.2175C10.9347 16.3305 11.0647 16.4096 11.3106 16.4096C11.5566 16.4096 11.664 16.3513 11.8101 16.2175L14.5148 13.7587C14.7983 13.4966 14.8515 12.9984 14.5609 12.7137C14.2851 12.4434 13.802 12.4083 13.5159 12.6676L12.0483 14.0046V9.27899C12.0483 8.8716 11.7181 8.54134 11.3106 8.54134Z"></path> </symbol> <symbol viewBox="0 0 22 22" fill="none" id="star"> <path d="M12.0197 1.72226L14.349 6.39235C14.517 6.73208 14.8447 6.9685 15.2248 7.02418L20.4424 7.78422C20.7492 7.82724 21.0258 7.98862 21.2112 8.23266C21.3965 8.47669 21.4753 8.78326 21.4301 9.08452C21.394 9.33422 21.2762 9.56562 21.0946 9.74382L17.3119 13.4066C17.0348 13.6656 16.9088 14.0441 16.9765 14.4139L17.9082 19.5693C18.0111 20.1861 17.5996 20.7725 16.9765 20.8971C16.7214 20.9372 16.4601 20.8954 16.2311 20.7781L11.5725 18.3514C11.2275 18.1771 10.8181 18.1771 10.4731 18.3514L5.81452 20.7781C5.24069 21.0832 4.52379 20.8743 4.21197 20.3111C4.09382 20.0856 4.05141 19.8291 4.09085 19.5785L5.02256 14.4231C5.09023 14.0532 4.9642 13.6747 4.68714 13.4158L0.90438 9.75298C0.68246 9.53788 0.557526 9.24434 0.557526 8.938C0.557526 8.63167 0.68246 8.33813 0.90438 8.12303C1.08316 7.94112 1.31988 7.82479 1.57522 7.79338L6.79282 7.03334C7.17295 6.97765 7.50065 6.74124 7.66863 6.4015L9.91406 1.72226C10.1104 1.32312 10.5252 1.07281 10.9762 1.08126H11.116C11.5084 1.1302 11.8488 1.3716 12.0197 1.72226Z" fill="#FFD53B"></path> </symbol> <symbol viewBox="0 0 22 19" id="telegram"> <path d="M20.0139 0.368355L1.00217 7.69962C-0.295304 8.22078 -0.287796 8.94458 0.764126 9.26733L5.64519 10.79L16.9386 3.66459C17.4726 3.3397 17.9605 3.51444 17.5595 3.87045L8.40956 12.1282H8.40742L8.40956 12.1293L8.07288 17.1605C8.56614 17.1605 8.78382 16.9342 9.06047 16.6672L11.4313 14.3618L16.3628 18.0044C17.2721 18.5051 17.9251 18.2478 18.1514 17.1626L21.3886 1.90603C21.72 0.577451 20.8814 -0.0241059 20.0139 0.368355Z"></path> </symbol> <symbol viewBox="0 0 27 16" id="black-vk"> <path fill-rule="evenodd" clip-rule="evenodd" d="M25.5876 1.76571C25.7655 1.18071 25.5876 0.75 24.7358 0.75H21.9234C21.2076 0.75 20.8776 1.12178 20.6987 1.53212C20.6987 1.53212 19.2684 4.95644 17.2423 7.18072C16.5866 7.82569 16.2887 8.03037 15.9309 8.03037C15.7519 8.03037 15.483 7.82569 15.483 7.23966V1.76571C15.483 1.06284 15.2858 0.75 14.6901 0.75H10.2673C9.82048 0.75 9.55156 1.0757 9.55156 1.38535C9.55156 2.05073 10.5651 2.20502 10.6691 4.07784V8.14712C10.6691 9.03966 10.5052 9.2014 10.1473 9.2014C9.19372 9.2014 6.87409 5.76109 5.4973 1.82465C5.23049 1.05857 4.96049 0.75 4.24157 0.75H1.42694C0.623368 0.75 0.462654 1.12178 0.462654 1.53212C0.462654 2.26287 1.41623 5.89285 4.90371 10.6939C7.22869 13.9725 10.5019 15.75 13.4837 15.75C15.2719 15.75 15.4926 15.3557 15.4926 14.6754V12.1971C15.4926 11.4075 15.6619 11.25 16.2287 11.25C16.6465 11.25 17.3612 11.4557 19.0305 13.0361C20.9376 14.91 21.2516 15.75 22.3251 15.75H25.1376C25.9412 15.75 26.3441 15.3557 26.1126 14.5757C25.8576 13.8 24.9469 12.6739 23.7394 11.3378C23.0837 10.5771 22.1001 9.7575 21.8012 9.34715C21.3844 8.82109 21.5033 8.58642 21.8012 8.11822C21.8012 8.11822 25.2298 3.37609 25.5866 1.76571H25.5876Z"></path> </symbol> <symbol viewBox="0 0 24 17" fill="none" id="youtube"> <mask id="mask0_55_115" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="17"> <path d="M23.7189 0H0.17749V16.5H23.7189V0Z" fill="white"></path> </mask> <g mask="url(#mask0_55_115)"> <path d="M23.2275 2.57747C23.0935 2.07837 22.8308 1.62322 22.4656 1.25756C22.1004 0.891913 21.6456 0.628591 21.1467 0.493948C19.3101 8.74201e-08 11.9482 0 11.9482 0C11.9482 0 4.58625 -8.74201e-08 2.7497 0.491322C2.25055 0.625526 1.7955 0.888701 1.43024 1.25442C1.06499 1.62014 0.802386 2.07552 0.668813 2.57484C0.17749 4.41401 0.17749 8.25 0.17749 8.25C0.17749 8.25 0.17749 12.086 0.668813 13.9225C0.939435 14.9367 1.73816 15.7354 2.7497 16.0061C4.58625 16.5 11.9482 16.5 11.9482 16.5C11.9482 16.5 19.3101 16.5 21.1467 16.0061C22.1608 15.7354 22.9569 14.9367 23.2275 13.9225C23.7189 12.086 23.7189 8.25 23.7189 8.25C23.7189 8.25 23.7189 4.41401 23.2275 2.57747ZM9.60981 11.7707V4.7293L15.7053 8.22371L9.60981 11.7707Z" fill="#37373D"></path> <path d="M9.60986 4.72925V11.7706L15.7054 8.22365L9.60986 4.72925Z" fill="white"></path> </g> </symbol> <symbol viewBox="0 0 18 17" id="zen"> <path d="M17.2189 0H0.718872V16.5H17.2189V0Z" fill="black"></path> <path d="M17.2189 0H0.718872V16.5H17.2189V0Z" fill="white"></path> <path d="M17.2189 0H0.718872V16.5H17.2189V0Z" fill="white"></path> <path d="M10.5599 9.84107C9.26351 11.1788 9.16923 12.8464 9.05726 16.5C12.4633 16.5 14.8146 16.4882 16.0285 15.3096C17.2071 14.0957 17.2188 11.6325 17.2188 8.33839C13.5653 8.45625 11.8976 8.54464 10.5599 9.84107ZM0.718872 8.33839C0.718872 11.6325 0.730657 14.0957 1.90923 15.3096C3.12316 16.4882 5.47441 16.5 8.88048 16.5C8.76262 12.8464 8.67423 11.1788 7.3778 9.84107C6.04012 8.54464 4.37244 8.45036 0.718872 8.33839ZM8.88048 0C5.4803 0 3.12316 0.0117856 1.90923 1.19036C0.730657 2.40429 0.718872 4.8675 0.718872 8.16161C4.37244 8.04375 6.04012 7.95536 7.3778 6.65893C8.67423 5.32125 8.76852 3.65357 8.88048 0ZM10.5599 6.65893C9.26351 5.32125 9.16923 3.65357 9.05726 0C12.4633 0 14.8146 0.0117856 16.0285 1.19036C17.2071 2.40429 17.2188 4.8675 17.2188 8.16161C13.5653 8.04375 11.8976 7.95536 10.5599 6.65893Z"></path> <path d="M17.2188 8.33839V8.16161C13.5653 8.04375 11.8976 7.95536 10.5599 6.65893C9.26351 5.32125 9.16923 3.65357 9.05726 0H8.88048C8.76262 3.65357 8.67423 5.32125 7.3778 6.65893C6.04012 7.95536 4.37244 8.04964 0.718872 8.16161V8.33839C4.37244 8.45625 6.04012 8.54464 7.3778 9.84107C8.67423 11.1788 8.76852 12.8464 8.88048 16.5H9.05726C9.17512 12.8464 9.26351 11.1788 10.5599 9.84107C11.8976 8.54464 13.5653 8.45036 17.2188 8.33839Z" fill="white"></path> </symbol> </svg> <!-- nominify end --> </div> </div> </div> </div> <!-- ./js/formPreferences.js --> <div id="rec1078810801" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <script type="text/javascript" id="js-formPreferences">
// File: js/formPreferences.js
// This script manages global configurations for Tilda forms used on the Eduson website.
// Key responsibilities include:
// 1. Defining `EDUSON_FORM_CONFIGS`: A global object containing validation rules,
// messages, form names, and Tilda service IDs for various forms on the site.
// This configuration is consumed by `js/forms.js` to initialize jQuery Validation.
// 2. Overriding Tilda's default form submission behavior: It injects hidden fields
// (formname, formservices[]) and sets a custom `data-success-callback`
// (`combinedCallbackOrchestrator`) for Tilda forms.
// 3. `combinedCallbackOrchestrator`: A global function that handles form success events.
// It attempts to call any original Tilda success callback and then calls a
// custom global success handler (`myCustomGlobalFormSuccessHandler` from `js/forms.js`).
//
// Important Note on Validation Styling & Structure (controlled by js/forms.js and forms.css):
// - Invalid fields are highlighted using the 'is-invalid' class.
// - This 'is-invalid' class is applied by jQuery Validate (configured in js/forms.js)
// to both the input/textarea element and its closest '.form-group' container.
// - Individual error messages are displayed in a 'div' element.
// - This error 'div' is styled with the classes 'validation-error-message help-block'.
// (see errorPlacement in js/forms.js and styles in forms.css).
// - ARIA attributes (aria-describedby, role='alert') are set on inputs and error messages
// respectively for accessibility (see errorPlacement in js/forms.js).
// - Corresponding styles for all these elements and classes are in 'css/components/forms.css'.
// Orchestrator function to manage Tilda form success callbacks
function combinedCallbackOrchestrator(formElementArg) {
const $form = $(formElementArg); // Ensure we have a jQuery object
// Handle autopay flow: skip custom success and redirect to payment
const isPayForm = $form.hasClass('pay_form');
const isAutopayChosen = $form.find('#rad-2').is(':checked');
const isAutoPaymentForm = $form.find('input[name="formAction"][value="autopayment"]').length > 0;
if ((isPayForm && isAutopayChosen) || isAutoPaymentForm) {
if (typeof window.initiateCloudPaymentsPayment === 'function') {
window.initiateCloudPaymentsPayment($form);
} else {
console.error('combinedCallbackOrchestrator: initiateCloudPaymentsPayment function not found for autopay form');
}
return;
}
if ($form.data('custom-invalid') === true) {
console.warn('combinedCallbackOrchestrator: Custom validation failed (custom-invalid flag is true). Preventing Tilda success callback and our custom handler.', formElementArg);
// Optionally, ensure the submit button is re-enabled if it was disabled by Tilda or our previous logic
// $form.find('button[type="submit"].t-submit').prop('disabled', false);
return; // Stop further processing
}
if (!formElementArg || (typeof jQuery !== 'undefined' && formElementArg instanceof jQuery && formElementArg.length === 0)) {
console.error('combinedCallbackOrchestrator: received null or empty jQuery formElementArg');
return;
}
console.log('%c---- combinedCallbackOrchestrator CALLED ----', 'color: blue; font-weight: bold; font-size: 14px;', 'Form argument received:', formElementArg);
let rawDomElement;
if (typeof jQuery !== 'undefined' && formElementArg instanceof jQuery) {
rawDomElement = formElementArg[0];
} else {
rawDomElement = formElementArg; // Assume it might be a raw DOM element if not jQuery
}
if (!rawDomElement) {
console.error('combinedCallbackOrchestrator: Could not resolve to a raw DOM element.');
return;
}
const originalCallbackName = rawDomElement.getAttribute('data-original-success-callback');
if (originalCallbackName) {
console.log(`combinedCallbackOrchestrator: Original callback name found: '${originalCallbackName}'`);
if (typeof window[originalCallbackName] === 'function') {
try {
console.log(`combinedCallbackOrchestrator: Attempting to call original callback: window.${originalCallbackName}() with original Tilda argument.`);
window[originalCallbackName](formElementArg); // Pass the original argument Tilda sent
console.log(`combinedCallbackOrchestrator: Successfully called original callback '${originalCallbackName}'`);
} catch (e) {
console.error(`combinedCallbackOrchestrator: Error calling original callback '${originalCallbackName}':`, e);
}
} else {
console.warn(`combinedCallbackOrchestrator: Original callback function '${originalCallbackName}' not found on window object or is not a function.`);
}
} else {
console.log('combinedCallbackOrchestrator: No original callback name stored in data-original-success-callback.');
if (typeof window.t396_onSuccess === 'function') {
console.log("combinedCallbackOrchestrator: t396_onSuccess found on window, attempting to call as a fallback with original Tilda argument.");
try {
window.t396_onSuccess(formElementArg); // Pass the original argument Tilda sent
console.log("combinedCallbackOrchestrator: Successfully called t396_onSuccess as fallback.");
} catch (e) {
console.error("combinedCallbackOrchestrator: Error calling t396_onSuccess as fallback:", e);
}
}
}
// Call our custom global handler
if (typeof myCustomGlobalFormSuccessHandler === 'function') {
try {
console.log('combinedCallbackOrchestrator: Attempting to call myCustomGlobalFormSuccessHandler() with original Tilda argument.');
myCustomGlobalFormSuccessHandler(formElementArg); // Pass the original argument Tilda sent
console.log('combinedCallbackOrchestrator: Successfully called myCustomGlobalFormSuccessHandler');
} catch (e) {
console.error('combinedCallbackOrchestrator: Error calling myCustomGlobalFormSuccessHandler:', e);
}
} else {
console.error('combinedCallbackOrchestrator: myCustomGlobalFormSuccessHandler is not defined globally or not a function. Make sure forms.js is loaded and the function is global.');
}
}
// Ensure the orchestrator is globally accessible if Tilda calls it by string name
window.combinedCallbackOrchestrator = combinedCallbackOrchestrator;
document.addEventListener('DOMContentLoaded', function() {
// Configuration for each form including validation rules and messages
const formConfigsFromMaster = window.COURSE_CONFIG && window.COURSE_CONFIG.forms;
if (!formConfigsFromMaster) {
console.error('FormPreferences: COURSE_CONFIG.forms not found. Cannot initialize forms.');
return;
}
// Make formConfigs globally accessible for forms.js
window.EDUSON_FORM_CONFIGS = formConfigsFromMaster;
console.log('FormPreferences: EDUSON_FORM_CONFIGS prepared from COURSE_CONFIG.forms and attached to window.', window.EDUSON_FORM_CONFIGS);
// Apply configurations to forms
for (const formKey in formConfigsFromMaster) { // Iterate by key (e.g., 'week', 'question')
const config = formConfigsFromMaster[formKey];
const selector = config.selector; // Get selector from the config object
const form = document.querySelector(selector);
if (form) {
// --- Handle formname ---
let formNameInput = form.querySelector('input[name="formname"], input[name="tildaspec-formname"]');
if (!formNameInput) {
formNameInput = document.createElement('input');
formNameInput.type = 'hidden';
form.appendChild(formNameInput);
}
formNameInput.name = 'formname'; // Standardize name
formNameInput.value = config.formname;
// --- Handle formservices[] ---
const existingServices = form.querySelectorAll('input[name="formservices[]"]');
existingServices.forEach(input => input.remove());
if (config.services && Array.isArray(config.services)) {
config.services.forEach(serviceId => {
const serviceInput = document.createElement('input');
serviceInput.type = 'hidden';
serviceInput.name = 'formservices[]';
serviceInput.value = serviceId;
form.appendChild(serviceInput);
});
}
// --- Handle data-success-callback ---
const originalCallback = form.getAttribute('data-success-callback');
if (originalCallback && originalCallback !== 'combinedCallbackOrchestrator') {
form.setAttribute('data-original-success-callback', originalCallback);
console.log(`FormPreferences: Stored original callback '${originalCallback}' for ${selector} in data-original-success-callback`);
} else if (originalCallback === 'combinedCallbackOrchestrator') {
console.log(`FormPreferences: data-success-callback for ${selector} is already set to combinedCallbackOrchestrator. Original callback might have been set in a previous run: ${form.getAttribute('data-original-success-callback')}`);
}
form.setAttribute('data-success-callback', 'combinedCallbackOrchestrator');
console.log(`FormPreferences: Set data-success-callback for ${selector} to 'combinedCallbackOrchestrator'`);
} else {
console.warn(`FormPreferences: Form with selector "${selector}" not found in the document.`);
}
}
});
</script> <!-- nominify end --> </div> </div> </div> </div> <!-- ./js/forms.js --> <div id="rec1107313751" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <script type="text/javascript" id="js-forms">
console.log('forms.js script loaded');
// Form handling and validation
const forms = {
// Initialize form handling
init: function() {
console.log('forms.init() called');
this.initializeValidation();
this.initializeMasks();
this.bindEvents();
// Handle program form submission
// $('.form_programm').on('submit', (e) => {
// e.preventDefault();
// this.handleSubmit(e.target);
// });
},
// Initialize form validation
initializeValidation: function() {
console.log('forms.initializeValidation() called');
// Add custom validation methods if not already present (e.g., for phone if needed, though mask is removed)
// Keeping the Tilda default phone validation for reference, but not applying it by default.
if (!$.validator.methods.phoneUK) { // Example check if you had specific methods
$.validator.addMethod('phoneSimple', function(value, element) {
return this.optional(element) || /^\+?[0-9\s\-\(\)]+$/.test(value);
}, 'Пожалуйста, введите корректный номер телефона.');
}
const allFormConfigs = window.EDUSON_FORM_CONFIGS;
if (!allFormConfigs) {
console.error('forms.js: EDUSON_FORM_CONFIGS not found. Ensure formPreferences.js runs first and defines it.');
return;
}
console.log('forms.js: Loaded EDUSON_FORM_CONFIGS:', allFormConfigs);
Object.keys(allFormConfigs).forEach(formKey => {
const formConfigEntry = allFormConfigs[formKey];
if (!formConfigEntry || !formConfigEntry.selector) {
console.warn(`forms.js: Skipping validation setup for key "${formKey}" due to missing formConfigEntry or selector.`);
return; // continue to next iteration
}
const currentFormSetup = {
selector: formConfigEntry.selector, // Use the actual selector from the config entry
name: formConfigEntry.formname || formKey, // Use formname as the 'name' for logging, fallback to key
rules: formConfigEntry.rules || {},
messages: formConfigEntry.messages || {}
};
const $form = $(currentFormSetup.selector);
if ($form.length === 0) {
console.warn(`forms.js: Form with selector "${currentFormSetup.selector}" (config key: ${formKey}) not found for validation setup.`);
return; // continue to next iteration
}
console.log(`forms.js: Setting up validation for ${currentFormSetup.name} (${currentFormSetup.selector}) with rules:`, currentFormSetup.rules);
// Initialize jQuery Validate on the form
$form.validate({
ignore: [],
errorClass: 'is-invalid',
errorElement: 'div',
highlight: function(element, errorClass, validClass) {
$(element).addClass(errorClass).removeClass(validClass);
},
unhighlight: function(element, errorClass, validClass) {
$(element).removeClass(errorClass).addClass(validClass);
},
rules: currentFormSetup.rules,
messages: currentFormSetup.messages,
errorPlacement: function(error, element) {
const $formGroup = element.closest('.form-group');
error.addClass('validation-error-message help-block').data('noTildaWrap', true);
error.insertAfter(element);
const errorId = 'err-' + (element.attr('name') || 'field') + '-' + new Date().getTime();
error.attr({
'id': errorId, // This will overwrite the ID on subsequent calls, which is probably fine.
'role': 'alert',
'aria-live': 'polite'
});
element.attr('aria-describedby', errorId);
},
invalidHandler: function(event, validator) {
const $formElement = $(this);
$formElement.data('custom-invalid', true);
if ($formElement.is('.form_week')) {
console.log('%cFORM_WEEK jQuery Validate: invalidHandler CALLED. Form is INVALID.', 'color: red; font-weight: bold; font-size: 1.2em;', 'Errors:', validator.errorList.length, validator.errorList);
}
$formElement.addClass('tilda-has-errors');
if (validator.errorList.length) {
const $firstInvalidInput = $formElement.find('.form-control.is-invalid').first();
let $destinationElement = $firstInvalidInput;
if ($firstInvalidInput.length === 0 || !$firstInvalidInput.is(':visible')) {
const $firstInvalidGroup = $formElement.find('.form-group.is-invalid').first();
if ($firstInvalidGroup.length > 0) {
$destinationElement = $firstInvalidGroup;
}
}
if ($destinationElement.length > 0 && $destinationElement.offset()) {
const destOffsetTop = $destinationElement.offset().top;
const currentScrollTop = $(window).scrollTop();
const windowHeight = $(window).height();
const offsetToScroll = 150;
if (destOffsetTop < currentScrollTop + offsetToScroll - 20 || destOffsetTop + $destinationElement.outerHeight() > currentScrollTop + windowHeight - 20) {
$('html, body').stop().animate({ scrollTop: destOffsetTop - offsetToScroll }, 400);
}
} else {
const formTop = $formElement.offset().top;
if (formTop < $(window).scrollTop() - 120 || formTop > $(window).scrollTop() + $(window).height()) {
$('html, body').stop().animate({ scrollTop: formTop - 120 }, 400);
}
// console.warn('invalidHandler: Could not find a specific visible invalid element to scroll to. Scrolled to form top if out of view.'); // Reduced verbosity
}
}
},
onkeyup: function(element) {
const $element = $(element);
if ($element.valid()) {
if (element.type !== 'checkbox' && element.type !== 'radio') {
$element.closest('.form-group').removeClass('is-invalid');
}
}
}
// submitHandler removed from here
});
// Handle submission via button click
$form.find('button[type="submit"].t-submit, input[type="submit"].t-submit')
.off('click.customValidation') // Remove any previous handler in this namespace
.on('click.customValidation', function(e) { // Add handler in a namespace
if ($form.data('isProcessingCustomValidation')) {
console.log(`jQuery Validate: Form ${currentFormSetup.name} - click handler skipped, already processing this click burst.`);
return;
}
$form.data('isProcessingCustomValidation', true);
try {
if ($form.valid()) { // Trigger validation
$form.data('custom-invalid', false);
$form.removeClass('tilda-has-errors');
console.log(`jQuery Validate: Form ${currentFormSetup.name} is VALID. Allowing default button action for Tilda to handle.`);
// DO NOT preventDefault() or stopPropagation() here.
// Let the default button action proceed so Tilda can handle the submission.
} else {
// Form is invalid as per jQuery Validate
e.preventDefault(); // Prevent default button action (form submission)
e.stopPropagation(); // Prevent event from bubbling up to Tilda's handlers (or other handlers)
console.log(`jQuery Validate: Form ${currentFormSetup.name} is INVALID. Submission HALTED by custom validation.`);
}
} finally {
setTimeout(() => {
$form.removeData('isProcessingCustomValidation');
}, 100); // 100ms delay
}
});
/* --- KILL native Tilda validation for this form --- */
// Leave Tilda's markers; we only suppress its *built‑in* validation:
$form.attr('novalidate', 'novalidate');
$form.find('.form-group').removeClass('t-form__error');
$form.on('tildaform:aftersuccess', function(event) {
console.log(`tildaform:aftersuccess event detected on ${currentFormSetup.name} (${currentFormSetup.selector})! Event:`, event);
console.log('Form element from this event (event.target):', event.target);
// myCustomGlobalFormSuccessHandler(event.target); // Called by combinedCallbackOrchestrator
});
console.log(`forms.js: Attached tildaform:aftersuccess listener to ${currentFormSetup.name} (${currentFormSetup.selector})`);
// Add listener for Tilda form errors to re-enable submit button
$form.on('tildaform:aftererror tildaform:error', function(event) {
console.warn(`tildaform error event detected on ${currentFormSetup.name} (${currentFormSetup.selector}). Re-enabling submit button. Event:`, event);
const $submitBtn = $(this).find('button[type="submit"], input[type="submit"]');
if ($submitBtn.length) {
$submitBtn.prop('disabled', false);
// Optionally remove Tilda's sending state class if it uses one
// $submitBtn.removeClass('t-btn_sending');
}
});
console.log(`forms.js: Attached tildaform:aftererror/error listener to ${currentFormSetup.name} (${currentFormSetup.selector})`);
});
},
// Initialize input masks
initializeMasks: function() {
console.log('forms.initializeMasks() called. Phone mask previously here is now removed.');
// $('input[name="phone"]').mask('+7 (999) 999-99-99'); // This line is removed/commented out.
},
// Bind event handlers
bindEvents: function() {
// Form submission and validation events are handled here
},
// Show success message
showSuccess: function($form) {
const $modal = $('#custom-success-modal');
$modal.addClass('show');
console.log('showSuccess: function($form) {');
// Handler to close modal
function closeModal() {
$modal.removeClass('show');
// Remove event listeners after closing
$modal.off('click', overlayHandler);
$modal.find('.custom-modal-close').off('click', closeModal);
}
// Close on overlay click (but not when clicking the content)
function overlayHandler(e) {
if (e.target === $modal[0]) closeModal();
}
// Attach event listeners
$modal.find('.custom-modal-close').on('click', closeModal);
$modal.on('click', overlayHandler);
// Auto-close after 3 seconds
setTimeout(closeModal, 3000);
// Reset form
$form.trigger('reset');
$form.find('input, textarea').removeClass('is-invalid valid');
}
};
/**
* Handles the success callback for Tilda forms when `tildaform:aftersuccess` event is caught.
* @param {HTMLElement} formElement - The raw HTML form element passed by the event.
*/
function myCustomGlobalFormSuccessHandler(formElement) {
console.log('Global custom success handler triggered for form:', formElement);
if ($.fancybox.getInstance()) $.fancybox.close();
const $form = $(formElement);
// if ($form.hasClass('form_programm') || $form.hasClass('form_week') || $form.hasClass('pay_form') || $form.hasClass('question_form')) {
// Always show the custom modal for any form that reaches here via the orchestrator
console.log('Form identified for custom success modal. Form classes:', $form.attr('class'));
if (typeof $.fancybox === 'function' && $.fancybox.getInstance()) {
$.fancybox.close(); // ensures the program form pop‑up is gone
}
console.log('Showing #custom-success-modal');
forms.showSuccess($form); // Make sure 'forms' is accessible or pass the method appropriately
// Close the custom modals depending on which form was submitted
if ($form.hasClass('form_programm') && typeof EdusonCustomModal !== 'undefined' && typeof EdusonCustomModal.closeProgramModal === 'function') {
console.log('Closing #pop-up (form_programm) custom modal after successful submission.');
EdusonCustomModal.closeProgramModal();
}
if ($form.hasClass('form_hero_popup') && typeof EdusonCustomModal !== 'undefined' && typeof EdusonCustomModal.closeHeroModal === 'function') {
console.log('Closing #hero-pop-up custom modal after successful submission.');
EdusonCustomModal.closeHeroModal();
}
// } else {
// console.log('Form not designated for custom success modal, or condition not met. Classes:', $form.attr('class'));
// }
}
// Ensure the new function is globally accessible and log it
console.log('Global myCustomGlobalFormSuccessHandler function defined. Accessible on window?', typeof window.myCustomGlobalFormSuccessHandler);
if (typeof window.myCustomGlobalFormSuccessHandler === 'function') {
console.log('myCustomGlobalFormSuccessHandler is indeed on window object.');
} else {
console.error('myCustomGlobalFormSuccessHandler is NOT globally accessible on window object!');
}
$(document).ready(function() {
forms.init();
console.log('forms.init() explicitly called on document ready.');
// Defensive delegate to prevent Tilda from sliding up/down our error groups
$(document).on('slideUp.tilda slideDown.tilda', '.form-group.is-invalid', function(e){
if($(e.target).find('[data-noTildaWrap]').length){
e.stopImmediatePropagation(); // cancel Tilda's animation
}
});
$('.od-code .promocode-button').on('click', function(event) {
// Prevent the default action of the button (which would be to submit the form it's in)
event.preventDefault();
console.log('Page-specific: Promo code apply button clicked, default submission prevented.');
// The promo code logic from your footer script will still execute after this.
});
// Removed speculative t_forms__onSuccess override and document-level tildaformonsuccess listener
});
</script> <!-- nominify end --> </div> </div> </div> </div> <!-- ./js/promocodes.js --> <div id="rec1107302176" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <script type="text/javascript" id="js-promocodes">
(function (w, $) {
'use strict';
// Signal to any legacy inline footer scripts that a custom promo script is in use
// This prevents duplicate initialization when those snippets check this flag
w.isCustomPromocodeScript = true;
// Ensure jQuery is loaded
if (!$) {
console.error('jQuery is not loaded. Promocodes script will not run.');
return;
}
// Initialize PROMOCODES namespace and initialization flag
w.PROMOCODES = w.PROMOCODES || {};
w.PROMOCODES.isInitialized = w.PROMOCODES.isInitialized || false;
// Use ₽ and “₽ / мес” to match COURSE_CONFIG conventions
w.PROMOCODES.priceSymbol = w.PROMOCODES.priceSymbol || '₽';
w.PROMOCODES.monthlySymbol = w.PROMOCODES.monthlySymbol || '₽ / мес';
// --- Configuration & State ---
const COURSE_CONFIG = w.COURSE_CONFIG || {};
let PRICING_CONFIG = {};
let SELECTORS_CONFIG = {};
let currentFullPrice = 0;
let currentDiscountPercent = 0; // e.g. 60 for 60%
let initialDiscountPercent = 0;
let currentInstallmentMonths = 1;
// --- Helper Functions ---
function deleteInputsByName(inputName, formSelector) {
if (!inputName) return;
const target = formSelector ? $(formSelector) : $('body');
target.find(`input[name="${inputName}"]`).remove();
}
function updateOrCreateHiddenInput(name, value, formSelector) {
formSelector = formSelector || "form.js-form-proccess";
$(formSelector).each(function () {
const $form = $(this);
let $input = $form.find(`input[name="${name}"]`);
if ($input.length) {
$input.val(value);
} else {
$input = $('<input>', { type: 'hidden', name: name, value: value });
$form.append($input);
}
});
}
function updateTextField(selector, subSelector, text) {
if (!selector) return;
const $el = subSelector ? $(selector).find(subSelector) : $(selector);
if ($el.length) {
$el.text(text);
}
}
function updateElementHtml(selector, subSelector, htmlContent) {
if (!selector) return;
const $el = subSelector ? $(selector).find(subSelector) : $(selector);
if ($el.length) {
$el.html(htmlContent);
}
}
// --- Core UI Update Function ---
function updatePricesUI() {
if (!PRICING_CONFIG || Object.keys(PRICING_CONFIG).length === 0) {
return;
}
const discountFactor = currentDiscountPercent / 100;
// One-time price after discount
let discountedTotal = Math.floor(currentFullPrice * (1 - discountFactor));
// Monthly price after discount
let monthlyDiscounted = currentInstallmentMonths > 0
? Math.floor(discountedTotal / currentInstallmentMonths)
: 0;
// Full-price monthly (no discount)
let fullMonthly = currentInstallmentMonths > 0
? Math.floor(currentFullPrice / currentInstallmentMonths)
: 0;
// Total savings (one-time)
let totalSavings = currentFullPrice - discountedTotal;
// Monthly savings
let monthlySavings = fullMonthly - monthlyDiscounted;
const locale = COURSE_CONFIG.locale || 'ru-RU';
const currencySymbol = PRICING_CONFIG.currencySymbol || w.PROMOCODES.priceSymbol;
const monthlySymbol = w.PROMOCODES.monthlySymbol; // "₽ / мес"
// Build suffix fragments
const monthlySuffix = `<span class="price-label">${monthlySymbol}</span>`;
const priceSuffix = `<span class="price-label">${currencySymbol}</span>`;
// ==== Update Tilda-specific UI elements (unchanged) ====
updateElementHtml(
'.bigPrice',
'.tn-atom',
`${monthlyDiscounted.toLocaleString(locale)} ${monthlySuffix}`
);
updateElementHtml(
'.oldPrice',
'.tn-atom',
`${fullMonthly.toLocaleString(locale)} ${monthlySuffix}`
);
updateElementHtml(
'.fullPrice',
'.tn-atom',
`${currentFullPrice.toLocaleString(locale)} ${priceSuffix}`
);
updateElementHtml(
'.currentPrice',
'.tn-atom',
`${discountedTotal.toLocaleString(locale)} ${priceSuffix}`
);
updateTextField('.bigPriceWithoutLabel .tn-atom', '', monthlyDiscounted.toLocaleString(locale));
updateTextField('.oldPriceWithoutLabel .tn-atom', '', fullMonthly.toLocaleString(locale));
updateTextField('.fullPriceWithoutLabel .tn-atom', '', currentFullPrice.toLocaleString(locale));
updateTextField('.currentPriceWithoutLabel .tn-atom', '', discountedTotal.toLocaleString(locale));
updateTextField('.buyBoxPrice .tn-atom', '', monthlyDiscounted.toLocaleString(locale));
updateElementHtml('.buyBoxPriceStripped', '.tn-atom', `<del>${fullMonthly.toLocaleString(locale)}</del>`);
// Let COURSE_CONFIG update its hidden price fields
if (PRICING_CONFIG) {
PRICING_CONFIG.currentSessionDiscountPct = currentDiscountPercent;
if (COURSE_CONFIG.updateHiddenPriceFields) {
COURSE_CONFIG.updateHiddenPriceFields();
}
}
// Visible Discount Labels
const visibleDiscount = Math.floor(currentDiscountPercent);
updateTextField('.visibleDiscount .tn-atom', '', `-${visibleDiscount}%`);
updateTextField('.visibleDiscountFloat span', '', `-${visibleDiscount}%`);
// Date/Timer texts (if defined)
if (typeof w.discountDateOne !== 'undefined') {
// updateTextField(w.discountHero, '.tn-atom', w.discountDateOne);
updateTextField(
w.discountTimerOne,
'.tn-atom span',
`${w.discountDateOne} и сэкономьте ${monthlySavings.toLocaleString(locale)} ${monthlySymbol}.`
);
updateTextField(
w.discountTimerOneFull,
'.tn-atom span',
`${w.discountDateOne} и сэкономьте ${totalSavings.toLocaleString(locale)} ${currencySymbol}`
);
updateTextField(w.discountTimerTwo, '.tn-atom', w.discountDateOne);
updateTextField(w.discountPriceOne, '.tn-atom', w.discountDateOne);
}
if (typeof w.discountDateTwo !== 'undefined') {
updateTextField(w.discountPriceTwo, '.tn-atom span', w.discountDateTwo);
}
if (typeof w.startDateText !== 'undefined' && SELECTORS_CONFIG.startDate !== w.startDate) {
updateTextField(SELECTORS_CONFIG.startDate, '.tn-atom span', w.startDateText);
}
// ==== HERE: Update .od-price-custom and .od-last ====
// od-price-custom should show monthly price AFTER discount
if (SELECTORS_CONFIG.priceCurrent) {
updateElementHtml(
SELECTORS_CONFIG.priceCurrent,
'',
`${monthlyDiscounted.toLocaleString(locale)} <span class="currency">${monthlySymbol}</span>`
);
}
// od-last should show monthly price BEFORE discount
if (SELECTORS_CONFIG.priceOriginal) {
updateElementHtml(
SELECTORS_CONFIG.priceOriginal,
'',
`${fullMonthly.toLocaleString(locale)} <span class="currency">${monthlySymbol}</span>`
);
}
// ==== Any other COURSE_CONFIG selector updates (unchanged) ====
if (SELECTORS_CONFIG.discountBadge) {
updateTextField(SELECTORS_CONFIG.discountBadge, 'span', `-${visibleDiscount}%`);
}
if (SELECTORS_CONFIG.mainDiscountBadge) {
updateTextField(SELECTORS_CONFIG.mainDiscountBadge, '', `-${visibleDiscount}%`);
}
if (COURSE_CONFIG.courseStart && SELECTORS_CONFIG.startDate) {
updateTextField(SELECTORS_CONFIG.startDate, '', formatDate(COURSE_CONFIG.courseStart));
}
}
function formatDate(dateString) {
if (!dateString || typeof dateString !== 'string' || !dateString.includes('-')) {
return dateString;
}
try {
const parts = dateString.split('T')[0].split('-'); // ["YYYY","MM","DD"]
if (parts.length === 3) {
return `${parts[2]}.${parts[1]}.${parts[0]}`; // "DD.MM.YYYY"
}
} catch (e) {}
return dateString;
}
// --- Promocode Application Logic ---
function applyPromocode(promoCodeValue, $statusDiv, $promoCodeInput) {
const apiUrl = `https://simba.vs2.srv.eduson.tv/promocodes/api/?name=${promoCodeValue}&landing=${w.location.origin}${w.location.pathname}`;
$.ajax({
url: apiUrl,
method: 'GET',
dataType: 'json',
success: function(response) {
let statusMessage = '';
let statusColor = '#ff6347'; // default: error/red
if (response && response.status === 200) {
statusColor = '#78be21'; // success/green
let newDiscountPercent = initialDiscountPercent;
updateOrCreateHiddenInput("ActivatedPromocode", response.name);
$promoCodeInput.val(response.name);
if (PRICING_CONFIG) {
PRICING_CONFIG.currentSessionPromoCode = response.name;
}
switch (response.type) {
case 'fix_discount':
newDiscountPercent = parseFloat(response.discount) * 100;
statusMessage = `Активирована скидка ${Math.floor(newDiscountPercent)}%`;
break;
case 'additional_price':
let priceAfterInitDisc = currentFullPrice * (1 - (initialDiscountPercent / 100));
let finalPrice = priceAfterInitDisc - parseFloat(response.discount);
if (finalPrice < 0) finalPrice = 0;
newDiscountPercent = currentFullPrice > 0
? (1 - finalPrice / currentFullPrice) * 100
: 100;
statusMessage = `Активирован купон -${parseFloat(response.discount).toLocaleString('ru-RU')} ${w.PROMOCODES.priceSymbol}`;
break;
case 'additional_discount':
newDiscountPercent = initialDiscountPercent + (parseFloat(response.discount) * 100);
if (newDiscountPercent > 100) newDiscountPercent = 100;
statusMessage = `Активирована суммарная скидка -${Math.floor(newDiscountPercent)}%`;
break;
case 'consultation':
statusMessage = 'Активирована +1 консультация с экспертом';
break;
case 'free_course':
statusMessage = 'Активирован +1 курс в подарок';
break;
case 'special_offer':
statusMessage = 'Менеджер активирует промокод';
break;
default:
statusMessage = 'Промокод применён, условия уточнит менеджер.';
statusColor = '#78be21';
break;
}
// Only the last promocode’s discount is applied relative to the original full price
currentDiscountPercent = newDiscountPercent;
if (PRICING_CONFIG) {
PRICING_CONFIG.currentSessionDiscountPct = currentDiscountPercent;
}
} else if (response && response.status === 404) {
statusMessage = 'Промокод не найден';
resetToInitialDiscount(false);
} else if (response && response.status === 406) {
statusMessage = 'Промокод недоступен для этого курса';
resetToInitialDiscount(false);
} else {
statusMessage = 'Промокод неактивен или произошла ошибка';
resetToInitialDiscount(false);
}
$statusDiv.html(`<div class="tn-atom" style="color: ${statusColor}">${statusMessage}</div>`);
updatePricesUI();
},
error: function() {
$statusDiv.html('<div class="tn-atom" style="color: #ff6347">Ошибка при проверке промокода.</div>');
resetToInitialDiscount(false);
updatePricesUI();
}
});
}
function resetToInitialDiscount(clearPromoInputAndStatus = true) {
currentDiscountPercent = initialDiscountPercent;
deleteInputsByName("ActivatedPromocode");
if (PRICING_CONFIG) {
PRICING_CONFIG.currentSessionPromoCode = null;
PRICING_CONFIG.currentSessionDiscountPct = initialDiscountPercent;
}
if (clearPromoInputAndStatus) {
$('input[name="promocode"], .promo-code-input').val('');
$('.promocode-status').empty();
}
}
function initializeVariables() {
PRICING_CONFIG = COURSE_CONFIG.pricing;
SELECTORS_CONFIG = COURSE_CONFIG.selectors;
currentFullPrice = parseFloat(PRICING_CONFIG.full) || parseFloat(w.fullPrice) || 0;
if (typeof PRICING_CONFIG.defaultDiscountPct !== 'undefined') {
initialDiscountPercent = parseFloat(PRICING_CONFIG.defaultDiscountPct);
} else if (w.initialDiscount && w.initialDiscount > 0 && w.initialDiscount <= 1) {
initialDiscountPercent = parseFloat(w.initialDiscount) * 100;
} else if (w.discount && w.discount > 0 && w.discount <= 1) {
initialDiscountPercent = parseFloat(w.discount) * 100;
} else {
initialDiscountPercent = 60;
}
if (PRICING_CONFIG.currentSessionPromoCode && PRICING_CONFIG.currentSessionDiscountPct > 0) {
currentDiscountPercent = parseFloat(PRICING_CONFIG.currentSessionDiscountPct);
} else {
currentDiscountPercent = initialDiscountPercent;
PRICING_CONFIG.currentSessionDiscountPct = initialDiscountPercent;
}
currentInstallmentMonths = parseInt(PRICING_CONFIG.installmentMonths, 10) || parseInt(w.installmentPeriod, 10) || 12;
if (PRICING_CONFIG.currency) {
w.PROMOCODES.priceSymbol = '₽';
w.PROMOCODES.monthlySymbol = '₽ / мес';
}
}
// --- Event Handlers & Initialization ---
function init() {
if (w.PROMOCODES.isInitialized) {
return;
}
if (
!w.COURSE_CONFIG ||
!w.COURSE_CONFIG.pricing ||
!w.COURSE_CONFIG.selectors ||
typeof w.COURSE_CONFIG.updateHiddenPriceFields !== 'function'
) {
setTimeout(init, 200);
return;
}
initializeVariables();
$('body').off('click.legacyPromoHandler', '.promocode-button');
$('.promocode-button').off('click.legacyPromoHandler');
$('.promocode-button').off('click');
if (PRICING_CONFIG.currentSessionPromoCode) {
const $formsWithPromo = $('input[name="promocode"], .promo-code-input')
.closest('form, .od-code-body');
$formsWithPromo.find('input[name="promocode"], .promo-code-input')
.val(PRICING_CONFIG.currentSessionPromoCode);
const dispPct = PRICING_CONFIG.currentSessionDiscountPct > 0
? PRICING_CONFIG.currentSessionDiscountPct
: currentDiscountPercent;
$formsWithPromo.find('.promocode-status').html(
`<div class="tn-atom" style="color: #78be21">Промокод "${PRICING_CONFIG.currentSessionPromoCode}" активен. Скидка ${Math.floor(dispPct)}%.</div>`
);
updateOrCreateHiddenInput("ActivatedPromocode", PRICING_CONFIG.currentSessionPromoCode);
}
$('body').on('click', '.promocode-button', function(event) {
event.preventDefault();
event.stopImmediatePropagation();
const $button = $(this);
const $container = $button.closest('form, .od-code-body, .od-hero-form, .od-promo-form');
const $promoInput = $container.find('input[name="promocode"], .promo-code-input');
const $statusDiv = $container.find('.promocode-status');
if ($promoInput.length === 0) return;
const code = $promoInput.val().trim().toUpperCase();
$promoInput.val(code);
applyPromocode(code, $statusDiv, $promoInput);
});
$('form').on('keypress', function(e) {
if (e.keyCode === 13) {
const $target = $(e.target);
if ($target.hasClass('promo-code-input') || $target.attr('name') === 'promocode') {
e.preventDefault();
e.stopImmediatePropagation();
$target.closest('form, .od-code-body, .od-hero-form, .od-promo-form')
.find('.promocode-button').first().click();
return false;
}
}
});
$('.promocode-form1').on('keyup keypress', function(e) {
if ((e.keyCode || e.which) === 13) {
e.preventDefault();
return false;
}
});
$('body').on('click', '.od-code-btn', function(e) {
e.preventDefault();
const $wrapper = $(this).closest('.od-code');
// Use CSS class to reveal the promo code input and hide the trigger
$wrapper.addClass('js-toggle');
});
$(".formtTextButton").each((index, item) =>
item.addEventListener("click", function () {
$(".formtTextButton").eq(index).hide();
})
);
updatePricesUI();
w.PROMOCODES.isInitialized = true;
}
$(document).ready(init);
})(window, window.jQuery);
</script> <!-- nominify end --> </div> </div> </div> </div> <!-- ./js/cloudpayments-widget.js --> <div id="rec1078810831" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <script type="text/javascript" id="js-cloudpayments-widget">
/* -------------------------------------------------------------
CloudPayments widget helper
------------------------------------------------------------- */
(function (w, $) {
'use strict';
/* ---------- Helper: compute final autopay price ---------- */
function calculateAutopayPrice() {
const { full, currentSessionDiscountPct, defaultDiscountPct, autopayDiscountPct } =
w.COURSE_CONFIG.pricing;
const primaryDiscount = (typeof currentSessionDiscountPct === 'number' && currentSessionDiscountPct >= 0)
? currentSessionDiscountPct
: defaultDiscountPct;
// full * (1 − primary) * (1 − autopay)
const price =
full *
(1 - primaryDiscount / 100) *
(1 - autopayDiscountPct / 100);
return Math.floor(price); // CloudPayments expects an integer
}
/* ---------- Main CloudPayments invocation ---------- */
function initiateCloudPaymentsPayment(form) {
if (!form || !form.length) return;
const cpCfg = w.COURSE_CONFIG.payment;
const pricingCfg = w.COURSE_CONFIG.pricing;
/* Take authoritative product name straight from COURSE_CONFIG */
const productName = w.COURSE_CONFIG.name;
const productPrice = calculateAutopayPrice();
/* Grab form meta (lead / order ids + form fields) */
const formEl = form[0];
const leadId = formEl.tildaTranId || null;
const orderId = formEl.tildaOrderId || null;
const formData = {};
[...formEl.elements].forEach(el => {
if (el.name) formData[el.name] = el.value || '';
});
/* Hide Tilda success popup (widget will redirect / show own messages) */
$('#tildaformsuccesspopup').css({ display: 'none', opacity: 0 });
form.find('.js-successbox').hide();
/* Build CloudPayments charge object */
const chargeOptions = {
publicId : cpCfg.cpPublicId,
description: productName,
amount : productPrice,
currency : w.COURSE_CONFIG.currency,
language : cpCfg.cpLang,
email : formData.email || '',
invoiceId : leadId,
requireEmail: true,
data: {
name : formData.name || '',
phone : formData.phone || '',
order_id : orderId,
promocode: formData.promocode || ''
}
};
/* Instantiate (or reuse) widget */
const cpHandler = w.cloudpaymentshandler ||
new cp.CloudPayments({ language: cpCfg.cpLang });
w.cloudpaymentshandler = cpHandler;
/* Success / failure callbacks */
const onSuccess = (opts) => {
let url = cpCfg.successUrl || '';
const params = [];
if (orderId) params.push(`orderId=${encodeURIComponent(orderId)}`);
if (leadId) params.push(`leadId=${encodeURIComponent(leadId)}`);
if (opts && opts.transactionId) params.push(`transactionId=${encodeURIComponent(opts.transactionId)}`);
if (url && params.length) url += (url.includes('?') ? '&' : '?') + params.join('&');
if (url) {
window.location.href = url;
} else {
alert('Оплата прошла успешно!');
}
};
const onFail = (reason) => {
console.error('CloudPayments error:', reason);
const $err = form.find('.js-errorbox-all');
if ($err.length === 0) {
form.prepend(`
<div class="js-errorbox-all t-form__errorbox-wrapper"> <div class="t-form__errorbox-all-text"> <p class="t-form__errorbox-item js-rule-error js-rule-error-all"></p> </div> </div>`);
}
form.find('.js-rule-error-all').text(reason || 'Ошибка оплаты, попробуйте ещё раз.');
form.find('button[type="submit"]').prop('disabled', false).removeClass('t-btn_sending');
};
/* Fire the widget */
cpHandler.charge(chargeOptions, onSuccess, onFail);
}
/* ---------- Orchestrator for Tilda forms ---------- */
// w.combinedCallbackOrchestrator = function (form) {
// form = $(form); // normalise to jQuery object
// if (!form.length) return;
// /* reset old errors */
// form.find('.js-errorbox-all').hide();
// const isPayForm = form.hasClass('pay_form');
// const isAutopayChosen = $('#rad-2').is(':checked'); // "Оплатить сразу со скидкой"
// /* Only pay_form + autopay branch goes to CloudPayments */
// if (isPayForm && isAutopayChosen) {
// initiateCloudPaymentsPayment(form);
// return; // widget handles redirect; do not show Tilda success
// }
// /* ----- Default success flow for consultations / other forms ----- */
// form.trigger('tildasubmitsucces');
// form.find('.js-successbox').show();
// form.addClass('js-form-sent');
// };
// Expose payment initiation for use in other scripts
w.initiateCloudPaymentsPayment = initiateCloudPaymentsPayment;
})(window, window.jQuery);
</script> <!-- nominify end --> </div> </div> </div> </div> <!-- ./js/countdown.js --> <div id="rec1104847256" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <script type="text/javascript" id="js-countdown">
(function(w, d){
function pluralize(n, forms){
n = Math.abs(n) % 100;
var n1 = n % 10;
if(n > 10 && n < 20) return forms[2];
if(n1 > 1 && n1 < 5) return forms[1];
if(n1 === 1) return forms[0];
return forms[2];
}
function update(node, deadline){
var now = Date.now();
var diff = deadline - now;
if(diff < 0) diff = 0;
var days = Math.floor(diff / 86400000);
var hours = Math.floor((diff % 86400000) / 3600000);
var minutes = Math.floor((diff % 3600000) / 60000);
var seconds = Math.floor((diff % 60000) / 1000);
var daysEl = node.querySelector('.days');
var timeEl = node.querySelector('.time');
if(daysEl) daysEl.textContent = days + ' ' + pluralize(days, ['день','дня','дней']);
if(timeEl) timeEl.textContent = [hours,minutes,seconds].map(function(n){return String(n).padStart(2,'0');}).join(':');
}
function init(){
var countdownNodes = d.querySelectorAll('.countdown');
if(!countdownNodes.length) return;
var deadlines = Array.prototype.map.call(countdownNodes, function(node){
var dl = parseInt(w.countdownDate, 10);
if(isNaN(dl)) dl = Date.parse(node.getAttribute('data-deadline'));
return {node: node, deadline: dl};
});
function tick(){
deadlines.forEach(function(item){ update(item.node, item.deadline); });
}
tick();
setInterval(tick, 1000);
}
if(d.readyState !== 'loading') init();
else d.addEventListener('DOMContentLoaded', init);
})(window, document);
</script> <!-- nominify end --> </div> </div> </div> </div> <!-- Конец :) --> <!--footer--> <footer id="t-footer" class="t-records" data-hook="blocks-collection-content-node" data-tilda-project-id="2716788" data-tilda-page-id="13374104" data-tilda-page-alias="footer" data-tilda-formskey="3f17e0ce78f719cf57b4c72767749250" data-tilda-cookie="no" data-tilda-stat-scroll="yes" data-tilda-lazy="yes" data-tilda-root-zone="com" data-tilda-project-headcode="yes" data-tilda-project-country="RU"> <div id="rec835923575" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <!-- PROMOCODES AND UPDATE PRICES UI SCRIPT --> <script>
window.HELPERS = window.HELPERS || {};
window.PROMOCODES = window.PROMOCODES || {};
window.PROMOCODES.priceSymbol = window.PROMOCODES.priceSymbol || "руб";
window.PROMOCODES.monthlySymbol = window.PROMOCODES.monthlySymbol || "руб/мес";
window.HELPERS.deleteInputsByName = (inputName, formSelector) => {
if (!inputName) {
console.error("Input name is required.");
return;
}
if (formSelector) {
$(formSelector)
.find('input[name="' + inputName + '"]')
.remove();
} else {
$('input[name="' + inputName + '"]').remove();
}
};
window.HELPERS.updateOrCreateHiddenInput = (name, value, formSelector = "form.js-form-proccess") => {
$(formSelector).each(function () {
let input = $(this).find(`input[name="${name}"]`);
if (input.length) {
input.val(value);
} else {
input = $("<input>", {
type: "hidden",
name: name,
value: value,
});
$(this).append(input);
}
});
};
window.HELPERS.updateTextField = function(selector, subSelector, text) {
if (typeof selector !== 'undefined' && $(selector).length) {
$(selector).find(subSelector).text(text);
}
};
window.HELPERS.updatePricesUI = () => {
// frontend update
window.fullPriceLow = typeof window.fullPriceLow !== "undefined" ? window.fullPriceLow : undefined;
window.fullPriceMiddle = typeof window.fullPriceMiddle !== "undefined" ? window.fullPriceMiddle : undefined;
window.fullPriceHigh = typeof window.fullPriceHigh !== "undefined" ? window.fullPriceHigh : undefined;
if (typeof installmentPeriod !== "number") {
if (typeof price === "undefined" || typeof monthly === "undefined") {
installmentPeriod = 12;
} else {
installmentPeriod = Math.round(price / monthly);
}
}
if (typeof installmentPeriodLow !== "number") {
if (typeof priceLow === "undefined" || typeof monthlyLow === "undefined") {
installmentPeriodLow = 12;
} else {
installmentPeriodLow = Math.round(priceLow / monthlyLow);
}
}
if (typeof installmentPeriodMiddle !== "number") {
if (typeof priceMiddle === "undefined" || typeof monthlyMiddle === "undefined") {
installmentPeriodMiddle = 12;
} else {
installmentPeriodMiddle = Math.round(priceMiddle / monthlyMiddle);
}
}
if (typeof installmentPeriodHigh !== "number") {
if (typeof priceHigh === "undefined" || typeof monthlyHigh === "undefined") {
installmentPeriodHigh = 12;
} else {
installmentPeriodHigh = Math.round(priceHigh / monthlyHigh);
}
}
price = Math.floor(fullPrice - fullPrice * discount);
priceLow = fullPriceLow ? Math.floor(fullPriceLow - fullPriceLow * discount) : undefined;
priceMiddle = fullPriceMiddle ? Math.floor(fullPriceMiddle - fullPriceMiddle * discount) : undefined;
priceHigh = fullPriceHigh ? Math.floor(fullPriceHigh - fullPriceHigh * discount) : undefined;
monthly = Math.floor(price / installmentPeriod);
fullMonthly = Math.floor(fullPrice / installmentPeriod);
savingsMontly = fullMonthly - monthly;
savings = fullPrice - price;
//update with label
$(".bigPrice .tn-atom").html(monthly + `<span class='price-label'> ${window.PROMOCODES.monthlySymbol}</span>`);
$(".oldPrice .tn-atom").html(fullMonthly + `<span class='price-label'> ${window.PROMOCODES.monthlySymbol}</span>`);
$(".fullPrice .tn-atom").html(fullPrice + `<span class='price-label'> ${window.PROMOCODES.priceSymbol}</span>`);
$(".currentPrice .tn-atom").html(price + `<span class='price-label'> ${window.PROMOCODES.priceSymbol}</span>`);
//update without label
$(".bigPriceWithoutLabel .tn-atom").text(monthly);
$(".oldPriceWithoutLabel .tn-atom").text(fullMonthly);
$(".fullPriceWithoutLabel .tn-atom").text(fullPrice);
$(".currentPriceWithoutLabel .tn-atom").text(price);
//update old
$(".buyBoxPrice .tn-atom").text(monthly);
$(".buyBoxPriceStripped .tn-atom").html("<del>" + fullMonthly + "</del>");
if (typeof priceLow !== "undefined" && priceLow !== null) {
monthlyLow = Math.floor(priceLow / installmentPeriodLow);
monthlyLowMain = Math.floor(fullPriceLow / installmentPeriodLow);
savingsMontlyLow = monthlyLowMain - monthlyLow;
savingsLow = fullPriceLow - priceLow;
$(".bigPriceLow .tn-atom").html(
monthlyLow + `<span class='price-label'> ${window.PROMOCODES.monthlySymbol}</span>`
);
$(".oldPriceLow .tn-atom").html(
monthlyLowMain + `<span class='price-label'> ${window.PROMOCODES.monthlySymbol}</span>`
);
$(".oldPriceLowStripped .tn-atom").html(
"<del>" + monthlyLowMain + `<span class='price-label'> ${window.PROMOCODES.monthlySymbol}</span>` + "</del>"
);
$(".fullPriceLow .tn-atom").html(
fullPriceLow + `<span class='price-label'> ${window.PROMOCODES.priceSymbol}</span>`
);
$(".currentPriceLow .tn-atom").html(
priceLow + `<span class='price-label'> ${window.PROMOCODES.priceSymbol}</span>`
);
$(".bigPriceLowWithoutLabel .tn-atom").text(monthlyLow);
$(".oldPriceLowWithoutLabel .tn-atom").text(monthlyLowMain);
$(".fullPriceLowWithoutLabel .tn-atom").text(fullPriceLow);
$(".currentPriceLowWithoutLabel .tn-atom").text(priceLow);
//update old
$(".buyBoxPriceLow .tn-atom").text(monthlyLow);
$(".buyBoxPriceLowStripped .tn-atom").html("<del>" + monthlyLowMain + "</del>");
}
if (typeof priceMiddle !== "undefined" && priceMiddle !== null) {
monthlyMiddle = Math.floor(priceMiddle / installmentPeriodMiddle);
monthlyMiddleMain = Math.floor(fullPriceMiddle / installmentPeriodMiddle);
savingsMontlyMiddle = monthlyMiddleMain - monthlyMiddle;
savingsMiddle = fullPriceMiddle - priceMiddle;
$(".bigPriceMiddle .tn-atom").html(
monthlyMiddle + `<span class='price-label'> ${window.PROMOCODES.monthlySymbol}</span>`
);
$(".oldPriceMiddle .tn-atom").html(
monthlyMiddleMain + `<span class='price-label'> ${window.PROMOCODES.monthlySymbol}</span>`
);
$(".oldPriceMiddleStripped .tn-atom").html(
"<del>" + monthlyMiddleMain + `<span class='price-label'> ${window.PROMOCODES.monthlySymbol}</span>` + "</del>"
);
$(".fullPriceMiddle .tn-atom").html(
fullPriceMiddle + `<span class='price-label'> ${window.PROMOCODES.priceSymbol}</span>`
);
$(".currentPriceMiddle .tn-atom").html(
priceMiddle + `<span class='price-label'> ${window.PROMOCODES.priceSymbol}</span>`
);
$(".bigPriceMiddleWithoutLabel .tn-atom").text(monthlyMiddle);
$(".oldPriceMiddleWithoutLabel .tn-atom").text(monthlyMiddleMain);
$(".fullPriceMiddleWithoutLabel .tn-atom").text(fullPriceMiddle);
$(".currentPriceMiddleWithoutLabel .tn-atom").text(priceMiddle);
//update old
$(".buyBoxPriceMiddle .tn-atom").text(monthlyMiddle);
$(".buyBoxPriceMiddleStripped .tn-atom").html("<del>" + monthlyMiddleMain + "</del>");
}
if (typeof priceHigh !== "undefined" && priceHigh !== null) {
monthlyHigh = Math.floor(priceHigh / installmentPeriodHigh);
monthlyHighMain = Math.floor(fullPriceHigh / installmentPeriodHigh);
savingsMontlyHigh = monthlyHighMain - monthlyHigh;
savingsHigh = fullPriceHigh - priceHigh;
$(".bigPriceHigh .tn-atom").html(
monthlyHigh + `<span class='price-label'> ${window.PROMOCODES.monthlySymbol}</span>`
);
$(".oldPriceHigh .tn-atom").html(
monthlyHighMain + `<span class='price-label'> ${window.PROMOCODES.monthlySymbol}</span>`
);
$(".oldPriceHighStripped .tn-atom").html(
"<del>" + monthlyHighMain + `<span class='price-label'> ${window.PROMOCODES.monthlySymbol}</span>` + "</del>"
);
$(".fullPriceHigh .tn-atom").html(
fullPriceHigh + `<span class='price-label'> ${window.PROMOCODES.priceSymbol}</span>`
);
$(".currentPriceHigh .tn-atom").html(
priceHigh + `<span class='price-label'> ${window.PROMOCODES.priceSymbol}</span>`
);
$(".bigPriceHighWithoutLabel .tn-atom").text(monthlyHigh);
$(".oldPriceHighWithoutLabel .tn-atom").text(monthlyHighMain);
$(".fullPriceHighWithoutLabel .tn-atom").text(fullPriceHigh);
$(".currentPriceHighWithoutLabel .tn-atom").text(priceHigh);
//update old
$(".buyBoxPriceHigh .tn-atom").text(monthlyHigh);
$(".buyBoxPriceHighStripped .tn-atom").html("<del>" + monthlyHighMain + "</del>");
}
discountSymbol = Math.floor(discount * 100);
visibleDiscount = discountSymbol.toString();
$(".visibleDiscount .tn-atom").text("-" + visibleDiscount + "%");
$(".visibleDiscountFloat span").text(visibleDiscount + "%");
// $(discountHero + " .tn-atom").text(discountDateOne);
// $(discountTimerOne + " .tn-atom span").text(
// discountDateOne + " и сэкономьте " + savingsMontly + ` ${window.PROMOCODES.monthlySymbol}.`
// );
// $(discountTimerOneFull + " .tn-atom span").text(
// discountDateOne + " и сэкономьте " + savings + ` ${window.PROMOCODES.priceSymbol}`
// );
// $(discountTimerTwo + " .tn-atom").text(discountDateOne);
// $(discountPriceOne + " .tn-atom").text(discountDateOne);
// $(discountPriceTwo + " .tn-atom span").text(discountDateTwo);
// $(startDate + " .tn-atom span").text(startDateText);
[
{
sel: window.discountHero,
sub: '.tn-atom',
txt: window.discountDateOne,
},
{
sel: window.discountTimerOne,
sub: '.tn-atom span',
txt: `${window.discountDateOne} и сэкономьте ${window.savingsMontly} ${window.PROMOCODES.monthlySymbol}.`,
},
{
sel: window.discountTimerOneFull,
sub: '.tn-atom span',
txt: `${window.discountDateOne} и сэкономьте ${window.savings} ${window.PROMOCODES.priceSymbol}`,
},
{
sel: window.discountTimerTwo,
sub: '.tn-atom',
txt: window.discountDateOne,
},
{
sel: window.discountPriceOne,
sub: '.tn-atom',
txt: window.discountDateOne,
},
{
sel: window.discountPriceTwo,
sub: '.tn-atom span',
txt: window.discountDateTwo,
},
{
sel: window.startDate,
sub: '.tn-atom span',
txt: window.startDateText,
},
{
sel: window.defaultInstallmentPeriod,
sub: '.tn-atom strong',
txt: window.periodText
}
].forEach(({ sel, sub, txt }) => {
window.HELPERS.updateTextField(sel, sub, txt);
});
let atLeastOneTariffExists = false;
if (
typeof priceLow !== "undefined" &&
priceLow !== null &&
($(".bigPriceLow").length || $(".bigPriceLowWithoutLabel").length || $(".buyBoxPriceLow").length)
) {
atLeastOneTariffExists = true;
window.HELPERS.updateOrCreateHiddenInput("LowPriceFull", fullPriceLow);
window.HELPERS.updateOrCreateHiddenInput("LowPriceDiscount", priceLow);
window.HELPERS.updateOrCreateHiddenInput("LowPriceMonth", monthlyLow);
}
if (
typeof priceMiddle !== "undefined" &&
priceMiddle !== null &&
($(".bigPriceMiddle").length || $(".bigPriceMiddleWithoutLabel").length || $(".buyBoxPriceMiddle").length)
) {
atLeastOneTariffExists = true;
window.HELPERS.updateOrCreateHiddenInput("MiddlePriceFull", fullPriceMiddle);
window.HELPERS.updateOrCreateHiddenInput("MiddlePriceDiscount", priceMiddle);
window.HELPERS.updateOrCreateHiddenInput("MiddlePriceMonth", monthlyMiddle);
}
if (
typeof priceHigh !== "undefined" &&
priceHigh !== null &&
($(".bigPriceHigh").length || $(".bigPriceHighWithoutLabel").length || $(".buyBoxPriceHigh").length)
) {
atLeastOneTariffExists = true;
window.HELPERS.updateOrCreateHiddenInput("HighPriceFull", fullPriceHigh);
window.HELPERS.updateOrCreateHiddenInput("HighPriceDiscount", priceHigh);
window.HELPERS.updateOrCreateHiddenInput("HighPriceMonth", monthlyHigh);
}
if (!atLeastOneTariffExists) {
window.HELPERS.updateOrCreateHiddenInput("PriceFull", fullPrice);
window.HELPERS.updateOrCreateHiddenInput("PriceDiscount", price);
window.HELPERS.updateOrCreateHiddenInput("PriceMonth", monthly);
}
};
window.HELPERS.updatePricesUI();
</script> <script>
(function () {
const initialDiscount = window.initialDiscount ?? window.discount ?? 0.6;
window.fullPriceLow = typeof window.fullPriceLow !== "undefined" ? window.fullPriceLow : null;
window.fullPriceMiddle = typeof window.fullPriceMiddle !== "undefined" ? window.fullPriceMiddle : null;
window.fullPriceHigh = typeof window.fullPriceHigh !== "undefined" ? window.fullPriceHigh : null;
if (typeof installmentPeriod !== "number") {
if (typeof price === "undefined" || typeof monthly === "undefined") {
installmentPeriod = 12;
} else {
installmentPeriod = Math.round(price / monthly);
}
}
if (typeof installmentPeriodLow !== "number") {
if (typeof priceLow === "undefined" || typeof monthlyLow === "undefined") {
installmentPeriodLow = 12;
} else {
installmentPeriodLow = Math.round(priceLow / monthlyLow);
}
}
if (typeof installmentPeriodMiddle !== "number") {
if (typeof priceMiddle === "undefined" || typeof monthlyMiddle === "undefined") {
installmentPeriodMiddle = 12;
} else {
installmentPeriodMiddle = Math.round(priceMiddle / monthlyMiddle);
}
}
if (typeof installmentPeriodHigh !== "number") {
if (typeof priceHigh === "undefined" || typeof monthlyHigh === "undefined") {
installmentPeriodHigh = 12;
} else {
installmentPeriodHigh = Math.round(priceHigh / monthlyHigh);
}
}
$(document).ready(function () {
if (window.isCustomPromocodeScript) {
return;
}
$(".promocode-button").each((index, item) =>
item.addEventListener("click", function (event) {
console.group(`[Debug] Button Clicked (index ${index})`);
const inputs = $('input[name="promocode"]');
console.log("inputs.length:", inputs.length);
console.log("inputs.serializeArray():", inputs.serializeArray());
const serialized = inputs.serializeArray();
const inputItem = serialized[index];
console.log(`serialized[${index}]:`, inputItem);
if (!inputItem) {
console.error(`No input at index ${index} in serializeArray.`);
console.groupEnd();
return;
}
const pvalue = inputItem.value.toUpperCase();
console.log("pvalue:", pvalue);
inputs.val(pvalue);
api_url =
"https://simba.vs2.srv.eduson.tv/promocodes/api/?name=" +
pvalue +
"&landing=" +
window.location.origin +
window.location.pathname;
const xhr_promocode = new XMLHttpRequest();
xhr_promocode.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
var response = JSON.parse(xhr_promocode.responseText);
if (response["status"] === 200) {
if (response["type"] === "fix_discount") {
discount = response["discount"];
price = Math.floor(fullPrice - fullPrice * discount);
priceLow = fullPriceLow ? Math.floor(fullPriceLow - fullPriceLow * discount) : null;
priceMiddle = fullPriceMiddle ? Math.floor(fullPriceMiddle - fullPriceMiddle * discount) : null;
priceHigh = fullPriceHigh ? Math.floor(fullPriceHigh - fullPriceHigh * discount) : null;
$("div.promocode-status").html(
'<div class="tn-atom" style="color: #78be21">Активирована скидка ' +
Math.floor(response["discount"] * 100) +
"%</div>"
);
} else if (response["type"] === "additional_price") {
discount = initialDiscount;
price = Math.floor(fullPrice * (1-discount) - response["discount"]);
priceLow = fullPriceLow ? Math.floor(fullPriceLow * (1-discount) - response["discount"]) : null;
priceMiddle = fullPriceMiddle ? Math.floor(fullPriceMiddle * (1-discount) - response["discount"]) : null;
priceHigh = fullPriceHigh ? Math.floor(fullPriceHigh * (1-discount) - response["discount"]) : null;
discount = (1 - price / fullPrice).toFixed(2);
var formatted_price = response["discount"].toLocaleString("en-US");
$("div.promocode-status").html(
'<div class="tn-atom" style="color: #78be21">Активирован купон -' +
formatted_price +
` ${window.PROMOCODES.priceSymbol}</div>`
);
} else if (response["type"] === "additional_discount") {
discount = initialDiscount + response["discount"];
price = Math.floor(fullPrice - fullPrice * discount);
priceLow = fullPriceLow ? Math.floor(fullPriceLow - fullPriceLow * discount) : null;
priceMiddle = fullPriceMiddle ? Math.floor(fullPriceMiddle - fullPriceMiddle * discount) : null;
priceHigh = fullPriceHigh ? Math.floor(fullPriceHigh - fullPriceHigh * discount) : null;
$("div.promocode-status").html(
'<div class="tn-atom" style="color: #78be21">Активирована суммарная скидка -' +
Math.floor(discount * 100) +
"%</div>"
);
} else if (response["type"] === "consultation") {
discount = initialDiscount;
price = Math.floor(fullPrice - fullPrice * discount);
priceLow = fullPriceLow ? Math.floor(fullPriceLow - fullPriceLow * discount) : null;
priceMiddle = fullPriceMiddle ? Math.floor(fullPriceMiddle - fullPriceMiddle * discount) : null;
priceHigh = fullPriceHigh ? Math.floor(fullPriceHigh - fullPriceHigh * discount) : null;
$("div.promocode-status").html(
'<div class="tn-atom" style="color: #78be21">Активирована +1 консультация с экспертом</div>'
);
} else if (response["type"] === "free_course") {
discount = initialDiscount;
price = Math.floor(fullPrice - fullPrice * discount);
priceLow = fullPriceLow ? Math.floor(fullPriceLow - fullPriceLow * discount) : null;
priceMiddle = fullPriceMiddle ? Math.floor(fullPriceMiddle - fullPriceMiddle * discount) : null;
priceHigh = fullPriceHigh ? Math.floor(fullPriceHigh - fullPriceHigh * discount) : null;
$("div.promocode-status").html(
'<div class="tn-atom" style="color: #78be21">Активирован +1 курс в подарок</div>'
);
} else if (response["type"] === "special_offer") {
discount = initialDiscount;
price = Math.floor(fullPrice - fullPrice * discount);
priceLow = fullPriceLow ? Math.floor(fullPriceLow - fullPriceLow * discount) : null;
priceMiddle = fullPriceMiddle ? Math.floor(fullPriceMiddle - fullPriceMiddle * discount) : null;
priceHigh = fullPriceHigh ? Math.floor(fullPriceHigh - fullPriceHigh * discount) : null;
$("div.promocode-status").html(
'<div class="tn-atom" style="color: #78be21">Менеджер активирует промокод</div>'
);
}
$('input[name="promocode"]').val(response["name"]);
window.HELPERS.updateOrCreateHiddenInput("ActivatedPromocode", response["name"]);
} else if (response["status"] === 404) {
$("div.promocode-status").html('<div class="tn-atom" style="color: #ff6347">Промокод не найден</div>');
window.HELPERS.deleteInputsByName("ActivatedPromocode");
discount = initialDiscount;
price = Math.floor(fullPrice - fullPrice * discount);
priceLow = fullPriceLow ? Math.floor(fullPriceLow - fullPriceLow * discount) : null;
priceMiddle = fullPriceMiddle ? Math.floor(fullPriceMiddle - fullPriceMiddle * discount) : null;
priceHigh = fullPriceHigh ? Math.floor(fullPriceHigh - fullPriceHigh * discount) : null;
} else if (response["status"] === 406) {
$("div.promocode-status").html(
'<div class="tn-atom" style="color: #ff6347">Промокод недоступен для этого курса</div>'
);
window.HELPERS.deleteInputsByName("ActivatedPromocode");
discount = initialDiscount;
price = Math.floor(fullPrice - fullPrice * discount);
priceLow = fullPriceLow ? Math.floor(fullPriceLow - fullPriceLow * discount) : null;
priceMiddle = fullPriceMiddle ? Math.floor(fullPriceMiddle - fullPriceMiddle * discount) : null;
priceHigh = fullPriceHigh ? Math.floor(fullPriceHigh - fullPriceHigh * discount) : null;
} else {
$("div.promocode-status").html('<div class="tn-atom" style="color: #ff6347">Промокод неактивен</div>');
window.HELPERS.deleteInputsByName("ActivatedPromocode");
discount = initialDiscount;
price = Math.floor(fullPrice - fullPrice * discount);
priceLow = fullPriceLow ? Math.floor(fullPriceLow - fullPriceLow * discount) : null;
priceMiddle = fullPriceMiddle ? Math.floor(fullPriceMiddle - fullPriceMiddle * discount) : null;
priceHigh = fullPriceHigh ? Math.floor(fullPriceHigh - fullPriceHigh * discount) : null;
}
window.HELPERS.updatePricesUI();
document.dispatchEvent(new Event('promo:applied'));
}
});
xhr_promocode.open("GET", api_url);
xhr_promocode.setRequestHeader("Content-Type", "application/json");
xhr_promocode.send();
})
);
});
})();
</script> <script type="text/javascript">
$(".promocode-form1").on("keyup keypress", function (e) {
var keyCode = e.keyCode || e.which;
if (keyCode === 13) {
e.preventDefault();
return false;
}
});
</script> <script>
//Скрипт для скрытия кнопки "У меня есть промокод". Работает для любого количества кнопок, главное - не менять классы.
$(".formtTextButton").each((index, item) =>
item.addEventListener("click", function () {
$(".formtTextButton").eq(index).hide();
})
);
</script> <style>
/* Стили для курсора типа "указатель" для кнопки "Применить промокод" */
.promocode-button {
cursor: pointer;
}
.oldPrice .tn-atom,
.oldPriceWithoutLabel .tn-atom,
.oldPriceLow .tn-atom,
.oldPriceLowWithoutLabel .tn-atom,
.oldPriceMiddle .tn-atom,
.oldPriceMiddleWithoutLabel .tn-atom,
.oldPriceHigh .tn-atom,
.oldPriceHighWithoutLabel .tn-atom,
.buyBoxPriceStripped .tn-atom,
.buyBoxPriceLowStripped .tn-atom,
.buyBoxPriceMiddleStripped .tn-atom {
text-decoration: line-through;
}
</style> <!-- nominify end --> </div> </div> </div> </div> <div id="rec819821922" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <script>
/* global roistat, $, processPage, setCookie, addOnRoistatVisitProcessed */
addOnRoistatVisitProcessed(() => {
$(document).ready(function () {
if (typeof roistat === "undefined") {
return;
}
const roistatMarker = roistat.getSource() || "";
console.log("roistatMarker:", roistatMarker);
function isSeoLead() {
return (
roistatMarker &&
(roistatMarker.startsWith("seo") || roistatMarker.startsWith(":utm:seo")) &&
document.referrer !== "" &&
!document.referrer.startsWith("https://eduson.academy")
);
}
if (!isSeoLead()) {
return;
}
//set session cookie
const cookieString = "seo_" + roistatMarker.split("_").slice(1).join("_");
document.cookie = `roistat_custom_utm_marker=${encodeURIComponent(cookieString)}; path=/; SameSite=None; Secure`;
/**
* !Временное выключение проставления utm меток!
// Split the roistat_marker into parts
const parts = roistatMarker.split("_");
const utmVariants = ["utm_source", "utm_medium", "utm_campaign", "utm_term", "utm_content"];
const url = new URL(window.location);
const params = new URLSearchParams(url.search);
// Function to check if any UTM parameters are present
function hasUtmParameters(params) {
for (const key of params.keys()) {
if (key.startsWith("utm_")) {
return true;
}
}
return false;
}
// Apply UTMs only if none are present in the URL
if (!hasUtmParameters(params)) {
utmVariants.forEach(function (utmVariant, index) {
if (index === 0) {
params.set(utmVariant, "seo");
return;
}
const part = parts[index] ?? undefined;
if (part) {
params.set(utmVariant, part);
}
});
// Update the URL without reloading the page
url.search = params.toString();
window.history.replaceState({}, "", url);
}
// **Call the function from the second script**
if (typeof processPage === "function") {
processPage();
}
*/
});
});
</script> <script>
function processPage() {
$("a").each(function () {
const href = $(this).attr("href");
const currentSearchParams = new URLSearchParams(window.location.search);
const hrefSearchParams = new URLSearchParams(href?.split("?")[1] ?? "");
const combinedSearchParamsObject = {
...Object.fromEntries(hrefSearchParams ?? []),
...Object.fromEntries(currentSearchParams ?? []),
};
const filteredSearchParams = Object.entries(combinedSearchParamsObject ?? []).filter(
([key, value]) => key !== "s_"
);
const finalSearchParams = new URLSearchParams(Object.fromEntries(filteredSearchParams ?? []));
const search = "?" + finalSearchParams?.toString();
if (
search !== "?" &&
href != undefined &&
(href.includes("eduson.academy") || href === "/") &&
!href.includes("#")
) {
$(this).attr("href", href.split("?")[0] + search);
}
});
const landing_url = `${window.location.protocol}//${window.location.hostname}${window.location.pathname}`;
setCookie("landing_url_normalized", landing_url, 1);
fetch("https://geo.tildacdn.com/geo/full/")
.then((response) => response.json())
.then(({ country: { name_ru }, ip }) => {
setCookie("country_ru", name_ru, 30);
setCookie("ip", ip, 1);
})
.catch((error) => {
console.error("Error fetching geo data:", error);
});
}
// Call processPage on document ready
$(document).ready(function () {
processPage();
});
</script> <!-- nominify end --> </div> </div> </div> </div> <div id="rec583915301" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <script src="https://cdn.jsdelivr.net/npm/js-md5@0.7.3/src/md5.min.js"></script> <script>
const leadMagnetMetrikaUrls = ["/cpa-qa-autotester", "/cpa-marketplace", "/cpa-traffic-manager"];
const IdsByProductUrl = {
"/qa": 2957141,
"/qa-autotester": 2957431,
"/hr-business-partner": 2953685,
"/python": 2957373,
"/graphic-designer": 2959601,
"/glavbuh": 2959167,
"/accountant": 2951549,
"/data-analyst": 2958573,
"/finance-non-finance": 2960793,
"/invest-analyst": 2964882,
"/economist-financier": 2962216,
"/msfo": 2962222,
"/gen-dir": 2958421,
"/systems-analyst": 2963250,
"/data-scientist": 2959281,
"/it-specialist": 2964515,
"/frontend": 2960329,
"/fullstack-python": 2963302,
"/marketplace": 2952531,
"/hrdirector": 2956689,
"/internet-marketing": 2952481,
"/ai": 2964680,
"/marketing-director": 2956607,
"/marketing-for-business": 2965312,
"/marketing-mba": 2959579,
"/copywriter": 2958531,
"/traffic-manager": 2961714,
"/web-design": 2962846,
"/interior-designer": 2964324,
"/3ds-max": 2965148,
"/interior-visualizer": 2965150,
"/online-course-creator": 2954611,
"/education-methodist": 2952405,
"/analytics-director": 2965714,
"/sql-developer": 2965400,
"/analytics-for-managers": 2964584,
"/findir": 2952355,
"/operations-director": 2961548,
"/fin-analyst": 2951725,
"/pto-engineer": 2966018,
"/ai-construction": 2966500,
"/project-manager": 2964368,
"/ai-workers": 2966462,
"/graph-design-ai": 2965956,
"/ai-designer": 2965898,
"/ai-content-engine": 2965898,
"/excel": 2954477,
};
window.flocktory = window.flocktory || [];
var isMainProcessing = false;
var mainSuccessTimestamp = Date.now();
let currentPath = window.location.pathname;
currentPath = currentPath.endsWith("/") ? currentPath.slice(0, -1) : currentPath;
const normalizedPath = currentPath;
const flocktory_approved_paths = [
"/marketplace",
"/web-designer",
"/education-methodist",
"/business-analyst-pro",
"/business-analyst",
"/qa",
"/1c-excel",
"/copywriter",
"/hr-manager",
"/internet-marketing",
"/product-manager",
"/sql",
"/kdp",
"/project-manager-it",
"/fin-analyst",
"/sales-manager",
"/qa-autotester",
"/soft-skills-manager",
"/online-course-creator",
"/power-bi",
"/marketplace-seller",
"/fin-management",
"/qa-g",
"/web-developer",
"/hr-analyst",
"/excel-finance",
"/team-management",
"/it-recruiter",
"/com-dir-world",
"/fin-modeling",
"/orator",
"/excel-buhgalter",
"/tnd-director",
"/business-analyst-women",
"/remote-crew",
"/soft-skills-women",
"/soft-skills",
"/business-analyst-master",
"/project-manager-new",
"/data-analysis-full",
"/data-analyst-new",
"/sale",
];
const get4click_approved_paths = [
"/data-analyst",
"/accountant",
"/1c",
"/graphic-designer",
"/python",
"/msoffice",
"/python-free",
"/mp-free",
"/wb-free",
"/data-scientist",
"/frontend",
"/data-analyst-free",
"/start-business",
"/accountant-free",
"/sales-free",
"/project-manager-free",
"/internet-marketing-free",
"/copywriter-free",
"/ue-metrics-free",
"/product-manager-free",
"/bi-analyst",
"/tools",
"/finance-indicators-free",
"/developer-free",
"/web-developer-free",
];
const telegram_approved_paths = ["/page40546158.html"];
function getRandomInt(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min) + min);
}
function makeObjectKeysLowercase(formData) {
var key,
keys = Object.keys(formData);
var n = keys.length;
var newobj = {};
while (n--) {
key = keys[n];
newobj[key.toLowerCase()] = formData[key];
}
return newobj;
}
function combineName(formData) {
if (formData.hasOwnProperty("name")) {
return formData["name"];
} else {
return "";
}
}
function combineContacts(formData, leadId) {
if (formData.hasOwnProperty("email")) {
return formData["email"];
} else if (formData.hasOwnProperty("phone")) {
var phone_cleaned = formData["phone"].replace(/[^0-9]/g, "");
return phone_cleaned + "@unknown.email";
} else {
return leadId.toString();
+"@unknown.email";
}
}
function combineContactsExchange(formData, leadId) {
if (formData.hasOwnProperty("email")) {
return formData["email"];
} else if (formData.hasOwnProperty("phone")) {
var phone_cleaned = formData["phone"].replace(/[^0-9]/g, "");
return phone_cleaned + "@unknown.email";
} else {
return "xname@flocktory.com";
}
}
function combinePrice(formData) {
let price_cleaned_standardized = 0.0;
if (formData.hasOwnProperty("middlepricediscount") || formData.hasOwnProperty("pricediscount")) {
const priceKey = formData.hasOwnProperty("middlepricediscount") ? "middlepricediscount" : "pricediscount";
const price_cleaned = parseInt(formData[priceKey].replace(/[^0-9]/g, ""));
if (!isNaN(price_cleaned)) {
price_cleaned_standardized = parseFloat(price_cleaned.toFixed(2));
}
}
return price_cleaned_standardized;
}
let existingCookie = getCookie("tg_link_id");
if (!existingCookie) {
let cook = new Date().getTime() + "" + getRandomInt(0, 100000);
document.cookie = `tg_link_id=${md5(cook)};path=/`;
}
if (IdsByProductUrl[currentPath]) {
const element_product_flocktory = document.createElement("div");
element_product_flocktory.className = "i-flocktory";
element_product_flocktory.setAttribute("data-fl-action", "track-item-view");
element_product_flocktory.setAttribute("data-fl-item-id", IdsByProductUrl[currentPath]);
document.body.appendChild(element_product_flocktory);
}
function processAfterSuccessTildaForm(form) {
if (!form) return;
if (form instanceof jQuery) {
form = form.get(0);
}
isMainProcessing = true;
setCookie("isLead", "true", 1);
var leadId = form.tildaTranId;
var orderId = form.tildaOrderId;
var obj = {};
var inputs = form.elements;
Array.prototype.forEach.call(inputs, function (input) {
if (input.type === "radio") {
if (input.checked) obj[input.name] = input.value;
} else {
obj[input.name] = input.value;
}
});
obj = makeObjectKeysLowercase((formData = obj));
name_value = combineName((formData = obj));
email_value = combineContacts((formData = obj), (leadId = leadId));
price_value = combinePrice((formData = obj));
// window.flocktory.push(
// [
// 'postcheckout',
// {
// user: {
// name: name_value,
// email: email_value,
// },
// order: {
// id: leadId,
// price: price_value,
// }
// }
// ]
// );
if (window.flocktory && typeof window.flocktory.push === "function") {
try {
const objectToPush = {
user: {
name: name_value,
email: email_value,
},
order: {
id: leadId,
price: price_value,
},
};
window.flocktory.push(["postcheckout", objectToPush]);
console.log("Flocktory push executed successfully");
} catch (error) {
console.error("Flocktory push failed", error);
}
} else {
console.error("Flocktory is not initialized on this page");
}
if (
(flocktory_approved_paths.includes(currentPath) && obj["tildaspec-formname"].includes("Program")) ||
currentPath === "/sale"
) {
email_exchange_value = combineContactsExchange((formData = obj), (leadId = leadId));
const element_exchange_flocktory = document.createElement("div");
element_exchange_flocktory.className = "i-flocktory";
element_exchange_flocktory.setAttribute("data-fl-action", "exchange");
element_exchange_flocktory.setAttribute("data-fl-spot", "initial_campaign");
element_exchange_flocktory.setAttribute("data-fl-user-name", name_value);
element_exchange_flocktory.setAttribute("data-fl-user-email", email_exchange_value);
document.body.appendChild(element_exchange_flocktory);
} else if (get4click_approved_paths.includes(currentPath) && obj["tildaspec-formname"].includes("Program")) {
var $popupText = $(".t702__text-wrapper");
if ($popupText.length) {
$popupText.html(`
<div class="t-form-success-popup__text t-descr t-descr_sm" id="tildaformsuccesspopuptext"> <div style="text-align:center;" data-customstyle="yes">Вам подарок!<br>Скидки на различные сервисы от наших друзей до -50%<br><br><a href="https://get4click.ru/ext/CPJVKAHA" style="text-decoration: none;" target="_blank" rel="noopener,nofollow,sponsored">Выбрать скидку</a></div> </div>
`);
}
} else if (get4click_approved_paths.includes(currentPath) && currentPath.includes("-free")) {
var $popupText = $("#tildaformsuccesspopuptext");
if ($popupText.length) {
$popupText.html(`
<div class="t-form-success-popup__text t-descr t-descr_sm" id="tildaformsuccesspopuptext"> <div style="text-align:center;" data-customstyle="yes">Вам подарок!<br>Скидки на различные сервисы от наших друзей до -50%<br><br><a href="https://get4click.ru/ext/CPJVKAHA" style="text-decoration: none;" target="_blank" rel="noopener,nofollow,sponsored">Выбрать скидку</a></div> </div>
`);
}
} else {
mainSuccessTimestamp = Date.now();
isMainProcessing = false;
var successUrl = form.getAttribute("data-success-url");
if (successUrl) {
window.location.href = successUrl;
}
}
mainSuccessTimestamp = Date.now();
isMainProcessing = false;
}
if (document.readyState !== "loading") {
us_sendFormAfterSuccess();
} else {
document.addEventListener("DOMContentLoaded", us_sendFormAfterSuccess);
}
function us_sendFormAfterSuccess() {
var forms = document.querySelectorAll(".js-form-proccess");
Array.prototype.forEach.call(forms, function (form) {
form.addEventListener("tildaform:aftersuccess", function () {
processAfterSuccessTildaForm(form);
});
});
}
function t396_onSuccess(form) {
if (!form) return;
if (form instanceof jQuery) {
form = form.get(0);
}
setCookie("isLead", "true", 1);
if (leadMagnetMetrikaUrls.includes(currentPath)) {
try {
ym(99889084, "reachGoal", "77777");
console.log(`Metrika sendEvent executed: ym(99889084, "reachGoal", "77777")`);
} catch (error) {
console.error("Metrika sendEvent failed", error);
}
}
/* номер заявки (Lead ID) */
var leadId = form.tildaTranId;
var orderId = form.tildaOrderId;
/* Все поля заявки */
var obj = {};
var inputs = form.elements;
Array.prototype.forEach.call(inputs, function (input) {
obj[input.name] = input.value;
});
if (isMainProcessing === false && mainSuccessTimestamp + 3000 < Date.now()) {
obj = makeObjectKeysLowercase((formData = obj));
name_value = combineName((formData = obj));
email_value = combineContacts((formData = obj), (leadId = leadId));
price_value = combinePrice((formData = obj));
if (window.flocktory && typeof window.flocktory.push === "function") {
try {
const objectToPush = {
user: {
name: name_value,
email: email_value,
},
order: {
id: leadId,
price: price_value,
},
};
window.flocktory.push(["postcheckout", objectToPush]);
console.log("Flocktory push executed successfully");
} catch (error) {
console.error("Flocktory push failed", error);
}
} else {
console.error("Flocktory is not initialized on this page");
}
if (
(flocktory_approved_paths.includes(currentPath) && obj["tildaspec-formname"].includes("Program")) ||
currentPath === "/sale"
) {
email_exchange_value = combineContactsExchange((formData = obj), (leadId = leadId));
let element_exchange_flocktory = document.createElement("div");
element_exchange_flocktory.className = "i-flocktory";
element_exchange_flocktory.setAttribute("data-fl-action", "exchange");
element_exchange_flocktory.setAttribute("data-fl-spot", "initial_campaign");
element_exchange_flocktory.setAttribute("data-fl-user-name", name_value);
element_exchange_flocktory.setAttribute("data-fl-user-email", email_exchange_value);
document.body.appendChild(element_exchange_flocktory);
} else if (get4click_approved_paths.includes(currentPath) && obj["tildaspec-formname"].includes("Program")) {
var $popupText = $(".t702__text-wrapper");
if ($popupText.length) {
$popupText.html(`
<div class="t-form-success-popup__text t-descr t-descr_sm" id="tildaformsuccesspopuptext"> <div style="text-align:center;" data-customstyle="yes">Вам подарок!<br>Скидки на различные сервисы от наших друзей до -50%<br><br><a href="https://get4click.ru/ext/CPJVKAHA" style="text-decoration: none;" target="_blank" rel="noopener,nofollow,sponsored">Выбрать скидку</a></div> </div>
`);
}
} else if (get4click_approved_paths.includes(currentPath) && currentPath.includes("-free")) {
var $popupText = $("#tildaformsuccesspopuptext");
if ($popupText.length) {
$popupText.html(`
<div class="t-form-success-popup__text t-descr t-descr_sm" id="tildaformsuccesspopuptext"> <div style="text-align:center;" data-customstyle="yes">Вам подарок!<br>Скидки на различные сервисы от наших друзей до -50%<br><br><a href="https://get4click.ru/ext/CPJVKAHA" style="text-decoration: none;" target="_blank" rel="noopener,nofollow,sponsored">Выбрать скидку</a></div> </div>
`);
}
} else {
console.log("t396_onSuccess", form);
var successUrl = form.getAttribute("data-success-url");
if (successUrl) {
window.location.href = successUrl;
}
}
}
}
</script> <!-- nominify end --> </div> </div> </div> </div> <div id="rec448302293" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <script src="//get4click.ru/wrapper.php?method=container&shopId=1436" type="text/javascript"></script> <!-- BEGIN UIS INTEGRATION WITH ROISTAT --> <script>
(function(){
var onReady = function(){
var interval = setInterval(function(){
if (typeof Comagic !== "undefined" && typeof Comagic.setProperty !== "undefined" && typeof Comagic.hasProperty !== "undefined") {
Comagic.setProperty("roistat_visit", window.roistat.visit);
Comagic.hasProperty("roistat_visit", function(resp){
if (resp === true) {
clearInterval(interval);
}
});
}
}, 1000);
};
var onRoistatReady = function(){
window.roistat.registerOnVisitProcessedCallback(function(){
onReady();
});
};
if (typeof window.roistat !== "undefined") {
onReady();
} else {
if (typeof window.onRoistatModuleLoaded === "undefined") {
window.onRoistatModuleLoaded = onRoistatReady;
} else {
var previousOnRoistatReady = window.onRoistatModuleLoaded;
window.onRoistatModuleLoaded = function(){
previousOnRoistatReady();
onRoistatReady();
};
}
}
})();
</script> <!-- END UIS INTEGRATION WITH ROISTAT --> <!-- nominify end --> </div> </div> </div> </div> <div id="rec655336240" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <script type="text/javascript">
//Кол-во дней хранения cookie
var days_to_store = 30;
//Параметры создания cookie с UID Admitad
var uid_cookie_name = 'admitad_uid'; // Название cookie, в которой хранится admitad_uid
var uid_channel_name = 'admitad_uid'; // функция для получения источника из GET-параметра
function getParamFromUriAdmitad (get_param_name) {
var pattern = get_param_name + '=([^&]+)';
var re = new RegExp(pattern);
return (re.exec(document.location.search) || [])[1] || '';
};
var param = getParamFromUriAdmitad(uid_channel_name);
if (param) {
setCookie(uid_cookie_name, param, days_to_store);
}
</script> <!-- nominify end --> </div> </div> </div> </div> <div id="rec767892789" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <script>
/* Mindbox send category id */
/** @param {string} operation @param {object} data @param {string} label */
function sendMindboxSyncEvent(operation, data, label) {
if (!mindbox) {
console.warn("mindbox is not defined");
return;
}
mindbox("sync", {
operation: operation,
data: data,
onSuccess: function () {
console.info(`Successfully sent ${label} to mindbox`);
},
onError: function (error) {
console.error(`Failed to send ${label} to mindbox`, error);
},
});
}
/** @param {number} categoryId **/
function sendMindboxCategoryViewEvent(categoryId) {
sendMindboxSyncEvent(
"ProsmotrKategorii",
{
viewProductCategory: {
productCategory: {
ids: {
amoCRM: categoryId,
},
},
},
},
`category id=${categoryId}`
);
}
const categoryIdByPathName = {
"/catalogue/accounting": 1,
"/catalogue/analytics": 2,
"/catalogue/excel": 3,
"/catalogue/hr": 4,
"/catalogue/management-and-business": 5,
"/catalogue/marketing": 6,
"/catalogue/remote-work": 7,
"/catalogue/sales": 8,
"/catalogue/soft-skills": 9,
"/catalogue/popular": 10,
"/it-all": 11,
"/catalogue/finance": 12,
"/catalogue/marketplace": 13,
};
const currentCategoryId = categoryIdByPathName[normalizedPath] ?? undefined;
if (currentCategoryId) {
sendMindboxCategoryViewEvent(currentCategoryId);
}
/* Mindbox send product id */
/** @param {number} productId **/
function sendMindboxProductViewEvent(productId) {
sendMindboxSyncEvent(
"ProsmotrProdukta",
{
viewProduct: {
product: {
ids: {
amoCRM: productId,
},
},
},
},
`product id=${productId}`
);
}
const currentProductId = IdsByProductUrl[normalizedPath] ?? undefined;
if (currentProductId) {
sendMindboxProductViewEvent(currentProductId);
}
</script> <!-- nominify end --> </div> </div> </div> </div> <div id="rec997300926" class="r t-rec" style=" " data-animationappear="off" data-record-type="396"> <!-- T396 --> <style>#rec997300926 .t396__artboard {height:5px;overflow:visible;}#rec997300926 .t396__filter {height:5px;}#rec997300926 .t396__carrier{height:5px;background-position:center center;background-attachment:scroll;background-size:cover;background-repeat:no-repeat;}@media screen and (max-width:1199px) {#rec997300926 .t396__artboard,#rec997300926 .t396__filter,#rec997300926 .t396__carrier {height:5px;}#rec997300926 .t396__filter {}#rec997300926 .t396__carrier {background-attachment:scroll;}}#rec997300926 .tn-elem[data-elem-id="176034464077418250"]{z-index:3;top:0px;;left:calc(50% - 600px + -135px);;width:1470px;height:52px;}#rec997300926 .tn-elem[data-elem-id="176034464077418250"] .tn-atom{border-radius:26px 26px 26px 26px;opacity:0.9;background-color:#ffffff;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;}@media screen and (max-width:1199px){#rec997300926 .tn-elem[data-elem-id="176034464077418250"]{display:table;top:-90px;;left:calc(50% - 160px + -10px);;width:340px;height:154px;}}#rec997300926 .tn-elem[data-elem-id="1745937426492"]{color:#ffffff;text-align:center;z-index:3;top:8px;;left:calc(50% - 600px + 904px);;width:150px;height:40px;}#rec997300926 .tn-elem[data-elem-id="1745937426492"] .tn-atom{color:#ffffff;font-size:14px;font-family:'RobotoMono-Medium',Arial,sans-serif;line-height:1.55;font-weight:600;border-radius:30px 30px 30px 30px;background-position:center center;--t396-speedhover:0.2s;transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;--t396-bgcolor-color:#000000;--t396-bgcolor-image:none;background-color:var(--t396-bgcolor-color,transparent);-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;}#rec997300926 .tn-elem[data-elem-id="1745937426492"] .tn-atom::after{display:none;}#rec997300926 .tn-elem[data-elem-id="1745937426492"] .tn-atom .tn-atom__button-content{column-gap:10px;}#rec997300926 .tn-elem[data-elem-id="1745937426492"] .tn-atom .tn-atom__button-text{transition:color var(--t396-speedhover,0s) ease-in-out;color:#ffffff;}#rec997300926 .tn-elem[data-elem-id="1745937426492"] .tn-atom .tn-atom__button-border::before{display:none;}#rec997300926 .tn-elem[data-elem-id="1745937426492"] .tn-atom .tn-atom__button-border::after{display:none;}@media (hover),(min-width:0\0){#rec997300926 .tn-elem[data-elem-id="1745937426492"] .tn-atom:hover::after{opacity:0;}#rec997300926 .tn-elem[data-elem-id="1745937426492"] .tn-atom:hover{animation-name:none;}}@media screen and (max-width:1199px){#rec997300926 .tn-elem[data-elem-id="1745937426492"]{display:block;top:14px;;left:calc(50% - 160px + 10px);;width:300px;}#rec997300926 .tn-elem[data-elem-id="1745937426492"] .tn-atom{white-space:normal;background-size:cover;background-color:var(--t396-bgcolor-color,transparent);}#rec997300926 .tn-elem[data-elem-id="1745937426492"] .tn-atom::after{display:none;}#rec997300926 .tn-elem[data-elem-id="1745937426492"] .tn-atom .tn-atom__button-text{overflow:visible;}#rec997300926 .tn-elem[data-elem-id="1745937426492"] .tn-atom .tn-atom__button-border::before{display:none;}#rec997300926 .tn-elem[data-elem-id="1745937426492"] .tn-atom .tn-atom__button-border::after{display:none;}@media (hover),(min-width:0\0){#rec997300926 .tn-elem[data-elem-id="1745937426492"] .tn-atom:hover::after{opacity:0;}#rec997300926 .tn-elem[data-elem-id="1745937426492"] .tn-atom:hover{animation-name:none;}}}#rec997300926 .tn-elem[data-elem-id="1745937325044"]{color:#282828;z-index:3;top:7px;;left:calc(50% - 600px + 150px);;width:724px;height:auto;}#rec997300926 .tn-elem[data-elem-id="1745937325044"] .tn-atom{vertical-align:middle;color:#282828;font-size:14px;font-family:'RobotoMono-Medium',Arial,sans-serif;line-height:1.25;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}@media screen and (max-width:1199px){#rec997300926 .tn-elem[data-elem-id="1745937325044"]{display:table;top:-78px;;left:calc(50% - 160px + 10px);;width:300px;height:auto;text-align:left;}#rec997300926 .tn-elem[data-elem-id="1745937325044"] .tn-atom{vertical-align:middle;white-space:normal;font-size:13px;line-height:1.25;background-size:cover;}}</style> <div class='t396'> <div class="t396__artboard" data-artboard-recid="997300926" data-artboard-screens="320,1200" data-artboard-height="5" data-artboard-valign="center" data-artboard-upscale="grid" data-artboard-ovrflw="visible" data-artboard-height-res-320="5"> <div class="t396__carrier" data-artboard-recid="997300926"></div> <div class="t396__filter" data-artboard-recid="997300926"></div> <div class='t396__elem tn-elem tn-elem__997300926176034464077418250' data-elem-id='176034464077418250' data-elem-type='shape' data-field-top-value="0" data-field-left-value="-135" data-field-height-value="52" data-field-width-value="1470" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-widthmode-value="fixed" data-field-heightmode-value="fixed" data-field-top-res-320-value="-90" data-field-left-res-320-value="-10" data-field-height-res-320-value="154" data-field-width-res-320-value="340" data-field-widthmode-res-320-value="fixed" data-field-heightmode-res-320-value="fixed"> <div class='tn-atom'> </div> </div> <div class='t396__elem tn-elem privacy-policy-btn-accept tn-elem__9973009261745937426492' data-elem-id='1745937426492' data-elem-type='button' data-field-top-value="8" data-field-left-value="904" data-field-height-value="40" data-field-width-value="150" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-widthmode-value="fixed" data-field-heightmode-value="fixed" data-field-fontsize-value="14" data-field-top-res-320-value="14" data-field-left-res-320-value="10" data-field-width-res-320-value="300"> <div class='tn-atom'> <div class='tn-atom__button-content'> <span class="tn-atom__button-text">Принять</span> </div> <span class="tn-atom__button-border"></span> </div> </div> <div class='t396__elem tn-elem tn-elem__9973009261745937325044' data-elem-id='1745937325044' data-elem-type='text' data-field-top-value="7" data-field-left-value="150" data-field-height-value="36" data-field-width-value="724" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="px" data-field-widthunits-value="px" data-field-textfit-value="autoheight" data-field-widthmode-value="fixed" data-field-fontsize-value="14" data-field-top-res-320-value="-78" data-field-left-res-320-value="10" data-field-height-res-320-value="99" data-field-width-res-320-value="300" data-field-heightunits-res-320-value="px" data-field-textfit-res-320-value="autoheight" data-field-widthmode-res-320-value="fixed" data-field-fontsize-res-320-value="13"> <div class='tn-atom'field='tn_text_1745937325044'>Наш сайт использует файлы cookie и обрабатывает персональные данные для улучшения работы сайта. Продолжая пользоваться сайтом, вы соглашаетесь с <a href="https://eduson.academy/policy-personal-data" target="_blank" rel="noreferrer noopener">Политикой обработки персональных данных</a></div> </div> </div> </div> <script>t_onReady(function() {t_onFuncLoad('t396_init',function() {t396_init('997300926');});});</script> <!-- /T396 --> </div> <div id="rec1495941371" class="r t-rec t-rec_pt_0" style="padding-top:0px; " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <script>
/* --- privacy banner over floating button (marketing) --------------------- */
(() => {
/* ── configurable constants ─────────────────────────────────────────── */
const COOKIE_NAME = 'privacy_policy_accepted';
const COOKIE_LIFETIME = 60 * 60 * 24 * 180; // 180 days
const BANNER_ID = 'rec997300926'; // privacy banner record id
const BTN_SELECTOR = '.privacy-policy-btn-accept';
const FLOATING_SEL = '.floating'; // marketing floating button(s)
const Z_TOP = 2147483647; // privacy must be above everything
const Z_BELOW = Z_TOP - 1; // floating sits just under privacy
const BANNER_OFFSET = 107; // px to lift cookie banner from viewport bottom
/* ── element refs ───────────────────────────────────────────────────── */
const $banner = document.getElementById(BANNER_ID);
if (!$banner) return; // safety guard: nothing to control
const $floatings = () => Array.from(document.querySelectorAll(FLOATING_SEL));
/* ── tiny helpers ───────────────────────────────────────────────────── */
const cssHide = el => el && (el.style.display = 'none');
const cssShow = el => el && (el.style.display = '');
const setCookieValue = (name, value, { expires, path = '/' } = {}) => {
let exp = '';
if (typeof expires === 'number') {
exp = '; expires=' + new Date(Date.now() + expires * 1000).toUTCString();
} else if (expires instanceof Date) {
exp = '; expires=' + expires.toUTCString();
}
document.cookie =
encodeURIComponent(name) +
'=' +
encodeURIComponent(value ?? '') +
exp +
'; path=' + path;
};
const getCookieValue = (name) => {
const target = encodeURIComponent(name) + '=';
const row = document.cookie.split('; ').find(x => x.startsWith(target));
return row ? decodeURIComponent(row.slice(target.length)) : null;
};
// Push floaters under privacy (visually under, but KEEP THEM CLICKABLE)
const pushFloatersUnderPrivacy = () => {
$floatings().forEach(el => {
// save inline overrides to restore later
if (!el.dataset._prevZ) el.dataset._prevZ = el.style.zIndex || '';
if (!el.dataset._prevPE) el.dataset._prevPE = el.style.pointerEvents || '';
if (!el.dataset._prevA11y) el.dataset._prevA11y = el.getAttribute('aria-hidden') ?? '';
// put marketing banner just below cookie banner stack-wise
el.style.zIndex = String(Z_BELOW);
// IMPORTANT: allow marketing CTA clicks
el.style.pointerEvents = 'auto';
// make sure it's not aria-hidden (should be visible/interactive)
el.removeAttribute('aria-hidden');
});
};
// Restore floaters to original state
const restoreFloaters = () => {
$floatings().forEach(el => {
el.style.zIndex = el.dataset._prevZ || '';
el.style.pointerEvents = el.dataset._prevPE || '';
const prevA11y = el.dataset._prevA11y;
if (prevA11y === '') {
el.removeAttribute('aria-hidden');
} else {
el.setAttribute('aria-hidden', prevA11y);
}
delete el.dataset._prevZ;
delete el.dataset._prevPE;
delete el.dataset._prevA11y;
});
};
// Ensure privacy banner is always on top and elevated from bottom by 107px
const elevatePrivacyBanner = () => {
Object.assign($banner.style, {
position : 'fixed',
bottom : BANNER_OFFSET + 'px', // << move banner up by 107px
left : '0',
width : '100%',
zIndex : String(Z_TOP),
// IMPORTANT: we do NOT disable pointer-events here.
// Cookie "Принять" button must stay clickable.
pointerEvents: 'auto'
});
cssShow($banner);
};
/* ── main flow ──────────────────────────────────────────────────────── */
document.addEventListener('DOMContentLoaded', () => {
const accepted = getCookieValue(COOKIE_NAME) === '1';
if (accepted) {
cssHide($banner);
restoreFloaters(); // everything behaves as usual
} else {
elevatePrivacyBanner(); // show privacy elevated by 107px
pushFloatersUnderPrivacy(); // floaters stay visible & clickable
}
// accept-button handler (delegated on banner)
$banner.addEventListener('click', evt => {
if (!evt.target.closest(BTN_SELECTOR)) return;
setCookieValue(COOKIE_NAME, '1', { expires: COOKIE_LIFETIME, path: '/' });
cssHide($banner);
restoreFloaters(); // floaters become fully visible & interactive
// Optional: notify app/gtm
document.dispatchEvent(new CustomEvent('privacyConsentAccepted'));
});
// If layout changes (resize), keep positions/z-index consistent
window.addEventListener('resize', () => {
if (getCookieValue(COOKIE_NAME) === '1') return;
elevatePrivacyBanner();
pushFloatersUnderPrivacy();
}, { passive: true });
});
})();
</script> <style>
/* Keep privacy accept button definitely clickable (Tilda-safe) */
#rec997300926 .privacy-policy-btn-accept,
#rec997300926 .privacy-policy-btn-accept .tn-atom {
pointer-events: auto !important;
cursor: pointer !important;
user-select: none !important;
}
</style> <!-- nominify end --> </div> </div> </div> </div> <div id="rec577179073" class="r t-rec" style="background-color:#1c1c1c; " data-animationappear="off" data-record-type="396" data-bg-color="#1c1c1c"> <!-- T396 --> <style>#rec577179073 .t396__artboard {height:300px;}#rec577179073 .t396__filter {height:300px;}#rec577179073 .t396__carrier{height:300px;background-position:center center;background-attachment:scroll;background-size:cover;background-repeat:no-repeat;}@media screen and (max-width:1199px) {#rec577179073 .t396__artboard,#rec577179073 .t396__filter,#rec577179073 .t396__carrier {}#rec577179073 .t396__filter {}#rec577179073 .t396__carrier {background-attachment:scroll;}}@media screen and (max-width:959px) {#rec577179073 .t396__artboard,#rec577179073 .t396__filter,#rec577179073 .t396__carrier {}#rec577179073 .t396__filter {}#rec577179073 .t396__carrier {background-attachment:scroll;}}@media screen and (max-width:639px) {#rec577179073 .t396__artboard,#rec577179073 .t396__filter,#rec577179073 .t396__carrier {}#rec577179073 .t396__filter {}#rec577179073 .t396__carrier {background-attachment:scroll;}}@media screen and (max-width:479px) {#rec577179073 .t396__artboard,#rec577179073 .t396__filter,#rec577179073 .t396__carrier {height:476px;}#rec577179073 .t396__filter{}#rec577179073 .t396__carrier {background-position:center center;background-attachment:scroll;}}#rec577179073 .tn-elem[data-elem-id="1680881397974"]{color:#ffffff;z-index:233;top:60px;;left:calc(50% - 600px + 20px);;width:350px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680881397974"] .tn-atom{color:#ffffff;font-size:50px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680881487070"]{color:#ffffff;z-index:234;top:60px;;left:calc(50% - 600px + 400px);;width:158px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680881487070"] .tn-atom{color:#ffffff;font-size:50px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680881619981"]{color:#ffffff;z-index:235;top:60px;;left:calc(50% - 600px + 588px);;width:103px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680881619981"] .tn-atom{color:#ffffff;font-size:50px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680881619984"]{color:#ffffff;z-index:236;top:60px;;left:calc(50% - 600px + 722px);;width:138px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680881619984"] .tn-atom{color:#ffffff;font-size:50px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680881648960"]{color:#ffffff;z-index:237;top:60px;;left:calc(50% - 600px + 890px);;width:155px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680881648960"] .tn-atom{color:#ffffff;font-size:50px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680881648962"]{color:#ffffff;z-index:238;top:60px;;left:calc(50% - 600px + 1454px);;width:158px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680881648962"] .tn-atom{color:#ffffff;font-size:50px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680881681165"]{color:#ffffff;z-index:241;top:60px;;left:calc(50% - 600px + 1074px);;width:350px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680881681165"] .tn-atom{color:#ffffff;font-size:50px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680881699404"]{color:#ffffff;z-index:242;top:140px;;left:calc(50% - 600px + 20px);;width:125px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680881699404"] .tn-atom{color:#ffffff;font-size:30px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680881699406"]{color:#ffffff;z-index:243;top:140px;;left:calc(50% - 600px + 175px);;width:112px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680881699406"] .tn-atom{color:#ffffff;font-size:30px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680881699409"]{color:#ffffff;z-index:244;top:140px;;left:calc(50% - 600px + 317px);;width:168px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680881699409"] .tn-atom{color:#ffffff;font-size:30px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680881699411"]{color:#ffffff;z-index:245;top:140px;;left:calc(50% - 600px + 515px);;width:87px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680881699411"] .tn-atom{color:#ffffff;font-size:30px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680881699413"]{color:#ffffff;z-index:246;top:140px;;left:calc(50% - 600px + 632px);;width:144px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680881699413"] .tn-atom{color:#ffffff;font-size:30px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680881699416"]{color:#ffffff;z-index:247;top:140px;;left:calc(50% - 600px + 1071px);;width:164px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680881699416"] .tn-atom{color:#ffffff;font-size:30px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680881699418"]{color:#ffffff;z-index:248;top:140px;;left:calc(50% - 600px + 806px);;width:235px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680881699418"] .tn-atom{color:#ffffff;font-size:30px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680881774972"]{color:#ffffff;z-index:249;top:140px;;left:calc(50% - 600px + 1265px);;width:65px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680881774972"] .tn-atom{color:#ffffff;font-size:30px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680881774975"]{color:#ffffff;z-index:250;top:140px;;left:calc(50% - 600px + 1360px);;width:80px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680881774975"] .tn-atom{color:#ffffff;font-size:30px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680881774977"]{color:#ffffff;z-index:251;top:140px;;left:calc(50% - 600px + 1698px);;width:49px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680881774977"] .tn-atom{color:#ffffff;font-size:30px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680881774979"]{color:#ffffff;z-index:252;top:140px;;left:calc(50% - 600px + 1470px);;width:198px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680881774979"] .tn-atom{color:#ffffff;font-size:30px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680881794726"]{color:#ffffff;z-index:253;top:140px;;left:calc(50% - 600px + 1777px);;width:132px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680881794726"] .tn-atom{color:#ffffff;font-size:30px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680881888458"]{color:#ffffff;z-index:254;top:210px;;left:calc(50% - 600px + 20px);;width:10px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680881888458"] .tn-atom{color:#ffffff;font-size:20px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680881888462"]{color:#ffffff;z-index:255;top:210px;;left:calc(50% - 600px + 116px);;width:10px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680881888462"] .tn-atom{color:#ffffff;font-size:20px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680881888465"]{color:#ffffff;z-index:256;top:210px;;left:calc(50% - 600px + 202px);;width:10px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680881888465"] .tn-atom{color:#ffffff;font-size:20px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680881888467"]{color:#ffffff;z-index:257;top:210px;;left:calc(50% - 600px + 296px);;width:10px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680881888467"] .tn-atom{color:#ffffff;font-size:20px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680881888470"]{color:#ffffff;z-index:258;top:210px;;left:calc(50% - 600px + 394px);;width:10px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680881888470"] .tn-atom{color:#ffffff;font-size:20px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680881888473"]{color:#ffffff;z-index:259;top:210px;;left:calc(50% - 600px + 646px);;width:10px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680881888473"] .tn-atom{color:#ffffff;font-size:20px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680881888475"]{color:#ffffff;z-index:260;top:210px;;left:calc(50% - 600px + 534px);;width:10px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680881888475"] .tn-atom{color:#ffffff;font-size:20px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680881888478"]{color:#ffffff;z-index:261;top:210px;;left:calc(50% - 600px + 728px);;width:10px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680881888478"] .tn-atom{color:#ffffff;font-size:20px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680881888480"]{color:#ffffff;z-index:262;top:210px;;left:calc(50% - 600px + 848px);;width:10px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680881888480"] .tn-atom{color:#ffffff;font-size:20px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680881888483"]{color:#ffffff;z-index:263;top:210px;;left:calc(50% - 600px + 1018px);;width:10px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680881888483"] .tn-atom{color:#ffffff;font-size:20px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680881888485"]{color:#ffffff;z-index:264;top:210px;;left:calc(50% - 600px + 926px);;width:10px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680881888485"] .tn-atom{color:#ffffff;font-size:20px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680881888488"]{color:#ffffff;z-index:265;top:210px;;left:calc(50% - 600px + 1138px);;width:10px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680881888488"] .tn-atom{color:#ffffff;font-size:20px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680882036444"]{color:#ffffff;z-index:266;top:210px;;left:calc(50% - 600px + 1248px);;width:10px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680882036444"] .tn-atom{color:#ffffff;font-size:20px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680882036447"]{color:#ffffff;z-index:267;top:210px;;left:calc(50% - 600px + 1328px);;width:10px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680882036447"] .tn-atom{color:#ffffff;font-size:20px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680882036449"]{color:#ffffff;z-index:268;top:210px;;left:calc(50% - 600px + 1500px);;width:10px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680882036449"] .tn-atom{color:#ffffff;font-size:20px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680882036452"]{color:#ffffff;z-index:269;top:210px;;left:calc(50% - 600px + 1412px);;width:10px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680882036452"] .tn-atom{color:#ffffff;font-size:20px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680882036454"]{color:#ffffff;z-index:270;top:210px;;left:calc(50% - 600px + 1596px);;width:10px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680882036454"] .tn-atom{color:#ffffff;font-size:20px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680882036457"]{color:#ffffff;z-index:271;top:210px;;left:calc(50% - 600px + 1728px);;width:10px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680882036457"] .tn-atom{color:#ffffff;font-size:20px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680882036460"]{color:#ffffff;z-index:272;top:210px;;left:calc(50% - 600px + 1942px);;width:10px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680882036460"] .tn-atom{color:#ffffff;font-size:20px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680882036463"]{color:#ffffff;z-index:273;top:210px;;left:calc(50% - 600px + 1872px);;width:10px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680882036463"] .tn-atom{color:#ffffff;font-size:20px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680882036465"]{color:#ffffff;z-index:274;top:210px;;left:calc(50% - 600px + 2068px);;width:10px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680882036465"] .tn-atom{color:#ffffff;font-size:20px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680882104947"]{color:#ffffff;z-index:275;top:210px;;left:calc(50% - 600px + 2152px);;width:10px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680882104947"] .tn-atom{color:#ffffff;font-size:20px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680882104951"]{color:#ffffff;z-index:276;top:210px;;left:calc(50% - 600px + 2330px);;width:10px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680882104951"] .tn-atom{color:#ffffff;font-size:20px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680882104953"]{color:#ffffff;z-index:277;top:210px;;left:calc(50% - 600px + 2228px);;width:10px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680882104953"] .tn-atom{color:#ffffff;font-size:20px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680882104956"]{color:#ffffff;z-index:278;top:210px;;left:calc(50% - 600px + 2408px);;width:10px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680882104956"] .tn-atom{color:#ffffff;font-size:20px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680882104958"]{color:#ffffff;z-index:279;top:210px;;left:calc(50% - 600px + 2474px);;width:10px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680882104958"] .tn-atom{color:#ffffff;font-size:20px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680882104961"]{color:#ffffff;z-index:280;top:210px;;left:calc(50% - 600px + 2684px);;width:10px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680882104961"] .tn-atom{color:#ffffff;font-size:20px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680882104963"]{color:#ffffff;z-index:281;top:210px;;left:calc(50% - 600px + 2568px);;width:10px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680882104963"] .tn-atom{color:#ffffff;font-size:20px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}#rec577179073 .tn-elem[data-elem-id="1680882104966"]{color:#ffffff;z-index:282;top:210px;;left:calc(50% - 600px + 2800px);;width:10px;height:auto;}#rec577179073 .tn-elem[data-elem-id="1680882104966"] .tn-atom{color:#ffffff;font-size:20px;font-family:'Alegreya Sans',Arial,sans-serif;line-height:1;font-weight:400;background-position:center center;border-width:var(--t396-borderwidth,0);border-style:var(--t396-borderstyle,solid);border-color:var(--t396-bordercolor,transparent);transition:background-color var(--t396-speedhover,0s) ease-in-out,color var(--t396-speedhover,0s) ease-in-out,border-color var(--t396-speedhover,0s) ease-in-out,box-shadow var(--t396-shadowshoverspeed,0.2s) ease-in-out;text-shadow:var(--t396-shadow-text-x,0px) var(--t396-shadow-text-y,0px) var(--t396-shadow-text-blur,0px) rgba(var(--t396-shadow-text-color),var(--t396-shadow-text-opacity,100%));}</style> <div class='t396'> <div class="t396__artboard" data-artboard-recid="577179073" data-artboard-screens="320,480,640,960,1200" data-artboard-height="300" data-artboard-valign="center" data-artboard-upscale="grid" data-artboard-height-res-320="476" data-artboard-upscale-res-320="grid"> <div class="t396__carrier" data-artboard-recid="577179073"></div> <div class="t396__filter" data-artboard-recid="577179073"></div> <div class='t396__elem tn-elem tn-elem__5771790731680881397974' data-elem-id='1680881397974' data-elem-type='text' data-field-top-value="60" data-field-left-value="20" data-field-width-value="350" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="50"> <div class='tn-atom'field='tn_text_1680881397974'>Санкт-Петербург</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680881487070' data-elem-id='1680881487070' data-elem-type='text' data-field-top-value="60" data-field-left-value="400" data-field-width-value="158" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="50"> <div class='tn-atom'field='tn_text_1680881487070'>Алматы</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680881619981' data-elem-id='1680881619981' data-elem-type='text' data-field-top-value="60" data-field-left-value="588" data-field-width-value="103" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="50"> <div class='tn-atom'field='tn_text_1680881619981'>Киев</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680881619984' data-elem-id='1680881619984' data-elem-type='text' data-field-top-value="60" data-field-left-value="722" data-field-width-value="138" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="50"> <div class='tn-atom'field='tn_text_1680881619984'>Минск</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680881648960' data-elem-id='1680881648960' data-elem-type='text' data-field-top-value="60" data-field-left-value="890" data-field-width-value="155" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="50"> <div class='tn-atom'field='tn_text_1680881648960'>Москва</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680881648962' data-elem-id='1680881648962' data-elem-type='text' data-field-top-value="60" data-field-left-value="1454" data-field-width-value="158" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="50"> <div class='tn-atom'field='tn_text_1680881648962'>Алматы</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680881681165' data-elem-id='1680881681165' data-elem-type='text' data-field-top-value="60" data-field-left-value="1074" data-field-width-value="350" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="50"> <div class='tn-atom'field='tn_text_1680881681165'>Санкт-Петербург</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680881699404' data-elem-id='1680881699404' data-elem-type='text' data-field-top-value="140" data-field-left-value="20" data-field-width-value="125" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="30"> <div class='tn-atom'field='tn_text_1680881699404'>Волгоград</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680881699406' data-elem-id='1680881699406' data-elem-type='text' data-field-top-value="140" data-field-left-value="175" data-field-width-value="112" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="30"> <div class='tn-atom'field='tn_text_1680881699406'>Воронеж</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680881699409' data-elem-id='1680881699409' data-elem-type='text' data-field-top-value="140" data-field-left-value="317" data-field-width-value="168" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="30"> <div class='tn-atom'field='tn_text_1680881699409'>Екатеринбург</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680881699411' data-elem-id='1680881699411' data-elem-type='text' data-field-top-value="140" data-field-left-value="515" data-field-width-value="87" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="30"> <div class='tn-atom'field='tn_text_1680881699411'>Казань</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680881699413' data-elem-id='1680881699413' data-elem-type='text' data-field-top-value="140" data-field-left-value="632" data-field-width-value="144" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="30"> <div class='tn-atom'field='tn_text_1680881699413'>Красноярск</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680881699416' data-elem-id='1680881699416' data-elem-type='text' data-field-top-value="140" data-field-left-value="1071" data-field-width-value="164" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="30"> <div class='tn-atom'field='tn_text_1680881699416'>Новосибирск</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680881699418' data-elem-id='1680881699418' data-elem-type='text' data-field-top-value="140" data-field-left-value="806" data-field-width-value="235" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="30"> <div class='tn-atom'field='tn_text_1680881699418'>Нижний Новгород</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680881774972' data-elem-id='1680881774972' data-elem-type='text' data-field-top-value="140" data-field-left-value="1265" data-field-width-value="65" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="30"> <div class='tn-atom'field='tn_text_1680881774972'>Омск</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680881774975' data-elem-id='1680881774975' data-elem-type='text' data-field-top-value="140" data-field-left-value="1360" data-field-width-value="80" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="30"> <div class='tn-atom'field='tn_text_1680881774975'>Пермь</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680881774977' data-elem-id='1680881774977' data-elem-type='text' data-field-top-value="140" data-field-left-value="1698" data-field-width-value="49" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="30"> <div class='tn-atom'field='tn_text_1680881774977'>Уфа</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680881774979' data-elem-id='1680881774979' data-elem-type='text' data-field-top-value="140" data-field-left-value="1470" data-field-width-value="198" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="30"> <div class='tn-atom'field='tn_text_1680881774979'>Ростов-на-Дону</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680881794726' data-elem-id='1680881794726' data-elem-type='text' data-field-top-value="140" data-field-left-value="1777" data-field-width-value="132" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="30"> <div class='tn-atom'field='tn_text_1680881794726'>Челябинск</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680881888458' data-elem-id='1680881888458' data-elem-type='text' data-field-top-value="210" data-field-left-value="20" data-field-width-value="10" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="20"> <div class='tn-atom'field='tn_text_1680881888458'>Вологда</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680881888462' data-elem-id='1680881888462' data-elem-type='text' data-field-top-value="210" data-field-left-value="116" data-field-width-value="10" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="20"> <div class='tn-atom'field='tn_text_1680881888462'>Гомель</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680881888465' data-elem-id='1680881888465' data-elem-type='text' data-field-top-value="210" data-field-left-value="202" data-field-width-value="10" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="20"> <div class='tn-atom'field='tn_text_1680881888465'>Ижевск</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680881888467' data-elem-id='1680881888467' data-elem-type='text' data-field-top-value="210" data-field-left-value="296" data-field-width-value="10" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="20"> <div class='tn-atom'field='tn_text_1680881888467'>Иркутск</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680881888470' data-elem-id='1680881888470' data-elem-type='text' data-field-top-value="210" data-field-left-value="394" data-field-width-value="10" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="20"> <div class='tn-atom'field='tn_text_1680881888470'>Калининград</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680881888473' data-elem-id='1680881888473' data-elem-type='text' data-field-top-value="210" data-field-left-value="646" data-field-width-value="10" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="20"> <div class='tn-atom'field='tn_text_1680881888473'>Киров</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680881888475' data-elem-id='1680881888475' data-elem-type='text' data-field-top-value="210" data-field-left-value="534" data-field-width-value="10" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="20"> <div class='tn-atom'field='tn_text_1680881888475'>Кемерово</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680881888478' data-elem-id='1680881888478' data-elem-type='text' data-field-top-value="210" data-field-left-value="728" data-field-width-value="10" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="20"> <div class='tn-atom'field='tn_text_1680881888478'>Краснодар</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680881888480' data-elem-id='1680881888480' data-elem-type='text' data-field-top-value="210" data-field-left-value="848" data-field-width-value="10" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="20"> <div class='tn-atom'field='tn_text_1680881888480'>Курск</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680881888483' data-elem-id='1680881888483' data-elem-type='text' data-field-top-value="210" data-field-left-value="1018" data-field-width-value="10" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="20"> <div class='tn-atom'field='tn_text_1680881888483'>Махачкала</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680881888485' data-elem-id='1680881888485' data-elem-type='text' data-field-top-value="210" data-field-left-value="926" data-field-width-value="10" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="20"> <div class='tn-atom'field='tn_text_1680881888485'>Липецк</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680881888488' data-elem-id='1680881888488' data-elem-type='text' data-field-top-value="210" data-field-left-value="1138" data-field-width-value="10" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="20"> <div class='tn-atom'field='tn_text_1680881888488'>Оренбург</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680882036444' data-elem-id='1680882036444' data-elem-type='text' data-field-top-value="210" data-field-left-value="1248" data-field-width-value="10" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="20"> <div class='tn-atom'field='tn_text_1680882036444'>Пенза</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680882036447' data-elem-id='1680882036447' data-elem-type='text' data-field-top-value="210" data-field-left-value="1328" data-field-width-value="10" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="20"> <div class='tn-atom'field='tn_text_1680882036447'>Ростов</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680882036449' data-elem-id='1680882036449' data-elem-type='text' data-field-top-value="210" data-field-left-value="1500" data-field-width-value="10" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="20"> <div class='tn-atom'field='tn_text_1680882036449'>Саратов</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680882036452' data-elem-id='1680882036452' data-elem-type='text' data-field-top-value="210" data-field-left-value="1412" data-field-width-value="10" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="20"> <div class='tn-atom'field='tn_text_1680882036452'>Рязань</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680882036454' data-elem-id='1680882036454' data-elem-type='text' data-field-top-value="210" data-field-left-value="1596" data-field-width-value="10" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="20"> <div class='tn-atom'field='tn_text_1680882036454'>Севастополь</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680882036457' data-elem-id='1680882036457' data-elem-type='text' data-field-top-value="210" data-field-left-value="1728" data-field-width-value="10" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="20"> <div class='tn-atom'field='tn_text_1680882036457'>Симферополь</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680882036460' data-elem-id='1680882036460' data-elem-type='text' data-field-top-value="210" data-field-left-value="1942" data-field-width-value="10" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="20"> <div class='tn-atom'field='tn_text_1680882036460'>Ставрополь</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680882036463' data-elem-id='1680882036463' data-elem-type='text' data-field-top-value="210" data-field-left-value="1872" data-field-width-value="10" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="20"> <div class='tn-atom'field='tn_text_1680882036463'>Сочи</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680882036465' data-elem-id='1680882036465' data-elem-type='text' data-field-top-value="210" data-field-left-value="2068" data-field-width-value="10" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="20"> <div class='tn-atom'field='tn_text_1680882036465'>Сургут</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680882104947' data-elem-id='1680882104947' data-elem-type='text' data-field-top-value="210" data-field-left-value="2152" data-field-width-value="10" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="20"> <div class='tn-atom'field='tn_text_1680882104947'>Тверь</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680882104951' data-elem-id='1680882104951' data-elem-type='text' data-field-top-value="210" data-field-left-value="2330" data-field-width-value="10" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="20"> <div class='tn-atom'field='tn_text_1680882104951'>Томск</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680882104953' data-elem-id='1680882104953' data-elem-type='text' data-field-top-value="210" data-field-left-value="2228" data-field-width-value="10" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="20"> <div class='tn-atom'field='tn_text_1680882104953'>Тольятти</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680882104956' data-elem-id='1680882104956' data-elem-type='text' data-field-top-value="210" data-field-left-value="2408" data-field-width-value="10" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="20"> <div class='tn-atom'field='tn_text_1680882104956'>Тула</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680882104958' data-elem-id='1680882104958' data-elem-type='text' data-field-top-value="210" data-field-left-value="2474" data-field-width-value="10" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="20"> <div class='tn-atom'field='tn_text_1680882104958'>Тюмень</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680882104961' data-elem-id='1680882104961' data-elem-type='text' data-field-top-value="210" data-field-left-value="2684" data-field-width-value="10" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="20"> <div class='tn-atom'field='tn_text_1680882104961'>Хабаровск</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680882104963' data-elem-id='1680882104963' data-elem-type='text' data-field-top-value="210" data-field-left-value="2568" data-field-width-value="10" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="20"> <div class='tn-atom'field='tn_text_1680882104963'>Ульяновск</div> </div> <div class='t396__elem tn-elem tn-elem__5771790731680882104966' data-elem-id='1680882104966' data-elem-type='text' data-field-top-value="210" data-field-left-value="2800" data-field-width-value="10" data-field-axisy-value="top" data-field-axisx-value="left" data-field-container-value="grid" data-field-topunits-value="px" data-field-leftunits-value="px" data-field-heightunits-value="" data-field-widthunits-value="px" data-field-fontsize-value="20"> <div class='tn-atom'field='tn_text_1680882104966'>Чебоксары</div> </div> </div> </div> <script>t_onReady(function() {t_onFuncLoad('t396_init',function() {t396_init('577179073');});});</script> <!-- /T396 --> </div> <div id="rec577337873" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <style>
.tabshide-cities {
opacity: 0!important;
min-height: 0!important;
max-height: 0!important;
pointer-events: none!important;
padding-top: 0 !important;
padding-bottom: 0 !important;
overflow: hidden !important;
}
</style> <script>
$("#rec577179073").addClass('tabshide-cities');
</script> <script>
(function () {
var blocks = document.getElementsByClassName('t-rec');
for (var i = 0; i < blocks.length; i++) {
var block = blocks[i];
if (block.textContent.indexOf('Error get alias') !== -1) {
block.style.display = 'none';
}
}
})();
</script> <!-- nominify end --> </div> </div> </div> </div> <div id="rec1819817011" class="r t-rec" style=" " data-animationappear="off" data-record-type="131"> <!-- T123 --> <div class="t123"> <div class="t-container_100 "> <div class="t-width t-width_100 "> <!-- nominify begin --> <script>
// Функция обновления года в футере (копирайт)
const updateYear = () => {
// update year in copyright in footer
const selector = ".eduson-copyright .tn-atom";
const year = new Date().getFullYear();
const block = document.querySelector(selector);
if (block) {
block.innerHTML = `© 2020-${year} ООО «ЭДЮСОН»`;
}
};
// Функция обновления года в плашках об актуальности курса
const updateCourseYear = () => {
// update year
const selector = ".eduson-update .tn-atom";
const year = new Date().getFullYear();
const block = document.querySelector(selector);
if (block) {
block.innerHTML = `${year}`;
}
};
document.addEventListener("DOMContentLoaded", () => {
updateYear();
updateCourseYear();
setTimeout(() => {
updateYear();
updateCourseYear();
}, 5000);
});
</script> <!-- nominify end --> </div> </div> </div> </div> </footer> <!--/footer--> </div> <!--/allrecords--> <!-- Stat --> <!-- Yandex.Metrika counter 65747131 --> <script type="text/javascript" data-tilda-cookie-type="analytics">setTimeout(function(){(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})(window,document,"script","https://mc.yandex.ru/metrika/tag.js","ym");window.mainMetrikaId='65747131';ym(window.mainMetrikaId,"init",{clickmap:true,trackLinks:true,accurateTrackBounce:true,webvisor:false,params:{__ym:{"ymCms":{"cms":"tilda","cmsVersion":"1.0","cmsCatalog":"1"}}},ecommerce:"dataLayer"});},2000);</script> <noscript><div><img src="https://mc.yandex.ru/watch/65747131" style="position:absolute; left:-9999px;" alt="" /></div></noscript> <!-- /Yandex.Metrika counter --> <script type="text/javascript">if(!window.mainTracker) {window.mainTracker='tilda';}
window.tildastatcookie='no';window.tildastatscroll='yes';setTimeout(function(){(function(d,w,k,o,g) {var n=d.getElementsByTagName(o)[0],s=d.createElement(o),f=function(){n.parentNode.insertBefore(s,n);};s.type="text/javascript";s.async=true;s.key=k;s.id="tildastatscript";s.src=g;if(w.opera=="[object Opera]") {d.addEventListener("DOMContentLoaded",f,false);} else {f();}})(document,window,'4e1615d56f64737e424ae8ad156ce1bd','script','https://static.tildacdn.com/js/tilda-stat-1.0.min.js');},2000);</script> <!-- Rating Mail.ru counter --> <script type="text/javascript" data-tilda-cookie-type="analytics">setTimeout(function(){var _tmr=window._tmr||(window._tmr=[]);_tmr.push({id:"3733620",type:"pageView",start:(new Date()).getTime()});window.mainMailruId='3733620';(function(d,w,id) {if(d.getElementById(id)) {return;}
var ts=d.createElement("script");ts.type="text/javascript";ts.async=true;ts.id=id;ts.src="https://top-fwz1.mail.ru/js/code.js";var f=function() {var s=d.getElementsByTagName("script")[0];s.parentNode.insertBefore(ts,s);};if(w.opera=="[object Opera]") {d.addEventListener("DOMContentLoaded",f,false);} else {f();}})(document,window,"topmailru-code");},2000);</script> <noscript><img src="https://top-fwz1.mail.ru/counter?id=3733620;js=na" style="border:0;position:absolute;left:-9999px;width:1px;height:1px" alt="Top.Mail.Ru" /></noscript> <!-- //Rating Mail.ru counter --> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-KDDBXBS" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <!-- FB Pixel code (noscript) --> <noscript><img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=1100170521353824&ev=PageView&agent=pltilda&noscript=1"/></noscript> <!-- End FB Pixel code (noscript) --> <!-- VK Pixel code (noscript) --> <noscript><img src="https://vk.com/rtrg?p=VK-RTRG-1870518-henw8" style="position:fixed; left:-999px;" alt=""/></noscript> <!-- End VK Pixel code (noscript) --> </body> </html>