/* Copyright site design system: tokens and shared chrome (all pages), then the skin for pages built on the legacy
   style.css. Keep it last in the head. Rules for the checkout funnel itself live in checkout.css. */
:root {
    --ink: #12263f;
    --muted: #55677d;
    --line: #dfe5ed;
    --bg: #f5f7fb;
    --card: #fff;
    --brand: #1d5ea8;
    --brand-deep: #123a6b;
    --brand-soft: #e8f1fb;
    --accent: #ff9a1f;
    --accent-deep: #f08a05;
    --ok: #16794c;
    --err: #b3261e;
    --err-soft: #fdecea;
    --radius: 14px;
    --shadow: 0 1px 2px rgba(18, 38, 63, .06), 0 8px 24px rgba(18, 38, 63, .07);
    --shadow-hover: 0 2px 4px rgba(18, 38, 63, .08), 0 14px 34px rgba(18, 38, 63, .13);
    --wrap: 1240px;
    --s: 0px; /* grows with the height of desktop screens, see below */
    --hero: radial-gradient(900px 340px at 90% -10%, rgba(120, 186, 255, .3), transparent 70%), linear-gradient(120deg, #123a6b, #1d5ea8);
}

/* --s runs from 0 (screen 600px high or less) to 200px (800px high or more): only the home banner and its form use it. */
@media (min-width: 1280px) { :root { --s: clamp(0px, calc(100vh - 600px), 200px); } }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
    margin: 0;
    background: var(--bg);
    color: var(--ink);
    font: 400 16px/1.6 "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}
body > form#form1 { display: flex; flex-direction: column; min-height: 100vh; margin: 0; }
main { display: block; flex: 1 0 auto; }
:focus-visible { outline: 3px solid var(--brand); outline-offset: 2px; border-radius: 4px; }

[class*="ck-"], [class*="ck-"] *, [class*="sx-"], [class*="sx-"] * { box-sizing: border-box; }
.ck-wrap { width: 100%; max-width: var(--wrap); margin-inline: auto; padding-inline: 20px; }
.ck-narrow { max-width: 780px; }
.ck-section { padding-block: 44px; }
.ck-band { background: var(--card); border-block: 1px solid var(--line); }
.ck-h2 { margin: 0 0 22px; font-size: 1.4rem; font-weight: 800; line-height: 1.2; color: var(--ink); }
.ck-i { width: 1.25em; height: 1.25em; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.ck-skip { position: absolute; left: -999px; top: 0; background: #fff; padding: 8px 14px; z-index: 10; }
.ck-skip:focus { left: 8px; top: 8px; }
.ck-link { color: var(--brand); font-weight: 600; text-underline-offset: 3px; }

/* Buttons */
.ck-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 10px;
    padding: 12px 22px; border: 2px solid transparent; border-radius: 10px;
    font: inherit; font-weight: 700; line-height: 1.2; text-decoration: none; cursor: pointer;
    transition: background-color .15s, border-color .15s, transform .15s, box-shadow .15s;
}
.ck-btn--primary { background: var(--accent); color: var(--ink); box-shadow: 0 6px 16px rgba(240, 138, 5, .28); }
.ck-btn--primary:hover { background: var(--accent-deep); transform: translateY(-1px); color: var(--ink); }
.ck-btn--ghost { border-color: var(--brand); color: var(--brand); background: transparent; }
.ck-btn--ghost:hover { background: var(--brand-soft); color: var(--brand); }
.ck-btn--block { display: flex; width: 100%; }
.ck-btn--lg { padding: 16px 24px; font-size: 1.08rem; }
.ck-btn[disabled] { opacity: .65; cursor: progress; transform: none; }

/* Header: one row on desktop, burger with a side drawer below 1280px. The drawer overlays the page, it never pushes it down. */
.ck-header { background: var(--card); border-bottom: 1px solid var(--line); }
.ck-header__row { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 58px; padding-block: 8px; }
.ck-logo { flex: none; }
.ck-logo img { display: block; width: 190px; height: auto; }
.ck-header__actions { display: flex; flex: none; align-items: center; gap: 8px; }
.ck-header__actions .ck-btn { padding: 8px 12px; font-size: .88rem; white-space: nowrap; }
.ck-header__actions .ck-btn--primary { box-shadow: none; }
.ck-iconbtn { display: inline-grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; color: var(--brand); }
.ck-iconbtn:hover { background: var(--brand-soft); }
.ck-iconbtn__text { display: none; }
.ck-burger, .ck-menu__close { display: none; place-items: center; width: 42px; height: 42px; padding: 0; border: 0; border-radius: 10px; background: none; color: var(--ink); font-size: 1.15rem; cursor: pointer; }
.ck-burger:hover, .ck-menu__close:hover { background: var(--brand-soft); }
.ck-menu { flex: 1 1 auto; min-width: 0; }
.ck-menu ul { display: flex; justify-content: center; gap: 4px 12px; margin: 0; padding: 0; list-style: none; }
.ck-menu li { margin: 0; padding: 0; background: none; }
.ck-menu ul a { color: var(--ink); font-size: .8rem; font-weight: 600; text-decoration: none; white-space: nowrap; }
.ck-menu ul a:hover, .ck-menu ul a[aria-current] { color: var(--brand); text-decoration: underline; text-underline-offset: 4px; }
.ck-menu__head, .ck-menu__extra, .ck-scrim { display: none; }
/* Tall desktop screens have the room: logo and buttons on one row, menu on its own, like the original site. */
@media (min-width: 1280px) and (min-height: 800px) {
    .ck-header__row { display: grid; grid-template-columns: auto 1fr; grid-template-areas: "logo actions" "menu menu"; gap: 8px 18px; padding-block: 10px 0; }
    .ck-logo { grid-area: logo; }
    .ck-logo img { width: 250px; }
    .ck-header__actions { grid-area: actions; justify-self: end; gap: 12px; }
    .ck-header__actions .ck-btn { padding: 10px 18px; font-size: .95rem; }
    .ck-iconbtn { display: inline-flex; align-items: center; gap: 8px; width: auto; height: auto; padding: 8px 10px; font-size: .92rem; font-weight: 600; text-decoration: none; }
    .ck-iconbtn__text { display: inline; }
    .ck-menu { grid-area: menu; padding-block: 10px; border-top: 1px solid var(--line); }
    .ck-menu ul { justify-content: flex-start; gap: 4px 28px; }
    .ck-menu ul a { font-size: .92rem; }
}
@media (max-width: 1279.98px) {
    .ck-iconbtn, .ck-header__cta { display: none; }
    .ck-burger { display: inline-grid; }
    .ck-menu {
        position: fixed; top: 0; right: 0; bottom: 0; z-index: 1000; display: flex; flex-direction: column; flex: none;
        width: min(320px, 86vw); padding: 12px 20px 24px; background: var(--card); box-shadow: -14px 0 40px rgba(8, 26, 54, .25); overflow-y: auto;
        transform: translateX(100%); visibility: hidden; transition: transform .22s ease, visibility .22s;
    }
    .is-menu-open .ck-menu { transform: none; visibility: visible; }
    .ck-menu__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
    .ck-menu__title { font-size: 1.05rem; font-weight: 800; }
    .ck-menu__close { display: inline-grid; margin-right: -8px; }
    .ck-menu ul { flex-direction: column; gap: 0; }
    .ck-menu ul a { display: block; padding: 13px 0; border-bottom: 1px solid var(--line); font-size: 1rem; white-space: normal; }
    .ck-menu__extra { display: grid; gap: 10px; margin-top: 20px; }
    .ck-scrim { display: block; position: fixed; inset: 0; z-index: 999; background: rgba(8, 26, 54, .45); opacity: 0; visibility: hidden; transition: opacity .22s, visibility .22s; }
    .is-menu-open .ck-scrim { opacity: 1; visibility: visible; }
    html.is-menu-open { overflow: hidden; }
}

/* Footer */
.ck-footer { background: var(--brand-deep); color: #c9d8ea; font-size: .9rem; }
.ck-footer__grid { display: grid; grid-template-columns: 1.2fr 1.6fr 1fr; gap: 28px 40px; padding-block: 38px 26px; }
.ck-footer__brand img { display: block; width: 170px; height: auto; margin-bottom: 12px; }
.ck-footer__brand p { margin: 0; max-width: 300px; }
.ck-footer__links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 24px; margin: 0; padding: 0; list-style: none; }
.ck-footer__links li { margin: 0; padding: 0; background: none; }
.ck-footer a { color: #fff; text-decoration: none; }
.ck-footer a:hover { text-decoration: underline; text-underline-offset: 3px; }
.ck-footer__secure-title { display: flex; align-items: center; gap: 8px; margin: 0 0 10px; color: #fff; font-weight: 700; }
.ck-footer__secure-title .ck-i { color: #ffc069; }
.ck-footer__bottom { padding-block: 16px 22px; border-top: 1px solid rgba(255, 255, 255, .14); font-size: .84rem; }
.ck-footer__bottom p { margin: 0; }

/* Heroes shared by every template */
.ck-hero, .slider_contact_page, .sx-hero { background: var(--hero); color: #fff; }

/* Plan cards: checkout and home page */
.ck-plan {
    display: flex; flex-direction: column; padding: 24px;
    background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow);
    transition: transform .16s, box-shadow .16s;
}
.ck-plan:hover { transform: translateY(-2px); box-shadow: var(--shadow-hover); }
.ck-plan h3 { margin: 0; color: var(--ink); font-size: 1.16rem; font-weight: 800; line-height: 1.2; }
.ck-plan h3 a { color: inherit; text-decoration: none; }
.ck-plan h3 a:hover { color: var(--brand); text-decoration: underline; }
.ck-plan__desc { margin: 4px 0 0; color: var(--muted); font-size: .92rem; }
.ck-price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px; margin: 0; }
.ck-plan .ck-price { margin-top: 14px; }
.ck-price__num { color: var(--brand-deep); font-size: 1.75rem; font-weight: 800; letter-spacing: -.01em; }
.ck-price__num label, .ck-price__num span { margin: 0; color: inherit; font: inherit; }
.ck-price__per { color: var(--muted); font-size: 1rem; font-weight: 700; }
.ck-tag { align-self: flex-start; margin: 6px 0 0; padding: 2px 10px; border-radius: 999px; background: var(--brand-soft); color: var(--brand); font-size: .78rem; font-weight: 700; }
.ck-features { display: grid; gap: 8px; margin: 18px 0 22px; padding: 0; list-style: none; font-size: .93rem; }
.ck-features li { display: flex; gap: 9px; align-items: flex-start; margin: 0; padding: 0; background: none; }
.ck-features .ck-i { margin-top: 3px; color: var(--ok); }
.ck-plan .ck-btn { margin-top: auto; }

/* ---------------------------------------------------------------------------------------------
   Home
   --------------------------------------------------------------------------------------------- */
/* Same proportions everywhere. Only the banner grows with the screen height, to give the form room. */
.sx-hero { padding-block: calc(16px + var(--s) * .09); }
.sx-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr) 430px; gap: 36px; align-items: center; }
.sx-hero h1 { margin: 0; font-size: clamp(1.6rem, 1.2rem + 1.3vw, 2.2rem); font-weight: 800; line-height: 1.15; letter-spacing: -.01em; color: #fff; }
.sx-hero__sub { margin: 6px 0 0; color: #ffd08a; font-size: 1.05rem; font-weight: 600; line-height: 1.3; }
.sx-hero__text { margin: 8px 0 0; color: #e4eefa; font-size: .93rem; line-height: 1.5; }
.sx-hero__band { margin: 6px 0 0; color: #c9dcf2; font-size: .86rem; line-height: 1.4; }
.sx-hero__form { padding: calc(14px + var(--s) * .04) calc(16px + var(--s) * .04); background: var(--card); border-radius: var(--radius); box-shadow: 0 14px 34px rgba(8, 26, 54, .32); color: var(--ink); }
.sx-hero__form h2 { margin: 0 0 calc(8px + var(--s) * .03); color: var(--ink); font-size: calc(17.3px + var(--s) * .0135); font-weight: 800; line-height: 1.25; }
.sx-hero__form h2 span { color: inherit; }
.sx-hero__fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: calc(8px + var(--s) * .02); }
.sx-hero__form .sx-field { margin: 0; }
[data-site] .sx-hero__form .sx-field input { min-height: calc(42px + var(--s) * .03); padding: 8px 12px; font-size: .95rem; }
[data-site] .sx-hero__form input[type="submit"] { display: block; width: 100%; margin-top: calc(8px + var(--s) * .02); padding: calc(11px + var(--s) * .015) 20px; }
.sx-vh { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.sx-planrow { padding-block: 14px 20px; }
.sx-plan { padding: 14px 16px; }
.sx-plan__head { display: flex; align-items: center; gap: 10px; }
.sx-plan__icon { flex: none; width: 40px; height: auto; }
.sx-plan__name { min-width: 0; }
.sx-plan h3 { font-size: 1.05rem; }
.sx-plan .ck-plan__desc { margin-top: 2px; font-size: .82rem; line-height: 1.3; }
.ck-plan__desc img { height: 16px; width: auto; vertical-align: middle; }
.sx-plan__price { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 2px 10px; margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--line); }
.sx-plan .ck-price { flex-wrap: nowrap; gap: 4px; margin: 0; white-space: nowrap; }
.sx-plan .ck-price__num { font-size: 1.3rem; }
.sx-plan .ck-price__per { font-size: .82rem; }
.sx-plan .ck-tag { align-self: center; margin: 0; padding: 1px 8px; font-size: .7rem; }
.sx-plan .ck-features { gap: 3px; margin: 8px 0 10px; font-size: .82rem; line-height: 1.35; }
.sx-plan .ck-features .ck-i { width: 1.1em; height: 1.1em; margin-top: 1px; }
.sx-plan__cta { display: flex; align-items: center; gap: 12px; margin-top: auto; }
.sx-plan__cta .ck-btn { flex: 1; margin: 0; padding: 10px 16px; font-size: .95rem; box-shadow: none; }
.sx-plan__cta .sx-addfile { margin: 0; white-space: nowrap; }
@media (min-width: 1280px) and (min-height: 800px) {
    .sx-hero__text { font-size: 1rem; }
    .sx-planrow { padding-block: 24px 30px; }
    .sx-plan { padding: 18px 20px; }
    .sx-plan .ck-features { gap: 5px; margin: 12px 0 14px; font-size: .88rem; }
}
.sx-strip { background: var(--card); border-bottom: 1px solid var(--line); }
.sx-strip p, .sx-strip h3 { margin: 0; padding-block: 15px; color: var(--brand-deep); font-size: 1.04rem; font-weight: 700; line-height: 1.4; text-align: center; }

.sx-plans { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 0; padding: 0; list-style: none; }
.sx-plans .ck-plan { margin: 0; }
.sx-addfile { color: var(--brand); font-size: .85rem; font-weight: 600; }

.sx-proof { display: grid; grid-template-columns: 330px minmax(0, 1fr); gap: 36px; align-items: start; }
.sx-stats h3 { margin: 0 0 14px; font-size: 1.4rem; font-weight: 800; line-height: 1.25; color: var(--ink); }
.sx-stats ul { margin: 0; padding: 0; list-style: none; }
.sx-stats li { margin: 0; padding: 12px 0; border-bottom: 1px solid var(--line); background: none; color: var(--muted); font-size: .98rem; }
.sx-stats li:last-child { border-bottom: 0; }
.sx-stats li span { color: var(--brand); font-weight: 800; }
.sx-logos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.sx-logos .item_portfolio { float: none; width: auto; height: 104px; margin: 0; padding: 0; background-color: var(--card); border: 1px solid var(--line); border-radius: 12px; overflow: hidden; position: relative; }
.sx-logos .item_portfolio span { position: absolute; inset: 0; width: auto; height: auto; margin: 0; background-position: center; background-repeat: no-repeat; background-size: contain; }

.sx-quotes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin: 0; padding: 0; list-style: none; }
.sx-quote { display: flex; flex-direction: column; margin: 0; padding: 24px; background: var(--bg); border-radius: var(--radius); }
.sx-quote__who { display: flex; align-items: center; gap: 14px; }
.sx-quote__who img { width: 58px; height: 58px; flex: none; border-radius: 50%; object-fit: cover; }
.sx-quote h4 { margin: 0; font-size: 1rem; font-weight: 800; line-height: 1.3; color: var(--ink); }
.sx-quote__role { margin: 0; color: var(--muted); font-size: .88rem; }
.sx-quote__text { flex: 1; margin: 14px 0; font-size: .98rem; font-style: italic; }
.sx-quote .ck-link { align-self: flex-start; }

.sx-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 26px; margin: 0; padding: 0; list-style: none; }
.sx-steps li { margin: 0; padding: 0; background: none; }
.sx-steps__icon { display: grid; place-items: center; width: 54px; height: 54px; margin-bottom: 12px; border-radius: 13px; background: var(--brand-soft); color: var(--brand); font-size: 1.32rem; }
.sx-steps h4 { margin: 0 0 6px; font-size: 1.02rem; font-weight: 800; line-height: 1.3; color: var(--ink); }
.sx-steps p { margin: 0; color: var(--muted); font-size: .93rem; }

.sx-cta { background: var(--hero); color: #fff; }
.sx-cta__row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px 36px; padding-block: 36px; }
.sx-cta h2 { margin: 0; font-size: 1.5rem; font-weight: 800; line-height: 1.25; color: #fff; }
.sx-cta p { margin: 6px 0 0; color: #e4eefa; }

.sx-links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; margin: 0; padding: 0; list-style: none; }
.sx-links > li { margin: 0; padding: 0; background: none; }
.sx-links h3 { margin: 0 0 12px; font-size: 1.1rem; font-weight: 800; color: var(--ink); }
.sx-links ul { margin: 0; padding: 0; list-style: none; }
.sx-links li li { margin: 0; padding: 7px 0; border-bottom: 1px solid var(--line); background: none; font-size: .93rem; }
.sx-links li li h4 { margin: 0 0 3px; font-size: .95rem; font-weight: 700; }
.sx-links li li p { margin: 0; color: var(--muted); font-size: .88rem; }
.sx-links a { color: var(--brand); text-decoration: none; }
.sx-links a:hover { text-decoration: underline; }
.sx-links .read_all_news { display: inline-block; float: none; margin: 8px 0 0; font-size: .9rem; font-weight: 600; }
.sx-links > li.sx-empty { display: none; }
.date_news { display: none; }

/* Promo tab: keeps its behaviour, out of the way on small screens */
@media (max-width: 960px) { .pop_up_promo { display: none; } }

/* ---------------------------------------------------------------------------------------------
   Legacy templates
   --------------------------------------------------------------------------------------------- */
.wrapper { box-sizing: border-box; width: 100%; max-width: var(--wrap); padding-inline: 20px; }

[data-site] main input[type="text"], [data-site] main input[type="email"], [data-site] main input[type="password"], [data-site] main input[type="tel"], [data-site] main select, [data-site] main textarea,
.sx-field input {
    box-sizing: border-box; width: 100%; min-height: 48px; margin: 0; padding: 10px 13px;
    border: 1.5px solid #c6d1de; border-radius: 9px; background: #fff; box-shadow: none;
    color: var(--ink); font: inherit; font-size: 1rem;
}
[data-site] main textarea { min-height: 170px; resize: vertical; }
[data-site] main input:focus, [data-site] main textarea:focus, [data-site] main select:focus { outline: none; border-color: var(--brand); box-shadow: 0 0 0 3px rgba(29, 94, 168, .18); }
[data-site] main input::placeholder, [data-site] main textarea::placeholder { color: #6d7d90; }
[data-site] main input[type="submit"], [data-site] main input[type="button"] {
    display: inline-block; width: auto; height: auto; min-height: 0; padding: 14px 28px; border: 0; border-radius: 10px;
    background: var(--accent); background-image: none; box-shadow: 0 6px 16px rgba(240, 138, 5, .28);
    color: var(--ink); font: inherit; font-weight: 700; line-height: 1.2; text-shadow: none; text-transform: none; cursor: pointer;
    transition: background-color .15s, transform .15s;
}
[data-site] main input[type="submit"]:hover, [data-site] main input[type="button"]:hover { background: var(--accent-deep); transform: translateY(-1px); }

/* Article, contact and gallery templates */
.slider_contact_page { height: auto; margin: 0; padding-block: 38px; background: var(--hero); }
.slider_contact_page h1, body.article-page .slider_contact_page h1, h1.header_title {
    margin: 0; padding: 0; background: none; color: #fff; font-size: clamp(1.6rem, 1.15rem + 1.8vw, 2.4rem); font-weight: 800; line-height: 1.2; letter-spacing: -.01em; text-transform: none;
}
.woman_contact { display: none; }
#main_contact { padding-block: 32px 56px; background: var(--bg); border: 0; }
#main_contact > .wrapper { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 26px; align-items: start; }
#main_contact > .wrapper::before, #main_contact > .wrapper::after { display: none; }
#main_contact .sidebar { float: none; width: auto; margin: 0; padding: 0; background: none; }
#main_contact .sidebar > ul { display: grid; gap: 16px; margin: 0; padding: 0; list-style: none; }
#main_contact .sidebar > ul::before, #main_contact .sidebar > ul::after { display: none; }
#main_contact .sidebar > ul > li {
    float: none; width: auto; margin: 0; padding: 20px; background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow);
}
#main_contact .sidebar .block_news:not(:has(li)) { display: none; }
#main_contact .sidebar .icon_widget, .address_box .icon_widget, .email_box .icon_widget { display: none; }
#main_contact .sidebar h3, #main_contact .sidebar h4, body.article-page #main_contact .sidebar h3 {
    float: none; width: auto; margin: 0 0 10px; padding: 0; color: var(--ink); font-size: 1rem; font-weight: 800; line-height: 1.3; text-transform: none;
}
#main_contact .sidebar ul ul { margin: 0; padding: 0; list-style: none; }
#main_contact .sidebar li li { margin: 0; padding: 7px 0; border-bottom: 1px solid var(--line); background: none; font-size: .92rem; line-height: 1.4; }
#main_contact .sidebar li li:last-child { border-bottom: 0; }
#main_contact .sidebar li li::before { display: none; }
#main_contact .sidebar a { color: var(--brand); font-size: .92rem; font-weight: 400; line-height: 1.4; text-decoration: none; }
#main_contact .sidebar a:hover { text-decoration: underline; }
#main_contact .sidebar p { margin: 0 0 4px; color: var(--muted); font-size: .94rem; line-height: 1.5; }
#main_contact .sidebar iframe { display: block; width: 100%; height: 190px; margin-top: 10px; border-radius: 10px; }
.sx-sidecta h3 { font-size: 1.08rem !important; }
.sx-sidecta p { margin: 0 0 14px !important; }

#main_contact .main_content {
    float: none; width: auto; min-height: 0; margin: 0; padding: 32px; position: static;
    background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow);
}
#main_contact .main_content > h3 { margin: 0 0 18px; padding: 0; background: none; border: 0; color: var(--ink); font-size: 1.25rem; font-weight: 800; line-height: 1.3; text-transform: none; }
body.article-page #main_contact .main_content > h3:first-child { display: none; }
.meta-article { display: none; }
.left_side, .right_side { float: none; width: auto; margin: 0; }
.left_side input, .right_side textarea { margin-bottom: 14px !important; }
.box_captcha { margin: 8px 0 18px; padding: 0; border: 0; }
.box_captcha label { display: block; margin-bottom: 8px; font-size: .92rem; font-weight: 600; }
#main_contact .main_content input[type="submit"] { float: none; display: block; width: 100%; max-width: 300px; }
.sx-contact-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 18px; }

