html {
    box-sizing: border-box;
}

*,
*::before,
*::after {
    box-sizing: inherit;
}

body {
    margin: 0;
    padding: 0;
    -webkit-text-size-adjust: 100%;
}

.sitehead {
    position: relative;
    background: #ffffff;
    font-family: 'Raleway', sans-serif;
    overflow: hidden;
}

.sitehead-accent {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 8px;
    background: linear-gradient(180deg, #45C9D0 0%, #4C2ED5 100%);
    z-index: 1;
}

.sitehead-topbar {
    background: linear-gradient(90deg, #4C2ED5 0%, #45C9D0 100%);
    padding: 8px 56px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 28px;
}

.sitehead-topbar a {
    color: #ffffff;
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.02em;
    text-decoration: none;
    line-height: 1.4;
    transition: opacity 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.sitehead-topbar a:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(69, 201, 208, 0.5);
    border-radius: 3px;
}

.sitehead-topbar a:hover {
    opacity: 0.8;
}

.sitehead-topbar-sep {
    width: 1px;
    height: 14px;
    background: rgba(255, 255, 255, 0.35);
    display: inline-block;
}

.sitehead-body {
    max-width: 1366px;
    margin: 0 auto;
    padding: 28px 56px 0 56px;
    display: flex;
    align-items: center;
    gap: 28px;
    position: relative;
    z-index: 2;
}

.sitehead-logohold {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 72px;
    height: 72px;
    border: 2px solid #D9DFE4;
    border-radius: 10px;
    box-shadow: 1px 4px 22px 0 rgba(69, 201, 208, 0.08);
    background: #ffffff;
    padding: 8px;
}

.sitehead-logohold img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

.sitehead-brand {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.sitehead-brandname {
    font-size: 28px;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: 0.01em;
    color: #1b1340;
}

.sitehead-brandname span {
    color: #45C9D0;
}

.sitehead-tagline {
    font-size: 13px;
    font-weight: 500;
    color: #4C2ED5;
    letter-spacing: 0.02em;
    line-height: 1.4;
}

.sitehead-navrow {
    max-width: 1366px;
    margin: 0 auto;
    padding: 0 56px;
    position: relative;
    z-index: 2;
}

.sitehead-navlist {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 4px;
    border-top: 2px solid #D9DFE4;
    margin-top: 16px;
}

.sitehead-navlist li {
    position: relative;
}

.sitehead-navlist li a {
    display: flex;
    align-items: center;
    padding: 16px 16px;
    font-family: 'Raleway', sans-serif;
    font-size: 15px;
    font-weight: 600;
    color: #1b1340;
    text-decoration: none;
    letter-spacing: 0.01em;
    line-height: 1.4;
    border-bottom: 3px solid transparent;
    transition: color 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94), border-color 0.45s ease-in-out;
}

.sitehead-navlist li a:hover {
    color: #4C2ED5;
    border-bottom-color: #45C9D0;
}

.sitehead-navlist li a:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(69, 201, 208, 0.5);
    border-radius: 3px;
}

.sitehead-navlist li a.active {
    color: #4C2ED5;
    border-bottom-color: #4C2ED5;
}

@media (max-width: 1024px) {
    .sitehead-topbar {
        padding: 8px 28px;
    }

    .sitehead-body {
        padding: 28px 28px 0 28px;
    }

    .sitehead-navrow {
        padding: 0 28px;
    }

    .sitehead-navlist li a {
        font-size: 13px;
        padding: 16px 8px;
    }
}

@media (max-width: 640px) {
    .sitehead-topbar {
        padding: 8px 16px;
        gap: 16px;
    }

    .sitehead-body {
        padding: 16px 16px 0 16px;
        gap: 16px;
    }

    .sitehead-brandname {
        font-size: 21px;
    }

    .sitehead-navrow {
        padding: 0 16px;
    }

    .sitehead-navlist li a {
        font-size: 13px;
        padding: 12px 8px;
    }
}

.sitefoot {
    background: #1b1340;
    font-family: 'Raleway', sans-serif;
    position: relative;
}

.sitefoot-topline {
    height: 5px;
    background: linear-gradient(90deg, #45C9D0 0%, #4C2ED5 100%);
}

.sitefoot-inner {
    max-width: 1366px;
    margin: 0 auto;
    padding: 56px 56px 28px 56px;
    display: grid;
    grid-template-columns: 220px 1fr 1fr 1fr;
    gap: 56px;
}

.sitefoot-brand {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
}

.sitefoot-logohold {
    width: 68px;
    height: 68px;
    border: 2px solid rgba(69, 201, 208, 0.4);
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.06);
    box-shadow: 1px 4px 22px 0 rgba(76, 46, 213, 0.08);
    padding: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.sitefoot-logohold img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

.sitefoot-compname {
    font-size: 17px;
    font-weight: 700;
    color: #ffffff;
    letter-spacing: 0.01em;
    line-height: 1.4;
}

.sitefoot-desc {
    font-size: 13px;
    font-weight: 400;
    color: #b8bfd4;
    line-height: 1.7;
    letter-spacing: 0.01em;
}

.sitefoot-since {
    display: inline-block;
    font-size: 13px;
    font-weight: 600;
    color: #45C9D0;
    letter-spacing: 0.02em;
    border: 1px solid rgba(69, 201, 208, 0.35);
    border-radius: 32px;
    padding: 4px 16px;
}

.sitefoot-block {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.sitefoot-blockhead {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: #45C9D0;
    text-transform: uppercase;
    line-height: 1.4;
    padding-bottom: 8px;
    border-bottom: 1px solid rgba(69, 201, 208, 0.2);
}

.sitefoot-linklist {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.sitefoot-linklist li a {
    font-size: 15px;
    font-weight: 500;
    color: #d0d5e8;
    text-decoration: none;
    letter-spacing: 0.01em;
    line-height: 1.7;
    transition: color 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.sitefoot-linklist li a:hover {
    color: #45C9D0;
}

.sitefoot-linklist li a:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(69, 201, 208, 0.5);
    border-radius: 3px;
}

.sitefoot-contactitem {
    font-size: 15px;
    font-weight: 400;
    color: #d0d5e8;
    line-height: 1.7;
    letter-spacing: 0.01em;
}

.sitefoot-contactitem a {
    color: #d0d5e8;
    text-decoration: none;
    transition: color 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.sitefoot-contactitem a:hover {
    color: #45C9D0;
}

.sitefoot-contactitem a:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(69, 201, 208, 0.5);
    border-radius: 3px;
}

.sitefoot-contactlabel {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: #7a84a8;
    letter-spacing: 0.02em;
    margin-bottom: 4px;
}

.sitefoot-bottom {
    max-width: 1366px;
    margin: 0 auto;
    padding: 16px 56px 28px 56px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    border-top: 1px solid rgba(255, 255, 255, 0.07);
    flex-wrap: wrap;
}

.sitefoot-copy {
    font-size: 13px;
    font-weight: 400;
    color: #7a84a8;
    letter-spacing: 0.01em;
    line-height: 1.7;
}

.sitefoot-legallinks {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
}

.sitefoot-legallinks li a {
    font-size: 13px;
    font-weight: 500;
    color: #7a84a8;
    text-decoration: none;
    letter-spacing: 0.01em;
    transition: color 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.sitefoot-legallinks li a:hover {
    color: #45C9D0;
}

.sitefoot-legallinks li a:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(69, 201, 208, 0.5);
    border-radius: 3px;
}

@media (max-width: 1024px) {
    .sitefoot-inner {
        grid-template-columns: 1fr 1fr;
        padding: 56px 28px 28px 28px;
        gap: 28px;
    }

    .sitefoot-bottom {
        padding: 16px 28px 28px 28px;
    }
}

@media (max-width: 640px) {
    .sitefoot-inner {
        grid-template-columns: 1fr;
        padding: 28px 16px 16px 16px;
        gap: 28px;
    }

    .sitefoot-bottom {
        padding: 16px 16px 28px 16px;
        flex-direction: column;
        align-items: flex-start;
    }
}

.cookiebar {
    position: fixed;
    top: 28px;
    left: 28px;
    width: 380px;
    max-width: calc(100vw - 56px);
    background: #ffffff;
    border-radius: 10px;
    box-shadow: 1px 8px 48px 0 rgba(76, 46, 213, 0.11);
    border: 2px solid #D9DFE4;
    z-index: 4000;
    font-family: 'Raleway', sans-serif;
    display: none;
}

.cookiebar.visible {
    display: block;
}

.cookiebar-inner {
    padding: 28px;
}

.cookiebar-desc {
    font-size: 13px;
    font-weight: 400;
    color: #3a3560;
    line-height: 1.7;
    letter-spacing: 0.01em;
    margin-bottom: 8px;
}

.cookiebar-desc ul {
    margin: 8px 0 0 16px;
    padding: 0;
}

.cookiebar-desc ul li {
    font-size: 13px;
    color: #3a3560;
    line-height: 1.7;
}

.cookiebar-hdl {
    font-size: 17px;
    font-weight: 700;
    color: #1b1340;
    line-height: 1.4;
    letter-spacing: 0.01em;
    margin-bottom: 16px;
}

.cookiebar-panel {
    background: #f4f6f9;
    border-radius: 3px;
    padding: 16px;
    margin-top: 16px;
}

.cookiebar-panel-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.cookiebar-panel-toggle span {
    font-size: 13px;
    font-weight: 600;
    color: #1b1340;
    letter-spacing: 0.01em;
}

.cookiebar-switch {
    position: relative;
    width: 40px;
    height: 22px;
    flex-shrink: 0;
}

.cookiebar-switch input {
    opacity: 0;
    width: 0;
    height: 0;
    position: absolute;
}

.cookiebar-switchtrack {
    position: absolute;
    inset: 0;
    background: #D9DFE4;
    border-radius: 32px;
    cursor: pointer;
    transition: background 0.45s ease-in-out;
}

.cookiebar-switchtrack::after {
    content: '';
    position: absolute;
    left: 3px;
    top: 3px;
    width: 16px;
    height: 16px;
    background: #ffffff;
    border-radius: 32px;
    transition: transform 0.45s ease-in-out;
}

.cookiebar-switch input:checked+.cookiebar-switchtrack {
    background: #45C9D0;
}

.cookiebar-switch input:checked+.cookiebar-switchtrack::after {
    transform: translateX(18px);
}

.cookiebar-switch input:focus+.cookiebar-switchtrack {
    box-shadow: 0 0 0 3px rgba(69, 201, 208, 0.5);
}

.cookiebar-btns {
    display: flex;
    gap: 8px;
    margin-top: 16px;
}

.cookiebar-btn {
    flex: 1 1 0;
    padding: 12px 8px;
    font-family: 'Raleway', sans-serif;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.02em;
    border-radius: 3px;
    cursor: pointer;
    border: 2px solid #4C2ED5;
    line-height: 1.4;
    transition: background 0.45s cubic-bezier(0.25, 0.46, 0.45, 0.94), color 0.45s cubic-bezier(0.25, 0.46, 0.45, 0.94), box-shadow 0.5s ease-in-out;
}

.cookiebar-btn.accept {
    background: #4C2ED5;
    color: #ffffff;
}

.cookiebar-btn.accept:hover {
    background: #3a22a8;
    border-color: #3a22a8;
    box-shadow: 1px 4px 22px 0 rgba(76, 46, 213, 0.08);
}

.cookiebar-btn.reject {
    background: #ffffff;
    color: #4C2ED5;
}

.cookiebar-btn.reject:hover {
    background: #f0eeff;
    box-shadow: 1px 1px 4px 0 rgba(76, 46, 213, 0.06);
}

.cookiebar-btn:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(69, 201, 208, 0.5);
}

.cookiebar-expand-btn {
    background: none;
    border: none;
    font-family: 'Raleway', sans-serif;
    font-size: 13px;
    font-weight: 600;
    color: #4C2ED5;
    cursor: pointer;
    padding: 4px 0;
    letter-spacing: 0.01em;
    margin-top: 8px;
    display: block;
    transition: color 0.45s ease-in-out;
}

.cookiebar-expand-btn:hover {
    color: #45C9D0;
}

.cookiebar-expand-btn:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(69, 201, 208, 0.5);
    border-radius: 3px;
}

.cookiebar-extrapanel {
    display: none;
    margin-top: 16px;
}

.cookiebar-extrapanel.open {
    display: block;
}

.cookiebar-necessary {
    font-size: 13px;
    color: #7a84a8;
    line-height: 1.7;
    margin-top: 8px;
    letter-spacing: 0.01em;
}

.settings-trigger {
    position: fixed;
    bottom: 28px;
    left: 28px;
    width: 44px;
    height: 44px;
    background: #4C2ED5;
    border-radius: 10px;
    border: 2px solid #4C2ED5;
    cursor: pointer;
    z-index: 3999;
    display: none;
    align-items: center;
    justify-content: center;
    box-shadow: 1px 4px 22px 0 rgba(76, 46, 213, 0.08);
    transition: background 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94), box-shadow 0.5s ease-in-out;
}

.settings-trigger:hover {
    background: #3a22a8;
    box-shadow: 1px 8px 48px 0 rgba(76, 46, 213, 0.11);
}

.settings-trigger:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(69, 201, 208, 0.5);
}

.settings-trigger svg {
    width: 20px;
    height: 20px;
    fill: #ffffff;
    display: block;
}

.settings-trigger.shown {
    display: flex;
}

.legal-main {
    max-width: 1366px;
    margin: 0 auto;
    padding: 56px 28px;
}

