*,
::before,
::after {
    box-sizing: border-box
}

html {
    scroll-behavior: smooth
}

body {
    margin: 0;
    scrollbar-gutter: stable;
    min-height: 100vh;
    font-family: 'Inter', sans-serif
}

:focus {
    outline: none;
    box-shadow: 0 0 0 3px #4644df59
}

.hd_bar {
    background: #FFFEFD;
    border-bottom: 1px solid #4644df1f;
    box-shadow: 1px 4px 20px 0 #4644df17;
    position: relative;
    z-index: 100
}

.hd_bar__inner {
    max-width: 1320px;
    margin: 0 auto;
    padding: 0 32px;
    display: flex;
    align-items: stretch;
    min-height: 80px;
    gap: 32px
}

.hd_logo_zone {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    gap: 12px;
    padding: 12px 0
}

.hd_logo_frame {
    width: 56px;
    height: 56px;
    border: 1px solid #4644df38;
    border-radius: 12px;
    background: #FFFEFD;
    box-shadow: 1px 1px 3px 0 #4644df12;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    flex-shrink: 0
}

.hd_logo_frame img {
    width: 50px;
    height: 50px;
    object-fit: contain;
    display: block
}

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

.hd_brand_name {
    font-size: 22px;
    font-weight: 700;
    line-height: 1.1;
    color: #4644DF;
    letter-spacing: -.03em
}

.hd_brand_desc {
    font-size: 14px;
    line-height: 1.3;
    color: #3d3c8a;
    font-weight: 400;
    letter-spacing: 0
}

.hd_menu_zone {
    display: flex;
    align-items: center;
    flex: 1;
    justify-content: flex-end
}

.hd_menu {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end
}

.hd_menu__item {
    display: flex;
    align-items: center
}

.hd_menu__lnk {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    font-size: 17px;
    font-weight: 400;
    line-height: 1.3;
    color: #2a2960;
    text-decoration: none;
    border-radius: 7px;
    border: 1px solid transparent;
    transition: color .45s cubic-bezier(0.16, 1, 0.3, 1), border-color .45s cubic-bezier(0.16, 1, 0.3, 1), background .45s cubic-bezier(0.16, 1, 0.3, 1), box-shadow .45s cubic-bezier(0.16, 1, 0.3, 1);
    min-height: 44px
}

.hd_menu__lnk:hover {
    color: #4644DF;
    border-color: #4644df33;
    background: #4644df0d;
    box-shadow: 1px 1px 3px 0 #4644df12
}

.hd_menu__lnk.active {
    color: #4644DF;
    font-weight: 700;
    border-color: #4644df2e;
    background: #4644df12
}

.hd_contact_strip {
    background: #4644DF;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding: 0 32px
}

.hd_contact_strip__inner {
    max-width: 1320px;
    width: 100%;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 32px;
    padding: 8px 0
}

.hd_contact_item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    line-height: 1.3;
    color: #fffefde6;
    text-decoration: none;
    transition: color .4s ease-in-out
}

.hd_contact_item:hover {
    color: #FFFEFD
}

.hd_contact_item i {
    font-size: 14px;
    color: #fffefdb3
}

.ft_base {
    background: #FFFEFD;
    border-top: 1px solid #4644df1a
}

.ft_main {
    max-width: 1320px;
    margin: 0 auto;
    padding: 48px 32px 32px;
    display: flex;
    flex-wrap: wrap;
    gap: 32px;
    align-items: flex-start
}

.ft_brand_col {
    flex: 0 0 auto;
    min-width: 200px;
    display: flex;
    flex-direction: column;
    gap: 12px
}

.ft_logo_row {
    display: flex;
    align-items: center;
    gap: 12px
}

.ft_logo_frame {
    width: 52px;
    height: 52px;
    border: 1px solid #4644df33;
    border-radius: 12px;
    background: #FFFEFD;
    box-shadow: 1px 1px 3px 0 #4644df12;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    flex-shrink: 0
}

.ft_logo_frame img {
    width: 46px;
    height: 46px;
    object-fit: contain;
    display: block
}

.ft_brand_name {
    font-size: 22px;
    font-weight: 700;
    line-height: 1.1;
    color: #4644DF;
    letter-spacing: -.03em
}

.ft_brand_tagline {
    font-size: 14px;
    line-height: 1.55;
    color: #3d3c8a
}

.ft_links_col {
    flex: 1;
    display: flex;
    flex-wrap: wrap;
    gap: 32px;
    justify-content: flex-end
}

.ft_link_group {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 160px
}

.ft_group_label {
    font-size: 14px;
    font-weight: 700;
    line-height: 1.3;
    color: #2a2960;
    letter-spacing: .04em;
    text-transform: uppercase;
    margin-bottom: 4px
}

.ft_lnk {
    font-size: 17px;
    line-height: 1.55;
    color: #3d3c8a;
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 8px;
    transition: color .4s ease-in-out;
    min-height: 44px
}

.ft_lnk:hover {
    color: #4644DF
}

.ft_lnk i {
    font-size: 14px;
    color: #4644df80
}

.ft_contact_group {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 200px
}

.ft_contact_lnk {
    font-size: 17px;
    line-height: 1.55;
    color: #3d3c8a;
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 8px;
    transition: color .4s ease-in-out;
    min-height: 44px
}

.ft_contact_lnk:hover {
    color: #4644DF
}

.ft_contact_lnk i {
    font-size: 14px;
    color: #4644df80;
    width: 16px;
    text-align: center
}

.ft_addr_text {
    font-size: 14px;
    line-height: 1.55;
    color: #3d3c8a;
    display: flex;
    align-items: flex-start;
    gap: 8px
}

.ft_addr_text i {
    font-size: 14px;
    color: #4644df80;
    margin-top: 4px;
    flex-shrink: 0
}

.ft_bottom {
    border-top: 1px solid #4644df14;
    max-width: 1320px;
    margin: 0 auto;
    padding: 16px 32px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px
}

.ft_copy {
    font-size: 14px;
    line-height: 1.3;
    color: #8886cc
}

.ft_policy_row {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap
}

.ft_policy_lnk {
    font-size: 14px;
    line-height: 1.3;
    color: #8886cc;
    text-decoration: none;
    transition: color .38s ease-in-out
}

.ft_policy_lnk:hover {
    color: #4644DF
}

.ck_popup {
    display: none;
    position: fixed;
    bottom: 32px;
    left: 0;
    right: 0;
    margin: 0 auto;
    width: 560px;
    max-width: calc(100vw - 32px);
    background: #FFFEFD;
    border: 1px solid #4644df26;
    border-radius: 20px;
    box-shadow: 1px 8px 40px 0 #4644df21;
    z-index: 8000;
    padding: 32px
}

.ck_popup__headline {
    font-size: 22px;
    font-weight: 700;
    line-height: 1.3;
    color: #2a2960;
    letter-spacing: -.02em;
    margin: 0 0 8px
}

.ck_popup__desc {
    font-size: 17px;
    line-height: 1.55;
    color: #3d3c8a;
    margin: 0 0 16px
}

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

.ck_popup__uses li {
    font-size: 14px;
    line-height: 1.55;
    color: #3d3c8a;
    display: flex;
    align-items: center;
    gap: 8px
}

.ck_popup__uses li i {
    color: #4644DF;
    font-size: 14px;
    flex-shrink: 0
}

.ck_toggle_row {
    display: none;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    background: #4644df0a;
    border-radius: 7px;
    margin-bottom: 16px;
    border: 1px solid #4644df1a
}

.ck_toggle_row.open {
    display: flex
}

.ck_toggle_label {
    font-size: 14px;
    line-height: 1.3;
    color: #2a2960;
    font-weight: 700
}

.ck_toggle_switch {
    position: relative;
    width: 44px;
    height: 24px;
    flex-shrink: 0
}

.ck_toggle_switch input {
    opacity: 0;
    width: 0;
    height: 0;
    position: absolute
}

.ck_toggle_track {
    position: absolute;
    inset: 0;
    background: #d0cff5;
    border-radius: 48px;
    transition: background .4s ease-in-out;
    cursor: pointer
}

.ck_toggle_switch input:checked+.ck_toggle_track {
    background: #4644DF
}

.ck_toggle_track::after {
    content: '';
    position: absolute;
    top: 3px;
    left: 3px;
    width: 18px;
    height: 18px;
    background: #FFFEFD;
    border-radius: 48px;
    transition: transform .4s ease-in-out
}

.ck_toggle_switch input:checked+.ck_toggle_track::after {
    transform: translateX(20px)
}

.ck_expand_btn {
    background: transparent;
    border: 1px solid #4644df33;
    border-radius: 7px;
    color: #4644DF;
    font-size: 14px;
    font-family: 'Inter', sans-serif;
    line-height: 1.3;
    padding: 8px 16px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 16px;
    transition: background .42s cubic-bezier(0.16, 1, 0.3, 1), box-shadow .42s cubic-bezier(0.16, 1, 0.3, 1);
    min-height: 44px
}

.ck_expand_btn:hover {
    background: #4644df0f;
    box-shadow: 1px 4px 20px 0 #4644df17
}

.ck_popup__btns {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap
}

.ck_btn_accept {
    flex: 1;
    min-width: 120px;
    background: transparent;
    border: 2px solid #4644DF;
    border-radius: 7px;
    color: #4644DF;
    font-size: 17px;
    font-family: 'Inter', sans-serif;
    font-weight: 700;
    line-height: 1.3;
    padding: 12px 32px;
    cursor: pointer;
    transition: background .45s cubic-bezier(0.16, 1, 0.3, 1), color .45s cubic-bezier(0.16, 1, 0.3, 1), box-shadow .45s cubic-bezier(0.16, 1, 0.3, 1);
    min-height: 48px
}

.ck_btn_accept:hover {
    background: #4644DF;
    color: #FFFEFD;
    box-shadow: 1px 4px 20px 0 #4644df17
}

.ck_btn_decline {
    background: transparent;
    border: 1px solid #4644df26;
    border-radius: 7px;
    color: #8886cc;
    font-size: 14px;
    font-family: 'Inter', sans-serif;
    line-height: 1.3;
    padding: 8px 16px;
    cursor: pointer;
    transition: color .38s ease-in-out, border-color .38s ease-in-out;
    min-height: 44px
}

.ck_btn_decline:hover {
    color: #AE2816;
    border-color: #ae28164d
}

@media (max-width: 992px) {
    .hd_bar__inner {
        flex-wrap: wrap;
        padding: 0 16px;
        min-height: auto
    }

    .hd_logo_zone {
        padding: 12px 0
    }

    .hd_menu_zone {
        width: 100%;
        justify-content: flex-start;
        padding-bottom: 12px
    }

    .hd_menu {
        justify-content: flex-start;
        gap: 4px
    }

    .hd_contact_strip {
        padding: 0 16px
    }

    .hd_contact_strip__inner {
        gap: 16px;
        flex-wrap: wrap;
        justify-content: flex-start
    }

    .ft_main {
        padding: 32px 16px
    }

    .ft_links_col {
        justify-content: flex-start
    }

    .ft_bottom {
        padding: 16px
    }
}

@media (max-width: 576px) {
    .hd_brand_desc {
        display: none
    }

    .hd_menu__lnk {
        font-size: 14px;
        padding: 8px 12px
    }

    .ft_link_group,
    .ft_contact_group {
        min-width: 100%
    }

    .ck_popup {
        bottom: 16px;
        padding: 16px
    }

    .ck_popup__btns {
        flex-direction: column
    }

    .ck_btn_accept {
        width: 100%
    }
}

.terms-block {
    max-width: 1320px;
    margin: 0 auto;
    padding: 48px 32px;
    color: #2a2a35
}

.terms-block h1 {
    font-size: 55px;
    line-height: 1.1;
    letter-spacing: -.02em;
    margin-bottom: 32px;
    margin-top: 0;
    color: #18181f
}

.terms-block h2 {
    font-size: 40px;
    line-height: 1.1;
    letter-spacing: -.015em;
    margin-top: 48px;
    margin-bottom: 16px;
    color: #18181f
}

.terms-block h3 {
    font-size: 29px;
    line-height: 1.3;
    letter-spacing: -.01em;
    margin-top: 32px;
    margin-bottom: 12px;
    color: #18181f
}

.terms-block h4 {
    font-size: 22px;
    line-height: 1.3;
    letter-spacing: -.005em;
    margin-top: 32px;
    margin-bottom: 12px;
    color: #18181f
}

.terms-block h5 {
    font-size: 17px;
    line-height: 1.55;
    margin-top: 16px;
    margin-bottom: 8px;
    color: #18181f
}

.terms-block h6 {
    font-size: 14px;
    line-height: 1.55;
    margin-top: 16px;
    margin-bottom: 8px;
    color: #3a3a4a;
    text-transform: uppercase;
    letter-spacing: .06em
}

.terms-block p {
    font-size: 17px;
    line-height: 1.75;
    margin-top: 0;
    margin-bottom: 16px;
    color: #2a2a35
}

.terms-block strong,
.terms-block b {
    font-weight: 700;
    color: #18181f
}

