* {
    box-sizing: border-box
}

body {
    margin: 0;
    min-height: 100svh;
    overflow-x: hidden;
    -webkit-text-size-adjust: 100%
}

.hd-root {
    font-family: 'Source Serif Pro', serif;
    background: #fff;
    border-bottom: 2px solid #106372;
    position: relative;
    z-index: 100
}

.hd-top {
    background: #106372;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 56px;
    max-width: 1440px;
    margin: 0 auto
}

.hd-top-contact {
    display: flex;
    align-items: center;
    gap: 28px
}

.hd-top-item {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #F0EFEF;
    font-size: 16px;
    line-height: 1.4;
    letter-spacing: .01em;
    text-decoration: none;
    transition: color .22s cubic-bezier(0.4, 0, 0.2, 1)
}

.hd-top-item:hover {
    color: #15D7F0
}

.hd-top-item .mdi {
    font-size: 18px;
    color: #15D7F0
}

.hd-est {
    color: #F0EFEF;
    font-size: 16px;
    line-height: 1.4;
    letter-spacing: .02em;
    opacity: .7
}

.hd-main {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 56px;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: stretch;
    gap: 0;
    min-height: 96px
}

.hd-brand-pod {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px 28px 16px 0;
    border-right: 2px solid #F0EFEF
}

.hd-logo-cell {
    width: 80px;
    height: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    border: 2px solid #106372;
    padding: 8px;
    box-shadow: 0 1px 4px -2px #10637214
}

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

.hd-brand-text {
    display: flex;
    flex-direction: column;
    gap: 0
}

.hd-brand-name {
    font-size: 32px;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: .01em;
    color: #106372;
    text-decoration: none;
    display: block
}

.hd-brand-sub {
    font-size: 16px;
    line-height: 1.4;
    letter-spacing: .02em;
    color: #555
}

.hd-nav-pod {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 28px;
    flex-wrap: wrap;
    gap: 0
}

.hd-nav-pod a {
    font-family: 'Source Serif Pro', serif;
    font-size: 16px;
    line-height: 1.4;
    letter-spacing: .01em;
    color: #222;
    text-decoration: none;
    padding: 8px 16px;
    display: block;
    position: relative;
    font-weight: 400;
    transition: color .18s cubic-bezier(0.4, 0, 0.2, 1)
}

.hd-nav-pod a::after {
    content: '';
    display: block;
    position: absolute;
    bottom: 4px;
    left: 16px;
    right: 16px;
    height: 2px;
    background: #15D7F0;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .24s cubic-bezier(0.0, 0, 0.2, 1)
}

.hd-nav-pod a:hover {
    color: #106372
}

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

.hd-nav-pod a:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px #15d7f080
}

.hd-act-pod {
    display: flex;
    align-items: center;
    padding: 16px 0 16px 28px;
    border-left: 2px solid #F0EFEF
}

.hd-cta-btn {
    font-family: 'Source Serif Pro', serif;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: .02em;
    color: #fff;
    background: linear-gradient(135deg, #106372 0%, #15D7F0 100%);
    border: none;
    padding: 16px 28px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    text-decoration: none;
    border-radius: 0;
    box-shadow: 0 6px 25px -2px #10637217;
    transition: box-shadow .22s cubic-bezier(0.4, 0, 0.2, 1), transform .14s cubic-bezier(0.4, 0, 0.2, 1);
    min-height: 56px
}

.hd-cta-btn:hover {
    box-shadow: 0 9px 48px -2px #10637224
}

.hd-cta-btn:active {
    transform: scale(0.97)
}

.hd-cta-btn:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px #15d7f080 0 6px 25px -2px #10637217
}

@media (max-width: 1280px) {
    .hd-top {
        padding: 8px 28px
    }

    .hd-main {
        padding: 0 28px
    }

    .hd-brand-name {
        font-size: 32px
    }
}

@media (max-width: 768px) {
    .hd-top {
        padding: 8px 16px;
        flex-wrap: wrap;
        gap: 8px
    }

    .hd-top-contact {
        gap: 16px
    }

    .hd-est {
        display: none
    }

    .hd-main {
        padding: 0 16px;
        grid-template-columns: 1fr;
        grid-template-rows: auto auto auto;
        min-height: auto
    }

    .hd-brand-pod {
        border-right: none;
        border-bottom: 2px solid #F0EFEF;
        padding: 16px 0
    }

    .hd-nav-pod {
        padding: 8px 0;
        justify-content: flex-start;
        border-bottom: 2px solid #F0EFEF
    }

    .hd-act-pod {
        border-left: none;
        padding: 16px 0
    }
}

@media (max-width: 480px) {
    .hd-top-contact {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px
    }

    .hd-brand-name {
        font-size: 32px
    }

    .hd-nav-pod a {
        padding: 8px;
        font-size: 16px
    }
}

.ft-root {
    font-family: 'Source Serif Pro', serif;
    background: #106372;
    color: #F0EFEF;
    padding: 56px 56px 28px
}

.ft-inner {
    max-width: 1440px;
    margin: 0 auto
}

.ft-grid {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 56px;
    align-items: start;
    margin-bottom: 56px
}

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

.ft-col-left-label {
    font-size: 16px;
    letter-spacing: .02em;
    line-height: 1.4;
    color: #15D7F0;
    font-weight: 700;
    text-transform: uppercase
}

.ft-col-left-desc {
    font-size: 16px;
    line-height: 1.6;
    letter-spacing: .01em;
    color: #F0EFEF;
    opacity: .85;
    max-width: 320px
}

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

.ft-contact-list li a,
.ft-contact-list li span {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 16px;
    line-height: 1.4;
    letter-spacing: .01em;
    color: #F0EFEF;
    text-decoration: none;
    transition: color .2s cubic-bezier(0.4, 0, 0.2, 1)
}

.ft-contact-list li a:hover {
    color: #15D7F0
}

.ft-contact-list li a:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px #15d7f080
}

.ft-contact-list .mdi {
    font-size: 18px;
    color: #15D7F0;
    flex-shrink: 0;
    margin-top: 2px
}

.ft-brand-pod {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px
}

.ft-logo-cell {
    width: 64px;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    border: 2px solid #15D7F0;
    padding: 8px;
    border-radius: 0;
    box-shadow: 0 1px 4px -2px #15d7f014
}

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

.ft-brand-name {
    font-size: 18px;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: .02em;
    color: #fff;
    text-align: center
}

.ft-brand-pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #15d7f01f;
    border: 1px solid #15d7f04d;
    padding: 8px 16px;
    border-radius: 36px;
    font-size: 16px;
    line-height: 1.4;
    letter-spacing: .01em;
    color: #15D7F0
}

.ft-col-right {
    display: flex;
    flex-direction: column;
    gap: 16px;
    align-items: flex-end
}

.ft-col-right-label {
    font-size: 16px;
    letter-spacing: .02em;
    line-height: 1.4;
    color: #15D7F0;
    font-weight: 700;
    text-transform: uppercase;
    text-align: right
}

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

.ft-nav-list li a {
    font-size: 16px;
    line-height: 1.4;
    letter-spacing: .01em;
    color: #F0EFEF;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    border-radius: 36px;
    transition: background .2s cubic-bezier(0.4, 0, 0.2, 1), color .2s cubic-bezier(0.4, 0, 0.2, 1)
}

.ft-nav-list li a:hover {
    background: #15d7f01f;
    color: #15D7F0
}

.ft-nav-list li a:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px #15d7f080
}

.ft-divider {
    height: 1px;
    background: #f0efef26;
    margin-bottom: 28px
}

.ft-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 16px
}

.ft-copy {
    font-size: 16px;
    line-height: 1.4;
    letter-spacing: .01em;
    color: #F0EFEF;
    opacity: .6
}

.ft-bottom-links {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap
}

.ft-bottom-links a {
    font-size: 16px;
    line-height: 1.4;
    letter-spacing: .01em;
    color: #F0EFEF;
    opacity: .6;
    text-decoration: none;
    padding: 8px 16px;
    border-radius: 36px;
    transition: opacity .2s cubic-bezier(0.4, 0, 0.2, 1), background .2s cubic-bezier(0.4, 0, 0.2, 1)
}

.ft-bottom-links a:hover {
    opacity: 1;
    background: #f0efef14
}

.ft-bottom-links a:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px #15d7f080
}

@media (max-width: 1280px) {
    .ft-root {
        padding: 56px 28px 28px
    }

    .ft-grid {
        gap: 28px
    }
}

@media (max-width: 768px) {
    .ft-root {
        padding: 56px 16px 28px
    }

    .ft-grid {
        grid-template-columns: 1fr;
        grid-template-rows: auto auto auto;
        gap: 28px
    }

    .ft-col-right {
        align-items: flex-start
    }

    .ft-col-right-label {
        text-align: left
    }

    .ft-nav-list {
        align-items: flex-start
    }

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

@media (max-width: 480px) {
    .ft-bottom-links {
        flex-direction: column;
        align-items: flex-start;
        gap: 0
    }
}

.ck-popup {
    display: none;
    position: fixed;
    top: 16px;
    left: 16px;
    width: 420px;
    max-width: calc(100vw - 32px);
    background: #fff;
    border: 2px solid #106372;
    box-shadow: 0 9px 48px -2px #10637224;
    z-index: 8000;
    font-family: 'Source Serif Pro', serif
}

.ck-body {
    padding: 28px;
    display: flex;
    flex-direction: column;
    gap: 16px
}

.ck-icon-row {
    display: flex;
    align-items: center;
    gap: 16px
}

.ck-icon-row .mdi {
    font-size: 32px;
    color: #106372
}

.ck-desc {
    font-size: 16px;
    line-height: 1.6;
    letter-spacing: .01em;
    color: #222
}

.ck-choice-first {
    font-weight: 700;
    color: #106372
}

.ck-settings-panel {
    display: none;
    flex-direction: column;
    gap: 16px;
    padding-top: 8px;
    border-top: 1px solid #F0EFEF
}

.ck-toggle-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px
}

.ck-toggle-label {
    font-size: 16px;
    line-height: 1.4;
    letter-spacing: .01em;
    color: #222
}

.ck-toggle-row input[type="checkbox"] {
    width: 20px;
    height: 20px;
    accent-color: #106372;
    cursor: pointer;
    flex-shrink: 0
}

.ck-toggle-row input[type="checkbox"]:focus-visible {
    outline: 3px solid #15d7f080;
    outline-offset: 2px
}

.ck-opt-out-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding-top: 8px;
    border-top: 1px solid #F0EFEF
}

.ck-opt-out-label {
    font-size: 16px;
    line-height: 1.4;
    letter-spacing: .01em;
    color: #222
}

.ck-opt-out-row input[type="checkbox"] {
    width: 20px;
    height: 20px;
    accent-color: #106372;
    cursor: pointer;
    flex-shrink: 0
}

.ck-btn-row {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap
}

.ck-btn {
    font-family: 'Source Serif Pro', serif;
    font-size: 16px;
    line-height: 1.4;
    letter-spacing: .01em;
    padding: 8px 16px;
    border: 2px solid #106372;
    background: transparent;
    color: #106372;
    cursor: pointer;
    border-radius: 0;
    min-height: 44px;
    transition: background .2s cubic-bezier(0.4, 0, 0.2, 1), color .2s cubic-bezier(0.4, 0, 0.2, 1)
}

.ck-btn:hover {
    background: #106372;
    color: #fff
}

.ck-btn:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px #15d7f080
}

.ck-btn:active {
    transform: scale(0.97)
}

.ck-btn-accept {
    background: #106372;
    color: #fff
}

.ck-btn-accept:hover {
    background: #15D7F0;
    border-color: #15D7F0;
    color: #222
}

.ck-link-btn {
    font-family: 'Source Serif Pro', serif;
    font-size: 16px;
    line-height: 1.4;
    letter-spacing: .01em;
    color: #106372;
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    text-decoration: underline;
    min-height: 44px;
    display: inline-flex;
    align-items: center
}

.ck-link-btn:hover {
    color: #15D7F0
}

.ck-link-btn:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px #15d7f080
}

.legal-area {
    max-width: 1440px;
    margin: 0 auto;
    padding: 56px 96px;
    color: #1b2a2d
}

.legal-area h1 {
    font-size: 62px;
    line-height: 1.1;
    letter-spacing: .01em;
    color: #106372;
    margin-bottom: 28px;
    margin-top: 0
}

.legal-area h2 {
    font-size: 44px;
    line-height: 1.1;
    letter-spacing: .01em;
    color: #106372;
    margin-top: 56px;
    margin-bottom: 16px;
    padding-bottom: 8px;
    border-bottom: 2px solid #F0EFEF
}

.legal-area h3 {
    font-size: 32px;
    line-height: 1.4;
    letter-spacing: .01em;
    color: #106372;
    margin-top: 28px;
    margin-bottom: 16px
}

.legal-area h4 {
    font-size: 18px;
    line-height: 1.4;
    letter-spacing: .02em;
    color: #106372;
    margin-top: 28px;
    margin-bottom: 8px;
    text-transform: uppercase
}

.legal-area h5 {
    font-size: 18px;
    line-height: 1.4;
    letter-spacing: .02em;
    color: #2a4f58;
    margin-top: 16px;
    margin-bottom: 8px
}

.legal-area h6 {
    font-size: 16px;
    line-height: 1.4;
    letter-spacing: .02em;
    color: #2a4f58;
    margin-top: 16px;
    margin-bottom: 8px
}

.legal-area p {
    font-size: 18px;
    line-height: 1.6;
    letter-spacing: .01em;
    color: #1b2a2d;
    margin-top: 0;
    margin-bottom: 16px;
    max-width: 72ch
}

.legal-area strong,
.legal-area b {
    font-weight: 700;
    color: #106372
}

.legal-area em,
.legal-area i {
    font-style: italic;
    color: #2a4f58
}

.legal-area table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 28px;
    margin-bottom: 28px;
    font-size: 16px;
    line-height: 1.6;
    box-shadow: 0 6px 25px -2px #10637217;
    border-radius: 0;
    overflow: hidden
}

.legal-area thead {
    background-color: #106372;
    color: #fff
}

.legal-area thead th {
    font-size: 16px;
    letter-spacing: .02em;
    font-weight: 700;
    padding: 16px 28px;
    text-align: left;
    color: #fff;
    border: none
}

.legal-area tbody tr {
    border-bottom: 1px solid #F0EFEF;
    transition: background-color .22s cubic-bezier(0.4, 0, 0.2, 1)
}

.legal-area tbody tr:last-child {
    border-bottom: none
}

.legal-area tbody tr:nth-child(even) {
    background-color: #f7fafa
}

.legal-area tbody tr:hover {
    background-color: #eaf8fb
}

.legal-area td {
    padding: 16px 28px;
    font-size: 16px;
    line-height: 1.6;
    letter-spacing: .01em;
    color: #1b2a2d;
    vertical-align: top;
    border: none
}

.legal-area div {
    font-size: 16px;
    line-height: 1.6;
    letter-spacing: .01em;
    color: #1b2a2d
}

@media (max-width: 1280px) {
    .legal-area {
        padding: 56px
    }

    .legal-area h1 {
        font-size: 44px
    }

    .legal-area h2 {
        font-size: 32px
    }
}

@media (max-width: 768px) {
    .legal-area {
        padding: 28px
    }

    .legal-area h1 {
        font-size: 32px
    }

    .legal-area h2 {
        font-size: 32px;
        margin-top: 28px
    }

    .legal-area h3 {
        font-size: 18px
    }

    .legal-area p {
        font-size: 16px;
        max-width: 100%
    }

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

    .legal-area thead th,
    .legal-area td {
        padding: 16px
    }
}

@media (max-width: 480px) {
    .legal-area {
        padding: 16px
    }

    .legal-area h1 {
        font-size: 32px;
        line-height: 1.1
    }

    .legal-area h2 {
        font-size: 18px
    }

    .legal-area h3,
    .legal-area h4 {
        font-size: 16px
    }

    .legal-area thead th,
    .legal-area td {
        padding: 8px 16px;
        font-size: 16px
    }
}

.lp-det {
    background: #fff;
    color: #1b2230;
    overflow-x: clip
}

