html {
    box-sizing: border-box;
    scroll-behavior: smooth
}

body {
    margin: 0;
    font-family: 'Source Code Pro', monospace;
    background-color: #111714;
    color: #E9EEEA
}

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

.site-header {
    background: linear-gradient(135deg, #1b2e1f 0%, #223027 60%, #1a2a1e 100%);
    border-bottom: 2px solid #459352;
    box-shadow: 0 6px 25px -1px #45935214;
    position: relative
}

.hd-utility {
    border-bottom: 1px solid #89b8932e;
    padding: 8px 0
}

.hd-utility-shell {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px
}

.hd-brand-hold {
    display: flex;
    align-items: center;
    gap: 12px
}

.hd-logo-mount {
    width: 68px;
    height: 78px;
    border-radius: 6px;
    background-color: #fff;
    box-shadow: 0 0 0 2px #459352, 0 3px 5px -1px #45935212;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 4px;
    flex-shrink: 0
}

.hd-logo-mount img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block
}

.hd-brand-name {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: .02em;
    color: #E9EEEA;
    text-decoration: none
}

.hd-brand-name span {
    display: block;
    font-size: 13px;
    font-weight: 400;
    color: #89B893;
    letter-spacing: .01em;
    margin-top: 4px
}

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

.hd-contact-item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    line-height: 1.2;
    color: #89B893;
    text-decoration: none;
    letter-spacing: .01em;
    transition: color .15s ease-out
}

.hd-contact-item:hover {
    color: #E9EEEA
}

.hd-contact-item .pe-7s-call,
.hd-contact-item .pe-7s-mail {
    font-size: 16px;
    color: #459352
}

.hd-nav-bar {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 24px
}

.hd-nav-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    align-items: stretch
}

.hd-nav-list li a {
    display: flex;
    align-items: center;
    padding: 12px 24px;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: .02em;
    color: #E9EEEA;
    text-decoration: none;
    border-radius: 0;
    position: relative;
    transition: color .15s ease-out, background-color .2s ease
}

.hd-nav-list li a::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 24px;
    right: 24px;
    height: 2px;
    background: #459352;
    transform: scaleX(0);
    transition: transform .15s ease-out
}

.hd-nav-list li a:hover {
    color: #89B893;
    background-color: #45935214
}

.hd-nav-list li a:hover::after {
    transform: scaleX(1)
}

.hd-nav-list li a:focus {
    outline: none;
    color: #89B893
}

.hd-nav-list li a:focus-visible::before {
    content: 'фокус';
    position: absolute;
    top: -18px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 13px;
    color: #459352;
    background: #1b2e1f;
    padding: 4px 8px;
    border-radius: 6px;
    white-space: nowrap;
    border: 1px solid #459352;
    z-index: 10
}

.hd-nav-list li a[data-active="true"] {
    color: #459352
}

.hd-nav-list li a[data-active="true"]::after {
    transform: scaleX(1)
}

@media (max-width: 1024px) {
    .hd-nav-list li a {
        padding: 12px;
        font-size: 13px
    }
}

@media (max-width: 640px) {
    .hd-utility-shell {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px
    }

    .hd-contacts {
        gap: 12px
    }

    .hd-nav-list li a {
        padding: 12px 8px
    }
}

@media (max-width: 360px) {
    .hd-brand-name {
        font-size: 16px
    }

    .hd-logo-mount {
        width: 52px;
        height: 60px
    }
}

.site-footer {
    background: linear-gradient(180deg, #182319 0%, #111714 100%);
    border-top: 2px solid #459352;
    box-shadow: inset 0 3px 5px -1px #45935212;
    position: relative;
    overflow: hidden
}

.site-footer::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: radial-gradient(circle, #45935212 1px, transparent 1px);
    background-size: 28px 28px;
    pointer-events: none
}

.ft-shell {
    max-width: 1100px;
    margin: 0 auto;
    padding: 48px 24px 24px;
    position: relative
}

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

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

.ft-logo-hold {
    display: flex;
    align-items: center;
    gap: 12px
}

.ft-logo-mount {
    width: 68px;
    height: 78px;
    border-radius: 6px;
    background-color: #fff;
    box-shadow: 0 0 0 2px #459352, 0 3px 5px -1px #45935212;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 4px;
    flex-shrink: 0
}

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

.ft-brand-label {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: .02em;
    color: #E9EEEA
}

.ft-brand-label span {
    display: block;
    font-size: 13px;
    font-weight: 400;
    color: #89B893;
    letter-spacing: .01em;
    margin-top: 4px
}

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

.ft-contacts-list li {
    display: flex;
    align-items: center;
    gap: 8px
}

.ft-contacts-list li a,
.ft-contacts-list li span {
    font-size: 14px;
    line-height: 1.7;
    letter-spacing: .01em;
    color: #89B893;
    text-decoration: none;
    transition: color .15s ease-out
}

.ft-contacts-list li a:hover {
    color: #E9EEEA
}

.ft-contacts-list .pe-7s-call,
.ft-contacts-list .pe-7s-mail,
.ft-contacts-list .pe-7s-map-marker {
    font-size: 16px;
    color: #459352;
    flex-shrink: 0
}

.ft-nav-col {
    display: flex;
    flex-direction: column;
    gap: 24px
}

.ft-nav-label {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .02em;
    color: #459352;
    text-transform: uppercase;
    border-bottom: 1px solid #45935240;
    padding-bottom: 8px
}

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

.ft-nav-links li a {
    font-size: 14px;
    line-height: 1.7;
    letter-spacing: .01em;
    color: #89B893;
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 8px;
    transition: color .15s ease-out;
    min-height: 44px
}

.ft-nav-links li a:hover {
    color: #E9EEEA
}

.ft-nav-links li a:focus-visible {
    outline: 2px solid #459352;
    outline-offset: 2px;
    border-radius: 6px
}

.ft-nav-links .pe-7s-angle-right {
    font-size: 16px;
    color: #459352
}

.ft-bottom {
    margin-top: 48px;
    padding-top: 24px;
    border-top: 1px solid #89b89326;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px
}

.ft-copy {
    font-size: 13px;
    line-height: 1.2;
    letter-spacing: .01em;
    color: #89b89399
}

.ft-legal-links {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 12px
}

.ft-legal-links li a {
    font-size: 13px;
    line-height: 1.2;
    letter-spacing: .01em;
    color: #89b89399;
    text-decoration: none;
    transition: color .15s ease-out
}

.ft-legal-links li a:hover {
    color: #89B893
}

@media (max-width: 1024px) {
    .ft-grid {
        gap: 24px
    }
}

@media (max-width: 640px) {
    .ft-grid {
        grid-template-columns: 1fr;
        gap: 48px
    }

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

@media (max-width: 360px) {
    .ft-shell {
        padding: 48px 12px 24px
    }
}

.doc-content {
    max-width: 1100px;
    margin: 0 auto;
    padding: 48px 24px;
    color: #d4dbd5;
    background: #141a15
}

.doc-content p {
    font-size: 16px;
    line-height: 1.7;
    letter-spacing: .01em;
    margin-bottom: 24px;
    color: #c8d4ca
}

.doc-content ul,
.doc-content ol {
    margin: 0 0 24px;
    padding-left: 24px
}

.doc-content li {
    font-size: 16px;
    line-height: 1.7;
    letter-spacing: .01em;
    color: #c8d4ca;
    margin-bottom: 8px
}

.doc-content li:last-child {
    margin-bottom: 0
}

.doc-content ul li {
    list-style-type: disc;
    list-style-color: #459352
}

.doc-content ol li {
    list-style-type: decimal;
    list-style-color: #459352
}

.doc-content strong,
.doc-content b {
    font-weight: 700;
    color: #e4ece5;
    letter-spacing: .02em
}

.doc-content a {
    color: #89B893;
    text-decoration: underline;
    text-decoration-color: #45935273;
    text-underline-offset: 3px;
    transition: color .15s ease-out, text-decoration-color .15s ease-out
}

.doc-content a:hover {
    color: #459352;
    text-decoration-color: #459352
}

.doc-content table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 24px;
    font-size: 14px;
    line-height: 1.7;
    background: #181f19;
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 6px 25px -1px #45935214
}

.doc-content thead {
    background: #1e2b1f
}

.doc-content thead tr {
    border-bottom: 2px solid #459352
}

.doc-content tbody tr {
    border-bottom: 1px solid #89b8931f;
    transition: background .12s ease-out
}

.doc-content tbody tr:last-child {
    border-bottom: none
}

.doc-content tbody tr:hover {
    background: #1c261d
}

.doc-content th {
    padding: 12px 24px;
    text-align: right;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .02em;
    color: #89B893;
    white-space: nowrap
}

.doc-content td {
    padding: 12px 24px;
    font-size: 14px;
    color: #c0cec2;
    letter-spacing: .01em;
    vertical-align: top
}

.doc-content hr {
    border: none;
    border-top: 1px solid #89b8932e;
    margin: 48px 0;
    box-shadow: inset 0 1px 0 #45935212
}

@media (max-width: 1024px) {
    .doc-content {
        padding: 48px 24px
    }
}

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

    .doc-content p,
    .doc-content li {
        font-size: 16px
    }

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

    .doc-content th,
    .doc-content td {
        padding: 12px
    }
}

@media (max-width: 360px) {
    .doc-content {
        padding: 24px 8px
    }

    .doc-content ul,
    .doc-content ol {
        padding-left: 12px
    }
}

.ptf {
    background-color: #111714;
    overflow-x: clip;
    position: relative
}

.ptf .geo-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    overflow: hidden;
    z-index: 0
}

.ptf .geo-bg span {
    position: absolute;
    border-radius: 50%;
    border: 1px solid #4593520f;
    pointer-events: none
}

.ptf .geo-bg span:nth-child(1) {
    width: 420px;
    height: 420px;
    top: -120px;
    right: -80px
}

.ptf .geo-bg span:nth-child(2) {
    width: 260px;
    height: 260px;
    bottom: 30%;
    left: -60px
}