.legal-main h1 {
    font-size: 50px;
    line-height: 1.1;
    letter-spacing: 0.01em;
    color: #1b1b2e;
    margin-bottom: 28px;
    margin-top: 0;
}

.legal-main h2 {
    font-size: 38px;
    line-height: 1.1;
    letter-spacing: 0.01em;
    color: #1b1b2e;
    margin-top: 56px;
    margin-bottom: 16px;
    padding-bottom: 8px;
    border-bottom: 2px solid #45C9D0;
    border-left: 5px solid #4C2ED5;
    padding-left: 16px;
}

.legal-main h3 {
    font-size: 28px;
    line-height: 1.4;
    letter-spacing: 0.01em;
    color: #1b1b2e;
    margin-top: 28px;
    margin-bottom: 16px;
}

.legal-main h4 {
    font-size: 21px;
    line-height: 1.4;
    letter-spacing: 0.02em;
    color: #2a2a40;
    margin-top: 28px;
    margin-bottom: 8px;
}

.legal-main h5 {
    font-size: 17px;
    line-height: 1.4;
    letter-spacing: 0.02em;
    color: #2a2a40;
    margin-top: 16px;
    margin-bottom: 8px;
}

.legal-main h6 {
    font-size: 15px;
    line-height: 1.4;
    letter-spacing: 0.02em;
    color: #3a3a55;
    margin-top: 16px;
    margin-bottom: 8px;
    text-transform: uppercase;
}

.legal-main p {
    font-size: 17px;
    line-height: 1.7;
    letter-spacing: 0.01em;
    color: #2a2a40;
    margin-top: 0;
    margin-bottom: 16px;
    max-width: 72ch;
}

.legal-main strong,
.legal-main b {
    font-weight: 700;
    color: #1b1b2e;
}

.legal-main a {
    color: #4C2ED5;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    transition: color 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94), text-decoration-color 0.45s ease-in-out;
    text-decoration-color: rgba(76, 46, 213, 0.4);
}

.legal-main a:hover {
    color: #45C9D0;
    text-decoration-color: rgba(69, 201, 208, 0.7);
}

.legal-main hr {
    border: none;
    border-top: 1px solid #D9DFE4;
    margin-top: 56px;
    margin-bottom: 56px;
    box-shadow: inset 0 4px 8px 0 rgba(69, 201, 208, 0.06);
}

.legal-main div {
    font-size: 15px;
    line-height: 1.7;
    letter-spacing: 0.01em;
    color: #2a2a40;
}

.legal-main div[class] {
    padding: 16px 28px;
    background: #f4f6f8;
    border-radius: 10px;
    border-left: 4px solid #45C9D0;
    border-top: 1px solid #D9DFE4;
    margin-bottom: 16px;
    box-shadow: 1px 4px 22px 0 rgba(69, 201, 208, 0.08);
}

@media (max-width: 1024px) {
    .legal-main {
        padding: 56px 28px;
    }

    .legal-main h1 {
        font-size: 38px;
    }

    .legal-main h2 {
        font-size: 28px;
    }

    .legal-main h3 {
        font-size: 21px;
    }
}

@media (max-width: 640px) {
    .legal-main {
        padding: 28px 16px;
    }

    .legal-main h1 {
        font-size: 28px;
    }

    .legal-main h2 {
        font-size: 21px;
        margin-top: 28px;
    }

    .legal-main h3 {
        font-size: 17px;
    }

    .legal-main h4,
    .legal-main h5,
    .legal-main h6 {
        font-size: 15px;
    }

    .legal-main p {
        font-size: 15px;
    }

    .legal-main hr {
        margin-top: 28px;
        margin-bottom: 28px;
    }
}

.lpdet {
    max-width: 1366px;
    margin: 0 auto;
    padding: 0;
    overflow: hidden;
}

.lpdet .titblock {
    background: #111827;
    padding: 56px 56px 56px 56px;
    position: relative;
}

.lpdet .titblock::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(69, 201, 208, 0.06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(69, 201, 208, 0.06) 1px, transparent 1px);
    background-size: 48px 48px;
    pointer-events: none;
}

.lpdet .titblock::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, #45C9D0, transparent 40%, #4C2ED5);
}

.lpdet .titblock-top {
    display: flex;
    flex-direction: row;
    gap: 56px;
    align-items: flex-start;
    position: relative;
    z-index: 1;
}

.lpdet .titblock-img {
    flex: 0 0 420px;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 1px 8px 48px 0 rgba(76, 46, 213, 0.11);
}

.lpdet .titblock-img img {
    width: 100%;
    display: block;
    object-fit: contain;
    max-width: 100%;
    border-radius: 10px;
    filter: brightness(0.88) contrast(1.05);
}