.lp-det .drop-anim {
    opacity: 0;
    transform: translateY(-32px);
    animation: dropIn .5s cubic-bezier(0.0, 0, 0.2, 1) forwards
}

.lp-det .drop-anim:nth-child(1) {
    animation-delay: .05s
}

.lp-det .drop-anim:nth-child(2) {
    animation-delay: .15s
}

.lp-det .drop-anim:nth-child(3) {
    animation-delay: .25s
}

.lp-det .drop-anim:nth-child(4) {
    animation-delay: .35s
}

.lp-det .drop-anim:nth-child(5) {
    animation-delay: .45s
}

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

.lp-det .reveal {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity .5s cubic-bezier(0.4, 0, 0.2, 1), transform .5s cubic-bezier(0.4, 0, 0.2, 1)
}

.lp-det .reveal.vis {
    opacity: 1;
    transform: translateY(0)
}

.lp-det .pg-wrap {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 28px
}

.lp-det .ttl-sec {
    padding: 56px 0 0;
    background: #fff;
    position: relative
}

.lp-det .ttl-sec::after {
    content: '';
    display: block;
    height: 56px;
    background: #fff;
    clip-path: ellipse(55% 100% at 50% 0%);
    margin-top: -1px
}

.lp-det .ttl-bg-num {
    position: absolute;
    top: 0;
    right: 56px;
    font-size: 72px;
    font-weight: 900;
    line-height: 1.1;
    color: #106372;
    opacity: .04;
    pointer-events: none;
    user-select: none;
    letter-spacing: -.04em;
    z-index: 0
}

.lp-det .ttl-inner {
    display: grid;
    grid-template-columns: 1fr 1.6fr;
    gap: 56px;
    align-items: start;
    position: relative;
    z-index: 1
}

.lp-det .ttl-img-col {
    padding: 28px;
    background: #F0EFEF;
    border-radius: 36px;
    position: relative
}

.lp-det .ttl-img-frame {
    border-radius: 36px;
    overflow: hidden;
    aspect-ratio: 4/3;
    position: relative;
    box-shadow: 0 6px 25px -2px #10637217
}

.lp-det .ttl-img-frame img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    filter: blur(0px);
    transition: filter .28s cubic-bezier(0.4, 0, 0.2, 1)
}

.lp-det .ttl-img-frame::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 40%;
    background: linear-gradient(to top, #1063722e, transparent);
    border-radius: 0 0 36px 36px;
    pointer-events: none
}

.lp-det .ttl-dot-dec {
    position: absolute;
    top: 16px;
    left: 16px;
    width: 10px;
    height: 10px;
    border-radius: 36px;
    background: linear-gradient(83deg, #106372, #15D7F0)
}

.lp-det .ttl-txt-col {
    padding: 16px 0 56px;
    display: flex;
    flex-direction: column;
    gap: 28px
}

.lp-det .ttl-meta-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap
}

.lp-det .ttl-meta-row .badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    background: #F0EFEF;
    border-radius: 36px;
    font-size: 16px;
    line-height: 1.4;
    color: #106372;
    letter-spacing: .01em
}

.lp-det .ttl-meta-row .badge .mdi {
    font-size: 16px;
    color: #15D7F0
}

.lp-det .ttl-h {
    font-size: 44px;
    line-height: 1.1;
    letter-spacing: .01em;
    color: #1b2230;
    font-weight: 800;
    font-style: italic;
    margin: 0
}