.terms-block a {
    color: #4644DF;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    transition: color .45s cubic-bezier(0.16, 1, 0.3, 1), text-decoration-color .45s cubic-bezier(0.16, 1, 0.3, 1)
}

.terms-block a:hover {
    color: #AE2816;
    text-decoration-color: #AE2816
}

.terms-block div {
    box-sizing: border-box
}

.terms-block table {
    width: 100%;
    border-collapse: collapse;
    font-size: 17px;
    line-height: 1.55;
    margin-top: 16px;
    margin-bottom: 32px;
    box-shadow: 1px 4px 20px 0 #4644df17;
    border-radius: 12px;
    overflow: hidden
}

.terms-block thead {
    background: #4644DF;
    color: #FFFEFD
}

.terms-block thead th {
    padding: 16px;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .04em;
    text-align: left;
    color: #FFFEFD
}

.terms-block tbody tr {
    border-bottom: 1px solid #e8e8f0;
    transition: background .35s cubic-bezier(0.16, 1, 0.3, 1)
}

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

.terms-block tbody tr:nth-child(even) {
    background: #f4f4fb
}

.terms-block tbody tr:hover {
    background: #ededfa
}

.terms-block th,
.terms-block td {
    padding: 12px 16px;
    text-align: left;
    vertical-align: top;
    color: #2a2a35
}

.terms-block td {
    font-size: 17px;
    line-height: 1.55
}

@media (max-width: 992px) {
    .terms-block {
        padding: 32px 16px
    }

    .terms-block h1 {
        font-size: 40px
    }

    .terms-block h2 {
        font-size: 29px
    }

    .terms-block h3 {
        font-size: 22px
    }

    .terms-block table {
        display: block;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch
    }
}

@media (max-width: 576px) {
    .terms-block {
        padding: 32px 12px
    }

    .terms-block h1 {
        font-size: 29px
    }

    .terms-block h2 {
        font-size: 22px
    }

    .terms-block h3 {
        font-size: 17px
    }

    .terms-block p,
    .terms-block td {
        font-size: 14px
    }

    .terms-block thead th {
        font-size: 14px;
        padding: 12px 8px
    }

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

.svc_det {
    background: #FFFEFD;
    overflow-x: hidden
}

.svc_det .pg_wrap {
    max-width: 1320px;
    margin: 0 auto;
    padding: 0 32px
}

@keyframes blur_in {
    from {
        filter: blur(8px);
        opacity: 0
    }

    to {
        filter: blur(0);
        opacity: 1
    }
}

.svc_det .anim_1 {
    animation: blur_in .55s cubic-bezier(0.16, 1, 0.3, 1) both
}

.svc_det .anim_2 {
    animation: blur_in .55s cubic-bezier(0.16, 1, 0.3, 1) .12s both
}

.svc_det .anim_3 {
    animation: blur_in .55s cubic-bezier(0.16, 1, 0.3, 1) .24s both
}

.svc_det .anim_4 {
    animation: blur_in .55s cubic-bezier(0.16, 1, 0.3, 1) .36s both
}

.svc_det .ttl_blk {
    padding: 80px 0 48px;
    text-align: center;
    position: relative
}

.svc_det .ttl_blk .bg_char {
    position: absolute;
    top: 32px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 260px;
    font-weight: 900;
    line-height: 1.1;
    color: #4644df0a;
    letter-spacing: -8px;
    pointer-events: none;
    white-space: nowrap;
    user-select: none
}

.svc_det .ttl_blk .img_frame {
    width: 220px;
    height: 220px;
    margin: 0 auto 32px;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 1px 8px 40px 0 #4644df21;
    position: relative;
    z-index: 1
}

.svc_det .ttl_blk .img_frame img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: grayscale(100%) contrast(1.2);
    display: block
}

.svc_det .ttl_blk .meta_row {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 16px;
    margin-bottom: 24px;
    flex-wrap: wrap;
    position: relative;
    z-index: 1
}

.svc_det .ttl_blk .meta_badge {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    border-radius: 7px;
    border: 1px solid #4644df2e;
    font-size: 14px;
    line-height: 1.55;
    color: #4644DF;
    background: #FFFEFD;
    box-shadow: 1px 1px 3px 0 #4644df12
}

.svc_det .ttl_blk .meta_badge i {
    font-size: 14px;
    color: #4644DF
}

.svc_det .ttl_blk .pg_h1 {
    font-size: 55px;
    line-height: 1.1;
    letter-spacing: -1.5px;
    font-weight: 800;
    color: transparent;
    -webkit-text-stroke: 2px #4644DF;
    text-align: center;
    margin-bottom: 24px;
    position: relative;
    z-index: 1
}

.svc_det .ttl_blk .sub_text {
    font-size: 17px;
    line-height: 1.75;
    color: #2a2a3d;
    max-width: 600px;
    margin: 0 auto 32px;
    text-align: center;
    position: relative;
    z-index: 1
}

.svc_det .ttl_blk .dot_border {
    display: flex;
    flex-direction: row;
    justify-content: center;
    gap: 8px;
    margin-top: 32px;
    position: relative;
    z-index: 1
}

.svc_det .ttl_blk .dot_border span {
    border-radius: 48px;
    background: #4644df26;
    display: block
}

.svc_det .ttl_blk .dot_border span:nth-child(1) {
    width: 6px;
    height: 6px
}

.svc_det .ttl_blk .dot_border span:nth-child(2) {
    width: 10px;
    height: 10px
}

.svc_det .ttl_blk .dot_border span:nth-child(3) {
    width: 14px;
    height: 14px
}

.svc_det .ttl_blk .dot_border span:nth-child(4) {
    width: 10px;
    height: 10px
}

.svc_det .ttl_blk .dot_border span:nth-child(5) {
    width: 6px;
    height: 6px
}

.svc_det .chev_div {
    width: 100%;
    line-height: 0;
    overflow: hidden
}

.svc_det .chev_div svg {
    display: block;
    width: 100%
}

.svc_det .desc_blk {
    background: linear-gradient(135deg, #ae28160f 0%, #4644df14 100%);
    padding: 64px 0
}

.svc_det .desc_blk .desc_grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: start
}

.svc_det .desc_blk .desc_h2 {
    font-size: 40px;
    line-height: 1.1;
    font-weight: 800;
    color: transparent;
    -webkit-text-stroke: 1.5px #AE2816;
    letter-spacing: -1px;
    margin-bottom: 24px
}

.svc_det .desc_blk .desc_body {
    font-size: 17px;
    line-height: 1.75;
    color: #1e1e2e
}

.svc_det .desc_blk .desc_body p {
    margin-bottom: 16px
}

.svc_det .desc_blk .desc_body p:last-child {
    margin-bottom: 0
}

.svc_det .desc_blk .desc_body ul {
    padding-left: 0;
    list-style: none;
    margin-bottom: 16px
}

.svc_det .desc_blk .desc_body ul li {
    padding: 8px 0 8px 24px;
    position: relative;
    font-size: 17px;
    line-height: 1.55;
    color: #1e1e2e
}

.svc_det .desc_blk .desc_body ul li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 16px;
    width: 8px;
    height: 8px;
    border-radius: 48px;
    background: #AE2816
}

.svc_det .desc_blk .desc_body em {
    color: #4644DF;
    font-style: normal;
    font-weight: 600
}

.svc_det .desc_blk .desc_body h2 {
    font-size: 22px;
    line-height: 1.3;
    font-weight: 700;
    color: #1e1e2e;
    margin-bottom: 12px;
    margin-top: 24px
}

.svc_det .desc_blk .desc_body blockquote {
    border-top: 2px solid #4644DF;
    border-bottom: 2px solid #4644DF;
    padding: 16px;
    margin: 24px 0;
    font-size: 17px;
    line-height: 1.55;
    color: #4644DF;
    font-weight: 600;
    background: #4644df0a;
    border-radius: 7px
}

.svc_det .desc_blk .desc_body dl {
    margin-bottom: 16px
}

.svc_det .desc_blk .desc_body dt {
    font-weight: 700;
    color: #AE2816;
    font-size: 17px;
    line-height: 1.55
}

.svc_det .desc_blk .desc_body dd {
    margin: 4px 0 12px 16px;
    font-size: 17px;
    line-height: 1.55;
    color: #1e1e2e
}

.svc_det .desc_blk .desc_body details {
    margin-bottom: 12px;
    border-radius: 7px;
    border: 1px solid #4644df2e;
    padding: 12px 16px
}

.svc_det .desc_blk .desc_body summary {
    font-weight: 600;
    color: #4644DF;
    cursor: pointer;
    font-size: 17px;
    line-height: 1.55
}

.svc_det .desc_blk .kw_tags {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 32px
}

.svc_det .desc_blk .kw_tag {
    font-size: 14px;
    line-height: 1.55;
    color: #4644DF;
    border: 1px solid #4644df40;
    border-radius: 7px;
    padding: 4px 12px;
    background: #FFFEFD;
    box-shadow: 1px 1px 3px 0 #4644df12
}

.svc_det .prog_blk {
    background: #FFFEFD;
    padding: 72px 0
}

.svc_det .prog_blk .prog_h2 {
    font-size: 40px;
    line-height: 1.1;
    font-weight: 800;
    color: transparent;
    -webkit-text-stroke: 1.5px #4644DF;
    letter-spacing: -1px;
    text-align: center;
    margin-bottom: 48px
}

.svc_det .prog_blk .steps_col {
    display: flex;
    flex-direction: column;
    gap: 0;
    max-width: 860px;
    margin: 0 auto;
    position: relative
}

.svc_det .prog_blk .steps_col::before {
    content: '';
    position: absolute;
    left: 28px;
    top: 28px;
    bottom: 28px;
    width: 2px;
    background: linear-gradient(180deg, #4644DF 0%, #AE2816 100%);
    border-radius: 7px
}

.svc_det .prog_blk .step_item {
    display: flex;
    flex-direction: row;
    gap: 24px;
    align-items: flex-start;
    padding: 24px 0;
    position: relative
}

.svc_det .prog_blk .step_num {
    width: 56px;
    height: 56px;
    border-radius: 48px;
    background: #FFFEFD;
    border: 2px solid #4644DF;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    font-size: 17px;
    font-weight: 800;
    color: #4644DF;
    flex-shrink: 0;
    position: relative;
    z-index: 1;
    box-shadow: 1px 4px 20px 0 #4644df17;
    transition: background .45s cubic-bezier(0.16, 1, 0.3, 1), color .45s cubic-bezier(0.16, 1, 0.3, 1)
}

.svc_det .prog_blk .step_item:hover .step_num {
    background: #4644DF;
    color: #FFFEFD
}

.svc_det .prog_blk .step_body {
    flex: 1;
    padding-top: 12px
}

.svc_det .prog_blk .step_body h2,
.svc_det .prog_blk .step_body h3 {
    font-size: 22px;
    line-height: 1.3;
    font-weight: 700;
    color: #1e1e2e;
    margin-bottom: 8px
}

.svc_det .prog_blk .step_body p {
    font-size: 17px;
    line-height: 1.75;
    color: #3a3a4a;
    margin-bottom: 8px
}

.svc_det .prog_blk .step_body ul {
    list-style: none;
    padding: 0;
    margin: 8px 0
}

.svc_det .prog_blk .step_body ul li {
    font-size: 17px;
    line-height: 1.55;
    color: #3a3a4a;
    padding: 4px 0 4px 20px;
    position: relative
}

.svc_det .prog_blk .step_body ul li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 13px;
    width: 6px;
    height: 6px;
    border-radius: 48px;
    background: #AE2816
}

.svc_det .prog_blk .step_body abbr {
    text-decoration: underline dotted;
    cursor: help;
    color: #4644DF
}

.svc_det .prog_blk .step_body blockquote {
    padding: 12px 16px;
    border-radius: 7px;
    background: #ae28160d;
    font-size: 17px;
    line-height: 1.55;
    color: #AE2816;
    font-weight: 600;
    margin: 12px 0
}

.svc_det .prog_blk .step_body dl {
    margin: 8px 0
}

.svc_det .prog_blk .step_body dt {
    font-weight: 700;
    color: #4644DF;
    font-size: 17px;
    line-height: 1.55
}

.svc_det .prog_blk .step_body dd {
    margin: 4px 0 8px 16px;
    font-size: 17px;
    line-height: 1.55;
    color: #3a3a4a
}

.svc_det .prog_blk .step_body figure {
    margin: 12px 0;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 1px 4px 20px 0 #4644df17
}

.svc_det .prog_blk .step_body figure img {
    width: 100%;
    object-fit: cover;
    display: block
}

.svc_det .prog_blk .step_body figcaption {
    font-size: 14px;
    line-height: 1.55;
    color: #6a6a7a;
    padding: 8px 12px;
    background: #4644df0a
}

