html {
    box-sizing: border-box
}

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

body {
    margin: 0;
    padding: 0;
    min-height: 100svh;
    overflow-x: hidden;
    -webkit-text-size-adjust: 100%;
    font-family: 'Red Hat Display', sans-serif
}

.hdbar {
    background: linear-gradient(135deg, #1b0d14 0%, #2a0f1e 55%, #0d1a10 100%);
    position: relative;
    overflow: hidden;
    padding-bottom: 40px
}

.hdbar::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 40px;
    background: linear-gradient(to bottom, transparent, #fff);
    pointer-events: none
}

.hd-accent {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, #49E08F 0%, #8C1758 50%, #F9FDC6 100%)
}

.hdinner {
    max-width: 1100px;
    margin: 0 auto;
    padding: 24px 40px 0
}

.hdtop {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap
}

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

.logowrap {
    width: 88px;
    height: 88px;
    background: #fff;
    border-radius: 4px;
    box-shadow: 2px 5px 28px -2px #49e08f1c 0 0 0 2px #49e08f40;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 6px
}

.logowrap img {
    width: 76px;
    height: 76px;
    object-fit: contain;
    display: block
}

.brandtext {
    display: flex;
    flex-direction: column;
    gap: 6px
}

.brandname {
    font-family: 'Red Hat Display', sans-serif;
    font-size: 27px;
    font-weight: 700;
    line-height: 1.1;
    color: #F9FDC6;
    letter-spacing: -.01em
}

.brandtag {
    font-family: 'Red Hat Display', sans-serif;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.35;
    color: #49E08F;
    letter-spacing: .06em
}

.hdnav {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    justify-content: flex-end
}

.navlink {
    font-family: 'Red Hat Display', sans-serif;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.35;
    color: #F9FDC6;
    text-decoration: none;
    padding: 12px 24px;
    border-radius: 4px;
    border: 1px solid transparent;
    transition: color .18s cubic-bezier(0.4, 0, 0.2, 1), border-color .22s cubic-bezier(0.4, 0, 0.2, 1), background .25s cubic-bezier(0.0, 0, 0.2, 1);
    white-space: nowrap;
    min-height: 44px;
    display: flex;
    align-items: center
}

.navlink:hover {
    color: #49E08F;
    border-color: #49e08f4d;
    background: #49e08f12
}

.navlink:focus {
    outline: 2px solid #49E08F;
    outline-offset: 2px
}

.navlink.active {
    color: #49E08F;
    border-color: #49e08f80;
    background: #49e08f1a
}

.navctabox {
    margin-left: 6px
}

.navcta {
    font-family: 'Red Hat Display', sans-serif;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.35;
    color: #1b0d14;
    text-decoration: none;
    padding: 12px 24px;
    border-radius: 4px;
    background: #49E08F;
    display: flex;
    align-items: center;
    gap: 6px;
    min-height: 44px;
    white-space: nowrap;
    transition: background .2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow .25s cubic-bezier(0.0, 0, 0.2, 1);
    box-shadow: 2px 3px 4px -2px #49e08f14
}

.navcta:hover {
    background: #3bcf7e;
    box-shadow: 2px 5px 28px -2px #49e08f1c;
    color: #1b0d14
}

.navcta:focus {
    outline: 2px solid #F9FDC6;
    outline-offset: 2px
}

.hdstrip {
    margin-top: 24px;
    padding: 12px 0;
    border-top: 1px solid #f9fdc61a;
    display: flex;
    align-items: center;
    gap: 24px;
    flex-wrap: wrap
}

.hdpill {
    display: flex;
    align-items: center;
    gap: 6px;
    font-family: 'Red Hat Display', sans-serif;
    font-size: 15px;
    line-height: 1.35;
    color: #f9fdc6b3;
    letter-spacing: .03em
}

.hdpill svg {
    flex-shrink: 0
}

@media (max-width: 1024px) {
    .hdinner {
        padding: 24px 24px 0
    }

    .hdtop {
        gap: 24px
    }
}

@media (max-width: 640px) {
    .hdinner {
        padding: 24px 12px 0
    }

    .logowrap {
        width: 64px;
        height: 64px
    }

    .logowrap img {
        width: 52px;
        height: 52px
    }

    .brandname {
        font-size: 21px
    }

    .hdnav {
        justify-content: flex-start;
        gap: 6px
    }

    .navlink {
        padding: 12px;
        font-size: 15px
    }

    .hdstrip {
        gap: 12px
    }
}

.ft {
    background: #12080f;
    padding: 80px 0 0;
    position: relative
}

.ft-accent {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg, #8C1758 0%, #49E08F 60%, #F9FDC6 100%)
}

.ftinner {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 40px
}

.ftlogorow {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
    padding-bottom: 40px;
    border-bottom: 1px solid #f9fdc614
}

.ftlogowrap {
    width: 80px;
    height: 80px;
    background: #fff;
    border-radius: 4px;
    box-shadow: 2px 5px 28px -2px #8c17581c 0 0 0 2px #8c175833;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 6px
}

.ftlogowrap img {
    width: 68px;
    height: 68px;
    object-fit: contain;
    display: block
}

.ftbrand {
    display: flex;
    flex-direction: column;
    gap: 6px
}

.ftbrandname {
    font-family: 'Red Hat Display', sans-serif;
    font-size: 37px;
    font-weight: 700;
    line-height: 1.1;
    color: #F9FDC6;
    letter-spacing: -.02em
}

.ftbrandtag {
    font-family: 'Red Hat Display', sans-serif;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.35;
    color: #49E08F;
    letter-spacing: .05em
}

.ftbrandblock {
    display: flex;
    align-items: center;
    gap: 24px
}

.ftfounded {
    font-family: 'Red Hat Display', sans-serif;
    font-size: 15px;
    line-height: 1.35;
    color: #f9fdc673;
    letter-spacing: .04em
}

.ftgrid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap: 40px;
    padding: 40px 0
}

.ftcolhead {
    font-family: 'Red Hat Display', sans-serif;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.35;
    color: #49E08F;
    letter-spacing: .1em;
    text-transform: uppercase;
    margin-bottom: 24px
}

.ftcontactcard {
    background: #8c17581f;
    border: 1px solid #8c175840;
    border-radius: 4px;
    padding: 24px;
    box-shadow: 2px 3px 4px -2px #8c175814
}

.ftcontactrow {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 12px
}

.ftcontactrow:last-child {
    margin-bottom: 0
}

.ftcontacticon {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    margin-top: 2px
}

.ftcontactlabel {
    font-family: 'Red Hat Display', sans-serif;
    font-size: 15px;
    line-height: 1.55;
    color: #f9fdc699
}

.ftcontactval {
    font-family: 'Red Hat Display', sans-serif;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.35;
    color: #F9FDC6;
    text-decoration: none;
    transition: color .18s cubic-bezier(0.4, 0, 0.2, 1)
}

.ftcontactval:hover {
    color: #49E08F
}

.ftcontactval:focus {
    outline: 2px solid #49E08F;
    outline-offset: 2px;
    border-radius: 2px
}

.ftcontactaddr {
    font-family: 'Red Hat Display', sans-serif;
    font-size: 15px;
    line-height: 1.55;
    color: #F9FDC6;
    font-style: normal
}

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

.ftnav li {
    margin: 0;
    padding: 0
}

.ftnavlink {
    font-family: 'Red Hat Display', sans-serif;
    font-size: 15px;
    line-height: 1.55;
    color: #f9fdc6b3;
    text-decoration: none;
    transition: color .2s cubic-bezier(0.4, 0, 0.2, 1);
    display: inline-flex;
    align-items: center;
    gap: 6px
}

.ftnavlink:hover {
    color: #49E08F
}

.ftnavlink:focus {
    outline: 2px solid #49E08F;
    outline-offset: 2px;
    border-radius: 2px
}