.lp-det .ttl-h .grad-word {
    background: linear-gradient(83deg, #106372 30%, #15D7F0 100%), radial-gradient(ellipse at 30% 60%, #15D7F0 0%, transparent 70%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent
}

.lp-det .ttl-sub {
    font-size: 18px;
    line-height: 1.6;
    letter-spacing: .01em;
    color: #3a4a58;
    margin: 0
}

.lp-det .ttl-actions {
    display: flex;
    flex-direction: row;
    gap: 16px;
    align-items: center;
    flex-wrap: wrap
}

.lp-det .btn-prim {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 16px 28px;
    background: linear-gradient(83deg, #106372 0%, #15D7F0 100%);
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: .02em;
    border: none;
    border-radius: 36px;
    cursor: pointer;
    transition: opacity .22s cubic-bezier(0.4, 0, 0.2, 1), transform .18s cubic-bezier(0.4, 0, 0.2, 1);
    text-decoration: none;
    box-shadow: 0 6px 25px -2px #10637217
}

.lp-det .btn-prim:hover {
    opacity: .88
}

.lp-det .btn-prim:active {
    transform: scale(0.97)
}

.lp-det .btn-sec {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 16px 28px;
    background: transparent;
    color: #106372;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: .02em;
    border: 2px solid #106372;
    border-radius: 36px;
    cursor: pointer;
    transition: background .22s cubic-bezier(0.4, 0, 0.2, 1), color .22s cubic-bezier(0.4, 0, 0.2, 1), transform .18s cubic-bezier(0.4, 0, 0.2, 1);
    text-decoration: none
}

.lp-det .btn-sec:hover {
    background: #106372;
    color: #fff
}

.lp-det .btn-sec:active {
    transform: scale(0.97)
}

.lp-det .copy-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 16px 28px;
    background: #F0EFEF;
    color: #106372;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: .01em;
    border: none;
    border-radius: 36px;
    cursor: pointer;
    transition: background .22s cubic-bezier(0.4, 0, 0.2, 1), transform .18s cubic-bezier(0.4, 0, 0.2, 1)
}

.lp-det .copy-btn:hover {
    background: #e2e0e0
}

.lp-det .copy-btn:active {
    transform: scale(0.97)
}

.lp-det .copy-btn .mdi {
    font-size: 16px
}

.lp-det .float-card {
    background: #fff;
    border-radius: 36px;
    box-shadow: 0 9px 48px -2px #10637224;
    padding: 28px;
    display: flex;
    flex-direction: column;
    gap: 16px
}

.lp-det .float-card .fc-status {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    font-size: 16px;
    font-weight: 700;
    color: #106372;
    letter-spacing: .02em
}

.lp-det .float-card .fc-status-dot {
    width: 10px;
    height: 10px;
    border-radius: 36px;
    background: #15D7F0;
    box-shadow: 0 0 0 3px #15d7f033;
    flex-shrink: 0
}

.lp-det .float-card .fc-rows {
    display: flex;
    flex-direction: column;
    gap: 8px
}

.lp-det .float-card .fc-row {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    padding: 8px 0;
    border-bottom: 1px solid #F0EFEF;
    font-size: 16px;
    line-height: 1.4;
    letter-spacing: .01em
}

.lp-det .float-card .fc-row:last-child {
    border-bottom: none
}

.lp-det .float-card .fc-label {
    color: #5a6a78
}

.lp-det .float-card .fc-val {
    color: #1b2230;
    font-weight: 600
}

.lp-det .float-card .fc-price {
    font-size: 32px;
    line-height: 1.1;
    font-weight: 900;
    letter-spacing: .01em;
    color: #106372
}

.lp-det .float-card .fc-note {
    font-size: 16px;
    line-height: 1.4;
    color: #5a6a78;
    letter-spacing: .01em
}

.lp-det .cnt-sec {
    padding: 56px 0 96px;
    background: linear-gradient(83deg, #F0EFEF 0%, #e8f4f6 100%);
    position: relative
}

.lp-det .cnt-sec::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80' viewBox='0 0 80 80'%3E%3Cellipse cx='40' cy='40' rx='18' ry='28' fill='none' stroke='%23106372' stroke-width='0.6' opacity='0.07'/%3E%3Cellipse cx='10' cy='10' rx='8' ry='13' fill='none' stroke='%2315D7F0' stroke-width='0.5' opacity='0.06'/%3E%3Cellipse cx='70' cy='70' rx='8' ry='13' fill='none' stroke='%23106372' stroke-width='0.5' opacity='0.05'/%3E%3C/svg%3E");
    background-repeat: repeat;
    pointer-events: none;
    z-index: 0
}

.lp-det .cnt-inner {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 2fr 1fr 0.7fr;
    gap: 28px;
    align-items: start
}

.lp-det .cnt-main {
    display: flex;
    flex-direction: column;
    gap: 28px
}

.lp-det .cnt-desc {
    background: #fff;
    border-radius: 36px;
    padding: 28px;
    box-shadow: 0 1px 4px -2px #10637214
}

.lp-det .cnt-desc-head {
    font-size: 32px;
    line-height: 1.1;
    letter-spacing: .01em;
    font-weight: 800;
    font-style: italic;
    color: #1b2230;
    margin: 0 0 28px
}

.lp-det .cnt-desc-head .grad-word {
    background: linear-gradient(83deg, #106372 30%, #15D7F0 100%), radial-gradient(ellipse at 30% 60%, #15D7F0 0%, transparent 70%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent
}

.lp-det .pull-layout {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 28px;
    align-items: start
}

.lp-det .pull-quote {
    font-size: 18px;
    line-height: 1.6;
    font-weight: 700;
    color: #106372;
    letter-spacing: .01em;
    font-style: italic;
    border-top: 2px solid #15D7F0;
    padding-top: 16px;
    margin: 0
}

.lp-det .desc-body {
    font-size: 18px;
    line-height: 1.6;
    letter-spacing: .01em;
    color: #2e3c4a
}

.lp-det .desc-body p {
    margin: 0 0 16px
}

.lp-det .desc-body p:last-child {
    margin-bottom: 0
}

.lp-det .desc-body h2 {
    font-size: 32px;
    line-height: 1.1;
    font-weight: 800;
    color: #106372;
    margin: 28px 0 16px;
    letter-spacing: .01em
}

.lp-det .desc-body h3 {
    font-size: 18px;
    line-height: 1.4;
    font-weight: 700;
    color: #1b2230;
    margin: 16px 0 8px;
    letter-spacing: .01em
}

.lp-det .desc-body ul {
    padding-left: 0;
    list-style: none;
    margin: 0 0 16px;
    display: flex;
    flex-direction: column;
    gap: 8px
}

.lp-det .desc-body ul li {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 8px;
    font-size: 18px;
    line-height: 1.6;
    letter-spacing: .01em;
    color: #2e3c4a
}

.lp-det .desc-body ul li::before {
    content: '';
    display: block;
    width: 8px;
    height: 8px;
    border-radius: 36px;
    background: linear-gradient(83deg, #106372, #15D7F0);
    flex-shrink: 0;
    margin-top: 8px
}

.lp-det .desc-body a {
    color: #106372;
    text-decoration: underline dashed 1px;
    text-underline-offset: 3px;
    transition: color .2s cubic-bezier(0.4, 0, 0.2, 1)
}

.lp-det .desc-body a:hover {
    color: #15D7F0
}

.lp-det .desc-body em {
    font-style: italic;
    color: #106372
}

.lp-det .desc-body cite {
    font-style: italic;
    color: #5a6a78
}

.lp-det .prog-block {
    background: #fff;
    border-radius: 36px;
    padding: 28px;
    box-shadow: 0 1px 4px -2px #10637214
}

.lp-det .prog-head {
    font-size: 32px;
    line-height: 1.1;
    letter-spacing: .01em;
    font-weight: 800;
    font-style: italic;
    color: #1b2230;
    margin: 0 0 28px;
    text-align: center
}

.lp-det .prog-body {
    font-size: 18px;
    line-height: 1.6;
    letter-spacing: .01em;
    color: #2e3c4a
}

.lp-det .prog-body p {
    margin: 0 0 16px
}

.lp-det .prog-body p:last-child {
    margin-bottom: 0
}

.lp-det .prog-body h2 {
    font-size: 32px;
    line-height: 1.1;
    font-weight: 800;
    color: #106372;
    margin: 28px 0 16px;
    letter-spacing: .01em
}

.lp-det .prog-body ol {
    padding-left: 0;
    list-style: none;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
    counter-reset: prog-counter
}

.lp-det .prog-body ol li {
    display: flex;
    flex-direction: row;
    gap: 16px;
    align-items: flex-start;
    counter-increment: prog-counter
}

.lp-det .prog-body ol li::before {
    content: counter(prog-counter, decimal-leading-zero);
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 36px;
    border-radius: 36px;
    background: linear-gradient(83deg, #106372 0%, #15D7F0 100%);
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: .01em;
    flex-shrink: 0
}

.lp-det .prog-body dl {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px
}

.lp-det .prog-body dt {
    font-weight: 700;
    color: #106372;
    font-size: 18px;
    line-height: 1.4
}

.lp-det .prog-body dd {
    margin-left: 16px;
    color: #2e3c4a;
    font-size: 18px;
    line-height: 1.6
}

.lp-det .prog-body details {
    border: 1px solid #F0EFEF;
    border-radius: 36px;
    padding: 16px 28px;
    margin-bottom: 8px
}

.lp-det .prog-body summary {
    font-weight: 700;
    color: #106372;
    cursor: pointer;
    font-size: 18px;
    line-height: 1.4;
    letter-spacing: .01em;
    list-style: none;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px
}

.lp-det .prog-body summary::-webkit-details-marker {
    display: none
}

.lp-det .prog-body details[open] summary {
    margin-bottom: 8px
}

.lp-det .prog-body strong {
    font-weight: 700;
    color: #106372
}

.lp-det .prog-body cite {
    font-style: italic;
    color: #5a6a78
}

.lp-det .cnt-side {
    display: flex;
    flex-direction: column;
    gap: 28px
}

.lp-det .side-card {
    background: #fff;
    border-radius: 36px;
    padding: 28px;
    box-shadow: 0 1px 4px -2px #10637214
}

.lp-det .side-card-head {
    font-size: 18px;
    line-height: 1.4;
    font-weight: 700;
    color: #106372;
    letter-spacing: .01em;
    margin: 0 0 16px;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px
}

.lp-det .side-card-head .mdi {
    font-size: 18px;
    color: #15D7F0
}

.lp-det .side-stat-list {
    display: flex;
    flex-direction: column;
    gap: 16px
}

.lp-det .side-stat {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    font-size: 16px;
    line-height: 1.4;
    letter-spacing: .01em;
    color: #2e3c4a
}

.lp-det .side-stat .dot {
    width: 8px;
    height: 8px;
    border-radius: 36px;
    background: linear-gradient(83deg, #106372, #15D7F0);
    flex-shrink: 0
}

.lp-det .side-stat strong {
    color: #106372;
    font-weight: 700
}

.lp-det .cnt-third {
    display: flex;
    flex-direction: column;
    gap: 28px
}

.lp-det .geo-outline {
    position: absolute;
    top: 56px;
    right: 28px;
    width: 120px;
    height: 120px;
    border-radius: 36px;
    border: 2px solid #15d7f02e;
    pointer-events: none;
    animation: geoOutlinePulse 4s cubic-bezier(0.4, 0, 0.2, 1) infinite;
    z-index: 0
}

.lp-det .geo-outline-2 {
    position: absolute;
    bottom: 96px;
    left: 28px;
    width: 80px;
    height: 80px;
    border-radius: 0;
    border: 2px solid #1063721f;
    pointer-events: none;
    animation: geoOutlinePulse 6s cubic-bezier(0.4, 0, 0.2, 1) infinite 1s;
    z-index: 0
}

@keyframes geoOutlinePulse {

    0%,
    100% {
        opacity: .5
    }

    50% {
        opacity: 1
    }
}

@media (max-width: 1280px) {
    .lp-det .ttl-inner {
        grid-template-columns: 1fr 1.2fr;
        gap: 28px
    }

    .lp-det .cnt-inner {
        grid-template-columns: 1.5fr 1fr;
        gap: 28px
    }

    .lp-det .cnt-third {
        display: none
    }
}

@media (max-width: 768px) {
    .lp-det .ttl-inner {
        grid-template-columns: 1fr;
        gap: 28px
    }

    .lp-det .ttl-txt-col {
        padding: 0 0 28px
    }

    .lp-det .ttl-h {
        font-size: 32px
    }

    .lp-det .ttl-bg-num {
        font-size: 44px;
        right: 16px
    }

    .lp-det .cnt-inner {
        grid-template-columns: 1fr
    }

    .lp-det .pull-layout {
        grid-template-columns: 1fr;
        gap: 16px
    }

    .lp-det .cnt-sec {
        padding: 28px 0 56px
    }
}

@media (max-width: 480px) {
    .lp-det .pg-wrap {
        padding: 0 16px
    }

    .lp-det .ttl-sec {
        padding: 28px 0 0
    }

    .lp-det .ttl-h {
        font-size: 32px
    }

    .lp-det .ttl-actions {
        flex-direction: column;
        align-items: flex-start
    }

    .lp-det .float-card .fc-price {
        font-size: 32px
    }

    .lp-det .prog-head,
    .lp-det .cnt-desc-head {
        font-size: 32px
    }
}

@media print {

    .lp-det .ttl-actions,
    .lp-det .copy-btn,
    .lp-det .btn-prim,
    .lp-det .btn-sec,
    .lp-det .geo-outline,
    .lp-det .geo-outline-2 {
        display: none !important
    }

    .lp-det .ttl-inner,
    .lp-det .cnt-inner {
        grid-template-columns: 1fr
    }

    .lp-det .pull-layout {
        grid-template-columns: 1fr
    }

    .lp-det .cnt-sec {
        background: #fff !important
    }

    .lp-det .cnt-sec::before {
        display: none
    }

    .lp-det .float-card,
    .lp-det .side-card,
    .lp-det .cnt-desc,
    .lp-det .prog-block {
        box-shadow: none;
        border: 1px solid #ccc
    }

    .lp-det .drop-anim,
    .lp-det .reveal {
        opacity: 1;
        transform: none;
        animation: none
    }
}

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

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

.phln ::selection {
    background: #111;
    color: #fff
}

.phln .t-blk {
    max-width: 1440px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 560px
}

.phln .t-left {
    background: #106372;
    padding: 56px 56px 96px;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: flex-end
}

.phln .t-left .grid-bg {
    position: absolute;
    inset: 0;
    background-image: linear-gradient(#ffffff0a 1px, transparent 1px), linear-gradient(90deg, #ffffff0a 1px, transparent 1px);
    background-size: 48px 48px;
    pointer-events: none
}

.phln .t-left .t-eyebrow {
    font-size: 16px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #15D7F0;
    margin-bottom: 16px;
    position: relative;
    z-index: 1
}

.phln .t-left h1 {
    font-size: 62px;
    line-height: 1.1;
    letter-spacing: .01em;
    color: #fff;
    margin: 0 0 28px;
    font-style: italic;
    position: relative;
    z-index: 1
}

.phln .t-left h1 .grad-word {
    background: linear-gradient(83deg, #15D7F0 30%, #fff 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text
}

.phln .t-left .t-stmt {
    font-size: 18px;
    line-height: 1.6;
    color: #ffffffc7;
    max-width: 420px;
    position: relative;
    z-index: 1;
    letter-spacing: .01em
}

.phln .t-right {
    position: relative;
    overflow: hidden;
    background: #F0EFEF
}

.phln .t-right img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: opacity .5s cubic-bezier(0.4, 0, 0.2, 1)
}

.phln .t-right .vignette {
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 0% 0%, #10637261 0%, transparent 55%), radial-gradient(ellipse at 100% 100%, #10637252 0%, transparent 55%);
    pointer-events: none
}

.phln .t-right .img-badge {
    position: absolute;
    bottom: 28px;
    left: 28px;
    background: #fff;
    border: 1.5px solid #15D7F0;
    border-radius: 36px;
    padding: 8px 16px;
    font-size: 16px;
    color: #106372;
    letter-spacing: .02em;
    box-shadow: 0 1px 4px -2px #10637214
}

.phln .arc-div {
    width: 100%;
    overflow: hidden;
    line-height: 0;
    background: #fff
}

.phln .arc-div svg {
    display: block;
    width: 100%
}

.phln .giving-wrap {
    background: #fff;
    padding: 0 0 56px
}

.phln .giving-inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 56px 56px 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 56px
}

.phln .giving-col-a {
    display: flex;
    flex-direction: column;
    gap: 28px
}

.phln .giving-col-b {
    display: flex;
    flex-direction: column;
    gap: 28px;
    padding-top: 56px
}

.phln .giving-lbl {
    font-size: 16px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #106372;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px
}

.phln .giving-lbl span.lbl-line {
    display: inline-block;
    width: 28px;
    height: 2px;
    background: #15D7F0;
    flex-shrink: 0
}

.phln .giving-col-a h2 {
    font-size: 44px;
    line-height: 1.1;
    letter-spacing: .01em;
    color: #106372;
    margin: 0;
    font-style: italic
}

.phln .giving-col-a h2 .grad-word {
    background: linear-gradient(83deg, #106372 0%, #15D7F0 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text
}

.phln .pull-quote {
    display: flex;
    flex-direction: row;
    gap: 16px;
    align-items: flex-start
}

.phln .pull-q-text {
    font-size: 18px;
    line-height: 1.4;
    color: #106372;
    font-style: italic;
    letter-spacing: .01em;
    border-top: 2px solid #15D7F0;
    padding-top: 16px;
    flex: 0 0 38%
}

.phln .body-q {
    font-size: 16px;
    line-height: 1.6;
    color: #2a4a52;
    letter-spacing: .01em;
    flex: 1;
    padding-top: 16px;
    border-top: 1px solid #F0EFEF
}

.phln .giving-card {
    background: #F0EFEF;
    border-radius: 36px;
    padding: 28px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    transition: box-shadow .22s cubic-bezier(0.4, 0, 0.2, 1)
}

.phln .giving-card:hover {
    box-shadow: 0 6px 25px -2px #10637217
}

.phln .giving-card .card-icon {
    width: 40px;
    height: 40px;
    background: linear-gradient(83deg, #106372, #15D7F0);
    border-radius: 0;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center
}

.phln .giving-card .card-icon i {
    color: #fff;
    font-size: 20px
}

.phln .giving-card h4 {
    font-size: 18px;
    line-height: 1.4;
    color: #106372;
    margin: 0;
    letter-spacing: .01em;
    font-style: italic
}

.phln .giving-card p {
    font-size: 16px;
    line-height: 1.6;
    color: #2a4a52;
    margin: 0;
    letter-spacing: .01em
}

.phln .giving-body-p {
    font-size: 16px;
    line-height: 1.6;
    color: #2a4a52;
    letter-spacing: .01em;
    margin: 0
}

.phln .arc-div-2 {
    width: 100%;
    overflow: hidden;
    line-height: 0;
    background: #106372
}

.phln .arc-div-2 svg {
    display: block;
    width: 100%
}

.phln .impact-wrap {
    background: #106372;
    padding: 56px 0 96px;
    position: relative;
    overflow: hidden
}

@keyframes desatsat {
    0% {
        filter: saturate(1)
    }

    40% {
        filter: saturate(0.2)
    }

    100% {
        filter: saturate(1)
    }
}

.phln .impact-bg-anim {
    position: absolute;
    inset: 0;
    background: linear-gradient(83deg, #15d7f012 0%, #10637200 60%);
    animation: desatsat 8s cubic-bezier(0.4, 0, 0.2, 1) infinite;
    pointer-events: none
}

.phln .diag-split {
    position: absolute;
    inset: 0;
    background: linear-gradient(168deg, #15d7f00f 0%, transparent 52%);
    pointer-events: none
}

.phln .impact-inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 56px
}

.phln .impact-intro {
    max-width: 680px;
    margin-bottom: 56px;
    padding: 28px;
    border-top: 2px solid #15d7f080;
    background: #ffffff0a;
    border-radius: 0
}

.phln .impact-intro p.ctx-lead {
    font-size: 18px;
    line-height: 1.6;
    color: #ffffffe6;
    margin: 0 0 16px;
    letter-spacing: .01em
}

.phln .impact-intro p.ctx-body {
    font-size: 16px;
    line-height: 1.6;
    color: #ffffffa6;
    margin: 0;
    letter-spacing: .01em
}

.phln .impact-h2 {
    font-size: 44px;
    line-height: 1.1;
    color: #fff;
    margin: 0 0 16px;
    letter-spacing: .01em;
    font-style: italic
}

.phln .impact-h2 .grad-word {
    background: linear-gradient(83deg, #15D7F0 0%, #fff 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text
}

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

.phln .imp-item {
    background: #ffffff0f;
    border-radius: 36px;
    padding: 28px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    border: 1px solid #15d7f02e;
    transition: background .26s cubic-bezier(0.4, 0, 0.2, 1), border-color .26s cubic-bezier(0.4, 0, 0.2, 1);
    cursor: default
}

.phln .imp-item:hover {
    background: #15d7f01a;
    border-color: #15d7f073
}

.phln .imp-item .imp-num {
    font-size: 44px;
    line-height: 1.1;
    color: #15D7F0;
    letter-spacing: .01em;
    font-style: italic
}

.phln .imp-item h5 {
    font-size: 18px;
    line-height: 1.4;
    color: #fff;
    margin: 0;
    letter-spacing: .01em
}

.phln .imp-item p {
    font-size: 16px;
    line-height: 1.6;
    color: #ffffffa6;
    margin: 0;
    letter-spacing: .01em
}

.phln .imp-wide {
    grid-column: span 2;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px;
    background: #ffffff0a;
    border-radius: 36px;
    padding: 28px;
    border: 1px solid #15d7f01f
}

.phln .imp-wide-text {
    display: flex;
    flex-direction: column;
    gap: 16px
}

.phln .imp-wide-text h5 {
    font-size: 18px;
    line-height: 1.4;
    color: #15D7F0;
    margin: 0;
    letter-spacing: .01em;
    font-style: italic
}

.phln .imp-wide-text p {
    font-size: 16px;
    line-height: 1.6;
    color: #ffffffa6;
    margin: 0;
    letter-spacing: .01em
}

.phln .imp-wide-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
    justify-content: center
}

.phln .imp-wide-list .list-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 16px
}

.phln .imp-wide-list .list-row i {
    color: #15D7F0;
    font-size: 20px;
    flex-shrink: 0
}

.phln .imp-wide-list .list-row span {
    font-size: 16px;
    line-height: 1.4;
    color: #ffffffc7;
    letter-spacing: .01em
}

.phln .imp-narrow {
    grid-column: span 1;
    display: flex;
    flex-direction: column;
    gap: 16px;
    justify-content: center;
    align-items: flex-start
}

.phln .imp-narrow h5 {
    font-size: 18px;
    line-height: 1.4;
    color: #fff;
    margin: 0;
    letter-spacing: .01em;
    font-style: italic
}

.phln .imp-narrow p {
    font-size: 16px;
    line-height: 1.6;
    color: #ffffffa6;
    margin: 0;
    letter-spacing: .01em
}

.phln .imp-narrow .cta-lnk {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    font-size: 16px;
    color: #15D7F0;
    text-decoration: none;
    border-bottom: 1px dashed #15D7F0;
    padding-bottom: 2px;
    letter-spacing: .02em;
    transition: color .2s cubic-bezier(0.4, 0, 0.2, 1), border-color .2s cubic-bezier(0.4, 0, 0.2, 1)
}

.phln .imp-narrow .cta-lnk:hover {
    color: #fff;
    border-color: #fff
}

.phln .imp-narrow .cta-lnk:focus-visible {
    outline: 2px solid #15D7F0;
    outline-offset: 4px
}

@media (max-width: 1280px) {
    .phln .t-blk {
        min-height: 480px
    }

    .phln .t-left {
        padding: 56px 28px 96px
    }

    .phln .t-left h1 {
        font-size: 44px
    }

    .phln .giving-inner {
        padding: 56px 28px 0;
        gap: 28px
    }

    .phln .impact-inner {
        padding: 0 28px
    }

    .phln .impact-grid {
        grid-template-columns: 1fr 1fr
    }

    .phln .imp-wide {
        grid-column: span 2
    }

    .phln .imp-narrow {
        grid-column: span 2
    }
}

@media (max-width: 768px) {
    .phln .t-blk {
        grid-template-columns: 1fr
    }

    .phln .t-right {
        min-height: 280px
    }

    .phln .t-left {
        padding: 56px 16px
    }

    .phln .t-left h1 {
        font-size: 32px
    }

    .phln .t-left .t-stmt {
        font-size: 16px
    }

    .phln .giving-inner {
        grid-template-columns: 1fr;
        padding: 28px 16px 0;
        gap: 28px
    }

    .phln .giving-col-b {
        padding-top: 0
    }

    .phln .pull-quote {
        flex-direction: column;
        gap: 8px
    }

    .phln .pull-q-text {
        flex: none;
        width: 100%
    }

    .phln .impact-inner {
        padding: 0 16px
    }

    .phln .impact-grid {
        grid-template-columns: 1fr
    }

    .phln .imp-wide {
        grid-column: span 1;
        grid-template-columns: 1fr
    }

    .phln .imp-narrow {
        grid-column: span 1
    }

    .phln .impact-h2 {
        font-size: 32px
    }

    .phln .giving-col-a h2 {
        font-size: 32px
    }

    .phln .impact-wrap {
        padding: 56px 0
    }
}

@media (max-width: 480px) {
    .phln .t-left h1 {
        font-size: 32px
    }

    .phln .giving-wrap {
        padding: 0 0 28px
    }

    .phln .t-right {
        min-height: 220px
    }
}

.tch {
    background: #fff;
    color: #111;
    overflow-x: clip
}

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

.tch ::selection {
    background: #111;
    color: #fff
}

.tch a {
    text-decoration: underline dashed;
    text-underline-offset: 3px;
    color: #106372;
    transition: color .22s cubic-bezier(0.4, 0, 0.2, 1)
}

.tch a:hover {
    color: #15D7F0
}

.tch .pg_wrap {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 56px
}

@media (max-width: 1280px) {
    .tch .pg_wrap {
        padding: 0 28px
    }
}

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

.tch .pg_wrap.narrow {
    max-width: 1440px
}

.tch .divider_asym {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 0
}

.tch .divider_asym span:first-child {
    display: block;
    width: 48px;
    height: 2px;
    background: #106372;
    flex-shrink: 0
}

.tch .divider_asym span:last-child {
    display: block;
    flex: 1;
    height: 1px;
    background: linear-gradient(83deg, #106372 0%, #15D7F0 60%, transparent 100%)
}

.tch .num_badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 36px;
    background: linear-gradient(83deg, #106372 0%, #15D7F0 100%);
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    flex-shrink: 0;
    line-height: 1.1
}

.tch .grad_word {
    background: linear-gradient(83deg, #106372 0%, #15D7F0 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text
}

.tch .sec_a {
    padding: 96px 0 56px;
    background: #fff;
    position: relative
}

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

@media (max-width: 768px) {
    .tch .sec_a_row {
        grid-template-columns: 1fr;
        gap: 28px
    }
}

.tch .sec_a_left {
    position: relative
}

.tch .img_frame {
    width: 100%;
    aspect-ratio: 4/3;
    overflow: hidden;
    border-radius: 0;
    position: relative;
    box-shadow: 0 9px 48px -2px #10637224
}

.tch .img_frame img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    filter: saturate(0.85) brightness(0.92);
    transition: filter .28s cubic-bezier(0.4, 0, 0.2, 1)
}

.tch .img_frame:hover img {
    filter: saturate(1) brightness(0.97)
}

.tch .img_fade_top {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 45%;
    background: linear-gradient(to bottom, #10637273 0%, transparent 100%);
    pointer-events: none
}

.tch .shape_layer {
    position: absolute;
    bottom: -16px;
    right: -16px;
    width: 80px;
    height: 80px;
    border: 2px solid #15d7f059;
    border-radius: 0;
    pointer-events: none;
    z-index: 0
}

.tch .shape_layer_2 {
    position: absolute;
    top: -12px;
    left: -12px;
    width: 56px;
    height: 56px;
    background: #15d7f01a;
    border-radius: 36px;
    pointer-events: none;
    z-index: 0
}

.tch .sec_a_right {
    display: flex;
    flex-direction: column;
    gap: 28px;
    padding-top: 16px
}

.tch .label_tag {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 16px;
    letter-spacing: .02em;
    color: #106372;
    font-weight: 600;
    text-transform: uppercase
}

.tch .sec_a_h1 {
    font-size: 44px;
    line-height: 1.1;
    letter-spacing: .01em;
    font-weight: 800;
    font-style: italic;
    margin: 0;
    color: #111
}

.tch .sec_a_sub {
    font-size: 18px;
    line-height: 1.6;
    letter-spacing: .01em;
    color: #2a2a2a;
    margin: 0
}

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

.tch .pt_list li {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    font-size: 16px;
    line-height: 1.6;
    letter-spacing: .01em;
    color: #222
}

.tch .pt_list li .pt_text {
    flex: 1
}

.tch .pt_list li strong {
    display: block;
    font-size: 16px;
    font-weight: 700;
    color: #106372;
    margin-bottom: 4px
}

.tch .sec_b {
    padding: 56px 0 96px;
    background: #F0EFEF;
    position: relative
}

.tch .sec_b_bg_anim {
    position: absolute;
    inset: 0;
    background: linear-gradient(83deg, #1063720f 0%, #15d7f017 100%);
    background-size: 200% 200%;
    animation: bg_breathe 10s ease-in-out infinite;
    pointer-events: none;
    z-index: 0
}

@keyframes bg_breathe {
    0% {
        background-size: 200% 200%;
        background-position: 0 50%
    }

    50% {
        background-size: 220% 220%;
        background-position: 100% 50%
    }

    100% {
        background-size: 200% 200%;
        background-position: 0 50%
    }
}

.tch .sec_b_inner {
    position: relative;
    z-index: 1
}

.tch .sec_b_head {
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin-bottom: 56px;
    text-align: center;
    align-items: center
}

.tch .sec_b_h2 {
    font-size: 32px;
    line-height: 1.1;
    letter-spacing: .01em;
    font-weight: 700;
    font-style: italic;
    margin: 0;
    color: #111
}

.tch .sec_b_desc {
    font-size: 18px;
    line-height: 1.6;
    letter-spacing: .01em;
    color: #2a2a2a;
    margin: 0;
    max-width: 640px
}

.tch .matrix_wrap {
    overflow-x: auto;
    border-radius: 0
}

.tch .matrix_tbl {
    width: 100%;
    border-collapse: collapse;
    min-width: 640px;
    background: #fff;
    box-shadow: 0 6px 25px -2px #10637217
}

.tch .matrix_tbl thead tr {
    background: linear-gradient(83deg, #106372 0%, #15D7F0 100%)
}

.tch .matrix_tbl thead th {
    padding: 16px 28px;
    font-size: 16px;
    font-weight: 700;
    color: #fff;
    letter-spacing: .02em;
    text-align: left;
    line-height: 1.4
}

.tch .matrix_tbl thead th:first-child {
    width: 28%
}

.tch .matrix_tbl tbody tr {
    border-bottom: 1px solid #1063721a;
    transition: background .22s cubic-bezier(0.4, 0, 0.2, 1)
}

.tch .matrix_tbl tbody tr:last-child {
    border-bottom: none
}

.tch .matrix_tbl tbody tr:hover {
    background: #15d7f00f
}

.tch .matrix_tbl tbody td {
    padding: 16px 28px;
    font-size: 16px;
    line-height: 1.6;
    letter-spacing: .01em;
    color: #222;
    vertical-align: top
}

.tch .matrix_tbl tbody td:first-child {
    font-weight: 700;
    color: #106372
}

.tch .ind_yes {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 36px;
    background: linear-gradient(83deg, #106372 0%, #15D7F0 100%)
}

.tch .ind_yes svg {
    display: block
}

.tch .ind_no {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 36px;
    background: #1063721f
}

.tch .ind_no svg {
    display: block
}

.tch .three_col {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 28px;
    margin-top: 56px
}

@media (max-width: 1280px) {
    .tch .three_col {
        grid-template-columns: 1fr 1fr
    }
}

@media (max-width: 768px) {
    .tch .three_col {
        grid-template-columns: 1fr
    }
}

.tch .col_card {
    background: #fff;
    border-radius: 0;
    padding: 28px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    box-shadow: 0 1px 4px -2px #10637214;
    transition: box-shadow .25s cubic-bezier(0.0, 0, 0.2, 1), transform .22s cubic-bezier(0.4, 0, 0.2, 1)
}

.tch .col_card:hover {
    box-shadow: 0 9px 48px -2px #10637224;
    transform: translateY(-2px)
}

.tch .col_card_head {
    display: flex;
    align-items: center;
    gap: 16px
}

.tch .col_card_h {
    font-size: 18px;
    line-height: 1.4;
    font-weight: 700;
    font-style: italic;
    color: #111;
    margin: 0;
    letter-spacing: .01em
}

.tch .col_card p {
    font-size: 16px;
    line-height: 1.6;
    letter-spacing: .01em;
    color: #333;
    margin: 0
}

.tch .pull_row {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 28px;
    align-items: start;
    margin-top: 56px
}

@media (max-width: 768px) {
    .tch .pull_row {
        grid-template-columns: 1fr
    }
}

.tch .pull_q {
    font-size: 32px;
    line-height: 1.1;
    font-weight: 800;
    color: #106372;
    letter-spacing: .01em;
    margin: 0;
    border-top: 3px solid #15D7F0;
    padding-top: 16px
}

.tch .pull_body {
    font-size: 16px;
    line-height: 1.6;
    letter-spacing: .01em;
    color: #222;
    margin: 0
}

.tch .hover_txt_grp {
    display: flex;
    flex-direction: column;
    gap: 8px
}

.tch .hover_txt_item {
    display: inline-block;
    font-size: 18px;
    font-weight: 700;
    color: #106372;
    letter-spacing: .01em;
    cursor: default;
    text-shadow: none;
    transition: text-shadow .26s cubic-bezier(0.4, 0, 0.2, 1), color .22s cubic-bezier(0.4, 0, 0.2, 1);
    line-height: 1.4
}

.tch .hover_txt_item:hover {
    color: #15D7F0;
    text-shadow: 0 6px 25px -2px #15d7f073
}

@media (max-width: 480px) {
    .tch .sec_a_h1 {
        font-size: 32px
    }

    .tch .sec_b_h2 {
        font-size: 32px
    }

    .tch .pull_q {
        font-size: 32px
    }

    .tch .pg_wrap {
        padding: 0 16px
    }

    .tch .sec_a {
        padding: 56px 0 28px
    }

    .tch .sec_b {
        padding: 28px 0 56px
    }
}

.ct-us {
    position: relative;
    width: 100%;
    max-width: 1440px;
    margin: 0 auto;
    background: #fff;
    overflow: hidden
}

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

.ct-us ::selection {
    background: #111;
    color: #fff
}

.ct-us .pg-band {
    position: absolute;
    top: 0;
    left: 0;
    width: 5px;
    height: 100%;
    background: linear-gradient(83deg, #106372 0%, #15D7F0 60%, #106372 100%);
    pointer-events: none;
    z-index: 1
}

.ct-us .atm-spot {
    position: absolute;
    border-radius: 36px;
    pointer-events: none;
    z-index: 0
}

.ct-us .atm-a {
    width: 320px;
    height: 320px;
    top: -80px;
    right: 60px;
    background: radial-gradient(ellipse at 30% 40%, #15d7f021 0%, transparent 70%);
    filter: blur(28px)
}

.ct-us .atm-b {
    width: 240px;
    height: 240px;
    bottom: 40px;
    left: 80px;
    background: radial-gradient(ellipse at 60% 60%, #1063721a 0%, transparent 70%);
    filter: blur(22px)
}

.ct-us .blk-open {
    position: relative;
    display: grid;
    grid-template-columns: 1fr 380px;
    min-height: 420px;
    padding: 96px 56px 56px;
    gap: 56px;
    align-items: center;
    background: #fff;
    border-bottom: 1.5px solid #F0EFEF;
    overflow: hidden
}

.ct-us .blk-open::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 120px;
    height: 2px;
    background: linear-gradient(83deg, transparent 0%, #15D7F0 50%, transparent 100%)
}

.ct-us .txt-zone {
    position: relative;
    z-index: 2;
    padding-left: 28px
}

.ct-us .lbl-eyebrow {
    display: inline-block;
    font-size: 16px;
    line-height: 1.4;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #106372;
    border-bottom: 1px dashed #15D7F0;
    margin-bottom: 28px
}

.ct-us .h-main {
    font-size: 62px;
    line-height: 1.1;
    letter-spacing: .01em;
    font-weight: 800;
    font-style: italic;
    color: #111;
    margin: 0 0 28px
}

.ct-us .h-main .grad-word {
    background: linear-gradient(83deg, #106372 0%, #15D7F0 100%), radial-gradient(ellipse at 80% 20%, #15d7f080 0%, transparent 60%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent
}

.ct-us .open-para {
    font-size: 18px;
    line-height: 1.6;
    letter-spacing: .01em;
    color: #333;
    margin: 0;
    max-width: 480px
}

.ct-us .img-strip {
    position: relative;
    height: 340px;
    border-radius: 0;
    overflow: hidden;
    background: linear-gradient(83deg, #106372 0%, #15D7F0 100%);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 28px
}

.ct-us .img-strip::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(83deg, #106372d9 0%, #15d7f066 100%), radial-gradient(ellipse at 20% 80%, #10637299 0%, transparent 60%);
    z-index: 1
}

.ct-us .strip-geo {
    position: absolute;
    top: 28px;
    right: 28px;
    width: 80px;
    height: 80px;
    border: 2px solid #fff3;
    border-radius: 0;
    z-index: 2
}

.ct-us .strip-geo::after {
    content: '';
    position: absolute;
    top: 12px;
    left: 12px;
    right: 12px;
    bottom: 12px;
    border: 1px solid #ffffff26
}

.ct-us .strip-lines {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1;
    overflow: hidden
}

.ct-us .strip-lines span {
    position: absolute;
    display: block;
    height: 1px;
    background: #ffffff12
}

.ct-us .strip-lines span:nth-child(1) {
    width: 100%;
    top: 25%
}

.ct-us .strip-lines span:nth-child(2) {
    width: 100%;
    top: 50%
}

.ct-us .strip-lines span:nth-child(3) {
    width: 100%;
    top: 75%
}

.ct-us .strip-lines span:nth-child(4) {
    width: 1px;
    height: 100%;
    left: 33%;
    background: #ffffff12
}

.ct-us .strip-lines span:nth-child(5) {
    width: 1px;
    height: 100%;
    left: 66%;
    background: #ffffff12
}

.ct-us .strip-label {
    position: relative;
    z-index: 3;
    color: #fff
}

.ct-us .strip-label h4 {
    font-size: 18px;
    line-height: 1.4;
    letter-spacing: .02em;
    font-weight: 700;
    margin: 0 0 8px;
    color: #fff
}

.ct-us .strip-label p {
    font-size: 16px;
    line-height: 1.4;
    color: #fffc;
    margin: 0
}

.ct-us .divider-a {
    display: flex;
    align-items: center;
    gap: 0;
    height: 2px;
    margin: 0 56px
}

.ct-us .divider-a span {
    display: block;
    height: 2px;
    flex: 1;
    background: #F0EFEF
}

.ct-us .divider-a em {
    display: block;
    width: 56px;
    height: 2px;
    background: linear-gradient(83deg, #106372, #15D7F0);
    flex-shrink: 0
}

.ct-us .blk-info {
    position: relative;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    background: #F0EFEF;
    border-bottom: 1.5px solid #ddd;
    overflow: hidden
}

.ct-us .blk-info::before {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    width: 1.5px;
    background: linear-gradient(180deg, transparent 0%, #106372 30%, #15D7F0 70%, transparent 100%);
    transform: translateX(-50%);
    z-index: 2
}

.ct-us .info-col {
    padding: 56px;
    position: relative
}

.ct-us .info-col:first-child {
    padding-left: 56px;
    padding-right: 56px
}

.ct-us .info-col:last-child {
    padding-left: 56px;
    padding-right: 56px
}

.ct-us .info-col h2 {
    font-size: 32px;
    line-height: 1.1;
    letter-spacing: .01em;
    font-weight: 700;
    font-style: italic;
    color: #111;
    margin: 0 0 28px
}

.ct-us .pull-row {
    display: flex;
    flex-direction: row;
    gap: 28px;
    align-items: flex-start;
    margin-bottom: 28px
}

.ct-us .pull-q {
    font-size: 32px;
    line-height: 1.1;
    font-weight: 800;
    color: #106372;
    letter-spacing: .01em;
    min-width: 56px;
    flex-shrink: 0
}

.ct-us .pull-body {
    font-size: 16px;
    line-height: 1.6;
    color: #333;
    letter-spacing: .01em
}

.ct-us .contact-items {
    display: flex;
    flex-direction: column;
    gap: 16px
}

.ct-us .c-item {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 16px
}

.ct-us .c-icon {
    width: 40px;
    height: 40px;
    border-radius: 0;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 1px 4px -2px #10637214;
    color: #106372;
    font-size: 18px
}

.ct-us .c-detail {
    display: flex;
    flex-direction: column;
    gap: 8px
}

.ct-us .c-lbl {
    font-size: 16px;
    line-height: 1.4;
    font-weight: 700;
    color: #106372;
    letter-spacing: .02em;
    text-transform: uppercase
}

.ct-us .c-val {
    font-size: 16px;
    line-height: 1.4;
    color: #222;
    letter-spacing: .01em
}

.ct-us .c-val a {
    color: #106372;
    text-decoration: underline;
    text-decoration-style: dashed;
    text-underline-offset: 3px;
    transition: color .22s cubic-bezier(0.4, 0, 0.2, 1)
}

.ct-us .c-val a:hover {
    color: #15D7F0
}

.ct-us .char-row {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 28px
}

.ct-us .char-item {
    font-size: 18px;
    font-weight: 700;
    color: #106372;
    cursor: default;
    letter-spacing: .01em;
    transition: color .2s cubic-bezier(0.4, 0, 0.2, 1);
    display: inline-block
}

.ct-us .char-item:hover {
    color: #15D7F0
}

.ct-us .divider-b {
    display: flex;
    align-items: center;
    gap: 0;
    height: 2px;
    margin: 0 56px
}

.ct-us .divider-b span {
    display: block;
    height: 2px;
    flex: 1;
    background: #F0EFEF
}

.ct-us .divider-b em {
    display: block;
    width: 96px;
    height: 2px;
    background: linear-gradient(83deg, #15D7F0, #106372);
    flex-shrink: 0
}

.ct-us .blk-form {
    position: relative;
    padding: 56px 56px 96px;
    background: #fff
}

.ct-us .blk-form::before {
    content: '';
    position: absolute;
    top: 0;
    left: 56px;
    right: 56px;
    height: 1px;
    background: #F0EFEF
}

.ct-us .form-layout {
    display: grid;
    grid-template-columns: 340px 1fr;
    gap: 56px;
    align-items: flex-start;
    max-width: 1100px
}

.ct-us .form-aside {
    padding: 28px;
    background: linear-gradient(83deg, #1063720f 0%, #15d7f00a 100%), radial-gradient(ellipse at 10% 90%, #10637214 0%, transparent 60%);
    border-radius: 0;
    border: 1px solid #1063721f;
    position: relative
}

.ct-us .form-aside::before {
    content: '';
    position: absolute;
    top: 28px;
    bottom: 28px;
    left: 0;
    width: 3px;
    background: linear-gradient(180deg, #106372 0%, #15D7F0 100%);
    border-radius: 0
}

.ct-us .form-aside h3 {
    font-size: 32px;
    line-height: 1.1;
    font-weight: 700;
    font-style: italic;
    color: #111;
    margin: 0 0 16px;
    letter-spacing: .01em
}

.ct-us .form-aside p {
    font-size: 16px;
    line-height: 1.6;
    color: #444;
    margin: 0 0 28px;
    letter-spacing: .01em
}

.ct-us .aside-tags {
    display: flex;
    flex-direction: column;
    gap: 8px
}

.ct-us .aside-tag {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    font-size: 16px;
    line-height: 1.4;
    color: #333;
    letter-spacing: .01em
}

.ct-us .aside-tag .mdi {
    color: #106372;
    font-size: 18px
}

.ct-us .frm {
    display: flex;
    flex-direction: column;
    gap: 28px
}

.ct-us .f-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px
}

.ct-us .f-group {
    display: flex;
    flex-direction: column;
    gap: 8px
}

.ct-us .f-lbl {
    font-size: 16px;
    line-height: 1.4;
    font-weight: 700;
    color: #222;
    letter-spacing: .01em
}

.ct-us .f-lbl .req {
    color: #106372;
    margin-left: 2px
}

.ct-us .f-inp {
    width: 100%;
    padding: 16px;
    font-size: 16px;
    line-height: 1.4;
    color: #111;
    background: #fff;
    border: 1.5px solid #ddd;
    border-radius: 0;
    outline: none;
    transition: border-color .22s cubic-bezier(0.4, 0, 0.2, 1), box-shadow .22s cubic-bezier(0.4, 0, 0.2, 1);
    letter-spacing: .01em
}

.ct-us .f-inp::placeholder {
    color: #aaa
}

.ct-us .f-inp:focus {
    border-color: #106372;
    box-shadow: 0 6px 25px -2px #10637217
}

.ct-us .budget-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px
}

.ct-us .bud-opt {
    position: relative
}

.ct-us .bud-opt input[type="radio"] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0
}

.ct-us .bud-opt label {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 16px 8px;
    border: 1.5px solid #ddd;
    border-radius: 0;
    cursor: pointer;
    font-size: 16px;
    line-height: 1.4;
    color: #444;
    text-align: center;
    transition: border-color .22s cubic-bezier(0.4, 0, 0.2, 1), background .22s cubic-bezier(0.4, 0, 0.2, 1), color .22s cubic-bezier(0.4, 0, 0.2, 1);
    letter-spacing: .01em;
    background: #fff
}

.ct-us .bud-opt label:hover {
    border-color: #15D7F0;
    background: #15d7f00a
}

.ct-us .bud-opt input[type="radio"]:checked+label {
    border-color: #106372;
    background: #10637212;
    color: #106372;
    font-weight: 700;
    box-shadow: 0 1px 4px -2px #10637214
}

.ct-us .bud-opt input[type="radio"]:focus-visible+label {
    outline: 2px solid #106372;
    outline-offset: 2px
}

.ct-us .bud-amt {
    font-size: 18px;
    font-weight: 800;
    letter-spacing: .01em;
    margin-bottom: 4px;
    color: #111
}

.ct-us .bud-opt input[type="radio"]:checked+label .bud-amt {
    color: #106372
}

.ct-us .privacy-row {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 16px;
    padding: 16px;
    background: #f0efef99;
    border-radius: 0
}

.ct-us .priv-chk {
    width: 20px;
    height: 20px;
    accent-color: #106372;
    flex-shrink: 0;
    margin-top: 2px;
    cursor: pointer
}

.ct-us .priv-txt {
    font-size: 16px;
    line-height: 1.6;
    color: #444;
    letter-spacing: .01em
}

.ct-us .priv-txt a {
    color: #106372;
    text-decoration: underline;
    text-decoration-style: dashed;
    text-underline-offset: 3px;
    transition: color .22s cubic-bezier(0.4, 0, 0.2, 1)
}

.ct-us .priv-txt a:hover {
    color: #15D7F0
}

.ct-us .btn-sub {
    align-self: flex-start;
    padding: 16px 56px;
    font-size: 18px;
    line-height: 1.4;
    font-weight: 700;
    letter-spacing: .02em;
    color: #fff;
    background: linear-gradient(83deg, #106372 0%, #15D7F0 100%), radial-gradient(ellipse at 80% 20%, #15d7f066 0%, transparent 60%);
    border: none;
    border-radius: 36px;
    cursor: pointer;
    transition: box-shadow .25s cubic-bezier(0.4, 0, 0.2, 1), transform .18s cubic-bezier(0.4, 0, 0.2, 1), opacity .22s cubic-bezier(0.0, 0, 0.2, 1);
    box-shadow: 0 6px 25px -2px #10637217
}

.ct-us .btn-sub:hover {
    box-shadow: 0 9px 48px -2px #10637224;
    opacity: .93
}

.ct-us .btn-sub:active {
    transform: scale(0.97);
    box-shadow: 0 1px 4px -2px #10637214
}

.ct-us .btn-sub:focus-visible {
    outline: 2px solid #106372;
    outline-offset: 3px
}

.ct-us .col-reveal {
    animation: col-in .5s cubic-bezier(0.4, 0, 0.2, 1) both
}

.ct-us .col-reveal.d1 {
    animation-delay: .08s
}

.ct-us .col-reveal.d2 {
    animation-delay: .22s
}

.ct-us .col-reveal.d3 {
    animation-delay: .38s
}

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

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

@media (max-width: 1280px) {
    .ct-us .blk-open {
        grid-template-columns: 1fr 300px;
        padding: 56px 28px;
        gap: 28px
    }

    .ct-us .h-main {
        font-size: 44px
    }

    .ct-us .form-layout {
        grid-template-columns: 280px 1fr;
        gap: 28px
    }

    .ct-us .blk-form {
        padding: 56px 28px 96px
    }

    .ct-us .info-col {
        padding: 56px 28px
    }

    .ct-us .info-col:first-child {
        padding-left: 28px;
        padding-right: 28px
    }

    .ct-us .info-col:last-child {
        padding-left: 28px;
        padding-right: 28px
    }

    .ct-us .divider-a,
    .ct-us .divider-b {
        margin: 0 28px
    }

    .ct-us .txt-zone {
        padding-left: 16px
    }
}

@media (max-width: 768px) {
    .ct-us .blk-open {
        grid-template-columns: 1fr;
        padding: 56px 16px 28px;
        gap: 28px
    }

    .ct-us .img-strip {
        height: 200px
    }

    .ct-us .h-main {
        font-size: 44px
    }

    .ct-us .txt-zone {
        padding-left: 8px
    }

    .ct-us .blk-info {
        grid-template-columns: 1fr
    }

    .ct-us .blk-info::before {
        display: none
    }

    .ct-us .info-col {
        padding: 28px 16px;
        border-bottom: 1px solid #ddd
    }

    .ct-us .info-col:first-child,
    .ct-us .info-col:last-child {
        padding-left: 16px;
        padding-right: 16px
    }

    .ct-us .form-layout {
        grid-template-columns: 1fr;
        gap: 28px
    }

    .ct-us .blk-form {
        padding: 28px 16px 56px
    }

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

    .ct-us .budget-grid {
        grid-template-columns: repeat(2, 1fr)
    }

    .ct-us .divider-a,
    .ct-us .divider-b {
        margin: 0 16px
    }

    .ct-us .btn-sub {
        width: 100%;
        text-align: center
    }
}

@media (max-width: 480px) {
    .ct-us .h-main {
        font-size: 32px
    }

    .ct-us .budget-grid {
        grid-template-columns: 1fr 1fr
    }

    .ct-us .blk-open {
        padding: 28px 16px
    }

    .ct-us .pull-row {
        flex-direction: column;
        gap: 8px
    }

    .ct-us .pull-q {
        font-size: 32px;
        min-width: auto
    }
}

.ld {
    max-width: 1440px;
    margin: 0 auto;
    overflow: hidden
}

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

.ld ::selection {
    background: #111;
    color: #fff
}

.ld .t_blk {
    position: relative;
    padding: 96px 56px;
    background: #fff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center
}

.ld .t_blob {
    position: absolute;
    border-radius: 36px;
    pointer-events: none;
    z-index: 0
}

.ld .t_blob.a {
    width: 420px;
    height: 280px;
    background: linear-gradient(83deg, #10637221, #15d7f017);
    filter: blur(48px);
    top: -56px;
    left: -96px
}

.ld .t_blob.b {
    width: 360px;
    height: 240px;
    background: radial-gradient(ellipse at 30% 70%, #15d7f01c, #10637212);
    filter: blur(56px);
    bottom: -28px;
    right: -56px
}

.ld .t_blob.c {
    width: 200px;
    height: 200px;
    background: linear-gradient(83deg, #f0efef99, #15d7f014);
    filter: blur(32px);
    top: 56px;
    right: 96px
}

.ld .t_inner {
    position: relative;
    z-index: 1;
    max-width: 860px;
    width: 100%
}

.ld .t_tag {
    display: inline-block;
    font-size: 16px;
    line-height: 1.4;
    letter-spacing: .02em;
    color: #106372;
    border: 1px solid #10637240;
    border-radius: 36px;
    padding: 8px 28px;
    margin-bottom: 28px;
    background: #f0efef99
}

.ld .t_h1 {
    font-size: 62px;
    line-height: 1.1;
    letter-spacing: .01em;
    color: #0e3d46;
    margin: 0 0 28px;
    font-style: italic
}

.ld .t_h1 .grad {
    background: linear-gradient(83deg, #106372 30%, #15D7F0 100%), radial-gradient(ellipse at 60% 40%, #15D7F0, #106372);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    font-style: normal
}

.ld .t_sub {
    font-size: 18px;
    line-height: 1.6;
    letter-spacing: .01em;
    color: #2a5a65;
    max-width: 640px;
    margin: 0 auto 28px
}

.ld .t_img_row {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 28px;
    margin-top: 28px
}

.ld .t_img_frame {
    position: relative;
    width: 340px;
    height: 220px;
    border-radius: 36px;
    overflow: hidden;
    box-shadow: 0 6px 25px -2px #10637217
}

.ld .t_img_frame img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .28s cubic-bezier(0.4, 0, 0.2, 1)
}

.ld .t_img_frame:hover img {
    transform: scale(1.03)
}

.ld .t_img_overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(83deg, #10637261, #15d7f02e);
    pointer-events: none
}

.ld .t_img_badge {
    position: absolute;
    bottom: 16px;
    left: 16px;
    background: #fff;
    border-radius: 36px;
    padding: 8px 16px;
    font-size: 16px;
    line-height: 1.4;
    color: #106372;
    letter-spacing: .01em;
    box-shadow: 0 1px 4px -2px #10637214
}

.ld .t_stats {
    display: flex;
    flex-direction: row;
    gap: 56px;
    justify-content: center;
    margin-top: 56px
}

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

.ld .t_stat_num {
    font-size: 44px;
    line-height: 1.1;
    letter-spacing: .01em;
    color: #106372;
    font-style: italic
}

.ld .t_stat_lbl {
    font-size: 16px;
    line-height: 1.4;
    color: #2a5a65;
    letter-spacing: .02em
}

.ld .ppl {
    background: #F0EFEF;
    padding: 96px 56px;
    position: relative
}

.ld .ppl_diag {
    position: absolute;
    top: 0;
    right: 0;
    width: 180px;
    height: 180px;
    pointer-events: none;
    overflow: hidden
}

.ld .ppl_diag svg {
    width: 100%;
    height: 100%
}

.ld .ppl_grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px;
    max-width: 1200px;
    margin: 0 auto
}

.ld .ppl_hd {
    grid-column: 1 / -1;
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 56px;
    margin-bottom: 28px
}

.ld .ppl_pull {
    font-size: 32px;
    line-height: 1.1;
    letter-spacing: .01em;
    color: #106372;
    font-style: italic;
    min-width: 280px;
    max-width: 320px
}

.ld .ppl_pull .grad {
    background: linear-gradient(83deg, #106372 20%, #15D7F0 100%), radial-gradient(ellipse at 70% 30%, #15D7F0, #106372);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent
}

.ld .ppl_desc {
    font-size: 18px;
    line-height: 1.6;
    letter-spacing: .01em;
    color: #1a4a55;
    max-width: 560px;
    padding-top: 8px
}

.ld .card {
    background: #fff;
    border-radius: 36px;
    padding: 28px;
    box-shadow: 0 1px 4px -2px #10637214;
    transition: box-shadow .22s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    gap: 16px
}

.ld .card:hover {
    box-shadow: 0 9px 48px -2px #10637224
}

.ld .card.wide {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 28px;
    align-items: center
}

.ld .card_img {
    width: 280px;
    height: 200px;
    border-radius: 36px;
    overflow: hidden;
    flex-shrink: 0
}

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

.ld .card_body {
    display: flex;
    flex-direction: column;
    gap: 16px
}

.ld .card_q {
    font-size: 18px;
    line-height: 1.6;
    letter-spacing: .01em;
    color: #0e3d46;
    border-top: 2px solid #15D7F0;
    padding-top: 16px
}

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

.ld .card_name {
    font-size: 16px;
    line-height: 1.4;
    color: #106372;
    letter-spacing: .02em
}

.ld .card_role {
    font-size: 16px;
    line-height: 1.4;
    color: #5a8a95;
    letter-spacing: .01em
}

.ld .card_before {
    font-size: 16px;
    line-height: 1.4;
    color: #5a8a95;
    background: #F0EFEF;
    border-radius: 36px;
    padding: 8px 16px;
    letter-spacing: .01em
}

.ld .card_after {
    font-size: 16px;
    line-height: 1.4;
    color: #106372;
    background: #15d7f01a;
    border-radius: 36px;
    padding: 8px 16px;
    letter-spacing: .01em
}

.ld .card_arrow {
    font-size: 16px;
    color: #15D7F0;
    display: flex;
    align-items: center
}

.ld .val {
    background: #fff;
    padding: 96px 56px;
    position: relative
}

.ld .val_curve {
    position: absolute;
    top: -2px;
    left: 0;
    width: 100%;
    overflow: hidden;
    line-height: 0;
    pointer-events: none
}

.ld .val_layout {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 56px;
    align-items: start
}

.ld .val_left {
    display: flex;
    flex-direction: column;
    gap: 28px
}

.ld .val_h {
    font-size: 44px;
    line-height: 1.1;
    letter-spacing: .01em;
    color: #0e3d46;
    font-style: italic;
    margin: 0
}

.ld .val_h .grad {
    background: linear-gradient(83deg, #106372 10%, #15D7F0 90%), radial-gradient(ellipse at 50% 60%, #15D7F0, #106372);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent
}

.ld .val_body {
    font-size: 18px;
    line-height: 1.6;
    letter-spacing: .01em;
    color: #1a4a55
}

.ld .val_pull {
    font-size: 32px;
    line-height: 1.1;
    letter-spacing: .01em;
    color: #106372;
    font-style: italic;
    border-top: 2px solid #1063722e;
    padding-top: 16px
}

.ld .val_img_wrap {
    position: relative;
    border-radius: 36px;
    overflow: hidden;
    box-shadow: 0 6px 25px -2px #10637217
}

.ld .val_img_wrap img {
    width: 100%;
    height: 320px;
    object-fit: cover;
    display: block
}

.ld .val_img_badge {
    position: absolute;
    top: 16px;
    right: 16px;
    background: #106372;
    color: #fff;
    border-radius: 36px;
    padding: 8px 16px;
    font-size: 16px;
    line-height: 1.4;
    letter-spacing: .01em
}

.ld .val_right {
    display: flex;
    flex-direction: column;
    gap: 28px
}

.ld .tl {
    display: flex;
    flex-direction: column;
    gap: 0
}

.ld .tl_period {
    display: flex;
    flex-direction: column;
    gap: 0
}

.ld .tl_period_label {
    font-size: 16px;
    line-height: 1.4;
    letter-spacing: .02em;
    color: #15D7F0;
    text-transform: uppercase;
    margin-bottom: 16px;
    font-style: italic
}

.ld .tl_item {
    display: flex;
    flex-direction: row;
    gap: 16px;
    padding-bottom: 28px;
    position: relative
}

.ld .tl_item::before {
    content: '';
    position: absolute;
    left: 11px;
    top: 24px;
    bottom: 0;
    width: 2px;
    background: linear-gradient(to bottom, #10637233, #15d7f014)
}

.ld .tl_item:last-child::before {
    display: none
}

.ld .tl_dot {
    width: 24px;
    height: 24px;
    border-radius: 0;
    background: #106372;
    flex-shrink: 0;
    margin-top: 4px;
    clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
    transition: background .2s cubic-bezier(0.4, 0, 0.2, 1)
}

.ld .tl_item:hover .tl_dot {
    background: #15D7F0
}

.ld .tl_txt {
    display: flex;
    flex-direction: column;
    gap: 8px
}

.ld .tl_label {
    font-size: 16px;
    line-height: 1.4;
    letter-spacing: .02em;
    color: #106372
}

.ld .tl_desc {
    font-size: 16px;
    line-height: 1.6;
    letter-spacing: .01em;
    color: #1a4a55
}

.ld .tl_sep {
    height: 1px;
    background: linear-gradient(83deg, #10637226, #15d7f01a);
    margin: 8px 0 28px
}

.ld .cre {
    background: #F0EFEF;
    padding: 96px 56px;
    position: relative
}

.ld .cre_curve {
    position: absolute;
    top: -2px;
    left: 0;
    width: 100%;
    overflow: hidden;
    line-height: 0;
    pointer-events: none
}

.ld .cre_diag {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 160px;
    height: 160px;
    pointer-events: none;
    overflow: hidden
}

.ld .cre_diag svg {
    width: 100%;
    height: 100%
}

.ld .cre_top {
    max-width: 1200px;
    margin: 0 auto 56px;
    text-align: center
}

.ld .cre_h {
    font-size: 44px;
    line-height: 1.1;
    letter-spacing: .01em;
    color: #0e3d46;
    font-style: italic;
    margin: 0 0 16px
}

.ld .cre_h .grad {
    background: linear-gradient(83deg, #106372 15%, #15D7F0 85%), radial-gradient(ellipse at 40% 60%, #15D7F0, #106372);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent
}

.ld .cre_sub {
    font-size: 18px;
    line-height: 1.6;
    letter-spacing: .01em;
    color: #1a4a55;
    max-width: 620px;
    margin: 0 auto
}

.ld .cre_cols {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 28px
}

.ld .cre_col {
    border-radius: 36px;
    padding: 28px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    transition: box-shadow .25s cubic-bezier(0.0, 0, 0.2, 1)
}

.ld .cre_col.dark {
    background: #106372;
    color: #fff
}

.ld .cre_col.mid {
    background: #0e3d46;
    color: #fff
}

.ld .cre_col.light {
    background: #fff;
    color: #0e3d46;
    box-shadow: 0 1px 4px -2px #10637214
}

.ld .cre_col:hover {
    box-shadow: 0 9px 48px -2px #10637224
}

.ld .cre_img {
    width: 100%;
    height: 200px;
    border-radius: 36px;
    overflow: hidden
}

.ld .cre_img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .28s cubic-bezier(0.4, 0, 0.2, 1)
}

.ld .cre_col:hover .cre_img img {
    transform: scale(1.04)
}

.ld .cre_name {
    font-size: 18px;
    line-height: 1.4;
    letter-spacing: .01em
}

.ld .cre_col.dark .cre_name,
.ld .cre_col.mid .cre_name {
    color: #15D7F0
}

.ld .cre_col.light .cre_name {
    color: #106372
}

.ld .cre_role {
    font-size: 16px;
    line-height: 1.4;
    letter-spacing: .02em;
    font-style: italic
}

.ld .cre_col.dark .cre_role,
.ld .cre_col.mid .cre_role {
    color: #f0efefbf
}

.ld .cre_col.light .cre_role {
    color: #5a8a95
}

.ld .cre_bio {
    font-size: 16px;
    line-height: 1.6;
    letter-spacing: .01em
}

.ld .cre_col.dark .cre_bio,
.ld .cre_col.mid .cre_bio {
    color: #f0efefe0
}

.ld .cre_col.light .cre_bio {
    color: #1a4a55
}

.ld .cre_tags {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 8px
}

.ld .cre_tag {
    font-size: 16px;
    line-height: 1.4;
    letter-spacing: .01em;
    border-radius: 36px;
    padding: 8px 16px
}

.ld .cre_col.dark .cre_tag {
    background: #15d7f026;
    color: #15D7F0
}

.ld .cre_col.mid .cre_tag {
    background: #15d7f01f;
    color: #15D7F0
}

.ld .cre_col.light .cre_tag {
    background: #F0EFEF;
    color: #106372
}

.ld .stats_row {
    max-width: 1200px;
    margin: 56px auto 0;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 28px
}

.ld .stat_box {
    background: #fff;
    border-radius: 36px;
    padding: 28px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    align-items: flex-start;
    box-shadow: 0 1px 4px -2px #10637214;
    animation: shadow_pulse 3s cubic-bezier(0.4, 0, 0.2, 1) infinite
}

@keyframes shadow_pulse {

    0%,
    100% {
        box-shadow: 0 1px 4px -2px #10637214
    }

    50% {
        box-shadow: 0 9px 48px -2px #10637224
    }
}

.ld .stat_box_num {
    font-size: 44px;
    line-height: 1.1;
    letter-spacing: .01em;
    color: #106372;
    font-style: italic
}

.ld .stat_box_lbl {
    font-size: 16px;
    line-height: 1.4;
    letter-spacing: .02em;
    color: #2a5a65
}

.ld .vi_bar {
    max-width: 1200px;
    margin: 28px auto 0;
    background: #fff;
    border-radius: 36px;
    padding: 28px;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 28px;
    box-shadow: 0 1px 4px -2px #10637214
}

.ld .vi_label {
    font-size: 16px;
    line-height: 1.4;
    letter-spacing: .01em;
    color: #106372;
    white-space: nowrap
}

.ld .vi_track {
    flex: 1;
    height: 8px;
    background: #F0EFEF;
    border-radius: 36px;
    overflow: hidden
}

.ld .vi_fill {
    height: 100%;
    border-radius: 36px;
    background: linear-gradient(83deg, #106372, #15D7F0);
    transition: width .5s cubic-bezier(0.4, 0, 0.2, 1)
}

.ld .vi_pct {
    font-size: 16px;
    line-height: 1.4;
    letter-spacing: .01em;
    color: #106372;
    white-space: nowrap
}

.ld a {
    color: #106372;
    text-decoration: underline;
    text-decoration-style: dashed;
    text-underline-offset: 3px;
    transition: color .2s cubic-bezier(0.4, 0, 0.2, 1)
}

.ld a:hover {
    color: #15D7F0
}

.ld a:focus-visible {
    outline: 3px solid #15D7F0 !important;
    outline-offset: 3px !important;
    border-radius: 0 !important
}

.ld button:focus-visible,
.ld input:focus-visible,
.ld textarea:focus-visible,
.ld select:focus-visible {
    outline: 3px solid #15D7F0 !important;
    outline-offset: 3px !important
}

@media (max-width: 1280px) {
    .ld .t_h1 {
        font-size: 44px
    }

    .ld .cre_cols {
        grid-template-columns: 1fr 1fr
    }

    .ld .cre_col.light {
        grid-column: 1 / -1
    }

    .ld .stats_row {
        grid-template-columns: repeat(2, 1fr)
    }
}

@media (max-width: 768px) {
    .ld .t_blk {
        padding: 56px 28px
    }

    .ld .t_h1 {
        font-size: 32px
    }

    .ld .t_img_row {
        flex-direction: column
    }

    .ld .t_img_frame {
        width: 100%
    }

    .ld .t_stats {
        gap: 28px;
        flex-wrap: wrap
    }

    .ld .ppl {
        padding: 56px 28px
    }

    .ld .ppl_grid {
        grid-template-columns: 1fr
    }

    .ld .ppl_hd {
        flex-direction: column;
        gap: 16px
    }

    .ld .ppl_pull {
        min-width: unset;
        max-width: unset
    }

    .ld .card.wide {
        grid-template-columns: 1fr
    }

    .ld .card_img {
        width: 100%
    }

    .ld .val {
        padding: 56px 28px
    }

    .ld .val_layout {
        grid-template-columns: 1fr;
        gap: 28px
    }

    .ld .cre {
        padding: 56px 28px
    }

    .ld .cre_cols {
        grid-template-columns: 1fr
    }

    .ld .cre_col.light {
        grid-column: auto
    }

    .ld .stats_row {
        grid-template-columns: 1fr 1fr;
        gap: 16px
    }

    .ld .vi_bar {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px
    }

    .ld .vi_track {
        width: 100%
    }
}

@media (max-width: 480px) {
    .ld .t_blk {
        padding: 56px 16px
    }

    .ld .t_stats {
        flex-direction: column;
        gap: 16px
    }

    .ld .t_stat_num {
        font-size: 32px
    }

    .ld .ppl {
        padding: 56px 16px
    }

    .ld .val {
        padding: 56px 16px
    }

    .ld .cre {
        padding: 56px 16px
    }

    .ld .stats_row {
        grid-template-columns: 1fr
    }

    .ld .stat_box_num {
        font-size: 32px
    }
}

.ab-us {
    width: 100%;
    max-width: 1440px;
    margin: 0 auto;
    overflow-x: clip
}

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

.ab-us ::selection {
    background: #111;
    color: #fff
}

.ab-us .grad-word {
    background: linear-gradient(83deg, #106372 30%, #15D7F0 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text
}

.ab-us .ttl {
    position: relative;
    padding: 96px 56px 0;
    text-align: center;
    background: #fff;
    border-bottom: 2px solid #F0EFEF
}

.ab-us .ttl-circles {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden
}

.ab-us .ttl-circles span {
    position: absolute;
    border-radius: 36px;
    border: 1.5px solid #10637214
}

.ab-us .ttl-circles span:nth-child(1) {
    width: 340px;
    height: 340px;
    top: -80px;
    left: -60px
}

.ab-us .ttl-circles span:nth-child(2) {
    width: 220px;
    height: 220px;
    top: 40px;
    right: 80px;
    border-color: #15d7f01a
}

.ab-us .ttl-circles span:nth-child(3) {
    width: 160px;
    height: 160px;
    bottom: 120px;
    left: 30%;
    border-color: #1063720f
}

.ab-us .ttl-txt {
    position: relative;
    z-index: 1;
    max-width: 720px;
    margin: 0 auto;
    padding: 0 28px
}

.ab-us .ttl-txt h1 {
    font-size: 62px;
    line-height: 1.1;
    letter-spacing: .01em;
    color: #111;
    margin: 0 0 28px;
    font-style: italic
}

.ab-us .ttl-txt p {
    font-size: 18px;
    line-height: 1.6;
    letter-spacing: .01em;
    color: #2a3a3e;
    margin: 0 0 28px
}

.ab-us .ttl-acts {
    display: flex;
    flex-direction: row;
    gap: 16px;
    justify-content: center;
    align-items: center;
    margin-bottom: 56px
}

.ab-us .act-pri {
    display: inline-block;
    padding: 16px 28px;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: .02em;
    color: #fff;
    background: linear-gradient(83deg, #106372 0%, #15D7F0 100%);
    border-radius: 0;
    text-decoration: none;
    border: none;
    transition: opacity .22s cubic-bezier(0.4, 0, 0.2, 1), transform .18s cubic-bezier(0.4, 0, 0.2, 1)
}

.ab-us .act-pri:hover {
    opacity: .88
}

.ab-us .act-pri:active {
    transform: scale(0.97)
}

.ab-us .act-sec {
    display: inline-block;
    padding: 16px 28px;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: .02em;
    color: #106372;
    background: transparent;
    border: 2px solid #106372;
    border-radius: 0;
    text-decoration: none;
    transition: background .24s cubic-bezier(0.0, 0, 0.2, 1), color .24s cubic-bezier(0.0, 0, 0.2, 1), transform .18s cubic-bezier(0.4, 0, 0.2, 1)
}

.ab-us .act-sec:hover {
    background: #106372;
    color: #fff
}

.ab-us .act-sec:active {
    transform: scale(0.97)
}

.ab-us .ttl-img-wrap {
    position: relative;
    max-width: 900px;
    margin: 0 auto;
    border-radius: 0;
    overflow: hidden;
    box-shadow: 0 9px 48px -2px #10637224
}

.ab-us .ttl-img-wrap img {
    width: 100%;
    height: 480px;
    object-fit: cover;
    display: block
}

.ab-us .ttl-img-grad {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, #1063728c 0%, transparent 55%);
    pointer-events: none
}

.ab-us .split {
    display: flex;
    flex-direction: row;
    background: #10637208;
    border-top: 1.5px solid #F0EFEF;
    border-bottom: 1.5px solid #F0EFEF
}

.ab-us .split-left {
    flex: 0 0 30%;
    padding: 96px 28px 96px 56px;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    border-right: 2px solid #F0EFEF;
    position: relative
}

.ab-us .split-left::after {
    content: '';
    position: absolute;
    right: -5px;
    top: 56px;
    bottom: 56px;
    width: 2px;
    background: linear-gradient(180deg, transparent, #15D7F0 40%, #106372 70%, transparent);
    pointer-events: none
}

.ab-us .num-pair {
    display: flex;
    flex-direction: column;
    gap: 56px;
    margin-top: 28px
}

.ab-us .num-item {
    display: flex;
    flex-direction: column;
    gap: 8px
}

.ab-us .num-before {
    font-size: 44px;
    line-height: 1.1;
    font-weight: 300;
    letter-spacing: .01em;
    color: #c5d8dc;
    text-decoration: line-through;
    text-decoration-color: #1063724d
}

.ab-us .num-after {
    font-size: 62px;
    line-height: 1.1;
    font-weight: 800;
    letter-spacing: .01em;
    background: linear-gradient(83deg, #106372 0%, #15D7F0 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text
}

.ab-us .num-label {
    font-size: 16px;
    line-height: 1.4;
    letter-spacing: .02em;
    color: #3a5560
}

.ab-us .split-right {
    flex: 1 1 70%;
    padding: 96px 56px
}

.ab-us .split-right h2 {
    font-size: 44px;
    line-height: 1.1;
    letter-spacing: .01em;
    color: #111;
    margin: 0 0 28px;
    font-style: italic
}

.ab-us .pull-wrap {
    display: flex;
    flex-direction: row;
    gap: 28px;
    align-items: flex-start;
    margin-bottom: 28px
}

.ab-us .pull-quote {
    flex: 0 0 220px;
    font-size: 18px;
    line-height: 1.4;
    letter-spacing: .01em;
    font-weight: 700;
    color: #106372;
    border-top: 3px solid #15D7F0;
    padding-top: 16px
}

.ab-us .pull-body {
    flex: 1 1 auto;
    font-size: 16px;
    line-height: 1.6;
    letter-spacing: .01em;
    color: #2a3a3e
}

.ab-us .pull-body p {
    margin: 0 0 16px
}

.ab-us .pull-body p:last-child {
    margin-bottom: 0
}

.ab-us .split-img {
    margin-top: 28px;
    width: 100%;
    height: 280px;
    object-fit: cover;
    display: block;
    border-radius: 0;
    box-shadow: 0 6px 25px -2px #10637217
}

.ab-us .div-band {
    height: 6px;
    background: linear-gradient(83deg, #106372 0%, #15D7F0 55%, #F0EFEF 100%)
}

.ab-us .team {
    padding: 96px 56px;
    background: #fff;
    text-align: center
}

.ab-us .team h2 {
    font-size: 44px;
    line-height: 1.1;
    letter-spacing: .01em;
    color: #111;
    margin: 0 0 16px;
    font-style: italic
}

.ab-us .team-sub {
    font-size: 18px;
    line-height: 1.6;
    letter-spacing: .01em;
    color: #3a5560;
    max-width: 560px;
    margin: 0 auto 56px
}

.ab-us .team-row {
    display: flex;
    flex-direction: row;
    gap: 28px;
    justify-content: center;
    opacity: 0;
    transform: translateY(28px);
    animation: row-reveal .5s cubic-bezier(0.0, 0, 0.2, 1) forwards
}

.ab-us .team-row:nth-child(3) {
    animation-delay: .1s
}

.ab-us .team-row:nth-child(4) {
    animation-delay: .22s
}

@keyframes row-reveal {
    to {
        opacity: 1;
        transform: translateY(0)
    }
}

.ab-us .person {
    flex: 0 0 calc(33.33% - 19px);
    max-width: 340px;
    border: 1.5px solid #F0EFEF;
    box-shadow: 0 1px 4px -2px #10637214;
    padding: 28px;
    text-align: left;
    position: relative;
    transition: box-shadow .24s cubic-bezier(0.4, 0, 0.2, 1), border-color .24s cubic-bezier(0.4, 0, 0.2, 1)
}

.ab-us .person::before {
    content: '';
    position: absolute;
    inset: 3px;
    border: 1px solid #15d7f026;
    pointer-events: none
}

.ab-us .person:hover {
    box-shadow: 0 6px 25px -2px #10637217;
    border-color: #15D7F0
}

.ab-us .person-role {
    font-size: 16px;
    line-height: 1.4;
    letter-spacing: .02em;
    color: #106372;
    font-weight: 700;
    margin-bottom: 8px;
    text-transform: uppercase;
    font-size: 16px
}

.ab-us .person h4 {
    font-size: 18px;
    line-height: 1.4;
    letter-spacing: .01em;
    color: #111;
    margin: 0 0 16px;
    font-weight: 800
}

.ab-us .person p {
    font-size: 16px;
    line-height: 1.6;
    letter-spacing: .01em;
    color: #3a5560;
    margin: 0
}

.ab-us .person-icon {
    width: 40px;
    height: 40px;
    border-radius: 0;
    background: linear-gradient(83deg, #106372, #15D7F0);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 16px
}

.ab-us .person-icon i {
    color: #fff;
    font-size: 18px
}

.ab-us .lbl-head {
    display: inline-flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0
}

.ab-us .lbl-head .lc {
    display: inline-block;
    color: #111;
    transition: color .2s cubic-bezier(0.4, 0, 0.2, 1)
}

.ab-us .lbl-head:hover .lc:nth-child(1) {
    color: #106372;
    transition-delay: 0s
}

.ab-us .lbl-head:hover .lc:nth-child(2) {
    color: #106372;
    transition-delay: .03s
}

.ab-us .lbl-head:hover .lc:nth-child(3) {
    color: #106372;
    transition-delay: .06s
}

.ab-us .lbl-head:hover .lc:nth-child(4) {
    color: #15D7F0;
    transition-delay: .09s
}

.ab-us .lbl-head:hover .lc:nth-child(5) {
    color: #15D7F0;
    transition-delay: .12s
}

.ab-us .lbl-head:hover .lc:nth-child(6) {
    color: #15D7F0;
    transition-delay: .15s
}

.ab-us .lbl-head:hover .lc:nth-child(7) {
    color: #106372;
    transition-delay: .18s
}

.ab-us .lbl-head:hover .lc:nth-child(8) {
    color: #106372;
    transition-delay: .21s
}

.ab-us .lbl-head:hover .lc:nth-child(9) {
    color: #106372;
    transition-delay: .24s
}

.ab-us .lbl-head:hover .lc:nth-child(10) {
    color: #15D7F0;
    transition-delay: .27s
}

.ab-us .lbl-head:hover .lc:nth-child(11) {
    color: #15D7F0;
    transition-delay: .3s
}

.ab-us .lbl-head:hover .lc:nth-child(12) {
    color: #106372;
    transition-delay: .33s
}

.ab-us .lbl-head:hover .lc:nth-child(13) {
    color: #106372;
    transition-delay: .36s
}

.ab-us .lbl-head:hover .lc:nth-child(14) {
    color: #15D7F0;
    transition-delay: .39s
}

.ab-us .lbl-head:hover .lc:nth-child(15) {
    color: #106372;
    transition-delay: .42s
}

.ab-us .lbl-head:hover .lc:nth-child(16) {
    color: #15D7F0;
    transition-delay: .45s
}

.ab-us .lbl-head:hover .lc:nth-child(17) {
    color: #106372;
    transition-delay: .48s
}

.ab-us .lbl-head:hover .lc:nth-child(18) {
    color: #15D7F0;
    transition-delay: .51s
}

.ab-us .lbl-head:hover .lc:nth-child(19) {
    color: #106372;
    transition-delay: .54s
}

.ab-us .lbl-head:hover .lc:nth-child(20) {
    color: #15D7F0;
    transition-delay: .57s
}

.ab-us .div-line {
    height: 2px;
    background: linear-gradient(83deg, #F0EFEF 0%, #15D7F0 50%, #106372 100%)
}

.ab-us .vals {
    padding: 96px 56px;
    background: #10637208
}

.ab-us .vals-inner {
    max-width: 760px;
    margin: 0 auto
}

.ab-us .vals h2 {
    font-size: 44px;
    line-height: 1.1;
    letter-spacing: .01em;
    color: #111;
    margin: 0 0 16px;
    font-style: italic;
    text-align: center
}

.ab-us .vals-lead {
    font-size: 18px;
    line-height: 1.6;
    letter-spacing: .01em;
    color: #3a5560;
    text-align: center;
    margin: 0 0 56px
}

.ab-us .vals-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px
}

.ab-us .val-card {
    border: 1.5px solid #F0EFEF;
    padding: 28px;
    background: #fff;
    position: relative;
    box-shadow: 0 1px 4px -2px #10637214;
    opacity: 0;
    transform: translateY(24px);
    animation: row-reveal .5s cubic-bezier(0.0, 0, 0.2, 1) forwards
}

.ab-us .val-card::after {
    content: '';
    position: absolute;
    inset: 4px;
    border: 1px solid #10637212;
    pointer-events: none
}

.ab-us .val-card:nth-child(1) {
    animation-delay: .08s
}

.ab-us .val-card:nth-child(2) {
    animation-delay: .18s
}

.ab-us .val-card:nth-child(3) {
    animation-delay: .28s
}

.ab-us .val-card:nth-child(4) {
    animation-delay: .38s
}

.ab-us .val-card h5 {
    font-size: 18px;
    line-height: 1.4;
    letter-spacing: .01em;
    color: #106372;
    margin: 0 0 16px;
    font-weight: 800;
    display: flex;
    align-items: center;
    gap: 8px
}

.ab-us .val-card h5 i {
    font-size: 18px;
    color: #15D7F0
}

.ab-us .val-card p {
    font-size: 16px;
    line-height: 1.6;
    letter-spacing: .01em;
    color: #2a3a3e;
    margin: 0
}

.ab-us .vals-img-row {
    margin-top: 56px;
    display: flex;
    flex-direction: row;
    gap: 28px;
    align-items: stretch
}

.ab-us .vals-img-wrap {
    flex: 0 0 340px;
    position: relative;
    overflow: hidden;
    box-shadow: 0 6px 25px -2px #10637217
}

.ab-us .vals-img-wrap img {
    width: 100%;
    height: 100%;
    min-height: 260px;
    object-fit: cover;
    display: block;
    filter: saturate(0.85) brightness(0.97)
}

.ab-us .vals-aside {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 16px
}

.ab-us .vals-aside h5 {
    font-size: 18px;
    line-height: 1.4;
    letter-spacing: .01em;
    color: #111;
    margin: 0;
    font-weight: 700
}

.ab-us .vals-aside p {
    font-size: 16px;
    line-height: 1.6;
    letter-spacing: .01em;
    color: #2a3a3e;
    margin: 0
}

.ab-us .vals-aside a {
    display: inline-block;
    color: #106372;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: .02em;
    text-decoration: underline;
    text-decoration-style: dashed;
    text-underline-offset: 4px;
    transition: color .2s cubic-bezier(0.4, 0, 0.2, 1)
}

.ab-us .vals-aside a:hover {
    color: #15D7F0
}

@media (max-width: 1280px) {
    .ab-us .ttl {
        padding: 56px 28px 0
    }

    .ab-us .ttl-img-wrap img {
        height: 380px
    }

    .ab-us .split-left {
        padding: 56px 28px
    }

    .ab-us .split-right {
        padding: 56px 28px
    }

    .ab-us .team {
        padding: 56px 28px
    }

    .ab-us .vals {
        padding: 56px 28px
    }

    .ab-us .vals-inner {
        max-width: 100%
    }
}

@media (max-width: 768px) {
    .ab-us .ttl-txt h1 {
        font-size: 44px
    }

    .ab-us .ttl-img-wrap img {
        height: 260px
    }

    .ab-us .ttl-acts {
        flex-direction: column;
        align-items: stretch
    }

    .ab-us .act-pri,
    .ab-us .act-sec {
        text-align: center
    }

    .ab-us .split {
        flex-direction: column
    }

    .ab-us .split-left {
        flex: none;
        border-right: none;
        border-bottom: 2px solid #F0EFEF;
        padding: 56px 28px 28px
    }

    .ab-us .split-left::after {
        display: none
    }

    .ab-us .split-right {
        padding: 28px 28px 56px
    }

    .ab-us .split-right h2 {
        font-size: 32px
    }

    .ab-us .pull-wrap {
        flex-direction: column;
        gap: 16px
    }

    .ab-us .pull-quote {
        flex: none
    }

    .ab-us .num-pair {
        flex-direction: row;
        gap: 28px;
        flex-wrap: wrap
    }

    .ab-us .team-row {
        flex-direction: column;
        align-items: center
    }

    .ab-us .person {
        flex: none;
        width: 100%;
        max-width: 100%
    }

    .ab-us .vals-grid {
        grid-template-columns: 1fr
    }

    .ab-us .vals-img-row {
        flex-direction: column
    }

    .ab-us .vals-img-wrap {
        flex: none
    }

    .ab-us .vals h2,
    .ab-us .team h2 {
        font-size: 32px
    }
}

@media (max-width: 480px) {
    .ab-us .ttl-txt h1 {
        font-size: 32px
    }

    .ab-us .num-before {
        font-size: 32px
    }

    .ab-us .num-after {
        font-size: 44px
    }

    .ab-us .split-right h2 {
        font-size: 32px
    }

    .ab-us .ttl-txt {
        padding: 0 8px
    }
}

.lrn-prog {
    width: 100%;
    max-width: 1440px;
    margin: 0 auto;
    overflow: hidden
}

.lrn-prog .pg-band {
    width: 100%;
    background: #106372;
    position: relative;
    padding: 8px 56px;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 16px;
    overflow: hidden
}

.lrn-prog .pg-band::before {
    content: "";
    position: absolute;
    right: 56px;
    top: 0;
    bottom: 0;
    width: 3px;
    background: #15D7F0;
    opacity: .4
}

.lrn-prog .pg-band::after {
    content: "";
    position: absolute;
    right: 64px;
    top: 0;
    bottom: 0;
    width: 1px;
    background: #15D7F0;
    opacity: .2
}

.lrn-prog .band-strokes {
    display: flex;
    flex-direction: row;
    gap: 4px;
    align-items: center
}

.lrn-prog .band-strokes span {
    display: block;
    width: 18px;
    height: 2px;
    background: #15D7F0;
    opacity: .7
}

.lrn-prog .band-strokes span:nth-child(2) {
    width: 12px;
    opacity: .5
}

.lrn-prog .band-strokes span:nth-child(3) {
    width: 8px;
    opacity: .3
}

.lrn-prog .band-label {
    font-size: 16px;
    color: #F0EFEF;
    letter-spacing: .02em;
    line-height: 1.4;
    opacity: .85
}

.lrn-prog .title-blk {
    padding: 56px 56px 28px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px;
    align-items: end;
    position: relative
}

.lrn-prog .title-blk::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 56px;
    right: 56px;
    height: 1px;
    background: linear-gradient(83deg, #106372 0%, #15D7F0 60%, transparent 100%)
}

.lrn-prog .t-left {
    display: flex;
    flex-direction: column;
    gap: 16px
}

.lrn-prog .t-eyebrow {
    font-size: 16px;
    color: #106372;
    letter-spacing: .02em;
    line-height: 1.4;
    text-transform: uppercase
}

.lrn-prog .t-h1 {
    font-size: 62px;
    line-height: 1.1;
    letter-spacing: .01em;
    color: #0d2d34;
    font-style: italic;
    margin: 0
}

.lrn-prog .t-h1 .grad-word {
    background: linear-gradient(83deg, #106372, #15D7F0), radial-gradient(ellipse at 20% 50%, #106372 30%, #15D7F0 100%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-size: 100%
}

.lrn-prog .t-right {
    display: flex;
    flex-direction: column;
    gap: 16px;
    align-items: flex-end;
    text-align: right
}

.lrn-prog .t-desc {
    font-size: 18px;
    line-height: 1.6;
    color: #2a4a52;
    letter-spacing: .01em;
    max-width: 420px;
    margin: 0
}

.lrn-prog .t-meta {
    font-size: 16px;
    color: #106372;
    letter-spacing: .02em;
    line-height: 1.4;
    border-bottom: 1px dashed #15D7F0;
    padding-bottom: 4px
}

.lrn-prog .chevron-div {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    padding: 8px 0;
    background: #fff
}

.lrn-prog .chevron-div svg {
    display: block
}

.lrn-prog .cards-sec {
    padding: 56px 56px 28px;
    background: #F0EFEF;
    position: relative
}

.lrn-prog .cards-sec::before {
    content: "";
    position: absolute;
    top: 16px;
    right: 28px;
    display: block;
    width: 60px;
    height: 60px;
    border-top: 2px solid #15D7F0;
    border-right: 2px solid #15D7F0;
    opacity: .3;
    pointer-events: none
}

.lrn-prog .sec-label {
    font-size: 16px;
    letter-spacing: .02em;
    line-height: 1.4;
    color: #106372;
    text-transform: uppercase;
    margin: 0 0 28px
}

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

.lrn-prog .prog-card {
    background: #fff;
    border-radius: 36px;
    box-shadow: 0 6px 25px -2px #10637217;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transition: box-shadow .22s cubic-bezier(0.4, 0, 0.2, 1), transform .22s cubic-bezier(0.4, 0, 0.2, 1);
    animation: card-flip .5s cubic-bezier(0.4, 0, 0.2, 1) both
}

.lrn-prog .prog-card:nth-child(1) {
    animation-delay: .1s
}

.lrn-prog .prog-card:nth-child(2) {
    animation-delay: .22s
}

.lrn-prog .prog-card:nth-child(3) {
    animation-delay: .34s
}

@keyframes card-flip {
    from {
        opacity: 0;
        transform: rotateY(18deg) scale(0.97)
    }

    to {
        opacity: 1;
        transform: rotateY(0deg) scale(1)
    }
}

.lrn-prog .prog-card:hover {
    box-shadow: 0 9px 48px -2px #10637224;
    transform: translateY(-4px)
}

.lrn-prog .card-img-wrap {
    width: 100%;
    aspect-ratio: 16/9;
    overflow: hidden;
    position: relative;
    flex-shrink: 0
}

.lrn-prog .card-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .28s cubic-bezier(0.4, 0, 0.2, 1)
}

.lrn-prog .prog-card:hover .card-img-wrap img {
    transform: scale(1.04)
}

.lrn-prog .card-img-wrap .img-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, #10637261 0%, transparent 60%);
    pointer-events: none
}

.lrn-prog .card-img-placeholder {
    width: 100%;
    height: 100%;
    background: linear-gradient(83deg, #106372 0%, #15D7F0 100%);
    display: flex;
    align-items: center;
    justify-content: center
}

.lrn-prog .card-img-placeholder .mdi {
    font-size: 44px;
    color: #fff6
}

.lrn-prog .card-body {
    padding: 28px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    flex: 1
}

.lrn-prog .card-h {
    font-size: 18px;
    font-style: italic;
    line-height: 1.4;
    letter-spacing: .01em;
    color: #0d2d34;
    margin: 0
}

.lrn-prog .card-desc {
    font-size: 16px;
    line-height: 1.6;
    color: #2a4a52;
    letter-spacing: .01em;
    margin: 0;
    flex: 1
}

.lrn-prog .card-meta-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap
}

.lrn-prog .card-meta-item {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 4px;
    font-size: 16px;
    color: #106372;
    letter-spacing: .01em;
    line-height: 1.4
}

.lrn-prog .card-meta-item .mdi {
    font-size: 18px;
    color: #15D7F0
}

.lrn-prog .card-price-row {
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
    gap: 8px;
    padding-top: 8px;
    border-top: 1px solid #F0EFEF
}

.lrn-prog .card-price {
    font-size: 32px;
    line-height: 1.1;
    letter-spacing: .01em;
    color: #106372;
    font-style: italic
}

.lrn-prog .card-price-note {
    font-size: 16px;
    color: #2a4a52;
    line-height: 1.4;
    letter-spacing: .01em;
    opacity: .7;
    padding-bottom: 4px
}

.lrn-prog .card-link {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    padding: 8px 28px;
    border-radius: 36px;
    background: linear-gradient(83deg, #106372 0%, #15D7F0 100%);
    color: #fff;
    font-size: 16px;
    letter-spacing: .02em;
    line-height: 1.4;
    text-decoration: none;
    transition: opacity .2s cubic-bezier(0.4, 0, 0.2, 1), transform .2s cubic-bezier(0.4, 0, 0.2, 1);
    border: none !important;
    align-self: flex-start
}

.lrn-prog .card-link:hover {
    opacity: .88
}

.lrn-prog .card-link:active {
    transform: scale(0.97)
}

.lrn-prog .card-link .mdi {
    font-size: 18px
}

.lrn-prog .chevron-div-alt {
    display: flex;
    flex-direction: row;
    justify-content: center;
    background: #F0EFEF;
    padding: 0
}

.lrn-prog .chevron-div-alt svg {
    display: block
}

.lrn-prog .about-sec {
    padding: 56px;
    background: #fff;
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 56px;
    align-items: start
}

.lrn-prog .about-pull {
    position: sticky;
    top: 28px
}

.lrn-prog .pull-quote {
    font-size: 32px;
    line-height: 1.4;
    font-style: italic;
    letter-spacing: .01em;
    color: #106372;
    margin: 0 0 16px
}

.lrn-prog .pull-line {
    width: 56px;
    height: 3px;
    background: linear-gradient(83deg, #106372, #15D7F0);
    border-radius: 0;
    margin-bottom: 16px
}

.lrn-prog .pull-sub {
    font-size: 16px;
    color: #2a4a52;
    line-height: 1.6;
    letter-spacing: .01em;
    margin: 0
}

.lrn-prog .about-body {
    display: flex;
    flex-direction: column;
    gap: 28px
}

.lrn-prog .about-h {
    font-size: 44px;
    line-height: 1.1;
    letter-spacing: .01em;
    color: #0d2d34;
    font-style: italic;
    margin: 0
}

.lrn-prog .about-h .grad-word {
    background: linear-gradient(83deg, #106372, #15D7F0), radial-gradient(ellipse at 20% 50%, #106372 30%, #15D7F0 100%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent
}

.lrn-prog .about-p {
    font-size: 18px;
    line-height: 1.6;
    color: #2a4a52;
    letter-spacing: .01em;
    margin: 0
}

.lrn-prog .about-p a {
    color: #106372;
    text-decoration-style: dashed;
    text-underline-offset: 3px;
    text-decoration-color: #15D7F0;
    transition: color .2s cubic-bezier(0.4, 0, 0.2, 1)
}

.lrn-prog .about-p a:hover {
    color: #15D7F0
}

.lrn-prog .img-sec {
    position: relative;
    overflow: hidden;
    background: #0d2d34
}

.lrn-prog .img-parallax-wrap {
    width: 100%;
    aspect-ratio: 16/6;
    overflow: hidden;
    position: relative
}

.lrn-prog .img-parallax-wrap img {
    width: 100%;
    height: 130%;
    object-fit: cover;
    object-position: center top;
    display: block;
    position: absolute;
    top: -15%;
    left: 0;
    right: 0;
    filter: brightness(0.55)
}

.lrn-prog .img-overlay-text {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 16px;
    padding: 56px;
    text-align: center
}

.lrn-prog .img-overlay-text h2 {
    font-size: 44px;
    line-height: 1.1;
    letter-spacing: .01em;
    color: #fff;
    font-style: italic;
    margin: 0
}

.lrn-prog .img-overlay-text h2 .grad-word {
    background: linear-gradient(83deg, #15D7F0, #fff);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent
}

.lrn-prog .img-overlay-text p {
    font-size: 18px;
    line-height: 1.6;
    color: #f0efefe0;
    letter-spacing: .01em;
    max-width: 600px;
    margin: 0
}

.lrn-prog .chevron-div-b {
    display: flex;
    flex-direction: row;
    justify-content: center;
    background: #0d2d34;
    padding: 0
}

.lrn-prog .process-sec {
    padding: 56px;
    background: #fff;
    display: flex;
    flex-direction: column;
    gap: 28px;
    align-items: center;
    text-align: center
}

.lrn-prog .proc-h {
    font-size: 44px;
    line-height: 1.1;
    letter-spacing: .01em;
    color: #0d2d34;
    font-style: italic;
    margin: 0
}

.lrn-prog .proc-h .grad-word {
    background: linear-gradient(83deg, #106372, #15D7F0), radial-gradient(ellipse at 20% 50%, #106372 30%, #15D7F0 100%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent
}

.lrn-prog .proc-sub {
    font-size: 18px;
    line-height: 1.6;
    color: #2a4a52;
    letter-spacing: .01em;
    max-width: 640px;
    margin: 0
}

.lrn-prog .proc-steps {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 28px;
    width: 100%
}

.lrn-prog .proc-step {
    display: flex;
    flex-direction: column;
    gap: 16px;
    align-items: center;
    text-align: center;
    padding: 28px 16px;
    border-radius: 36px;
    background: #F0EFEF;
    box-shadow: 0 1px 4px -2px #10637214;
    animation: card-flip .5s cubic-bezier(0.4, 0, 0.2, 1) both
}

.lrn-prog .proc-step:nth-child(1) {
    animation-delay: .08s
}

.lrn-prog .proc-step:nth-child(2) {
    animation-delay: .18s
}

.lrn-prog .proc-step:nth-child(3) {
    animation-delay: .28s
}

.lrn-prog .proc-step:nth-child(4) {
    animation-delay: .38s
}

.lrn-prog .step-num {
    width: 48px;
    height: 48px;
    border-radius: 0;
    background: linear-gradient(83deg, #106372, #15D7F0);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    color: #fff;
    font-style: italic;
    letter-spacing: .01em;
    box-shadow: 0 6px 25px -2px #15d7f017;
    flex-shrink: 0
}

.lrn-prog .step-h {
    font-size: 18px;
    font-style: italic;
    line-height: 1.4;
    letter-spacing: .01em;
    color: #0d2d34;
    margin: 0
}

.lrn-prog .step-p {
    font-size: 16px;
    line-height: 1.6;
    color: #2a4a52;
    letter-spacing: .01em;
    margin: 0
}

.lrn-prog .chevron-div-c {
    display: flex;
    flex-direction: row;
    justify-content: center;
    background: #fff;
    padding: 0
}

.lrn-prog .form-sec {
    padding: 56px;
    background: #F0EFEF;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 56px;
    align-items: start
}

.lrn-prog .form-left {
    display: flex;
    flex-direction: column;
    gap: 28px
}

.lrn-prog .form-h {
    font-size: 44px;
    line-height: 1.1;
    letter-spacing: .01em;
    color: #0d2d34;
    font-style: italic;
    margin: 0
}

.lrn-prog .form-h .grad-word {
    background: linear-gradient(83deg, #106372, #15D7F0), radial-gradient(ellipse at 20% 50%, #106372 30%, #15D7F0 100%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent
}

.lrn-prog .form-desc {
    font-size: 18px;
    line-height: 1.6;
    color: #2a4a52;
    letter-spacing: .01em;
    margin: 0
}

.lrn-prog .form-contact-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
    list-style: none;
    padding: 0;
    margin: 0
}

.lrn-prog .form-contact-list li {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    font-size: 16px;
    color: #2a4a52;
    letter-spacing: .01em;
    line-height: 1.4
}

.lrn-prog .form-contact-list li .mdi {
    font-size: 18px;
    color: #106372;
    flex-shrink: 0
}

.lrn-prog .form-contact-list li a {
    color: #106372;
    text-decoration-style: dashed;
    text-underline-offset: 3px;
    text-decoration-color: #15D7F0;
    transition: color .2s cubic-bezier(0.4, 0, 0.2, 1)
}

.lrn-prog .form-contact-list li a:hover {
    color: #15D7F0
}

.lrn-prog .enq-form {
    display: flex;
    flex-direction: column;
    gap: 16px;
    background: #fff;
    padding: 28px;
    border-radius: 36px;
    box-shadow: 0 6px 25px -2px #10637217
}

.lrn-prog .enq-form .f-row {
    display: flex;
    flex-direction: column;
    gap: 8px
}

.lrn-prog .enq-form label {
    font-size: 16px;
    color: #106372;
    letter-spacing: .01em;
    line-height: 1.4
}

.lrn-prog .enq-form input,
.lrn-prog .enq-form textarea,
.lrn-prog .enq-form select {
    width: 100%;
    padding: 8px 16px;
    border-radius: 36px;
    border: 1px solid #c8d8db;
    background: #F0EFEF;
    font-size: 16px;
    color: #0d2d34;
    letter-spacing: .01em;
    line-height: 1.6;
    outline: none;
    transition: border-color .22s cubic-bezier(0.4, 0, 0.2, 1), box-shadow .22s cubic-bezier(0.4, 0, 0.2, 1);
    box-sizing: border-box;
    appearance: none;
    -webkit-appearance: none
}

.lrn-prog .enq-form textarea {
    border-radius: 0;
    resize: vertical;
    min-height: 96px
}

.lrn-prog .enq-form input::placeholder,
.lrn-prog .enq-form textarea::placeholder {
    color: #7a9ca5
}

.lrn-prog .enq-form input:focus,
.lrn-prog .enq-form textarea:focus,
.lrn-prog .enq-form select:focus {
    border-color: #106372;
    box-shadow: 0 1px 4px -2px #10637214
}

.lrn-prog .enq-form .submit-btn {
    padding: 16px 56px;
    border-radius: 36px;
    border: none !important;
    background: linear-gradient(83deg, #106372 0%, #15D7F0 100%);
    color: #fff;
    font-size: 18px;
    letter-spacing: .02em;
    line-height: 1.4;
    cursor: pointer;
    transition: opacity .2s cubic-bezier(0.4, 0, 0.2, 1), transform .2s cubic-bezier(0.4, 0, 0.2, 1);
    align-self: flex-start;
    box-shadow: 0 6px 25px -2px #15d7f017
}

.lrn-prog .enq-form .submit-btn:hover {
    opacity: .88
}

.lrn-prog .enq-form .submit-btn:active {
    transform: scale(0.97)
}

.lrn-prog .enq-form .submit-btn:focus-visible {
    outline: 2px solid #106372;
    outline-offset: 3px
}

@media (max-width: 1280px) {
    .lrn-prog .title-blk {
        padding: 56px 28px 28px
    }

    .lrn-prog .cards-sec {
        padding: 56px 28px 28px
    }

    .lrn-prog .card-grid {
        grid-template-columns: repeat(2, 1fr)
    }

    .lrn-prog .about-sec {
        padding: 56px 28px;
        grid-template-columns: 1fr 1.5fr;
        gap: 28px
    }

    .lrn-prog .process-sec {
        padding: 56px 28px
    }

    .lrn-prog .proc-steps {
        grid-template-columns: repeat(2, 1fr)
    }

    .lrn-prog .form-sec {
        padding: 56px 28px;
        gap: 28px
    }

    .lrn-prog .pg-band {
        padding: 8px 28px
    }
}

@media (max-width: 768px) {
    .lrn-prog .title-blk {
        grid-template-columns: 1fr;
        padding: 28px 16px 16px;
        gap: 16px
    }

    .lrn-prog .t-right {
        align-items: flex-start;
        text-align: left
    }

    .lrn-prog .t-h1 {
        font-size: 44px
    }

    .lrn-prog .cards-sec {
        padding: 28px 16px
    }

    .lrn-prog .card-grid {
        grid-template-columns: 1fr
    }

    .lrn-prog .about-sec {
        grid-template-columns: 1fr;
        padding: 28px 16px;
        gap: 16px
    }

    .lrn-prog .about-pull {
        position: static
    }

    .lrn-prog .about-h {
        font-size: 32px
    }

    .lrn-prog .process-sec {
        padding: 28px 16px
    }

    .lrn-prog .proc-h {
        font-size: 32px
    }

    .lrn-prog .proc-steps {
        grid-template-columns: 1fr
    }

    .lrn-prog .form-sec {
        grid-template-columns: 1fr;
        padding: 28px 16px;
        gap: 28px
    }

    .lrn-prog .form-h {
        font-size: 32px
    }

    .lrn-prog .img-overlay-text h2 {
        font-size: 32px
    }

    .lrn-prog .img-overlay-text {
        padding: 28px 16px
    }

    .lrn-prog .pg-band {
        padding: 8px 16px
    }
}

@media (max-width: 480px) {
    .lrn-prog .t-h1 {
        font-size: 32px
    }

    .lrn-prog .card-price {
        font-size: 18px
    }

    .lrn-prog .enq-form {
        padding: 16px
    }

    .lrn-prog .enq-form .submit-btn {
        padding: 16px 28px;
        font-size: 16px
    }
}

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

.pg_success .wrap {
    max-width: 640px;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 28px
}

.pg_success .icon_ring {
    width: 64px;
    height: 64px;
    border-radius: 36px;
    border: 2px solid #15D7F0;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 6px 25px -2px #15d7f017
}

.pg_success .icon_ring svg {
    display: block
}

.pg_success .hdg {
    font-size: 44px;
    line-height: 1.1;
    letter-spacing: .01em;
    font-weight: 700;
    color: #0d0d0d;
    margin: 0;
    font-style: italic
}

.pg_success .hdg span {
    background: linear-gradient(83deg, #106372 30%, #15D7F0 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text
}

.pg_success .divider {
    width: 56px;
    height: 2px;
    background: linear-gradient(83deg, #106372, #15D7F0);
    border-radius: 0;
    flex-shrink: 0
}

.pg_success .body_txt {
    font-size: 18px;
    line-height: 1.6;
    letter-spacing: .01em;
    color: #2a2a2a;
    margin: 0
}

.pg_success .note {
    font-size: 16px;
    line-height: 1.4;
    letter-spacing: .02em;
    color: #555;
    margin: 0;
    padding: 16px 28px;
    border: 1px solid #F0EFEF;
    border-radius: 0;
    background: #F0EFEF;
    box-shadow: 0 1px 4px -2px #10637214;
    width: 100%;
    box-sizing: border-box
}

.pg_success .note strong {
    color: #106372;
    font-weight: 600
}

.pg_success .act_row {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap
}

.pg_success .btn_pri {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 16px 28px;
    border-radius: 0;
    border: none;
    background: linear-gradient(83deg, #106372 0%, #15D7F0 100%);
    color: #fff;
    font-size: 16px;
    line-height: 1.4;
    letter-spacing: .02em;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    transition: opacity .22s cubic-bezier(0.4, 0, 0.2, 1), transform .18s cubic-bezier(0.4, 0, 0.2, 1), box-shadow .22s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 6px 25px -2px #10637217
}

.pg_success .btn_pri:hover {
    opacity: .88;
    box-shadow: 0 9px 48px -2px #10637224
}

.pg_success .btn_pri:active {
    transform: scale(0.97);
    opacity: 1
}

.pg_success .btn_pri:focus-visible {
    outline: 2px solid #106372;
    outline-offset: 3px
}

.pg_success .btn_sec {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 16px 28px;
    border-radius: 0;
    border: 1px solid #106372;
    background: transparent;
    color: #106372;
    font-size: 16px;
    line-height: 1.4;
    letter-spacing: .02em;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    transition: background .25s cubic-bezier(0.0, 0, 0.2, 1), color .25s cubic-bezier(0.0, 0, 0.2, 1), transform .18s cubic-bezier(0.4, 0, 0.2, 1)
}

.pg_success .btn_sec:hover {
    background: #106372;
    color: #fff
}

.pg_success .btn_sec:active {
    transform: scale(0.97)
}

.pg_success .btn_sec:focus-visible {
    outline: 2px solid #106372;
    outline-offset: 3px
}

.pg_success .contact_ln {
    font-size: 16px;
    line-height: 1.4;
    letter-spacing: .01em;
    color: #555;
    margin: 0
}

.pg_success .contact_ln a {
    color: #106372;
    text-decoration: underline;
    text-decoration-style: dashed;
    text-underline-offset: 3px;
    transition: color .2s cubic-bezier(0.4, 0, 0.2, 1)
}

.pg_success .contact_ln a:hover {
    color: #15D7F0
}

@media (max-width: 480px) {
    .pg_success {
        padding: 56px 16px
    }

    .pg_success .hdg {
        font-size: 32px
    }

    .pg_success .act_row {
        flex-direction: column;
        align-items: stretch
    }

    .pg_success .btn_pri,
    .pg_success .btn_sec {
        justify-content: center
    }
}