.svc_det .price_blk {
    background: linear-gradient(160deg, #4644DF 0%, #AE2816 100%);
    padding: 72px 0
}

.svc_det .price_blk .price_inner {
    max-width: 860px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: center
}

.svc_det .price_blk .price_left .price_h2 {
    font-size: 40px;
    line-height: 1.1;
    font-weight: 800;
    color: transparent;
    -webkit-text-stroke: 1.5px #fffefde6;
    letter-spacing: -1px;
    margin-bottom: 24px
}

.svc_det .price_blk .price_left .price_des {
    font-size: 17px;
    line-height: 1.75;
    color: #fffefdd9;
    margin-bottom: 24px
}

.svc_det .price_blk .price_left .price_note_txt {
    font-size: 14px;
    line-height: 1.55;
    color: #fffefda6;
    border-top: 1px solid #fffefd33;
    padding-top: 16px
}

.svc_det .price_blk .price_right {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 24px
}

.svc_det .price_blk .price_card {
    width: 100%;
    border-radius: 20px;
    background: #fffefd1a;
    border: 2px solid #fffefd40;
    padding: 32px;
    text-align: center;
    box-shadow: 1px 8px 40px 0 #4644df21;
    position: relative
}

.svc_det .price_blk .price_card::before {
    content: '';
    position: absolute;
    inset: 4px;
    border-radius: 16px;
    border: 1px solid #fffefd26;
    pointer-events: none
}

.svc_det .price_blk .price_val {
    font-size: 55px;
    line-height: 1.1;
    font-weight: 900;
    color: #FFFEFD;
    letter-spacing: -2px;
    display: block;
    margin-bottom: 8px
}

.svc_det .price_blk .price_label {
    font-size: 14px;
    line-height: 1.55;
    color: #fffefdb3;
    display: block
}

.svc_det .price_blk .act_btn {
    display: inline-block;
    padding: 16px 32px;
    border-radius: 12px;
    border: 2px solid #FFFEFD;
    background: transparent;
    color: #FFFEFD;
    font-size: 17px;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
    transition: background .45s cubic-bezier(0.16, 1, 0.3, 1), color .45s cubic-bezier(0.16, 1, 0.3, 1), box-shadow .45s cubic-bezier(0.16, 1, 0.3, 1);
    text-align: center;
    width: 100%
}

.svc_det .price_blk .act_btn:hover {
    background: #FFFEFD;
    color: #4644DF;
    box-shadow: 1px 8px 40px 0 #4644df21
}

.svc_det .price_blk .act_btn:focus-visible {
    outline: 3px solid #FFFEFD !important;
    outline-offset: 3px !important
}

.svc_det .price_blk .err_link {
    font-size: 14px;
    line-height: 1.55;
    color: #fffefd99;
    text-align: center;
    text-decoration: underline;
    display: block;
    transition: color .35s ease-in-out
}

.svc_det .price_blk .err_link:hover {
    color: #FFFEFD
}

.svc_det .act_btn:focus-visible {
    outline: 3px solid #4644DF !important;
    outline-offset: 3px !important
}

@media (max-width: 992px) {
    .svc_det .ttl_blk .pg_h1 {
        font-size: 40px
    }

    .svc_det .desc_blk .desc_grid {
        grid-template-columns: 1fr;
        gap: 32px
    }

    .svc_det .price_blk .price_inner {
        grid-template-columns: 1fr;
        gap: 32px
    }

    .svc_det .ttl_blk .bg_char {
        font-size: 160px
    }
}

@media (max-width: 576px) {
    .svc_det .pg_wrap {
        padding: 0 16px
    }

    .svc_det .ttl_blk {
        padding: 48px 0 32px
    }

    .svc_det .ttl_blk .pg_h1 {
        font-size: 29px;
        letter-spacing: -.5px
    }

    .svc_det .ttl_blk .img_frame {
        width: 160px;
        height: 160px
    }

    .svc_det .ttl_blk .bg_char {
        font-size: 100px
    }

    .svc_det .prog_blk .steps_col::before {
        left: 20px
    }

    .svc_det .prog_blk .step_num {
        width: 40px;
        height: 40px;
        font-size: 14px
    }

    .svc_det .desc_blk .desc_h2,
    .svc_det .prog_blk .prog_h2,
    .svc_det .price_blk .price_left .price_h2 {
        font-size: 29px
    }

    .svc_det .price_blk .price_val {
        font-size: 40px
    }

    .svc_det .desc_blk {
        padding: 48px 0
    }

    .svc_det .prog_blk {
        padding: 48px 0
    }

    .svc_det .price_blk {
        padding: 48px 0
    }
}

@media print {
    .svc_det {
        background: #fff
    }

    .svc_det .ttl_blk .bg_char {
        display: none
    }

    .svc_det .ttl_blk .img_frame img {
        filter: none
    }

    .svc_det .ttl_blk .pg_h1 {
        color: #000;
        -webkit-text-stroke: 0;
        font-size: 29px
    }

    .svc_det .desc_blk .desc_h2,
    .svc_det .prog_blk .prog_h2,
    .svc_det .price_blk .price_left .price_h2 {
        color: #000;
        -webkit-text-stroke: 0;
        font-size: 22px
    }

    .svc_det .desc_blk {
        background: #fff
    }

    .svc_det .price_blk {
        background: #fff
    }

    .svc_det .price_blk .price_val,
    .svc_det .price_blk .price_des,
    .svc_det .price_blk .price_note_txt,
    .svc_det .price_blk .price_label {
        color: #000
    }

    .svc_det .price_blk .price_card {
        border-color: #000;
        background: #fff
    }

    .svc_det .price_blk .price_card::before {
        display: none
    }

    .svc_det .act_btn {
        display: none
    }

    .svc_det .err_link {
        display: none
    }

    .svc_det .chev_div {
        display: none
    }

    .svc_det .prog_blk .steps_col::before {
        background: #ccc
    }

    .svc_det .prog_blk .step_num {
        border-color: #000;
        color: #000;
        background: #fff
    }

    .svc_det .meta_badge {
        border-color: #ccc;
        color: #000
    }

    .svc_det .kw_tag {
        border-color: #ccc;
        color: #000
    }

    .svc_det .dot_border {
        display: none
    }

    * {
        box-shadow: none !important
    }
}

.mst {
    overflow-x: hidden
}

.mst .db_row {
    max-width: 1320px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 32px;
    padding-right: 32px
}

.mst .tb {
    padding-top: 48px;
    padding-bottom: 80px;
    background-color: #FFFEFD;
    position: relative
}

.mst .tb_stripe {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
    border-radius: 0
}

.mst .tb_stripe::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: repeating-linear-gradient(-38deg, #4644df0a 0px, #4644df0a 1px, transparent 1px, transparent 18px)
}

.mst .tb_grid {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 48px
}

.mst .tb_left {
    flex: 1 1 0;
    min-width: 0
}

.mst .tb_right {
    flex: 0 0 320px;
    width: 320px
}

.mst .tb_label {
    display: inline-block;
    font-size: 14px;
    line-height: 1.55;
    letter-spacing: .08em;
    color: #AE2816;
    border: 1px solid #ae28164d;
    border-radius: 7px;
    padding: 4px 12px;
    margin-bottom: 16px;
    text-transform: uppercase
}

.mst .tb_h1 {
    font-size: 55px;
    line-height: 1.1;
    letter-spacing: -.02em;
    color: transparent;
    -webkit-text-stroke: 1.5px #4644DF;
    margin-bottom: 16px
}

.mst .tb_sub {
    font-size: 22px;
    line-height: 1.55;
    color: #2a2a3e;
    margin-bottom: 32px;
    max-width: 560px
}

.mst .tb_body {
    font-size: 17px;
    line-height: 1.75;
    color: #3a3a50;
    margin-bottom: 32px
}

.mst .tb_badges {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 8px
}

.mst .badge {
    font-size: 14px;
    line-height: 1.3;
    color: #4644DF;
    background: #4644df12;
    border-radius: 48px;
    padding: 4px 12px;
    border: 1px solid #4644df2e
}

.mst .tb_img_wrap {
    border-radius: 20px;
    overflow: hidden;
    position: relative;
    box-shadow: 1px 8px 40px 0 #4644df21;
    transition: box-shadow .45s cubic-bezier(0.16, 1, 0.3, 1)
}

.mst .tb_img_wrap:hover {
    box-shadow: 1px 12px 56px 0 #4644df38
}

.mst .tb_img_wrap img {
    display: block;
    width: 320px;
    height: 420px;
    object-fit: cover
}

.mst .tb_img_wrap::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 50% 40%, transparent 40%, #14125061 100%);
    pointer-events: none
}

@keyframes clip_reveal {
    from {
        clip-path: inset(0 0 100% 0);
        opacity: .4
    }

    to {
        clip-path: inset(0 0 0% 0);
        opacity: 1
    }
}

.mst .tb_left {
    animation: clip_reveal .55s cubic-bezier(0.16, 1, 0.3, 1) both
}

.mst .tb_right {
    animation: clip_reveal .55s cubic-bezier(0.16, 1, 0.3, 1) .12s both
}

.mst .div_dbl {
    height: 12px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 0;
    background: transparent;
    max-width: 100%
}

.mst .div_dbl span {
    display: block;
    height: 1px;
    background: linear-gradient(90deg, #4644DF 0%, #AE2816 100%);
    opacity: .35
}

.mst .div_dbl span:last-child {
    opacity: .15
}

.mst .sec2 {
    background: radial-gradient(ellipse at 50% 50%, #f5f5ff 0%, #e8e4f0 100%);
    padding-top: 48px;
    padding-bottom: 48px
}

.mst .sec2_head {
    text-align: center;
    margin-bottom: 48px
}

.mst .sec2_h2 {
    font-size: 40px;
    line-height: 1.1;
    letter-spacing: -.02em;
    color: transparent;
    -webkit-text-stroke: 1.5px #4644DF;
    margin-bottom: 12px
}

.mst .sec2_desc {
    font-size: 17px;
    line-height: 1.75;
    color: #3a3a50;
    max-width: 640px;
    margin-left: auto;
    margin-right: auto
}

.mst .sec2_grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 32px
}

.mst .card {
    background: #FFFEFD;
    border-radius: 20px;
    padding: 32px;
    box-shadow: 1px 4px 20px 0 #4644df17;
    transition: box-shadow .45s cubic-bezier(0.16, 1, 0.3, 1), transform .45s cubic-bezier(0.16, 1, 0.3, 1);
    position: relative
}

.mst .card:hover {
    box-shadow: 1px 8px 40px 0 #4644df21;
    transform: translateY(-4px)
}

.mst .card.tall {
    padding-top: 48px;
    padding-bottom: 48px
}

.mst .card_num {
    font-size: 14px;
    line-height: 1.3;
    color: #AE2816;
    font-weight: 700;
    letter-spacing: .1em;
    margin-bottom: 12px;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px
}

.mst .card_num_icon {
    width: 28px;
    height: 28px;
    border-radius: 7px;
    background: #ae28161a;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0
}

.mst .card_num_icon i {
    font-size: 14px;
    color: #AE2816
}

.mst .card_h4 {
    font-size: 22px;
    line-height: 1.3;
    color: #1e1e38;
    margin-bottom: 12px;
    font-weight: 700
}

.mst .card_p {
    font-size: 17px;
    line-height: 1.75;
    color: #3a3a50
}

.mst .card_tags {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 16px
}

.mst .tag {
    font-size: 14px;
    line-height: 1.3;
    color: #4644DF;
    background: #4644df12;
    border-radius: 7px;
    padding: 4px 8px;
    border: 1px solid #4644df26
}

.mst .tag.red {
    color: #AE2816;
    background: #ae281612;
    border-color: #ae281626
}

.mst .card_counter {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: #4644df14;
    border-radius: 48px;
    padding: 4px 12px;
    font-size: 14px;
    color: #4644DF;
    font-weight: 700;
    margin-top: 12px
}

.mst .dashed_featured {
    border: 2px dashed #4644df59;
    border-radius: 20px;
    padding: 32px;
    margin-top: 32px;
    background: #4644df08
}

.mst .dashed_featured_h5 {
    font-size: 17px;
    line-height: 1.3;
    color: #4644DF;
    font-weight: 700;
    margin-bottom: 12px;
    text-align: center
}

.mst .dashed_featured_list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center
}

.mst .dashed_featured_list li {
    font-size: 14px;
    line-height: 1.55;
    color: #3a3a50;
    background: #FFFEFD;
    border-radius: 7px;
    padding: 4px 12px;
    box-shadow: 1px 1px 3px 0 #4644df12
}