.lpdet .titblock-text {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.lpdet .titblock-text h1 {
    font-size: 38px;
    line-height: 1.1;
    letter-spacing: 0.01em;
    background: linear-gradient(120deg, #45C9D0 0%, rgba(69, 201, 208, 0.3) 45%, #4C2ED5 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    margin: 0;
}

.lpdet .titblock-meta {
    display: flex;
    flex-direction: row;
    gap: 16px;
    flex-wrap: wrap;
    align-items: center;
}

.lpdet .metabadge {
    font-size: 13px;
    line-height: 1.4;
    letter-spacing: 0.02em;
    padding: 4px 16px;
    border-radius: 3px;
    border: 1.5px solid rgba(69, 201, 208, 0.35);
    color: #45C9D0;
    background: rgba(69, 201, 208, 0.08);
}

.lpdet .metabadge.dur {
    border-color: rgba(76, 46, 213, 0.35);
    color: #a89cf7;
    background: rgba(76, 46, 213, 0.1);
}

.lpdet .titblock-desc {
    font-size: 15px;
    line-height: 1.7;
    color: #c8d0db;
    letter-spacing: 0.01em;
    margin: 0;
}

.lpdet .titblock-actions {
    display: flex;
    flex-direction: row;
    gap: 16px;
    align-items: center;
    flex-wrap: wrap;
    margin-top: 8px;
}

.lpdet .btn-enroll {
    font-size: 15px;
    letter-spacing: 0.02em;
    padding: 16px 28px;
    border-radius: 3px;
    border: 2.5px solid #45C9D0;
    background: transparent;
    color: #45C9D0;
    cursor: pointer;
    position: relative;
    transition: color 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94), background 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    outline: none;
}

.lpdet .btn-enroll::after {
    content: '';
    position: absolute;
    inset: 4px;
    border: 1.5px solid transparent;
    border-radius: 3px;
    transition: border-color 0.55s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.lpdet .btn-enroll:hover {
    background: rgba(69, 201, 208, 0.12);
    color: #fff;
}

.lpdet .btn-enroll:hover::after {
    border-color: rgba(69, 201, 208, 0.5);
}

.lpdet .btn-enroll:focus {
    outline: 2px solid #45C9D0;
    outline-offset: 3px;
}

.lpdet .btn-copy {
    font-size: 13px;
    letter-spacing: 0.02em;
    padding: 16px 28px;
    border-radius: 3px;
    border: 2px solid rgba(217, 223, 228, 0.3);
    background: transparent;
    color: #D9DFE4;
    cursor: pointer;
    position: relative;
    transition: border-color 0.5s ease-in-out, color 0.5s ease-in-out;
    outline: none;
}

.lpdet .btn-copy::after {
    content: '';
    position: absolute;
    inset: 4px;
    border: 1px solid transparent;
    border-radius: 3px;
    transition: border-color 0.6s ease-in-out;
}

.lpdet .btn-copy:hover {
    border-color: rgba(217, 223, 228, 0.7);
    color: #fff;
}

.lpdet .btn-copy:hover::after {
    border-color: rgba(217, 223, 228, 0.3);
}

.lpdet .btn-copy:focus {
    outline: 2px solid #D9DFE4;
    outline-offset: 3px;
}

.lpdet .pricebox {
    background: rgba(76, 46, 213, 0.12);
    border: 1.5px solid rgba(76, 46, 213, 0.3);
    border-radius: 10px;
    padding: 16px 28px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.lpdet .pricebox-amount {
    font-size: 28px;
    line-height: 1.1;
    letter-spacing: 0.01em;
    color: #fff;
    font-weight: 700;
}

.lpdet .pricebox-terms {
    font-size: 13px;
    line-height: 1.4;
    color: #a89cf7;
    letter-spacing: 0.02em;
}

.lpdet .pricebox-note {
    font-size: 13px;
    line-height: 1.4;
    color: rgba(217, 223, 228, 0.6);
    letter-spacing: 0.01em;
}

.lpdet .detailblock {
    display: flex;
    flex-direction: row;
    gap: 56px;
    padding: 56px;
    background: #fff;
    border-top: 3px dotted #D9DFE4;
    border-bottom: 3px dotted #D9DFE4;
}

.lpdet .detailblock-main {
    flex: 1 1 0;
    min-width: 0;
}

.lpdet .detailblock-main h2 {
    font-size: 28px;
    line-height: 1.1;
    letter-spacing: 0.01em;
    background: linear-gradient(110deg, #4C2ED5 0%, rgba(76, 46, 213, 0.4) 50%, #45C9D0 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    margin: 0 0 16px 0;
}

.lpdet .detailblock-main h3 {
    font-size: 21px;
    line-height: 1.4;
    letter-spacing: 0.01em;
    color: #1d1d2e;
    margin: 28px 0 8px 0;
}

.lpdet .detailblock-main p {
    font-size: 15px;
    line-height: 1.7;
    color: #2e2e42;
    letter-spacing: 0.01em;
    margin: 0 0 16px 0;
}

.lpdet .detailblock-main ul {
    margin: 0 0 16px 0;
    padding: 0 0 0 16px;
    list-style: none;
}

.lpdet .detailblock-main ul li {
    font-size: 15px;
    line-height: 1.7;
    color: #2e2e42;
    letter-spacing: 0.01em;
    padding-left: 16px;
    position: relative;
    margin-bottom: 8px;
}

.lpdet .detailblock-main ul li::before {
    content: '–';
    position: absolute;
    left: 0;
    color: #45C9D0;
}

.lpdet .detailblock-main ol {
    margin: 0 0 16px 0;
    padding: 0 0 0 28px;
}

.lpdet .detailblock-main ol li {
    font-size: 15px;
    line-height: 1.7;
    color: #2e2e42;
    letter-spacing: 0.01em;
    margin-bottom: 8px;
}

.lpdet .detailblock-main dl {
    margin: 0 0 16px 0;
}

.lpdet .detailblock-main dt {
    font-size: 15px;
    line-height: 1.4;
    color: #1d1d2e;
    letter-spacing: 0.01em;
    font-weight: 700;
    margin-top: 8px;
}

.lpdet .detailblock-main dd {
    font-size: 15px;
    line-height: 1.7;
    color: #2e2e42;
    letter-spacing: 0.01em;
    margin: 0 0 4px 16px;
}

.lpdet .detailblock-main blockquote {
    border-top: 2px solid #45C9D0;
    border-bottom: 2px solid #45C9D0;
    margin: 16px 0;
    padding: 16px 28px;
    background: rgba(69, 201, 208, 0.05);
    border-radius: 3px;
}

.lpdet .detailblock-main blockquote p {
    font-size: 17px;
    line-height: 1.7;
    color: #1d1d2e;
    margin: 0;
}

.lpdet .detailblock-main figure {
    margin: 16px 0;
}

.lpdet .detailblock-main figcaption {
    font-size: 13px;
    line-height: 1.4;
    color: #6e7a8a;
    letter-spacing: 0.02em;
    margin-top: 8px;
}

.lpdet .detailblock-main details {
    border: 1.5px solid #D9DFE4;
    border-radius: 3px;
    padding: 8px 16px;
    margin-bottom: 8px;
}

.lpdet .detailblock-main summary {
    font-size: 15px;
    line-height: 1.4;
    color: #1d1d2e;
    cursor: pointer;
    letter-spacing: 0.01em;
    padding: 8px 0;
}

.lpdet .detailblock-main abbr {
    text-decoration: underline dotted #45C9D0;
    cursor: help;
}

.lpdet .detailblock-aside {
    flex: 0 0 280px;
    display: flex;
    flex-direction: column;
    gap: 28px;
}

.lpdet .progblock {
    background: linear-gradient(160deg, #f5f7fa 0%, rgba(76, 46, 213, 0.04) 100%);
    border-radius: 10px;
    padding: 28px;
    box-shadow: 1px 4px 22px 0 rgba(76, 46, 213, 0.08);
}

.lpdet .progblock h4 {
    font-size: 17px;
    line-height: 1.4;
    letter-spacing: 0.01em;
    color: #1d1d2e;
    margin: 0 0 16px 0;
}

.lpdet .progblock p {
    font-size: 15px;
    line-height: 1.7;
    color: #2e2e42;
    letter-spacing: 0.01em;
    margin: 0 0 8px 0;
}

.lpdet .progblock h2 {
    font-size: 21px;
    line-height: 1.4;
    letter-spacing: 0.01em;
    color: #1d1d2e;
    margin: 16px 0 8px 0;
}

.lpdet .progblock ul {
    margin: 0 0 8px 0;
    padding: 0 0 0 16px;
    list-style: none;
}

.lpdet .progblock ul li {
    font-size: 15px;
    line-height: 1.7;
    color: #2e2e42;
    letter-spacing: 0.01em;
    padding-left: 16px;
    position: relative;
    margin-bottom: 4px;
}

.lpdet .progblock ul li::before {
    content: '–';
    position: absolute;
    left: 0;
    color: #4C2ED5;
}

.lpdet .progblock em {
    font-style: italic;
    color: #4C2ED5;
}

.lpdet .progblock cite {
    font-size: 13px;
    color: #6e7a8a;
    letter-spacing: 0.02em;
}

.lpdet .progblock blockquote {
    border-top: 2px solid #4C2ED5;
    border-bottom: 2px solid #4C2ED5;
    margin: 8px 0;
    padding: 8px 16px;
    background: rgba(76, 46, 213, 0.05);
    border-radius: 3px;
}

.lpdet .progblock dl {
    margin: 0 0 8px 0;
}

.lpdet .progblock dt {
    font-size: 15px;
    line-height: 1.4;
    color: #1d1d2e;
    font-weight: 700;
    margin-top: 8px;
}

.lpdet .progblock dd {
    font-size: 15px;
    line-height: 1.7;
    color: #2e2e42;
    margin: 0 0 4px 16px;
}

.lpdet .progblock figure {
    margin: 8px 0;
}

.lpdet .progblock figcaption {
    font-size: 13px;
    line-height: 1.4;
    color: #6e7a8a;
    margin-top: 4px;
}

.lpdet .statcard {
    background: #fff;
    border-radius: 10px;
    padding: 28px;
    box-shadow: 1px 1px 4px 0 rgba(69, 201, 208, 0.06);
    border-top: 3px solid #45C9D0;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.lpdet .statcard h5 {
    font-size: 13px;
    line-height: 1.4;
    letter-spacing: 0.02em;
    color: #6e7a8a;
    margin: 0;
    text-transform: uppercase;
}

.lpdet .statrow {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
}

.lpdet .statnum {
    font-size: 21px;
    line-height: 1.1;
    letter-spacing: 0.01em;
    color: #1d1d2e;
    font-weight: 700;
}

.lpdet .statlabel {
    font-size: 13px;
    line-height: 1.4;
    color: #6e7a8a;
    letter-spacing: 0.02em;
}

.lpdet .progressbar-wrap {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.lpdet .pbar-item {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.lpdet .pbar-label {
    font-size: 13px;
    line-height: 1.4;
    color: #2e2e42;
    letter-spacing: 0.01em;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
}

.lpdet .pbar-track {
    height: 6px;
    background: #D9DFE4;
    border-radius: 3px;
    overflow: hidden;
}

.lpdet .pbar-fill {
    height: 100%;
    border-radius: 3px;
    background: linear-gradient(90deg, #45C9D0, #4C2ED5);
    transition: width 0.65s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.lpdet .notchblock {
    position: relative;
    padding: 28px 28px 28px 36px;
    background: rgba(76, 46, 213, 0.05);
    border-radius: 3px;
    margin-top: 16px;
}

.lpdet .notchblock::before {
    content: '';
    position: absolute;
    left: 0;
    top: 8px;
    bottom: 8px;
    width: 4px;
    background: #4C2ED5;
    border-radius: 3px;
}

.lpdet .notchblock p {
    font-size: 15px;
    line-height: 1.7;
    color: #2e2e42;
    letter-spacing: 0.01em;
    margin: 0;
}

.lpdet .accentbg {
    background: #4C2ED5;
    padding: 56px;
    display: flex;
    flex-direction: row;
    gap: 56px;
    align-items: center;
    position: relative;
    overflow: hidden;
}

.lpdet .accentbg::before {
    content: '';
    position: absolute;
    top: -40px;
    right: -40px;
    width: 200px;
    height: 200px;
    border-radius: 50%;
    background: rgba(69, 201, 208, 0.12);
    pointer-events: none;
    animation: flickeraccent 4s ease-in-out infinite;
}

.lpdet .accentbg::after {
    content: '';
    position: absolute;
    bottom: -60px;
    left: 20%;
    width: 300px;
    height: 300px;
    border-radius: 50%;
    background: rgba(69, 201, 208, 0.07);
    pointer-events: none;
    animation: flickeraccent 6s ease-in-out infinite 2s;
}

@keyframes flickeraccent {

    0%,
    100% {
        opacity: 0.4;
    }

    50% {
        opacity: 1;
    }
}

.lpdet .accentbg-text {
    flex: 1 1 0;
    position: relative;
    z-index: 1;
}

.lpdet .accentbg-text h3 {
    font-size: 28px;
    line-height: 1.1;
    letter-spacing: 0.01em;
    color: #fff;
    margin: 0 0 16px 0;
}

.lpdet .accentbg-text p {
    font-size: 15px;
    line-height: 1.7;
    color: rgba(255, 255, 255, 0.8);
    letter-spacing: 0.01em;
    margin: 0;
}

.lpdet .accentbg-price {
    flex: 0 0 auto;
    position: relative;
    z-index: 1;
    background: rgba(255, 255, 255, 0.1);
    border: 2px solid rgba(255, 255, 255, 0.25);
    border-radius: 10px;
    padding: 28px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 220px;
}

.lpdet .accentbg-price .bigprice {
    font-size: 38px;
    line-height: 1.1;
    letter-spacing: 0.01em;
    color: #45C9D0;
    font-weight: 700;
}

.lpdet .accentbg-price .priceterm {
    font-size: 13px;
    line-height: 1.4;
    color: rgba(255, 255, 255, 0.7);
    letter-spacing: 0.02em;
}

.lpdet .accentbg-price .btn-register {
    margin-top: 8px;
    font-size: 15px;
    letter-spacing: 0.02em;
    padding: 16px 28px;
    border-radius: 3px;
    border: 2.5px solid #45C9D0;
    background: transparent;
    color: #45C9D0;
    cursor: pointer;
    position: relative;
    transition: background 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94), color 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    outline: none;
    text-decoration: none;
    display: inline-block;
    text-align: center;
}

.lpdet .accentbg-price .btn-register::after {
    content: '';
    position: absolute;
    inset: 4px;
    border: 1.5px solid transparent;
    border-radius: 3px;
    transition: border-color 0.6s ease-in-out;
}

.lpdet .accentbg-price .btn-register:hover {
    background: rgba(69, 201, 208, 0.15);
    color: #fff;
}

.lpdet .accentbg-price .btn-register:hover::after {
    border-color: rgba(69, 201, 208, 0.4);
}

.lpdet .accentbg-price .btn-register:focus {
    outline: 2px solid #45C9D0;
    outline-offset: 3px;
}

@media (max-width: 1024px) {
    .lpdet .titblock {
        padding: 28px;
    }

    .lpdet .titblock-top {
        flex-direction: column;
        gap: 28px;
    }

    .lpdet .titblock-img {
        flex: 0 0 auto;
        width: 100%;
    }

    .lpdet .detailblock {
        flex-direction: column;
        padding: 28px;
        gap: 28px;
    }

    .lpdet .detailblock-aside {
        flex: 0 0 auto;
        width: 100%;
    }

    .lpdet .accentbg {
        flex-direction: column;
        padding: 28px;
        gap: 28px;
    }

    .lpdet .accentbg-price {
        width: 100%;
        min-width: 0;
    }
}

@media (max-width: 640px) {
    .lpdet .titblock {
        padding: 16px;
    }

    .lpdet .titblock-text h1 {
        font-size: 28px;
    }

    .lpdet .detailblock {
        padding: 16px;
    }

    .lpdet .accentbg {
        padding: 16px;
    }

    .lpdet .titblock-actions {
        flex-direction: column;
        align-items: flex-start;
    }

    .lpdet .pricebox {
        width: 100%;
    }
}

.successPage {
    min-height: 60vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 56px 28px;
    background: #ffffff;
}

.successPage .successWrap {
    max-width: 560px;
    width: 100%;
    text-align: center;
    padding: 56px 28px;
    border: 2px solid #45C9D0;
    border-radius: 10px;
    box-shadow: 1px 8px 48px 0 rgba(69, 201, 208, 0.11);
}

.successPage .successWrap .iconWrap {
    width: 64px;
    height: 64px;
    margin: 0 auto 28px;
    border: 3px solid #45C9D0;
    border-radius: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.successPage .successWrap .iconWrap svg {
    width: 32px;
    height: 32px;
}

.successPage .successWrap .successTitle {
    font-size: 28px;
    line-height: 1.1;
    letter-spacing: 0.01em;
    margin: 0 0 16px;
    background: linear-gradient(120deg, #4C2ED5, #45C9D0);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.successPage .successWrap .successMsg {
    font-size: 17px;
    line-height: 1.7;
    letter-spacing: 0.01em;
    color: #2a2a35;
    margin: 0 0 28px;
}

.successPage .successWrap .backBtn {
    display: inline-block;
    font-size: 15px;
    letter-spacing: 0.02em;
    line-height: 1.4;
    color: #4C2ED5;
    text-decoration: none;
    padding: 16px 28px;
    border: 2.5px solid #4C2ED5;
    border-radius: 3px;
    transition: color 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94), background 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94), box-shadow 0.55s ease-in-out;
    position: relative;
}

.successPage .successWrap .backBtn::after {
    content: '';
    position: absolute;
    inset: 4px;
    border: 1.5px solid transparent;
    border-radius: 3px;
    transition: border-color 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    pointer-events: none;
}

.successPage .successWrap .backBtn:hover {
    background: #4C2ED5;
    color: #ffffff;
    box-shadow: 1px 4px 22px 0 rgba(76, 46, 213, 0.08);
}

.successPage .successWrap .backBtn:hover::after {
    border-color: rgba(255, 255, 255, 0.35);
}

.successPage .successWrap .backBtn:focus {
    outline: 2px solid #45C9D0;
    outline-offset: 4px;
}

@media (max-width: 640px) {
    .successPage {
        padding: 28px 16px;
    }

    .successPage .successWrap {
        padding: 28px 16px;
    }

    .successPage .successWrap .successTitle {
        font-size: 21px;
    }
}

.ctus {
    max-width: 100%;
    overflow-x: hidden;
}

.ctus .pgwrap {
    max-width: 1366px;
    margin: 0 auto;
    padding: 0 28px;
}

.ctus .frametop {
    position: relative;
    padding: 56px 0 56px;
    background: #fff;
}

.ctus .frametop::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, #45C9D0, transparent, #4C2ED5);
}

.ctus .frametop::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 28px;
    right: 28px;
    height: 1px;
    background: #D9DFE4;
}

.ctus .topgrid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 56px;
    align-items: start;
}

.ctus .geoshape {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

.ctus .shapebox {
    width: 100%;
    aspect-ratio: 4/3;
    position: relative;
    overflow: hidden;
    border-radius: 10px 32px 10px 32px;
    background: linear-gradient(135deg, #45C9D0 0%, transparent 50%, #4C2ED5 100%);
}

.ctus .shapebox::before {
    content: '';
    position: absolute;
    inset: 4px;
    border-radius: 8px 30px 8px 30px;
    background: linear-gradient(155deg, #f0feff 0%, #eef0ff 40%, #D9DFE4 100%);
}

.ctus .shapebox::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 60%;
    height: 60%;
    border: 2px solid rgba(69, 201, 208, 0.3);
    border-radius: 50%;
}

.ctus .shapeinner {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 16px;
    z-index: 1;
}

.ctus .locbadge {
    background: #fff;
    border: 2px solid #45C9D0;
    border-radius: 32px;
    padding: 8px 16px;
    font-size: 13px;
    letter-spacing: 0.02em;
    color: #1a1a2e;
    font-weight: 600;
}

.ctus .coordline {
    font-size: 13px;
    color: #4C2ED5;
    letter-spacing: 0.01em;
    font-weight: 500;
}

.ctus .framelines {
    position: absolute;
    top: -8px;
    left: -8px;
    right: -8px;
    bottom: -8px;
    pointer-events: none;
}

.ctus .framelines::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 32px;
    height: 32px;
    border-top: 2px solid #45C9D0;
    border-left: 2px solid #45C9D0;
    border-radius: 3px 0 0 0;
}

.ctus .framelines::after {
    content: '';
    position: absolute;
    bottom: 0;
    right: 0;
    width: 32px;
    height: 32px;
    border-bottom: 2px solid #4C2ED5;
    border-right: 2px solid #4C2ED5;
    border-radius: 0 0 3px 0;
}

.ctus .textzone {
    display: flex;
    flex-direction: column;
    gap: 28px;
}

.ctus .pagelabel {
    display: inline-block;
    font-size: 13px;
    letter-spacing: 0.02em;
    color: #4C2ED5;
    background: rgba(76, 46, 213, 0.08);
    border-radius: 3px;
    padding: 4px 8px;
    font-weight: 600;
    text-transform: uppercase;
}

.ctus .mainhed {
    font-size: 50px;
    line-height: 1.1;
    letter-spacing: 0.01em;
    color: #12102a;
    font-weight: 800;
    margin: 0;
}

.ctus .mainhed span {
    background: linear-gradient(120deg, #4C2ED5, transparent, #45C9D0);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.ctus .subtext {
    font-size: 17px;
    line-height: 1.7;
    color: #2a2840;
    letter-spacing: 0.01em;
    margin: 0;
}

.ctus .contactlist {
    display: flex;
    flex-direction: column;
    gap: 16px;
    list-style: none;
    padding: 0;
    margin: 0;
}

.ctus .contactlist li {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 16px;
}

.ctus .cicon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    border: 2px solid #45C9D0;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow: 1px 4px 22px 0 rgba(69, 201, 208, 0.08);
}

.ctus .cicon svg {
    width: 18px;
    height: 18px;
}

.ctus .cdetail {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.ctus .clabel {
    font-size: 13px;
    color: #6e6a8a;
    letter-spacing: 0.02em;
    font-weight: 500;
}

.ctus .cval {
    font-size: 15px;
    color: #12102a;
    font-weight: 600;
    letter-spacing: 0.01em;
    text-decoration: none;
    transition: color 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.ctus .cval:hover {
    color: #4C2ED5;
}

.ctus .formsec {
    padding: 56px 0;
    background: linear-gradient(160deg, #f4f6ff 0%, #edfcfd 60%, #f8f8ff 100%);
    position: relative;
}

.ctus .zigzagtop {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 16px;
    overflow: hidden;
}

.ctus .zigzagtop svg {
    display: block;
    width: 100%;
    height: 16px;
}

.ctus .zigzagbot {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 16px;
    overflow: hidden;
}

.ctus .zigzagbot svg {
    display: block;
    width: 100%;
    height: 16px;
}

.ctus .formgrid {
    display: grid;
    grid-template-columns: 1fr 1.4fr;
    gap: 56px;
    align-items: start;
    padding-top: 16px;
}

.ctus .formintro {
    display: flex;
    flex-direction: column;
    gap: 28px;
}

.ctus .formhed {
    font-size: 38px;
    line-height: 1.1;
    color: #12102a;
    font-weight: 700;
    letter-spacing: 0.01em;
    margin: 0;
}

.ctus .formhed em {
    font-style: normal;
    background: linear-gradient(100deg, #4C2ED5, transparent, #45C9D0);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.ctus .formdesc {
    font-size: 15px;
    line-height: 1.7;
    color: #2a2840;
    letter-spacing: 0.01em;
    margin: 0;
}

.ctus .sizeguide {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.ctus .sghed {
    font-size: 13px;
    color: #6e6a8a;
    letter-spacing: 0.02em;
    font-weight: 600;
    text-transform: uppercase;
}

.ctus .sglist {
    display: flex;
    flex-direction: column;
    gap: 4px;
    list-style: none;
    padding: 0;
    margin: 0;
}

.ctus .sglist li {
    font-size: 13px;
    color: #2a2840;
    letter-spacing: 0.01em;
    padding: 4px 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.ctus .sglist li::before {
    content: '-';
    color: #45C9D0;
    font-weight: 700;
}

.ctus .cform {
    display: flex;
    flex-direction: column;
    gap: 28px;
    background: #fff;
    border-radius: 10px;
    padding: 28px;
    box-shadow: 1px 8px 48px 0 rgba(76, 46, 213, 0.11);
}

.ctus .frow {
    display: flex;
    flex-direction: column;
    gap: 4px;
    position: relative;
}

.ctus .frow label {
    font-size: 13px;
    color: #6e6a8a;
    letter-spacing: 0.02em;
    font-weight: 500;
    transition: color 0.5s ease-in-out;
    pointer-events: none;
}

.ctus .frow input {
    width: 100%;
    padding: 16px;
    font-size: 15px;
    color: #12102a;
    background: #f7f8ff;
    border: 2px solid #D9DFE4;
    border-radius: 10px;
    outline: none;
    transition: border-color 0.55s cubic-bezier(0.25, 0.46, 0.45, 0.94), box-shadow 0.55s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    letter-spacing: 0.01em;
    box-sizing: border-box;
}

.ctus .frow input:focus {
    border-color: #45C9D0;
    box-shadow: inset 0 4px 10px 0 rgba(69, 201, 208, 0.08), 1px 4px 22px 0 rgba(69, 201, 208, 0.08);
}

.ctus .frow input:focus+label,
.ctus .frow input:not(:placeholder-shown)+label {
    color: #4C2ED5;
}

.ctus .frow input::placeholder {
    color: transparent;
}

.ctus .radiogroup {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.ctus .radiogroup legend {
    font-size: 13px;
    color: #6e6a8a;
    letter-spacing: 0.02em;
    font-weight: 500;
    margin-bottom: 8px;
    display: block;
}

.ctus .radioopts {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 8px;
}

.ctus .radioopts label {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    border: 2px solid #D9DFE4;
    border-radius: 32px;
    cursor: pointer;
    font-size: 13px;
    color: #2a2840;
    letter-spacing: 0.01em;
    transition: border-color 0.5s ease-in-out, background 0.5s ease-in-out;
    background: #fff;
}

.ctus .radioopts input[type="radio"] {
    width: 16px;
    height: 16px;
    accent-color: #4C2ED5;
    cursor: pointer;
    flex-shrink: 0;
}

.ctus .radioopts label:has(input:checked) {
    border-color: #4C2ED5;
    background: rgba(76, 46, 213, 0.06);
}

.ctus .privrow {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 8px;
}

.ctus .privrow input[type="checkbox"] {
    width: 18px;
    height: 18px;
    accent-color: #4C2ED5;
    cursor: pointer;
    flex-shrink: 0;
    margin-top: 2px;
}

.ctus .privrow span {
    font-size: 13px;
    color: #2a2840;
    line-height: 1.7;
    letter-spacing: 0.01em;
}

.ctus .privrow a {
    color: #4C2ED5;
    text-decoration: underline;
    text-decoration-color: rgba(76, 46, 213, 0.4);
    text-underline-offset: 2px;
    transition: text-decoration-color 0.5s ease-in-out;
}

.ctus .privrow a:hover {
    text-decoration-color: #4C2ED5;
}

.ctus .submitbtn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 16px 28px;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: #4C2ED5;
    background: #fff;
    border: 3px solid #4C2ED5;
    border-radius: 10px;
    cursor: pointer;
    transition: color 0.45s cubic-bezier(0.25, 0.46, 0.45, 0.94), background 0.45s cubic-bezier(0.25, 0.46, 0.45, 0.94), box-shadow 0.5s ease-in-out;
    box-shadow: 1px 4px 22px 0 rgba(76, 46, 213, 0.08);
    overflow: hidden;
    align-self: flex-start;
}

.ctus .submitbtn::before {
    content: '';
    position: absolute;
    inset: 4px;
    border: 2px solid rgba(76, 46, 213, 0);
    border-radius: 7px;
    transition: border-color 0.5s ease-in-out;
}

.ctus .submitbtn:hover {
    background: #4C2ED5;
    color: #fff;
    box-shadow: 1px 8px 48px 0 rgba(76, 46, 213, 0.11);
}

.ctus .submitbtn:hover::before {
    border-color: rgba(255, 255, 255, 0.3);
}

.ctus .submitbtn:focus {
    outline: 2px solid #45C9D0;
    outline-offset: 3px;
}

.ctus .submitbtn:active {
    box-shadow: inset 0 6px 10px 0 rgba(76, 46, 213, 0.15);
}

.ctus .infosec {
    padding: 56px 0;
    background: #fff;
    position: relative;
}

.ctus .infosec::before {
    content: '';
    position: absolute;
    top: 0;
    left: 28px;
    right: 28px;
    height: 1px;
    background: linear-gradient(90deg, transparent, #D9DFE4, transparent);
}

.ctus .infogrid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 28px;
}

.ctus .infocard {
    border: 2px solid #D9DFE4;
    border-radius: 10px;
    padding: 28px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    position: relative;
    overflow: hidden;
    transition: border-color 0.55s cubic-bezier(0.25, 0.46, 0.45, 0.94), box-shadow 0.55s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.ctus .infocard::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 0;
    background: linear-gradient(180deg, transparent, rgba(69, 201, 208, 0.06));
    transition: height 0.6s ease-in-out;
}

.ctus .infocard:hover {
    border-color: #45C9D0;
    box-shadow: 1px 8px 48px 0 rgba(69, 201, 208, 0.11);
}

.ctus .infocard:hover::after {
    height: 100%;
}

.ctus .slitreveal {
    position: relative;
    overflow: hidden;
}

.ctus .slitreveal .slitcontent {
    transform: scaleY(0);
    transform-origin: top center;
    transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    max-height: 0;
    opacity: 0;
    transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94), max-height 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94), opacity 0.5s ease-in-out;
}

.ctus .infocard:hover .slitcontent {
    transform: scaleY(1);
    max-height: 200px;
    opacity: 1;
}

.ctus .cardicon {
    width: 48px;
    height: 48px;
    border-radius: 10px;
    background: linear-gradient(135deg, rgba(69, 201, 208, 0.15), rgba(76, 46, 213, 0.1));
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.ctus .cardicon svg {
    width: 22px;
    height: 22px;
}

.ctus .cardhed {
    font-size: 17px;
    color: #12102a;
    font-weight: 700;
    letter-spacing: 0.01em;
    margin: 0;
}

.ctus .cardtext {
    font-size: 15px;
    color: #2a2840;
    line-height: 1.7;
    letter-spacing: 0.01em;
    margin: 0;
}

.ctus .cardtag {
    display: inline-block;
    font-size: 13px;
    background: rgba(69, 201, 208, 0.15);
    color: #12102a;
    border-radius: 3px;
    padding: 4px 8px;
    letter-spacing: 0.01em;
    font-weight: 500;
    align-self: flex-start;
}

.ctus .infohed {
    font-size: 28px;
    color: #12102a;
    font-weight: 700;
    letter-spacing: 0.01em;
    margin: 0 0 28px 0;
}

@media (max-width: 1024px) {
    .ctus .topgrid {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .ctus .geoshape {
        max-width: 400px;
    }

    .ctus .formgrid {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .ctus .infogrid {
        grid-template-columns: 1fr 1fr;
    }

    .ctus .mainhed {
        font-size: 38px;
    }
}

@media (max-width: 640px) {
    .ctus .topgrid {
        gap: 16px;
    }

    .ctus .infogrid {
        grid-template-columns: 1fr;
    }

    .ctus .mainhed {
        font-size: 28px;
    }

    .ctus .formhed {
        font-size: 28px;
    }

    .ctus .radioopts {
        flex-direction: column;
    }

    .ctus .frametop,
    .ctus .formsec,
    .ctus .infosec {
        padding: 28px 0;
    }
}

.jrnl {
    max-width: 1366px;
    margin: 0 auto;
    overflow-x: clip;
}

.jrnl .pub-grid {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 56px;
    padding: 56px 56px 56px 28px;
    background: #fff;
    position: relative;
}

.jrnl .pub-imgstrip {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.jrnl .pub-imgstrip img {
    width: 220px;
    height: 340px;
    object-fit: cover;
    border-radius: 10px;
    box-shadow: 1px 8px 48px 0 rgba(69, 201, 208, 0.11);
    opacity: 0;
    animation: fadeImg 0.65s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0.2s forwards;
}

@keyframes fadeImg {
    to {
        opacity: 1;
    }
}

.jrnl .pub-imgstrip .shape-a {
    position: absolute;
    width: 140px;
    height: 140px;
    border-radius: 32px;
    background: rgba(69, 201, 208, 0.09);
    top: -28px;
    left: -28px;
    z-index: 0;
    pointer-events: none;
}

.jrnl .pub-imgstrip .shape-b {
    position: absolute;
    width: 80px;
    height: 80px;
    border-radius: 32px;
    background: rgba(76, 46, 213, 0.07);
    bottom: 16px;
    right: -16px;
    z-index: 0;
    pointer-events: none;
}

.jrnl .pub-text {
    display: flex;
    flex-direction: column;
    gap: 16px;
    position: relative;
    z-index: 1;
}

.jrnl .pub-tag {
    display: inline-block;
    background: #D9DFE4;
    color: #1b1b2e;
    font-size: 13px;
    letter-spacing: 0.02em;
    line-height: 1.4;
    padding: 4px 16px;
    border-radius: 3px;
    width: fit-content;
}

.jrnl .pub-h1 {
    font-size: 50px;
    line-height: 1.1;
    letter-spacing: 0.01em;
    background: linear-gradient(120deg, #4C2ED5 0%, rgba(76, 46, 213, 0.3) 50%, #45C9D0 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    margin: 0;
}

.jrnl .pub-lead {
    font-size: 17px;
    line-height: 1.7;
    color: #2a2a3e;
    letter-spacing: 0.01em;
    margin: 0;
    max-width: 640px;
}

.jrnl .pub-points {
    list-style: none;
    padding: 0;
    margin: 8px 0 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.jrnl .pub-points li {
    font-size: 15px;
    line-height: 1.4;
    color: #2a2a3e;
    letter-spacing: 0.01em;
    padding-left: 16px;
    position: relative;
}

.jrnl .pub-points li::before {
    content: "–";
    position: absolute;
    left: 0;
    color: #45C9D0;
}

.jrnl .pub-divider-a {
    height: 3px;
    background: linear-gradient(90deg, #45C9D0 0%, rgba(76, 46, 213, 0.15) 60%, transparent 100%);
    border-radius: 3px;
    margin: 0 56px;
}

.jrnl .articles-area {
    padding: 56px 56px 56px 28px;
    background: linear-gradient(160deg, #f4f6ff 0%, rgba(69, 201, 208, 0.06) 100%);
    animation: bgshift 6s ease-in-out infinite alternate;
}

@keyframes bgshift {
    from {
        background: linear-gradient(160deg, #f4f6ff 0%, rgba(69, 201, 208, 0.06) 100%);
    }

    to {
        background: linear-gradient(160deg, rgba(76, 46, 213, 0.05) 0%, #edfcfd 100%);
    }
}

.jrnl .articles-area .area-label {
    font-size: 13px;
    letter-spacing: 0.02em;
    color: #4C2ED5;
    text-transform: uppercase;
    margin: 0 0 8px;
}

.jrnl .articles-area .area-h2 {
    font-size: 38px;
    line-height: 1.1;
    letter-spacing: 0.01em;
    color: #1b1b2e;
    margin: 0 0 28px;
    max-width: 700px;
}

.jrnl .art-list {
    display: flex;
    flex-direction: column;
    gap: 28px;
}

.jrnl .art-entry {
    display: grid;
    grid-template-columns: 56px 1fr;
    gap: 28px;
    background: #fff;
    border-radius: 10px;
    padding: 28px;
    box-shadow: 1px 4px 22px 0 rgba(69, 201, 208, 0.08);
    transition: box-shadow 0.55s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 0.55s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.jrnl .art-entry:hover {
    box-shadow: 1px 8px 48px 0 rgba(69, 201, 208, 0.11);
    transform: translateY(-2px);
}

.jrnl .art-num {
    font-size: 38px;
    line-height: 1.1;
    letter-spacing: 0.01em;
    color: #D9DFE4;
    font-weight: 700;
    padding-top: 4px;
}

.jrnl .art-body {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.jrnl .art-meta {
    display: flex;
    flex-direction: row;
    gap: 16px;
    flex-wrap: wrap;
    align-items: center;
}

.jrnl .art-author {
    font-size: 13px;
    letter-spacing: 0.02em;
    color: #fff;
    background: #4C2ED5;
    padding: 4px 16px;
    border-radius: 3px;
    line-height: 1.4;
}

.jrnl .art-journal {
    font-size: 13px;
    letter-spacing: 0.02em;
    color: #2a2a3e;
    background: #D9DFE4;
    padding: 4px 16px;
    border-radius: 3px;
    line-height: 1.4;
}

.jrnl .art-h3 {
    font-size: 21px;
    line-height: 1.4;
    letter-spacing: 0.01em;
    color: #1b1b2e;
    margin: 0;
    background: linear-gradient(105deg, #4C2ED5, rgba(76, 46, 213, 0.5) 55%, #45C9D0);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.jrnl .art-desc {
    font-size: 15px;
    line-height: 1.7;
    color: #3a3a4e;
    letter-spacing: 0.01em;
    margin: 0;
}

.jrnl .art-link {
    display: inline-block;
    font-size: 13px;
    letter-spacing: 0.02em;
    line-height: 1.4;
    color: #4C2ED5;
    text-decoration: none;
    border: 2px solid #4C2ED5;
    border-radius: 3px;
    padding: 4px 16px;
    width: fit-content;
    position: relative;
    transition: color 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94), background 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.jrnl .art-link:hover {
    background: #4C2ED5;
    color: #fff;
    box-shadow: inset 0 0 0 2px #45C9D0;
}

.jrnl .art-link:focus {
    outline: 2px solid #45C9D0;
    outline-offset: 2px;
}

.jrnl .pullquote-band {
    background: #4C2ED5;
    padding: 56px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    position: relative;
    overflow: hidden;
}

.jrnl .pullquote-band .qmark {
    font-size: 120px;
    line-height: 1.1;
    color: rgba(69, 201, 208, 0.18);
    position: absolute;
    top: 8px;
    left: 28px;
    pointer-events: none;
    font-style: italic;
    user-select: none;
}

.jrnl .pullquote-band blockquote {
    margin: 0;
    padding: 0 0 0 56px;
    max-width: 860px;
}

.jrnl .pullquote-band blockquote p {
    font-size: 28px;
    line-height: 1.4;
    letter-spacing: 0.01em;
    color: #fff;
    margin: 0 0 16px;
}

.jrnl .pullquote-band blockquote cite {
    font-size: 15px;
    letter-spacing: 0.02em;
    color: #45C9D0;
    font-style: normal;
    line-height: 1.4;
}

.jrnl .stats-row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
    padding: 56px;
    background: #fff;
}

.jrnl .stat-item {
    display: flex;
    flex-direction: column;
    gap: 8px;
    align-items: flex-start;
    padding: 28px;
    border-radius: 10px;
    box-shadow: 1px 1px 4px 0 rgba(69, 201, 208, 0.06);
    transition: box-shadow 0.6s ease-in-out;
}

.jrnl .stat-item:hover {
    box-shadow: 1px 4px 22px 0 rgba(76, 46, 213, 0.08);
}

.jrnl .stat-icon {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: linear-gradient(135deg, #45C9D0, #4C2ED5);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.jrnl .stat-icon svg {
    width: 20px;
    height: 20px;
    fill: #fff;
}

.jrnl .stat-num {
    font-size: 50px;
    line-height: 1.1;
    letter-spacing: 0.01em;
    color: #1b1b2e;
    font-weight: 700;
}

.jrnl .stat-desc {
    font-size: 15px;
    line-height: 1.4;
    color: #3a3a4e;
    letter-spacing: 0.01em;
    margin: 0;
}

.jrnl .chart-area {
    padding: 56px;
    background: linear-gradient(170deg, rgba(76, 46, 213, 0.04) 0%, #f9fbfd 100%);
}

.jrnl .chart-area .chart-h2 {
    font-size: 28px;
    line-height: 1.4;
    letter-spacing: 0.01em;
    color: #1b1b2e;
    margin: 0 0 28px;
}

.jrnl .chart-area .charts-css.bar {
    height: 220px;
    max-width: 800px;
}

.jrnl .chart-labels {
    display: flex;
    flex-direction: row;
    gap: 28px;
    flex-wrap: wrap;
    margin-top: 16px;
}

.jrnl .chart-label {
    font-size: 13px;
    letter-spacing: 0.02em;
    color: #3a3a4e;
    line-height: 1.4;
    display: flex;
    align-items: center;
    gap: 8px;
}

.jrnl .chart-label .dot {
    width: 10px;
    height: 10px;
    border-radius: 3px;
    flex-shrink: 0;
}

.jrnl .typing-block {
    padding: 56px;
    background: #1b1b2e;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.jrnl .typing-block .tb-label {
    font-size: 13px;
    letter-spacing: 0.02em;
    color: #45C9D0;
    text-transform: uppercase;
    line-height: 1.4;
}

.jrnl .typing-block .tb-text {
    font-size: 21px;
    line-height: 1.7;
    letter-spacing: 0.01em;
    color: #e8ecf4;
    max-width: 760px;
    overflow: hidden;
    white-space: nowrap;
    width: 0;
    animation: typeout 3.5s steps(80, end) 0.5s forwards;
}

@keyframes typeout {
    to {
        width: 100%;
    }
}

.jrnl .typing-block .tb-cursor {
    display: inline-block;
    width: 2px;
    height: 1.2em;
    background: #45C9D0;
    vertical-align: text-bottom;
    animation: blink 0.8s step-end infinite;
}

@keyframes blink {

    0%,
    100% {
        opacity: 1;
    }

    50% {
        opacity: 0;
    }
}

.jrnl .typing-block .tb-sub {
    font-size: 15px;
    line-height: 1.7;
    letter-spacing: 0.01em;
    color: #9097b0;
    max-width: 640px;
    margin: 0;
}

@media (max-width: 1024px) {
    .jrnl .pub-grid {
        grid-template-columns: 160px 1fr;
        gap: 28px;
        padding: 28px;
    }

    .jrnl .pub-imgstrip img {
        width: 160px;
        height: 240px;
    }

    .jrnl .pub-h1 {
        font-size: 38px;
    }

    .jrnl .stats-row {
        grid-template-columns: repeat(2, 1fr);
        padding: 28px;
        gap: 16px;
    }

    .jrnl .pullquote-band {
        padding: 28px 28px 28px 56px;
    }

    .jrnl .chart-area {
        padding: 28px;
    }

    .jrnl .articles-area {
        padding: 28px;
    }

    .jrnl .typing-block {
        padding: 28px;
    }

    .jrnl .typing-block .tb-text {
        font-size: 17px;
        white-space: normal;
        width: auto;
        animation: none;
        opacity: 0;
        animation: fadein 0.65s ease-in-out 0.5s forwards;
    }

    @keyframes fadein {
        to {
            opacity: 1;
        }
    }
}

@media (max-width: 640px) {
    .jrnl .pub-grid {
        grid-template-columns: 1fr;
        padding: 16px;
        gap: 16px;
    }

    .jrnl .pub-imgstrip {
        max-width: 100%;
    }

    .jrnl .pub-imgstrip img {
        width: 100%;
        height: 200px;
    }

    .jrnl .pub-h1 {
        font-size: 28px;
    }

    .jrnl .art-entry {
        grid-template-columns: 1fr;
        gap: 8px;
        padding: 16px;
    }

    .jrnl .art-num {
        display: none;
    }

    .jrnl .stats-row {
        grid-template-columns: 1fr;
        padding: 16px;
    }

    .jrnl .pullquote-band {
        padding: 28px 16px;
    }

    .jrnl .pullquote-band blockquote {
        padding-left: 28px;
    }

    .jrnl .pullquote-band blockquote p {
        font-size: 21px;
    }

    .jrnl .pullquote-band .qmark {
        font-size: 80px;
        left: 8px;
    }

    .jrnl .typing-block {
        padding: 16px;
    }

    .jrnl .chart-area {
        padding: 16px;
    }

    .jrnl .pub-divider-a {
        margin: 0 16px;
    }

    .jrnl .articles-area {
        padding: 16px;
    }
}

.msn {
    max-width: 100%;
    overflow-x: hidden;
}

.msn .pg-inner {
    max-width: 1366px;
    margin: 0 auto;
    padding: 0 28px;
}

.msn .titblock {
    padding: 56px 0;
    position: relative;
}

.msn .titblock-inner {
    max-width: 1366px;
    margin: 0 auto;
    padding: 0 28px;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 56px;
}

.msn .titblock-imgcol {
    flex: 0 0 420px;
    position: relative;
}

.msn .titblock-imgframe {
    position: relative;
    border: 2px solid #45C9D0;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 1px 8px 48px 0 rgba(69, 201, 208, 0.11);
}

.msn .titblock-imgframe::before {
    content: "";
    position: absolute;
    inset: 8px;
    border: 1px dashed rgba(76, 46, 213, 0.35);
    border-radius: 3px;
    z-index: 1;
    pointer-events: none;
}

.msn .titblock-imgframe img {
    width: 100%;
    height: 340px;
    object-fit: cover;
    display: block;
    filter: contrast(1.08) saturate(1.05);
}

.msn .titblock-curvebg {
    position: absolute;
    top: -28px;
    right: -28px;
    width: 180px;
    height: 180px;
    pointer-events: none;
    z-index: 0;
}

.msn .titblock-textcol {
    flex: 1 1 0;
    min-width: 0;
}

.msn .titblock-label {
    display: inline-block;
    font-size: 13px;
    line-height: 1.4;
    letter-spacing: 0.02em;
    background: #D9DFE4;
    color: #1a2340;
    border-radius: 3px;
    padding: 4px 8px;
    margin-bottom: 16px;
    font-weight: 600;
}

.msn .titblock-h1 {
    font-size: 50px;
    line-height: 1.1;
    letter-spacing: 0.01em;
    margin: 0 0 28px 0;
    background: linear-gradient(120deg, #4C2ED5 0%, rgba(69, 201, 208, 0.4) 55%, #45C9D0 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.msn .titblock-desc {
    font-size: 17px;
    line-height: 1.7;
    letter-spacing: 0.01em;
    color: #2a2e40;
    max-width: 520px;
}

.msn .underline-draw {
    display: block;
    width: 0;
    height: 2px;
    background: linear-gradient(90deg, #45C9D0, #4C2ED5);
    border-radius: 3px;
    margin-top: 16px;
    animation: drawline 0.55s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0.3s forwards;
}

@keyframes drawline {
    to {
        width: 120px;
    }
}

.msn .valblock {
    background: #f2f4f8;
    padding: 56px 0;
}

.msn .valblock-inner {
    max-width: 1366px;
    margin: 0 auto;
    padding: 0 28px;
    display: grid;
    grid-template-columns: 2fr 1fr 2fr;
    gap: 28px;
    align-items: start;
}

.msn .valblock-col {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.msn .valblock-centercol {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 16px;
    padding: 28px 8px;
}

.msn .val-card {
    background: #fff;
    border-radius: 10px;
    padding: 28px;
    box-shadow: 1px 4px 22px 0 rgba(76, 46, 213, 0.08);
    transition: box-shadow 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    position: relative;
}

.msn .val-card:hover {
    box-shadow: 1px 8px 48px 0 rgba(76, 46, 213, 0.11);
    transform: translateY(-2px);
}

.msn .val-card-tag {
    font-size: 13px;
    line-height: 1.4;
    letter-spacing: 0.02em;
    background: #45C9D0;
    color: #fff;
    border-radius: 3px;
    padding: 4px 8px;
    display: inline-block;
    margin-bottom: 8px;
    font-weight: 600;
}

.msn .val-card-tag.sec {
    background: #4C2ED5;
}

.msn .val-card-tag.ter {
    background: #D9DFE4;
    color: #2a2e40;
}

.msn .val-card h4 {
    font-size: 17px;
    line-height: 1.4;
    letter-spacing: 0.01em;
    color: #1a2340;
    margin: 0 0 8px 0;
}

.msn .val-card p {
    font-size: 15px;
    line-height: 1.7;
    letter-spacing: 0.01em;
    color: #3a3f55;
    margin: 0;
}

.msn .valblock-centercol .vc-dash {
    width: 2px;
    height: 56px;
    background: linear-gradient(180deg, #45C9D0, #4C2ED5);
    border-radius: 3px;
}

.msn .valblock-centercol .vc-num {
    font-size: 38px;
    line-height: 1.1;
    letter-spacing: 0.01em;
    font-weight: 700;
    background: linear-gradient(135deg, #4C2ED5, #45C9D0);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    text-align: center;
}

.msn .valblock-centercol .vc-label {
    font-size: 13px;
    line-height: 1.4;
    letter-spacing: 0.02em;
    color: #5a6070;
    text-align: center;
}

.msn .valblock-h2 {
    font-size: 28px;
    line-height: 1.4;
    letter-spacing: 0.01em;
    color: #1a2340;
    margin: 0 0 8px 0;
}

.msn .valblock-intro {
    font-size: 15px;
    line-height: 1.7;
    color: #3a3f55;
    margin: 0 0 16px 0;
}

.msn .dash-accent {
    display: inline-block;
    width: 24px;
    height: 2px;
    background: #45C9D0;
    border-radius: 3px;
    vertical-align: middle;
    margin-right: 8px;
}

.msn .chartblock {
    padding: 56px 0;
    background: #fff;
}

.msn .chartblock-inner {
    max-width: 1366px;
    margin: 0 auto;
    padding: 0 28px;
    display: flex;
    flex-direction: row;
    gap: 56px;
    align-items: flex-start;
}

.msn .chartblock-text {
    flex: 1 1 320px;
    min-width: 0;
}

.msn .chartblock-text h2 {
    font-size: 38px;
    line-height: 1.1;
    letter-spacing: 0.01em;
    margin: 0 0 16px 0;
    background: linear-gradient(110deg, #4C2ED5, rgba(69, 201, 208, 0.5) 60%, #45C9D0);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.msn .chartblock-text p {
    font-size: 15px;
    line-height: 1.7;
    letter-spacing: 0.01em;
    color: #3a3f55;
    margin: 0 0 16px 0;
}

.msn .chartblock-text p:last-child {
    margin-bottom: 0;
}

.msn .chartblock-chart {
    flex: 1 1 420px;
    min-width: 0;
}

.msn .chart-caption {
    font-size: 13px;
    line-height: 1.4;
    letter-spacing: 0.02em;
    color: #5a6070;
    margin-bottom: 16px;
}

.msn .chartblock-chart table {
    border-spacing: 0;
    width: 100%;
}

.msn .chartblock-chart table caption {
    font-size: 13px;
    color: #5a6070;
    margin-bottom: 8px;
    text-align: left;
}

.msn .chartblock-chart th {
    font-size: 13px;
    color: #5a6070;
    font-weight: 500;
    padding: 4px 8px;
    text-align: left;
}

.msn .chartblock-chart td.bar-label {
    font-size: 13px;
    color: #2a2e40;
    padding: 4px 8px 4px 0;
    white-space: nowrap;
    vertical-align: middle;
    width: 160px;
}

.msn .chartblock-chart .charts-css.bar {
    --color: #45C9D0;
    height: 220px;
}

.msn .chartblock-chart .charts-css.bar tbody tr td {
    background: linear-gradient(90deg, #4C2ED5, #45C9D0);
}

.msn .chart-rows {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.msn .chart-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 16px;
}

.msn .chart-row-label {
    font-size: 13px;
    line-height: 1.4;
    color: #2a2e40;
    width: 180px;
    flex-shrink: 0;
    letter-spacing: 0.01em;
}

.msn .chart-row-bar-wrap {
    flex: 1 1 0;
    background: #D9DFE4;
    border-radius: 3px;
    height: 16px;
    overflow: hidden;
}

.msn .chart-row-bar {
    height: 100%;
    border-radius: 3px;
    background: linear-gradient(90deg, #4C2ED5, #45C9D0);
    transition: width 0.65s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.msn .chart-row-val {
    font-size: 13px;
    color: #4C2ED5;
    font-weight: 700;
    width: 36px;
    text-align: right;
    flex-shrink: 0;
}

.msn .keywd-badge {
    display: inline-block;
    font-size: 13px;
    line-height: 1.4;
    letter-spacing: 0.02em;
    background: rgba(76, 46, 213, 0.08);
    color: #4C2ED5;
    border-radius: 3px;
    padding: 4px 8px;
    margin-top: 16px;
    font-weight: 600;
}

.msn .iconanim {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: rgba(69, 201, 208, 0.12);
    margin-bottom: 8px;
    transition: background 0.5s ease-in-out;
}

.msn .val-card:hover .iconanim {
    background: rgba(76, 46, 213, 0.12);
}

.msn .iconanim svg {
    transition: transform 0.55s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.msn .val-card:hover .iconanim svg {
    transform: rotate(15deg) scale(1.15);
}

@media (max-width: 1024px) {
    .msn .titblock-inner {
        flex-direction: column;
        gap: 28px;
    }

    .msn .titblock-imgcol {
        flex: 0 0 auto;
        width: 100%;
        max-width: 480px;
    }

    .msn .valblock-inner {
        grid-template-columns: 1fr 1fr;
    }

    .msn .valblock-centercol {
        grid-column: 1 / -1;
        flex-direction: row;
        justify-content: center;
        gap: 28px;
    }

    .msn .valblock-centercol .vc-dash {
        width: 56px;
        height: 2px;
        background: linear-gradient(90deg, #45C9D0, #4C2ED5);
    }

    .msn .chartblock-inner {
        flex-direction: column;
        gap: 28px;
    }

    .msn .titblock-h1 {
        font-size: 38px;
    }
}

@media (max-width: 640px) {
    .msn .titblock {
        padding: 28px 0;
    }

    .msn .titblock-h1 {
        font-size: 28px;
    }

    .msn .valblock-inner {
        grid-template-columns: 1fr;
    }

    .msn .valblock-centercol {
        grid-column: auto;
        flex-direction: column;
        align-items: center;
    }

    .msn .valblock-centercol .vc-dash {
        width: 2px;
        height: 40px;
        background: linear-gradient(180deg, #45C9D0, #4C2ED5);
    }

    .msn .chart-row-label {
        width: 120px;
        font-size: 13px;
    }

    .msn .chartblock-text h2 {
        font-size: 28px;
    }

    .msn .chartblock {
        padding: 28px 0;
    }

    .msn .valblock {
        padding: 28px 0;
    }
}

.aboutUs {
    max-width: 1366px;
    margin: 0 auto;
    overflow: hidden;
}

.aboutUs .manifesto {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    min-height: 420px;
    position: relative;
}

.aboutUs .manifesto .imgstrip {
    width: 340px;
    flex-shrink: 0;
    position: relative;
    overflow: hidden;
}

.aboutUs .manifesto .imgstrip img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.aboutUs .manifesto .imgstrip::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to right, transparent 40%, #fff 100%);
}

.aboutUs .manifesto .mtext {
    flex: 1;
    padding: 56px 56px 56px 28px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
}

.aboutUs .manifesto .mtext::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, #45C9D0, transparent, #4C2ED5);
}

.aboutUs .manifesto .mtext .mtag {
    display: inline-block;
    background: #D9DFE4;
    color: #1a1a2e;
    font-size: 13px;
    letter-spacing: 0.02em;
    padding: 4px 16px;
    border-radius: 3px;
    margin-bottom: 16px;
    font-weight: 600;
    align-self: flex-start;
}

.aboutUs .manifesto .mtext h1 {
    font-size: 50px;
    line-height: 1.1;
    letter-spacing: 0.01em;
    margin: 0 0 16px 0;
    background: linear-gradient(120deg, #4C2ED5, transparent 60%, #45C9D0);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.aboutUs .manifesto .mtext .mdecl {
    font-size: 17px;
    line-height: 1.7;
    letter-spacing: 0.01em;
    color: #2a2a3a;
    max-width: 560px;
    margin: 0 0 28px 0;
}

.aboutUs .manifesto .mtext .mfounded {
    font-size: 13px;
    color: #4C2ED5;
    letter-spacing: 0.02em;
    font-weight: 600;
    border-top: 1px solid #D9DFE4;
    padding-top: 16px;
}

.aboutUs .teamvals {
    background: #f4f6fa;
    padding: 56px 56px;
    position: relative;
}

.aboutUs .teamvals::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 1px;
    background: linear-gradient(90deg, #45C9D0 0%, #D9DFE4 50%, #4C2ED5 100%);
}

.aboutUs .teamvals .tvgrid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px;
    max-width: 1366px;
}

.aboutUs .teamvals .tvleft {
    display: flex;
    flex-direction: column;
    gap: 28px;
}

.aboutUs .teamvals .tvleft h2 {
    font-size: 38px;
    line-height: 1.1;
    letter-spacing: 0.01em;
    margin: 0;
    background: linear-gradient(110deg, #4C2ED5, transparent, #45C9D0);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.aboutUs .teamvals .tvleft .tvdesc {
    font-size: 15px;
    line-height: 1.7;
    color: #2a2a3a;
    margin: 0;
}

.aboutUs .teamvals .tvleft .tvvals {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.aboutUs .teamvals .tvleft .tvvals li {
    font-size: 15px;
    line-height: 1.4;
    color: #2a2a3a;
    padding-left: 16px;
    position: relative;
    letter-spacing: 0.01em;
}

.aboutUs .teamvals .tvleft .tvvals li::before {
    content: '-';
    position: absolute;
    left: 0;
    color: #45C9D0;
    font-weight: 700;
}

.aboutUs .teamvals .tvright {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.aboutUs .teamvals .tvright h3 {
    font-size: 21px;
    line-height: 1.4;
    letter-spacing: 0.01em;
    margin: 0 0 8px 0;
    color: #1a1a2e;
}

.aboutUs .teamvals .tcard {
    background: #fff;
    border-radius: 10px;
    padding: 28px;
    box-shadow: 1px 4px 22px 0 rgba(69, 201, 208, 0.08);
    display: flex;
    flex-direction: column;
    gap: 8px;
    transition: box-shadow 0.55s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 0.55s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    border: 2px solid transparent;
    position: relative;
}

.aboutUs .teamvals .tcard:hover {
    box-shadow: 1px 8px 48px 0 rgba(76, 46, 213, 0.11);
    transform: translateY(-2px);
    border-color: #45C9D0;
}

.aboutUs .teamvals .tcard .tcname {
    font-size: 17px;
    font-weight: 700;
    color: #1a1a2e;
    letter-spacing: 0.01em;
}

.aboutUs .teamvals .tcard .tcrole {
    font-size: 13px;
    color: #fff;
    background: #4C2ED5;
    border-radius: 3px;
    padding: 4px 8px;
    align-self: flex-start;
    letter-spacing: 0.02em;
}

.aboutUs .teamvals .tcard .tcquote {
    font-size: 15px;
    line-height: 1.7;
    color: #3a3a5a;
    margin: 0;
}

.aboutUs .metrics {
    padding: 56px 56px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 56px;
    align-items: center;
    background: #fff;
    position: relative;
}

.aboutUs .metrics::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 56px;
    right: 56px;
    height: 2px;
    background: linear-gradient(90deg, transparent, #45C9D0, transparent);
}

.aboutUs .metrics .metleft {
    display: flex;
    flex-direction: column;
    gap: 28px;
}

.aboutUs .metrics .metleft h2 {
    font-size: 38px;
    line-height: 1.1;
    letter-spacing: 0.01em;
    margin: 0;
    background: linear-gradient(115deg, #4C2ED5, transparent, #45C9D0);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.aboutUs .metrics .metleft p {
    font-size: 15px;
    line-height: 1.7;
    color: #2a2a3a;
    margin: 0;
}

.aboutUs .metrics .metimgs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.aboutUs .metrics .metimgs .mimgw {
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 1px 4px 22px 0 rgba(76, 46, 213, 0.08);
    transition: box-shadow 0.6s ease-in-out;
}

.aboutUs .metrics .metimgs .mimgw:hover {
    box-shadow: 1px 8px 48px 0 rgba(69, 201, 208, 0.11);
}

.aboutUs .metrics .metimgs .mimgw img {
    width: 100%;
    height: 180px;
    object-fit: cover;
    display: block;
    transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.aboutUs .metrics .metimgs .mimgw:hover img {
    transform: scale(1.04);
}

.aboutUs .metrics .metimgs .mimgw.tall {
    grid-row: span 2;
}

.aboutUs .metrics .metimgs .mimgw.tall img {
    height: 100%;
    min-height: 200px;
}

.aboutUs .metrics .metleft .mstats {
    display: flex;
    flex-direction: row;
    gap: 28px;
}

.aboutUs .metrics .metleft .mstats .mstat {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.aboutUs .metrics .metleft .mstats .mstat .mnum {
    font-size: 38px;
    font-weight: 700;
    line-height: 1.1;
    color: #4C2ED5;
    letter-spacing: 0.01em;
}

.aboutUs .metrics .metleft .mstats .mstat .mlabel {
    font-size: 13px;
    color: #5a5a7a;
    letter-spacing: 0.02em;
    line-height: 1.4;
}

.aboutUs .metrics .chartarea {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.aboutUs .metrics .chartarea h4 {
    font-size: 17px;
    color: #1a1a2e;
    margin: 0;
    letter-spacing: 0.01em;
    line-height: 1.4;
}

.aboutUs .metrics .chartarea table {
    border-radius: 10px;
    overflow: hidden;
}

.aboutUs .metrics .chartarea .charts-css.bar {
    --color: #45C9D0;
}

.aboutUs .metrics .chartarea .charts-css.bar tbody tr td {
    color: #2a2a3a;
    font-size: 13px;
}

.aboutUs .metrics .chartarea .charts-css th {
    font-size: 13px;
    color: #5a5a7a;
}

@keyframes slideInLeft {
    from {
        opacity: 0;
        transform: translateX(-40px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes slideInRight {
    from {
        opacity: 0;
        transform: translateX(40px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}

.aboutUs .manifesto .imgstrip {
    animation: slideInLeft 0.65s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
}

.aboutUs .manifesto .mtext {
    animation: slideInRight 0.65s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0.1s both;
}

.aboutUs .teamvals .tvleft {
    animation: slideInLeft 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0.15s both;
}

.aboutUs .teamvals .tvright {
    animation: slideInRight 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0.2s both;
}

.aboutUs .metrics .metleft {
    animation: slideInLeft 0.65s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0.1s both;
}

.aboutUs .metrics .metimgs {
    animation: slideInRight 0.65s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0.2s both;
}

@media (max-width: 1024px) {
    .aboutUs .manifesto .imgstrip {
        width: 240px;
    }

    .aboutUs .manifesto .mtext {
        padding: 28px 28px 28px 16px;
    }

    .aboutUs .manifesto .mtext h1 {
        font-size: 38px;
    }

    .aboutUs .teamvals {
        padding: 56px 28px;
    }

    .aboutUs .teamvals .tvgrid {
        grid-template-columns: 1fr;
    }

    .aboutUs .metrics {
        padding: 56px 28px;
        grid-template-columns: 1fr;
        gap: 28px;
    }
}

@media (max-width: 640px) {
    .aboutUs .manifesto {
        flex-direction: column;
    }

    .aboutUs .manifesto .imgstrip {
        width: 100%;
        height: 220px;
    }

    .aboutUs .manifesto .imgstrip::after {
        background: linear-gradient(to bottom, transparent 40%, #fff 100%);
    }

    .aboutUs .manifesto .mtext {
        padding: 28px 16px;
    }

    .aboutUs .manifesto .mtext h1 {
        font-size: 28px;
    }

    .aboutUs .teamvals {
        padding: 28px 16px;
    }

    .aboutUs .metrics {
        padding: 28px 16px;
    }

    .aboutUs .metrics .metimgs {
        grid-template-columns: 1fr;
    }

    .aboutUs .metrics .metimgs .mimgw.tall {
        grid-row: span 1;
    }

    .aboutUs .metrics .metleft .mstats {
        flex-direction: column;
        gap: 16px;
    }
}

.lrnprog {
    max-width: 1366px;
    margin: 0 auto;
    overflow-x: clip;
}

.lrnprog .pghead {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 56px;
    padding: 56px 56px 28px 56px;
}

.lrnprog .pghead-text {
    flex: 1 1 0;
    min-width: 0;
}

.lrnprog .pghead-text h1 {
    font-size: 50px;
    line-height: 1.1;
    letter-spacing: 0.01em;
    margin: 0 0 16px 0;
    background: linear-gradient(120deg, #4C2ED5 0%, #45C9D0 60%, transparent 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.lrnprog .pghead-text .pgdesc {
    font-size: 17px;
    line-height: 1.7;
    letter-spacing: 0.01em;
    color: #2a2a3a;
    margin: 0 0 28px 0;
    max-width: 540px;
}

.lrnprog .pghead-text .pgpoints {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.lrnprog .pghead-text .pgpoints li {
    font-size: 15px;
    line-height: 1.4;
    letter-spacing: 0.02em;
    color: #2a2a3a;
    padding-left: 16px;
    position: relative;
}

.lrnprog .pghead-text .pgpoints li::before {
    content: "-";
    position: absolute;
    left: 0;
    color: #45C9D0;
}

.lrnprog .pghead-img {
    flex: 0 0 420px;
    position: relative;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 1px 8px 48px 0 rgba(69, 201, 208, 0.11);
}

.lrnprog .pghead-img::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(to left, rgba(76, 46, 213, 0.55) 0%, transparent 60%);
    z-index: 1;
    pointer-events: none;
}

.lrnprog .pghead-img img {
    display: block;
    width: 100%;
    height: 320px;
    object-fit: cover;
    filter: brightness(0.88);
    transition: filter 0.55s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.lrnprog .pghead-img:hover img {
    filter: brightness(1.05);
}

.lrnprog .corner-br {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 28px;
    height: 28px;
    border-bottom: 2px solid #45C9D0;
    border-left: 2px solid #45C9D0;
    border-radius: 0 0 0 10px;
    z-index: 2;
    pointer-events: none;
}

.lrnprog .corner-tr {
    position: absolute;
    top: 0;
    right: 0;
    width: 28px;
    height: 28px;
    border-top: 2px solid #45C9D0;
    border-right: 2px solid #45C9D0;
    border-radius: 0 10px 0 0;
    z-index: 2;
    pointer-events: none;
}

.lrnprog .divider {
    width: 100%;
    height: 1px;
    background: #D9DFE4;
    margin: 0 56px;
    width: calc(100% - 112px);
}

.lrnprog .cards-area {
    padding: 56px 56px 28px 56px;
}

.lrnprog .cards-area h2 {
    font-size: 38px;
    line-height: 1.1;
    letter-spacing: 0.01em;
    margin: 0 0 8px 0;
    background: linear-gradient(110deg, #4C2ED5 10%, #45C9D0 90%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.lrnprog .cards-area .area-sub {
    font-size: 15px;
    line-height: 1.4;
    color: #444;
    margin: 0 0 28px 0;
    letter-spacing: 0.01em;
}

.lrnprog .cardgrid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
}

.lrnprog .progcard {
    border-radius: 10px;
    border: 2px solid #D9DFE4;
    background: #fff;
    display: flex;
    flex-direction: column;
    box-shadow: 1px 4px 22px 0 rgba(76, 46, 213, 0.08);
    transition: box-shadow 0.55s cubic-bezier(0.25, 0.46, 0.45, 0.94), border-color 0.5s ease-in-out;
    overflow: hidden;
}

.lrnprog .progcard:hover {
    box-shadow: 1px 8px 48px 0 rgba(76, 46, 213, 0.11);
    border-color: #45C9D0;
}

.lrnprog .progcard .card-imgwrap {
    position: relative;
    overflow: hidden;
}

.lrnprog .progcard .card-imgwrap img {
    display: block;
    width: 100%;
    height: 180px;
    object-fit: cover;
    filter: brightness(0.85);
    transition: filter 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.lrnprog .progcard:hover .card-imgwrap img {
    filter: brightness(1.05);
}

.lrnprog .progcard .card-body {
    padding: 16px 16px 8px 16px;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.lrnprog .progcard .card-title {
    font-size: 17px;
    line-height: 1.4;
    letter-spacing: 0.01em;
    color: #18183a;
    margin: 0;
}

.lrnprog .progcard .card-desc {
    font-size: 13px;
    line-height: 1.7;
    color: #444;
    margin: 0;
}

.lrnprog .progcard .card-dur {
    font-size: 13px;
    color: #4C2ED5;
    letter-spacing: 0.02em;
    margin: 0;
}

.lrnprog .progcard .card-foot {
    padding: 8px 16px 16px 16px;
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
    gap: 8px;
    border-top: 1px solid #D9DFE4;
    margin-top: 8px;
}

.lrnprog .progcard .card-price {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.lrnprog .progcard .card-price .amount {
    font-size: 21px;
    line-height: 1.1;
    color: #18183a;
    font-weight: 700;
    letter-spacing: 0.01em;
}

.lrnprog .progcard .card-price .pricedes {
    font-size: 13px;
    color: #666;
    line-height: 1.4;
}

.lrnprog .progcard .card-price .pricenote {
    font-size: 13px;
    color: #45C9D0;
    line-height: 1.4;
}

.lrnprog .progcard .card-btn {
    display: inline-block;
    padding: 8px 16px;
    border-radius: 3px;
    border: 2px solid #4C2ED5;
    color: #4C2ED5;
    font-size: 13px;
    letter-spacing: 0.02em;
    text-decoration: none !important;
    background: transparent;
    position: relative;
    transition: color 0.5s ease-in-out, background 0.5s ease-in-out;
    white-space: nowrap;
}

.lrnprog .progcard .card-btn::after {
    content: "";
    position: absolute;
    inset: 3px;
    border-radius: 3px;
    border: 1px solid #45C9D0;
    opacity: 0;
    transition: opacity 0.45s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.lrnprog .progcard .card-btn:hover {
    background: #4C2ED5;
    color: #fff;
}

.lrnprog .progcard .card-btn:hover::after {
    opacity: 1;
}

.lrnprog .diamond-sep {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    margin: 0 0 8px 0;
}

.lrnprog .diamond-sep span {
    display: inline-block;
    width: 8px;
    height: 8px;
    background: #45C9D0;
    transform: rotate(45deg);
    border-radius: 3px;
    flex-shrink: 0;
}

.lrnprog .diamond-sep .dsline {
    flex: 1 1 0;
    height: 1px;
    background: #D9DFE4;
    transform: none;
    border-radius: 0;
    width: auto;
}

.lrnprog .metrics-area {
    padding: 56px 56px;
    background: #f4f3fc;
    position: relative;
    overflow: hidden;
}

.lrnprog .metrics-area::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='0.08'/%3E%3C/svg%3E");
    pointer-events: none;
    z-index: 0;
    opacity: 0.6;
}

.lrnprog .metrics-area>* {
    position: relative;
    z-index: 1;
}

.lrnprog .metrics-area h2 {
    font-size: 28px;
    line-height: 1.1;
    letter-spacing: 0.01em;
    margin: 0 0 8px 0;
    color: #18183a;
}

.lrnprog .metrics-area .met-sub {
    font-size: 15px;
    line-height: 1.7;
    color: #444;
    margin: 0 0 28px 0;
    max-width: 600px;
}

.lrnprog .met-row {
    display: flex;
    flex-direction: row;
    gap: 28px;
    align-items: flex-start;
}

.lrnprog .met-chart {
    flex: 1 1 0;
    min-width: 0;
}

.lrnprog .met-legend {
    flex: 0 0 260px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.lrnprog .met-legend .leg-item {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 8px;
}

.lrnprog .met-legend .leg-icon {
    width: 16px;
    height: 16px;
    border-radius: 3px;
    flex-shrink: 0;
    margin-top: 2px;
}

.lrnprog .met-legend .leg-text {
    font-size: 13px;
    line-height: 1.7;
    color: #2a2a3a;
}

.lrnprog .met-legend .leg-label {
    font-size: 15px;
    font-weight: 700;
    color: #18183a;
    display: block;
    margin-bottom: 4px;
}

.lrnprog table.charts-css.bar {
    --color: #45C9D0;
    height: 220px;
    border-radius: 3px;
    overflow: hidden;
}

.lrnprog .about-area {
    padding: 56px 56px;
    display: flex;
    flex-direction: row;
    gap: 56px;
    align-items: flex-start;
}

.lrnprog .about-area .about-left {
    flex: 1 1 0;
    min-width: 0;
}

.lrnprog .about-area .about-right {
    flex: 0 0 340px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.lrnprog .about-area h2 {
    font-size: 38px;
    line-height: 1.1;
    letter-spacing: 0.01em;
    margin: 0 0 16px 0;
    background: linear-gradient(110deg, #4C2ED5 10%, #45C9D0 90%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.lrnprog .about-area p {
    font-size: 15px;
    line-height: 1.7;
    color: #2a2a3a;
    margin: 0 0 16px 0;
    letter-spacing: 0.01em;
}

.lrnprog .about-area .kw-badge {
    display: inline-block;
    background: rgba(69, 201, 208, 0.13);
    color: #18183a;
    border-radius: 32px;
    padding: 4px 16px;
    font-size: 13px;
    letter-spacing: 0.02em;
    margin: 0 0 16px 0;
}

.lrnprog .statbox {
    border-radius: 10px;
    border: 2px solid #D9DFE4;
    padding: 16px;
    background: #fff;
    box-shadow: 1px 1px 4px 0 rgba(69, 201, 208, 0.06);
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.lrnprog .statbox .stat-num {
    font-size: 38px;
    line-height: 1.1;
    color: #4C2ED5;
    letter-spacing: 0.01em;
}

.lrnprog .statbox .stat-label {
    font-size: 13px;
    line-height: 1.4;
    color: #555;
    letter-spacing: 0.02em;
}

.lrnprog .flicker-accent {
    animation: flicker 5s ease-in-out infinite;
}

@keyframes flicker {

    0%,
    100% {
        opacity: 1;
    }

    45% {
        opacity: 1;
    }

    50% {
        opacity: 0.7;
    }

    55% {
        opacity: 1;
    }

    80% {
        opacity: 1;
    }

    83% {
        opacity: 0.82;
    }

    86% {
        opacity: 1;
    }
}

.lrnprog .divider2 {
    height: 1px;
    background: linear-gradient(90deg, transparent, #D9DFE4 30%, #D9DFE4 70%, transparent);
    margin: 0 56px;
}

@media (max-width: 1024px) {
    .lrnprog .pghead {
        flex-direction: column;
        padding: 28px 28px 16px 28px;
        gap: 28px;
    }

    .lrnprog .pghead-img {
        flex: 0 0 auto;
        width: 100%;
    }

    .lrnprog .cardgrid {
        grid-template-columns: repeat(2, 1fr);
    }

    .lrnprog .cards-area {
        padding: 28px 28px 16px 28px;
    }

    .lrnprog .metrics-area {
        padding: 28px 28px;
    }

    .lrnprog .met-row {
        flex-direction: column;
    }

    .lrnprog .met-legend {
        flex: 0 0 auto;
        width: 100%;
    }

    .lrnprog .about-area {
        flex-direction: column;
        padding: 28px 28px;
        gap: 28px;
    }

    .lrnprog .about-area .about-right {
        flex: 0 0 auto;
        width: 100%;
        flex-direction: row;
    }

    .lrnprog .divider,
    .lrnprog .divider2 {
        margin: 0 28px;
        width: calc(100% - 56px);
    }
}

@media (max-width: 640px) {
    .lrnprog .pghead {
        padding: 16px 16px 8px 16px;
    }

    .lrnprog .pghead-text h1 {
        font-size: 38px;
    }

    .lrnprog .cardgrid {
        grid-template-columns: 1fr;
    }

    .lrnprog .cards-area {
        padding: 16px 16px 8px 16px;
    }

    .lrnprog .metrics-area {
        padding: 16px 16px;
    }

    .lrnprog .about-area {
        padding: 16px 16px;
    }

    .lrnprog .about-area .about-right {
        flex-direction: column;
    }

    .lrnprog .divider,
    .lrnprog .divider2 {
        margin: 0 16px;
        width: calc(100% - 32px);
    }

    .lrnprog .about-area h2 {
        font-size: 28px;
    }
}

.frst {
    max-width: 100%;
    overflow-x: hidden;
}

.frst .pgwrap {
    max-width: 1366px;
    margin: 0 auto;
    padding: 0 28px;
}

.frst .titblk {
    background: #1a1230;
    padding: 56px 0;
    position: relative;
}

.frst .titblk::after {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 3px;
    height: 100%;
    background: linear-gradient(180deg, transparent, #45C9D0, transparent);
}

.frst .titblk .pgwrap {
    display: flex;
    flex-direction: row;
    gap: 56px;
    align-items: center;
}

.frst .titblk .tittext {
    flex: 1 1 55%;
}

.frst .titblk .titimg {
    flex: 1 1 40%;
    border-radius: 10px;
    overflow: hidden;
    position: relative;
}

.frst .titblk .titimg img {
    width: 100%;
    height: 420px;
    object-fit: cover;
    display: block;
}

.frst .titblk .titimg::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(76, 46, 213, 0.55), transparent 60%, rgba(69, 201, 208, 0.3));
    pointer-events: none;
}

.frst .titblk .tagyear {
    display: inline-block;
    background: rgba(69, 201, 208, 0.18);
    color: #45C9D0;
    font-size: 13px;
    letter-spacing: 0.02em;
    padding: 4px 16px;
    border-radius: 3px;
    margin-bottom: 28px;
    border: 1px solid rgba(69, 201, 208, 0.35);
}

.frst .titblk .tith1 {
    font-size: 50px;
    line-height: 1.1;
    letter-spacing: 0.01em;
    color: #f2f4f7;
    margin-bottom: 28px;
    background: linear-gradient(120deg, #45C9D0, rgba(255, 255, 255, 0.15), #4C2ED5);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    animation: sweeptxt 1.1s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
    background-size: 200% 100%;
}

@keyframes sweeptxt {
    from {
        background-position: 100% 0;
    }

    to {
        background-position: 0% 0;
    }
}

.frst .titblk .titdesc {
    font-size: 17px;
    line-height: 1.7;
    color: #c8d0dc;
    letter-spacing: 0.01em;
    max-width: 520px;
    margin-bottom: 28px;
}

.frst .titblk .titbtn {
    display: inline-block;
    font-size: 15px;
    letter-spacing: 0.02em;
    color: #45C9D0;
    border: 2px solid #45C9D0;
    border-radius: 3px;
    padding: 16px 28px;
    background: transparent;
    cursor: pointer;
    position: relative;
    transition: color 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94), background 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    text-decoration: none;
}

.frst .titblk .titbtn::before {
    content: '';
    position: absolute;
    inset: 4px;
    border: 1px solid rgba(69, 201, 208, 0);
    border-radius: 3px;
    transition: border-color 0.55s ease-in-out;
    pointer-events: none;
}

.frst .titblk .titbtn:hover {
    background: rgba(69, 201, 208, 0.12);
    color: #f2f4f7;
}

.frst .titblk .titbtn:hover::before {
    border-color: rgba(69, 201, 208, 0.55);
}

.frst .titblk .titbtn:focus {
    outline: 2px solid #45C9D0;
    outline-offset: 4px;
}

.frst .divline {
    height: 1px;
    background: linear-gradient(90deg, transparent, #45C9D0, transparent);
}

.frst .numblk {
    background: #f2f5f8;
    padding: 56px 0;
}

.frst .numblk .numgrid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 28px;
}

.frst .numblk .numcard {
    background: #fff;
    border-radius: 10px;
    padding: 28px;
    box-shadow: 1px 4px 22px 0 rgba(69, 201, 208, 0.08);
    position: relative;
    transition: box-shadow 0.55s ease-in-out, transform 0.55s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.frst .numblk .numcard:hover {
    box-shadow: 1px 8px 48px 0 rgba(69, 201, 208, 0.11);
    transform: translateY(-4px);
}

.frst .numblk .numcard .ncounter {
    position: absolute;
    top: 8px;
    right: 16px;
    font-size: 13px;
    color: #4C2ED5;
    opacity: 0.45;
    letter-spacing: 0.02em;
}

.frst .numblk .numcard .nval {
    font-size: 38px;
    line-height: 1.1;
    letter-spacing: 0.01em;
    background: linear-gradient(110deg, #4C2ED5, transparent 70%, #45C9D0);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    margin-bottom: 8px;
}

.frst .numblk .numcard .nlabel {
    font-size: 15px;
    line-height: 1.4;
    color: #2d2d3a;
    letter-spacing: 0.01em;
}

.frst .numblk .numcard .ndesc {
    font-size: 13px;
    line-height: 1.7;
    color: #555566;
    margin-top: 8px;
    letter-spacing: 0.01em;
}

.frst .numblk .numh2 {
    font-size: 28px;
    line-height: 1.4;
    letter-spacing: 0.01em;
    color: #1a1230;
    margin-bottom: 28px;
    background: linear-gradient(110deg, #4C2ED5, transparent 60%, #45C9D0);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.frst .divline2 {
    height: 1px;
    background: linear-gradient(90deg, transparent, #4C2ED5, transparent);
}

.frst .hesblk {
    padding: 56px 0;
    background: #fff;
}

.frst .hesblk .hesgrid {
    display: flex;
    flex-direction: row;
    gap: 56px;
    align-items: flex-start;
}

.frst .hesblk .hesimg {
    flex: 0 0 44%;
    border-radius: 10px;
    overflow: hidden;
    position: relative;
    box-shadow: 1px 8px 48px 0 rgba(76, 46, 213, 0.11);
}

.frst .hesblk .hesimg img {
    width: 100%;
    height: 380px;
    object-fit: cover;
    display: block;
}

.frst .hesblk .hesimg::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(200deg, rgba(76, 46, 213, 0.4), transparent 55%, rgba(69, 201, 208, 0.25));
    pointer-events: none;
}

.frst .hesblk .hestxt {
    flex: 1 1 50%;
}

.frst .hesblk .hesh2 {
    font-size: 38px;
    line-height: 1.1;
    letter-spacing: 0.01em;
    margin-bottom: 28px;
    background: linear-gradient(110deg, #4C2ED5, transparent 60%, #45C9D0);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.frst .hesblk .hesp {
    font-size: 17px;
    line-height: 1.7;
    color: #2d2d3a;
    letter-spacing: 0.01em;
    margin-bottom: 16px;
}

.frst .hesblk .hesaccent {
    display: inline-block;
    background: rgba(76, 46, 213, 0.08);
    border-radius: 3px;
    padding: 16px 28px;
    font-size: 15px;
    line-height: 1.7;
    color: #2d2d3a;
    letter-spacing: 0.01em;
    margin-top: 8px;
}

.frst .hesblk .hesaccent strong {
    color: #4C2ED5;
}

.frst .divline3 {
    height: 1px;
    background: linear-gradient(90deg, transparent, #D9DFE4 40%, #45C9D0 60%, transparent);
}

.frst .apprblk {
    padding: 56px 0;
    background: #f7f4ff;
}

.frst .apprblk .apprh2 {
    font-size: 38px;
    line-height: 1.1;
    letter-spacing: 0.01em;
    margin-bottom: 8px;
    background: linear-gradient(110deg, #4C2ED5, transparent 60%, #45C9D0);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.frst .apprblk .apprsub {
    font-size: 17px;
    line-height: 1.4;
    color: #555566;
    letter-spacing: 0.01em;
    margin-bottom: 56px;
    max-width: 600px;
}

.frst .apprblk .apprsteps {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px;
}

.frst .apprblk .step {
    background: #fff;
    border-radius: 10px;
    padding: 28px;
    box-shadow: 1px 1px 4px 0 rgba(76, 46, 213, 0.06);
    display: flex;
    flex-direction: row;
    gap: 16px;
    align-items: flex-start;
    transition: box-shadow 0.6s ease-in-out;
}

.frst .apprblk .step:hover {
    box-shadow: 1px 4px 22px 0 rgba(76, 46, 213, 0.08);
}

.frst .apprblk .stepnum {
    font-size: 28px;
    line-height: 1.1;
    color: #D9DFE4;
    font-weight: 700;
    flex-shrink: 0;
    width: 44px;
    letter-spacing: 0.01em;
}

.frst .apprblk .steptxt .steph {
    font-size: 17px;
    line-height: 1.4;
    color: #1a1230;
    letter-spacing: 0.01em;
    margin-bottom: 8px;
}

.frst .apprblk .steptxt .stepp {
    font-size: 15px;
    line-height: 1.7;
    color: #555566;
    letter-spacing: 0.01em;
}

.frst .apprblk .apprimgrow {
    margin-top: 28px;
    border-radius: 10px;
    overflow: hidden;
    position: relative;
    box-shadow: 1px 4px 22px 0 rgba(76, 46, 213, 0.08);
}

.frst .apprblk .apprimgrow img {
    width: 100%;
    height: 300px;
    object-fit: cover;
    display: block;
}

.frst .apprblk .apprimgrow::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(170deg, rgba(76, 46, 213, 0.35), transparent 50%, rgba(69, 201, 208, 0.2));
    pointer-events: none;
}

.frst .divline4 {
    height: 1px;
    background: linear-gradient(90deg, transparent, #4C2ED5, transparent);
}

.frst .expblk {
    padding: 56px 0;
    background: #fff;
}

.frst .expblk .expgrid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px;
}

.frst .expblk .exph2 {
    font-size: 38px;
    line-height: 1.1;
    letter-spacing: 0.01em;
    margin-bottom: 28px;
    grid-column: 1 / -1;
    background: linear-gradient(110deg, #4C2ED5, transparent 60%, #45C9D0);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.frst .expblk .expcard {
    background: #f2f5f8;
    border-radius: 10px;
    padding: 28px;
    box-shadow: 1px 1px 4px 0 rgba(69, 201, 208, 0.06);
    position: relative;
    transition: box-shadow 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.frst .expblk .expcard:hover {
    box-shadow: 1px 4px 22px 0 rgba(69, 201, 208, 0.08);
    transform: translateY(-3px);
}

.frst .expblk .expcard .ecounter {
    position: absolute;
    top: 8px;
    right: 16px;
    font-size: 13px;
    color: #45C9D0;
    opacity: 0.55;
    letter-spacing: 0.02em;
}

.frst .expblk .expcard .ecname {
    font-size: 17px;
    line-height: 1.4;
    color: #1a1230;
    letter-spacing: 0.01em;
    margin-bottom: 4px;
}

.frst .expblk .expcard .ecrole {
    font-size: 13px;
    color: #4C2ED5;
    letter-spacing: 0.02em;
    margin-bottom: 16px;
}

.frst .expblk .expcard .ecq {
    font-size: 15px;
    line-height: 1.7;
    color: #2d2d3a;
    letter-spacing: 0.01em;
}

.frst .expblk .expcard .ectag {
    display: inline-block;
    background: rgba(69, 201, 208, 0.12);
    color: #1a1230;
    font-size: 13px;
    letter-spacing: 0.02em;
    padding: 4px 8px;
    border-radius: 3px;
    margin-top: 16px;
}

.frst .expblk .expimgcard {
    border-radius: 10px;
    overflow: hidden;
    position: relative;
    box-shadow: 1px 4px 22px 0 rgba(76, 46, 213, 0.08);
}

.frst .expblk .expimgcard img {
    width: 100%;
    height: 100%;
    min-height: 260px;
    object-fit: cover;
    display: block;
}

.frst .expblk .expimgcard::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(160deg, rgba(76, 46, 213, 0.4), transparent 55%, rgba(69, 201, 208, 0.2));
    pointer-events: none;
}

@media (max-width: 1024px) {
    .frst .titblk .tith1 {
        font-size: 38px;
    }

    .frst .numblk .numgrid {
        grid-template-columns: repeat(2, 1fr);
    }

    .frst .hesblk .hesgrid {
        flex-direction: column;
        gap: 28px;
    }

    .frst .hesblk .hesimg {
        flex: none;
        width: 100%;
    }

    .frst .apprblk .apprsteps {
        grid-template-columns: 1fr;
    }

    .frst .expblk .expgrid {
        grid-template-columns: 1fr;
    }

    .frst .expblk .expimgcard {
        min-height: 220px;
    }

    .frst .titblk .pgwrap {
        flex-direction: column;
        gap: 28px;
    }

    .frst .titblk .titimg {
        width: 100%;
    }
}

@media (max-width: 640px) {
    .frst .titblk {
        padding: 56px 0;
    }

    .frst .titblk .tith1 {
        font-size: 28px;
    }

    .frst .titblk .titdesc {
        font-size: 15px;
    }

    .frst .numblk .numgrid {
        grid-template-columns: 1fr;
    }

    .frst .numblk .numcard .nval {
        font-size: 28px;
    }

    .frst .hesblk .hesh2 {
        font-size: 28px;
    }

    .frst .apprblk .apprh2 {
        font-size: 28px;
    }

    .frst .expblk .exph2 {
        font-size: 28px;
    }

    .frst .titblk .titimg img {
        height: 260px;
    }
}