.ptf .geo-bg span:nth-child(3) {
    width: 180px;
    height: 180px;
    top: 45%;
    right: 8%;
    border-color: #89b8930d
}

.ptf .pg-wrap {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 24px;
    position: relative;
    z-index: 1
}

.ptf .divider-grad {
    height: 1px;
    background: linear-gradient(67deg, #459352, #89B893, #459352);
    opacity: .35;
    border: none;
    margin: 0
}

.ptf .divider-soft {
    height: 1px;
    background: linear-gradient(67deg, transparent, #89B893 40%, #459352 70%, transparent);
    opacity: .2;
    border: none;
    margin: 0
}

.ptf .pg-head {
    padding: 96px 0 48px;
    position: relative;
    z-index: 1
}

.ptf .pg-head .pg-wrap {
    display: grid;
    grid-template-columns: 1fr 1.4fr 1fr;
    gap: 48px;
    align-items: center
}

.ptf .img-side {
    position: relative
}

.ptf .img-side.left {
    display: flex;
    flex-direction: column;
    align-items: flex-end
}

.ptf .img-side.right {
    display: flex;
    flex-direction: column;
    align-items: flex-start
}

.ptf .img-frame {
    position: relative;
    overflow: hidden;
    border-radius: 10px;
    box-shadow: 0 10px 40px -1px #4593521a
}

.ptf .img-frame img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .2s ease-out
}

.ptf .img-frame:hover img {
    transform: scale(1.03)
}

.ptf .img-frame .color-wash {
    position: absolute;
    inset: 0;
    background: linear-gradient(67deg, #45935273, #89b89333);
    opacity: 0;
    transition: opacity .18s ease-out;
    pointer-events: none
}

.ptf .img-frame:hover .color-wash {
    opacity: 1
}

.ptf .img-frame.sz-a {
    width: 220px;
    height: 290px
}

.ptf .img-frame.sz-b {
    width: 200px;
    height: 260px
}

.ptf .img-deco {
    position: absolute;
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: linear-gradient(67deg, #4593521f, #89b8930f);
    top: -24px;
    left: -24px;
    pointer-events: none
}

.ptf .img-deco-b {
    position: absolute;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: linear-gradient(67deg, #89b8931a, #45935212);
    bottom: -12px;
    right: -12px;
    pointer-events: none
}

.ptf .head-mid {
    display: flex;
    flex-direction: column;
    gap: 24px;
    text-align: center
}

.ptf .head-mid .pg-label {
    font-size: 13px;
    letter-spacing: .12em;
    color: #89B893;
    text-transform: uppercase
}

.ptf .head-mid h1 {
    font-size: 52px;
    line-height: 1.2;
    letter-spacing: .01em;
    color: #E9EEEA;
    margin: 0
}

.ptf .head-mid h1 .split-first {
    color: #459352
}

.ptf .head-pts {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
    text-align: left
}

.ptf .head-pts li {
    font-size: 14px;
    line-height: 1.7;
    color: #c8d4cb;
    letter-spacing: .01em;
    display: flex;
    align-items: flex-start;
    gap: 8px
}

.ptf .head-pts li .pt-icon {
    flex-shrink: 0;
    margin-top: 4px;
    width: 16px;
    height: 16px
}

.ptf .works {
    padding: 96px 0;
    background: #0d1210;
    position: relative;
    z-index: 1;
    box-shadow: inset 0 4px 24px #4593520a
}

.ptf .works .sec-hd {
    margin-bottom: 48px
}

.ptf .works .sec-hd h2 {
    font-size: 37px;
    line-height: 1.2;
    letter-spacing: .01em;
    color: #E9EEEA;
    margin: 0 0 12px
}

.ptf .works .sec-hd h2 .split-first {
    color: #459352
}

.ptf .works .sec-hd p {
    font-size: 14px;
    line-height: 1.7;
    color: #9eb5a3;
    max-width: 520px;
    letter-spacing: .01em;
    margin: 0
}

.ptf .works-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 24px
}

.ptf .work-card {
    background: #141c16;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 6px 25px -1px #45935214;
    transition: box-shadow .18s ease-out, transform .15s ease-out
}

.ptf .work-card:hover {
    box-shadow: 0 10px 40px -1px #4593521a;
    transform: translateY(-3px)
}

.ptf .work-card .card-img {
    position: relative;
    overflow: hidden;
    height: 200px
}

.ptf .work-card .card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .2s ease-out
}

.ptf .work-card:hover .card-img img {
    transform: scale(1.04)
}

.ptf .work-card .card-img .color-wash {
    position: absolute;
    inset: 0;
    background: linear-gradient(67deg, #45935280, #89b89340);
    opacity: 0;
    transition: opacity .18s ease-out;
    pointer-events: none
}

.ptf .work-card:hover .card-img .color-wash {
    opacity: 1
}

.ptf .work-card .card-body {
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 8px
}

.ptf .work-card .card-tag {
    font-size: 13px;
    letter-spacing: .08em;
    color: #459352;
    text-transform: uppercase
}

.ptf .work-card h3 {
    font-size: 16px;
    line-height: 1.2;
    letter-spacing: .01em;
    color: #E9EEEA;
    margin: 0
}

.ptf .work-card .card-desc {
    font-size: 13px;
    line-height: 1.7;
    color: #8eab96;
    letter-spacing: .01em;
    margin: 0
}

.ptf .work-card .card-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 4px
}

.ptf .work-card .card-meta .meta-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #459352;
    flex-shrink: 0
}

.ptf .work-card .card-meta span {
    font-size: 13px;
    color: #6a8a72;
    letter-spacing: .01em
}

.ptf .metrics {
    padding: 48px 0;
    background: #111714;
    position: relative;
    z-index: 1
}

.ptf .metrics-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px
}

.ptf .metric-item {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 24px;
    border-radius: 6px;
    background: #141c16;
    box-shadow: 0 3px 5px -1px #45935212;
    position: relative;
    overflow: hidden
}

.ptf .metric-item::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(67deg, #459352, #89B893);
    opacity: .6
}

.ptf .metric-item .m-num {
    font-size: 37px;
    line-height: 1.2;
    letter-spacing: .01em;
    color: #459352
}

.ptf .metric-item .m-label {
    font-size: 13px;
    line-height: 1.7;
    color: #8eab96;
    letter-spacing: .01em
}

.ptf .metric-item .m-icon {
    position: absolute;
    top: 20px;
    right: 20px;
    color: #4593522e;
    font-size: 27px
}

.ptf .approach {
    padding: 96px 0;
    background: #0d1210;
    position: relative;
    z-index: 1;
    box-shadow: inset 0 -4px 24px #4593520a
}

.ptf .approach .pg-wrap {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 96px;
    align-items: start
}

.ptf .approach-left h2 {
    font-size: 37px;
    line-height: 1.2;
    letter-spacing: .01em;
    color: #E9EEEA;
    margin: 0 0 24px
}

.ptf .approach-left h2 .split-first {
    color: #459352
}

.ptf .approach-left .al-intro {
    font-size: 14px;
    line-height: 1.7;
    color: #9eb5a3;
    letter-spacing: .01em;
    margin: 0 0 24px
}

.ptf .approach-steps {
    display: flex;
    flex-direction: column;
    gap: 24px
}

.ptf .step-row {
    display: flex;
    flex-direction: row;
    gap: 16px;
    align-items: flex-start
}