.mst .div_thick {
    height: 16px;
    background: linear-gradient(90deg, #4644DF 0%, #AE2816 60%, #FFFEFD 100%);
    opacity: .18
}

.mst .sec3 {
    padding-top: 48px;
    padding-bottom: 48px;
    background: #FFFEFD
}

.mst .sec3_inner {
    display: flex;
    flex-direction: row;
    gap: 48px;
    align-items: flex-start
}

.mst .sec3_left {
    flex: 1 1 0;
    min-width: 0
}

.mst .sec3_right {
    flex: 0 0 380px;
    width: 380px
}

.mst .sec3_h2 {
    font-size: 40px;
    line-height: 1.1;
    letter-spacing: -.02em;
    color: transparent;
    -webkit-text-stroke: 1.5px #AE2816;
    margin-bottom: 16px
}

.mst .sec3_lead {
    font-size: 17px;
    line-height: 1.75;
    color: #3a3a50;
    margin-bottom: 32px
}

.mst .steps {
    display: flex;
    flex-direction: column;
    gap: 16px
}

.mst .step {
    display: flex;
    flex-direction: row;
    gap: 16px;
    align-items: flex-start;
    padding: 16px;
    border-radius: 12px;
    background: #f3f3fc;
    transition: background .4s ease-in-out, box-shadow .4s ease-in-out
}

.mst .step:hover {
    background: #eef;
    box-shadow: 1px 4px 20px 0 #4644df17
}

.mst .step_num {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 48px;
    background: linear-gradient(135deg, #4644DF 0%, #AE2816 100%);
    color: #FFFEFD;
    font-size: 14px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center
}

.mst .step_h6 {
    font-size: 17px;
    line-height: 1.3;
    color: #1e1e38;
    font-weight: 700;
    margin-bottom: 4px
}

.mst .step_p {
    font-size: 14px;
    line-height: 1.55;
    color: #3a3a50
}

.mst .sec3_panel {
    background: radial-gradient(ellipse at 50% 30%, #f0efff 0%, #dcdaf5 100%);
    border-radius: 20px;
    padding: 32px;
    box-shadow: 1px 8px 40px 0 #4644df21
}

.mst .sec3_panel_h4 {
    font-size: 22px;
    line-height: 1.3;
    color: transparent;
    -webkit-text-stroke: 1.2px #4644DF;
    font-weight: 700;
    margin-bottom: 16px;
    text-align: center
}

.mst .metrics {
    display: flex;
    flex-direction: column;
    gap: 12px
}

.mst .metric_row {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 12px 16px;
    background: #fffefdd9;
    border-radius: 12px;
    box-shadow: 1px 1px 3px 0 #4644df12
}

.mst .metric_label {
    font-size: 14px;
    line-height: 1.55;
    color: #3a3a50
}

.mst .metric_val {
    font-size: 17px;
    line-height: 1.3;
    color: #4644DF;
    font-weight: 700
}

.mst .metric_bar_wrap {
    height: 4px;
    background: #4644df1f;
    border-radius: 48px;
    margin-top: 4px;
    overflow: hidden
}

.mst .metric_bar {
    height: 4px;
    border-radius: 48px;
    background: linear-gradient(90deg, #4644DF 0%, #AE2816 100%);
    transition: width .5s cubic-bezier(0.16, 1, 0.3, 1)
}

.mst .sec3_note {
    margin-top: 16px;
    font-size: 14px;
    line-height: 1.55;
    color: #5a5a78;
    text-align: center
}

@media (max-width: 992px) {
    .mst .tb_grid {
        flex-direction: column
    }

    .mst .tb_right {
        flex: unset;
        width: 100%
    }

    .mst .tb_img_wrap img {
        width: 100%;
        height: 280px
    }

    .mst .tb_h1 {
        font-size: 40px
    }

    .mst .sec2_grid {
        grid-template-columns: 1fr 1fr
    }

    .mst .sec3_inner {
        flex-direction: column
    }

    .mst .sec3_right {
        flex: unset;
        width: 100%
    }
}

@media (max-width: 576px) {
    .mst .db_row {
        padding-left: 16px;
        padding-right: 16px
    }

    .mst .tb_h1 {
        font-size: 29px
    }

    .mst .sec2_grid {
        grid-template-columns: 1fr
    }

    .mst .sec2_h2,
    .mst .sec3_h2 {
        font-size: 29px
    }

    .mst .tb_sub {
        font-size: 17px
    }
}

.ab_us {
    overflow-x: hidden;
    background: #FFFEFD
}

.ab_us *,
.ab_us ::before,
.ab_us ::after {
    box-sizing: border-box
}

@keyframes slide_from_left {
    from {
        opacity: 0;
        transform: translateX(-48px)
    }

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

.ab_us .reveal {
    animation: slide_from_left .55s cubic-bezier(0.16, 1, 0.3, 1) both
}

.ab_us .reveal.d1 {
    animation-delay: .08s
}

.ab_us .reveal.d2 {
    animation-delay: .18s
}

.ab_us .reveal.d3 {
    animation-delay: .28s
}

.ab_us .reveal.d4 {
    animation-delay: .38s
}

.ab_us .reveal.d5 {
    animation-delay: .48s
}

.ab_us .div_tick {
    width: 100%;
    height: 18px;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0;
    overflow: hidden
}

.ab_us .div_tick::before {
    content: '';
    display: block;
    flex: 1;
    height: 1px;
    background: repeating-linear-gradient(to right, #4644DF 0px, #4644DF 1px, transparent 1px, transparent 18px, #4644DF 18px, #4644DF 19px, transparent 19px, transparent 20px)
}

.ab_us .ttl_blk {
    position: relative;
    padding: 64px 0 48px;
    background: linear-gradient(120deg, #f5f4ff 0%, #fff7f5 60%, #FFFEFD 100%);
    overflow: hidden
}

.ab_us .ttl_blk .geo_ring {
    position: absolute;
    right: -80px;
    top: -80px;
    width: 420px;
    height: 420px;
    border-radius: 48px;
    border: 2px solid #4644df17;
    pointer-events: none;
    animation: ring_pulse 4s ease-in-out infinite alternate
}

.ab_us .ttl_blk .geo_ring.sm {
    right: 40px;
    top: 40px;
    width: 260px;
    height: 260px;
    border-color: #ae281612;
    animation-delay: 1.2s
}

@keyframes ring_pulse {
    from {
        opacity: .6;
        transform: scale(1)
    }

    to {
        opacity: 1;
        transform: scale(1.04)
    }
}

.ab_us .ttl_blk .pg_max {
    max-width: 1320px;
    margin: 0 auto;
    padding: 0 32px;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 48px
}

.ab_us .ttl_blk .txt_col {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    gap: 16px
}

.ab_us .ttl_blk .eyebrow {
    font-size: 14px;
    line-height: 1.55;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #4644DF;
    font-weight: 600
}

.ab_us .ttl_blk .ttl_h1 {
    font-size: 55px;
    line-height: 1.1;
    letter-spacing: -.03em;
    font-weight: 800;
    color: transparent;
    -webkit-text-stroke: 2px #4644DF;
    paint-order: stroke fill;
    margin: 0
}

.ab_us .ttl_blk .ttl_h1 em {
    font-style: normal;
    -webkit-text-stroke: 2px #AE2816
}

.ab_us .ttl_blk .sub_p {
    font-size: 17px;
    line-height: 1.55;
    color: #2a2a3a;
    max-width: 520px;
    margin: 0
}

.ab_us .ttl_blk .since_badge {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    border: 1px solid #4644df33;
    border-radius: 7px;
    padding: 8px 16px;
    font-size: 14px;
    color: #4644DF;
    font-weight: 600;
    background: #4644df0a;
    width: fit-content
}

.ab_us .ttl_blk .img_col {
    flex: 0 0 420px;
    position: relative;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 1px 8px 40px 0 #4644df21
}

.ab_us .ttl_blk .img_col img {
    display: block;
    width: 420px;
    height: 300px;
    object-fit: cover
}

.ab_us .ttl_blk .img_overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to right, #4644df61 0%, transparent 60%);
    border-radius: 20px
}

.ab_us .ttl_blk .icon_chain {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    margin-top: 8px
}

.ab_us .ttl_blk .icon_chain .ic_node {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background: #4644DF;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    color: #FFFEFD;
    font-size: 17px;
    flex-shrink: 0
}

.ab_us .ttl_blk .icon_chain .ic_node.alt {
    background: #AE2816
}

.ab_us .ttl_blk .icon_chain .ic_dash {
    flex: 1;
    height: 1px;
    border-top: 2px dashed #4644df4d;
    max-width: 48px
}

.ab_us .mag_blk {
    padding: 64px 0 72px;
    background: #FFFEFD
}

.ab_us .mag_blk .pg_max {
    max-width: 1320px;
    margin: 0 auto;
    padding: 0 32px;
    display: flex;
    flex-direction: row;
    gap: 48px;
    align-items: flex-start
}

.ab_us .mag_blk .sidebar {
    flex: 0 0 280px;
    display: flex;
    flex-direction: column;
    gap: 32px
}

.ab_us .sidebar .sb_label {
    font-size: 14px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #4644DF;
    font-weight: 700
}

.ab_us .sidebar .sb_h2 {
    font-size: 29px;
    line-height: 1.3;
    letter-spacing: -.02em;
    font-weight: 800;
    color: transparent;
    -webkit-text-stroke: 1.5px #2a2a3a;
    margin: 0
}

.ab_us .sidebar .sb_img_wrap {
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 1px 4px 20px 0 #4644df17
}

.ab_us .sidebar .sb_img_wrap img {
    display: block;
    width: 100%;
    height: 200px;
    object-fit: cover;
    transition: transform .45s cubic-bezier(0.16, 1, 0.3, 1)
}

.ab_us .sidebar .sb_img_wrap:hover img {
    transform: scale(1.04)
}

.ab_us .sidebar .metrics_list {
    display: flex;
    flex-direction: column;
    gap: 16px;
    list-style: none;
    margin: 0;
    padding: 0
}

.ab_us .sidebar .metrics_list li {
    display: flex;
    flex-direction: column;
    gap: 4px;
    border-left: none;
    padding: 12px 16px;
    border-radius: 7px;
    background: #4644df0a;
    border: 1px solid #4644df1a
}

.ab_us .sidebar .metrics_list .m_val {
    font-size: 29px;
    font-weight: 800;
    color: #4644DF;
    line-height: 1.1
}

.ab_us .sidebar .metrics_list .m_lbl {
    font-size: 14px;
    color: #4a4a6a;
    line-height: 1.55
}

.ab_us .mag_blk .main_col {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    gap: 32px
}

.ab_us .main_col .mc_h3 {
    font-size: 40px;
    line-height: 1.1;
    letter-spacing: -.025em;
    font-weight: 800;
    color: transparent;
    -webkit-text-stroke: 2px #4644DF;
    margin: 0;
    text-align: center
}

.ab_us .main_col .para_num {
    counter-reset: para_c;
    display: flex;
    flex-direction: column;
    gap: 16px
}

.ab_us .main_col .para_num .pn_item {
    display: flex;
    flex-direction: row;
    gap: 16px;
    align-items: flex-start
}

.ab_us .main_col .para_num .pn_item::before {
    counter-increment: para_c;
    content: counter(para_c, decimal-leading-zero);
    font-size: 14px;
    font-weight: 700;
    color: #4644DF;
    flex-shrink: 0;
    padding-top: 4px;
    min-width: 28px
}

.ab_us .main_col .para_num .pn_item p {
    font-size: 17px;
    line-height: 1.75;
    color: #2a2a3a;
    margin: 0
}

.ab_us .main_col .feat_preview {
    display: flex;
    flex-direction: row;
    gap: 32px;
    align-items: stretch;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 1px 4px 20px 0 #4644df17
}

.ab_us .feat_preview .feat_list_col {
    flex: 1 1 0;
    background: #4644df0a;
    padding: 32px;
    display: flex;
    flex-direction: column;
    gap: 16px
}

.ab_us .feat_preview .feat_list_col .fl_h4 {
    font-size: 22px;
    font-weight: 700;
    color: #2a2a3a;
    margin: 0;
    line-height: 1.3
}

.ab_us .feat_preview .feat_list_col ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 12px
}

.ab_us .feat_preview .feat_list_col ul li {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 12px;
    font-size: 17px;
    line-height: 1.55;
    color: #2a2a3a
}

.ab_us .feat_preview .feat_list_col ul li .li_dot {
    width: 8px;
    height: 8px;
    border-radius: 48px;
    background: #4644DF;
    flex-shrink: 0;
    margin-top: 6px
}

.ab_us .feat_preview .feat_list_col ul li:nth-child(2n) .li_dot {
    background: #AE2816
}

.ab_us .feat_preview .prev_img_col {
    flex: 0 0 240px;
    position: relative;
    overflow: hidden
}

.ab_us .feat_preview .prev_img_col img {
    display: block;
    width: 240px;
    height: 100%;
    object-fit: cover;
    min-height: 280px;
    transition: transform .5s cubic-bezier(0.16, 1, 0.3, 1)
}

.ab_us .feat_preview .prev_img_col:hover img {
    transform: scale(1.05)
}

.ab_us .feat_preview .prev_img_col .prev_overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, #ae281680 0%, transparent 55%)
}

.ab_us .feat_preview .prev_img_col .prev_cap {
    position: absolute;
    bottom: 16px;
    left: 16px;
    right: 16px;
    font-size: 14px;
    color: #FFFEFD;
    font-weight: 600;
    line-height: 1.3
}

.ab_us .main_col .pricing_tbl {
    width: 100%;
    border-collapse: collapse;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 1px 1px 3px 0 #4644df12
}

.ab_us .main_col .pricing_tbl thead tr {
    background: linear-gradient(120deg, #4644DF 0%, #AE2816 100%)
}

.ab_us .main_col .pricing_tbl thead th {
    font-size: 14px;
    font-weight: 700;
    color: #FFFEFD;
    padding: 12px 16px;
    text-align: left;
    letter-spacing: .06em;
    text-transform: uppercase
}

.ab_us .main_col .pricing_tbl tbody tr {
    border-bottom: 1px solid #4644df14;
    transition: background .35s cubic-bezier(0.16, 1, 0.3, 1)
}

.ab_us .main_col .pricing_tbl tbody tr:last-child {
    border-bottom: none
}

.ab_us .main_col .pricing_tbl tbody tr:nth-child(odd) {
    background: #4644df08
}

.ab_us .main_col .pricing_tbl tbody tr:nth-child(even) {
    background: #FFFEFD
}

.ab_us .main_col .pricing_tbl tbody tr:hover {
    background: #4644df12
}

.ab_us .main_col .pricing_tbl tbody td {
    font-size: 14px;
    color: #2a2a3a;
    padding: 12px 16px;
    line-height: 1.55;
    vertical-align: middle
}

.ab_us .main_col .pricing_tbl tbody td:first-child {
    font-weight: 600;
    color: #4644DF
}

.ab_us .main_col .pricing_tbl .chk {
    display: inline-flex;
    width: 20px;
    height: 20px;
    border-radius: 7px;
    align-items: center;
    justify-content: center;
    font-size: 12px
}

.ab_us .main_col .pricing_tbl .chk.yes {
    background: #4644df1a;
    color: #4644DF
}

.ab_us .main_col .pricing_tbl .chk.no {
    background: #ae281614;
    color: #AE2816
}

.ab_us .tbl_h4 {
    font-size: 22px;
    font-weight: 700;
    color: #2a2a3a;
    margin: 0 0 16px;
    text-align: center;
    line-height: 1.3
}

.ab_us .main_col .img_row {
    display: flex;
    flex-direction: row;
    gap: 16px
}

.ab_us .main_col .img_row .ir_wrap {
    flex: 1 1 0;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 1px 1px 3px 0 #4644df12;
    position: relative
}

.ab_us .main_col .img_row .ir_wrap img {
    display: block;
    width: 100%;
    height: 180px;
    object-fit: cover;
    transition: transform .45s cubic-bezier(0.16, 1, 0.3, 1)
}

.ab_us .main_col .img_row .ir_wrap:hover img {
    transform: scale(1.05)
}

.ab_us .main_col .cta_row {
    display: flex;
    flex-direction: row;
    gap: 16px;
    align-items: center;
    flex-wrap: wrap
}

.ab_us .btn_prim {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    padding: 12px 32px;
    border-radius: 12px;
    border: 2px solid #4644DF;
    background: transparent;
    color: #4644DF;
    font-size: 17px;
    font-weight: 700;
    cursor: pointer;
    text-decoration: none;
    transition: box-shadow .45s cubic-bezier(0.16, 1, 0.3, 1), background .4s ease-in-out, color .4s ease-in-out
}

.ab_us .btn_prim:hover {
    background: #4644DF;
    color: #FFFEFD;
    box-shadow: 1px 8px 40px 0 #4644df21
}

.ab_us .btn_prim:focus-visible {
    outline: 3px solid #4644DF;
    outline-offset: 3px
}

.ab_us .btn_sec {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    padding: 12px 32px;
    border-radius: 12px;
    border: 2px solid #AE2816;
    background: transparent;
    color: #AE2816;
    font-size: 17px;
    font-weight: 700;
    cursor: pointer;
    text-decoration: none;
    transition: box-shadow .5s cubic-bezier(0.16, 1, 0.3, 1), background .4s ease-in-out, color .4s ease-in-out
}

.ab_us .btn_sec:hover {
    background: #AE2816;
    color: #FFFEFD;
    box-shadow: 1px 8px 40px 0 #ae281621
}

.ab_us .btn_sec:focus-visible {
    outline: 3px solid #AE2816;
    outline-offset: 3px
}

@media (max-width: 992px) {
    .ab_us .ttl_blk .pg_max {
        flex-direction: column;
        gap: 32px
    }

    .ab_us .ttl_blk .img_col {
        flex: 0 0 auto;
        width: 100%
    }

    .ab_us .ttl_blk .img_col img {
        width: 100%;
        height: 240px
    }

    .ab_us .ttl_h1 {
        font-size: 40px
    }

    .ab_us .mag_blk .pg_max {
        flex-direction: column;
        gap: 32px
    }

    .ab_us .mag_blk .sidebar {
        flex: 0 0 auto;
        width: 100%
    }

    .ab_us .feat_preview {
        flex-direction: column
    }

    .ab_us .feat_preview .prev_img_col {
        flex: 0 0 auto;
        width: 100%
    }

    .ab_us .feat_preview .prev_img_col img {
        width: 100%;
        height: 200px;
        min-height: unset
    }
}

@media (max-width: 576px) {
    .ab_us .ttl_blk {
        padding: 48px 0 32px
    }

    .ab_us .ttl_blk .pg_max {
        padding: 0 16px
    }

    .ab_us .ttl_h1 {
        font-size: 29px
    }

    .ab_us .mag_blk .pg_max {
        padding: 0 16px
    }

    .ab_us .mag_blk {
        padding: 48px 0
    }

    .ab_us .main_col .mc_h3 {
        font-size: 29px
    }

    .ab_us .main_col .img_row {
        flex-direction: column
    }

    .ab_us .cta_row {
        flex-direction: column;
        align-items: flex-start
    }

    .ab_us .btn_prim,
    .ab_us .btn_sec {
        width: 100%;
        justify-content: center
    }

    .ab_us .pricing_tbl thead th,
    .ab_us .pricing_tbl tbody td {
        padding: 8px;
        font-size: 14px
    }
}

.srv {
    background: #FFFEFD;
    overflow-x: hidden
}

.srv .pg_strip {
    width: 100%;
    height: 6px;
    background: linear-gradient(90deg, #4644DF 0%, #AE2816 100%)
}

.srv .title_zone {
    max-width: 1320px;
    margin: 0 auto;
    padding: 48px 32px 32px;
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative
}

.srv .title_zone .bg_num {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    font-size: 70px;
    font-weight: 900;
    color: #4644DF;
    opacity: .04;
    line-height: 1.1;
    letter-spacing: -4px;
    pointer-events: none;
    white-space: nowrap;
    user-select: none
}

.srv .title_zone .img_strip {
    width: 100%;
    max-width: 900px;
    height: 140px;
    border-radius: 12px;
    overflow: hidden;
    margin-bottom: 32px
}

.srv .title_zone .img_strip img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 30%;
    filter: blur(0px) contrast(1.08);
    transition: filter .45s cubic-bezier(0.16, 1, 0.3, 1)
}

.srv .title_zone .img_strip:hover img {
    filter: blur(0px) contrast(1.18) saturate(1.1)
}

.srv .title_zone .t_head {
    font-size: 55px;
    font-weight: 900;
    line-height: 1.1;
    letter-spacing: -2px;
    color: transparent;
    -webkit-text-stroke: 2px #4644DF;
    text-align: center;
    margin-bottom: 8px
}

.srv .title_zone .t_sub {
    font-size: 22px;
    font-weight: 700;
    line-height: 1.3;
    color: #AE2816;
    text-align: center;
    margin-bottom: 16px
}

.srv .title_zone .t_desc {
    font-size: 17px;
    line-height: 1.55;
    color: #2a2a2e;
    text-align: center;
    max-width: 640px
}

.srv .wave_div {
    width: 100%;
    overflow: hidden;
    line-height: 0
}

.srv .wave_div svg {
    display: block;
    width: 100%
}

.srv .cards_zone {
    background: #f0effa;
    padding: 48px 0
}

.srv .cards_inner {
    max-width: 1320px;
    margin: 0 auto;
    padding: 0 32px
}

.srv .cards_grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px
}

.srv .svc_card {
    background: #FFFEFD;
    border-radius: 20px;
    box-shadow: 1px 4px 20px 0 #4644df17;
    display: flex;
    flex-direction: column;
    transition: box-shadow .45s cubic-bezier(0.16, 1, 0.3, 1), transform .45s cubic-bezier(0.16, 1, 0.3, 1);
    overflow: hidden
}

.srv .svc_card:hover {
    box-shadow: 1px 8px 40px 0 #4644df21;
    transform: translateY(-4px)
}

.srv .card_img_wrap {
    width: 100%;
    height: 180px;
    overflow: hidden;
    flex-shrink: 0
}

.srv .card_img_wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: blur(3px);
    transition: filter .5s cubic-bezier(0.16, 1, 0.3, 1)
}

.srv .svc_card:hover .card_img_wrap img {
    filter: blur(0px)
}

.srv .card_body {
    padding: 24px;
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: 12px
}

.srv .card_badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    line-height: 1.3;
    color: #4644DF;
    font-weight: 600
}

.srv .card_badge .badge_dot {
    width: 8px;
    height: 8px;
    border-radius: 48px;
    background: #4644DF;
    flex-shrink: 0
}

.srv .card_title {
    font-size: 22px;
    font-weight: 800;
    line-height: 1.3;
    color: transparent;
    -webkit-text-stroke: 1.5px #2a2a2e
}

.srv .card_desc {
    font-size: 14px;
    line-height: 1.55;
    color: #3a3a44;
    flex: 1
}

.srv .card_meta {
    display: flex;
    flex-direction: row;
    gap: 12px;
    align-items: center;
    flex-wrap: wrap
}

.srv .meta_item {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 14px;
    color: #5a5a6e;
    line-height: 1.3
}

.srv .meta_item i {
    font-size: 14px;
    color: #AE2816
}

.srv .card_price_row {
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    gap: 8px;
    flex-wrap: wrap
}

.srv .price_val {
    font-size: 29px;
    font-weight: 900;
    line-height: 1.1;
    color: #4644DF
}

.srv .price_des {
    font-size: 14px;
    color: #5a5a6e;
    line-height: 1.55;
    padding-bottom: 4px
}

.srv .price_note {
    font-size: 14px;
    color: #AE2816;
    line-height: 1.3;
    font-style: italic;
    width: 100%
}

.srv .card_link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 24px;
    border-radius: 12px;
    border: 2px solid #4644DF;
    background: transparent;
    color: #4644DF;
    font-size: 17px;
    font-weight: 700;
    text-decoration: none;
    transition: background .4s cubic-bezier(0.16, 1, 0.3, 1), box-shadow .4s cubic-bezier(0.16, 1, 0.3, 1), color .4s cubic-bezier(0.16, 1, 0.3, 1);
    align-self: flex-start;
    margin-top: 4px
}

.srv .card_link:hover {
    background: #4644DF;
    color: #FFFEFD;
    box-shadow: 1px 8px 40px 0 #4644df21
}

.srv .card_link i {
    font-size: 14px;
    transition: transform .4s cubic-bezier(0.16, 1, 0.3, 1)
}

.srv .card_link:hover i {
    transform: translateX(4px)
}

.srv .wave_div2 {
    width: 100%;
    overflow: hidden;
    line-height: 0;
    background: #f0effa
}

.srv .wave_div2 svg {
    display: block;
    width: 100%
}

.srv .about_zone {
    max-width: 1320px;
    margin: 0 auto;
    padding: 48px 32px;
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap: 32px;
    align-items: start
}

.srv .about_main {
    display: flex;
    flex-direction: column;
    gap: 16px
}

.srv .about_main .sec_label {
    font-size: 14px;
    font-weight: 700;
    color: #AE2816;
    letter-spacing: 1px;
    text-transform: uppercase;
    line-height: 1.3
}

.srv .about_main .sec_h {
    font-size: 40px;
    font-weight: 900;
    line-height: 1.1;
    letter-spacing: -1px;
    color: transparent;
    -webkit-text-stroke: 2px #4644DF
}

.srv .about_main .para {
    font-size: 17px;
    line-height: 1.55;
    color: #2a2a2e
}

.srv .about_main .para::before {
    content: attr(data-n) ". ";
    color: #4644DF;
    font-weight: 700
}

.srv .stat_card {
    background: #FFFEFD;
    border-radius: 20px;
    padding: 32px 24px;
    box-shadow: 1px 4px 20px 0 #4644df17;
    display: flex;
    flex-direction: column;
    gap: 12px;
    animation: softpulse 3.5s ease-in-out infinite
}

@keyframes softpulse {

    0%,
    100% {
        transform: scale(1)
    }

    50% {
        transform: scale(1.02)
    }
}

.srv .stat_card .stat_num {
    font-size: 55px;
    font-weight: 900;
    line-height: 1.1;
    color: #4644DF;
    letter-spacing: -2px
}

.srv .stat_card .stat_label {
    font-size: 17px;
    line-height: 1.3;
    color: #2a2a2e;
    font-weight: 600
}

.srv .stat_card .stat_desc {
    font-size: 14px;
    line-height: 1.55;
    color: #5a5a6e
}

.srv .process_zone {
    background: #f0effa;
    padding: 48px 0;
    position: relative;
    overflow: hidden
}

.srv .geo_bg {
    position: absolute;
    top: 50%;
    right: -80px;
    transform: translateY(-50%);
    width: 320px;
    height: 320px;
    border-radius: 48px;
    border: 3px solid #4644df14;
    animation: rotateSlow 18s linear infinite;
    pointer-events: none
}

@keyframes rotateSlow {
    from {
        transform: translateY(-50%) rotate(0deg)
    }

    to {
        transform: translateY(-50%) rotate(360deg)
    }
}

.srv .process_inner {
    max-width: 1320px;
    margin: 0 auto;
    padding: 0 32px
}

.srv .process_inner .sec_h2 {
    font-size: 40px;
    font-weight: 900;
    line-height: 1.1;
    letter-spacing: -1px;
    color: transparent;
    -webkit-text-stroke: 2px #2a2a2e;
    text-align: center;
    margin-bottom: 32px
}

.srv .steps_row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px
}