.wrap-text-content { padding: 0; font-size: 1rem; line-height: 1.7; color: var(--ink); }
.wrap-text-content * { font-family: inherit !important; }
.wrap-text-content p, .wrap-text-content span, .wrap-text-content div, .wrap-text-content li, .wrap-text-content font, .wrap-text-content td {
    color: inherit !important; font-size: inherit !important; line-height: inherit !important; text-align: left !important;
}
.wrap-text-content p { margin: 0 0 16px; }
.wrap-text-content h1, .wrap-text-content h2, .wrap-text-content h3, .wrap-text-content h4,
.wrap-text-content h1 *, .wrap-text-content h2 *, .wrap-text-content h3 *, .wrap-text-content h4 * {
    color: var(--ink) !important; font-weight: 800 !important; line-height: 1.3 !important; text-align: left !important;
}
.wrap-text-content h1, .wrap-text-content h1 * { font-size: 1.5rem !important; }
.wrap-text-content h2, .wrap-text-content h2 * { font-size: 1.28rem !important; }
.wrap-text-content h3, .wrap-text-content h4, .wrap-text-content h3 *, .wrap-text-content h4 * { font-size: 1.1rem !important; }
.wrap-text-content h1, .wrap-text-content h2, .wrap-text-content h3, .wrap-text-content h4 { margin: 26px 0 10px !important; }
.wrap-text-content > :first-child { margin-top: 0 !important; }
.wrap-text-content img { max-width: 100%; height: auto; margin: 4px 0 12px 16px; border-radius: 10px; }
.wrap-text-content table { max-width: 100%; height: auto !important; }
.wrap-text-content a { color: var(--brand); }
.wrap-text-content ul, .wrap-text-content ol { margin: 0 0 16px; padding-left: 22px; }

