html {
    scroll-behavior: smooth
}

body {
    margin: 0;
    overscroll-behavior: contain;
    overflow-x: hidden;
    font-family: 'Merriweather', serif;
    color: #1a1a1a;
    background: #fff;
    font-size: 15px;
    line-height: 1.8
}

.hd-box,
.ft-box,
.mn-box {
    box-sizing: border-box
}

.hd-box {
    background: linear-gradient(135deg, #f5f0ff 0%, #fff 100%);
    padding: 24px 32px;
    border-bottom: 2px solid #7b44df1f;
    box-shadow: 0 7px 18px 1px #7b44df1a
}

.hd-inner {
    max-width: 1024px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 32px;
    align-items: center
}

.brand-zone {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px
}

.brand-mark {
    width: 42px;
    height: 42px;
    background: #fff;
    border: 3px solid #7B44DF;
    border-radius: 10px;
    box-shadow: 0 7px 18px 1px #7b44df1a;
    padding: 4px;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform .28s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.brand-mark:hover {
    transform: scale(1.08)
}

.brand-mark img {
    width: 100%;
    height: 100%;
    object-fit: contain
}

.brand-txt {
    font-size: 15px;
    font-weight: 700;
    color: #7B44DF;
    letter-spacing: 0;
    text-transform: none
}

.nav-zone {
    display: flex;
    justify-content: center;
    align-items: center
}

.nav-lst {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 24px;
    justify-content: center
}

.nav-itm {
    margin: 0;
    padding: 0
}

.nav-lnk {
    display: inline-block;
    padding: 8px 16px;
    font-size: 15px;
    font-weight: 400;
    color: #2d2d2d;
    text-decoration: none;
    border-radius: 10px;
    background: transparent;
    position: relative;
    overflow: hidden;
    transition: color .25s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.nav-lnk::before {
    content: '';
    position: absolute;
    top: 0;
    right: 100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, #7b44df14 0%, #7b44df26 100%);
    transition: right .3s cubic-bezier(0.34, 1.56, 0.64, 1);
    z-index: -1
}

.nav-lnk:hover::before {
    right: 0
}

.nav-lnk:hover {
    color: #7B44DF
}

.nav-lnk:focus {
    outline: 2px solid #7B44DF;
    outline-offset: 4px;
    transform: scale(1.02)
}

.contact-zone {
    display: flex;
    flex-direction: column;
    gap: 4px;
    align-items: flex-end
}

.phone-lnk {
    font-size: 15px;
    font-weight: 700;
    color: #036F3A;
    text-decoration: none;
    transition: color .22s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.phone-lnk:hover {
    color: #7B44DF
}

.phone-lnk:focus {
    outline: 2px solid #036F3A;
    outline-offset: 2px;
    transform: scale(1.02)
}

.email-lnk {
    font-size: 15px;
    font-weight: 400;
    color: #5d5d5d;
    text-decoration: none;
    transition: color .22s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.email-lnk:hover {
    color: #BF173A
}

.email-lnk:focus {
    outline: 2px solid #BF173A;
    outline-offset: 2px;
    transform: scale(1.02)
}

@media (max-width: 1023px) {
    .hd-inner {
        grid-template-columns: 1fr;
        gap: 24px
    }

    .brand-zone {
        justify-self: center
    }

    .nav-zone {
        justify-content: center
    }

    .contact-zone {
        align-items: center;
        justify-self: center
    }
}

@media (max-width: 767px) {
    .hd-box {
        padding: 16px 24px
    }

    .hd-inner {
        gap: 16px
    }

    .nav-lst {
        gap: 4px 16px
    }

    .nav-lnk {
        padding: 8px 12px;
        font-size: 15px
    }
}

@media (max-width: 359px) {
    .hd-box {
        padding: 16px
    }

    .nav-lst {
        gap: 4px 8px
    }

    .nav-lnk {
        padding: 8px
    }
}

.ft-box {
    background: linear-gradient(180deg, #fff 0%, #f8f5ff 100%);
    border-top: 2px solid #7b44df1f;
    padding: 64px 32px 32px
}

.ft-inner {
    max-width: 1024px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 32px;
    box-sizing: border-box
}

.ft-col {
    box-sizing: border-box
}

.ft-brand-col {
    display: flex;
    flex-direction: column;
    gap: 16px
}

.ft-logo-box {
    width: 48px;
    height: 48px;
    background: #fff;
    border: 3px solid #7B44DF;
    border-radius: 10px;
    box-shadow: 0 7px 18px 1px #7b44df1a;
    padding: 4px;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center
}

.ft-logo-box img {
    width: 100%;
    height: 100%;
    object-fit: contain
}

.ft-desc {
    font-size: 15px;
    line-height: 1.8;
    color: #4d4d4d;
    margin: 0
}

.ft-heading {
    font-size: 18px;
    font-weight: 700;
    color: #7B44DF;
    margin: 0 0 16px
}

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

.ft-list-itm {
    margin: 0;
    padding: 0
}

.ft-link {
    font-size: 15px;
    color: #2d2d2d;
    text-decoration: none;
    transition: color .24s cubic-bezier(0.34, 1.56, 0.64, 1);
    display: inline-block
}

.ft-link:hover {
    color: #7B44DF
}

.ft-link:focus {
    outline: 2px solid #7B44DF;
    outline-offset: 2px;
    transform: scale(1.02)
}

.ft-contact-row {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-bottom: 8px
}

.ft-contact-row:last-child {
    margin-bottom: 0
}

.ft-icon {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    margin-top: 2px
}

.ft-icon svg {
    width: 100%;
    height: 100%
}

.ft-contact-txt {
    font-size: 15px;
    line-height: 1.8;
    color: #4d4d4d;
    margin: 0
}

.ft-contact-link {
    color: #036F3A;
    text-decoration: none;
    transition: color .22s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.ft-contact-link:hover {
    color: #7B44DF
}

.ft-contact-link:focus {
    outline: 2px solid #036F3A;
    outline-offset: 2px;
    transform: scale(1.02)
}

.ft-bottom {
    max-width: 1024px;
    margin: 32px auto 0;
    padding-top: 24px;
    border-top: 1px solid #7b44df1f;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
    box-sizing: border-box
}

.ft-copy {
    font-size: 15px;
    color: #6d6d6d;
    margin: 0
}

.ft-legal-lst {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: 24px
}

.ft-legal-itm {
    margin: 0;
    padding: 0
}

.ft-legal-link {
    font-size: 15px;
    color: #5d5d5d;
    text-decoration: none;
    transition: color .24s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.ft-legal-link:hover {
    color: #BF173A
}

.ft-legal-link:focus {
    outline: 2px solid #BF173A;
    outline-offset: 2px;
    transform: scale(1.02)
}

@media (max-width: 1023px) {
    .ft-inner {
        grid-template-columns: 1fr 1fr
    }

    .ft-brand-col {
        grid-column: 1 / -1
    }
}

@media (max-width: 767px) {
    .ft-box {
        padding: 32px 24px 24px
    }

    .ft-inner {
        grid-template-columns: 1fr;
        gap: 24px
    }

    .ft-bottom {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px
    }

    .ft-legal-lst {
        gap: 16px
    }
}

@media (max-width: 359px) {
    .ft-box {
        padding: 24px 16px 16px
    }

    .ft-legal-lst {
        flex-direction: column;
        gap: 8px
    }
}

.consent-popup {
    position: fixed;
    bottom: 24px;
    right: 24px;
    max-width: 420px;
    background: #fff;
    border: 2px solid #7B44DF;
    border-radius: 20px;
    box-shadow: 0 12px 36px 1px #7b44df24;
    padding: 24px;
    box-sizing: border-box;
    z-index: 1000;
    display: none;
    transition: transform .26s cubic-bezier(0.34, 1.56, 0.64, 1), opacity .26s cubic-bezier(0.34, 1.56, 0.64, 1);
    transform: translateY(100px);
    opacity: 0
}

.consent-popup.visible {
    transform: translateY(0);
    opacity: 1
}

.consent-hd {
    font-size: 18px;
    font-weight: 700;
    color: #7B44DF;
    margin: 0 0 8px
}

.consent-desc {
    font-size: 15px;
    line-height: 1.8;
    color: #4d4d4d;
    margin: 0 0 16px
}

.consent-opts {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 16px
}

.consent-opt {
    display: flex;
    align-items: center;
    gap: 8px
}

.consent-chk {
    width: 18px;
    height: 18px;
    border: 2px solid #7B44DF;
    border-radius: 3px;
    cursor: pointer;
    flex-shrink: 0;
    transition: background .22s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.consent-chk:checked {
    background: #7B44DF
}

.consent-lbl {
    font-size: 15px;
    color: #2d2d2d;
    cursor: pointer
}

.consent-sale-notice {
    font-size: 15px;
    line-height: 1.8;
    color: #4d4d4d;
    margin: 0 0 8px;
    padding: 8px;
    background: #bf173a14;
    border-radius: 5px
}

.consent-sale-opt {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 16px
}

.consent-btns {
    display: flex;
    gap: 16px;
    justify-content: flex-end
}

.consent-btn {
    padding: 8px 16px;
    font-size: 15px;
    font-weight: 400;
    color: #2d2d2d;
    text-decoration: underline;
    background: transparent;
    border: none;
    cursor: pointer;
    border-radius: 5px;
    transition: color .24s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.consent-btn:hover {
    color: #7B44DF
}

.consent-btn:focus {
    outline: 2px solid #7B44DF;
    outline-offset: 2px;
    transform: scale(1.02)
}

.consent-btn-primary {
    color: #7B44DF;
    font-weight: 700
}

.consent-mini {
    position: fixed;
    bottom: 24px;
    right: 24px;
    background: #7B44DF;
    color: #fff;
    padding: 8px 16px;
    border-radius: 32px;
    box-shadow: 0 7px 18px 1px #7b44df1a;
    cursor: pointer;
    font-size: 15px;
    font-weight: 700;
    display: none;
    z-index: 1000;
    transition: transform .24s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.consent-mini:hover {
    transform: scale(1.05)
}

.consent-mini:focus {
    outline: 2px solid #fff;
    outline-offset: 2px
}

@media (max-width: 767px) {
    .consent-popup {
        bottom: 16px;
        right: 16px;
        left: 16px;
        max-width: none
    }

    .consent-mini {
        bottom: 16px;
        right: 16px
    }
}

@media (max-width: 359px) {
    .consent-popup {
        padding: 16px
    }

    .consent-btns {
        flex-direction: column;
        gap: 8px
    }
}

.policy-block {
    max-width: 1024px;
    margin: 0 auto;
    padding: 64px 16px
}

@media (min-width: 768px) {
    .policy-block {
        padding: 64px 32px
    }
}

.policy-block h1 {
    font-size: 42px;
    line-height: 1.2;
    color: #7B44DF;
    margin: 0 0 32px
}

.policy-block h2 {
    font-size: 30px;
    line-height: 1.2;
    color: #036F3A;
    margin: 64px 0 24px
}

.policy-block h3 {
    font-size: 22px;
    line-height: 1.2;
    color: #333;
    margin: 32px 0 16px
}

.policy-block h4 {
    font-size: 18px;
    line-height: 1.2;
    color: #333;
    margin: 24px 0 16px
}

.policy-block h5 {
    font-size: 15px;
    line-height: 1.2;
    color: #555;
    margin: 24px 0 16px;
    text-transform: uppercase
}

.policy-block h6 {
    font-size: 15px;
    line-height: 1.2;
    color: #666;
    margin: 16px 0 8px
}

.policy-block p {
    font-size: 18px;
    line-height: 1.8;
    color: #333;
    margin: 0 0 24px
}

.policy-block ul,
.policy-block ol {
    font-size: 18px;
    line-height: 1.8;
    color: #333;
    margin: 0 0 24px;
    padding-left: 32px
}

.policy-block li {
    margin: 0 0 8px
}

.policy-block li:last-child {
    margin-bottom: 0
}

.policy-block strong,
.policy-block b {
    color: #036F3A;
    font-weight: 600
}

.policy-block em,
.policy-block i {
    font-style: italic;
    color: #555
}

.policy-block table {
    width: 100%;
    border-collapse: collapse;
    margin: 0 0 32px;
    font-size: 15px;
    line-height: 1.8;
    background: #fff;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 1px 6px 1px #7b44df12
}

.policy-block thead {
    background: #7B44DF;
    color: #fff
}

.policy-block th {
    padding: 16px;
    text-align: left;
    font-weight: 600
}

.policy-block td {
    padding: 16px;
    border-bottom: 1px solid #f0f0f0;
    color: #333
}

.policy-block tbody tr:last-child td {
    border-bottom: none
}

.policy-block tbody tr:nth-child(even) {
    background: #fafafa
}

.policy-block hr {
    border: none;
    height: 2px;
    background: linear-gradient(to right, #7B44DF, #036F3A);
    margin: 64px 0;
    border-radius: 3px
}

@media (max-width: 767px) {
    .policy-block h1 {
        font-size: 30px;
        margin-bottom: 24px
    }

    .policy-block h2 {
        font-size: 22px;
        margin-top: 32px
    }

    .policy-block h3 {
        font-size: 18px
    }

    .policy-block p,
    .policy-block ul,
    .policy-block ol {
        font-size: 15px
    }

    .policy-block table {
        font-size: 15px
    }

    .policy-block th,
    .policy-block td {
        padding: 8px
    }
}

.prm {
    background: #fff;
    position: relative;
    overflow-x: clip
}

.prm::before {
    content: '';
    position: absolute;
    top: 8%;
    left: -12%;
    width: 420px;
    height: 420px;
    border-radius: 50%;
    background: radial-gradient(circle, #7b44df0a 0%, transparent 70%);
    pointer-events: none;
    z-index: 0
}

.prm::after {
    content: '';
    position: absolute;
    top: 42%;
    right: -8%;
    width: 380px;
    height: 380px;
    border-radius: 50%;
    background: radial-gradient(circle, #036f3a08 0%, transparent 70%);
    pointer-events: none;
    z-index: 0
}

.prm .geo-accent-1 {
    position: absolute;
    bottom: 18%;
    left: 4%;
    width: 280px;
    height: 280px;
    border-radius: 50%;
    background: radial-gradient(circle, #bf173a05 0%, transparent 70%);
    pointer-events: none;
    z-index: 0
}

.prm .divider-band {
    width: 100%;
    height: 3px;
    background: linear-gradient(73deg, #7B44DF 0%, transparent 100%);
    margin: 64px 0
}

.prm .opener {
    max-width: 1024px;
    margin: 0 auto;
    padding: 64px 24px;
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    animation: bounce-in 280ms cubic-bezier(0.34, 1.56, 0.64, 1) forwards
}

@keyframes bounce-in {
    0% {
        opacity: 0;
        transform: translateY(24px)
    }

    100% {
        opacity: 1;
        transform: translateY(0)
    }
}

.prm .opener-img-wrap {
    width: 100%;
    max-width: 680px;
    margin-bottom: 32px;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 7px 18px 1px #7b44df1a;
    position: relative
}

.prm .opener-img {
    width: 100%;
    height: auto;
    display: block;
    position: relative;
    filter: blur(2px) brightness(0.88);
    transition: filter 320ms cubic-bezier(0.34, 1.56, 0.64, 1)
}

.prm .opener-img::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 45%;
    background: linear-gradient(to bottom, #00000052 0%, transparent 100%);
    pointer-events: none
}

.prm .opener-img-wrap:hover .opener-img {
    filter: blur(0) brightness(1)
}

.prm .opener-quote-mark {
    position: absolute;
    top: -42px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 180px;
    line-height: 1;
    color: #7b44df0f;
    font-weight: 700;
    pointer-events: none;
    z-index: 0
}

.prm .opener-txt {
    text-align: center;
    max-width: 640px;
    position: relative;
    z-index: 1
}

.prm .opener-h {
    font-size: 42px;
    line-height: 1.2;
    color: #1a1a2e;
    margin: 0 0 16px;
    font-weight: 700
}

.prm .value-zone {
    max-width: 1024px;
    margin: 0 auto;
    padding: 64px 24px;
    position: relative;
    z-index: 1;
    background: linear-gradient(73deg, #7b44df05 0%, #036f3a05 100%);
    border-radius: 32px;
    margin-top: 32px;
    margin-bottom: 32px
}

.prm .value-zone::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    border-radius: 32px;
    background: linear-gradient(73deg, #7B44DF 0%, #036F3A 100%);
    opacity: 0;
    transition: opacity 280ms cubic-bezier(0.34, 1.56, 0.64, 1);
    pointer-events: none;
    z-index: -1
}

.prm .value-inner {
    display: grid;
    grid-template-columns: 1fr;
    gap: 32px;
    align-items: center
}

.prm .value-txt h2 {
    font-size: 30px;
    line-height: 1.2;
    color: #1a1a2e;
    margin: 0 0 24px;
    font-weight: 700;
    position: relative;
    display: inline-block
}

.prm .value-txt h2::after {
    content: '';
    position: absolute;
    bottom: -8px;
    left: 0;
    width: 0;
    height: 3px;
    background: linear-gradient(73deg, #7B44DF 0%, #036F3A 100%);
    transition: width 310ms cubic-bezier(0.68, -0.55, 0.27, 1.55)
}

.prm .value-txt:hover h2::after {
    width: 100%
}

.prm .value-txt p {
    font-size: 18px;
    line-height: 1.8;
    color: #2d2d44;
    margin: 0 0 16px
}

.prm .value-txt p:last-child {
    margin-bottom: 0
}

.prm .value-img-wrap {
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 7px 18px 1px #036f3a1a
}

.prm .value-img {
    width: 100%;
    height: auto;
    display: block;
    filter: blur(3px);
    transition: filter 290ms cubic-bezier(0.34, 1.56, 0.64, 1)
}

.prm .value-img-wrap:hover .value-img {
    filter: blur(0)
}

@media (min-width: 768px) {
    .prm .value-inner {
        grid-template-columns: 1fr 1fr
    }
}

.prm .gap-frame {
    max-width: 1024px;
    margin: 0 auto;
    padding: 64px 24px;
    position: relative;
    z-index: 1
}

.prm .gap-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 64px;
    align-items: start
}

.prm .gap-col-a {
    position: relative
}

.prm .gap-col-a h2 {
    font-size: 30px;
    line-height: 1.2;
    color: #1a1a2e;
    margin: 0 0 24px;
    font-weight: 700
}

.prm .gap-col-a p {
    font-size: 18px;
    line-height: 1.8;
    color: #2d2d44;
    margin: 0 0 16px
}

.prm .gap-col-a p:last-child {
    margin-bottom: 0
}

.prm .gap-col-b {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px
}

.prm .gap-card {
    background: #fefefe;
    border-radius: 20px;
    padding: 24px;
    box-shadow: 0 1px 6px 1px #7b44df12;
    position: relative;
    overflow: hidden;
    transition: transform 270ms cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 270ms cubic-bezier(0.34, 1.56, 0.64, 1)
}

.prm .gap-card::before {
    content: '';
    position: absolute;
    top: 0;
    right: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(73deg, #7b44df08 0%, #036f3a08 100%);
    transition: right 320ms cubic-bezier(0.68, -0.55, 0.27, 1.55);
    pointer-events: none;
    z-index: 0
}

.prm .gap-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 36px 1px #7b44df24
}

.prm .gap-card:hover::before {
    right: 0
}

.prm .gap-card-h {
    font-size: 22px;
    line-height: 1.2;
    color: #7B44DF;
    margin: 0 0 16px;
    font-weight: 700;
    position: relative;
    z-index: 1
}

.prm .gap-card-txt {
    font-size: 15px;
    line-height: 1.8;
    color: #2d2d44;
    margin: 0;
    position: relative;
    z-index: 1
}

@media (min-width: 768px) {
    .prm .gap-layout {
        grid-template-columns: 1fr 1fr
    }

    .prm .gap-col-b {
        grid-template-columns: 1fr
    }
}

.prm .proof-shell {
    max-width: 1024px;
    margin: 64px auto;
    padding: 0 24px;
    position: relative;
    z-index: 1
}

.prm .proof-bg {
    position: relative;
    border-radius: 32px;
    overflow: hidden;
    box-shadow: 0 12px 36px 1px #036f3a24
}

.prm .proof-bg-img {
    width: 100%;
    height: 480px;
    object-fit: cover;
    object-position: center;
    display: block;
    filter: blur(2px);
    transition: filter 300ms cubic-bezier(0.34, 1.56, 0.64, 1)
}

.prm .proof-bg:hover .proof-bg-img {
    filter: blur(0)
}

.prm .proof-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(73deg, #7b44dfe0 0%, #036f3ae0 100%);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 32px;
    text-align: center
}

.prm .proof-overlay h2 {
    font-size: 30px;
    line-height: 1.2;
    color: #fff;
    margin: 0 0 24px;
    font-weight: 700;
    max-width: 680px
}

.prm .proof-overlay p {
    font-size: 18px;
    line-height: 1.8;
    color: #fff;
    margin: 0;
    max-width: 640px
}

@media (min-width: 768px) {
    .prm .proof-bg-img {
        height: 560px
    }
}

.prm .avail-container {
    max-width: 1024px;
    margin: 0 auto;
    padding: 64px 24px;
    position: relative;
    z-index: 1
}

.prm .avail-container h2 {
    font-size: 30px;
    line-height: 1.2;
    color: #1a1a2e;
    margin: 0 0 32px;
    font-weight: 700;
    text-align: center
}

.prm .avail-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px
}

.prm .avail-item {
    background: #fefefe;
    border-radius: 20px;
    padding: 32px;
    box-shadow: 0 1px 6px 1px #bf173a12;
    position: relative;
    overflow: hidden;
    transition: transform 260ms cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 260ms cubic-bezier(0.34, 1.56, 0.64, 1);
    display: flex;
    flex-direction: column;
    gap: 16px
}

.prm .avail-item::before {
    content: '';
    position: absolute;
    top: 0;
    right: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(73deg, #bf173a05 0%, #7b44df05 100%);
    transition: right 300ms cubic-bezier(0.68, -0.55, 0.27, 1.55);
    pointer-events: none;
    z-index: 0
}

.prm .avail-item:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 36px 1px #bf173a24
}

.prm .avail-item:hover::before {
    right: 0
}

.prm .avail-icon {
    width: 56px;
    height: 56px;
    border-radius: 10px;
    background: linear-gradient(73deg, #7B44DF 0%, #036F3A 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    z-index: 1;
    box-shadow: 0 7px 18px 1px #7b44df1a
}

.prm .avail-icon svg {
    width: 28px;
    height: 28px;
    fill: #fff
}

.prm .avail-item h3 {
    font-size: 22px;
    line-height: 1.2;
    color: #1a1a2e;
    margin: 0;
    font-weight: 700;
    position: relative;
    z-index: 1
}

.prm .avail-item p {
    font-size: 15px;
    line-height: 1.8;
    color: #2d2d44;
    margin: 0;
    position: relative;
    z-index: 1
}

@media (min-width: 768px) {
    .prm .avail-grid {
        grid-template-columns: repeat(2, 1fr)
    }
}

@media (min-width: 1024px) {
    .prm .avail-grid {
        grid-template-columns: repeat(3, 1fr)
    }
}

.prm .approach-wrap {
    max-width: 720px;
    margin: 64px auto;
    padding: 0 24px;
    position: relative;
    z-index: 1
}

.prm .approach-inner {
    background: #fefefe;
    border-radius: 32px;
    padding: 64px 32px;
    box-shadow: 0 12px 36px 1px #7b44df24;
    position: relative;
    overflow: hidden
}

.prm .approach-inner::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -50%;
    width: 100%;
    height: 100%;
    background: radial-gradient(circle, #036f3a0a 0%, transparent 70%);
    pointer-events: none;
    z-index: 0
}

.prm .approach-inner h2 {
    font-size: 30px;
    line-height: 1.2;
    color: #1a1a2e;
    margin: 0 0 24px;
    font-weight: 700;
    text-align: center;
    position: relative;
    z-index: 1
}

.prm .approach-txt {
    font-size: 18px;
    line-height: 1.8;
    color: #2d2d44;
    margin: 0 0 16px;
    position: relative;
    z-index: 1;
    text-align: center
}

.prm .approach-txt:last-child {
    margin-bottom: 0
}

.prm .approach-profile {
    display: flex;
    align-items: center;
    gap: 24px;
    margin-top: 32px;
    padding-top: 32px;
    border-top: 2px solid #7b44df1f;
    position: relative;
    z-index: 1
}

.prm .approach-avatar {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
    box-shadow: 0 7px 18px 1px #036f3a1a
}

.prm .approach-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top;
    display: block;
    filter: blur(2px);
    transition: filter 280ms cubic-bezier(0.34, 1.56, 0.64, 1)
}

.prm .approach-avatar:hover img {
    filter: blur(0)
}

.prm .approach-meta h3 {
    font-size: 18px;
    line-height: 1.2;
    color: #1a1a2e;
    margin: 0 0 4px;
    font-weight: 700
}

.prm .approach-meta p {
    font-size: 15px;
    line-height: 1.8;
    color: #7B44DF;
    margin: 0
}

@keyframes grid-pulse {

    0%,
    100% {
        opacity: .12
    }

    50% {
        opacity: .28
    }
}

.prm .grid-bg {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    pointer-events: none;
    z-index: 0;
    overflow: hidden
}

.prm .grid-line-h {
    position: absolute;
    left: 0;
    right: 0;
    height: 1px;
    background: linear-gradient(73deg, #7b44df14 0%, #036f3a14 100%);
    animation: grid-pulse 4s ease-in-out infinite
}

.prm .grid-line-h:nth-child(1) {
    top: 20%;
    animation-delay: 0s
}

.prm .grid-line-h:nth-child(2) {
    top: 45%;
    animation-delay: 1.2s
}

.prm .grid-line-h:nth-child(3) {
    top: 70%;
    animation-delay: 2.4s
}

.prm .grid-line-v {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 1px;
    background: linear-gradient(to bottom, #7b44df14 0%, #036f3a14 100%);
    animation: grid-pulse 4s ease-in-out infinite
}

.prm .grid-line-v:nth-child(4) {
    left: 25%;
    animation-delay: .6s
}

.prm .grid-line-v:nth-child(5) {
    left: 50%;
    animation-delay: 1.8s
}

.prm .grid-line-v:nth-child(6) {
    left: 75%;
    animation-delay: 3s
}

::selection {
    background: #7b44df2e;
    color: #1a1a2e
}

.prm input::placeholder,
.prm textarea::placeholder {
    color: #8a8a9e;
    font-size: 14px
}

@media (min-width: 1440px) {
    .prm .opener {
        padding: 96px 24px
    }

    .prm .value-zone {
        padding: 96px 64px
    }

    .prm .gap-frame {
        padding: 96px 24px
    }

    .prm .avail-container {
        padding: 96px 24px
    }

    .prm .approach-wrap {
        margin: 96px auto
    }
}

.tm {
    background: #fff;
    color: #1a1a1a;
    overflow-x: clip;
    max-width: 100vw
}

.tm .lead-zone {
    position: relative;
    padding: 64px 24px;
    display: flex;
    align-items: center;
    gap: 32px;
    max-width: 1024px;
    margin: 0 auto;
    min-height: 520px
}

.tm .lead-txt {
    flex: 1;
    z-index: 2
}

.tm .lead-h {
    font-size: 42px;
    line-height: 1.2;
    margin: 0 0 24px;
    font-weight: 700
}

.tm .lead-h .pop {
    background: linear-gradient(73deg, #036F3A 0%, #7B44DF 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    display: inline-block
}

.tm .lead-p {
    font-size: 18px;
    line-height: 1.8;
    margin: 0;
    color: #4a4a4a
}

.tm .lead-img-wrap {
    position: relative;
    width: 340px;
    flex-shrink: 0;
    z-index: 1
}

.tm .lead-img-box {
    position: relative;
    width: 100%;
    height: 440px;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 12px 36px 1px #7b44df24
}

.tm .lead-img-box::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 160px;
    background: linear-gradient(180deg, #7b44df66 0%, #7b44df00 100%);
    z-index: 2;
    pointer-events: none
}

.tm .lead-img-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform 320ms cubic-bezier(0.34, 1.56, 0.64, 1)
}

.tm .lead-img-box:hover img {
    transform: scale(1.08)
}

.tm .lead-shapes {
    position: absolute;
    top: 50%;
    right: -40px;
    width: 180px;
    height: 180px;
    transform: translateY(-50%);
    pointer-events: none;
    z-index: 0
}

.tm .lead-shapes::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 80px;
    height: 80px;
    border: 3px solid #7B44DF;
    border-radius: 32px;
    opacity: .3;
    animation: tm-shake-1 4s ease-in-out 2s infinite
}

.tm .lead-shapes::after {
    content: '';
    position: absolute;
    bottom: 20px;
    right: 0;
    width: 60px;
    height: 60px;
    border: 3px solid #036F3A;
    border-radius: 50%;
    opacity: .3;
    animation: tm-shake-2 3.5s ease-in-out 2.5s infinite
}

@keyframes tm-shake-1 {

    0%,
    100% {
        transform: translate(0, 0) rotate(0deg)
    }

    10% {
        transform: translate(-3px, 2px) rotate(-2deg)
    }

    20% {
        transform: translate(3px, -2px) rotate(2deg)
    }

    30% {
        transform: translate(-2px, 3px) rotate(-1deg)
    }

    40% {
        transform: translate(2px, -3px) rotate(1deg)
    }

    50% {
        transform: translate(0, 0) rotate(0deg)
    }
}

@keyframes tm-shake-2 {

    0%,
    100% {
        transform: translate(0, 0)
    }

    15% {
        transform: translate(2px, -2px)
    }

    30% {
        transform: translate(-2px, 2px)
    }

    45% {
        transform: translate(2px, 2px)
    }

    60% {
        transform: translate(-2px, -2px)
    }

    75% {
        transform: translate(0, 0)
    }
}

.tm .roster {
    background: #f7f5fc;
    padding: 64px 24px;
    position: relative;
    margin-left: 32px
}

.tm .roster::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg, #7B44DF 0%, #7b44df1a 100%)
}

.tm .roster-inner {
    max-width: 1024px;
    margin: 0 auto
}

.tm .roster-top {
    text-align: center;
    margin-bottom: 64px
}

.tm .roster-h {
    font-size: 42px;
    line-height: 1.2;
    margin: 0 0 16px;
    font-weight: 700;
    position: relative;
    display: inline-block
}

.tm .roster-h::after {
    content: '';
    position: absolute;
    bottom: -8px;
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    height: 3px;
    background: linear-gradient(73deg, #036F3A 0%, #7B44DF 100%);
    transition: width 280ms cubic-bezier(0.34, 1.56, 0.64, 1)
}

.tm .roster-top:hover .roster-h::after {
    width: 100%
}

.tm .roster-sub {
    font-size: 18px;
    line-height: 1.8;
    color: #4a4a4a;
    margin: 0;
    max-width: 640px;
    margin: 0 auto
}

.tm .roster-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 32px
}

.tm .member {
    background: #fff;
    border-radius: 20px;
    padding: 32px;
    box-shadow: 0 7px 18px 1px #7b44df1a;
    transition: transform 280ms cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 280ms cubic-bezier(0.34, 1.56, 0.64, 1);
    position: relative
}

.tm .member::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(73deg, #036F3A 0%, #7B44DF 100%);
    border-radius: 20px 20px 0 0;
    opacity: 0;
    transition: opacity 250ms cubic-bezier(0.68, -0.55, 0.27, 1.55)
}

.tm .member:hover {
    transform: translateY(-8px);
    box-shadow: 0 12px 36px 1px #7b44df24
}

.tm .member:hover::before {
    opacity: 1
}

.tm .member-name {
    font-size: 22px;
    line-height: 1.2;
    margin: 0 0 8px;
    font-weight: 700;
    color: #1a1a1a
}

.tm .member-role {
    font-size: 15px;
    line-height: 1.8;
    color: #7B44DF;
    margin: 0 0 16px;
    font-weight: 600
}

.tm .member-bio {
    font-size: 15px;
    line-height: 1.8;
    color: #4a4a4a;
    margin: 0
}

.tm .expertise {
    padding: 64px 24px;
    position: relative;
    margin-right: 32px
}

.tm .expertise::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg, #036f3a1a 0%, #036F3A 100%)
}

.tm .expertise-inner {
    max-width: 1024px;
    margin: 0 auto
}

.tm .expertise-h {
    font-size: 42px;
    line-height: 1.2;
    margin: 0 0 32px;
    font-weight: 700;
    text-align: center
}

.tm .expertise-layout {
    display: flex;
    gap: 64px;
    align-items: center
}

.tm .expertise-txt {
    flex: 1
}

.tm .expertise-p {
    font-size: 18px;
    line-height: 1.8;
    color: #4a4a4a;
    margin: 0 0 24px
}

.tm .expertise-p:last-child {
    margin-bottom: 0
}

.tm .expertise-visual {
    flex: 0 0 420px;
    position: relative
}

.tm .expertise-img-wrap {
    position: relative;
    width: 100%;
    height: 320px;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 7px 18px 1px #036f3a1a
}

.tm .expertise-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 300ms cubic-bezier(0.34, 1.56, 0.64, 1)
}

.tm .expertise-img-wrap:hover img {
    transform: scale(1.06)
}

.tm .expertise-border-accent {
    position: absolute;
    top: -8px;
    left: -8px;
    right: -8px;
    bottom: -8px;
    border: 2px solid #036F3A;
    border-radius: 20px;
    pointer-events: none
}

.tm .expertise-border-accent::before {
    content: '';
    position: absolute;
    top: 4px;
    left: 4px;
    right: 4px;
    bottom: 4px;
    border: 2px solid #036f3a4d;
    border-radius: 20px
}

.tm .approach {
    background: #f0fdf6;
    padding: 64px 24px;
    position: relative;
    margin-left: 64px
}

.tm .approach::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg, #BF173A 0%, #bf173a1a 100%)
}

.tm .approach-inner {
    max-width: 640px;
    margin: 0 auto
}

.tm .approach-h {
    font-size: 42px;
    line-height: 1.2;
    margin: 0 0 32px;
    font-weight: 700;
    text-align: center
}

.tm .approach-quote {
    position: relative;
    background: #fff;
    padding: 32px;
    border-radius: 20px;
    box-shadow: 0 7px 18px 1px #bf173a1a;
    margin-bottom: 32px
}

.tm .approach-quote::before {
    content: '';
    position: absolute;
    top: -12px;
    left: 32px;
    width: 0;
    height: 0;
    border-left: 12px solid transparent;
    border-right: 12px solid transparent;
    border-bottom: 12px solid #fff
}

.tm .approach-quote-txt {
    font-size: 18px;
    line-height: 1.8;
    color: #1a1a1a;
    margin: 0 0 16px;
    font-style: italic
}

.tm .approach-quote-author {
    font-size: 15px;
    line-height: 1.8;
    color: #BF173A;
    margin: 0;
    font-weight: 600
}

.tm .approach-profile {
    display: flex;
    gap: 24px;
    align-items: center;
    background: #fff;
    padding: 24px;
    border-radius: 20px;
    box-shadow: 0 7px 18px 1px #bf173a1a
}

.tm .approach-profile-img {
    width: 120px;
    height: 168px;
    border-radius: 10px;
    overflow: hidden;
    flex-shrink: 0
}

.tm .approach-profile-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top;
    transition: transform 280ms cubic-bezier(0.34, 1.56, 0.64, 1)
}

.tm .approach-profile:hover .approach-profile-img img {
    transform: scale(1.05)
}

.tm .approach-profile-info {
    flex: 1
}

.tm .approach-profile-name {
    font-size: 22px;
    line-height: 1.2;
    margin: 0 0 8px;
    font-weight: 700;
    color: #1a1a1a
}

.tm .approach-profile-title {
    font-size: 15px;
    line-height: 1.8;
    color: #BF173A;
    margin: 0 0 16px;
    font-weight: 600
}

.tm .approach-profile-desc {
    font-size: 15px;
    line-height: 1.8;
    color: #4a4a4a;
    margin: 0
}

.tm .approach-icon-accent {
    position: absolute;
    top: 24px;
    right: 24px;
    width: 48px;
    height: 48px;
    pointer-events: none
}

.tm .approach-icon-accent svg {
    width: 100%;
    height: 100%;
    stroke: #BF173A;
    fill: none;
    stroke-width: 2;
    stroke-dasharray: 200;
    stroke-dashoffset: 200;
    animation: tm-trace 2.5s ease-in-out 1.5s forwards
}

@keyframes tm-trace {
    to {
        stroke-dashoffset: 0
    }
}

@media (max-width: 1024px) {
    .tm .lead-zone {
        flex-direction: column;
        padding: 48px 24px;
        min-height: auto
    }

    .tm .lead-img-wrap {
        width: 100%;
        max-width: 400px
    }

    .tm .lead-shapes {
        display: none
    }

    .tm .roster {
        margin-left: 16px
    }

    .tm .roster-grid {
        grid-template-columns: 1fr
    }

    .tm .expertise {
        margin-right: 16px
    }

    .tm .expertise-layout {
        flex-direction: column;
        gap: 32px
    }

    .tm .expertise-visual {
        flex: 0 0 auto;
        width: 100%
    }

    .tm .approach {
        margin-left: 16px
    }
}

@media (max-width: 768px) {
    .tm .lead-h {
        font-size: 30px
    }

    .tm .lead-p,
    .tm .roster-sub,
    .tm .expertise-p,
    .tm .approach-quote-txt {
        font-size: 15px
    }

    .tm .roster-h,
    .tm .expertise-h,
    .tm .approach-h {
        font-size: 30px
    }

    .tm .roster,
    .tm .expertise,
    .tm .approach {
        padding: 48px 16px
    }

    .tm .roster {
        margin-left: 8px
    }

    .tm .expertise {
        margin-right: 8px
    }

    .tm .approach {
        margin-left: 8px
    }

    .tm .member {
        padding: 24px
    }

    .tm .approach-profile {
        flex-direction: column;
        text-align: center
    }

    .tm .approach-profile-img {
        width: 140px;
        height: 196px
    }
}

@media (max-width: 360px) {
    .tm .lead-zone {
        padding: 32px 16px
    }

    .tm .lead-h,
    .tm .roster-h,
    .tm .expertise-h,
    .tm .approach-h {
        font-size: 22px
    }

    .tm .roster-grid {
        gap: 24px
    }
}

.abt-pg {
    background: #fff;
    overflow-x: clip
}

.abt-pg .intro-zone {
    display: flex;
    align-items: stretch;
    max-width: 1024px;
    margin: 0 auto;
    position: relative;
    min-height: 520px
}

.abt-pg .intro-txt {
    flex: 0 0 52%;
    padding: 64px 32px 64px 64px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative
}

.abt-pg .intro-img-wrap {
    flex: 0 0 48%;
    position: relative;
    overflow: hidden
}

.abt-pg .intro-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block
}

.abt-pg .intro-img-wrap::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 45%;
    background: linear-gradient(to bottom, #fff0 0%, #0000006b 100%);
    pointer-events: none
}

.abt-pg .intro-h1 {
    font-size: 42px;
    line-height: 1.2;
    margin: 0 0 24px;
    font-weight: 700;
    color: #1a1a2e
}

.abt-pg .intro-h1 .grd-word {
    background: linear-gradient(73deg, #036F3A 0%, #7B44DF 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent
}

.abt-pg .intro-p {
    font-size: 18px;
    line-height: 1.8;
    color: #2d2d3a;
    margin: 0
}

.abt-pg .geo-shape {
    position: absolute;
    pointer-events: none;
    z-index: 1
}

.abt-pg .geo-shape.circle {
    width: 120px;
    height: 120px;
    border: 2px solid #7b44df26;
    border-radius: 50%;
    top: 24px;
    right: -40px
}

.abt-pg .geo-shape.tri {
    width: 0;
    height: 0;
    border-left: 50px solid transparent;
    border-right: 50px solid transparent;
    border-bottom: 86px solid #036f3a1f;
    bottom: 32px;
    left: -25px
}

.abt-pg .metric-grid {
    max-width: 1024px;
    margin: 0 auto;
    padding: 64px 32px;
    background: radial-gradient(ellipse at center, #fafbff 0%, #f4f5fa 100%);
    position: relative
}

.abt-pg .metric-grid::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 0;
    border-left: 30px solid transparent;
    border-right: 30px solid transparent;
    border-top: 24px solid #fff
}

.abt-pg .metric-h {
    font-size: 30px;
    line-height: 1.2;
    font-weight: 700;
    color: #1a1a2e;
    text-align: center;
    margin: 0 0 64px
}

.abt-pg .metric-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px
}

.abt-pg .metric-card {
    background: #fff;
    padding: 32px 24px;
    border-radius: 10px;
    box-shadow: 0 7px 18px 1px #7b44df1a;
    position: relative;
    overflow: hidden;
    transition: transform .28s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow .28s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.abt-pg .metric-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 36px 1px #7b44df24
}

.abt-pg .metric-card::before {
    content: '';
    position: absolute;
    top: 0;
    right: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(73deg, #036f3a08 0%, #7b44df0d 100%);
    transition: right .32s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.abt-pg .metric-card:hover::before {
    right: 0
}

.abt-pg .metric-num {
    font-size: 72px;
    line-height: 1.2;
    font-weight: 700;
    color: #7B44DF;
    margin: 0 0 8px;
    position: relative
}

.abt-pg .metric-lbl {
    font-size: 18px;
    line-height: 1.8;
    color: #2d2d3a;
    margin: 0;
    position: relative
}

.abt-pg .approach-wrap {
    max-width: 1024px;
    margin: 0 auto;
    padding: 64px 32px;
    position: relative
}

.abt-pg .approach-wrap::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 0;
    border-left: 30px solid transparent;
    border-right: 30px solid transparent;
    border-top: 24px solid #f4f5fa
}

.abt-pg .approach-h {
    font-size: 30px;
    line-height: 1.2;
    font-weight: 700;
    color: #1a1a2e;
    margin: 0 0 32px
}

.abt-pg .approach-cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 64px;
    align-items: start
}

.abt-pg .approach-txt {
    display: flex;
    flex-direction: column;
    gap: 24px
}

.abt-pg .approach-p {
    font-size: 18px;
    line-height: 1.8;
    color: #2d2d3a;
    margin: 0
}

.abt-pg .approach-img-box {
    position: relative;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 7px 18px 1px #036f3a1a
}

.abt-pg .approach-img-box img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover
}

.abt-pg .approach-img-box::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(73deg, #036f3a14 0%, #7b44df14 100%);
    opacity: 0;
    transition: opacity .3s cubic-bezier(0.34, 1.56, 0.64, 1);
    pointer-events: none
}

.abt-pg .approach-img-box:hover::after {
    opacity: 1
}

.abt-pg .team-section {
    max-width: 1024px;
    margin: 0 auto;
    padding: 64px 32px;
    background: linear-gradient(73deg, #7b44df05 0%, #036f3a05 100%);
    position: relative
}

.abt-pg .team-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 0;
    border-left: 30px solid transparent;
    border-right: 30px solid transparent;
    border-top: 24px solid #fff
}

.abt-pg .team-h {
    font-size: 30px;
    line-height: 1.2;
    font-weight: 700;
    color: #1a1a2e;
    margin: 0 0 32px
}

.abt-pg .team-layout {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 64px;
    align-items: start
}

.abt-pg .team-portrait {
    position: relative;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 7px 18px 1px #7b44df1a;
    aspect-ratio: 5/7
}

.abt-pg .team-portrait img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top;
    display: block
}

.abt-pg .team-portrait::after {
    content: '';
    position: absolute;
    inset: 0;
    border: 2px solid #7b44df26;
    border-radius: 10px;
    opacity: 0;
    transition: opacity .26s cubic-bezier(0.68, -0.55, 0.27, 1.55);
    pointer-events: none
}

.abt-pg .team-portrait:hover::after {
    opacity: 1
}

.abt-pg .team-info {
    display: flex;
    flex-direction: column;
    gap: 24px
}

.abt-pg .team-name {
    font-size: 22px;
    line-height: 1.2;
    font-weight: 700;
    color: #1a1a2e;
    margin: 0;
    position: relative;
    display: inline-block
}

.abt-pg .team-name::after {
    content: '';
    position: absolute;
    bottom: -4px;
    left: 0;
    width: 0;
    height: 2px;
    background: linear-gradient(73deg, #036F3A 0%, #7B44DF 100%);
    transition: width .35s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.abt-pg .team-name:hover::after {
    width: 100%
}

.abt-pg .team-role {
    font-size: 18px;
    line-height: 1.8;
    color: #7B44DF;
    margin: 0;
    font-weight: 600
}

.abt-pg .team-bio {
    font-size: 18px;
    line-height: 1.8;
    color: #2d2d3a;
    margin: 0
}

.abt-pg .timeline-zone {
    max-width: 1024px;
    margin: 0 auto;
    padding: 64px 32px;
    position: relative
}

.abt-pg .timeline-zone::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 0;
    border-left: 30px solid transparent;
    border-right: 30px solid transparent;
    border-top: 24px solid #7b44df05
}

.abt-pg .timeline-h {
    font-size: 30px;
    line-height: 1.2;
    font-weight: 700;
    color: #1a1a2e;
    margin: 0 0 64px;
    text-align: center
}

.abt-pg .timeline-list {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0
}

.abt-pg .timeline-list::before {
    content: '';
    position: absolute;
    left: 32px;
    top: 24px;
    bottom: 24px;
    width: 2px;
    background: linear-gradient(180deg, #7B44DF 0%, #036F3A 100%)
}

.abt-pg .timeline-item {
    position: relative;
    padding-left: 80px;
    padding-bottom: 32px
}

.abt-pg .timeline-item:last-child {
    padding-bottom: 0
}

.abt-pg .timeline-dot {
    position: absolute;
    left: 24px;
    top: 8px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: #fff;
    border: 3px solid #7B44DF;
    box-shadow: 0 1px 6px 1px #7b44df12;
    transition: transform .24s cubic-bezier(0.34, 1.56, 0.64, 1), border-color .24s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.abt-pg .timeline-item:hover .timeline-dot {
    transform: scale(1.3);
    border-color: #036F3A
}

.abt-pg .timeline-yr {
    font-size: 22px;
    line-height: 1.2;
    font-weight: 700;
    color: #7B44DF;
    margin: 0 0 8px
}

.abt-pg .timeline-desc {
    font-size: 18px;
    line-height: 1.8;
    color: #2d2d3a;
    margin: 0
}

.abt-pg .values-section {
    max-width: 1024px;
    margin: 0 auto;
    padding: 64px 32px;
    background: radial-gradient(ellipse at center, #fafbff 0%, #f4f5fa 100%);
    position: relative
}

.abt-pg .values-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 0;
    border-left: 30px solid transparent;
    border-right: 30px solid transparent;
    border-top: 24px solid #fff
}

.abt-pg .values-h {
    font-size: 30px;
    line-height: 1.2;
    font-weight: 700;
    color: #1a1a2e;
    margin: 0 0 32px
}

.abt-pg .values-mosaic {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px
}

.abt-pg .value-tile {
    background: #fff;
    padding: 32px 24px;
    border-radius: 20px;
    box-shadow: 0 1px 6px 1px #036f3a12;
    position: relative;
    overflow: hidden;
    transition: box-shadow .3s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.abt-pg .value-tile:hover {
    box-shadow: 0 12px 36px 1px #036f3a24
}

.abt-pg .value-tile::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -50%;
    width: 100%;
    height: 100%;
    background: radial-gradient(circle, #7b44df14 0%, transparent 70%);
    opacity: 0;
    transition: opacity .35s cubic-bezier(0.34, 1.56, 0.64, 1);
    pointer-events: none
}

.abt-pg .value-tile:hover::before {
    opacity: 1
}

.abt-pg .value-icon {
    width: 48px;
    height: 48px;
    margin: 0 0 16px;
    position: relative
}

.abt-pg .value-icon svg {
    width: 100%;
    height: 100%;
    stroke: #7B44DF;
    fill: none;
    stroke-width: 2;
    stroke-dasharray: 200;
    stroke-dashoffset: 200;
    transition: stroke-dashoffset .8s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.abt-pg .value-tile:hover .value-icon svg {
    stroke-dashoffset: 0
}

.abt-pg .value-title {
    font-size: 22px;
    line-height: 1.2;
    font-weight: 700;
    color: #1a1a2e;
    margin: 0 0 8px
}

.abt-pg .value-txt {
    font-size: 15px;
    line-height: 1.8;
    color: #2d2d3a;
    margin: 0
}

.abt-pg .contact-banner {
    max-width: 1024px;
    margin: 0 auto;
    padding: 64px 32px;
    position: relative
}

.abt-pg .contact-banner::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 0;
    border-left: 30px solid transparent;
    border-right: 30px solid transparent;
    border-top: 24px solid #f4f5fa
}

.abt-pg .contact-inner {
    background: linear-gradient(73deg, #7B44DF 0%, #036F3A 100%);
    padding: 64px;
    border-radius: 32px;
    text-align: center;
    position: relative;
    overflow: hidden;
    box-shadow: 0 12px 36px 1px #7b44df24
}

.abt-pg .contact-inner::before {
    content: '';
    position: absolute;
    top: -20%;
    left: -20%;
    width: 140%;
    height: 140%;
    background: radial-gradient(circle at 30% 30%, #ffffff26 0%, transparent 50%);
    pointer-events: none
}

.abt-pg .contact-h {
    font-size: 30px;
    line-height: 1.2;
    font-weight: 700;
    color: #fff;
    margin: 0 0 16px;
    position: relative
}

.abt-pg .contact-p {
    font-size: 18px;
    line-height: 1.8;
    color: #fffffff2;
    margin: 0 0 32px;
    position: relative
}

.abt-pg .contact-btn {
    display: inline-block;
    padding: 16px 32px;
    background: #fff;
    color: #7B44DF;
    font-size: 18px;
    font-weight: 700;
    text-decoration: none;
    border-radius: 10px;
    position: relative;
    overflow: hidden;
    transition: transform .26s cubic-bezier(0.68, -0.55, 0.27, 1.55), box-shadow .26s cubic-bezier(0.68, -0.55, 0.27, 1.55);
    box-shadow: 0 7px 18px 1px #0000001a
}

.abt-pg .contact-btn::before {
    content: '';
    position: absolute;
    top: 0;
    right: -100%;
    width: 100%;
    height: 100%;
    background: #7b44df1a;
    transition: right .3s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.abt-pg .contact-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 36px 1px #00000024
}

.abt-pg .contact-btn:hover::before {
    right: 0
}

.abt-pg .contact-btn span {
    position: relative
}

@media (max-width: 1024px) {
    .abt-pg .intro-zone {
        flex-direction: column;
        min-height: auto
    }

    .abt-pg .intro-txt {
        flex: 1 1 auto;
        padding: 32px
    }

    .abt-pg .intro-img-wrap {
        flex: 1 1 auto;
        min-height: 320px
    }

    .abt-pg .metric-cards {
        grid-template-columns: 1fr;
        gap: 24px
    }

    .abt-pg .approach-cols {
        grid-template-columns: 1fr;
        gap: 32px
    }

    .abt-pg .team-layout {
        grid-template-columns: 1fr;
        gap: 32px
    }

    .abt-pg .team-portrait {
        max-width: 280px;
        margin: 0 auto
    }

    .abt-pg .values-mosaic {
        grid-template-columns: 1fr;
        gap: 16px
    }

    .abt-pg .contact-inner {
        padding: 32px 24px
    }
}

@media (max-width: 768px) {
    .abt-pg .intro-h1 {
        font-size: 30px
    }

    .abt-pg .intro-p {
        font-size: 15px
    }

    .abt-pg .metric-h,
    .abt-pg .approach-h,
    .abt-pg .team-h,
    .abt-pg .timeline-h,
    .abt-pg .values-h,
    .abt-pg .contact-h {
        font-size: 22px
    }

    .abt-pg .metric-num {
        font-size: 42px
    }

    .abt-pg .metric-lbl,
    .abt-pg .approach-p,
    .abt-pg .team-role,
    .abt-pg .team-bio,
    .abt-pg .timeline-desc,
    .abt-pg .contact-p {
        font-size: 15px
    }

    .abt-pg .team-name,
    .abt-pg .timeline-yr,
    .abt-pg .value-title {
        font-size: 18px
    }

    .abt-pg .geo-shape.circle {
        width: 80px;
        height: 80px;
        right: -20px
    }

    .abt-pg .geo-shape.tri {
        border-left-width: 30px;
        border-right-width: 30px;
        border-bottom-width: 52px
    }
}

@media (max-width: 360px) {
    .abt-pg .intro-txt {
        padding: 24px 16px
    }

    .abt-pg .metric-grid,
    .abt-pg .approach-wrap,
    .abt-pg .team-section,
    .abt-pg .timeline-zone,
    .abt-pg .values-section,
    .abt-pg .contact-banner {
        padding: 32px 16px
    }

    .abt-pg .contact-inner {
        padding: 24px 16px
    }
}

.kontakt-lapa {
    background: #FFF;
    color: #1A1A1A;
    overflow-x: clip
}

.kontakt-lapa .kl-forma-zona {
    max-width: 1024px;
    margin: 0 auto;
    padding: 64px 16px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 32px;
    position: relative
}

@media (min-width: 1024px) {
    .kontakt-lapa .kl-forma-zona {
        grid-template-columns: 3fr 1fr;
        padding: 64px 24px
    }
}

.kontakt-lapa .kl-galvenais-bloks {
    background: linear-gradient(73deg, #F4F0FB 0%, #FFF 100%);
    border-radius: 20px;
    padding: 32px 24px;
    box-shadow: 0 7px 18px 1px #7b44df1a;
    position: relative;
    border-right: 3px solid #7B44DF
}

@media (min-width: 768px) {
    .kontakt-lapa .kl-galvenais-bloks {
        padding: 64px
    }
}

.kontakt-lapa .kl-galvenais-bloks::after {
    content: '';
    position: absolute;
    top: 0;
    right: -16px;
    width: 12px;
    height: 100%;
    background: linear-gradient(73deg, #7B44DF 0%, #036F3A 100%);
    opacity: .15;
    border-radius: 3px;
    pointer-events: none
}

@media (max-width: 1023px) {
    .kontakt-lapa .kl-galvenais-bloks::after {
        display: none
    }
}

.kontakt-lapa .kl-virsraksts {
    font-size: 42px;
    line-height: 1.2;
    font-weight: 700;
    color: #1A1A1A;
    margin: 0 0 16px;
    position: relative;
    display: inline-block
}

.kontakt-lapa .kl-virsraksts::after {
    content: '';
    position: absolute;
    bottom: -4px;
    left: 0;
    width: 0;
    height: 3px;
    background: linear-gradient(73deg, #7B44DF 0%, #036F3A 100%);
    animation: kl-line-draw .8s cubic-bezier(0.34, 1.56, 0.64, 1) .3s forwards
}

@keyframes kl-line-draw {
    to {
        width: 100%
    }
}

.kontakt-lapa .kl-apraksts {
    font-size: 18px;
    line-height: 1.8;
    color: #4A4A4A;
    margin: 0 0 32px
}

.kontakt-lapa .kl-forma {
    display: flex;
    flex-direction: column;
    gap: 24px
}

.kontakt-lapa .kl-lauka-grupa {
    display: flex;
    flex-direction: column;
    gap: 8px
}

.kontakt-lapa .kl-etiķete {
    font-size: 15px;
    line-height: 1.2;
    font-weight: 600;
    color: #1A1A1A
}

.kontakt-lapa .kl-ievade {
    font-size: 18px;
    line-height: 1.8;
    padding: 16px;
    border: 2px solid #E8E8E8;
    border-radius: 10px;
    background: #FFF;
    color: #1A1A1A;
    transition: border-color .25s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow .25s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.kontakt-lapa .kl-ievade:focus {
    outline: none;
    border-color: #7B44DF;
    box-shadow: 0 1px 6px 1px #7b44df12
}

.kontakt-lapa .kl-ievade::placeholder {
    color: #9A9A9A;
    font-size: 16px
}

.kontakt-lapa .kl-teksta-lauks {
    min-height: 140px;
    resize: vertical;
    font-family: inherit
}

.kontakt-lapa .kl-izvele-apvalks {
    position: relative
}

.kontakt-lapa .kl-izvele {
    appearance: none;
    font-size: 18px;
    line-height: 1.8;
    padding: 16px;
    padding-right: 48px;
    border: 2px solid #E8E8E8;
    border-radius: 10px;
    background: #FFF;
    color: #1A1A1A;
    width: 100%;
    cursor: pointer;
    transition: border-color .25s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow .25s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.kontakt-lapa .kl-izvele:focus {
    outline: none;
    border-color: #7B44DF;
    box-shadow: 0 1px 6px 1px #7b44df12
}

.kontakt-lapa .kl-izvele-apvalks::after {
    content: '';
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    width: 0;
    height: 0;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-top: 8px solid #7B44DF;
    pointer-events: none;
    transition: transform .3s cubic-bezier(0.68, -0.55, 0.27, 1.55)
}

.kontakt-lapa .kl-izvele:focus~.kl-izvele-apvalks::after {
    transform: translateY(-50%) rotate(180deg)
}

.kontakt-lapa .kl-privat-apvalks {
    display: flex;
    gap: 12px;
    align-items: flex-start
}

.kontakt-lapa .kl-privat-kaste {
    width: 20px;
    height: 20px;
    min-width: 20px;
    border: 2px solid #E8E8E8;
    border-radius: 5px;
    background: #FFF;
    cursor: pointer;
    position: relative;
    transition: all .28s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.kontakt-lapa .kl-privat-ievade {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0
}

.kontakt-lapa .kl-privat-ievade:checked+.kl-privat-kaste {
    background: linear-gradient(73deg, #7B44DF 0%, #036F3A 100%);
    border-color: #7B44DF
}

.kontakt-lapa .kl-privat-ievade:checked+.kl-privat-kaste::after {
    content: '';
    position: absolute;
    left: 5px;
    top: 2px;
    width: 5px;
    height: 9px;
    border: solid #FFF;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg)
}

.kontakt-lapa .kl-privat-teksts {
    font-size: 15px;
    line-height: 1.8;
    color: #4A4A4A;
    margin: 0
}

.kontakt-lapa .kl-privat-saite {
    color: #7B44DF;
    text-decoration: none;
    transition: color .22s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.kontakt-lapa .kl-privat-saite:hover {
    color: #036F3A
}

.kontakt-lapa .kl-poga {
    font-size: 18px;
    line-height: 1.2;
    font-weight: 600;
    padding: 16px 32px;
    border: 2px solid #7B44DF;
    border-radius: 10px;
    background: #FFF;
    color: #7B44DF;
    cursor: pointer;
    position: relative;
    overflow: hidden;
    transition: color .32s cubic-bezier(0.34, 1.56, 0.64, 1);
    align-self: flex-start
}

.kontakt-lapa .kl-poga::before {
    content: '';
    position: absolute;
    top: 0;
    right: 100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(73deg, #7B44DF 0%, #036F3A 100%);
    transition: right .35s cubic-bezier(0.34, 1.56, 0.64, 1);
    z-index: 0
}

.kontakt-lapa .kl-poga:hover::before {
    right: 0
}

.kontakt-lapa .kl-poga:hover {
    color: #FFF
}

.kontakt-lapa .kl-poga span {
    position: relative;
    z-index: 1
}

.kontakt-lapa .kl-sanu-kolonna {
    display: flex;
    flex-direction: column;
    gap: 24px
}

.kontakt-lapa .kl-info-karte {
    background: #FFF;
    border-radius: 20px;
    padding: 24px;
    box-shadow: 0 1px 6px 1px #7b44df12;
    border: 2px solid #F4F0FB;
    transition: all .3s cubic-bezier(0.68, -0.55, 0.27, 1.55)
}

.kontakt-lapa .kl-info-karte:hover {
    box-shadow: 0 7px 18px 1px #7b44df1a;
    transform: translateY(-4px)
}

.kontakt-lapa .kl-info-ikona {
    width: 48px;
    height: 48px;
    border-radius: 32px;
    background: linear-gradient(73deg, #7B44DF 0%, #036F3A 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 0 16px
}

.kontakt-lapa .kl-info-ikona svg {
    width: 24px;
    height: 24px;
    fill: none;
    stroke: #FFF;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round
}

.kontakt-lapa .kl-info-virsraksts {
    font-size: 18px;
    line-height: 1.2;
    font-weight: 700;
    color: #1A1A1A;
    margin: 0 0 8px
}

.kontakt-lapa .kl-info-vertiba {
    font-size: 15px;
    line-height: 1.8;
    color: #4A4A4A;
    margin: 0;
    word-break: break-word
}

.kontakt-lapa .kl-info-saite {
    color: #7B44DF;
    text-decoration: none;
    transition: color .22s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.kontakt-lapa .kl-info-saite:hover {
    color: #036F3A
}

.kontakt-lapa .kl-dati-zona {
    max-width: 1024px;
    margin: 0 auto;
    padding: 64px 16px;
    position: relative
}

@media (min-width: 768px) {
    .kontakt-lapa .kl-dati-zona {
        padding: 64px 24px
    }
}

.kontakt-lapa .kl-dati-zona::before {
    content: '';
    position: absolute;
    top: -24px;
    left: 0;
    right: 0;
    height: 48px;
    background: radial-gradient(circle at 24px 24px, transparent 24px, #FFF 24px);
    background-size: 48px 48px;
    background-position: 0 0
}

.kontakt-lapa .kl-dati-apvalks {
    background: linear-gradient(73deg, #036f3ad9 0%, #7b44dfe6 100%), url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 600"><rect fill="%23036F3A" width="800" height="600"/><circle cx="200" cy="150" r="120" fill="%237B44DF" opacity="0.3"/><circle cx="600" cy="400" r="180" fill="%23BF173A" opacity="0.2"/><path d="M0,300 Q200,250 400,300 T800,300" stroke="%23FFFFFF" stroke-width="2" fill="none" opacity="0.15"/></svg>');
    background-size: cover;
    background-position: center;
    border-radius: 20px;
    padding: 64px 24px;
    position: relative;
    overflow: hidden
}

@media (min-width: 768px) {
    .kontakt-lapa .kl-dati-apvalks {
        padding: 64px
    }
}

.kontakt-lapa .kl-dati-apvalks::before {
    content: '';
    position: absolute;
    top: 32px;
    left: 32px;
    width: 8px;
    height: 8px;
    background: #FFF;
    border-radius: 32px;
    box-shadow: 24px 0 0 #FFFFFF, 48px 0 0 #FFFFFF, 72px 0 0 #FFF;
    opacity: .4;
    animation: kl-dots-fade 2s ease-in-out infinite
}

@keyframes kl-dots-fade {

    0%,
    100% {
        opacity: .4
    }

    50% {
        opacity: .8
    }
}

.kontakt-lapa .kl-dati-saturs {
    display: grid;
    grid-template-columns: 1fr;
    gap: 32px;
    position: relative;
    z-index: 1
}

@media (min-width: 768px) {
    .kontakt-lapa .kl-dati-saturs {
        grid-template-columns: repeat(2, 1fr);
        gap: 64px
    }
}

.kontakt-lapa .kl-dati-bloks {
    opacity: 0;
    filter: blur(8px);
    animation: kl-blur-in .6s cubic-bezier(0.34, 1.56, 0.64, 1) forwards
}

.kontakt-lapa .kl-dati-bloks:nth-child(1) {
    animation-delay: .2s
}

.kontakt-lapa .kl-dati-bloks:nth-child(2) {
    animation-delay: .4s
}

.kontakt-lapa .kl-dati-bloks:nth-child(3) {
    animation-delay: .6s
}

.kontakt-lapa .kl-dati-bloks:nth-child(4) {
    animation-delay: .8s
}

@keyframes kl-blur-in {
    to {
        opacity: 1;
        filter: blur(0)
    }
}

.kontakt-lapa .kl-dati-numurs {
    font-size: 72px;
    line-height: 1.2;
    font-weight: 700;
    background: linear-gradient(73deg, #FFF 0%, #ffffffb3 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    margin: 0 0 8px;
    display: inline-block
}

.kontakt-lapa .kl-dati-apraksts {
    font-size: 18px;
    line-height: 1.8;
    color: #FFF;
    margin: 0
}

.kontakt-lapa .kl-dati-akcents {
    font-size: 22px;
    font-weight: 600;
    color: #fffffff2
}

.kontakt-lapa .kl-dati-apvalks::after {
    content: '';
    position: absolute;
    bottom: 0;
    right: 0;
    width: 200px;
    height: 200px;
    background: radial-gradient(circle, #ffffff1a 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none
}

@media (max-width: 767px) {
    .kontakt-lapa .kl-dati-apvalks::after {
        width: 120px;
        height: 120px
    }
}

.kontakt-lapa .kl-svg-konturs {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 2;
    opacity: 0;
    animation: kl-svg-appear .5s ease-out 1s forwards
}

@keyframes kl-svg-appear {
    to {
        opacity: 1
    }
}

.kontakt-lapa .kl-svg-konturs svg {
    width: 100%;
    height: 100%
}

.kontakt-lapa .kl-svg-linija {
    fill: none;
    stroke: #7B44DF;
    stroke-width: 2;
    stroke-dasharray: 1000;
    stroke-dashoffset: 1000;
    animation: kl-draw-line 2s cubic-bezier(0.34, 1.56, 0.64, 1) 1.2s forwards
}

@keyframes kl-draw-line {
    to {
        stroke-dashoffset: 0
    }
}

.svc-pg {
    max-width: 1024px;
    margin: 0 auto;
    background: #fff
}

.svc-pg * {
    box-sizing: border-box
}

.svc-pg ::selection {
    background: #7b44df26;
    color: inherit
}

.svc-pg h1,
.svc-pg h2,
.svc-pg h3,
.svc-pg h4,
.svc-pg h5,
.svc-pg h6 {
    margin: 0;
    font-weight: 600
}

.svc-pg p {
    margin: 0
}

.svc-pg img {
    max-width: 100%;
    height: auto;
    display: block
}

.svc-pg button {
    cursor: pointer;
    border: none;
    background: none;
    padding: 0;
    font-family: inherit
}

.svc-pg a {
    text-decoration: none;
    color: inherit
}

.svc-pg ul {
    list-style: none;
    margin: 0;
    padding: 0
}

.svc-pg .top-bnr {
    position: relative;
    background: linear-gradient(73deg, #7B44DF 0%, #036F3A 100%);
    padding: 64px 24px;
    overflow: hidden;
    border-top: 3px solid #BF173A;
    border-bottom: 3px solid #036F3A
}

.svc-pg .top-bnr::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 8px;
    height: 8px;
    background: radial-gradient(circle, #ffffff4d 1px, transparent 1px);
    background-size: 24px 24px;
    background-repeat: repeat;
    width: 100%;
    height: 100%;
    opacity: .4;
    pointer-events: none
}

.svc-pg .top-bnr__inner {
    position: relative;
    z-index: 1;
    max-width: 680px;
    margin: 0 auto;
    text-align: center
}

.svc-pg .top-bnr__tag {
    display: inline-block;
    font-size: 15px;
    line-height: 1.2;
    color: #ffffffd9;
    letter-spacing: .5px;
    text-transform: uppercase;
    margin-bottom: 16px;
    font-weight: 500
}

.svc-pg .top-bnr__ttl {
    font-size: 42px;
    line-height: 1.2;
    color: #fff;
    font-weight: 700
}

.svc-pg .main-offer {
    position: relative;
    padding: 64px 24px;
    background: #fafcff;
    background: radial-gradient(ellipse at center, #f8f9fd 0%, #fff 70%);
    animation: svc-glow 8s ease-in-out infinite alternate
}

@keyframes svc-glow {
    0% {
        background: radial-gradient(ellipse at center, #f8f9fd 0%, #fff 70%)
    }

    100% {
        background: radial-gradient(ellipse at center, #f4f6fb 0%, #fff 70%)
    }
}

.svc-pg .main-offer::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: repeating-linear-gradient(0deg, transparent, transparent 23px, #7b44df08 23px, #7b44df08 24px), repeating-linear-gradient(90deg, transparent, transparent 23px, #7b44df08 23px, #7b44df08 24px);
    pointer-events: none
}

.svc-pg .main-offer__wrap {
    position: relative;
    z-index: 1;
    display: grid;
    gap: 32px;
    max-width: 920px;
    margin: 0 auto
}

.svc-pg .main-offer__lead {
    display: grid;
    grid-template-columns: 1fr;
    gap: 32px;
    align-items: start
}

.svc-pg .main-offer__img {
    width: 100%;
    height: 420px;
    overflow: hidden;
    border-radius: 10px;
    box-shadow: 0 7px 18px 1px #7b44df1a
}

.svc-pg .main-offer__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform 320ms cubic-bezier(0.34, 1.56, 0.64, 1)
}

.svc-pg .main-offer__img:hover img {
    transform: scale(1.05)
}

.svc-pg .main-offer__txt {
    display: flex;
    flex-direction: column;
    gap: 16px
}

.svc-pg .main-offer__hd {
    font-size: 30px;
    line-height: 1.2;
    color: #7B44DF;
    position: relative;
    display: inline-block;
    padding-bottom: 8px
}

.svc-pg .main-offer__hd::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 3px;
    background: linear-gradient(73deg, #036F3A 0%, #7B44DF 100%);
    animation: svc-line-draw 1.2s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
    animation-delay: .3s
}

@keyframes svc-line-draw {
    to {
        width: 100%
    }
}

.svc-pg .main-offer__desc {
    font-size: 18px;
    line-height: 1.8;
    color: #2d2d2d
}

.svc-pg .main-offer__desc strong {
    color: #036F3A;
    font-weight: 600
}

.svc-pg .main-offer__cols {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px
}

.svc-pg .main-offer__cols>div:nth-child(2) {
    margin-top: 0
}

.svc-pg .offer-card {
    background: #fff;
    padding: 32px;
    border-radius: 20px;
    box-shadow: 0 1px 6px 1px #036f3a12;
    border: 1px solid #7b44df14;
    transition: box-shadow 280ms cubic-bezier(0.34, 1.56, 0.64, 1), transform 280ms cubic-bezier(0.34, 1.56, 0.64, 1);
    position: relative
}

.svc-pg .offer-card:hover {
    box-shadow: 0 12px 36px 1px #036f3a24;
    transform: translateY(-4px)
}

.svc-pg .offer-card__ico {
    width: 56px;
    height: 56px;
    border-radius: 10px;
    background: linear-gradient(73deg, #7b44df1a 0%, #036f3a1a 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 16px;
    position: relative
}

.svc-pg .offer-card__ico svg {
    width: 28px;
    height: 28px;
    fill: none;
    stroke: #7B44DF;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round
}

.svc-pg .offer-card__ico::before {
    content: '';
    position: absolute;
    top: -4px;
    left: -4px;
    right: -4px;
    bottom: -4px;
    border: 2px solid transparent;
    border-radius: 10px;
    background: linear-gradient(73deg, #7B44DF 0%, #036F3A 100%) border-box;
    -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    opacity: 0;
    animation: svc-trace 2s ease-in-out infinite
}

@keyframes svc-trace {

    0%,
    100% {
        opacity: 0
    }

    50% {
        opacity: 1
    }
}

.svc-pg .offer-card__ttl {
    font-size: 22px;
    line-height: 1.2;
    color: #1a1a1a;
    margin-bottom: 8px
}

.svc-pg .offer-card__txt {
    font-size: 15px;
    line-height: 1.8;
    color: #4a4a4a
}

.svc-pg .dvdr {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 32px 0;
    position: relative
}

.svc-pg .dvdr::before {
    content: '';
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    width: 80px;
    height: 1px;
    background: linear-gradient(73deg, #7B44DF 0%, #036F3A 100%)
}

.svc-pg .dvdr::after {
    content: '';
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 12px;
    height: 12px;
    background: linear-gradient(#7B44DF 0 0) center/100% 2px no-repeat, linear-gradient(#7B44DF 0 0) center/2px 100% no-repeat
}

.svc-pg .prog-sec {
    padding: 64px 24px;
    background: #fff;
    position: relative
}

.svc-pg .prog-sec__wrap {
    max-width: 920px;
    margin: 0 auto
}

.svc-pg .prog-sec__hd {
    font-size: 30px;
    line-height: 1.2;
    color: #1a1a1a;
    margin-bottom: 32px;
    text-align: center
}

.svc-pg .prog-sec__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 32px
}

.svc-pg .prog-sec__vis {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px
}

.svc-pg .prog-sec__img {
    width: 100%;
    height: 360px;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 7px 18px 1px #bf173a1a;
    position: relative
}

.svc-pg .prog-sec__img::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(180deg, transparent 0%, #0006 100%);
    z-index: 1;
    pointer-events: none
}

.svc-pg .prog-sec__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center
}

.svc-pg .prog-sec__list {
    display: flex;
    flex-direction: column;
    gap: 24px
}

.svc-pg .prog-itm {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 16px;
    align-items: start;
    position: relative
}

.svc-pg .prog-itm__num {
    width: 48px;
    height: 48px;
    border-radius: 32px;
    background: linear-gradient(73deg, #7B44DF 0%, #036F3A 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    line-height: 1;
    color: #fff;
    font-weight: 700;
    flex-shrink: 0;
    box-shadow: 0 1px 6px 1px #7b44df12 inset 0 1px 2px #fff3;
    position: relative
}

.svc-pg .prog-itm::before {
    content: '';
    position: absolute;
    left: 24px;
    top: 48px;
    bottom: -24px;
    width: 2px;
    background: linear-gradient(180deg, #7b44df4d 0%, transparent 100%)
}

.svc-pg .prog-itm:last-child::before {
    display: none
}

.svc-pg .prog-itm__cnt {
    padding-top: 4px
}

.svc-pg .prog-itm__ttl {
    font-size: 18px;
    line-height: 1.2;
    color: #1a1a1a;
    margin-bottom: 8px;
    font-weight: 600
}

.svc-pg .prog-itm__txt {
    font-size: 15px;
    line-height: 1.8;
    color: #4a4a4a
}

.svc-pg .team-sec {
    padding: 64px 24px;
    background: linear-gradient(73deg, #7b44df08 0%, #036f3a08 100%);
    position: relative
}

.svc-pg .team-sec::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent 0%, #7B44DF 50%, transparent 100%)
}

.svc-pg .team-sec__wrap {
    max-width: 920px;
    margin: 0 auto
}

.svc-pg .team-sec__hd {
    font-size: 30px;
    line-height: 1.2;
    color: #1a1a1a;
    margin-bottom: 16px;
    text-align: center
}

.svc-pg .team-sec__intro {
    font-size: 18px;
    line-height: 1.8;
    color: #4a4a4a;
    margin-bottom: 32px;
    text-align: center;
    max-width: 680px;
    margin-left: auto;
    margin-right: auto
}

.svc-pg .team-sec__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 32px
}

.svc-pg .tm-card {
    background: #fff;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 1px 6px 1px #7b44df12;
    display: grid;
    grid-template-columns: 1fr;
    transition: box-shadow 300ms cubic-bezier(0.68, -0.55, 0.27, 1.55)
}

.svc-pg .tm-card:hover {
    box-shadow: 0 12px 36px 1px #7b44df24
}

.svc-pg .tm-card__img {
    width: 100%;
    height: 340px;
    overflow: hidden;
    position: relative
}

.svc-pg .tm-card__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top
}

.svc-pg .tm-card__cnt {
    padding: 24px
}

.svc-pg .tm-card__nm {
    font-size: 22px;
    line-height: 1.2;
    color: #1a1a1a;
    margin-bottom: 4px;
    font-weight: 600
}

.svc-pg .tm-card__role {
    font-size: 15px;
    line-height: 1.2;
    color: #7B44DF;
    margin-bottom: 16px;
    font-weight: 500
}

.svc-pg .tm-card__bio {
    font-size: 15px;
    line-height: 1.8;
    color: #4a4a4a
}

.svc-pg .cta-sec {
    padding: 64px 24px;
    background: #fff;
    position: relative
}

.svc-pg .cta-sec::before {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, #7B44DF 0%, #036F3A 50%, #BF173A 100%)
}

.svc-pg .cta-sec__wrap {
    max-width: 680px;
    margin: 0 auto;
    text-align: center;
    background: linear-gradient(73deg, #7b44df0d 0%, #036f3a0d 100%);
    padding: 48px 32px;
    border-radius: 20px;
    border: 2px solid #7b44df1a;
    box-shadow: 0 7px 18px 1px #7b44df1a
}

.svc-pg .cta-sec__ttl {
    font-size: 30px;
    line-height: 1.2;
    color: #1a1a1a;
    margin-bottom: 16px
}

.svc-pg .cta-sec__txt {
    font-size: 18px;
    line-height: 1.8;
    color: #4a4a4a;
    margin-bottom: 32px
}

.svc-pg .cta-sec__btn {
    display: inline-block;
    padding: 16px 32px;
    background: linear-gradient(73deg, #7B44DF 0%, #036F3A 100%);
    color: #fff;
    font-size: 18px;
    line-height: 1.2;
    font-weight: 600;
    border-radius: 5px;
    position: relative;
    overflow: hidden;
    box-shadow: 0 7px 18px 1px #7b44df1a;
    transition: box-shadow 280ms cubic-bezier(0.34, 1.56, 0.64, 1), transform 280ms cubic-bezier(0.34, 1.56, 0.64, 1)
}

.svc-pg .cta-sec__btn::before {
    content: '';
    position: absolute;
    top: 0;
    right: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(73deg, #036F3A 0%, #7B44DF 100%);
    transition: right 320ms cubic-bezier(0.34, 1.56, 0.64, 1);
    z-index: 0
}

.svc-pg .cta-sec__btn:hover::before {
    right: 0
}

.svc-pg .cta-sec__btn span {
    position: relative;
    z-index: 1
}

.svc-pg .cta-sec__btn:hover {
    box-shadow: 0 12px 36px 1px #7b44df24;
    transform: translateY(-2px)
}

@media (min-width: 768px) {
    .svc-pg .top-bnr {
        padding: 96px 32px
    }

    .svc-pg .top-bnr__ttl {
        font-size: 72px
    }

    .svc-pg .main-offer {
        padding: 96px 32px
    }

    .svc-pg .main-offer__lead {
        grid-template-columns: 1fr 1fr;
        gap: 48px
    }

    .svc-pg .main-offer__cols {
        grid-template-columns: 1fr 1fr;
        gap: 32px
    }

    .svc-pg .main-offer__cols>div:nth-child(2) {
        margin-top: 64px
    }

    .svc-pg .prog-sec {
        padding: 96px 32px
    }

    .svc-pg .prog-sec__grid {
        grid-template-columns: 1fr 1fr;
        gap: 48px;
        align-items: start
    }

    .svc-pg .team-sec {
        padding: 96px 32px
    }

    .svc-pg .team-sec__grid {
        grid-template-columns: 1fr 1fr;
        gap: 48px
    }

    .svc-pg .tm-card {
        grid-template-columns: 1fr
    }

    .svc-pg .cta-sec {
        padding: 96px 32px
    }
}

@media (min-width: 1024px) {
    .svc-pg .main-offer__img {
        height: 480px
    }

    .svc-pg .prog-sec__img {
        height: 420px
    }

    .svc-pg .tm-card__img {
        height: 400px
    }
}

.lrn-prog {
    background: #fff;
    overflow-x: clip
}

.lrn-prog * {
    box-sizing: border-box
}

.lrn-prog__intro {
    position: relative;
    background: linear-gradient(73deg, #7B44DF 0%, #036F3A 100%);
    padding: 64px 16px;
    overflow: hidden
}

.lrn-prog__intro::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: linear-gradient(0deg, #ffffff08 1px, transparent 1px), linear-gradient(90deg, #ffffff08 1px, transparent 1px);
    background-size: 32px 32px;
    pointer-events: none
}

.lrn-prog__intro-wrap {
    max-width: 1024px;
    margin: 0 auto;
    position: relative;
    z-index: 1
}

.lrn-prog__intro-num {
    font-size: 72px;
    line-height: 1.2;
    color: #ffffffeb;
    font-weight: 700;
    margin: 0 0 8px
}

.lrn-prog__intro-head {
    font-size: 42px;
    line-height: 1.2;
    color: #fff;
    font-weight: 600;
    margin: 0 0 16px
}

.lrn-prog__intro-txt {
    font-size: 18px;
    line-height: 1.8;
    color: #ffffffe0;
    margin: 0;
    max-width: 680px
}

.lrn-prog__structure {
    background: #fafbfc;
    padding: 64px 16px;
    position: relative
}

.lrn-prog__structure::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 50%;
    background: #fff;
    z-index: 0
}

.lrn-prog__structure::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 50%;
    background: linear-gradient(73deg, #7b44df0a 0%, #036f3a0a 100%);
    z-index: 0
}

.lrn-prog__structure-wrap {
    max-width: 1024px;
    margin: 0 auto;
    position: relative;
    z-index: 1
}

.lrn-prog__structure-head {
    font-size: 30px;
    line-height: 1.2;
    color: #1a1f36;
    font-weight: 600;
    margin: 0 0 32px;
    position: relative;
    display: inline-block
}

.lrn-prog__structure-head::after {
    content: '';
    position: absolute;
    bottom: -8px;
    left: 0;
    width: 0;
    height: 3px;
    background: linear-gradient(73deg, #7B44DF 0%, #036F3A 100%);
    border-radius: 3px;
    animation: lrn-prog-underline .8s cubic-bezier(0.34, 1.56, 0.64, 1) .3s forwards
}

@keyframes lrn-prog-underline {
    to {
        width: 100%
    }
}

.lrn-prog__structure-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px
}

.lrn-prog__mod {
    background: #fff;
    border-radius: 10px;
    padding: 24px;
    box-shadow: 0 1px 6px 1px #7b44df12;
    position: relative;
    overflow: hidden;
    transition: box-shadow 280ms cubic-bezier(0.34, 1.56, 0.64, 1), transform 280ms cubic-bezier(0.34, 1.56, 0.64, 1)
}

.lrn-prog__mod:hover {
    box-shadow: 0 7px 18px 1px #7b44df1a;
    transform: translateY(-4px)
}

.lrn-prog__mod::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 80px;
    height: 80px;
    background: linear-gradient(73deg, #7b44df0f 0%, #036f3a0f 100%);
    border-radius: 0 10px 0 100%;
    pointer-events: none
}

.lrn-prog__mod-tag {
    display: inline-block;
    background: linear-gradient(73deg, #7B44DF 0%, #036F3A 100%);
    color: #fff;
    font-size: 15px;
    line-height: 1.2;
    padding: 4px 16px;
    border-radius: 5px;
    margin: 0 0 16px;
    font-weight: 500
}

.lrn-prog__mod-title {
    font-size: 22px;
    line-height: 1.2;
    color: #1a1f36;
    font-weight: 600;
    margin: 0 0 8px
}

.lrn-prog__mod-desc {
    font-size: 15px;
    line-height: 1.8;
    color: #4a5568;
    margin: 0 0 16px
}

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

.lrn-prog__mod-item {
    font-size: 15px;
    line-height: 1.8;
    color: #2d3748;
    padding-left: 24px;
    position: relative
}

.lrn-prog__mod-item::before {
    content: '';
    position: absolute;
    left: 0;
    top: 11px;
    width: 8px;
    height: 8px;
    border-radius: 32px;
    background: linear-gradient(73deg, #7B44DF 0%, #036F3A 100%)
}

.lrn-prog__experts {
    background: #fff;
    padding: 64px 16px;
    position: relative
}

.lrn-prog__experts-wrap {
    max-width: 1024px;
    margin: 0 auto
}

.lrn-prog__experts-head {
    font-size: 30px;
    line-height: 1.2;
    color: #1a1f36;
    font-weight: 600;
    margin: 0 0 8px
}

.lrn-prog__experts-sub {
    font-size: 18px;
    line-height: 1.8;
    color: #4a5568;
    margin: 0 0 32px
}

.lrn-prog__experts-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px
}

.lrn-prog__expert {
    display: flex;
    flex-direction: column;
    gap: 16px;
    background: linear-gradient(73deg, #7b44df08 0%, #036f3a08 100%);
    padding: 24px;
    border-radius: 20px;
    border: 2px solid transparent;
    transition: border-color 320ms cubic-bezier(0.68, -0.55, 0.27, 1.55)
}

.lrn-prog__expert:hover {
    border-color: #7B44DF
}

.lrn-prog__expert-img-wrap {
    width: 120px;
    height: 120px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
    box-shadow: 0 7px 18px 1px #7b44df1a
}

.lrn-prog__expert-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top
}

.lrn-prog__expert-name {
    font-size: 22px;
    line-height: 1.2;
    color: #1a1f36;
    font-weight: 600;
    margin: 0 0 4px
}

.lrn-prog__expert-role {
    font-size: 15px;
    line-height: 1.8;
    color: #7B44DF;
    margin: 0 0 8px;
    font-weight: 500
}

.lrn-prog__expert-bio {
    font-size: 15px;
    line-height: 1.8;
    color: #4a5568;
    margin: 0
}

.lrn-prog__details {
    background: #fff;
    padding: 64px 16px;
    position: relative;
    overflow: hidden
}

.lrn-prog__details::before {
    content: '';
    position: absolute;
    top: 0;
    left: -50%;
    width: 200%;
    height: 100%;
    background: linear-gradient(73deg, transparent 0%, #7b44df05 50%, transparent 100%);
    animation: lrn-prog-wave 12s linear infinite;
    pointer-events: none
}

@keyframes lrn-prog-wave {
    0% {
        transform: translateX(-50%)
    }

    100% {
        transform: translateX(50%)
    }
}

.lrn-prog__details-wrap {
    max-width: 1024px;
    margin: 0 auto;
    position: relative;
    z-index: 1
}

.lrn-prog__details-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 32px;
    align-items: start
}

.lrn-prog__details-content {
    display: flex;
    flex-direction: column;
    gap: 24px
}

.lrn-prog__details-head {
    font-size: 30px;
    line-height: 1.2;
    color: #1a1f36;
    font-weight: 600;
    margin: 0
}

.lrn-prog__details-txt {
    font-size: 15px;
    line-height: 1.8;
    color: #4a5568;
    margin: 0
}

.lrn-prog__details-img-wrap {
    width: 100%;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 12px 36px 1px #7b44df24;
    position: relative
}

.lrn-prog__details-img-wrap:hover .lrn-prog__details-img {
    transform: scale(1.08)
}

.lrn-prog__details-img {
    width: 100%;
    height: auto;
    display: block;
    transition: transform 6s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.lrn-prog__feat-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
    margin: 24px 0 0
}

.lrn-prog__feat {
    background: #fff;
    border: 1px solid #7b44df1f;
    border-radius: 10px;
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    position: relative;
    overflow: hidden;
    transition: background 300ms cubic-bezier(0.34, 1.56, 0.64, 1)
}

.lrn-prog__feat::before {
    content: '';
    position: absolute;
    top: 0;
    right: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(73deg, #7b44df0a 0%, #036f3a0a 100%);
    transition: right 300ms cubic-bezier(0.34, 1.56, 0.64, 1);
    pointer-events: none
}

.lrn-prog__feat:hover::before {
    right: 0
}

.lrn-prog__feat-icon {
    width: 32px;
    height: 32px;
    border-radius: 5px;
    background: linear-gradient(73deg, #7B44DF 0%, #036F3A 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0
}

.lrn-prog__feat-icon svg {
    width: 16px;
    height: 16px;
    fill: #fff
}

.lrn-prog__feat-title {
    font-size: 18px;
    line-height: 1.2;
    color: #1a1f36;
    font-weight: 600;
    margin: 0
}

.lrn-prog__feat-desc {
    font-size: 15px;
    line-height: 1.8;
    color: #4a5568;
    margin: 0
}

.lrn-prog__cta {
    background: linear-gradient(73deg, #7B44DF 0%, #036F3A 100%);
    color: #fff;
    font-size: 18px;
    line-height: 1.2;
    font-weight: 600;
    padding: 16px 32px;
    border: none;
    border-radius: 10px;
    cursor: pointer;
    position: relative;
    overflow: hidden;
    transition: transform 280ms cubic-bezier(0.68, -0.55, 0.27, 1.55), box-shadow 280ms cubic-bezier(0.68, -0.55, 0.27, 1.55);
    box-shadow: 0 7px 18px 1px #7b44df1a;
    margin: 24px 0 0;
    display: inline-block;
    text-decoration: none
}

.lrn-prog__cta::before {
    content: '';
    position: absolute;
    top: 0;
    right: -100%;
    width: 100%;
    height: 100%;
    background: #ffffff26;
    transition: right 300ms cubic-bezier(0.34, 1.56, 0.64, 1);
    pointer-events: none
}

.lrn-prog__cta:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 36px 1px #7b44df24
}

.lrn-prog__cta:hover::before {
    right: 0
}

.lrn-prog__cta:active {
    transform: translateY(0)
}

@media (min-width: 768px) {
    .lrn-prog__intro {
        padding: 96px 24px
    }

    .lrn-prog__structure {
        padding: 96px 24px
    }

    .lrn-prog__structure-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 32px
    }

    .lrn-prog__experts {
        padding: 96px 24px
    }

    .lrn-prog__experts-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 32px
    }

    .lrn-prog__expert {
        flex-direction: row;
        align-items: center
    }

    .lrn-prog__details {
        padding: 96px 24px
    }

    .lrn-prog__details-layout {
        grid-template-columns: 1fr 1fr;
        gap: 64px
    }

    .lrn-prog__feat-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 16px
    }
}

@media (min-width: 1024px) {
    .lrn-prog__structure-grid {
        grid-template-columns: repeat(3, 1fr)
    }

    .lrn-prog__experts-grid {
        grid-template-columns: repeat(4, 1fr)
    }

    .lrn-prog__expert {
        flex-direction: column;
        align-items: flex-start
    }
}

.lrn-prog__divider {
    max-width: 1024px;
    margin: 0 auto;
    height: 1px;
    background: linear-gradient(90deg, transparent 0%, #7b44df33 50%, transparent 100%)
}

.success-pg {
    background: linear-gradient(73deg, #036F3A 0%, #7B44DF 100%);
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 32px 16px
}

.success-pg .msg-wrap {
    background: #fff;
    max-width: 560px;
    width: 100%;
    padding: 64px 32px;
    border-radius: 20px;
    box-shadow: 0 12px 36px 1px #7b44df24;
    text-align: center
}

.success-pg .icn-check {
    width: 96px;
    height: 96px;
    margin: 0 auto 32px;
    border-radius: 999px;
    background: linear-gradient(73deg, #036F3A 0%, #7B44DF 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative
}

.success-pg .icn-check svg {
    width: 48px;
    height: 48px;
    stroke: #fff;
    stroke-width: 3;
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
    animation: check-draw .6s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
    stroke-dasharray: 100;
    stroke-dashoffset: 100
}

@keyframes check-draw {
    to {
        stroke-dashoffset: 0
    }
}

.success-pg .msg-ttl {
    font-size: 42px;
    line-height: 1.2;
    color: #7B44DF;
    margin: 0 0 16px;
    font-weight: 700
}

.success-pg .msg-txt {
    font-size: 18px;
    line-height: 1.8;
    color: #2d2d2d;
    margin: 0 0 32px
}

.success-pg .btn-grp {
    display: flex;
    gap: 16px;
    justify-content: center;
    flex-wrap: wrap
}

.success-pg .btn-prim {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 16px 32px;
    background: #7B44DF;
    color: #fff;
    font-size: 18px;
    border-radius: 10px;
    text-decoration: none;
    position: relative;
    overflow: hidden;
    transition: transform .25s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.success-pg .btn-prim::before {
    content: '';
    position: absolute;
    top: 0;
    right: 100%;
    width: 100%;
    height: 100%;
    background: #036F3A;
    transition: right .3s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.success-pg .btn-prim:hover::before {
    right: 0
}

.success-pg .btn-prim span {
    position: relative;
    z-index: 1
}

.success-pg .btn-prim:hover {
    transform: translateY(-2px)
}

.success-pg .btn-sec {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 16px 32px;
    background: transparent;
    color: #7B44DF;
    font-size: 18px;
    border-radius: 10px;
    text-decoration: none;
    border: 2px solid #7B44DF;
    transition: all .28s cubic-bezier(0.68, -0.55, 0.27, 1.55)
}

.success-pg .btn-sec:hover {
    background: #7B44DF;
    color: #fff;
    transform: translateY(-2px)
}

.success-pg .info-note {
    margin-top: 32px;
    padding-top: 32px;
    border-top: 1px solid #e8e8e8
}

.success-pg .info-note p {
    font-size: 15px;
    line-height: 1.8;
    color: #5a5a5a;
    margin: 0 0 8px
}

.success-pg .info-note a {
    color: #7B44DF;
    text-decoration: none;
    transition: color .22s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.success-pg .info-note a:hover {
    color: #036F3A
}

@media (max-width: 768px) {
    .success-pg .msg-wrap {
        padding: 32px 24px
    }

    .success-pg .msg-ttl {
        font-size: 30px
    }

    .success-pg .btn-grp {
        flex-direction: column
    }

    .success-pg .btn-prim,
    .success-pg .btn-sec {
        width: 100%
    }
}