.ftbottom {
    border-top: 1px solid #f9fdc614;
    padding: 24px 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap
}

.ftcopy {
    font-family: 'Red Hat Display', sans-serif;
    font-size: 15px;
    line-height: 1.35;
    color: #f9fdc666
}

.ftlegal {
    display: flex;
    align-items: center;
    gap: 24px;
    flex-wrap: wrap
}

.ftlegallink {
    font-family: 'Red Hat Display', sans-serif;
    font-size: 15px;
    line-height: 1.35;
    color: #f9fdc666;
    text-decoration: none;
    transition: color .22s cubic-bezier(0.4, 0, 0.2, 1)
}

.ftlegallink:hover {
    color: #F9FDC6
}

.ftlegallink:focus {
    outline: 2px solid #49E08F;
    outline-offset: 2px;
    border-radius: 2px
}

@media (max-width: 1024px) {
    .ftinner {
        padding: 0 24px
    }

    .ftgrid {
        grid-template-columns: 1fr 1fr;
        gap: 40px
    }

    .ftcontactcol {
        grid-column: 1 / -1
    }
}

@media (max-width: 640px) {
    .ftinner {
        padding: 0 12px
    }

    .ft {
        padding-top: 40px
    }

    .ftbrandname {
        font-size: 27px
    }

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

    .ftcontactcol {
        grid-column: auto
    }

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

    .ftbottom {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px
    }
}

.ckbanner {
    display: none;
    position: fixed;
    top: 24px;
    left: 0;
    right: 0;
    margin: 0 auto;
    width: min(680px, calc(100% - 24px));
    background: #fff;
    border: 1px solid #49e08f4d;
    border-radius: 4px;
    box-shadow: 2px 9px 52px -2px #49e08f24;
    z-index: 8000;
    overflow: hidden
}

.ckbody {
    padding: 24px
}

.cktop {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 12px
}

.ckicon {
    width: 32px;
    height: 32px;
    background: #49E08F;
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0
}

.cktext {
    flex: 1
}

.ckdesc {
    font-family: 'Red Hat Display', sans-serif;
    font-size: 15px;
    line-height: 1.55;
    color: #2a0f1e;
    margin: 0
}

.ckpanel {
    display: none;
    padding: 12px 0;
    border-top: 1px solid #49e08f33;
    margin-top: 12px
}

.ckpanel.open {
    display: block
}

.cktogglerow {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px
}

.cktogglerow:last-child {
    margin-bottom: 0
}

.cktoglelabel {
    font-family: 'Red Hat Display', sans-serif;
    font-size: 15px;
    line-height: 1.35;
    color: #2a0f1e;
    font-weight: 700
}

.cktoggle {
    width: 20px;
    height: 20px;
    accent-color: #49E08F;
    cursor: pointer
}

.cktoggle:focus {
    outline: 2px solid #49E08F;
    outline-offset: 2px
}

.ckbtns {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 12px
}

.ckbtn {
    flex: 1;
    min-width: 100px;
    min-height: 44px;
    font-family: 'Red Hat Display', sans-serif;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.35;
    border-radius: 4px;
    border: 2px solid #49E08F;
    cursor: pointer;
    transition: background .18s cubic-bezier(0.4, 0, 0.2, 1), color .2s cubic-bezier(0.4, 0, 0.2, 1);
    padding: 12px;
    text-align: center;
    text-transform: lowercase
}

.ckbtn:focus {
    outline: 2px solid #8C1758;
    outline-offset: 2px
}

.ckbtnprim {
    background: #49E08F;
    color: #12080f
}

.ckbtnprim:hover {
    background: #3bcf7e
}

.ckbtnsec {
    background: transparent;
    color: #2a0f1e
}

.ckbtnsec:hover {
    background: #49e08f1a
}

.ckbtntext {
    background: transparent;
    border-color: transparent;
    color: #2a0f1e99;
    font-size: 15px;
    flex: 0;
    min-width: auto;
    padding: 12px 6px;
    text-decoration: underline
}

.ckbtntext:hover {
    color: #2a0f1e
}

.prefbtn {
    position: fixed;
    bottom: 24px;
    right: 24px;
    width: 44px;
    height: 44px;
    background: #49E08F;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    display: none;
    align-items: center;
    justify-content: center;
    box-shadow: 2px 5px 28px -2px #49e08f1c;
    z-index: 7999;
    transition: background .18s cubic-bezier(0.4, 0, 0.2, 1), box-shadow .22s cubic-bezier(0.0, 0, 0.2, 1)
}

.prefbtn:hover {
    background: #3bcf7e;
    box-shadow: 2px 9px 52px -2px #49e08f24
}

.prefbtn:focus {
    outline: 2px solid #8C1758;
    outline-offset: 2px
}

.policy-region {
    max-width: 1100px;
    margin: 0 auto;
    padding: 80px 40px
}

.policy-region ul,
.policy-region ol {
    margin: 24px 0;
    padding-left: 40px
}

.policy-region ul ul,
.policy-region ol ol,
.policy-region ul ol,
.policy-region ol ul {
    margin: 12px 0
}

.policy-region li {
    font-size: 17px;
    line-height: 1.8;
    color: #2a2a2a;
    margin-bottom: 6px
}

.policy-region ul li {
    list-style-type: disc
}

.policy-region ul ul li {
    list-style-type: circle
}

.policy-region ol li {
    list-style-type: decimal
}

.policy-region em,
.policy-region i {
    font-style: italic;
    color: #3a2040
}

.policy-region a {
    color: #8C1758;
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-thickness: 1px;
    transition: color .2s cubic-bezier(0.4, 0, 0.2, 1), text-decoration-color .25s cubic-bezier(0.4, 0, 0.2, 1)
}

.policy-region a:hover {
    color: #49E08F;
    text-decoration-color: #49E08F
}

.policy-region a:active {
    color: #3ab87a
}

.policy-region table {
    width: 100%;
    border-collapse: collapse;
    margin: 40px 0;
    font-size: 15px;
    line-height: 1.55;
    box-shadow: 2px 3px 4px -2px #49e08f14;
    border-radius: 4px;
    overflow: hidden
}

.policy-region thead {
    background-color: #F9FDC6
}

.policy-region thead tr {
    border-bottom: 2px solid #49E08F
}

.policy-region tbody tr {
    border-bottom: 1px solid #e8f0e8;
    transition: background-color .15s cubic-bezier(0.4, 0, 0.2, 1)
}

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

.policy-region tbody tr:hover {
    background-color: #f5fef8
}

.policy-region th {
    padding: 12px 24px;
    text-align: left;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: .04em;
    color: #8C1758
}

.policy-region td {
    padding: 12px 24px;
    font-size: 15px;
    line-height: 1.55;
    color: #2a2a2a;
    vertical-align: top
}

.policy-region hr {
    border: none;
    border-top: 1px solid #d8ecd8;
    margin: 40px 0
}

@media (max-width: 1024px) {
    .policy-region {
        padding: 80px 24px
    }

    .policy-region th,
    .policy-region td {
        padding: 12px
    }
}

@media (max-width: 640px) {
    .policy-region {
        padding: 40px 12px
    }

    .policy-region ul,
    .policy-region ol {
        padding-left: 24px
    }

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

    .policy-region th,
    .policy-region td {
        padding: 12px 6px;
        font-size: 15px
    }

    .policy-region hr {
        margin: 24px 0
    }
}

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

.ctus .pg {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 24px
}

.ctus .reach {
    padding: 80px 0 40px;
    position: relative
}

.ctus .reach::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(67deg, #49e08f12 0%, #f9fdc62e 60%, #8c17580a 100%);
    pointer-events: none
}

.ctus .reach-inner {
    display: flex;
    flex-direction: row;
    gap: 80px;
    align-items: flex-start;
    position: relative
}

.ctus .reach-left {
    flex: 0 0 340px;
    max-width: 340px;
    position: relative
}