/* Login, password, thank-you and other single-card templates */
.registration_second_workflow { padding-block: 40px 60px; background: var(--bg); }
[data-site] .registration_second_workflow .main_content { float: none; width: auto; margin: 0; padding: 0; background: none; border: 0; box-shadow: none; text-align: left; }
.sx-page { max-width: 960px; margin-inline: auto; }
.sx-page--narrow { max-width: 560px; }
.sx-page h1 { margin: 0 0 8px; color: var(--ink); font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2rem); font-weight: 800; line-height: 1.2; text-align: left; }
.sx-card { padding: 30px; background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); text-align: left; }
.sx-card h3 { margin: 0 0 8px; color: var(--ink); font-size: 1.2rem; font-weight: 800; line-height: 1.3; }
.sx-card p { margin: 0 0 14px; }
.sx-muted, .sx-card .sx-muted { color: var(--muted); font-size: .93rem; }
.sx-field { margin-bottom: 14px; }
.sx-field > label, .sx-field > span.sx-label { display: block; margin-bottom: 5px; font-size: .9rem; font-weight: 700; }
.sx-validator { display: block; margin-top: 4px; color: var(--err); font-size: .85rem; font-weight: 600; }
.sx-check { display: flex; align-items: center; gap: 9px; margin-bottom: 16px; font-size: .93rem; }
.sx-check input { width: 18px; height: 18px; min-height: 0; margin: 0; accent-color: var(--brand); }
.sx-check label { font-size: .93rem; }
.sx-card input[type="submit"] { display: block; width: 100%; }
.sx-error { display: block; margin-top: 12px; padding: 10px 14px; background: var(--err-soft); border-radius: 9px; color: var(--err); font-weight: 600; font-size: .93rem; }
.sx-status { display: grid; place-items: center; width: 64px; height: 64px; margin: 0 auto 14px; border-radius: 50%; font-size: 1.7rem; }
.sx-status--ok { background: #e6f5ec; color: var(--ok); }
.sx-status--err { background: var(--err-soft); color: var(--err); }
.sx-result { text-align: center; }
.sx-result h1, .sx-result .sx-result__title { display: block; margin: 0 0 12px; color: var(--ink); font-size: 1.5rem; font-weight: 800; line-height: 1.25; text-align: center; }
.sx-result__text { display: block; margin-bottom: 20px; color: var(--ink); font-size: 1rem; line-height: 1.65; text-align: left; }
.sx-result__actions a { display: inline-flex; }

/* Remaining legacy forms and tables stay readable and never overflow */
.registration_window, .inner_registration { box-sizing: border-box; max-width: 100%; }
.certificate_page_content_wrapper, .certificate_page_content { max-width: 100%; }

/* ---------------------------------------------------------------------------------------------
   Responsive
   --------------------------------------------------------------------------------------------- */
@media (max-width: 1000px) {
    .sx-proof { grid-template-columns: minmax(0, 1fr); }
    .sx-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #main_contact > .wrapper { grid-template-columns: minmax(0, 1fr); }
    #main_contact .main_content { order: -1; }
    .ck-footer__grid { grid-template-columns: 1fr 1fr; }
    .ck-footer__brand { grid-column: 1 / -1; }
}
@media (max-width: 820px) {
    .sx-plans, .sx-quotes, .sx-links { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
    .ck-section { padding-block: 32px; }
    .sx-logos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .sx-logos .item_portfolio { height: 86px; }
    .sx-steps { grid-template-columns: minmax(0, 1fr); }
    .sx-cta .ck-btn { width: 100%; }
    .sx-contact-fields { grid-template-columns: minmax(0, 1fr); }
    #main_contact .main_content { padding: 20px; }
    .wrap-text-content img { float: none !important; display: block; margin: 8px 0 14px; }
    .sx-card { padding: 20px; }
    .ck-footer__grid { grid-template-columns: minmax(0, 1fr); }
    [data-site] main input[type="text"], [data-site] main input[type="email"], [data-site] main input[type="password"], [data-site] main input[type="tel"], [data-site] main textarea, .sx-field input { font-size: 16px; }
    #main_contact .main_content input[type="submit"] { max-width: none; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { transition: none !important; animation: none !important; }
}

/* ---------------------------------------------------------------------------------------------
   Overrides of legacy rules with higher specificity
   --------------------------------------------------------------------------------------------- */
#main_contact .sidebar > ul > li { padding: 20px !important; margin: 0 !important; border-bottom: 1px solid var(--line) !important; }
#main_contact .sidebar li li { padding: 8px 0 !important; margin: 0 !important; height: auto !important; border-bottom: 1px solid var(--line) !important; background: none !important; list-style: none; }
#main_contact .sidebar li li:last-child { border-bottom: 0 !important; }
#main_contact .sidebar li li a, .item-bar-copyrights li a { display: inline !important; padding: 0 !important; background: none !important; color: var(--brand) !important; font-size: .92rem !important; line-height: 1.4 !important; }
#main_contact .sidebar h3, #main_contact .sidebar h4 { padding: 0 !important; margin: 0 0 8px !important; color: var(--ink) !important; text-transform: none !important; }
#main_contact .sidebar p { padding: 0 !important; margin: 0 0 4px !important; }
#main_contact .sidebar .sx-sidecta p { margin: 0 0 14px !important; }
#main_contact .sidebar a.ck-btn { display: flex; color: var(--ink); font-size: 1rem; font-weight: 700; }
#main_contact .sidebar a.ck-btn:hover { text-decoration: none; }
#main_contact .left_side, #main_contact .right_side { float: none; width: auto; margin: 0; padding: 0; }
#main_contact .main_content input[type="text"], #main_contact .main_content input[type="email"] { width: 100%; margin: 0 0 14px; padding: 10px 13px; border: 1.5px solid #c6d1de; border-radius: 9px; box-shadow: none; background: #fff; font-size: 1rem; }
#main_contact .main_content textarea { width: 100%; height: calc(100% - 14px); min-height: 170px; margin: 0; padding: 12px 13px; border: 1.5px solid #c6d1de; border-radius: 9px; box-shadow: none; background: #fff; font: inherit; font-size: 1rem; }
#main_contact .main_content .box_captcha { margin: 8px 0 18px; padding: 0; border: 0; }
#main_contact .main_content .box_captcha label { display: none; }
#main_contact .main_content input[type="submit"] {
    float: none; display: block; width: 100%; max-width: 300px; height: auto; margin: 0; padding: 14px 28px; border: 0; border-radius: 10px;
    background: var(--accent); box-shadow: 0 6px 16px rgba(240, 138, 5, .28); color: var(--ink); font: inherit; font-weight: 700; line-height: 1.2; text-align: center; text-indent: 0; text-shadow: none;
}
#main_contact .main_content input[type="submit"]:hover { background: var(--accent-deep); }
#main_contact p { font-size: inherit; }
[data-site] .sx-card input[type="submit"], [data-site] .sx-hero__form input[type="submit"] { display: block; width: 100%; }
.sx-links { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.sx-links .block_news:not(:has(li)) { display: none; }
.sx-quote { background: var(--card); border: 1px solid var(--line); box-shadow: var(--shadow); }
.sx-logos .item_portfolio { display: grid; place-items: center; position: static; float: none; }
.sx-logos .item_portfolio span { position: static; margin: 0 !important; max-width: 100%; }
@media (max-width: 1000px) {
    .sx-hero__grid { grid-template-columns: minmax(0, 1fr); gap: 14px; }
}
@media (max-width: 640px) {
    .ck-logo img { width: 170px; }
    .ck-header__row { min-height: 56px; }
    .ck-header__actions .ck-btn { padding: 7px 12px; font-size: .84rem; }
    .sx-hero__text, .sx-hero__band { display: none; }
    .sx-field--wide { grid-column: 1 / -1; }
    #main_contact .main_content input[type="submit"] { max-width: none; }
}

/* YouTube plans and quotation forms */
.sx-yt-head { max-width: var(--wrap); margin: 0 auto 18px; padding-inline: 20px; }
.sx-yt-head h1 { margin: 0 0 6px; color: var(--ink); font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2rem); font-weight: 800; line-height: 1.2; }
.sx-yt-head p { margin: 0; }
.registration_second_workflow .slider_registration { box-sizing: border-box; max-width: var(--wrap); height: auto; margin-inline: auto; padding: 0 20px; background: none; overflow-x: auto; }
.slider_registration > br { display: none; }
.slider_registration table { width: 100%; border-collapse: separate; border-spacing: 0; border: 1px solid var(--line) !important; border-radius: var(--radius); background: #fff; font-size: .95rem; overflow: hidden; }
.slider_registration th { padding: 12px 14px; background: var(--brand-deep) !important; color: #fff !important; font-size: .88rem; font-weight: 700; text-align: left; }
.slider_registration td { padding: 11px 14px; border-top: 1px solid var(--line); background: #fff !important; color: var(--ink) !important; }
.slider_registration td input[type="radio"] { width: 18px; height: 18px; margin: 0; accent-color: var(--brand); }
.registration_second_workflow .registration_window { margin: 20px 0 0; padding: 0; background: none; border: 0; }
.registration_second_workflow .inner_registration {
    box-sizing: border-box; display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 28px; width: auto; margin: 0; padding: 28px;
    background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow);
}
.registration_second_workflow .inner_registration::before, .registration_second_workflow .inner_registration::after { display: none; }
.inner_registration .left_part, .inner_registration .right_part { float: none; width: auto; margin: 0; padding: 0; border: 0; background: none; }
.registration_second_workflow .inner_registration .left_part h4, .registration_second_workflow .inner_registration .right_part h4 { margin: 0 0 14px; padding: 0; color: var(--ink); font-size: 1.15rem; font-weight: 800; line-height: 1.3; text-transform: none; }
.registration_second_workflow .left_part label { display: block; float: none; width: auto; height: auto; margin: 0 0 12px; padding: 0; color: var(--ink); font-size: .9rem; font-weight: 700; line-height: 1.4; }
.registration_second_workflow .left_part label:after { display: none; }
.registration_second_workflow .left_part input[type="text"], .registration_second_workflow .left_part input[type="email"], .registration_second_workflow .left_part input[type="text"].optional-input {
    float: none; width: 100%; height: auto; min-height: 48px; margin: 5px 0 0; padding: 10px 13px; border: 1.5px solid #c6d1de; border-radius: 9px; background: #fff; box-shadow: none; font: inherit; font-weight: 400;
}
.registration_second_workflow .terms_conditions { margin: 0 0 14px; color: var(--muted); font-size: .88rem; font-weight: 400; line-height: 1.5; text-align: left; }
.registration_second_workflow .inner_registration input[type="submit"] { float: none; display: block; width: 100%; height: auto; margin: 0 0 14px; padding: 14px 24px; background: var(--accent); color: var(--ink); text-indent: 0; }
.registration_second_workflow .inner_registration input[type="submit"]:hover { background: var(--accent-deep); }
.registration_second_workflow .inner_registration .world_map_block { margin: 14px 0 0; padding: 0; background: none; border: 0; }
.inner_registration .world_map_block .background_map { display: none; }
.registration_second_workflow .inner_registration .world_map_block p { position: static; width: auto; margin: 0; padding: 0; background: none; color: var(--muted); font-size: .88rem; line-height: 1.5; text-align: left; }
.inner_registration img { max-width: 100%; height: auto; }

/* The certificate is a fixed-layout document with its own typography */
.certificate-page { font-size: 12px; line-height: normal; }
.certificate_page_banner { background: var(--hero); }

/* Result pages, CMS tables, dead widgets */
.sx-result h1 { display: block; margin: 0 0 12px; font-size: 1.5rem; text-align: center; }
.wrap-text-content table { display: block; width: auto !important; overflow-x: auto; }
img[alt="Bookmark"] { display: none; }
@media (max-width: 820px) {
    .registration_second_workflow .inner_registration { grid-template-columns: minmax(0, 1fr); padding: 20px; }
}

/* CMS form controls build their label after the input: keep the label on top, two columns on wide screens */
.registration_second_workflow .left_part { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 18px; align-content: start; }
.registration_second_workflow .left_part > h4 { grid-column: 1 / -1; }
.registration_second_workflow .left_part > .clearfix { display: none; }
.registration_second_workflow .left_part label { display: flex; flex-direction: column; }
.registration_second_workflow .left_part label input { order: 1; }
@media (max-width: 640px) {
    .registration_second_workflow .left_part { grid-template-columns: minmax(0, 1fr); }
}

/* The promo tab sits in the page margin: below this width it would cover the content */
@media (max-width: 1500px) { .pop_up_promo { display: none; } }

/* Client access page */
.sx-login { display: flex; flex: 1 0 auto; align-items: center; justify-content: center; padding: clamp(20px, 5vh, 56px) 20px; background: var(--bg); }
main:has(.sx-login) { display: flex; flex-direction: column; }
.sx-login__inner { width: 100%; max-width: 1000px; }
.sx-login__card { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); overflow: hidden; background: var(--card); border-radius: 20px; box-shadow: 0 2px 6px rgba(18, 38, 63, .08), 0 24px 56px rgba(18, 38, 63, .16); }
.sx-login__side { display: flex; flex-direction: column; padding: 40px; background: var(--hero); color: #e4eefa; }
.sx-login__emblem { width: 76px; height: 76px; margin-bottom: 18px; padding: 7px; background: #fff; border-radius: 50%; box-shadow: 0 6px 18px rgba(8, 26, 54, .3); }
.sx-login__side h1 { margin: 0; color: #fff; font-size: 2rem; font-weight: 800; line-height: 1.15; letter-spacing: -.01em; }
.sx-login__lead { margin: 10px 0 0; font-size: 1.02rem; line-height: 1.5; }
.sx-login__benefits { display: grid; gap: 10px; margin: 22px 0 0; padding: 0; list-style: none; font-weight: 600; }
.sx-login__benefits li { display: flex; gap: 10px; align-items: flex-start; margin: 0; padding: 0; background: none; line-height: 1.4; }
.sx-login__benefits .ck-i { margin-top: 1px; color: #ffc069; }
.sx-login__help { margin-top: auto; padding: 16px 18px; background: rgba(255, 255, 255, .1); border-radius: 12px; font-size: .88rem; line-height: 1.5; }
.sx-login__benefits + .sx-login__help { margin-top: 26px; }
.sx-login__help h4 { margin: 0 0 6px; color: #fff; font-size: .95rem; font-weight: 700; }
.sx-login__help p { margin: 0; }
.sx-login__form { padding: 40px; }
.sx-login__form h2 { margin: 0 0 20px; color: var(--ink); font-size: 1.4rem; font-weight: 800; line-height: 1.25; }
.sx-login__form .sx-field label { display: block; margin-bottom: 6px; font-size: .9rem; font-weight: 700; }
.sx-inputwrap { position: relative; }
.sx-inputwrap > .ck-i { position: absolute; top: 15px; left: 14px; color: var(--muted); pointer-events: none; }
[data-site] main .sx-inputwrap input[type="text"], [data-site] main .sx-inputwrap input[type="password"] { min-height: 50px; padding-left: 44px; padding-right: 46px; }
.sx-pass-toggle { position: absolute; top: 5px; right: 5px; display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 0; border-radius: 8px; background: none; color: var(--muted); cursor: pointer; }
.sx-pass-toggle:hover, .sx-pass-toggle[aria-pressed="true"] { background: var(--brand-soft); color: var(--brand); }
.sx-pass-toggle[hidden] { display: none; }
.sx-login__row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; margin: 4px 0 18px; font-size: .9rem; }
.sx-login__row .sx-check { display: inline-flex; margin: 0; }

.sx-login__row a { color: var(--brand); font-weight: 600; text-underline-offset: 3px; }
[data-site] .sx-login__form input[type="submit"] { display: block; width: 100%; padding: 15px 24px; font-size: 1.05rem; }
.sx-login__new { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--line); }
.sx-login__new p { margin: 0 0 10px; color: var(--muted); font-size: .92rem; text-align: center; }
.sx-login__note { margin: 14px 0 0; color: var(--muted); font-size: .8rem; line-height: 1.5; }
.sx-login__errslot .sx-error { margin: 0 0 16px; }
@media (max-width: 860px) {
    .sx-login__card { grid-template-columns: minmax(0, 1fr); }
    .sx-login__side { padding: 24px; }
    .sx-login__form { padding: 24px; }
    .sx-login__emblem { width: 56px; height: 56px; padding: 5px; margin-bottom: 10px; }
    .sx-login__side h1 { font-size: 1.6rem; }
    .sx-login__benefits, .sx-login__help { display: none; }
    .sx-login__lead { margin-top: 6px; font-size: .95rem; }
}