.ptf .step-num {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 6px;
    background: linear-gradient(67deg, #459352, #89B893);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    color: #0d1210;
    letter-spacing: .02em;
    font-weight: 700
}

.ptf .step-text {
    display: flex;
    flex-direction: column;
    gap: 4px
}

.ptf .step-text h4 {
    font-size: 14px;
    line-height: 1.2;
    letter-spacing: .01em;
    color: #E9EEEA;
    margin: 0
}

.ptf .step-text p {
    font-size: 13px;
    line-height: 1.7;
    color: #7a9e83;
    letter-spacing: .01em;
    margin: 0
}

.ptf .approach-right {
    display: flex;
    flex-direction: column;
    gap: 24px
}

.ptf .approach-right h3 {
    font-size: 20px;
    line-height: 1.2;
    letter-spacing: .01em;
    color: #E9EEEA;
    margin: 0
}

.ptf .approach-right h3 .split-first {
    color: #89B893
}

.ptf .skill-bars {
    display: flex;
    flex-direction: column;
    gap: 16px
}

.ptf .skill-row {
    display: flex;
    flex-direction: column;
    gap: 8px
}

.ptf .skill-row .sk-label {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center
}

.ptf .skill-row .sk-label span:first-child {
    font-size: 13px;
    color: #c8d4cb;
    letter-spacing: .01em
}

.ptf .skill-row .sk-label span:last-child {
    font-size: 13px;
    color: #459352;
    letter-spacing: .01em
}

.ptf .sk-track {
    height: 6px;
    border-radius: 6px;
    background: #1e2b21;
    overflow: hidden
}

.ptf .sk-fill {
    height: 100%;
    border-radius: 6px;
    background: linear-gradient(67deg, #459352, #89B893);
    animation: fill-bar .9s ease-out forwards;
    transform-origin: left
}

@keyframes fill-bar {
    from {
        transform: scaleX(0)
    }

    to {
        transform: scaleX(1)
    }
}

.ptf .approach-right .feedback-block {
    background: #141c16;
    border-radius: 10px;
    padding: 24px;
    box-shadow: 0 6px 25px -1px #45935214;
    display: flex;
    flex-direction: column;
    gap: 12px
}

.ptf .feedback-block .fb-text {
    font-size: 14px;
    line-height: 1.7;
    color: #b0c8b6;
    letter-spacing: .01em;
    margin: 0
}

.ptf .feedback-block .fb-author {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 12px
}

.ptf .fb-avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: linear-gradient(67deg, #459352, #89B893);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    color: #0d1210;
    flex-shrink: 0
}

.ptf .fb-info .fb-name {
    font-size: 14px;
    color: #E9EEEA;
    letter-spacing: .01em
}

.ptf .fb-info .fb-role {
    font-size: 13px;
    color: #6a8a72;
    letter-spacing: .01em
}

.ptf .reveal {
    animation: rev-clip .55s ease-out both
}

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

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

.ptf .reveal-up {
    animation: rev-up .45s ease-out both
}

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

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

.ptf .d1 {
    animation-delay: .05s
}

.ptf .d2 {
    animation-delay: .12s
}

.ptf .d3 {
    animation-delay: .2s
}

.ptf .d4 {
    animation-delay: .28s
}

@media (max-width: 1024px) {
    .ptf .pg-head .pg-wrap {
        grid-template-columns: 1fr 1.3fr 1fr;
        gap: 24px
    }

    .ptf .img-frame.sz-a {
        width: 180px;
        height: 240px
    }

    .ptf .img-frame.sz-b {
        width: 160px;
        height: 210px
    }

    .ptf .head-mid h1 {
        font-size: 37px
    }

    .ptf .works-grid {
        grid-template-columns: 1fr 1fr
    }

    .ptf .metrics-row {
        grid-template-columns: 1fr 1fr
    }

    .ptf .approach .pg-wrap {
        grid-template-columns: 1fr;
        gap: 48px
    }
}

@media (max-width: 640px) {
    .ptf .pg-head .pg-wrap {
        grid-template-columns: 1fr;
        gap: 24px
    }

    .ptf .img-side.left,
    .ptf .img-side.right {
        display: none
    }

    .ptf .head-mid h1 {
        font-size: 27px
    }

    .ptf .works-grid {
        grid-template-columns: 1fr
    }

    .ptf .metrics-row {
        grid-template-columns: 1fr 1fr;
        gap: 12px
    }

    .ptf .works,
    .ptf .approach {
        padding: 48px 0
    }

    .ptf .pg-head {
        padding: 48px 0 24px
    }
}

@media (max-width: 360px) {
    .ptf .metrics-row {
        grid-template-columns: 1fr
    }

    .ptf .head-mid h1 {
        font-size: 20px
    }

    .ptf .pg-wrap {
        padding: 0 12px
    }
}

.opn {
    background: #111714;
    color: #d4dbd5;
    overflow-x: clip;
    position: relative
}

.opn .fog-layer {
    position: fixed;
    top: 0;
    left: -20%;
    width: 140%;
    height: 100%;
    background: linear-gradient(107deg, #ffffff05 0%, #fff0 60%);
    animation: fogmove 18s ease-in-out infinite alternate;
    pointer-events: none;
    z-index: 0
}

@keyframes fogmove {
    0% {
        transform: translateX(0) scaleY(1);
        opacity: .7
    }

    100% {
        transform: translateX(12%) scaleY(1.04);
        opacity: 1
    }
}

.opn .dot-row {
    display: flex;
    flex-direction: row;
    gap: 8px;
    align-items: center
}

.opn .dot-row span {
    width: 5px;
    height: 5px;
    border-radius: 0;
    background: #459352;
    display: block;
    opacity: .7
}

.opn .dot-row span:nth-child(2) {
    opacity: .45
}

.opn .dot-row span:nth-child(3) {
    opacity: .25
}

.opn .title-blk {
    position: relative;
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 0;
    max-width: 1100px;
    margin: 0 auto;
    padding: 96px 24px;
    gap: 48px;
    align-items: center;
    z-index: 1
}

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

.opn .title-blk__label {
    font-size: 13px;
    letter-spacing: .12em;
    color: #89B893;
    text-transform: uppercase;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px
}

.opn .title-blk__label i {
    font-size: 14px;
    color: #459352
}

.opn .title-blk__h1 {
    font-size: 52px;
    line-height: 1.2;
    letter-spacing: .01em;
    margin: 0
}

.opn .title-blk__h1 .w1 {
    color: #459352
}

.opn .title-blk__h1 .w2 {
    color: #E9EEEA
}

.opn .title-blk__tagline {
    font-size: 16px;
    line-height: 1.7;
    color: #a8b8aa;
    max-width: 420px;
    margin: 0;
    letter-spacing: .01em
}

.opn .title-blk__links {
    display: flex;
    flex-direction: row;
    gap: 12px;
    flex-wrap: wrap
}

.opn .btn-pri {
    display: inline-block;
    padding: 12px 24px;
    font-size: 14px;
    letter-spacing: .02em;
    border-radius: 6px;
    background: linear-gradient(67deg, #459352 0%, #89B893 100%);
    color: #0e1510;
    font-weight: 700;
    text-decoration: none;
    border: none;
    cursor: pointer;
    transition: padding .15s ease-out, box-shadow .15s ease-out;
    box-shadow: 0 6px 25px -1px #45935214;
    position: relative;
    z-index: 1
}

.opn .btn-pri:hover {
    padding: 12px 32px;
    box-shadow: 0 10px 40px -1px #4593521a
}

.opn .btn-pri:focus {
    outline: 2px solid #89B893;
    outline-offset: 3px
}

.opn .btn-sec {
    display: inline-block;
    padding: 12px 24px;
    font-size: 14px;
    letter-spacing: .02em;
    border-radius: 6px;
    background: transparent;
    color: #89B893;
    border: 1px solid #459352;
    text-decoration: none;
    cursor: pointer;
    transition: padding .18s ease-out, background .18s ease-out
}

.opn .btn-sec:hover {
    padding: 12px 32px;
    background: #45935214
}

.opn .btn-sec:focus {
    outline: 2px solid #89B893;
    outline-offset: 3px
}

.opn .title-blk__img-wrap {
    position: relative;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 10px 40px -1px #4593521a
}

.opn .title-blk__img-wrap img {
    width: 100%;
    height: 480px;
    object-fit: cover;
    display: block;
    border-radius: 10px;
    transition: transform .2s ease-out, brightness .2s ease-out
}

.opn .title-blk__img-wrap:hover img {
    transform: scale(1.03);
    filter: brightness(1.07)
}

.opn .title-blk__img-grad {
    position: absolute;
    inset: 0;
    background: linear-gradient(to left, #111714d1 0%, #11171426 55%, transparent 100%);
    border-radius: 10px;
    pointer-events: none
}

.opn .geo-shape {
    position: absolute;
    border-radius: 0;
    pointer-events: none
}

.opn .geo-shape.gs1 {
    width: 90px;
    height: 90px;
    border: 1px solid #4593522e;
    top: 24px;
    right: 24px;
    transform: rotate(18deg)
}

.opn .geo-shape.gs2 {
    width: 44px;
    height: 44px;
    border: 1px solid #89b89324;
    bottom: 48px;
    left: 12px;
    transform: rotate(38deg)
}

.opn .recog-blk {
    position: relative;
    background: #151d17;
    padding: 96px 24px;
    z-index: 1
}

.opn .recog-blk__inner {
    max-width: 1100px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: start
}

.opn .recog-blk__img-col {
    position: relative;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 10px 40px -1px #4593521a
}

.opn .recog-blk__img-col img {
    width: 100%;
    height: 420px;
    object-fit: cover;
    display: block;
    border-radius: 10px;
    transition: transform .2s ease-out
}

.opn .recog-blk__img-col:hover img {
    transform: scale(1.04)
}

.opn .recog-blk__dashed {
    border: 1.5px dashed #45935259;
    border-radius: 10px;
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 24px
}

.opn .recog-blk__h2 {
    font-size: 37px;
    line-height: 1.2;
    letter-spacing: .01em;
    margin: 0
}

.opn .recog-blk__h2 .w1 {
    color: #459352
}

.opn .recog-blk__h2 .w2 {
    color: #E9EEEA
}

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

.opn .profile-item {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 12px;
    border-radius: 6px;
    background: #4593520f;
    transition: background .15s ease-out;
    position: relative;
    overflow: hidden
}

.opn .profile-item::before {
    content: "";
    position: absolute;
    inset: 0;
    background: #45935217;
    border-radius: 6px;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .18s ease-out
}

.opn .profile-item:hover::before {
    transform: scaleX(1)
}

.opn .profile-item__name {
    font-size: 14px;
    font-weight: 700;
    color: #89B893;
    letter-spacing: .02em;
    position: relative;
    z-index: 1
}

.opn .profile-item__desc {
    font-size: 14px;
    line-height: 1.7;
    color: #a8b8aa;
    margin: 0;
    position: relative;
    z-index: 1;
    letter-spacing: .01em
}

.opn .appr-blk {
    position: relative;
    padding: 96px 24px;
    z-index: 1;
    background: #111714
}

.opn .appr-blk__bg {
    position: absolute;
    inset: 0;
    background-image: url(./site_images/pic_0007x.jpg);
    background-size: cover;
    background-position: center;
    opacity: .09;
    pointer-events: none
}

.opn .appr-blk__inner {
    max-width: 1100px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: 48px
}

.opn .appr-blk__top {
    display: flex;
    flex-direction: row;
    gap: 48px;
    align-items: flex-end
}

.opn .appr-blk__h2 {
    font-size: 37px;
    line-height: 1.2;
    letter-spacing: .01em;
    margin: 0;
    flex: 1
}

.opn .appr-blk__h2 .w1 {
    color: #459352
}

.opn .appr-blk__h2 .w2 {
    color: #E9EEEA
}

.opn .appr-blk__sub {
    font-size: 16px;
    line-height: 1.7;
    color: #a8b8aa;
    flex: 1;
    margin: 0;
    letter-spacing: .01em
}

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

.opn .appr-item {
    background: #181f1a;
    border-radius: 10px;
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    box-shadow: 0 3px 5px -1px #45935212;
    transition: box-shadow .15s ease-out, transform .15s ease-out;
    position: relative;
    overflow: hidden
}

.opn .appr-item:hover {
    box-shadow: 0 10px 40px -1px #4593521a;
    transform: translateY(-3px)
}

.opn .appr-item__num {
    font-size: 37px;
    font-weight: 700;
    color: #4593522e;
    line-height: 1.2;
    letter-spacing: .01em
}

.opn .appr-item__h {
    font-size: 16px;
    font-weight: 700;
    color: #E9EEEA;
    margin: 0;
    letter-spacing: .01em;
    line-height: 1.2
}

.opn .appr-item__p {
    font-size: 14px;
    line-height: 1.7;
    color: #a8b8aa;
    margin: 0;
    letter-spacing: .01em
}

.opn .appr-item__p .lead {
    color: #459352;
    font-weight: 700;
    text-transform: uppercase
}

.opn .hesit-blk {
    position: relative;
    background: #132015;
    padding: 96px 24px;
    z-index: 1
}

.opn .hesit-blk__inner {
    max-width: 1100px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 5fr 4fr;
    gap: 48px;
    align-items: center
}

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

.opn .hesit-blk__h2 {
    font-size: 37px;
    line-height: 1.2;
    letter-spacing: .01em;
    margin: 0
}

.opn .hesit-blk__h2 .w1 {
    color: #459352
}

.opn .hesit-blk__h2 .w2 {
    color: #E9EEEA
}

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

.opn .hesit-blk__p {
    font-size: 16px;
    line-height: 1.7;
    color: #a8b8aa;
    margin: 0;
    letter-spacing: .01em
}

.opn .hesit-blk__p .lead {
    color: #459352;
    font-weight: 700;
    text-transform: uppercase
}

.opn .hesit-blk__p strong {
    color: #E9EEEA
}

.opn .hesit-blk__aside {
    border: 1.5px dashed #45935252;
    border-radius: 10px;
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 24px
}

.opn .hesit-blk__q {
    font-size: 20px;
    line-height: 1.7;
    color: #89B893;
    margin: 0;
    letter-spacing: .01em;
    font-style: italic
}

.opn .hesit-blk__q-attr {
    font-size: 13px;
    color: #5a7a5f;
    letter-spacing: .02em
}

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

.opn .hesit-blk__list li {
    font-size: 14px;
    line-height: 1.7;
    color: #a8b8aa;
    display: flex;
    flex-direction: row;
    gap: 8px;
    align-items: flex-start;
    letter-spacing: .01em
}

.opn .hesit-blk__list li .li-icon {
    color: #459352;
    flex-shrink: 0;
    margin-top: 4px;
    font-size: 14px
}

.opn .dist-blk {
    position: relative;
    background: #111714;
    padding: 96px 24px;
    z-index: 1
}

.opn .dist-blk__inner {
    max-width: 1100px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 48px
}

.opn .dist-blk__head {
    display: flex;
    flex-direction: column;
    gap: 12px;
    max-width: 620px
}

.opn .dist-blk__h2 {
    font-size: 37px;
    line-height: 1.2;
    letter-spacing: .01em;
    margin: 0
}

.opn .dist-blk__h2 .w1 {
    color: #459352
}

.opn .dist-blk__h2 .w2 {
    color: #E9EEEA
}

.opn .dist-blk__sub {
    font-size: 16px;
    line-height: 1.7;
    color: #a8b8aa;
    margin: 0;
    letter-spacing: .01em
}

.opn .dist-blk__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px
}

.opn .dist-item {
    background: #151d17;
    border-radius: 10px;
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    box-shadow: 0 6px 25px -1px #45935214;
    transition: box-shadow .2s ease, background .18s ease-out;
    position: relative;
    overflow: hidden
}

.opn .dist-item::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(67deg, #45935212 0%, transparent 100%);
    opacity: 0;
    transition: opacity .18s ease-out;
    border-radius: 10px;
    pointer-events: none
}

.opn .dist-item:hover::after {
    opacity: 1
}

.opn .dist-item:hover {
    box-shadow: 0 10px 40px -1px #4593521a
}

.opn .dist-item__icon {
    width: 40px;
    height: 40px;
    border-radius: 6px;
    background: #45935221;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0
}

.opn .dist-item__icon i {
    font-size: 20px;
    color: #459352
}

.opn .dist-item__h {
    font-size: 16px;
    font-weight: 700;
    color: #E9EEEA;
    margin: 0;
    letter-spacing: .01em;
    line-height: 1.2
}

.opn .dist-item__p {
    font-size: 14px;
    line-height: 1.7;
    color: #a8b8aa;
    margin: 0;
    letter-spacing: .01em
}

.opn .dist-item__p .lead {
    color: #459352;
    font-weight: 700;
    text-transform: uppercase
}

.opn .dist-blk__bottom {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 24px;
    padding: 24px;
    border-radius: 10px;
    background: #45935212;
    border: 1px solid #4593522e
}

.opn .dist-blk__bottom-txt {
    flex: 1;
    font-size: 16px;
    line-height: 1.7;
    color: #a8b8aa;
    margin: 0;
    letter-spacing: .01em
}

.opn .dist-blk__bottom-txt strong {
    color: #E9EEEA
}

@media (max-width: 1024px) {
    .opn .title-blk {
        grid-template-columns: 1fr;
        padding: 48px 24px;
        gap: 24px
    }

    .opn .title-blk__h1 {
        font-size: 37px
    }

    .opn .title-blk__img-wrap img {
        height: 320px
    }

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

    .opn .recog-blk__img-col img {
        height: 280px
    }

    .opn .appr-blk__items {
        grid-template-columns: 1fr 1fr
    }

    .opn .appr-blk__top {
        flex-direction: column;
        gap: 12px
    }

    .opn .hesit-blk__inner {
        grid-template-columns: 1fr
    }

    .opn .dist-blk__grid {
        grid-template-columns: 1fr
    }

    .opn .dist-blk__bottom {
        flex-direction: column;
        gap: 12px
    }
}

@media (max-width: 640px) {
    .opn .title-blk {
        padding: 48px 12px
    }

    .opn .title-blk__h1 {
        font-size: 27px
    }

    .opn .recog-blk {
        padding: 48px 12px
    }

    .opn .appr-blk {
        padding: 48px 12px
    }

    .opn .appr-blk__items {
        grid-template-columns: 1fr
    }

    .opn .hesit-blk {
        padding: 48px 12px
    }

    .opn .dist-blk {
        padding: 48px 12px
    }

    .opn .recog-blk__h2 {
        font-size: 27px
    }

    .opn .appr-blk__h2 {
        font-size: 27px
    }

    .opn .hesit-blk__h2 {
        font-size: 27px
    }

    .opn .dist-blk__h2 {
        font-size: 27px
    }
}

@media (max-width: 360px) {
    .opn .title-blk__h1 {
        font-size: 20px
    }

    .opn .btn-pri,
    .opn .btn-sec {
        font-size: 13px;
        padding: 8px 16px
    }
}

.abt-us {
    background: #111613;
    overflow-x: clip;
    position: relative
}

.abt-us .grid-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    overflow: hidden;
    z-index: 0
}

.abt-us .grid-bg svg {
    width: 100%;
    height: 100%;
    opacity: .07
}

.abt-us .grid-line-h {
    animation: grid-pulse-h 4s ease-in-out infinite
}

.abt-us .grid-line-v {
    animation: grid-pulse-v 5s ease-in-out infinite
}

@keyframes grid-pulse-h {

    0%,
    100% {
        opacity: .4
    }

    50% {
        opacity: 1
    }
}

@keyframes grid-pulse-v {

    0%,
    100% {
        opacity: .3
    }

    60% {
        opacity: .9
    }
}

.abt-us .pg-wrap {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 24px;
    position: relative;
    z-index: 1
}

.abt-us .intro-blk {
    padding: 96px 0 48px;
    position: relative
}

.abt-us .intro-blk .dot-path {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-bottom: 24px
}

.abt-us .intro-blk .dot-path .d-item {
    width: 6px;
    height: 6px;
    border-radius: 0;
    background: #459352;
    opacity: .4;
    transform: rotate(45deg);
    transition: opacity .15s ease-out
}

.abt-us .intro-blk .dot-path .d-item.mid {
    width: 10px;
    height: 10px;
    opacity: 1;
    background: #89B893
}

.abt-us .intro-blk .dot-path .d-item.near {
    opacity: .7
}

.abt-us .intro-blk .img-frame {
    width: 220px;
    height: 220px;
    border-radius: 10px;
    overflow: hidden;
    margin: 0 auto 24px;
    position: relative;
    box-shadow: 0 10px 40px -1px #4593521a
}

.abt-us .intro-blk .img-frame::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(67deg, #4593522e 0%, transparent 60%);
    z-index: 1;
    pointer-events: none
}

.abt-us .intro-blk .img-frame img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    filter: drop-shadow(0 6px 25px #45935226)
}

.abt-us .intro-blk .glow-ring {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 260px;
    height: 260px;
    border-radius: 10px;
    box-shadow: 0 0 60px 10px #89b8931f inset 0 3px 12px #45935214;
    pointer-events: none;
    z-index: 0
}

.abt-us .intro-blk .img-wrap {
    position: relative;
    width: 220px;
    margin: 0 auto 24px
}

.abt-us .intro-blk .txt-center {
    text-align: center;
    max-width: 640px;
    margin: 0 auto
}

.abt-us .intro-blk .lbl-tag {
    display: inline-block;
    font-size: 13px;
    letter-spacing: .02em;
    color: #89B893;
    background: #4593521f;
    border-radius: 6px;
    padding: 4px 12px;
    margin-bottom: 12px;
    box-shadow: inset 0 3px 5px -1px #45935212
}

.abt-us .intro-blk .h-main {
    font-size: 52px;
    line-height: 1.2;
    letter-spacing: .01em;
    color: #E9EEEA;
    margin: 0 0 24px
}

.abt-us .intro-blk .h-main span {
    color: #459352
}

.abt-us .intro-blk .lead-txt {
    font-size: 16px;
    line-height: 1.7;
    letter-spacing: .01em;
    color: #9aab9e
}

.abt-us .divider-a {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 24px;
    position: relative;
    z-index: 1
}

.abt-us .divider-a .d-line {
    width: 120px;
    height: 2px;
    background: linear-gradient(67deg, #459352, transparent);
    border-radius: 0
}

.abt-us .divider-a .d-line.right {
    background: linear-gradient(247deg, #459352, transparent)
}

.abt-us .divider-a .d-center {
    width: 8px;
    height: 8px;
    background: transparent
}

.abt-us .story-blk {
    padding: 96px 0;
    background: #141a15;
    position: relative
}

.abt-us .story-blk::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(67deg, transparent 0%, #459352 40%, #89B893 60%, transparent 100%);
    pointer-events: none
}

.abt-us .story-blk .zigzag-top {
    position: absolute;
    top: -1px;
    left: 0;
    right: 0;
    overflow: hidden;
    height: 24px;
    pointer-events: none
}

.abt-us .story-blk .zigzag-top svg {
    display: block;
    width: 100%
}

.abt-us .story-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: start
}

.abt-us .story-left {
    position: relative
}

.abt-us .story-left .img-side {
    width: 100%;
    height: 380px;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 10px 40px -1px #4593521a;
    position: relative
}

.abt-us .story-left .img-side img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .2s ease-out
}

.abt-us .story-left .img-side:hover img {
    transform: scale(1.03)
}

.abt-us .story-left .img-side::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(67deg, #45935226 0%, transparent 70%);
    pointer-events: none
}

.abt-us .story-left .stat-strip {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-top: 24px
}

.abt-us .story-left .stat-card {
    background: #1a2219;
    border-radius: 10px;
    padding: 24px;
    box-shadow: 0 6px 25px -1px #45935214 inset 0 3px 5px -1px #45935212;
    transition: box-shadow .15s ease-out
}

.abt-us .story-left .stat-card:hover {
    box-shadow: 0 10px 40px -1px #4593521a inset 0 3px 5px -1px #45935212
}

.abt-us .story-left .stat-card .s-num {
    font-size: 37px;
    line-height: 1.2;
    letter-spacing: .01em;
    color: #459352;
    display: block
}

.abt-us .story-left .stat-card .s-desc {
    font-size: 13px;
    line-height: 1.7;
    letter-spacing: .02em;
    color: #7a8f7d;
    margin-top: 4px
}

.abt-us .story-right .sec-label {
    font-size: 13px;
    letter-spacing: .02em;
    color: #89B893;
    text-transform: uppercase;
    margin-bottom: 12px;
    display: block
}

.abt-us .story-right .h-sec {
    font-size: 37px;
    line-height: 1.2;
    letter-spacing: .01em;
    color: #E9EEEA;
    margin: 0 0 24px
}

.abt-us .story-right .h-sec span {
    color: #459352
}

.abt-us .story-right .para-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 24px
}

.abt-us .story-right .para-list li {
    display: flex;
    flex-direction: row;
    gap: 12px;
    align-items: flex-start
}

.abt-us .story-right .para-list li .p-num {
    font-size: 13px;
    color: #459352;
    font-weight: 700;
    letter-spacing: .02em;
    min-width: 24px;
    padding-top: 4px
}

.abt-us .story-right .para-list li .p-body {
    font-size: 14px;
    line-height: 1.7;
    letter-spacing: .01em;
    color: #9aab9e
}

.abt-us .story-right .para-list li .p-body strong {
    color: #459352;
    font-weight: 700
}

.abt-us .divider-b {
    height: 2px;
    background: linear-gradient(67deg, transparent 0%, #1e2e20 40%, transparent 100%);
    position: relative;
    z-index: 1
}

.abt-us .team-blk {
    padding: 96px 0;
    background: #111613;
    position: relative
}

.abt-us .team-blk .zigzag-bot {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    overflow: hidden;
    height: 24px;
    pointer-events: none
}

.abt-us .team-blk .zigzag-bot svg {
    display: block;
    width: 100%
}

.abt-us .team-top {
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 48px;
    gap: 24px
}

.abt-us .team-top .ht-left .sec-label {
    font-size: 13px;
    letter-spacing: .02em;
    color: #89B893;
    text-transform: uppercase;
    margin-bottom: 12px;
    display: block
}

.abt-us .team-top .ht-left .h-sec {
    font-size: 37px;
    line-height: 1.2;
    letter-spacing: .01em;
    color: #E9EEEA;
    margin: 0
}

.abt-us .team-top .ht-left .h-sec span {
    color: #459352
}

.abt-us .team-top .ht-right {
    max-width: 340px;
    font-size: 14px;
    line-height: 1.7;
    letter-spacing: .01em;
    color: #7a8f7d
}

.abt-us .team-dense {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    grid-template-rows: auto auto;
    gap: 12px
}

.abt-us .tm-card {
    background: #141a15;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 6px 25px -1px #45935214 inset 0 3px 5px -1px #45935212;
    transition: box-shadow .18s ease-out, transform .18s ease-out;
    cursor: default
}

.abt-us .tm-card:hover {
    box-shadow: 0 10px 40px -1px #4593521a inset 0 3px 5px -1px #45935212;
    transform: translateY(-2px)
}

.abt-us .tm-card.anchor {
    grid-row: 1 / 3;
    grid-column: 1 / 2;
    display: flex;
    flex-direction: column
}

.abt-us .tm-card.anchor .tm-img-wrap {
    height: 280px;
    overflow: hidden;
    position: relative
}

.abt-us .tm-card.anchor .tm-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .2s ease-out
}

.abt-us .tm-card.anchor:hover .tm-img-wrap img {
    transform: scale(1.04)
}

.abt-us .tm-card.anchor .tm-img-wrap::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 80px;
    background: linear-gradient(to top, #141a15, transparent);
    pointer-events: none
}

.abt-us .tm-card.anchor .tm-body {
    padding: 24px;
    flex: 1
}

.abt-us .tm-card.compact {
    padding: 24px;
    display: flex;
    flex-direction: column;
    justify-content: space-between
}

.abt-us .tm-card .tm-name {
    font-size: 20px;
    line-height: 1.2;
    letter-spacing: .01em;
    color: #E9EEEA;
    margin: 0 0 8px
}

.abt-us .tm-card .tm-role {
    font-size: 13px;
    letter-spacing: .02em;
    color: #459352;
    margin-bottom: 12px;
    display: block
}

.abt-us .tm-card .tm-bio {
    font-size: 13px;
    line-height: 1.7;
    letter-spacing: .01em;
    color: #7a8f7d
}

.abt-us .tm-card.compact .tm-icon-row {
    display: flex;
    flex-direction: row;
    gap: 8px;
    margin-top: 12px;
    align-items: center
}

.abt-us .tm-card.compact .tm-icon-row .ic-dot {
    width: 6px;
    height: 6px;
    border-radius: 0;
    background: #459352;
    transform: rotate(45deg);
    opacity: .7
}

.abt-us .tm-card .tm-quote {
    font-size: 14px;
    line-height: 1.7;
    letter-spacing: .01em;
    color: #89B893;
    font-style: italic;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid #45935226
}

.abt-us .tm-card.anchor .tm-body .tm-name {
    font-size: 27px
}

.abt-us .contact-strip {
    margin-top: 48px;
    background: linear-gradient(67deg, #1a2219 0%, #141a15 100%);
    border-radius: 10px;
    padding: 48px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    box-shadow: 0 10px 40px -1px #4593521a inset 0 3px 5px -1px #45935212
}

.abt-us .contact-strip .cs-left .cs-label {
    font-size: 13px;
    letter-spacing: .02em;
    color: #89B893;
    text-transform: uppercase;
    margin-bottom: 8px;
    display: block
}

.abt-us .contact-strip .cs-left .cs-head {
    font-size: 27px;
    line-height: 1.2;
    letter-spacing: .01em;
    color: #E9EEEA;
    margin: 0
}

.abt-us .contact-strip .cs-left .cs-head span {
    color: #459352
}

.abt-us .contact-strip .cs-right {
    display: flex;
    flex-direction: row;
    gap: 12px;
    flex-wrap: wrap;
    align-items: center
}

.abt-us .contact-strip .cs-right .c-item {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    background: #4593521a;
    border-radius: 6px;
    padding: 12px 24px;
    text-decoration: none;
    color: #E9EEEA;
    font-size: 14px;
    letter-spacing: .01em;
    transition: background .15s ease-out, color .15s ease-out;
    box-shadow: 0 3px 5px -1px #45935212
}

.abt-us .contact-strip .cs-right .c-item:hover {
    background: #45935233;
    color: #89B893
}

.abt-us .contact-strip .cs-right .c-item:focus-visible {
    outline: 2px solid #459352 !important;
    outline-offset: 2px !important
}

.abt-us .contact-strip .cs-right .c-item .c-icon {
    color: #459352;
    font-size: 16px
}

@media (max-width: 1024px) {
    .abt-us .story-grid {
        grid-template-columns: 1fr;
        gap: 48px
    }

    .abt-us .story-left .img-side {
        height: 280px
    }

    .abt-us .team-dense {
        grid-template-columns: 1fr 1fr
    }

    .abt-us .tm-card.anchor {
        grid-row: auto;
        grid-column: 1 / 3
    }

    .abt-us .tm-card.anchor .tm-img-wrap {
        height: 220px
    }

    .abt-us .contact-strip {
        flex-direction: column;
        align-items: flex-start
    }
}

@media (max-width: 640px) {
    .abt-us .intro-blk .h-main {
        font-size: 37px
    }

    .abt-us .story-right .h-sec,
    .abt-us .team-top .ht-left .h-sec {
        font-size: 27px
    }

    .abt-us .team-dense {
        grid-template-columns: 1fr
    }

    .abt-us .tm-card.anchor {
        grid-column: auto
    }

    .abt-us .team-top {
        flex-direction: column;
        align-items: flex-start
    }

    .abt-us .team-top .ht-right {
        max-width: 100%
    }

    .abt-us .contact-strip {
        padding: 24px
    }

    .abt-us .story-left .stat-strip {
        grid-template-columns: 1fr
    }

    .abt-us .intro-blk {
        padding: 48px 0 24px
    }

    .abt-us .story-blk,
    .abt-us .team-blk {
        padding: 48px 0
    }
}

@media (max-width: 360px) {
    .abt-us .intro-blk .h-main {
        font-size: 27px
    }

    .abt-us .contact-strip .cs-right {
        flex-direction: column;
        width: 100%
    }

    .abt-us .contact-strip .cs-right .c-item {
        width: 100%;
        justify-content: center
    }
}

.ctus {
    background: #111613;
    color: #E9EEEA;
    overflow-x: clip
}

.ctus .reveal-1 {
    animation: slideUp .5s ease-out .05s both
}

.ctus .reveal-2 {
    animation: slideUp .55s ease-out .15s both
}

.ctus .reveal-3 {
    animation: slideUp .6s ease-out .25s both
}

@keyframes slideUp {
    from {
        opacity: 0;
        transform: translateY(18px)
    }

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

.ctus .pg-band {
    height: 4px;
    background: linear-gradient(67deg, #459352, #89B893);
    width: 100%
}

.ctus .pg-top {
    padding: 96px 24px 48px;
    max-width: 1100px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: end
}

.ctus .pg-top__label {
    font-size: 13px;
    letter-spacing: .12em;
    color: #89B893;
    text-transform: uppercase;
    margin-bottom: 12px;
    display: block
}

.ctus .pg-top__h1 {
    font-size: 52px;
    line-height: 1.2;
    letter-spacing: .01em;
    margin: 0 0 24px;
    font-weight: 700
}

.ctus .pg-top__h1 span {
    color: #459352
}

.ctus .pg-top__desc {
    font-size: 16px;
    line-height: 1.7;
    color: #b8c9bb;
    max-width: 420px;
    margin: 0
}

.ctus .pg-top__nums {
    display: flex;
    flex-direction: column;
    gap: 24px;
    align-items: flex-end
}

.ctus .num-item {
    text-align: right;
    border-right: 2px solid #459352;
    padding-right: 24px
}

.ctus .num-item__val {
    font-size: 37px;
    font-weight: 700;
    line-height: 1.2;
    color: #E9EEEA;
    letter-spacing: .01em
}

.ctus .num-item__lbl {
    font-size: 13px;
    color: #89B893;
    letter-spacing: .02em;
    margin-top: 4px
}

.ctus .shape-dec {
    position: absolute;
    pointer-events: none
}

.ctus .pg-top-wrap {
    position: relative;
    background: #0e1210
}

.ctus .dec-tri {
    width: 0;
    height: 0;
    border-style: solid;
    position: absolute;
    pointer-events: none
}

.ctus .dec-tri--a {
    border-width: 0 0 80px 80px;
    border-color: transparent transparent #1a2b1d;
    top: 48px;
    right: 120px;
    opacity: .5
}

.ctus .dec-tri--b {
    border-width: 40px 40px 0 0;
    border-color: #459352 transparent transparent;
    bottom: 24px;
    right: 48px;
    opacity: .18
}

.ctus .band-div {
    height: 6px;
    background: linear-gradient(67deg, #1e3322, #2a4a2f)
}

.ctus .contact-grid {
    max-width: 1100px;
    margin: 0 auto;
    padding: 96px 24px;
    display: grid;
    grid-template-columns: 1fr 1.6fr;
    gap: 48px;
    align-items: start
}

.ctus .info-col {
    display: flex;
    flex-direction: column;
    gap: 24px
}

.ctus .info-col__eyebrow {
    font-size: 13px;
    letter-spacing: .1em;
    color: #459352;
    text-transform: uppercase
}

.ctus .info-col__h2 {
    font-size: 27px;
    line-height: 1.2;
    letter-spacing: .01em;
    margin: 0
}

.ctus .info-col__h2 span {
    color: #89B893
}

.ctus .info-col__body {
    font-size: 14px;
    line-height: 1.7;
    color: #9db5a0;
    margin: 0
}

.ctus .info-col__body span {
    color: #E9EEEA;
    text-transform: uppercase;
    font-size: 13px;
    letter-spacing: .01em
}

.ctus .contact-cards {
    display: flex;
    flex-direction: column;
    gap: 12px
}

.ctus .c-card {
    background: #141a15;
    border: 1px solid #1f2e21;
    border-radius: 6px;
    padding: 24px;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 12px;
    box-shadow: 0 3px 5px -1px #45935212;
    transition: border-color .18s ease-out, box-shadow .18s ease-out
}

.ctus .c-card:hover {
    border-color: #459352;
    box-shadow: 0 6px 25px -1px #45935214
}

.ctus .c-card__icon {
    width: 40px;
    height: 40px;
    background: linear-gradient(67deg, #1e3322, #253d28);
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0
}

.ctus .c-card__icon .pe-7s {
    font-size: 20px;
    color: #89B893
}

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

.ctus .c-card__type {
    font-size: 13px;
    color: #5a7a5e;
    letter-spacing: .02em
}

.ctus .c-card__val {
    font-size: 14px;
    color: #E9EEEA;
    letter-spacing: .01em
}

.ctus .c-card__val a {
    color: #89B893;
    text-decoration: none;
    transition: color .15s ease-out
}

.ctus .c-card__val a:hover {
    color: #E9EEEA
}

.ctus .form-wrap {
    background: #141a15;
    border: 1px solid #1f2e21;
    border-radius: 10px;
    padding: 48px;
    box-shadow: 0 10px 40px -1px #4593521a
}

.ctus .form-wrap__h3 {
    font-size: 20px;
    line-height: 1.2;
    letter-spacing: .01em;
    margin: 0 0 8px
}

.ctus .form-wrap__h3 span {
    color: #459352
}

.ctus .form-wrap__sub {
    font-size: 14px;
    color: #7a9b7e;
    line-height: 1.7;
    margin: 0 0 24px
}

.ctus .f-contact {
    display: flex;
    flex-direction: column;
    gap: 12px
}

.ctus .f-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px
}

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

.ctus .f-field.full {
    grid-column: 1 / -1
}

.ctus .f-field label {
    font-size: 13px;
    color: #7a9b7e;
    letter-spacing: .02em
}

.ctus .f-field input,
.ctus .f-field textarea,
.ctus .f-field select {
    background: #0e1210;
    border: 1px solid #253328;
    border-radius: 6px;
    color: #E9EEEA;
    font-size: 14px;
    padding: 12px;
    outline: none;
    transition: border-color .15s ease-out, box-shadow .2s ease;
    letter-spacing: .01em;
    appearance: none;
    -webkit-appearance: none
}

.ctus .f-field select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2389B893' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 36px;
    cursor: pointer
}

.ctus .f-field select option {
    background: #141a15;
    color: #E9EEEA
}

.ctus .f-field input::placeholder,
.ctus .f-field textarea::placeholder {
    color: #3d5540
}

.ctus .f-field input:focus,
.ctus .f-field textarea:focus,
.ctus .f-field select:focus {
    border-color: #459352;
    box-shadow: 0 0 0 3px #4593521f
}

.ctus .f-field textarea {
    resize: vertical;
    min-height: 120px;
    line-height: 1.7
}

.ctus .f-privacy {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 12px;
    padding: 12px;
    background: #0e1210;
    border-radius: 6px;
    border: 1px solid #1a2b1d
}

.ctus .f-privacy input[type="checkbox"] {
    width: 18px;
    height: 18px;
    min-width: 18px;
    accent-color: #459352;
    cursor: pointer;
    margin-top: 2px
}

.ctus .f-privacy__txt {
    font-size: 13px;
    color: #7a9b7e;
    line-height: 1.7
}

.ctus .f-privacy__txt a {
    color: #89B893;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color .15s ease-out
}

.ctus .f-privacy__txt a:hover {
    color: #E9EEEA
}

.ctus .f-submit-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 12px
}

.ctus .btn-send {
    background: linear-gradient(67deg, #459352, #89B893);
    color: #0e1210;
    border: none;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .03em;
    padding: 12px 48px;
    cursor: pointer;
    transition: padding .18s ease-out, box-shadow .18s ease-out, opacity .12s ease;
    box-shadow: 0 3px 5px -1px #45935212
}

.ctus .btn-send:hover {
    padding: 12px 60px;
    box-shadow: 0 6px 25px -1px #45935214
}

.ctus .btn-send:active {
    opacity: .85
}

.ctus .btn-send:focus-visible {
    outline: 2px solid #89B893;
    outline-offset: 3px
}

.ctus .compare-sec {
    background: #0e1210;
    position: relative
}

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

.ctus .compare-inner {
    max-width: 1100px;
    margin: 0 auto;
    padding: 96px 24px;
    position: relative
}

.ctus .compare-top {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 48px;
    max-width: 560px
}

.ctus .compare-top__tag {
    font-size: 13px;
    letter-spacing: .1em;
    color: #459352;
    text-transform: uppercase
}

.ctus .compare-top__h2 {
    font-size: 37px;
    line-height: 1.2;
    letter-spacing: .01em;
    margin: 0
}

.ctus .compare-top__h2 span {
    color: #89B893
}

.ctus .compare-top__p {
    font-size: 14px;
    color: #7a9b7e;
    line-height: 1.7;
    margin: 0
}

.ctus .cmp-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px
}

.ctus .cmp-card {
    border-radius: 10px;
    padding: 48px;
    display: flex;
    flex-direction: column;
    gap: 24px
}

.ctus .cmp-card--a {
    background: #141a15;
    border: 1px solid #1f2e21;
    box-shadow: 0 6px 25px -1px #45935214
}

.ctus .cmp-card--b {
    background: linear-gradient(67deg, #1a2f1d, #1e3a22);
    border: 1px solid #2d4a30;
    box-shadow: 0 10px 40px -1px #4593521a
}

.ctus .cmp-card__badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    letter-spacing: .06em;
    text-transform: uppercase;
    padding: 4px 12px;
    border-radius: 6px;
    width: fit-content
}

.ctus .cmp-card__badge--std {
    background: #1f2e21;
    color: #7a9b7e
}

.ctus .cmp-card__badge--prem {
    background: #4593522e;
    color: #89B893
}

.ctus .cmp-card__h4 {
    font-size: 20px;
    line-height: 1.2;
    letter-spacing: .01em;
    margin: 0
}

.ctus .cmp-card--b .cmp-card__h4 {
    color: #E9EEEA
}

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

.ctus .cmp-list li {
    font-size: 14px;
    color: #9db5a0;
    line-height: 1.7;
    padding-left: 20px;
    position: relative;
    letter-spacing: .01em
}

.ctus .cmp-list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 9px;
    width: 8px;
    height: 8px;
    border-radius: 0;
    background: #2d4a30
}

.ctus .cmp-card--b .cmp-list li {
    color: #c4d9c6
}

.ctus .cmp-card--b .cmp-list li::before {
    background: #459352
}

.ctus .cmp-card__note {
    font-size: 13px;
    color: #5a7a5e;
    line-height: 1.7;
    padding-top: 12px;
    border-top: 1px solid #1f2e21
}

.ctus .cmp-card--b .cmp-card__note {
    color: #7a9b7e;
    border-top-color: #2d4a30
}

.ctus .cmp-expand-row {
    margin-top: 24px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px
}

.ctus .exp-item {
    border-radius: 6px;
    background: #141a15;
    border: 1px solid #1f2e21;
    overflow: hidden
}

.ctus .exp-item__trigger {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    padding: 12px 24px;
    cursor: pointer;
    font-size: 14px;
    color: #9db5a0;
    letter-spacing: .01em;
    transition: color .15s ease-out, background .15s ease-out
}

.ctus .exp-item__trigger:hover {
    color: #E9EEEA;
    background: #1a2b1d
}

.ctus .exp-icon {
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0
}

.ctus .exp-icon svg {
    display: block
}

.ctus .exp-item__body {
    max-height: 0;
    overflow: hidden;
    transition: max-height .22s ease-out
}

.ctus .exp-item:hover .exp-item__body {
    max-height: 120px
}

.ctus .exp-item__body-inner {
    padding: 0 24px 12px;
    font-size: 13px;
    color: #7a9b7e;
    line-height: 1.7
}

.ctus .right-acc {
    position: absolute;
    right: 0;
    top: 96px;
    bottom: 96px;
    width: 3px;
    background: linear-gradient(180deg, transparent, #459352 40%, #89B893 70%, transparent);
    border-radius: 0;
    pointer-events: none
}

@media (max-width: 1024px) {
    .ctus .pg-top {
        grid-template-columns: 1fr;
        padding: 48px 24px;
        gap: 24px
    }

    .ctus .pg-top__nums {
        align-items: flex-start;
        flex-direction: row;
        flex-wrap: wrap
    }

    .ctus .num-item {
        text-align: left;
        border-right: none;
        border-left: 2px solid #459352;
        padding-right: 0;
        padding-left: 12px
    }

    .ctus .contact-grid {
        grid-template-columns: 1fr;
        gap: 48px
    }

    .ctus .cmp-grid {
        grid-template-columns: 1fr
    }

    .ctus .cmp-expand-row {
        grid-template-columns: 1fr
    }

    .ctus .right-acc {
        display: none
    }
}

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

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

    .ctus .f-row {
        grid-template-columns: 1fr
    }

    .ctus .compare-top__h2 {
        font-size: 27px
    }

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

    .ctus .f-submit-row {
        flex-direction: column;
        align-items: flex-start
    }
}

@media (max-width: 360px) {
    .ctus .pg-top {
        padding: 24px 12px
    }

    .ctus .contact-grid {
        padding: 48px 12px
    }

    .ctus .compare-inner {
        padding: 48px 12px
    }

    .ctus .pg-top__h1 {
        font-size: 27px
    }
}

.lp-prog {
    background: #111612;
    color: #d4dbd5;
    overflow-x: clip
}

.lp-prog .reveal-up {
    opacity: 0;
    transform: translateY(28px);
    animation: revealUp .5s ease-out forwards
}

.lp-prog .reveal-up:nth-child(1) {
    animation-delay: .05s
}

.lp-prog .reveal-up:nth-child(2) {
    animation-delay: .15s
}

.lp-prog .reveal-up:nth-child(3) {
    animation-delay: .25s
}

.lp-prog .reveal-up:nth-child(4) {
    animation-delay: .35s
}

.lp-prog .reveal-up:nth-child(5) {
    animation-delay: .45s
}

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

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

.lp-prog .pg-wrap.wide {
    max-width: 1100px
}

.lp-prog .ttl-blk {
    position: relative;
    padding: 96px 0 48px;
    background: linear-gradient(67deg, #0e1510 45%, #1a2b1c 100%)
}

.lp-prog .ttl-blk::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(67deg, #0e1510 40%, #1e3320 100%);
    z-index: 0
}

.lp-prog .ttl-blk__inner {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1fr 420px;
    gap: 48px;
    align-items: start
}

.lp-prog .ttl-blk__quote-mark {
    position: absolute;
    top: -24px;
    left: -12px;
    font-size: 220px;
    line-height: 1.2;
    color: #459352;
    opacity: .06;
    pointer-events: none;
    user-select: none;
    z-index: 0
}

.lp-prog .ttl-blk__text {
    position: relative;
    z-index: 1
}

.lp-prog .ttl-blk__label {
    display: inline-block;
    font-size: 13px;
    letter-spacing: .08em;
    color: #89B893;
    text-transform: uppercase;
    margin-bottom: 24px;
    padding: 4px 12px;
    border: 1px solid #4593524d;
    border-radius: 6px
}

.lp-prog .ttl-blk__h1 {
    font-size: 52px;
    line-height: 1.2;
    letter-spacing: .01em;
    margin-bottom: 24px;
    color: #e8ede9
}

.lp-prog .ttl-blk__h1 span {
    color: #459352
}

.lp-prog .ttl-blk__problem {
    font-size: 16px;
    line-height: 1.7;
    color: #8fa490;
    margin-bottom: 24px;
    max-width: 520px
}

.lp-prog .ttl-blk__solution {
    font-size: 16px;
    line-height: 1.7;
    color: #c2cfc3;
    max-width: 520px
}

.lp-prog .ttl-blk__solution strong {
    color: #89B893
}

.lp-prog .ttl-blk__img-col {
    position: relative
}

.lp-prog .ttl-blk__img-wrap {
    position: relative;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 10px 40px -1px #4593521a
}

.lp-prog .ttl-blk__img-wrap img {
    width: 100%;
    height: 360px;
    object-fit: cover;
    display: block
}

.lp-prog .ttl-blk__img-wrap::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 55%;
    background: linear-gradient(to top, #0e1510e0 0%, transparent 100%)
}

.lp-prog .ttl-blk__corners {
    position: absolute;
    top: -12px;
    right: -12px;
    width: 80px;
    height: 80px;
    pointer-events: none
}

.lp-prog .ttl-blk__corners span {
    position: absolute;
    border: 1px solid #45935240;
    border-radius: 0
}

.lp-prog .ttl-blk__corners span:nth-child(1) {
    inset: 0
}

.lp-prog .ttl-blk__corners span:nth-child(2) {
    inset: 8px
}

.lp-prog .ttl-blk__corners span:nth-child(3) {
    inset: 16px
}

.lp-prog .prog-struct {
    padding: 96px 0;
    background: #131a14;
    position: relative
}

.lp-prog .prog-struct::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: linear-gradient(#4593520a 1px, transparent 1px), linear-gradient(90deg, #4593520a 1px, transparent 1px);
    background-size: 40px 40px;
    pointer-events: none
}

.lp-prog .prog-struct__head {
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 48px;
    gap: 24px
}

.lp-prog .prog-struct__h2 {
    font-size: 37px;
    line-height: 1.2;
    letter-spacing: .01em;
    color: #e8ede9
}

.lp-prog .prog-struct__h2 span {
    color: #459352
}

.lp-prog .prog-struct__desc {
    font-size: 14px;
    line-height: 1.7;
    color: #7a8c7b;
    max-width: 320px;
    text-align: right
}

.lp-prog .prog-struct__grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap: 24px
}

.lp-prog .mod-card {
    background: #0e1510;
    border-radius: 10px;
    padding: 24px;
    box-shadow: 0 6px 25px -1px #45935214;
    position: relative;
    transition: box-shadow .18s ease-out, transform .18s ease-out;
    cursor: default
}

.lp-prog .mod-card:hover {
    box-shadow: 0 10px 40px -1px #45935224;
    transform: translateY(-3px)
}

.lp-prog .mod-card.featured {
    grid-row: span 2;
    display: flex;
    flex-direction: column
}

.lp-prog .mod-card__notch {
    position: absolute;
    left: 0;
    top: 24px;
    width: 4px;
    height: 40px;
    background: linear-gradient(67deg, #459352, #89B893);
    border-radius: 0 6px 6px 0
}

.lp-prog .mod-card__num {
    font-size: 13px;
    letter-spacing: .06em;
    color: #459352;
    margin-bottom: 12px;
    display: block
}

.lp-prog .mod-card__h4 {
    font-size: 20px;
    line-height: 1.2;
    color: #d4dbd5;
    margin-bottom: 12px;
    letter-spacing: .01em
}

.lp-prog .mod-card__h4 span {
    color: #89B893
}

.lp-prog .mod-card__body {
    font-size: 14px;
    line-height: 1.7;
    color: #7a8c7b;
    flex: 1
}

.lp-prog .mod-card__body p {
    margin-bottom: 8px
}

.lp-prog .mod-card__body p:last-child {
    margin-bottom: 0
}

.lp-prog .mod-card__topics {
    margin-top: 24px;
    display: flex;
    flex-direction: column;
    gap: 8px
}

.lp-prog .mod-card__topic {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: #8fa490
}

.lp-prog .mod-card__topic-dot {
    width: 6px;
    height: 6px;
    border-radius: 0;
    background: #459352;
    flex-shrink: 0;
    transform: rotate(45deg)
}

.lp-prog .icon-grid-blk {
    padding: 96px 0;
    background: #0e1510;
    position: relative
}

.lp-prog .icon-grid-blk__h2 {
    font-size: 37px;
    line-height: 1.2;
    letter-spacing: .01em;
    color: #e8ede9;
    margin-bottom: 8px
}

.lp-prog .icon-grid-blk__h2 span {
    color: #459352
}

.lp-prog .icon-grid-blk__sub {
    font-size: 14px;
    line-height: 1.7;
    color: #7a8c7b;
    margin-bottom: 48px;
    max-width: 560px
}

.lp-prog .icon-grid-blk__layout {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    gap: 0;
    position: relative
}

.lp-prog .icon-grid-blk__lines {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0
}

.lp-prog .ig-item {
    position: relative;
    z-index: 1;
    padding: 24px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    border: 1px solid #4593521a;
    transition: background .2s ease-out
}

.lp-prog .ig-item:hover {
    background: #4593520d
}

.lp-prog .ig-item__icon {
    width: 44px;
    height: 44px;
    background: #4593521f;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow: inset 0 2px 4px #45935214
}

.lp-prog .ig-item__icon .pe-7s {
    font-size: 22px;
    color: #89B893
}

.lp-prog .ig-item__h5 {
    font-size: 14px;
    line-height: 1.2;
    color: #c2cfc3;
    letter-spacing: .01em
}

.lp-prog .ig-item__desc {
    font-size: 13px;
    line-height: 1.7;
    color: #6b7d6c
}

.lp-prog .icon-grid-blk__connector {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, #45935233 20%, #45935233 80%, transparent);
    pointer-events: none;
    z-index: 0
}

.lp-prog .faq-blk {
    padding: 96px 0;
    background: #111612;
    position: relative
}

.lp-prog .faq-blk__layout {
    display: grid;
    grid-template-columns: 340px 1fr;
    gap: 48px;
    align-items: start
}

.lp-prog .faq-blk__aside {
    position: sticky;
    top: 24px
}

.lp-prog .faq-blk__h2 {
    font-size: 37px;
    line-height: 1.2;
    letter-spacing: .01em;
    color: #e8ede9;
    margin-bottom: 24px
}

.lp-prog .faq-blk__h2 span {
    color: #459352
}

.lp-prog .faq-blk__note {
    font-size: 14px;
    line-height: 1.7;
    color: #7a8c7b;
    margin-bottom: 24px
}

.lp-prog .faq-blk__contact {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 12px;
    padding: 16px;
    background: #0e1510;
    border-radius: 10px;
    border: 1px solid #45935226;
    text-decoration: none;
    transition: border-color .15s ease-out
}

.lp-prog .faq-blk__contact:hover {
    border-color: #45935266
}

.lp-prog .faq-blk__contact-icon {
    width: 36px;
    height: 36px;
    background: #45935226;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0
}

.lp-prog .faq-blk__contact-icon .pe-7s {
    font-size: 18px;
    color: #89B893
}

.lp-prog .faq-blk__contact-text {
    font-size: 13px;
    color: #89B893;
    letter-spacing: .01em
}

.lp-prog .faq-list {
    display: flex;
    flex-direction: column;
    gap: 4px
}

.lp-prog .faq-item {
    border-radius: 6px;
    overflow: hidden;
    background: #131a14;
    border: 1px solid #4593521a
}

.lp-prog .faq-item__btn {
    width: 100%;
    background: none;
    border: none;
    padding: 20px 24px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    cursor: pointer;
    text-align: left;
    transition: background .15s ease-out
}

.lp-prog .faq-item__btn:hover {
    background: #4593520f
}

.lp-prog .faq-item__q {
    font-size: 14px;
    line-height: 1.7;
    color: #c2cfc3;
    letter-spacing: .01em
}

.lp-prog .faq-item__arrow {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform .18s ease-out
}

.lp-prog .faq-item__arrow svg {
    width: 14px;
    height: 14px;
    fill: none;
    stroke: #459352;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round
}

.lp-prog .faq-item.open .faq-item__arrow {
    transform: rotate(180deg)
}

.lp-prog .faq-item__ans {
    display: none;
    padding: 0 24px 20px;
    font-size: 14px;
    line-height: 1.7;
    color: #7a8c7b
}

.lp-prog .faq-item.open .faq-item__ans {
    display: block
}

.lp-prog .faq-item__ans p {
    margin-bottom: 8px
}

.lp-prog .faq-item__ans p:last-child {
    margin-bottom: 0
}

.lp-prog .num-para {
    counter-reset: para-count
}

.lp-prog .num-para p {
    counter-increment: para-count;
    padding-left: 24px;
    position: relative;
    margin-bottom: 12px
}

.lp-prog .num-para p::before {
    content: counter(para-count);
    position: absolute;
    left: 0;
    top: 0;
    font-size: 13px;
    color: #459352;
    font-weight: 600;
    line-height: 1.7
}

.lp-prog .fw-accent::first-letter {
    color: #459352;
    text-transform: uppercase
}

@media (max-width: 1024px) {
    .lp-prog .ttl-blk__inner {
        grid-template-columns: 1fr;
        gap: 48px
    }

    .lp-prog .ttl-blk__h1 {
        font-size: 37px
    }

    .lp-prog .prog-struct__grid {
        grid-template-columns: 1fr 1fr
    }

    .lp-prog .mod-card.featured {
        grid-row: span 1
    }

    .lp-prog .icon-grid-blk__layout {
        grid-template-columns: 1fr 1fr
    }

    .lp-prog .faq-blk__layout {
        grid-template-columns: 1fr
    }

    .lp-prog .faq-blk__aside {
        position: static
    }

    .lp-prog .prog-struct__head {
        flex-direction: column;
        align-items: flex-start
    }

    .lp-prog .prog-struct__desc {
        text-align: left
    }
}

@media (max-width: 640px) {
    .lp-prog .ttl-blk {
        padding: 48px 0
    }

    .lp-prog .ttl-blk__h1 {
        font-size: 27px
    }

    .lp-prog .prog-struct__h2 {
        font-size: 27px
    }

    .lp-prog .icon-grid-blk__h2 {
        font-size: 27px
    }

    .lp-prog .faq-blk__h2 {
        font-size: 27px
    }

    .lp-prog .prog-struct__grid {
        grid-template-columns: 1fr
    }

    .lp-prog .icon-grid-blk__layout {
        grid-template-columns: 1fr 1fr
    }

    .lp-prog .prog-struct {
        padding: 48px 0
    }

    .lp-prog .icon-grid-blk {
        padding: 48px 0
    }

    .lp-prog .faq-blk {
        padding: 48px 0
    }
}

@media (max-width: 360px) {
    .lp-prog .icon-grid-blk__layout {
        grid-template-columns: 1fr
    }

    .lp-prog .pg-wrap {
        padding: 0 12px
    }
}

.succ-page {
    min-height: 60vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 96px 24px;
    background: #111814
}

.succ-page .succ-wrap {
    max-width: 1100px;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 48px
}

.succ-page .succ-icon {
    width: 72px;
    height: 72px;
    flex-shrink: 0
}

.succ-page .succ-card {
    background: #161d17;
    border-radius: 10px;
    padding: 48px;
    max-width: 560px;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 24px;
    box-shadow: 0 10px 40px -1px #4593521a
}

.succ-page .succ-card .succ-title {
    font-size: 37px;
    line-height: 1.2;
    letter-spacing: .01em;
    color: #E9EEEA;
    text-align: center;
    margin: 0
}

.succ-page .succ-card .succ-title span {
    color: #459352
}

.succ-page .succ-card .succ-msg {
    font-size: 16px;
    line-height: 1.7;
    letter-spacing: .01em;
    color: #9ab89e;
    text-align: center;
    margin: 0;
    max-width: 420px
}

.succ-page .succ-divider {
    width: 48px;
    height: 2px;
    background: linear-gradient(67deg, #459352, #89B893);
    border-radius: 0;
    flex-shrink: 0
}

.succ-page .succ-actions {
    display: flex;
    flex-direction: row;
    gap: 12px;
    flex-wrap: wrap;
    justify-content: center
}

.succ-page .succ-actions .btn-primary {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 24px;
    background: linear-gradient(67deg, #459352, #89B893);
    color: #111814;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .02em;
    line-height: 1.2;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    text-decoration: none;
    transition: width .15s ease-out, box-shadow .18s ease-out;
    box-shadow: 0 3px 5px -1px #45935212
}

.succ-page .succ-actions .btn-primary:hover {
    box-shadow: 0 6px 25px -1px #45935214;
    padding: 12px 32px
}

.succ-page .succ-actions .btn-primary:focus {
    outline: 2px solid #89B893;
    outline-offset: 3px
}

.succ-page .succ-actions .btn-primary:active {
    box-shadow: 0 3px 5px -1px #45935212
}

.succ-page .succ-actions .btn-secondary {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 24px;
    background: transparent;
    color: #89B893;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: .02em;
    line-height: 1.2;
    border: 1px solid #2e4d33;
    border-radius: 6px;
    cursor: pointer;
    text-decoration: none;
    transition: border-color .15s ease, color .15s ease, padding .15s ease-out
}

.succ-page .succ-actions .btn-secondary:hover {
    border-color: #459352;
    color: #E9EEEA;
    padding: 12px 32px
}

.succ-page .succ-actions .btn-secondary:focus {
    outline: 2px solid #89B893;
    outline-offset: 3px
}

@media (max-width: 640px) {
    .succ-page {
        padding: 48px 12px
    }

    .succ-page .succ-card {
        padding: 24px
    }

    .succ-page .succ-card .succ-title {
        font-size: 27px
    }

    .succ-page .succ-actions {
        flex-direction: column;
        align-items: stretch
    }

    .succ-page .succ-actions .btn-primary,
    .succ-page .succ-actions .btn-secondary {
        justify-content: center
    }
}

@media (max-width: 360px) {
    .succ-page .succ-card .succ-title {
        font-size: 20px
    }

    .succ-page .succ-card .succ-msg {
        font-size: 13px
    }
}