.ctus .reach-right {
    flex: 1 1 0;
    min-width: 0
}

.ctus .overline {
    display: block;
    font-size: 15px;
    letter-spacing: .12em;
    color: #8C1758;
    text-transform: uppercase;
    margin-bottom: 12px;
    font-weight: 600
}

.ctus .reach-h1 {
    font-size: 51px;
    line-height: 1.1;
    color: #1b1b2e;
    margin: 0 0 24px;
    font-weight: 700
}

.ctus .reach-h1 em {
    font-style: normal;
    color: #49E08F
}

.ctus .reach-tag {
    font-size: 17px;
    line-height: 1.55;
    color: #3d3d4e;
    margin: 0 0 40px
}

.ctus .info-list {
    list-style: none;
    padding: 0;
    margin: 0 0 40px;
    display: flex;
    flex-direction: column;
    gap: 24px
}

.ctus .info-list li {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 12px
}

.ctus .iico {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    border-radius: 4px;
    background: #F9FDC6;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 2px 3px 4px -2px #49e08f14
}

.ctus .iico svg {
    display: block
}

.ctus .idet {
    display: flex;
    flex-direction: column;
    gap: 6px
}

.ctus .idet strong {
    font-size: 15px;
    color: #8C1758;
    letter-spacing: .06em;
    text-transform: uppercase;
    font-weight: 600
}

.ctus .idet span,
.ctus .idet a {
    font-size: 17px;
    line-height: 1.35;
    color: #1b1b2e
}

.ctus .idet a {
    text-decoration: none;
    transition: color .18s cubic-bezier(0.4, 0, 0.2, 1)
}

.ctus .idet a:hover {
    color: #49E08F
}

.ctus .dots-bg {
    position: absolute;
    top: -24px;
    left: -24px;
    width: 180px;
    height: 180px;
    pointer-events: none;
    opacity: .18;
    z-index: 0
}

.ctus .reach-left> :not(.dots-bg) {
    position: relative;
    z-index: 1
}

.ctus .curve-deco {
    position: absolute;
    top: 60px;
    right: -40px;
    width: 2px;
    height: calc(100% - 60px);
    pointer-events: none;
    z-index: 0
}

.ctus .curve-deco svg {
    width: 100%;
    height: 100%
}

.ctus .form-card {
    background: #fff;
    border-radius: 20px;
    box-shadow: 2px 5px 28px -2px #49e08f1c;
    padding: 40px;
    position: relative;
    z-index: 1
}

.ctus .form-h2 {
    font-size: 27px;
    line-height: 1.35;
    color: #1b1b2e;
    margin: 0 0 6px;
    font-weight: 700
}

.ctus .form-sub {
    font-size: 15px;
    color: #5a5a6e;
    margin: 0 0 24px;
    line-height: 1.55
}

.ctus .frow {
    display: flex;
    flex-direction: row;
    gap: 24px;
    margin-bottom: 24px
}

.ctus .frow.col1 {
    flex-direction: column;
    gap: 0;
    margin-bottom: 0
}

.ctus .fg {
    display: flex;
    flex-direction: column;
    gap: 6px;
    flex: 1 1 0;
    min-width: 0;
    margin-bottom: 24px
}

.ctus .fg label {
    font-size: 15px;
    color: #3d3d4e;
    font-weight: 600;
    letter-spacing: .04em
}

.ctus .fg input[type="email"],
.ctus .fg select {
    width: 100%;
    padding: 12px 16px;
    border: 1.5px solid #dde0ec;
    border-radius: 4px;
    font-size: 17px;
    color: #1b1b2e;
    background: #fff;
    outline: none;
    transition: border-color .18s cubic-bezier(0.4, 0, 0.2, 1), box-shadow .22s cubic-bezier(0.0, 0, 0.2, 1);
    appearance: none;
    -webkit-appearance: none;
    box-shadow: none
}

.ctus .fg input[type="email"]::placeholder {
    font-size: 15px;
    color: #a0a0b0
}

.ctus .fg input[type="email"]:focus,
.ctus .fg select:focus {
    border-color: #49E08F;
    box-shadow: 2px 3px 4px -2px #49e08f14
}

.ctus .sel-wrap {
    position: relative
}

.ctus .sel-wrap::after {
    content: '';
    position: absolute;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
    width: 0;
    height: 0;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 6px solid #8C1758
}

.ctus .sel-wrap select {
    padding-right: 40px;
    cursor: pointer
}

.ctus .radio-group {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 24px
}

.ctus .radio-group label {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    font-size: 15px;
    color: #3d3d4e;
    padding: 8px 16px;
    border: 1.5px solid #dde0ec;
    border-radius: 20px;
    transition: border-color .2s cubic-bezier(0.4, 0, 0.2, 1), background .2s cubic-bezier(0.4, 0, 0.2, 1);
    user-select: none
}

.ctus .radio-group label:hover {
    border-color: #49E08F;
    background: #49e08f0f
}

.ctus .radio-group input[type="radio"] {
    accent-color: #49E08F;
    width: 16px;
    height: 16px;
    cursor: pointer
}

.ctus .radio-group input[type="radio"]:checked+span {
    color: #1b1b2e;
    font-weight: 600
}

.ctus .radio-group label:has(input:checked) {
    border-color: #49E08F;
    background: #49e08f1a
}

.ctus .radio-lbl {
    font-size: 15px;
    color: #3d3d4e;
    font-weight: 600;
    letter-spacing: .04em;
    display: block;
    margin-bottom: 12px
}

.ctus .fg textarea {
    width: 100%;
    padding: 12px 16px;
    border: 1.5px solid #dde0ec;
    border-radius: 4px;
    font-size: 17px;
    color: #1b1b2e;
    background: #fff;
    outline: none;
    resize: vertical;
    min-height: 100px;
    transition: border-color .19s cubic-bezier(0.4, 0, 0.2, 1), box-shadow .23s cubic-bezier(0.0, 0, 0.2, 1);
    box-shadow: none
}

.ctus .fg textarea::placeholder {
    font-size: 15px;
    color: #a0a0b0
}

.ctus .fg textarea:focus {
    border-color: #49E08F;
    box-shadow: 2px 3px 4px -2px #49e08f14
}

.ctus .privacy-row {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 24px;
    padding: 16px;
    background: #F9FDC6;
    border-radius: 4px
}

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

.ctus .privacy-row input[type="checkbox"]:checked {
    box-shadow: inset 0 0 0 2px #8C1758
}

.ctus .privacy-txt {
    font-size: 15px;
    line-height: 1.55;
    color: #3d3d4e
}

.ctus .privacy-txt a {
    color: #8C1758;
    text-decoration: underline;
    text-underline-offset: 2px;
    transition: color .16s cubic-bezier(0.4, 0, 0.2, 1)
}

.ctus .privacy-txt a:hover {
    color: #49E08F
}

.ctus .sbtn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #49E08F;
    color: #1b1b2e;
    border: none;
    border-radius: 4px;
    padding: 14px 40px;
    font-size: 17px;
    font-weight: 700;
    cursor: pointer;
    letter-spacing: .02em;
    box-shadow: 2px 5px 28px -2px #49e08f1c;
    transition: background .17s cubic-bezier(0.4, 0, 0.2, 1), box-shadow .25s cubic-bezier(0.0, 0, 0.2, 1)
}

.ctus .sbtn:hover {
    background: #2ecc7a;
    box-shadow: 2px 9px 52px -2px #49e08f24
}

.ctus .sbtn:active {
    background: #22b566;
    box-shadow: inset 2px 3px 4px -2px #49e08f2e
}

.ctus .sbtn:focus-visible {
    outline: 2px solid #8C1758;
    outline-offset: 3px
}

.ctus .divider-tri {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 24px;
    margin: 0;
    padding: 24px 0;
    position: relative
}