.srv .step_item {
    background: #FFFEFD;
    border-radius: 20px;
    padding: 32px 16px 24px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    box-shadow: 1px 1px 3px 0 #4644df12;
    transition: box-shadow .5s cubic-bezier(0.16, 1, 0.3, 1)
}

.srv .step_item:hover {
    box-shadow: 1px 4px 20px 0 #4644df17
}

.srv .step_num {
    font-size: 40px;
    font-weight: 900;
    line-height: 1.1;
    color: transparent;
    -webkit-text-stroke: 2px #AE2816;
    letter-spacing: -2px
}

.srv .step_title {
    font-size: 17px;
    font-weight: 700;
    line-height: 1.3;
    color: #2a2a2e
}

.srv .step_text {
    font-size: 14px;
    line-height: 1.55;
    color: #3a3a44
}

.srv .wave_div3 {
    width: 100%;
    overflow: hidden;
    line-height: 0;
    background: #f0effa
}

.srv .wave_div3 svg {
    display: block;
    width: 100%
}

.srv .contact_zone {
    max-width: 1320px;
    margin: 0 auto;
    padding: 48px 32px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: center
}

.srv .contact_left {
    display: flex;
    flex-direction: column;
    gap: 16px
}

.srv .contact_left .sec_h3 {
    font-size: 40px;
    font-weight: 900;
    line-height: 1.1;
    letter-spacing: -1px;
    color: transparent;
    -webkit-text-stroke: 2px #4644DF
}