.ctus .divider-tri::before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    height: 1px;
    background: linear-gradient(67deg, #49e08f26 0%, #8c17581f 100%);
    pointer-events: none
}

.ctus .tri-shape {
    width: 10px;
    height: 10px;
    flex-shrink: 0;
    position: relative;
    z-index: 1
}

.ctus .tri-shape.left svg {
    transform: rotate(180deg)
}

.ctus .tri-center {
    width: 12px;
    height: 12px;
    border-radius: 2px;
    background: #F9FDC6;
    border: 1.5px solid #8c175833;
    position: relative;
    z-index: 1;
    transform: rotate(45deg)
}

.ctus .extra {
    padding: 40px 0 80px;
    position: relative
}

.ctus .extra-bg {
    position: absolute;
    inset: 0;
    background: linear-gradient(67deg, #f9fdc673 0%, #fff0 70%);
    pointer-events: none
}

.ctus .extra-inner {
    display: grid;
    grid-template-columns: 1fr 1.4fr 1fr;
    gap: 40px;
    align-items: start;
    position: relative
}

.ctus .extra-col {
    display: flex;
    flex-direction: column;
    gap: 12px
}

.ctus .extra-col.center {
    background: #1b1b2e;
    border-radius: 20px;
    padding: 40px;
    box-shadow: 2px 9px 52px -2px #8c175824;
    position: relative;
    top: -24px
}

.ctus .extra-col.center .overline {
    color: #49E08F
}

.ctus .extra-col.center .ext-h {
    color: #fff
}

.ctus .extra-col.center .ext-p {
    color: #ffffffb8
}

.ctus .ext-h {
    font-size: 21px;
    line-height: 1.35;
    color: #1b1b2e;
    font-weight: 700;
    margin: 0
}

.ctus .ext-p {
    font-size: 17px;
    line-height: 1.55;
    color: #3d3d4e;
    margin: 0
}

.ctus .conn-diagram {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-top: 12px
}

.ctus .conn-node {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    border-radius: 4px;
    background: #49e08f14;
    border: 1px solid #49e08f33;
    transition: background .2s cubic-bezier(0.4, 0, 0.2, 1), border-color .2s cubic-bezier(0.4, 0, 0.2, 1)
}

.ctus .conn-node:hover {
    background: #49e08f29;
    border-color: #49e08f66
}

.ctus .conn-dot {
    width: 8px;
    height: 8px;
    border-radius: 2px;
    background: #49E08F;
    flex-shrink: 0
}

.ctus .conn-node span {
    font-size: 15px;
    color: #1b1b2e;
    line-height: 1.35
}

.ctus .conn-line {
    width: 2px;
    height: 16px;
    background: #49e08f4d;
    margin-left: 15px;
    border-radius: 2px
}

.ctus .hours-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-top: 6px
}

.ctus .hrow {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    padding: 8px 12px;
    border-radius: 4px;
    background: #fff;
    box-shadow: 2px 3px 4px -2px #49e08f14
}

.ctus .hrow .day {
    font-size: 15px;
    color: #5a5a6e
}

.ctus .hrow .time {
    font-size: 15px;
    color: #1b1b2e;
    font-weight: 600
}

.ctus .hrow.closed .time {
    color: #8C1758
}

.ctus .addr-block {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 6px;
    padding: 16px;
    border-radius: 4px;
    background: #8c17580a;
    border: 1px solid #8c17581a
}

.ctus .addr-block address {
    font-style: normal;
    font-size: 17px;
    line-height: 1.55;
    color: #1b1b2e
}

.ctus .anim-bg {
    position: absolute;
    top: 0;
    right: 0;
    width: 320px;
    height: 320px;
    pointer-events: none;
    z-index: 0;
    opacity: .6;
    animation: flicker 7s ease-in-out infinite
}

@keyframes flicker {
    0% {
        opacity: .55
    }

    15% {
        opacity: .62
    }

    33% {
        opacity: .5
    }

    47% {
        opacity: .65
    }

    60% {
        opacity: .53
    }

    78% {
        opacity: .6
    }

    100% {
        opacity: .55
    }
}

.ctus .reach-left .anim-bg {
    top: -40px;
    right: -60px;
    width: 200px;
    height: 200px
}

@media (max-width: 1024px) {
    .ctus .reach-inner {
        flex-direction: column;
        gap: 40px
    }

    .ctus .reach-left {
        flex: none;
        max-width: 100%;
        width: 100%
    }

    .ctus .curve-deco {
        display: none
    }

    .ctus .extra-inner {
        grid-template-columns: 1fr 1fr
    }

    .ctus .extra-col.center {
        grid-column: 1 / -1;
        top: 0
    }
}

@media (max-width: 640px) {
    .ctus .reach-h1 {
        font-size: 37px
    }

    .ctus .form-card {
        padding: 24px
    }

    .ctus .frow {
        flex-direction: column;
        gap: 0
    }

    .ctus .extra-inner {
        grid-template-columns: 1fr
    }

    .ctus .extra-col.center {
        padding: 24px;
        top: 0
    }

    .ctus .radio-group {
        flex-direction: column
    }

    .ctus .reach {
        padding: 40px 0 24px
    }

    .ctus .extra {
        padding: 24px 0 40px
    }
}

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

.opn * {
    box-sizing: border-box
}

.opn ::selection {
    background: #49e08f2e;
    color: #1b2b22
}

.opn .maxw {
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 24px;
    padding-right: 24px
}

.opn .titlesec {
    background: linear-gradient(67deg, #e8f7ef 0%, #f5fbe8 55%, #F9FDC6 100%);
    padding: 40px 0;
    position: relative
}

.opn .titlesec .gridbg {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
    background-image: linear-gradient(#49e08f12 1px, transparent 1px), linear-gradient(90deg, #49e08f12 1px, transparent 1px);
    background-size: 48px 48px
}

.opn .titlesec .trow {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 40px;
    position: relative;
    z-index: 1
}

.opn .titlesec .tleft {
    flex: 1 1 0;
    min-width: 0
}

.opn .titlesec .tright {
    flex: 0 0 340px;
    width: 340px;
    position: relative;
    border-radius: 4px;
    overflow: hidden
}

.opn .titlesec .tright img {
    width: 340px;
    height: 240px;
    object-fit: cover;
    object-position: center;
    display: block;
    border-radius: 4px;
    transition: opacity .25s cubic-bezier(0.4, 0, 0.2, 1)
}

.opn .titlesec .tright .imgover {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, #e8f7ef 0%, transparent 45%);
    border-radius: 4px;
    pointer-events: none
}

.opn .titlesec .overline {
    display: inline-block;
    font-size: 15px;
    letter-spacing: .12em;
    color: #8C1758;
    text-transform: uppercase;
    margin-bottom: 12px;
    font-weight: 600
}

.opn .titlesec .th1 {
    font-size: 51px;
    line-height: 1.1;
    color: #1b2b22;
    margin: 0 0 24px;
    font-weight: 700
}

.opn .titlesec .th1 .marked {
    position: relative;
    display: inline;
    color: #1b2b22
}

.opn .titlesec .th1 .marked::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 2px;
    width: 100%;
    height: 8px;
    background: #49e08f8c;
    border-radius: 2px;
    z-index: -1
}

.opn .titlesec .tsub {
    font-size: 17px;
    line-height: 1.55;
    color: #2d4a38;
    max-width: 480px
}

.opn .numsec {
    background: #1b2b22;
    padding: 80px 0
}

.opn .numsec .numgrid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px
}

.opn .numsec .numcard {
    padding: 40px 24px;
    border-radius: 4px;
    background: #49e08f0f;
    border-top: 2px solid #49e08f40;
    transition: background .22s cubic-bezier(0.4, 0, 0.2, 1), border-color .18s cubic-bezier(0.4, 0, 0.2, 1)
}

.opn .numsec .numcard:hover {
    background: #49e08f1f;
    border-color: #49e08f8c
}

.opn .numsec .numval {
    font-size: 51px;
    line-height: 1.1;
    color: #49E08F;
    font-weight: 700;
    display: block;
    margin-bottom: 6px
}

.opn .numsec .numunit {
    font-size: 21px;
    color: #49E08F;
    font-weight: 600
}

.opn .numsec .numlabel {
    font-size: 15px;
    line-height: 1.55;
    color: #f9fdc6bf;
    margin-top: 12px;
    display: block
}

.opn .numsec .numsectitle {
    font-size: 37px;
    line-height: 1.35;
    color: #F9FDC6;
    font-weight: 700;
    margin-bottom: 40px
}

.opn .numsec .numsectitle .ac {
    color: #49E08F
}

.opn .invsec {
    padding: 80px 0;
    background: #fff
}

.opn .invsec .invrow {
    display: flex;
    flex-direction: row;
    gap: 40px;
    align-items: flex-start
}

.opn .invsec .invleft {
    flex: 1 1 0;
    min-width: 0
}

.opn .invsec .invright {
    flex: 0 0 380px
}

.opn .invsec .sec-ol {
    font-size: 15px;
    letter-spacing: .1em;
    color: #8C1758;
    text-transform: uppercase;
    font-weight: 600;
    display: block;
    margin-bottom: 12px
}

.opn .invsec .invh {
    font-size: 37px;
    line-height: 1.35;
    color: #1b2b22;
    font-weight: 700;
    margin-bottom: 24px
}

.opn .invsec .invh .ac {
    color: #49E08F
}

.opn .invsec .invp {
    font-size: 17px;
    line-height: 1.55;
    color: #2d4a38;
    margin-bottom: 24px
}

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

.opn .invsec .invitem {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 12px;
    padding: 12px;
    border-radius: 4px;
    background: #f4fbf7;
    transition: box-shadow .2s cubic-bezier(0.4, 0, 0.2, 1)
}

.opn .invsec .invitem:hover {
    box-shadow: 2px 3px 4px -2px #49e08f14
}

.opn .invsec .invitem .iico {
    flex: 0 0 32px;
    width: 32px;
    height: 32px;
    background: #49e08f2e;
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center
}

.opn .invsec .invitem .iico svg {
    width: 16px;
    height: 16px;
    stroke: #1b6640
}

.opn .invsec .invitem .itxt {
    font-size: 15px;
    line-height: 1.55;
    color: #2d4a38
}

.opn .invsec .invimg {
    width: 100%;
    border-radius: 4px;
    overflow: hidden;
    box-shadow: 2px 5px 28px -2px #49e08f1c
}

.opn .invsec .invimg img {
    width: 100%;
    height: 260px;
    object-fit: cover;
    object-position: center;
    display: block;
    transition: opacity .27s cubic-bezier(0.4, 0, 0.2, 1)
}

.opn .gapsec {
    padding: 80px 0;
    background: #f0faf4;
    position: relative
}

.opn .gapsec .crossbg {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
    opacity: .35
}

.opn .gapsec .crossbg::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: linear-gradient(#49e08f4d 1.5px, transparent 1.5px), linear-gradient(90deg, #49e08f4d 1.5px, transparent 1.5px);
    background-size: 36px 36px;
    background-position: 18px 18px;
    mask-image: radial-gradient(ellipse 80% 80% at 50% 50%, black 0%, transparent 100%)
}

.opn .gapsec .gapcols {
    display: grid;
    grid-template-columns: 1fr 80px 1fr;
    gap: 0;
    align-items: center;
    position: relative;
    z-index: 1
}

.opn .gapsec .gapside {
    padding: 40px 24px
}

.opn .gapsec .gaplabel {
    font-size: 15px;
    letter-spacing: .1em;
    text-transform: uppercase;
    font-weight: 600;
    margin-bottom: 12px;
    display: block
}

.opn .gapsec .gaph {
    font-size: 21px;
    line-height: 1.35;
    font-weight: 700;
    margin-bottom: 12px
}

.opn .gapsec .gapp {
    font-size: 15px;
    line-height: 1.55
}

.opn .gapsec .before .gaplabel {
    color: #8C1758
}

.opn .gapsec .before .gaph {
    color: #3a1a2a
}

.opn .gapsec .before .gapp {
    color: #5a3a4a
}

.opn .gapsec .after .gaplabel {
    color: #1b6640
}

.opn .gapsec .after .gaph {
    color: #1b2b22
}

.opn .gapsec .after .gapp {
    color: #2d4a38
}

.opn .gapsec .gaparrow {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 6px
}

.opn .gapsec .gaparrow svg {
    width: 32px;
    height: 32px;
    stroke: #49E08F
}

.opn .gapsec .gaph2 {
    font-size: 37px;
    line-height: 1.35;
    color: #1b2b22;
    font-weight: 700;
    text-align: center;
    margin-bottom: 40px;
    position: relative;
    z-index: 1
}

.opn .gapsec .gaph2 .ac {
    color: #8C1758
}

.opn .divsvg {
    display: block;
    width: 100%;
    line-height: 0
}

.opn .ltsec {
    padding: 80px 0;
    background: #fff
}

.opn .ltsec .ltrow {
    display: flex;
    flex-direction: row;
    gap: 40px;
    align-items: flex-start
}

.opn .ltsec .ltimg {
    flex: 0 0 320px
}

.opn .ltsec .ltimg img {
    width: 320px;
    height: 320px;
    object-fit: cover;
    object-position: center;
    border-radius: 20px;
    box-shadow: 2px 9px 52px -2px #49e08f24;
    display: block;
    transition: opacity .29s cubic-bezier(0.0, 0, 0.2, 1)
}

.opn .ltsec .ltright {
    flex: 1 1 0;
    min-width: 0
}

.opn .ltsec .ltsec-ol {
    font-size: 15px;
    letter-spacing: .1em;
    color: #8C1758;
    text-transform: uppercase;
    font-weight: 600;
    display: block;
    margin-bottom: 12px
}

.opn .ltsec .lth {
    font-size: 37px;
    line-height: 1.35;
    color: #1b2b22;
    font-weight: 700;
    margin-bottom: 24px
}

.opn .ltsec .lth .ac {
    color: #49E08F
}

.opn .ltsec .ltp {
    font-size: 17px;
    line-height: 1.55;
    color: #2d4a38;
    margin-bottom: 24px
}

.opn .ltsec .ltpills {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 12px
}

.opn .ltsec .ltpill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border-radius: 20px;
    background: #F9FDC6;
    font-size: 15px;
    color: #2d4a38;
    font-weight: 500;
    transition: background .18s cubic-bezier(0.4, 0, 0.2, 1)
}

.opn .ltsec .ltpill:hover {
    background: #49e08f40
}

.opn .ltsec .ltpill svg {
    width: 14px;
    height: 14px;
    stroke: #1b6640;
    flex-shrink: 0
}

.opn .comsec {
    padding: 80px 0;
    background: #1b2b22
}

.opn .comsec .comh {
    font-size: 37px;
    line-height: 1.35;
    color: #F9FDC6;
    font-weight: 700;
    margin-bottom: 12px;
    text-align: center
}

.opn .comsec .comh .ac {
    color: #49E08F
}

.opn .comsec .comsub {
    font-size: 17px;
    line-height: 1.55;
    color: #f9fdc6b3;
    text-align: center;
    max-width: 560px;
    margin: 0 auto 40px
}

.opn .comsec .comgrid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    margin-bottom: 40px
}

.opn .comsec .comcard {
    background: #49e08f12;
    border-radius: 4px;
    padding: 24px;
    border: 1px solid #49e08f26;
    transition: border-color .2s cubic-bezier(0.4, 0, 0.2, 1), background .22s cubic-bezier(0.4, 0, 0.2, 1)
}

.opn .comsec .comcard:hover {
    border-color: #49e08f66;
    background: #49e08f1f
}