.srv .contact_left .c_desc {
    font-size: 17px;
    line-height: 1.55;
    color: #2a2a2e
}

.srv .contact_left .c_desc::before {
    content: attr(data-n) ". ";
    color: #AE2816;
    font-weight: 700
}

.srv .contact_left .img_wrap2 {
    width: 100%;
    height: 240px;
    border-radius: 20px;
    overflow: hidden
}

.srv .contact_left .img_wrap2 img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: blur(3px);
    transition: filter .5s cubic-bezier(0.16, 1, 0.3, 1)
}

.srv .contact_left .img_wrap2:hover img {
    filter: blur(0px)
}

.srv .contact_form {
    background: #FFFEFD;
    border-radius: 20px;
    padding: 32px;
    box-shadow: 1px 4px 20px 0 #4644df17;
    display: flex;
    flex-direction: column;
    gap: 16px
}

.srv .contact_form .form_h {
    font-size: 22px;
    font-weight: 800;
    line-height: 1.3;
    color: #2a2a2e;
    text-align: center
}

.srv .f_group {
    display: flex;
    flex-direction: column;
    gap: 8px
}

.srv .f_group label {
    font-size: 14px;
    font-weight: 600;
    color: #3a3a44;
    line-height: 1.3
}

.srv .f_group input,
.srv .f_group textarea,
.srv .f_group select {
    padding: 12px 16px;
    border-radius: 12px;
    border: 2px solid #d8d7f5 !important;
    background: #FFFEFD;
    font-size: 17px;
    color: #2a2a2e;
    line-height: 1.55;
    outline: none;
    transition: border-color .4s cubic-bezier(0.16, 1, 0.3, 1);
    width: 100%;
    box-sizing: border-box
}

.srv .f_group input::placeholder,
.srv .f_group textarea::placeholder {
    color: #2a2a2e59
}

.srv .f_group input:focus,
.srv .f_group textarea:focus,
.srv .f_group select:focus {
    border-color: #4644DF !important
}

.srv .f_group textarea {
    resize: vertical;
    min-height: 100px
}

.srv .form_btn {
    padding: 16px 32px;
    border-radius: 12px;
    border: 2px solid #4644DF;
    background: transparent;
    color: #4644DF;
    font-size: 17px;
    font-weight: 700;
    cursor: pointer;
    transition: background .45s cubic-bezier(0.16, 1, 0.3, 1), color .45s cubic-bezier(0.16, 1, 0.3, 1), box-shadow .45s cubic-bezier(0.16, 1, 0.3, 1);
    align-self: stretch
}

.srv .form_btn:hover {
    background: #4644DF;
    color: #FFFEFD;
    box-shadow: 1px 8px 40px 0 #4644df21
}

.srv .keywords_band {
    background: #4644DF;
    padding: 16px 32px;
    overflow: hidden
}

.srv .kw_scroll {
    display: flex;
    flex-direction: row;
    gap: 32px;
    align-items: center;
    flex-wrap: wrap;
    justify-content: center;
    max-width: 1320px;
    margin: 0 auto
}

.srv .kw_item {
    font-size: 14px;
    font-weight: 600;
    color: #fffefdb3;
    line-height: 1.3;
    white-space: nowrap
}

.srv .kw_item.active {
    color: #FFFEFD
}

@media (max-width: 992px) {
    .srv .cards_grid {
        grid-template-columns: repeat(2, 1fr)
    }

    .srv .about_zone {
        grid-template-columns: 1fr 1fr
    }

    .srv .about_main {
        grid-column: 1 / -1
    }

    .srv .steps_row {
        grid-template-columns: repeat(2, 1fr)
    }

    .srv .contact_zone {
        grid-template-columns: 1fr;
        gap: 32px
    }

    .srv .title_zone .t_head {
        font-size: 40px
    }
}

@media (max-width: 576px) {
    .srv .cards_grid {
        grid-template-columns: 1fr
    }

    .srv .about_zone {
        grid-template-columns: 1fr
    }

    .srv .steps_row {
        grid-template-columns: 1fr
    }

    .srv .title_zone {
        padding: 32px 16px 24px
    }

    .srv .cards_inner,
    .srv .process_inner,
    .srv .contact_zone {
        padding-left: 16px;
        padding-right: 16px
    }

    .srv .title_zone .t_head {
        font-size: 29px;
        letter-spacing: -1px
    }

    .srv .title_zone .t_sub {
        font-size: 17px
    }

    .srv .about_zone {
        padding: 32px 16px
    }

    .srv .stat_card .stat_num {
        font-size: 40px
    }

    .srv .contact_form {
        padding: 24px 16px
    }
}

.cnt_us {
    background: #FFFEFD;
    overflow-x: clip
}

.cnt_us .pg_reveal {
    animation: clip_reveal .55s cubic-bezier(0.16, 1, 0.3, 1) both
}

@keyframes clip_reveal {
    from {
        clip-path: inset(0 0 100% 0);
        opacity: 0
    }

    to {
        clip-path: inset(0 0 0% 0);
        opacity: 1
    }
}

.cnt_us .top_band {
    padding: 48px 16px;
    max-width: 1320px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 32px
}

.cnt_us .top_img_wrap {
    width: 100%;
    max-width: 680px;
    border-radius: 20px;
    overflow: hidden;
    position: relative
}

.cnt_us .top_img_wrap img {
    width: 100%;
    height: 360px;
    object-fit: cover;
    display: block
}