.opn .comsec .comcard .cico {
    width: 40px;
    height: 40px;
    border-radius: 4px;
    background: #49e08f26;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 12px
}

.opn .comsec .comcard .cico svg {
    width: 20px;
    height: 20px;
    stroke: #49E08F
}

.opn .comsec .comcard .cch {
    font-size: 17px;
    line-height: 1.35;
    color: #F9FDC6;
    font-weight: 600;
    margin-bottom: 6px
}

.opn .comsec .comcard .ccp {
    font-size: 15px;
    line-height: 1.55;
    color: #f9fdc6a6
}

.opn .comsec .testrow {
    display: flex;
    flex-direction: row;
    gap: 24px;
    align-items: flex-start
}

.opn .comsec .testcard {
    flex: 1 1 0;
    background: #8c175826;
    border-radius: 4px;
    padding: 24px;
    border: 1px solid #8c175840
}

.opn .comsec .testcard .tquo {
    font-size: 21px;
    line-height: 1.8;
    color: #F9FDC6;
    margin-bottom: 12px;
    font-style: italic
}

.opn .comsec .testcard .taut {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 12px
}

.opn .comsec .testcard .tavatar {
    width: 48px;
    height: 48px;
    border-radius: 20px;
    overflow: hidden;
    flex-shrink: 0
}

.opn .comsec .testcard .tavatar img {
    width: 48px;
    height: 48px;
    object-fit: cover;
    object-position: top;
    display: block
}

.opn .comsec .testcard .tname {
    font-size: 15px;
    color: #49E08F;
    font-weight: 600;
    display: block
}

.opn .comsec .testcard .trole {
    font-size: 15px;
    color: #f9fdc68c
}

.opn .expsec {
    padding: 80px 0;
    background: #fff
}

.opn .expsec .expheadrow {
    display: flex;
    flex-direction: row;
    gap: 40px;
    align-items: flex-end;
    margin-bottom: 40px
}

.opn .expsec .exphl {
    flex: 1 1 0
}

.opn .expsec .expsec-ol {
    font-size: 15px;
    letter-spacing: .1em;
    color: #8C1758;
    text-transform: uppercase;
    font-weight: 600;
    display: block;
    margin-bottom: 12px
}

.opn .expsec .exph {
    font-size: 37px;
    line-height: 1.35;
    color: #1b2b22;
    font-weight: 700
}

.opn .expsec .exph .ac {
    color: #49E08F
}

.opn .expsec .exphr {
    flex: 0 0 360px
}

.opn .expsec .exphp {
    font-size: 17px;
    line-height: 1.55;
    color: #2d4a38
}

.opn .expsec .exptrack {
    display: flex;
    flex-direction: row;
    gap: 0;
    position: relative
}

.opn .expsec .exptrack::before {
    content: '';
    position: absolute;
    top: 24px;
    left: 24px;
    right: 24px;
    height: 2px;
    background: linear-gradient(90deg, #49E08F 0%, #49e08f33 100%)
}

.opn .expsec .expstep {
    flex: 1 1 0;
    padding: 0 12px;
    text-align: center;
    position: relative
}

.opn .expsec .expstep .edot {
    width: 48px;
    height: 48px;
    border-radius: 20px;
    background: #fff;
    border: 2px solid #49E08F;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 24px;
    position: relative;
    z-index: 1;
    transition: background .2s cubic-bezier(0.4, 0, 0.2, 1), border-color .18s cubic-bezier(0.4, 0, 0.2, 1)
}

.opn .expsec .expstep:hover .edot {
    background: #49e08f26;
    border-color: #1b6640
}

.opn .expsec .expstep .edot svg {
    width: 20px;
    height: 20px;
    stroke: #1b6640
}

.opn .expsec .expstep .eph {
    font-size: 15px;
    line-height: 1.35;
    color: #1b2b22;
    font-weight: 600;
    margin-bottom: 6px
}

.opn .expsec .expstep .epp {
    font-size: 15px;
    line-height: 1.55;
    color: #4a6a58
}

@keyframes slidein-left {
    from {
        opacity: 0;
        transform: translateX(-32px)
    }

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

@keyframes slidein-right {
    from {
        opacity: 0;
        transform: translateX(32px)
    }

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

@keyframes slidein-up {
    from {
        opacity: 0;
        transform: translateY(24px)
    }

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

.opn .titlesec .tleft {
    animation: slidein-left .5s cubic-bezier(0.4, 0, 0.2, 1) both
}

.opn .titlesec .tright {
    animation: slidein-right .6s cubic-bezier(0.4, 0, 0.2, 1) .1s both
}

.opn .numsec .numsectitle {
    animation: slidein-up .45s cubic-bezier(0.4, 0, 0.2, 1) both
}

.opn .numsec .numcard:nth-child(1) {
    animation: slidein-up .45s cubic-bezier(0.4, 0, 0.2, 1) .1s both
}

.opn .numsec .numcard:nth-child(2) {
    animation: slidein-up .48s cubic-bezier(0.4, 0, 0.2, 1) .18s both
}

.opn .numsec .numcard:nth-child(3) {
    animation: slidein-up .51s cubic-bezier(0.4, 0, 0.2, 1) .26s both
}

.opn .numsec .numcard:nth-child(4) {
    animation: slidein-up .54s cubic-bezier(0.4, 0, 0.2, 1) .34s both
}

.opn .dotborder {
    position: absolute;
    pointer-events: none;
    overflow: hidden
}

.opn .dotborder svg {
    display: block
}

@media (max-width: 1024px) {
    .opn .titlesec .th1 {
        font-size: 37px
    }

    .opn .numsec .numgrid {
        grid-template-columns: repeat(2, 1fr)
    }

    .opn .invsec .invrow {
        flex-direction: column
    }

    .opn .invsec .invright {
        flex: none;
        width: 100%
    }

    .opn .ltsec .ltrow {
        flex-direction: column
    }

    .opn .ltsec .ltimg {
        flex: none;
        width: 100%
    }

    .opn .ltsec .ltimg img {
        width: 100%;
        height: 280px;
        border-radius: 4px
    }

    .opn .expsec .expheadrow {
        flex-direction: column;
        gap: 24px
    }

    .opn .expsec .exphr {
        flex: none;
        width: 100%
    }
}

@media (max-width: 640px) {
    .opn .titlesec .trow {
        flex-direction: column
    }

    .opn .titlesec .tright {
        flex: none;
        width: 100%
    }

    .opn .titlesec .tright img {
        width: 100%;
        height: 200px
    }

    .opn .titlesec .th1 {
        font-size: 27px
    }

    .opn .numsec .numgrid {
        grid-template-columns: 1fr
    }

    .opn .numsec .numsectitle {
        font-size: 27px
    }

    .opn .invsec .invh {
        font-size: 27px
    }

    .opn .gapsec .gapcols {
        grid-template-columns: 1fr
    }

    .opn .gapsec .gaparrow {
        display: none
    }

    .opn .gapsec .gaph2 {
        font-size: 27px
    }

    .opn .ltsec .lth {
        font-size: 27px
    }

    .opn .comsec .comgrid {
        grid-template-columns: 1fr
    }

    .opn .comsec .comh {
        font-size: 27px
    }

    .opn .comsec .testrow {
        flex-direction: column
    }

    .opn .expsec .exph {
        font-size: 27px
    }

    .opn .expsec .exptrack {
        flex-direction: column;
        gap: 24px
    }

    .opn .expsec .exptrack::before {
        display: none
    }
}

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

.abut .row {
    margin-left: 0;
    margin-right: 0
}

.abut .abt-inner {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 24px
}

.abut .abt-eyebrow {
    display: inline-block;
    font-size: 15px;
    letter-spacing: .12em;
    color: #8C1758;
    text-transform: uppercase;
    margin-bottom: 12px;
    line-height: 1.35
}

.abut .atitle {
    position: relative;
    padding: 80px 0;
    background: linear-gradient(67deg, #F9FDC6 0%, #F9FDC6 38%, #fff 62%, #fff 100%);
    overflow: hidden
}

.abut .atitle .dot-grid {
    position: absolute;
    top: 0;
    left: 0;
    width: 52%;
    height: 100%;
    background-image: radial-gradient(circle, #49e08f47 1.5px, transparent 1.5px);
    background-size: 22px 22px;
    pointer-events: none
}

.abut .atitle .atitle-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: center;
    position: relative;
    z-index: 1
}

.abut .atitle-text {
    padding-right: 24px
}

.abut .atitle-text h1 {
    font-size: 51px;
    line-height: 1.1;
    color: #1a1008;
    margin: 0 0 24px;
    font-weight: 700
}

.abut .atitle-text h1 .accent {
    color: #8C1758
}

.abut .atitle-text h1 .accent2 {
    color: #49E08F
}

.abut .atitle-img {
    position: relative;
    border-radius: 4px;
    overflow: hidden;
    aspect-ratio: 16/9
}

.abut .atitle-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    transition: transform .25s cubic-bezier(0.4, 0, 0.2, 1), filter .2s cubic-bezier(0.4, 0, 0.2, 1)
}

.abut .atitle-img:hover img {
    transform: scale(1.04);
    filter: brightness(0.92)
}

.abut .atitle-img .img-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(67deg, #8c175838 0%, transparent 70%);
    pointer-events: none
}

.abut .atitle-meta {
    display: flex;
    flex-direction: row;
    gap: 24px;
    margin-top: 24px;
    flex-wrap: wrap
}

.abut .atitle-meta .metaitem {
    display: flex;
    flex-direction: column;
    gap: 6px
}

.abut .atitle-meta .metanum {
    font-size: 37px;
    line-height: 1.1;
    font-weight: 700;
    color: #8C1758
}

.abut .atitle-meta .metalabel {
    font-size: 15px;
    line-height: 1.35;
    color: #444;
    letter-spacing: .04em
}

.abut .atitle .curl {
    position: absolute;
    bottom: 24px;
    right: 40px;
    width: 64px;
    height: 64px;
    opacity: .12;
    pointer-events: none
}

.abut .astory {
    padding: 80px 0;
    background: #fff;
    position: relative
}

.abut .astory-divider {
    width: 80%;
    height: 1px;
    margin: 0 auto 80px;
    background: linear-gradient(90deg, transparent 0%, #49E08F 50%, transparent 100%)
}

.abut .astory-layout {
    display: grid;
    grid-template-columns: 5fr 7fr;
    gap: 40px;
    align-items: start;
    margin-left: 40px
}

.abut .astory-aside {
    position: sticky;
    top: 40px
}

.abut .astory-img {
    border-radius: 20px;
    overflow: hidden;
    aspect-ratio: 4/3;
    box-shadow: 2px 5px 28px -2px #49e08f1c
}

.abut .astory-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    transition: transform .28s cubic-bezier(0.4, 0, 0.2, 1), brightness .22s cubic-bezier(0.4, 0, 0.2, 1)
}

.abut .astory-img:hover img {
    transform: scale(1.05);
    filter: brightness(0.94)
}

.abut .astory-badge {
    margin-top: 24px;
    padding: 12px 24px;
    background: #F9FDC6;
    border-radius: 4px;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 12px
}

.abut .astory-badge svg {
    flex-shrink: 0;
    color: #8C1758
}

.abut .astory-badge p {
    font-size: 15px;
    line-height: 1.55;
    color: #333;
    margin: 0
}

.abut .astory-body h2 {
    font-size: 37px;
    line-height: 1.1;
    color: #1a1008;
    margin: 0 0 24px;
    font-weight: 700
}

.abut .astory-body h2 .accent {
    color: #49E08F
}

.abut .astory-body p {
    font-size: 17px;
    line-height: 1.8;
    color: #333;
    margin: 0 0 24px
}

.abut .astory-body p:last-child {
    margin-bottom: 0
}

.abut .astory-pillars {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    margin-top: 40px
}

.abut .pillar {
    padding: 24px;
    border-radius: 4px;
    background: #F9FDC6;
    transition: box-shadow .22s cubic-bezier(0.4, 0, 0.2, 1), transform .18s cubic-bezier(0.4, 0, 0.2, 1)
}

.abut .astory-pillars:hover .pillar {
    opacity: .55
}

.abut .astory-pillars:hover .pillar:hover {
    opacity: 1;
    box-shadow: 2px 5px 28px -2px #49e08f1c;
    transform: translateY(-3px)
}

.abut .pillar h4 {
    font-size: 17px;
    line-height: 1.35;
    font-weight: 700;
    color: #1a1008;
    margin: 12px 0 6px
}

.abut .pillar p {
    font-size: 15px;
    line-height: 1.55;
    color: #444;
    margin: 0
}

.abut .pillar .pillar-icon {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    border-radius: 4px;
    color: #8C1758
}

.abut .ateam {
    padding: 80px 0;
    background: linear-gradient(67deg, #8C1758 0%, #6b1245 45%, #2d0a22 100%);
    position: relative;
    overflow: hidden
}

.abut .ateam .mesh-bg {
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse 60% 80% at 15% 30%, #49e08f1f 0%, transparent 65%), radial-gradient(ellipse 50% 60% at 85% 70%, #f9fdc614 0%, transparent 60%);
    pointer-events: none
}

.abut .ateam .spiral {
    position: absolute;
    top: 24px;
    right: 40px;
    width: 80px;
    height: 80px;
    opacity: .1;
    pointer-events: none
}

.abut .ateam h2 {
    font-size: 37px;
    line-height: 1.1;
    color: #fff;
    margin: 0 0 12px;
    font-weight: 700
}

.abut .ateam h2 .accent {
    color: #49E08F
}

.abut .ateam .team-sub {
    font-size: 17px;
    line-height: 1.55;
    color: #ffffffbf;
    margin: 0 0 40px;
    max-width: 560px
}

.abut .team-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px
}

.abut .tmember {
    background: #ffffff12;
    border-radius: 20px;
    padding: 24px;
    transition: background .2s cubic-bezier(0.4, 0, 0.2, 1), transform .22s cubic-bezier(0.0, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    gap: 12px
}

.abut .team-grid:hover .tmember {
    opacity: .6
}

.abut .team-grid:hover .tmember:hover {
    opacity: 1;
    background: #ffffff21;
    transform: translateY(-4px)
}

.abut .tmember-portrait {
    width: 100%;
    aspect-ratio: 3/4;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 2px 9px 52px -2px #49e08f24
}

.abut .tmember-portrait img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top;
    display: block;
    transition: transform .25s cubic-bezier(0.4, 0, 0.2, 1)
}

.abut .tmember:hover .tmember-portrait img {
    transform: scale(1.04)
}

.abut .tmember-noimg {
    width: 100%;
    aspect-ratio: 3/4;
    border-radius: 20px;
    background: #49e08f1a;
    display: flex;
    align-items: center;
    justify-content: center
}

.abut .tmember-noimg svg {
    color: #49e08f66
}

.abut .tmember h5 {
    font-size: 17px;
    line-height: 1.35;
    color: #fff;
    font-weight: 700;
    margin: 0
}

.abut .tmember .trole {
    font-size: 15px;
    line-height: 1.35;
    color: #49E08F;
    letter-spacing: .06em;
    text-transform: uppercase;
    margin: 0
}

.abut .tmember .tbio {
    font-size: 15px;
    line-height: 1.55;
    color: #ffffffb3;
    margin: 0
}

.abut .acontact {
    padding: 80px 0;
    background: #F9FDC6;
    position: relative
}

.abut .acontact-divider {
    width: 80%;
    height: 1px;
    margin: 0 auto 80px;
    background: linear-gradient(90deg, transparent 0%, #8C1758 50%, transparent 100%)
}

.abut .acontact-layout {
    display: grid;
    grid-template-columns: 7fr 5fr;
    gap: 40px;
    align-items: center;
    margin-right: 40px
}

.abut .acontact-text h2 {
    font-size: 37px;
    line-height: 1.1;
    color: #1a1008;
    margin: 0 0 24px;
    font-weight: 700
}

.abut .acontact-text h2 .accent {
    color: #8C1758
}

.abut .acontact-text p {
    font-size: 17px;
    line-height: 1.8;
    color: #333;
    margin: 0 0 24px
}

.abut .contact-items {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 40px
}

.abut .citem {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 12px
}

.abut .citem-icon {
    width: 40px;
    height: 40px;
    border-radius: 4px;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow: 2px 3px 4px -2px #49e08f14;
    color: #8C1758
}

.abut .citem-text {
    font-size: 15px;
    line-height: 1.55;
    color: #333
}

.abut .citem-text a {
    color: #8C1758;
    text-decoration: none;
    transition: color .18s cubic-bezier(0.4, 0, 0.2, 1)
}

.abut .citem-text a:hover {
    color: #49E08F
}

.abut .acontact-visual {
    position: relative
}

.abut .acontact-img {
    border-radius: 4px;
    overflow: hidden;
    aspect-ratio: 4/3;
    box-shadow: 2px 9px 52px -2px #8c175824
}

.abut .acontact-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    transition: transform .28s cubic-bezier(0.4, 0, 0.2, 1), filter .22s cubic-bezier(0.4, 0, 0.2, 1)
}

.abut .acontact-img:hover img {
    transform: scale(1.04);
    filter: brightness(0.93)
}

.abut .cta-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 12px 40px;
    background: #8C1758;
    color: #fff;
    border-radius: 2px;
    font-size: 17px;
    line-height: 1.35;
    text-decoration: none;
    font-weight: 600;
    letter-spacing: .02em;
    box-shadow: 2px 5px 28px -2px #8c17581c;
    transition: background .2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow .22s cubic-bezier(0.4, 0, 0.2, 1);
    margin-top: 24px
}

.abut .cta-btn:hover {
    background: #6b1245;
    box-shadow: 2px 9px 52px -2px #8c175824
}

.abut .cta-btn:active {
    box-shadow: inset 0 2px 6px #8c17582e
}

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

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

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

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

@keyframes slideInUp {
    from {
        opacity: 0;
        transform: translateY(28px)
    }

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

@keyframes fadeIn {
    from {
        opacity: 0
    }

    to {
        opacity: 1
    }
}

.abut .atitle-text {
    animation: slideInLeft .22s cubic-bezier(0.4, 0, 0.2, 1) both
}

.abut .atitle-img {
    animation: slideInRight .26s cubic-bezier(0.4, 0, 0.2, 1) .06s both
}

.abut .astory-aside {
    animation: slideInLeft .24s cubic-bezier(0.4, 0, 0.2, 1) .08s both
}

.abut .astory-body {
    animation: slideInRight .27s cubic-bezier(0.4, 0, 0.2, 1) .1s both
}

.abut .tmember:nth-child(1) {
    animation: slideInUp .22s cubic-bezier(0.4, 0, 0.2, 1) .04s both
}

.abut .tmember:nth-child(2) {
    animation: slideInUp .25s cubic-bezier(0.4, 0, 0.2, 1) .1s both
}

.abut .tmember:nth-child(3) {
    animation: slideInUp .28s cubic-bezier(0.4, 0, 0.2, 1) .16s both
}

.abut .acontact-text {
    animation: slideInLeft .26s cubic-bezier(0.4, 0, 0.2, 1) .08s both
}

.abut .acontact-visual {
    animation: slideInRight .29s cubic-bezier(0.4, 0, 0.2, 1) .14s both
}

@media (max-width: 1024px) {
    .abut .atitle-text h1 {
        font-size: 37px
    }

    .abut .atitle-grid {
        grid-template-columns: 1fr 1fr;
        gap: 24px
    }

    .abut .astory-layout {
        grid-template-columns: 1fr;
        margin-left: 0
    }

    .abut .astory-aside {
        position: static
    }

    .abut .team-grid {
        grid-template-columns: 1fr 1fr
    }

    .abut .acontact-layout {
        grid-template-columns: 1fr;
        margin-right: 0
    }
}

@media (max-width: 640px) {
    .abut .atitle {
        padding: 40px 0
    }

    .abut .atitle-grid {
        grid-template-columns: 1fr
    }

    .abut .atitle-img {
        display: none
    }

    .abut .atitle-text h1 {
        font-size: 27px
    }

    .abut .atitle-text {
        padding-right: 0
    }

    .abut .astory {
        padding: 40px 0
    }

    .abut .astory-divider {
        margin-bottom: 40px
    }

    .abut .astory-body h2 {
        font-size: 27px
    }

    .abut .astory-pillars {
        grid-template-columns: 1fr
    }

    .abut .ateam {
        padding: 40px 0
    }

    .abut .ateam h2 {
        font-size: 27px
    }

    .abut .team-grid {
        grid-template-columns: 1fr
    }

    .abut .acontact {
        padding: 40px 0
    }

    .abut .acontact-divider {
        margin-bottom: 40px
    }

    .abut .acontact-text h2 {
        font-size: 27px
    }

    .abut .atitle-meta .metanum {
        font-size: 27px
    }
}

.successPg {
    min-height: 60vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 80px 24px;
    background: #fff
}

.successPg .successWrap {
    max-width: 540px;
    width: 100%;
    text-align: center;
    padding: 40px;
    background: #fff;
    border-radius: 20px;
    box-shadow: 2px 5px 28px -2px #49e08f1c
}

.successPg .iconRing {
    width: 72px;
    height: 72px;
    border-radius: 20px;
    background: #F9FDC6;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 24px
}

.successPg .iconRing svg {
    display: block
}

.successPg .successLabel {
    display: block;
    font-size: 15px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #49E08F;
    margin-bottom: 12px;
    line-height: 1.35
}

.successPg .successTitle {
    font-size: 37px;
    line-height: 1.1;
    color: #1b1b2e;
    margin: 0 0 12px
}

.successPg .successTitle span {
    color: #8C1758
}

.successPg .successDesc {
    font-size: 17px;
    line-height: 1.55;
    color: #3a3a4a;
    margin: 0 0 40px
}

.successPg .divLine {
    width: 48px;
    height: 2px;
    background: #49E08F;
    border-radius: 2px;
    margin: 0 auto 40px
}

.successPg .successMeta {
    background: #F9FDC6;
    border-radius: 4px;
    padding: 24px;
    margin-bottom: 40px;
    text-align: left
}

.successPg .successMeta p {
    font-size: 15px;
    line-height: 1.55;
    color: #3a3a4a;
    margin: 0
}

.successPg .successMeta strong {
    color: #1b1b2e
}

.successPg .backLink {
    display: inline-block;
    font-size: 15px;
    line-height: 1.35;
    color: #fff;
    background: #8C1758;
    padding: 12px 40px;
    border-radius: 4px;
    text-decoration: none;
    box-shadow: 2px 3px 4px -2px #8c175814;
    transition: background-color .18s cubic-bezier(0.4, 0, 0.2, 1), box-shadow .22s cubic-bezier(0.0, 0, 0.2, 1)
}

.successPg .backLink:hover {
    background: #701245;
    box-shadow: 2px 5px 28px -2px #8c175824
}

.successPg .backLink:focus {
    outline: 2px solid #49E08F;
    outline-offset: 3px
}

.successPg .backLink:active {
    box-shadow: inset 2px 3px 4px -2px #8c17582e
}

@media (max-width: 640px) {
    .successPg {
        padding: 40px 12px
    }

    .successPg .successWrap {
        padding: 24px
    }

    .successPg .successTitle {
        font-size: 27px
    }
}