.cnt_us .top_img_fade {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 60%;
    background: linear-gradient(to top, #FFFEFD 0%, transparent 100%);
    pointer-events: none
}

.cnt_us .top_deco_lines {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 80px;
    height: 80px;
    pointer-events: none;
    overflow: hidden
}

.cnt_us .top_deco_lines svg {
    opacity: .13
}

.cnt_us .top_txt {
    text-align: center;
    max-width: 600px
}

.cnt_us .top_label {
    font-size: 14px;
    line-height: 1.55;
    color: #4644DF;
    letter-spacing: .08em;
    text-transform: uppercase;
    margin-bottom: 12px
}

.cnt_us .top_h {
    font-size: 55px;
    line-height: 1.1;
    letter-spacing: -.03em;
    font-weight: 800;
    color: transparent;
    -webkit-text-stroke: 2px #4644DF;
    margin-bottom: 16px
}

.cnt_us .top_sub {
    font-size: 17px;
    line-height: 1.55;
    color: #2a2a3d;
    margin-bottom: 8px
}

.cnt_us .top_note {
    font-size: 14px;
    line-height: 1.75;
    color: #5a5a7a
}

.cnt_us .top_note .hl_term {
    background: #4644DF;
    color: #FFFEFD;
    padding: 0 6px;
    border-radius: 7px;
    font-weight: 600
}

.cnt_us .divider_grad {
    height: 1px;
    background: linear-gradient(90deg, transparent 0%, #4644DF 40%, #AE2816 60%, transparent 100%);
    opacity: .25;
    margin: 0
}

.cnt_us .contacts_strip {
    background: #2a2838;
    padding: 48px 16px
}

.cnt_us .contacts_strip_in {
    max-width: 1320px;
    margin: 0 auto;
    display: flex;
    flex-direction: row;
    gap: 32px;
    align-items: flex-start
}

.cnt_us .cs_left {
    flex: 0 0 auto;
    width: 340px;
    display: flex;
    flex-direction: column;
    gap: 32px
}

.cnt_us .cs_head {
    font-size: 40px;
    line-height: 1.1;
    font-weight: 800;
    letter-spacing: -.03em;
    color: transparent;
    -webkit-text-stroke: 1.5px #FFFEFD
}

.cnt_us .cs_desc {
    font-size: 14px;
    line-height: 1.75;
    color: #b8b6d4
}

.cnt_us .cs_item {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 12px
}

.cnt_us .cs_icon {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background: #4644df2e;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background .45s cubic-bezier(0.16, 1, 0.3, 1)
}

.cnt_us .cs_icon i {
    color: #7b79f0;
    font-size: 17px
}

.cnt_us .cs_item:hover .cs_icon {
    background: #4644df59
}

.cnt_us .cs_item_body {
    display: flex;
    flex-direction: column;
    gap: 4px
}

.cnt_us .cs_item_lbl {
    font-size: 14px;
    line-height: 1.3;
    color: #7b79f0;
    font-weight: 600;
    letter-spacing: .05em;
    text-transform: uppercase
}

.cnt_us .cs_item_val {
    font-size: 17px;
    line-height: 1.55;
    color: #FFFEFD;
    text-decoration: none !important;
    transition: color .4s ease-in-out
}

.cnt_us .cs_item_val:hover {
    color: #7b79f0;
    border-bottom: 1px dashed #7b79f0
}

.cnt_us .cs_right {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 16px;
    position: relative
}

.cnt_us .cs_right_img {
    width: 100%;
    border-radius: 20px;
    overflow: hidden
}

.cnt_us .cs_right_img img {
    width: 100%;
    height: 320px;
    object-fit: cover;
    display: block;
    mix-blend-mode: luminosity;
    opacity: .6
}

.cnt_us .cs_stat_row {
    display: flex;
    flex-direction: row;
    gap: 16px
}

.cnt_us .cs_stat {
    flex: 1 1 0;
    background: #4644df1f;
    border-radius: 12px;
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    transition: background .45s cubic-bezier(0.16, 1, 0.3, 1), box-shadow .45s cubic-bezier(0.16, 1, 0.3, 1)
}

.cnt_us .cs_stat:hover {
    background: #4644df38;
    box-shadow: 1px 4px 20px 0 #4644df17
}

.cnt_us .cs_stat_num {
    font-size: 29px;
    line-height: 1.1;
    font-weight: 800;
    color: #7b79f0
}

.cnt_us .cs_stat_txt {
    font-size: 14px;
    line-height: 1.55;
    color: #b8b6d4
}

.cnt_us .divider_grad2 {
    height: 1px;
    background: linear-gradient(90deg, transparent 0%, #AE2816 35%, #4644DF 65%, transparent 100%);
    opacity: .2
}

.cnt_us .form_band {
    padding: 48px 16px;
    background: #FFFEFD
}

.cnt_us .form_band_in {
    max-width: 1320px;
    margin: 0 auto;
    display: flex;
    flex-direction: row;
    gap: 48px;
    align-items: flex-start
}

.cnt_us .fb_aside {
    flex: 0 0 auto;
    width: 300px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding-top: 8px
}

.cnt_us .fb_aside_h {
    font-size: 40px;
    line-height: 1.1;
    font-weight: 800;
    letter-spacing: -.03em;
    color: transparent;
    -webkit-text-stroke: 1.5px #AE2816
}

.cnt_us .fb_aside_p {
    font-size: 14px;
    line-height: 1.75;
    color: #3a3a50
}

.cnt_us .fb_aside_p span {
    background: #AE2816;
    color: #FFFEFD;
    padding: 0 5px;
    border-radius: 7px;
    font-weight: 600
}

.cnt_us .fb_aside_steps {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 8px
}

.cnt_us .fb_step {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 12px
}

.cnt_us .fb_step_num {
    width: 28px;
    height: 28px;
    border-radius: 48px;
    background: #4644DF;
    color: #FFFEFD;
    font-size: 14px;
    font-weight: 700;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    flex-shrink: 0
}

.cnt_us .fb_step_txt {
    font-size: 14px;
    line-height: 1.55;
    color: #3a3a50;
    padding-top: 4px
}

.cnt_us .fb_progress {
    margin-top: 16px;
    background: #eeedf8;
    border-radius: 48px;
    height: 8px;
    overflow: hidden
}

.cnt_us .fb_progress_bar {
    height: 100%;
    width: 68%;
    background: linear-gradient(90deg, #4644DF 0%, #AE2816 100%);
    border-radius: 48px;
    animation: prog_grow .55s cubic-bezier(0.16, 1, 0.3, 1) .2s both
}

@keyframes prog_grow {
    from {
        width: 0
    }

    to {
        width: 68%
    }
}

.cnt_us .fb_progress_lbl {
    font-size: 14px;
    line-height: 1.55;
    color: #5a5a7a;
    margin-top: 4px
}

.cnt_us .fb_form_wrap {
    flex: 1 1 auto
}

.cnt_us .contact_form {
    background: #FFFEFD;
    border: 1.5px solid #e0dff5;
    border-radius: 20px;
    padding: 32px;
    box-shadow: 1px 8px 40px 0 #4644df21;
    display: flex;
    flex-direction: column;
    gap: 16px
}

.cnt_us .form_row {
    display: flex;
    flex-direction: row;
    gap: 16px
}

.cnt_us .form_field {
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 1 1 0
}

.cnt_us .form_field.full {
    flex: 1 1 100%
}

.cnt_us .f_lbl {
    font-size: 14px;
    line-height: 1.3;
    color: #3a3a50;
    font-weight: 600
}

.cnt_us .f_lbl .req {
    color: #AE2816;
    margin-left: 2px
}

.cnt_us .f_inp {
    padding: 12px 16px;
    border: 1.5px solid #d0cff0;
    border-radius: 12px;
    font-size: 17px;
    line-height: 1.3;
    color: #2a2838;
    background: #FFFEFD;
    outline: none;
    transition: border-color .4s ease-in-out, box-shadow .4s ease-in-out;
    width: 100%;
    box-sizing: border-box
}

.cnt_us .f_inp::placeholder {
    color: #a0a0c0;
    opacity: .7
}

.cnt_us .f_inp:focus {
    border-color: #4644DF;
    box-shadow: 1px 4px 20px 0 #4644df17
}

.cnt_us .f_inp:hover {
    border-style: dashed;
    border-color: #4644DF
}

.cnt_us .f_select {
    padding: 12px 16px;
    border: 1.5px solid #d0cff0;
    border-radius: 12px;
    font-size: 17px;
    line-height: 1.3;
    color: #2a2838;
    background: #FFFEFD;
    outline: none;
    transition: border-color .4s ease-in-out, box-shadow .4s ease-in-out;
    width: 100%;
    box-sizing: border-box;
    appearance: none;
    cursor: pointer;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24'%3E%3Cpath fill='%234644DF' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 40px
}

.cnt_us .f_select:focus {
    border-color: #4644DF;
    box-shadow: 1px 4px 20px 0 #4644df17
}

.cnt_us .f_select:hover {
    border-style: dashed;
    border-color: #4644DF
}

.cnt_us .privacy_row {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 12px
}

.cnt_us .prv_chk {
    width: 20px;
    height: 20px;
    border: 1.5px solid #d0cff0;
    border-radius: 7px;
    flex-shrink: 0;
    margin-top: 2px;
    cursor: pointer;
    accent-color: #4644DF
}

.cnt_us .prv_txt {
    font-size: 14px;
    line-height: 1.75;
    color: #5a5a7a
}

.cnt_us .prv_txt a {
    color: #4644DF;
    text-decoration: underline !important;
    transition: color .4s ease-in-out
}

.cnt_us .prv_txt a:hover {
    color: #AE2816
}

.cnt_us .form_submit_btn {
    type: submit;
    padding: 16px 32px;
    border-radius: 12px;
    border: 2px solid #4644DF;
    background: transparent;
    color: #4644DF;
    font-size: 17px;
    font-weight: 700;
    cursor: pointer;
    letter-spacing: .02em;
    transition: background .45s cubic-bezier(0.16, 1, 0.3, 1), color .45s cubic-bezier(0.16, 1, 0.3, 1), box-shadow .45s cubic-bezier(0.16, 1, 0.3, 1);
    align-self: flex-start
}

.cnt_us .form_submit_btn:hover {
    background: #4644DF;
    color: #FFFEFD;
    box-shadow: 1px 8px 40px 0 #4644df21
}

.cnt_us .form_submit_btn:focus {
    outline: 2px solid #AE2816;
    outline-offset: 3px
}

@media (max-width: 992px) {
    .cnt_us .contacts_strip_in {
        flex-direction: column
    }

    .cnt_us .cs_left {
        width: 100%
    }

    .cnt_us .form_band_in {
        flex-direction: column
    }

    .cnt_us .fb_aside {
        width: 100%
    }

    .cnt_us .top_h {
        font-size: 40px
    }

    .cnt_us .cs_head {
        font-size: 29px
    }

    .cnt_us .fb_aside_h {
        font-size: 29px
    }
}

@media (max-width: 576px) {
    .cnt_us .form_row {
        flex-direction: column
    }

    .cnt_us .top_h {
        font-size: 29px
    }

    .cnt_us .top_img_wrap img {
        height: 220px
    }

    .cnt_us .cs_stat_row {
        flex-direction: column
    }

    .cnt_us .contact_form {
        padding: 16px
    }

    .cnt_us .top_band {
        padding: 32px 16px
    }

    .cnt_us .contacts_strip {
        padding: 32px 16px
    }

    .cnt_us .form_band {
        padding: 32px 16px
    }
}

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

.opn .grid_wrap {
    max-width: 1320px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 32px;
    padding-right: 32px
}

.opn .t_block {
    display: flex;
    flex-direction: row;
    min-height: 0
}

.opn .t_left {
    flex: 0 0 52%;
    background-color: #4644DF;
    padding: 80px 48px;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center
}

.opn .t_left .grid_bg {
    position: absolute;
    inset: 0;
    background-image: linear-gradient(#fffefd0f 1px, transparent 1px), linear-gradient(90deg, #fffefd0f 1px, transparent 1px);
    background-size: 40px 40px;
    pointer-events: none
}

.opn .t_right {
    flex: 0 0 48%;
    background-color: #AE2816;
    position: relative;
    overflow: hidden
}

.opn .t_right img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block
}

.opn .t_eyebrow {
    font-size: 14px;
    line-height: 1.55;
    color: #fffefda6;
    letter-spacing: .08em;
    text-transform: uppercase;
    margin-bottom: 16px
}

.opn .t_h1 {
    font-size: 55px;
    line-height: 1.1;
    letter-spacing: -.02em;
    color: transparent;
    -webkit-text-stroke: 2px #FFFEFD;
    margin-bottom: 24px
}

.opn .t_desc {
    font-size: 17px;
    line-height: 1.75;
    color: #fffefde0;
    max-width: 480px
}

.opn .t_desc p {
    margin-bottom: 12px
}

.opn .t_desc p:last-child {
    margin-bottom: 0
}

.opn .ppl_sec {
    padding-top: 80px;
    padding-bottom: 80px;
    background-color: #FFFEFD
}

.opn .ppl_inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: start
}

.opn .ppl_col_a {
    position: relative
}

.opn .ppl_abbr {
    font-size: 70px;
    line-height: 1.1;
    letter-spacing: -.04em;
    color: transparent;
    -webkit-text-stroke: 1px #4644df1f;
    position: absolute;
    top: -16px;
    left: -8px;
    pointer-events: none;
    user-select: none;
    z-index: 0
}

.opn .ppl_h2 {
    font-size: 40px;
    line-height: 1.1;
    letter-spacing: -.02em;
    color: transparent;
    -webkit-text-stroke: 1.5px #222;
    margin-bottom: 24px;
    position: relative;
    z-index: 1
}

.opn .ppl_txt {
    font-size: 17px;
    line-height: 1.75;
    color: #2a2a2a;
    position: relative;
    z-index: 1
}

.opn .ppl_txt p {
    margin-bottom: 12px;
    counter-increment: ppl_count
}

.opn .ppl_txt p::before {
    content: counter(ppl_count, decimal-leading-zero) ". ";
    color: #4644DF;
    font-size: 14px;
    font-weight: 700
}

.opn .ppl_txt {
    counter-reset: ppl_count
}

.opn .ppl_col_b {
    display: flex;
    flex-direction: column;
    gap: 16px
}

.opn .ppl_card {
    background-color: #FFFEFD;
    border: 1.5px solid #4644df24;
    border-radius: 12px;
    padding: 24px;
    box-shadow: 1px 4px 20px 0 #4644df17;
    transition: box-shadow .45s cubic-bezier(0.16, 1, 0.3, 1), transform .45s cubic-bezier(0.16, 1, 0.3, 1);
    display: flex;
    flex-direction: row;
    gap: 16px;
    align-items: flex-start
}

.opn .ppl_card:hover {
    box-shadow: 1px 8px 40px 0 #4644df21;
    transform: translateY(-3px)
}

.opn .ppl_card_img {
    width: 72px;
    height: 72px;
    border-radius: 48px;
    overflow: hidden;
    flex-shrink: 0
}

.opn .ppl_card_img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block
}

.opn .ppl_card_body {
    flex: 1
}

.opn .ppl_card_name {
    font-size: 17px;
    line-height: 1.3;
    font-weight: 700;
    color: #1b1b2e;
    margin-bottom: 4px
}

.opn .ppl_card_role {
    font-size: 14px;
    line-height: 1.55;
    color: #4644DF;
    margin-bottom: 8px
}

.opn .ppl_card_note {
    font-size: 14px;
    line-height: 1.55;
    color: #4a4a5a
}

.opn .div_curve_a {
    display: block;
    width: 100%;
    line-height: 0;
    background-color: #FFFEFD
}

.opn .div_curve_a svg {
    display: block;
    width: 100%
}

.opn .appr_sec {
    padding-top: 80px;
    padding-bottom: 80px;
    background: linear-gradient(155deg, #ffc8b42e 0%, #4644df14 100%)
}

.opn .appr_inner {
    display: grid;
    grid-template-columns: 5fr 7fr;
    gap: 48px;
    align-items: start
}

.opn .appr_img_wrap {
    position: relative;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 1px 8px 40px 0 #ae281621
}

.opn .appr_img_wrap img {
    width: 100%;
    height: 360px;
    object-fit: cover;
    display: block;
    filter: grayscale(100%)
}

.opn .appr_img_tint {
    position: absolute;
    inset: 0;
    background: linear-gradient(155deg, #4644df73 0%, #ae281659 100%);
    pointer-events: none
}

.opn .appr_col {
    display: flex;
    flex-direction: column;
    gap: 24px
}

.opn .appr_h2 {
    font-size: 40px;
    line-height: 1.1;
    letter-spacing: -.02em;
    color: transparent;
    -webkit-text-stroke: 1.5px #1b1b2e;
    margin-bottom: 8px
}

.opn .appr_steps {
    display: flex;
    flex-direction: column;
    gap: 16px
}

.opn .appr_step {
    display: flex;
    flex-direction: row;
    gap: 16px;
    align-items: flex-start;
    padding: 20px;
    border-radius: 12px;
    background-color: #fffefdcc;
    box-shadow: 1px 1px 3px 0 #4644df12;
    transition: box-shadow .4s cubic-bezier(0.16, 1, 0.3, 1), transform .4s cubic-bezier(0.16, 1, 0.3, 1)
}

.opn .appr_step:hover {
    box-shadow: 1px 4px 20px 0 #4644df17;
    transform: translateY(-2px)
}

.opn .appr_num {
    width: 36px;
    height: 36px;
    border-radius: 7px;
    background-color: #4644DF;
    color: #FFFEFD;
    font-size: 14px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0
}

.opn .appr_step_body {
    flex: 1
}

.opn .appr_step_h {
    font-size: 17px;
    line-height: 1.3;
    font-weight: 700;
    color: #1b1b2e;
    margin-bottom: 4px
}

.opn .appr_step_p {
    font-size: 14px;
    line-height: 1.55;
    color: #4a4a5a
}

.opn .div_curve_b {
    display: block;
    width: 100%;
    line-height: 0;
    background: linear-gradient(155deg, #ffc8b42e 0%, #4644df14 100%)
}

.opn .div_curve_b svg {
    display: block;
    width: 100%
}

.opn .prob_sec {
    padding-top: 80px;
    padding-bottom: 80px;
    background-color: #1b1b2e
}

.opn .prob_inner {
    display: grid;
    grid-template-columns: 7fr 5fr;
    gap: 48px;
    align-items: center
}

.opn .prob_col {
    display: flex;
    flex-direction: column;
    gap: 24px
}

.opn .prob_h2 {
    font-size: 40px;
    line-height: 1.1;
    letter-spacing: -.02em;
    color: transparent;
    -webkit-text-stroke: 1.5px #FFFEFD;
    margin-bottom: 8px
}

.opn .prob_txt {
    font-size: 17px;
    line-height: 1.75;
    color: #fffefdd1;
    counter-reset: prob_count
}

.opn .prob_txt p {
    margin-bottom: 12px;
    counter-increment: prob_count
}

.opn .prob_txt p::before {
    content: counter(prob_count, decimal-leading-zero) ". ";
    color: #AE2816;
    font-size: 14px;
    font-weight: 700
}

.opn .prob_accent_block {
    border-radius: 20px;
    background: linear-gradient(155deg, #4644DF 0%, #AE2816 100%);
    padding: 32px;
    display: flex;
    flex-direction: column;
    gap: 16px
}

.opn .prob_accent_block .prob_stat_item {
    display: flex;
    flex-direction: column;
    gap: 4px
}

.opn .prob_stat_num {
    font-size: 40px;
    line-height: 1.1;
    font-weight: 700;
    color: #FFFEFD;
    letter-spacing: -.02em
}

.opn .prob_stat_label {
    font-size: 14px;
    line-height: 1.55;
    color: #fffefdbf
}

.opn .prob_stat_divider {
    width: 100%;
    height: 1px;
    background-color: #fffefd26
}

.opn .div_curve_c {
    display: block;
    width: 100%;
    line-height: 0;
    background-color: #1b1b2e
}

.opn .div_curve_c svg {
    display: block;
    width: 100%
}

.opn .adpt_sec {
    padding-top: 80px;
    padding-bottom: 80px;
    background-color: #FFFEFD
}

.opn .adpt_head {
    text-align: center;
    margin-bottom: 48px
}

.opn .adpt_h2 {
    font-size: 40px;
    line-height: 1.1;
    letter-spacing: -.02em;
    color: transparent;
    -webkit-text-stroke: 1.5px #1b1b2e;
    margin-bottom: 16px
}

.opn .adpt_sub {
    font-size: 17px;
    line-height: 1.75;
    color: #4a4a5a;
    max-width: 640px;
    margin-left: auto;
    margin-right: auto
}

.opn .adpt_grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin-bottom: 48px
}

.opn .adpt_item {
    border-radius: 20px;
    padding: 32px 24px;
    background-color: #FFFEFD;
    border: 1.5px solid #4644df1f;
    box-shadow: 1px 1px 3px 0 #4644df12;
    transition: box-shadow .5s cubic-bezier(0.16, 1, 0.3, 1), transform .5s cubic-bezier(0.16, 1, 0.3, 1);
    position: relative;
    overflow: hidden
}

.opn .adpt_item:hover {
    box-shadow: 1px 8px 40px 0 #4644df21;
    transform: translateY(-4px) scale(1.015)
}

.opn .adpt_item_notch {
    position: absolute;
    left: 0;
    top: 24px;
    width: 4px;
    height: 40px;
    background-color: #4644DF;
    border-radius: 0 4px 4px 0
}

.opn .adpt_item.secondary .adpt_item_notch {
    background-color: #AE2816
}

.opn .adpt_icon {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background-color: #4644df14;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 16px;
    color: #4644DF;
    font-size: 22px
}

.opn .adpt_item.secondary .adpt_icon {
    background-color: #ae281614;
    color: #AE2816
}

.opn .adpt_item_h {
    font-size: 17px;
    line-height: 1.3;
    font-weight: 700;
    color: #1b1b2e;
    margin-bottom: 8px
}

.opn .adpt_item_p {
    font-size: 14px;
    line-height: 1.55;
    color: #4a4a5a
}

.opn .adpt_progress_row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px;
    padding: 32px;
    background: linear-gradient(155deg, #4644df0f 0%, #ae28160d 100%);
    border-radius: 20px;
    border: 1.5px solid #4644df1a
}

.opn .adpt_prog_col {
    display: flex;
    flex-direction: column;
    gap: 16px
}

.opn .adpt_prog_h {
    font-size: 17px;
    line-height: 1.3;
    font-weight: 700;
    color: #1b1b2e
}

.opn .adpt_prog_item {
    display: flex;
    flex-direction: column;
    gap: 8px
}

.opn .adpt_prog_label {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center
}

.opn .adpt_prog_name {
    font-size: 14px;
    line-height: 1.55;
    color: #4a4a5a
}

.opn .adpt_prog_pct {
    font-size: 14px;
    line-height: 1.55;
    font-weight: 700;
    color: #4644DF
}

.opn .adpt_prog_bar_bg {
    width: 100%;
    height: 6px;
    background-color: #4644df1a;
    border-radius: 48px;
    overflow: hidden
}

.opn .adpt_prog_bar_fill {
    height: 100%;
    border-radius: 48px;
    background: linear-gradient(90deg, #4644DF 0%, #AE2816 100%);
    transform-origin: left center;
    animation: bar_grow .55s cubic-bezier(0.16, 1, 0.3, 1) forwards
}

@keyframes bar_grow {
    from {
        transform: scaleX(0)
    }

    to {
        transform: scaleX(1)
    }
}

.opn .adpt_prog_bar_fill.w88 {
    width: 88%
}

.opn .adpt_prog_bar_fill.w76 {
    width: 76%
}

.opn .adpt_prog_bar_fill.w92 {
    width: 92%
}

.opn .adpt_prog_bar_fill.w68 {
    width: 68%
}

.opn .adpt_prog_img_wrap {
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 1px 4px 20px 0 #ae281617
}

.opn .adpt_prog_img_wrap img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    display: block;
    filter: grayscale(100%)
}

.opn .div_curve_d {
    display: block;
    width: 100%;
    line-height: 0;
    background-color: #FFFEFD
}

.opn .div_curve_d svg {
    display: block;
    width: 100%
}

.opn .obj_sec {
    padding-top: 80px;
    padding-bottom: 80px;
    background: linear-gradient(155deg, #4644DF 0%, #2d2baa 100%);
    position: relative
}

.opn .obj_abbr {
    font-size: 70px;
    line-height: 1.1;
    letter-spacing: -.04em;
    color: transparent;
    -webkit-text-stroke: 1px #fffefd12;
    position: absolute;
    bottom: 16px;
    right: 32px;
    pointer-events: none;
    user-select: none
}

.opn .obj_inner {
    display: grid;
    grid-template-columns: 5fr 7fr;
    gap: 48px;
    align-items: start
}

.opn .obj_img_col {
    display: flex;
    flex-direction: column;
    gap: 16px
}

.opn .obj_img_wrap {
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 1px 8px 40px 0 #ae281621
}

.opn .obj_img_wrap img {
    width: 100%;
    height: 280px;
    object-fit: cover;
    display: block
}

.opn .obj_badge {
    background-color: #fffefd1f;
    border-radius: 12px;
    padding: 16px 20px;
    display: flex;
    flex-direction: row;
    gap: 12px;
    align-items: center
}

.opn .obj_badge_icon {
    width: 36px;
    height: 36px;
    border-radius: 7px;
    background-color: #fffefd26;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #FFFEFD;
    font-size: 17px;
    flex-shrink: 0
}

.opn .obj_badge_txt {
    font-size: 14px;
    line-height: 1.55;
    color: #fffefdd9
}

.opn .obj_col {
    display: flex;
    flex-direction: column;
    gap: 24px
}

.opn .obj_h2 {
    font-size: 40px;
    line-height: 1.1;
    letter-spacing: -.02em;
    color: transparent;
    -webkit-text-stroke: 1.5px #FFFEFD;
    margin-bottom: 8px
}

.opn .obj_txt {
    font-size: 17px;
    line-height: 1.75;
    color: #fffefde0;
    counter-reset: obj_count
}

.opn .obj_txt p {
    margin-bottom: 12px;
    counter-increment: obj_count
}

.opn .obj_txt p::before {
    content: counter(obj_count, decimal-leading-zero) ". ";
    color: #fffefd73;
    font-size: 14px;
    font-weight: 700
}

.opn .obj_qs {
    display: flex;
    flex-direction: column;
    gap: 12px
}

.opn .obj_q_item {
    border-radius: 12px;
    border: 1.5px solid #fffefd26;
    padding: 20px;
    background-color: #fffefd0f;
    transition: background-color .4s ease-in-out, border-color .4s ease-in-out
}

.opn .obj_q_item:hover {
    background-color: #fffefd1a;
    border-color: #fffefd47
}

.opn .obj_q_label {
    font-size: 14px;
    line-height: 1.3;
    font-weight: 700;
    color: #fffefd8c;
    margin-bottom: 8px;
    text-transform: uppercase;
    letter-spacing: .06em
}

.opn .obj_q_text {
    font-size: 17px;
    line-height: 1.55;
    color: #FFFEFD
}

@media (max-width: 992px) {
    .opn .t_block {
        flex-direction: column
    }

    .opn .t_left {
        flex: none;
        padding: 48px 32px
    }

    .opn .t_right {
        flex: none;
        height: 300px
    }

    .opn .ppl_inner {
        grid-template-columns: 1fr;
        gap: 32px
    }

    .opn .appr_inner {
        grid-template-columns: 1fr;
        gap: 32px
    }

    .opn .prob_inner {
        grid-template-columns: 1fr;
        gap: 32px
    }

    .opn .adpt_grid {
        grid-template-columns: 1fr 1fr;
        gap: 16px
    }

    .opn .adpt_progress_row {
        grid-template-columns: 1fr;
        gap: 24px
    }

    .opn .obj_inner {
        grid-template-columns: 1fr;
        gap: 32px
    }
}

@media (max-width: 576px) {
    .opn .grid_wrap {
        padding-left: 16px;
        padding-right: 16px
    }

    .opn .t_left {
        padding: 48px 16px
    }

    .opn .t_h1 {
        font-size: 40px
    }

    .opn .ppl_sec,
    .opn .appr_sec,
    .opn .prob_sec,
    .opn .adpt_sec,
    .opn .obj_sec {
        padding-top: 48px;
        padding-bottom: 48px
    }

    .opn .adpt_grid {
        grid-template-columns: 1fr
    }

    .opn .ppl_h2,
    .opn .appr_h2,
    .opn .prob_h2,
    .opn .adpt_h2,
    .opn .obj_h2 {
        font-size: 29px
    }

    .opn .obj_abbr {
        display: none
    }
}

.success_page {
    min-height: 80vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 48px 16px;
    background: #FFFEFD
}

.success_page .success_wrap {
    max-width: 1320px;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 32px
}

.success_page .success_icon {
    width: 72px;
    height: 72px;
    border-radius: 48px;
    background: linear-gradient(135deg, #4644DF 0%, #AE2816 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 1px 8px 40px 0 #4644df21;
    flex-shrink: 0
}

.success_page .success_icon svg {
    width: 36px;
    height: 36px;
    display: block
}

.success_page .success_card {
    background: #fff;
    border-radius: 20px;
    box-shadow: 1px 4px 20px 0 #4644df17;
    padding: 48px;
    max-width: 560px;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    text-align: center
}

.success_page .success_card .success_title {
    font-size: 40px;
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: -.03em;
    color: transparent;
    -webkit-text-stroke: 2px #4644DF;
    margin: 0
}

.success_page .success_card .success_sub {
    font-size: 17px;
    line-height: 1.55;
    color: #2a2840;
    margin: 0;
    max-width: 420px
}

.success_page .success_card .success_note {
    font-size: 14px;
    line-height: 1.55;
    color: #6a6880;
    margin: 0
}

.success_page .success_card .success_divider {
    width: 48px;
    height: 3px;
    border-radius: 7px;
    background: linear-gradient(90deg, #4644DF 0%, #AE2816 100%)
}

.success_page .success_card .success_btn {
    display: inline-block;
    margin-top: 8px;
    padding: 12px 32px;
    border-radius: 12px;
    border: 2px solid #4644DF;
    background: transparent;
    color: #4644DF;
    font-size: 17px;
    font-weight: 600;
    line-height: 1.3;
    text-decoration: none;
    cursor: pointer;
    transition: box-shadow .45s cubic-bezier(0.16, 1, 0.3, 1), background .38s ease-in-out, color .38s ease-in-out;
    outline-offset: 3px
}

.success_page .success_card .success_btn:hover {
    background: #4644DF;
    color: #FFFEFD;
    box-shadow: 1px 8px 40px 0 #4644df21
}

.success_page .success_card .success_btn:focus-visible {
    outline: 3px solid #AE2816;
    background: #4644DF;
    color: #FFFEFD
}

.success_page .success_card .success_btn:active {
    box-shadow: 1px 1px 3px 0 #4644df12
}

.success_page .success_contacts {
    display: flex;
    flex-direction: row;
    gap: 32px;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap
}

.success_page .success_contacts .contact_item {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    line-height: 1.3;
    color: #2a2840;
    text-decoration: none;
    transition: color .42s cubic-bezier(0.16, 1, 0.3, 1)
}

.success_page .success_contacts .contact_item:hover {
    color: #4644DF
}

.success_page .success_contacts .contact_item .ci_dot {
    width: 8px;
    height: 8px;
    border-radius: 48px;
    background: linear-gradient(135deg, #4644DF 0%, #AE2816 100%);
    flex-shrink: 0
}

@media (max-width: 576px) {
    .success_page .success_card {
        padding: 32px 16px
    }

    .success_page .success_card .success_title {
        font-size: 29px
    }

    .success_page .success_contacts {
        flex-direction: column;
        gap: 12px
    }
}