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

body {
    margin: 0;
    -webkit-text-size-adjust: 100%;
    word-break: break-word;
    overflow-wrap: break-word;
    font-family: 'Figtree', sans-serif
}

.sitehead {
    position: relative;
    z-index: 100;
    background: #fff;
    border-bottom: 1px solid #E7ECF0;
    box-shadow: 0 1px 5px 0 #54010b0f
}

.sitehead-inner {
    max-width: 1400px;
    margin: 0 auto;
    padding: 16px 28px;
    display: flex;
    align-items: center;
    gap: 28px;
    flex-wrap: wrap
}

.brandmark {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    text-decoration: none;
    border: 1px solid #2a0007;
    border-radius: 6px;
    padding: 4px;
    background: #fff;
    box-shadow: 0 1px 5px 0 #54010b0f
}

.brandmark img {
    display: block;
    width: 40px;
    height: 40px;
    object-fit: contain
}

.headnav {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    flex: 1;
    justify-content: flex-end
}

.headnav a {
    display: inline-flex;
    align-items: center;
    font-family: 'Figtree', sans-serif;
    font-size: 15px;
    line-height: 1.1;
    font-weight: 400;
    color: #2a0007;
    text-decoration: none;
    padding: 8px 16px;
    border-radius: 44px;
    border: 1px solid transparent;
    background: #E7ECF0;
    transition: background .45s cubic-bezier(0.16, 1, 0.3, 1), border-color .45s cubic-bezier(0.16, 1, 0.3, 1), color .38s ease-in-out;
    min-height: 44px;
    white-space: nowrap
}

.headnav a:hover,
.headnav a:focus {
    background: #54010B;
    color: #fff;
    border-color: #54010B;
    outline: none
}

.headnav a:focus-visible {
    outline: 3px solid;
    outline-color: #6CD305;
    outline-offset: 2px
}

.headnav a.active {
    background: #54010B;
    color: #fff;
    border-color: #54010B
}

.headnav a.contact {
    background: #6CD305;
    color: #1a0005;
    border-color: #6CD305;
    font-weight: 700
}

.headnav a.contact:hover,
.headnav a.contact:focus {
    background: #54010B;
    color: #fff;
    border-color: #54010B
}

.headaccent {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 4px 8px;
    border-radius: 6px;
    background: linear-gradient(135deg, #54010B 0%, #8a0215 100%);
    flex-shrink: 0
}

.headaccent-dot {
    width: 8px;
    height: 8px;
    border-radius: 44px;
    background: #6CD305;
    flex-shrink: 0
}

.headaccent-label {
    font-family: 'Figtree', sans-serif;
    font-size: 15px;
    line-height: 1.1;
    font-weight: 700;
    color: #fff;
    letter-spacing: -.01em;
    white-space: nowrap
}

.sitefooter {
    background: #54010B;
    position: relative;
    overflow: hidden
}

.sitefooter-body {
    max-width: 1400px;
    margin: 0 auto;
    padding: 56px 28px 28px
}

.sitefooter-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 28px;
    margin-bottom: 56px
}

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

.footbrandmark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    border-radius: 6px;
    background: #fff;
    border: 1px solid #fff6;
    box-shadow: 0 5px 25px 0 #54010b14;
    text-decoration: none;
    flex-shrink: 0
}

.footbrandmark img {
    display: block;
    width: 40px;
    height: 40px;
    object-fit: contain
}

.footdesc {
    font-family: 'Figtree', sans-serif;
    font-size: 15px;
    line-height: 1.75;
    color: #e7ecf0d1;
    max-width: 280px
}

.footcol-nav {
    display: flex;
    flex-direction: column;
    gap: 16px
}

.footcol-label {
    font-family: 'Figtree', sans-serif;
    font-size: 15px;
    line-height: 1.1;
    font-weight: 700;
    color: #6CD305;
    letter-spacing: .04em;
    text-transform: uppercase
}

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

.footlinks li {
    display: flex
}

.footlinks a {
    font-family: 'Figtree', sans-serif;
    font-size: 15px;
    line-height: 1.75;
    color: #e7ecf0e6;
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: color .42s cubic-bezier(0.16, 1, 0.3, 1), border-color .42s cubic-bezier(0.16, 1, 0.3, 1);
    padding-bottom: 1px
}

.footlinks a:hover,
.footlinks a:focus {
    color: #6CD305;
    border-color: #6CD305;
    outline: none
}

.footlinks a:focus-visible {
    outline: 2px solid #6CD305;
    outline-offset: 2px;
    border-radius: 2px
}

.footcol-contact {
    display: flex;
    flex-direction: column;
    gap: 16px
}

.footcontact-list {
    display: flex;
    flex-direction: column;
    gap: 8px
}

.footcontact-item {
    display: flex;
    align-items: flex-start;
    gap: 8px
}

.footcontact-icon {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    margin-top: 4px
}

.footcontact-text {
    font-family: 'Figtree', sans-serif;
    font-size: 15px;
    line-height: 1.75;
    color: #e7ecf0d1
}

.footcontact-text a {
    color: #e7ecf0e6;
    text-decoration: none;
    transition: color .42s cubic-bezier(0.16, 1, 0.3, 1)
}

.footcontact-text a:hover,
.footcontact-text a:focus {
    color: #6CD305;
    outline: none
}

.footcontact-text a:focus-visible {
    outline: 2px solid #6CD305;
    outline-offset: 2px;
    border-radius: 2px
}

.sitefooter-bar {
    border-top: 1px solid #e7ecf026;
    padding-top: 28px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 16px
}

.footcopy {
    font-family: 'Figtree', sans-serif;
    font-size: 15px;
    line-height: 1.75;
    color: #e7ecf08c
}

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

.footbar-links a {
    font-family: 'Figtree', sans-serif;
    font-size: 15px;
    line-height: 1.75;
    color: #e7ecf08c;
    text-decoration: none;
    transition: color .42s cubic-bezier(0.16, 1, 0.3, 1)
}

.footbar-links a:hover,
.footbar-links a:focus {
    color: #6CD305;
    outline: none
}

.footbar-links a:focus-visible {
    outline: 2px solid #6CD305;
    outline-offset: 2px;
    border-radius: 2px
}

.footlogocenter {
    display: flex;
    justify-content: center;
    margin-bottom: 56px
}

.footlogocenter a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 60px;
    height: 60px;
    border-radius: 6px;
    background: #fff;
    border: 1px solid #ffffff80;
    box-shadow: 0 9px 36px 0 #54010b1a;
    text-decoration: none
}

.footlogocenter a img {
    display: block;
    width: 44px;
    height: 44px;
    object-fit: contain
}

.cookieholder {
    position: fixed;
    top: 28px;
    right: 28px;
    z-index: 2000;
    width: 340px;
    max-width: calc(100vw - 56px)
}

.cookiecard {
    background: #fff;
    border-radius: 6px;
    border: 1px solid #E7ECF0;
    box-shadow: 0 9px 36px 0 #54010b1a;
    padding: 28px;
    display: flex;
    flex-direction: column;
    gap: 16px
}

.cookietext {
    font-family: 'Figtree', sans-serif;
    font-size: 15px;
    line-height: 1.75;
    color: #2a0007
}

.cookiebtns {
    display: flex;
    gap: 8px;
    flex-wrap: wrap
}

.cookiebtn {
    flex: 1;
    min-width: 100px;
    min-height: 44px;
    font-family: 'Figtree', sans-serif;
    font-size: 15px;
    line-height: 1.1;
    font-weight: 700;
    border-radius: 6px;
    border: 2px solid #54010B;
    background: transparent;
    color: #54010B;
    cursor: pointer;
    padding: 8px 16px;
    transition: background .45s cubic-bezier(0.16, 1, 0.3, 1), color .45s cubic-bezier(0.16, 1, 0.3, 1)
}

.cookiebtn:hover,
.cookiebtn:focus {
    background: #54010B;
    color: #fff;
    outline: none
}

.cookiebtn:focus-visible {
    outline: 2px solid #6CD305;
    outline-offset: 2px
}

.cookiebtn.accept {
    background: #54010B;
    color: #fff
}

.cookiebtn.accept:hover,
.cookiebtn.accept:focus {
    background: #6CD305;
    border-color: #6CD305;
    color: #1a0005
}

@media (max-width: 900px) {
    .sitefooter-grid {
        grid-template-columns: 1fr 1fr
    }

    .footcol-brand {
        grid-column: 1 / -1
    }
}

@media (max-width: 600px) {
    .sitehead-inner {
        padding: 16px;
        gap: 16px
    }

    .headnav {
        gap: 4px
    }

    .headnav a {
        font-size: 15px;
        padding: 8px 12px
    }

    .sitefooter-grid {
        grid-template-columns: 1fr
    }

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

    .cookieholder {
        top: 16px;
        right: 16px;
        left: 16px;
        width: auto;
        max-width: none
    }
}

.rules-text {
    max-width: 1400px;
    margin: 0 auto;
    padding: 56px 28px;
    color: #2a1a1c;
    background: #fff
}

.rules-text h1 {
    font-size: 70px;
    line-height: 1.1;
    letter-spacing: -.03em;
    color: #54010B;
    margin: 0 0 28px;
    padding: 0 0 28px;
    border-bottom: 2px solid #E7ECF0
}

.rules-text h2 {
    font-size: 41px;
    line-height: 1.1;
    letter-spacing: -.02em;
    color: #54010B;
    margin: 56px 0 16px
}

.rules-text h3 {
    font-size: 19px;
    line-height: 1.75;
    letter-spacing: -.01em;
    color: #3d010c;
    font-weight: 700;
    margin: 28px 0 8px
}

.rules-text h4 {
    font-size: 19px;
    line-height: 1.75;
    letter-spacing: 0;
    color: #2a1a1c;
    font-weight: 600;
    margin: 28px 0 8px
}

.rules-text h5 {
    font-size: 15px;
    line-height: 1.75;
    letter-spacing: .01em;
    color: #2a1a1c;
    font-weight: 700;
    text-transform: uppercase;
    margin: 28px 0 8px
}

.rules-text h6 {
    font-size: 15px;
    line-height: 1.75;
    letter-spacing: .01em;
    color: #54010B;
    font-weight: 600;
    margin: 16px 0 8px
}

.rules-text p {
    font-size: 15px;
    line-height: 1.75;
    color: #2a1a1c;
    margin: 0 0 16px;
    max-width: 80ch
}

.rules-text ul {
    margin: 8px 0 16px;
    padding: 0 0 0 28px;
    list-style: none
}

.rules-text ol {
    margin: 8px 0 16px;
    padding: 0 0 0 28px;
    list-style: none;
    counter-reset: policy-counter
}

.rules-text ul li {
    font-size: 15px;
    line-height: 1.75;
    color: #2a1a1c;
    margin: 0 0 8px;
    padding: 0 0 0 16px;
    position: relative;
    max-width: 80ch
}

.rules-text ul li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 11px;
    width: 6px;
    height: 6px;
    border-radius: 44px;
    background: #6CD305
}

.rules-text ol li {
    font-size: 15px;
    line-height: 1.75;
    color: #2a1a1c;
    margin: 0 0 8px;
    padding: 0 0 0 16px;
    position: relative;
    max-width: 80ch;
    counter-increment: policy-counter
}

.rules-text ol li::before {
    content: counter(policy-counter) ".";
    position: absolute;
    left: -16px;
    top: 0;
    font-size: 15px;
    line-height: 1.75;
    color: #54010B;
    font-weight: 600
}

.rules-text ul ul,
.rules-text ol ol,
.rules-text ul ol,
.rules-text ol ul {
    margin: 4px 0 4px 16px
}

.rules-text strong,
.rules-text b {
    font-weight: 700;
    color: #3d010c
}

.rules-text em,
.rules-text i {
    font-style: italic;
    color: #2a1a1c
}

.rules-text table {
    width: 100%;
    border-collapse: collapse;
    margin: 28px 0;
    font-size: 15px;
    line-height: 1.75;
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 1px 5px 0 #54010b0f
}

.rules-text thead {
    background: #54010B
}

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

.rules-text tbody tr {
    background: #fff;
    transition: background-color .45s cubic-bezier(0.16, 1, 0.3, 1)
}

.rules-text tbody tr:nth-child(even) {
    background: #E7ECF0
}

.rules-text tbody tr:hover {
    background: #6cd30514
}

.rules-text td {
    font-size: 15px;
    line-height: 1.75;
    color: #2a1a1c;
    padding: 16px 28px;
    border-bottom: 1px solid #E7ECF0;
    vertical-align: top
}

.rules-text tbody tr:last-child td {
    border-bottom: none
}

.rules-text div {
    font-size: 15px;
    line-height: 1.75
}

.rules-text a {
    color: #54010B;
    text-decoration: underline;
    text-decoration-color: #54010b59;
    text-underline-offset: 3px;
    transition: color .45s cubic-bezier(0.16, 1, 0.3, 1), text-decoration-color .45s cubic-bezier(0.16, 1, 0.3, 1)
}

.rules-text a:hover {
    color: #6CD305;
    text-decoration-color: #6cd30599
}

@media (max-width: 900px) {
    .rules-text {
        padding: 56px 16px
    }

    .rules-text h1 {
        font-size: 41px
    }

    .rules-text h2 {
        font-size: 19px
    }

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

@media (max-width: 480px) {
    .rules-text {
        padding: 28px 16px
    }

    .rules-text h1 {
        font-size: 41px;
        letter-spacing: -.02em
    }

    .rules-text thead th,
    .rules-text td {
        padding: 16px
    }
}

.lpd {
    background: #fff;
    overflow-x: hidden
}

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

.lpd a {
    color: #54010B;
    text-decoration: none;
    transition: color .45s cubic-bezier(0.16, 1, 0.3, 1)
}

.lpd a:hover {
    color: #6CD305
}

.lpd .panoramic {
    max-width: 1400px;
    margin: 0 auto;
    padding: 56px 28px 28px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 56px;
    align-items: end
}

.lpd .panoramic-left {
    padding-right: 56px
}

.lpd .catbadge {
    display: inline-block;
    background: #E7ECF0;
    color: #54010B;
    font-size: 15px;
    line-height: 1.1;
    padding: 4px 16px;
    border-radius: 6px;
    margin-bottom: 16px;
    letter-spacing: .04em
}

.lpd .panoramic-left h1 {
    font-size: 41px;
    line-height: 1.1;
    letter-spacing: -.02em;
    margin: 0 0 16px;
    background: linear-gradient(180deg, #54010B 0%, #6CD305 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text
}

.lpd .panoramic-left p {
    font-size: 19px;
    line-height: 1.75;
    color: #2a0509;
    margin: 0
}

.lpd .panoramic-meta {
    display: flex;
    flex-direction: row;
    gap: 28px;
    margin-top: 28px;
    flex-wrap: wrap
}

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

.lpd .metaitem-label {
    font-size: 15px;
    line-height: 1.1;
    color: #7a7a7a;
    letter-spacing: .05em
}

.lpd .metaitem-val {
    font-size: 19px;
    line-height: 1.1;
    color: #54010B;
    font-weight: 700
}

.lpd .panoramic-right {
    position: relative
}

.lpd .imgwrap {
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 9px 36px 0 #54010b1a;
    aspect-ratio: 16/9
}

.lpd .imgwrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: opacity .45s cubic-bezier(0.16, 1, 0.3, 1)
}

.lpd .decoshape {
    position: absolute;
    top: -28px;
    right: -16px;
    width: 120px;
    height: 120px;
    border: 2px solid #6cd3052e;
    border-radius: 6px;
    pointer-events: none;
    animation: decopulse 3.5s ease-in-out infinite;
    z-index: 0
}

.lpd .decoshape2 {
    position: absolute;
    bottom: -16px;
    left: -28px;
    width: 80px;
    height: 80px;
    border: 2px solid #54010b1a;
    border-radius: 44px;
    pointer-events: none;
    animation: decopulse 4.2s ease-in-out infinite .8s;
    z-index: 0
}

@keyframes decopulse {

    0%,
    100% {
        opacity: .5;
        transform: scale(1)
    }

    50% {
        opacity: 1;
        transform: scale(1.06)
    }
}

.lpd .imgwrap {
    position: relative;
    z-index: 1
}

.lpd .divider-center {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 8px 0
}

.lpd .divider-center svg {
    display: block
}

.lpd .divider-line {
    width: 80px;
    height: 1px;
    background: #E7ECF0
}

.lpd .pricebar {
    background: #54010B;
    padding: 28px 0
}

.lpd .pricebar-inner {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 28px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    flex-wrap: wrap
}

.lpd .price-group {
    display: flex;
    flex-direction: column;
    gap: 4px
}

.lpd .price-amount {
    font-size: 41px;
    line-height: 1.1;
    color: #6CD305;
    font-weight: 800;
    letter-spacing: -.02em
}

.lpd .price-desc {
    font-size: 15px;
    line-height: 1.75;
    color: #e7ecf0d9
}

.lpd .price-note {
    font-size: 15px;
    line-height: 1.75;
    color: #e7ecf099;
    max-width: 340px
}

.lpd .enrollbtn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #6CD305;
    color: #54010B;
    font-size: 19px;
    font-weight: 700;
    line-height: 1.1;
    padding: 16px 28px;
    border-radius: 6px;
    border: 2px solid transparent;
    cursor: pointer;
    text-decoration: none;
    transition: background .42s cubic-bezier(0.16, 1, 0.3, 1), box-shadow .42s cubic-bezier(0.16, 1, 0.3, 1), border-color .42s cubic-bezier(0.16, 1, 0.3, 1);
    box-shadow: 0 5px 25px 0 #6cd30514;
    position: relative
}

.lpd .enrollbtn::after {
    content: '';
    position: absolute;
    inset: 3px;
    border: 2px solid transparent;
    border-radius: 4px;
    transition: border-color .42s cubic-bezier(0.16, 1, 0.3, 1);
    pointer-events: none
}

.lpd .enrollbtn:hover {
    background: #fff;
    color: #54010B;
    box-shadow: 0 9px 36px 0 #6cd3051a
}

.lpd .enrollbtn:hover::after {
    border-color: #54010B
}

.lpd .enrollbtn svg {
    flex-shrink: 0;
    transition: transform .38s cubic-bezier(0.16, 1, 0.3, 1)
}

.lpd .enrollbtn:hover svg {
    transform: translateX(4px)
}

.lpd .descblock {
    background: #E7ECF0;
    padding: 56px 0
}

.lpd .descblock-inner {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 28px;
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 56px;
    align-items: start
}

.lpd .pullquote {
    position: sticky;
    top: 28px
}

.lpd .pullquote-text {
    font-size: 19px;
    line-height: 1.75;
    color: #54010B;
    font-weight: 700;
    border-top: 2px solid #6CD305;
    padding-top: 16px
}

.lpd .pullquote-dash {
    display: inline;
    color: #6CD305;
    font-weight: 900
}

.lpd .descbody {
    font-size: 15px;
    line-height: 1.75;
    color: #2a0509
}

.lpd .descbody h2 {
    font-size: 19px;
    line-height: 1.1;
    color: #54010B;
    margin: 28px 0 8px;
    font-weight: 700;
    background: linear-gradient(180deg, #54010B 0%, #6CD305 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text
}

.lpd .descbody p {
    margin: 0 0 16px;
    font-size: 15px;
    line-height: 1.75;
    color: #2a0509
}

.lpd .descbody em {
    color: #54010B;
    font-style: normal;
    font-weight: 600
}

.lpd .descbody ol {
    padding-left: 28px;
    margin: 0 0 16px
}

.lpd .descbody li {
    font-size: 15px;
    line-height: 1.75;
    color: #2a0509;
    padding-bottom: 8px;
    border-bottom: 1px solid #54010b1a;
    list-style: decimal;
    margin-bottom: 8px
}

.lpd .descbody dl {
    margin: 0 0 16px
}

.lpd .descbody dt {
    font-size: 15px;
    font-weight: 700;
    color: #54010B;
    line-height: 1.1;
    margin-top: 16px
}

.lpd .descbody dd {
    font-size: 15px;
    line-height: 1.75;
    color: #2a0509;
    margin-left: 16px;
    margin-top: 4px;
    border-bottom: 1px solid #54010b14;
    padding-bottom: 8px
}

.lpd .descbody details {
    border-radius: 6px;
    background: #fff;
    padding: 16px;
    margin-bottom: 8px;
    box-shadow: 0 1px 5px 0 #54010b0f
}

.lpd .descbody summary {
    font-size: 15px;
    font-weight: 700;
    color: #54010B;
    cursor: pointer;
    line-height: 1.75
}

.lpd .programblock {
    background: #fff;
    padding: 56px 0
}

.lpd .programblock-inner {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 28px
}

.lpd .prog-heading {
    font-size: 41px;
    line-height: 1.1;
    letter-spacing: -.02em;
    margin: 0 0 28px;
    background: linear-gradient(180deg, #54010B 0%, #6CD305 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    font-weight: 800
}

.lpd .progcols {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr;
    gap: 16px;
    align-items: start
}

.lpd .progcard {
    background: #E7ECF0;
    border-radius: 6px;
    padding: 28px;
    box-shadow: 0 1px 5px 0 #54010b0f;
    position: relative;
    overflow: hidden;
    transition: box-shadow .48s cubic-bezier(0.16, 1, 0.3, 1)
}

.lpd .progcard::before {
    content: '';
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(-45deg, #6cd3051f 0px, #6cd3051f 2px, transparent 2px, transparent 14px);
    opacity: 0;
    transition: opacity .48s cubic-bezier(0.16, 1, 0.3, 1);
    pointer-events: none;
    border-radius: 6px
}

.lpd .progcard:hover::before {
    opacity: 1
}

.lpd .progcard:hover {
    box-shadow: 0 9px 36px 0 #54010b1a
}

.lpd .progcard.featured {
    background: #54010B
}

.lpd .progcard.featured::before {
    background: repeating-linear-gradient(-45deg, #6cd3051a 0px, #6cd3051a 2px, transparent 2px, transparent 14px)
}

.lpd .progcard h2 {
    font-size: 19px;
    line-height: 1.1;
    margin: 0 0 16px;
    font-weight: 800;
    background: linear-gradient(180deg, #6CD305 0%, #54010B 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text
}

.lpd .progcard.featured h2 {
    background: linear-gradient(180deg, #fff 0%, #6CD305 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text
}

.lpd .progcard p {
    font-size: 15px;
    line-height: 1.75;
    color: #2a0509;
    margin: 0 0 16px
}

.lpd .progcard.featured p {
    color: #e7ecf0d9
}

.lpd .progcard strong {
    color: #54010B;
    font-weight: 700
}

.lpd .progcard.featured strong {
    color: #6CD305
}

.lpd .progcard ol {
    padding-left: 16px;
    margin: 0
}

.lpd .progcard li {
    font-size: 15px;
    line-height: 1.75;
    color: #2a0509;
    padding-bottom: 8px;
    border-bottom: 1px solid #54010b1a;
    list-style: decimal;
    margin-bottom: 8px
}

.lpd .progcard.featured li {
    color: #e7ecf0d9;
    border-bottom-color: #6cd30526
}

.lpd .progcard blockquote {
    border-top: 2px solid #6CD305;
    margin: 16px 0 0;
    padding: 16px 0 0;
    font-size: 15px;
    line-height: 1.75;
    color: #54010B;
    font-style: italic
}

.lpd .progcard.featured blockquote {
    color: #6CD305
}

.lpd .progcard cite {
    display: block;
    font-size: 15px;
    color: #7a7a7a;
    font-style: normal;
    margin-top: 4px
}

.lpd .progcard.featured cite {
    color: #e7ecf099
}

.lpd .progcard figure {
    margin: 16px 0 0
}

.lpd .progcard figcaption {
    font-size: 15px;
    color: #7a7a7a;
    line-height: 1.75
}

.lpd .progcard details {
    margin-top: 16px
}

.lpd .progcard summary {
    font-size: 15px;
    font-weight: 700;
    color: #54010B;
    cursor: pointer;
    line-height: 1.75
}

.lpd .progcard.featured summary {
    color: #6CD305
}

.lpd .viewsbadge {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    background: #6cd3051a;
    border-radius: 44px;
    padding: 4px 16px;
    margin-top: 16px
}

.lpd .viewsbadge-label {
    font-size: 15px;
    color: #54010B;
    line-height: 1.1
}

.lpd .viewsbadge-count {
    font-size: 15px;
    font-weight: 700;
    color: #54010B;
    line-height: 1.1
}

@keyframes elasticIn {
    0% {
        opacity: 0;
        transform: scale(0.88) translateY(24px)
    }

    60% {
        opacity: 1;
        transform: scale(1.03) translateY(-4px)
    }

    80% {
        transform: scale(0.98) translateY(2px)
    }

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

.lpd .panoramic-left {
    animation: elasticIn .55s cubic-bezier(0.16, 1, 0.3, 1) both
}

.lpd .panoramic-right {
    animation: elasticIn .55s cubic-bezier(0.16, 1, 0.3, 1) .12s both
}

.lpd .pricebar {
    animation: elasticIn .48s cubic-bezier(0.16, 1, 0.3, 1) .22s both
}

@media (max-width: 1024px) {
    .lpd .panoramic {
        grid-template-columns: 1fr;
        gap: 28px;
        padding: 28px 16px
    }

    .lpd .panoramic-left {
        padding-right: 0
    }

    .lpd .progcols {
        grid-template-columns: 1fr 1fr
    }

    .lpd .descblock-inner {
        grid-template-columns: 1fr;
        gap: 28px
    }

    .lpd .pullquote {
        position: static
    }
}

@media (max-width: 640px) {
    .lpd .panoramic-left h1 {
        font-size: 41px
    }

    .lpd .progcols {
        grid-template-columns: 1fr
    }

    .lpd .pricebar-inner {
        flex-direction: column;
        align-items: flex-start
    }

    .lpd .price-amount {
        font-size: 41px
    }
}

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

.portf .pf-inner {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 28px
}

.portf .grad-text {
    background: linear-gradient(to bottom, #54010B, #6CD305);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text
}

.portf .titleblock {
    background-color: #E7ECF0;
    position: relative
}

.portf .titleblock-frame {
    max-width: 1400px;
    margin: 0 auto;
    padding: 56px 28px;
    display: flex;
    flex-direction: row;
    align-items: stretch;
    gap: 56px;
    position: relative
}

.portf .titleblock-frame::before {
    content: '';
    position: absolute;
    top: 28px;
    left: 56px;
    right: 56px;
    bottom: 28px;
    border: 1px solid #54010b2e;
    border-radius: 6px;
    pointer-events: none
}

.portf .tb-imgstrip {
    flex: 0 0 220px;
    position: relative;
    border-radius: 6px;
    overflow: hidden;
    padding: 28px 0 28px 28px
}

.portf .tb-imgstrip img {
    width: 220px;
    height: 100%;
    min-height: 380px;
    object-fit: cover;
    border-radius: 6px;
    display: block;
    transition: transform .55s cubic-bezier(0.16, 1, 0.3, 1)
}

.portf .tb-imgstrip::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 6px;
    background: radial-gradient(ellipse at 0% 0%, #54010b61 0%, transparent 55%), radial-gradient(ellipse at 100% 100%, #54010b47 0%, transparent 55%);
    pointer-events: none
}

.portf .tb-text {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 28px 56px 28px 8px;
    gap: 28px;
    border-right: 2px solid #6cd30559
}

.portf .tb-label {
    font-size: 15px;
    line-height: 1.75;
    color: #54010B;
    letter-spacing: .08em;
    text-transform: uppercase
}

.portf .tb-h1 {
    font-size: 70px;
    line-height: 1.1;
    letter-spacing: -.02em;
    margin: 0;
    color: #1b0003
}

.portf .tb-pull {
    display: flex;
    flex-direction: row;
    gap: 28px;
    align-items: flex-start
}

.portf .tb-pullquote {
    flex: 0 0 auto;
    font-size: 19px;
    line-height: 1.75;
    color: #54010B;
    font-weight: 700;
    max-width: 180px
}

.portf .tb-body {
    flex: 1;
    font-size: 15px;
    line-height: 1.75;
    color: #2a0508
}

.portf .tb-accent {
    display: inline-block;
    color: #6CD305;
    font-weight: 700;
    margin: 0 4px
}

.portf .dualnarr {
    background-color: #fff;
    padding: 56px 0;
    position: relative
}

.portf .dualnarr-bg {
    position: absolute;
    inset: 0;
    overflow: hidden;
    pointer-events: none
}

.portf .scanline-anim {
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(to bottom, transparent 0px, transparent 18px, #54010b06 18px, #54010b06 19px);
    animation: scanDrift 9s linear infinite
}

@keyframes scanDrift {
    0% {
        transform: translateY(0)
    }

    100% {
        transform: translateY(19px)
    }
}

.portf .dualnarr-head {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 28px 56px;
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
    gap: 28px
}

.portf .dualnarr-head h2 {
    font-size: 41px;
    line-height: 1.1;
    letter-spacing: -.015em;
    margin: 0;
    max-width: 560px
}

.portf .dualnarr-head p {
    font-size: 15px;
    line-height: 1.75;
    color: #3a0208;
    max-width: 320px;
    margin: 0
}

.portf .dual-grid {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 28px;
    display: grid;
    grid-template-columns: 1fr 2px 1fr;
    gap: 0 28px
}

.portf .dual-divider {
    background: linear-gradient(to bottom, transparent, #54010b33, #6cd3054d, transparent);
    border-radius: 44px
}

.portf .dual-path {
    display: flex;
    flex-direction: column;
    gap: 28px
}

.portf .dual-pathlabel {
    font-size: 15px;
    line-height: 1.1;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #54010B;
    padding-bottom: 16px;
    border-bottom: 1px solid #54010b26
}

.portf .dual-item {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding-bottom: 28px;
    border-bottom: 1px solid #54010b14
}

.portf .dual-item:last-child {
    border-bottom: none
}

.portf .dual-item h4 {
    font-size: 19px;
    line-height: 1.1;
    margin: 0;
    color: #1b0003
}

.portf .dual-item p {
    font-size: 15px;
    line-height: 1.75;
    color: #3a0208;
    margin: 0
}

.portf .dual-icon {
    width: 32px;
    height: 32px;
    flex-shrink: 0
}

.portf .dual-iconrow {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 16px
}

.portf .anchorgrid {
    background-color: #E7ECF0;
    padding: 56px 0;
    position: relative
}

.portf .anchorgrid-blobwrap {
    position: absolute;
    inset: 0;
    overflow: hidden;
    pointer-events: none
}

.portf .blob1 {
    position: absolute;
    top: -80px;
    right: -60px;
    width: 420px;
    height: 420px;
    background: #6cd3050f;
    border-radius: 44% 56% 62% 38% / 48% 44% 56% 52%
}

.portf .blob2 {
    position: absolute;
    bottom: -60px;
    left: -40px;
    width: 300px;
    height: 300px;
    background: #54010b0d;
    border-radius: 60% 40% 38% 62% / 52% 60% 40% 48%
}

.portf .ag-inner {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 28px;
    display: grid;
    grid-template-columns: 1.6fr 1fr;
    gap: 28px;
    align-items: start
}

.portf .ag-anchor {
    background: #54010B;
    border-radius: 6px;
    padding: 56px;
    display: flex;
    flex-direction: column;
    gap: 28px;
    box-shadow: 0 9px 36px 0 #54010b1a;
    position: relative;
    overflow: hidden
}

.portf .ag-anchor::before {
    content: '';
    position: absolute;
    top: -40px;
    right: -40px;
    width: 200px;
    height: 200px;
    background: #6cd30514;
    border-radius: 44%;
    pointer-events: none
}

.portf .ag-anchor h3 {
    font-size: 41px;
    line-height: 1.1;
    letter-spacing: -.015em;
    color: #E7ECF0;
    margin: 0
}

.portf .ag-anchor p {
    font-size: 15px;
    line-height: 1.75;
    color: #e7ecf0d1;
    margin: 0
}

.portf .ag-anchor-img {
    border-radius: 6px;
    overflow: hidden;
    position: relative
}

.portf .ag-anchor-img img {
    width: 100%;
    height: 220px;
    object-fit: cover;
    border-radius: 6px;
    display: block;
    transition: transform .45s cubic-bezier(0.16, 1, 0.3, 1)
}

.portf .ag-anchor-img:hover img {
    transform: scale(1.04)
}

.portf .ag-anchor-stat {
    display: flex;
    flex-direction: row;
    gap: 28px
}

.portf .ag-stat {
    display: flex;
    flex-direction: column;
    gap: 4px
}

.portf .ag-statnum {
    font-size: 41px;
    line-height: 1.1;
    color: #6CD305;
    font-weight: 700
}

.portf .ag-statlabel {
    font-size: 15px;
    line-height: 1.75;
    color: #e7ecf0b3
}

.portf .ag-cta-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: transparent;
    border: 1px solid #6cd30580;
    border-radius: 6px;
    color: #6CD305;
    font-size: 15px;
    line-height: 1.1;
    padding: 16px 28px;
    cursor: pointer;
    text-decoration: none;
    transition: border-color .45s cubic-bezier(0.16, 1, 0.3, 1), box-shadow .45s cubic-bezier(0.16, 1, 0.3, 1);
    position: relative;
    align-self: flex-start
}

.portf .ag-cta-btn::after {
    content: '';
    position: absolute;
    inset: 3px;
    border: 1px solid transparent;
    border-radius: 6px;
    transition: border-color .45s cubic-bezier(0.16, 1, 0.3, 1)
}

.portf .ag-cta-btn:hover {
    border-color: #6CD305;
    box-shadow: 0 5px 25px 0 #6cd30514
}

.portf .ag-cta-btn:hover::after {
    border-color: #6cd30566
}

.portf .ag-cta-arrow {
    width: 16px;
    height: 16px;
    display: flex;
    align-items: center;
    justify-content: center
}

.portf .ag-compact-grid {
    display: flex;
    flex-direction: column;
    gap: 16px
}

.portf .ag-card {
    background: #fff;
    border-radius: 6px;
    padding: 16px 28px;
    box-shadow: 0 1px 5px 0 #54010b0f;
    display: flex;
    flex-direction: column;
    gap: 8px;
    transition: box-shadow .4s ease-in-out, transform .4s ease-in-out
}

.portf .ag-card:hover {
    box-shadow: 0 5px 25px 0 #54010b14;
    transform: translateY(-2px)
}

.portf .ag-card h5 {
    font-size: 15px;
    line-height: 1.1;
    color: #54010B;
    margin: 0;
    font-weight: 700
}

.portf .ag-card span {
    font-size: 15px;
    line-height: 1.75;
    color: #3a0208;
    display: block
}

.portf .ag-card-icon {
    width: 24px;
    height: 24px;
    flex-shrink: 0
}

.portf .ag-cardrow {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 16px
}

.portf .icon-outline-wrap {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center
}

.portf .icon-outline-wrap svg.icon-trace {
    position: absolute;
    inset: -4px;
    width: calc(100% + 8px);
    height: calc(100% + 8px)
}

.portf .icon-outline-wrap svg.icon-trace rect,
.portf .icon-outline-wrap svg.icon-trace circle {
    fill: none;
    stroke: #6CD305;
    stroke-width: 1.5;
    stroke-dasharray: 200;
    stroke-dashoffset: 200;
    transition: stroke-dashoffset .55s cubic-bezier(0.16, 1, 0.3, 1)
}

.portf .ag-card:hover .icon-outline-wrap svg.icon-trace rect,
.portf .ag-card:hover .icon-outline-wrap svg.icon-trace circle {
    stroke-dashoffset: 0
}

.portf .dual-item h4 {
    position: relative;
    cursor: default
}

.portf .dual-item h4 span.masktext {
    display: inline-block;
    background: linear-gradient(to bottom, #54010B, #6CD305);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    background-size: 100% 200%;
    background-position: 0 0;
    transition: background-position .5s cubic-bezier(0.16, 1, 0.3, 1)
}

.portf .dual-item:hover h4 span.masktext {
    background-position: 0 100%
}

.portf a.pf-link {
    color: #54010B;
    text-decoration: underline;
    transition: color .38s ease-in-out
}

.portf a.pf-link:hover {
    color: #6CD305
}

@media (max-width: 1024px) {
    .portf .titleblock-frame {
        gap: 28px
    }

    .portf .tb-h1 {
        font-size: 41px
    }

    .portf .ag-inner {
        grid-template-columns: 1fr
    }

    .portf .ag-anchor {
        padding: 28px
    }
}

@media (max-width: 768px) {
    .portf .titleblock-frame {
        flex-direction: column;
        gap: 28px;
        padding: 28px 16px
    }

    .portf .titleblock-frame::before {
        left: 8px;
        right: 8px;
        top: 8px;
        bottom: 8px
    }

    .portf .tb-imgstrip {
        flex: 0 0 auto;
        padding: 0
    }

    .portf .tb-imgstrip img {
        width: 100%;
        height: 220px;
        min-height: unset
    }

    .portf .tb-text {
        padding: 0 16px 16px;
        border-right: none;
        border-bottom: 2px solid #6cd30559
    }

    .portf .tb-h1 {
        font-size: 41px
    }

    .portf .tb-pull {
        flex-direction: column;
        gap: 16px
    }

    .portf .dual-grid {
        grid-template-columns: 1fr
    }

    .portf .dual-divider {
        display: none
    }

    .portf .dualnarr-head {
        flex-direction: column;
        align-items: flex-start
    }

    .portf .ag-anchor-stat {
        flex-direction: column;
        gap: 16px
    }
}

@media (max-width: 480px) {
    .portf .tb-h1 {
        font-size: 41px
    }

    .portf .ag-anchor h3 {
        font-size: 19px
    }
}

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

.frst .grad-text {
    background: linear-gradient(to bottom, #54010B, #6CD305);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text
}

.frst .ring-wrap {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: relative
}

.frst .ring-svg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%
}

.frst .titl-blk {
    background: linear-gradient(160deg, #54010B 0%, #7a1020 35%, #2d5a00 70%, #3d7a02 100%);
    padding: 56px 28px;
    position: relative
}

.frst .titl-blk::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, #6cd30514 0%, transparent 50%), linear-gradient(315deg, #54010b26 0%, transparent 50%);
    pointer-events: none
}

.frst .titl-blk::after {
    content: '';
    position: absolute;
    top: 16px;
    right: 56px;
    width: 180px;
    height: 180px;
    border: 1px solid #6cd3051f;
    border-radius: 6px;
    transform: rotate(18deg);
    pointer-events: none
}

.frst .titl-inner {
    max-width: 1400px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 56px;
    align-items: center;
    position: relative
}

.frst .titl-tag {
    display: inline-block;
    font-size: 15px;
    line-height: 1.75;
    color: #6cd305e6;
    letter-spacing: .08em;
    text-transform: uppercase;
    margin-bottom: 16px
}

.frst .titl-h1 {
    font-size: 70px;
    line-height: 1.1;
    letter-spacing: -.02em;
    color: #fff;
    margin: 0 0 28px
}

.frst .titl-h1 span {
    color: #6CD305
}

.frst .titl-desc {
    font-size: 19px;
    line-height: 1.75;
    color: #ffffffd1;
    margin: 0 0 28px;
    max-width: 480px
}

.frst .titl-act {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 15px;
    line-height: 1.75;
    color: #fff;
    text-decoration: none;
    border-bottom: 1px solid #6cd30580;
    padding-bottom: 4px;
    transition: color .45s cubic-bezier(0.16, 1, 0.3, 1), border-color .45s cubic-bezier(0.16, 1, 0.3, 1);
    position: relative
}

.frst .titl-act::after {
    content: '';
    position: absolute;
    bottom: -3px;
    left: 0;
    right: 0;
    height: 1px;
    background: #6CD305;
    opacity: 0;
    transition: opacity .45s cubic-bezier(0.16, 1, 0.3, 1)
}

.frst .titl-act:hover {
    color: #6CD305;
    border-color: #6CD305
}

.frst .titl-act:hover::after {
    opacity: 1
}

.frst .titl-arrow {
    width: 18px;
    height: 18px;
    display: inline-block;
    position: relative;
    flex-shrink: 0
}

.frst .titl-arrow svg {
    width: 18px;
    height: 18px
}

.frst .titl-right {
    position: relative
}

.frst .titl-imgwrap {
    border-radius: 6px;
    overflow: hidden;
    position: relative;
    aspect-ratio: 4/3
}

.frst .titl-imgwrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block
}

.frst .titl-imgwrap::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, #54010b73 0%, #6cd3052e 100%);
    pointer-events: none
}

.frst .ident-sec {
    background: #E7ECF0;
    padding: 56px 28px;
    position: relative
}

.frst .ident-sec::before {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 60px;
    background: #fff;
    clip-path: ellipse(55% 100% at 50% 100%);
    pointer-events: none
}

.frst .ident-inner {
    max-width: 1400px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 380px 1fr;
    gap: 56px;
    align-items: start
}

.frst .ident-label {
    font-size: 15px;
    line-height: 1.75;
    color: #54010B;
    letter-spacing: .06em;
    text-transform: uppercase;
    margin-bottom: 8px
}

.frst .ident-h2 {
    font-size: 41px;
    line-height: 1.1;
    letter-spacing: -.015em;
    margin: 0 0 16px
}

.frst .ident-sub {
    font-size: 15px;
    line-height: 1.75;
    color: #444;
    margin: 0
}

.frst .ident-right {
    display: flex;
    flex-direction: column;
    gap: 28px
}

.frst .ident-cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px
}

.frst .ident-card {
    background: #fff;
    border-radius: 6px;
    padding: 28px;
    box-shadow: 0 1px 5px 0 #54010b0f;
    transition: box-shadow .42s cubic-bezier(0.16, 1, 0.3, 1), transform .42s cubic-bezier(0.16, 1, 0.3, 1)
}

.frst .ident-card:hover {
    box-shadow: 0 5px 25px 0 #54010b14;
    transform: translateY(-2px)
}

.frst .ident-card-mark {
    width: 32px;
    height: 3px;
    background: #6CD305;
    border-radius: 44px;
    margin-bottom: 16px
}

.frst .ident-card h4 {
    font-size: 19px;
    line-height: 1.1;
    color: #54010B;
    margin: 0 0 8px;
    letter-spacing: -.01em
}

.frst .ident-card p {
    font-size: 15px;
    line-height: 1.75;
    color: #444;
    margin: 0
}

.frst .ident-note {
    font-size: 15px;
    line-height: 1.75;
    color: #666;
    border-top: 1px solid #54010b1f;
    padding-top: 16px
}

.frst .appr-sec {
    background: #fff;
    padding: 56px 28px;
    position: relative
}

.frst .appr-inner {
    max-width: 1400px;
    margin: 0 auto
}

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

.frst .appr-imgwrap {
    border-radius: 6px;
    overflow: hidden;
    position: relative;
    aspect-ratio: 16/10
}

.frst .appr-imgwrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .55s cubic-bezier(0.16, 1, 0.3, 1)
}

.frst .appr-imgwrap:hover img {
    transform: scale(1.04)
}

.frst .appr-imgwrap::after {
    content: '';
    position: absolute;
    inset: 0;
    background: #54010b00;
    transition: background .45s cubic-bezier(0.16, 1, 0.3, 1);
    pointer-events: none
}

.frst .appr-imgwrap:hover::after {
    background: #54010b73
}

.frst .appr-imgtext {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 28px;
    opacity: 0;
    transition: opacity .45s cubic-bezier(0.16, 1, 0.3, 1);
    pointer-events: none
}

.frst .appr-imgwrap:hover .appr-imgtext {
    opacity: 1
}

.frst .appr-imgtext p {
    font-size: 15px;
    line-height: 1.75;
    color: #fff;
    text-align: center;
    margin: 0
}

.frst .appr-txt {
    display: flex;
    flex-direction: column;
    gap: 16px
}

.frst .appr-label {
    font-size: 15px;
    line-height: 1.75;
    color: #54010B;
    letter-spacing: .06em;
    text-transform: uppercase
}

.frst .appr-h2 {
    font-size: 41px;
    line-height: 1.1;
    letter-spacing: -.015em;
    margin: 0
}

.frst .appr-pull {
    font-size: 19px;
    line-height: 1.75;
    color: #54010B;
    font-weight: 600;
    margin: 0
}

.frst .appr-body {
    font-size: 15px;
    line-height: 1.75;
    color: #444;
    margin: 0
}

.frst .appr-pillars {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 28px
}

.frst .appr-pillar {
    border-top: 2px solid #E7ECF0;
    padding-top: 16px;
    transition: border-color .42s ease-in-out
}

.frst .appr-pillar:hover {
    border-color: #6CD305
}

.frst .appr-pillar h5 {
    font-size: 15px;
    line-height: 1.75;
    color: #54010B;
    margin: 0 0 8px;
    font-weight: 700
}

.frst .appr-pillar p {
    font-size: 15px;
    line-height: 1.75;
    color: #555;
    margin: 0
}

.frst .cond-sec {
    background: #54010B;
    padding: 56px 28px;
    position: relative
}

.frst .cond-sec::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 60px;
    background: #fff;
    clip-path: ellipse(55% 100% at 50% 0%);
    pointer-events: none
}

.frst .cond-diag {
    position: absolute;
    bottom: 28px;
    right: 56px;
    width: 120px;
    height: 120px;
    pointer-events: none;
    opacity: .08
}

.frst .cond-inner {
    max-width: 1400px;
    margin: 0 auto;
    position: relative
}

.frst .cond-head {
    text-align: center;
    margin-bottom: 56px
}

.frst .cond-h2 {
    font-size: 41px;
    line-height: 1.1;
    letter-spacing: -.015em;
    color: #fff;
    margin: 0 0 16px
}

.frst .cond-desc {
    font-size: 19px;
    line-height: 1.75;
    color: #ffffffbf;
    max-width: 560px;
    margin: 0 auto
}

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

.frst .cond-item {
    background: #ffffff12;
    border-radius: 6px;
    padding: 28px;
    border: 1px solid #ffffff1a;
    transition: background .48s cubic-bezier(0.16, 1, 0.3, 1), border-color .48s cubic-bezier(0.16, 1, 0.3, 1)
}

.frst .cond-item:hover {
    background: #6cd3051a;
    border-color: #6cd3054d
}

.frst .cond-num {
    font-size: 41px;
    line-height: 1.1;
    color: #6CD305;
    font-weight: 700;
    letter-spacing: -.02em;
    margin-bottom: 8px
}

.frst .cond-item h5 {
    font-size: 19px;
    line-height: 1.1;
    color: #fff;
    margin: 0 0 8px
}

.frst .cond-item p {
    font-size: 15px;
    line-height: 1.75;
    color: #ffffffb3;
    margin: 0
}

.frst .exp-sec {
    background: #E7ECF0;
    padding: 56px 28px
}

.frst .exp-inner {
    max-width: 1400px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 520px;
    gap: 56px;
    align-items: start
}

.frst .exp-left {
    display: flex;
    flex-direction: column;
    gap: 28px
}

.frst .exp-label {
    font-size: 15px;
    line-height: 1.75;
    color: #54010B;
    letter-spacing: .06em;
    text-transform: uppercase
}

.frst .exp-h2 {
    font-size: 41px;
    line-height: 1.1;
    letter-spacing: -.015em;
    margin: 0
}

.frst .exp-pull {
    font-size: 19px;
    line-height: 1.75;
    color: #54010B;
    font-weight: 600;
    margin: 0
}

.frst .exp-body {
    font-size: 15px;
    line-height: 1.75;
    color: #444;
    margin: 0
}

.frst .exp-phases {
    display: flex;
    flex-direction: column;
    gap: 4px
}

.frst .exp-phase {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding: 16px 0;
    border-bottom: 1px solid #54010b1a
}

.frst .exp-phase:last-child {
    border-bottom: none
}

.frst .exp-phase-num {
    font-size: 15px;
    line-height: 1.75;
    color: #6CD305;
    font-weight: 700;
    flex-shrink: 0;
    width: 28px
}

.frst .exp-phase-txt h6 {
    font-size: 15px;
    line-height: 1.75;
    color: #54010B;
    margin: 0 0 4px;
    font-weight: 700
}

.frst .exp-phase-txt p {
    font-size: 15px;
    line-height: 1.75;
    color: #555;
    margin: 0
}

.frst .exp-right {
    display: flex;
    flex-direction: column;
    gap: 28px
}

.frst .exp-imgwrap {
    border-radius: 6px;
    overflow: hidden;
    position: relative;
    aspect-ratio: 4/3
}

.frst .exp-imgwrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .55s cubic-bezier(0.16, 1, 0.3, 1)
}

.frst .exp-imgwrap:hover img {
    transform: scale(1.04)
}

.frst .exp-imgwrap::after {
    content: '';
    position: absolute;
    inset: 0;
    background: #54010b00;
    transition: background .45s cubic-bezier(0.16, 1, 0.3, 1);
    pointer-events: none
}

.frst .exp-imgwrap:hover::after {
    background: #54010b73
}

.frst .exp-imgtext {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 28px;
    opacity: 0;
    transition: opacity .45s cubic-bezier(0.16, 1, 0.3, 1);
    pointer-events: none
}

.frst .exp-imgwrap:hover .exp-imgtext {
    opacity: 1
}

.frst .exp-imgtext p {
    font-size: 15px;
    line-height: 1.75;
    color: #fff;
    text-align: center;
    margin: 0
}

.frst .exp-metrics {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px
}

.frst .exp-metric {
    background: #fff;
    border-radius: 6px;
    padding: 16px;
    display: flex;
    flex-direction: column;
    align-items: center;
    box-shadow: 0 1px 5px 0 #54010b0f
}

.frst .exp-metric-ring {
    width: 72px;
    height: 72px;
    position: relative;
    margin-bottom: 8px
}

.frst .exp-metric-ring svg {
    width: 72px;
    height: 72px;
    transform: rotate(-90deg)
}

.frst .exp-metric-ring .ring-bg {
    fill: none;
    stroke: #E7ECF0;
    stroke-width: 5
}

.frst .exp-metric-ring .ring-fill {
    fill: none;
    stroke: #6CD305;
    stroke-width: 5;
    stroke-linecap: round;
    stroke-dasharray: 188;
    transition: stroke-dashoffset .52s cubic-bezier(0.16, 1, 0.3, 1)
}

.frst .exp-metric-val {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 15px;
    line-height: 1.1;
    font-weight: 700;
    color: #54010B
}

.frst .exp-metric-lbl {
    font-size: 15px;
    line-height: 1.75;
    color: #555;
    text-align: center
}

.frst .rep-sec {
    background: #fff;
    padding: 56px 28px;
    position: relative
}

.frst .rep-sec::after {
    content: '';
    position: absolute;
    bottom: 0;
    right: 0;
    width: 100%;
    height: 60px;
    background: #54010B;
    clip-path: ellipse(55% 100% at 50% 100%);
    pointer-events: none
}

.frst .rep-inner {
    max-width: 1400px;
    margin: 0 auto
}

.frst .rep-top {
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
    gap: 28px;
    margin-bottom: 56px
}

.frst .rep-h2 {
    font-size: 41px;
    line-height: 1.1;
    letter-spacing: -.015em;
    margin: 0;
    max-width: 480px
}

.frst .rep-aside {
    font-size: 15px;
    line-height: 1.75;
    color: #555;
    max-width: 340px;
    text-align: right
}

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

.frst .rep-card {
    border-radius: 6px;
    padding: 28px;
    background: #E7ECF0;
    transition: box-shadow .42s cubic-bezier(0.16, 1, 0.3, 1), background .42s cubic-bezier(0.16, 1, 0.3, 1)
}

.frst .rep-card:hover {
    background: #fff;
    box-shadow: 0 5px 25px 0 #54010b14
}

.frst .rep-card-icon {
    width: 40px;
    height: 40px;
    margin-bottom: 16px
}

.frst .rep-card h5 {
    font-size: 19px;
    line-height: 1.1;
    color: #54010B;
    margin: 0 0 8px
}

.frst .rep-card p {
    font-size: 15px;
    line-height: 1.75;
    color: #444;
    margin: 0
}

.frst .rep-assoc {
    margin-top: 56px;
    display: flex;
    flex-direction: row;
    gap: 28px;
    align-items: center;
    flex-wrap: wrap
}

.frst .rep-assoc-label {
    font-size: 15px;
    line-height: 1.75;
    color: #888;
    letter-spacing: .05em;
    text-transform: uppercase;
    flex-shrink: 0
}

.frst .rep-assoc-items {
    display: flex;
    flex-direction: row;
    gap: 28px;
    flex-wrap: wrap;
    align-items: center
}

.frst .rep-assoc-item {
    font-size: 15px;
    line-height: 1.75;
    color: #54010B;
    font-weight: 600;
    padding: 8px 16px;
    border-radius: 44px;
    border: 1px solid #54010b33;
    transition: border-color .42s ease-in-out, color .42s ease-in-out
}

.frst .rep-assoc-item:hover {
    border-color: #6CD305;
    color: #3a7a00
}

.frst .voice-sec {
    background: #54010B;
    padding: 56px 28px;
    position: relative
}

.frst .voice-sec::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 60px;
    background: #fff;
    clip-path: ellipse(55% 100% at 50% 0%);
    pointer-events: none
}

.frst .voice-inner {
    max-width: 1400px;
    margin: 0 auto;
    position: relative
}

.frst .voice-head {
    margin-bottom: 56px
}

.frst .voice-h2 {
    font-size: 41px;
    line-height: 1.1;
    letter-spacing: -.015em;
    color: #fff;
    margin: 0 0 16px
}

.frst .voice-sub {
    font-size: 19px;
    line-height: 1.75;
    color: #ffffffb3;
    max-width: 520px
}

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

.frst .voice-card {
    background: #ffffff12;
    border-radius: 6px;
    padding: 28px;
    border: 1px solid #ffffff1a;
    display: flex;
    flex-direction: column;
    gap: 16px;
    transition: background .48s cubic-bezier(0.16, 1, 0.3, 1)
}

.frst .voice-card:hover {
    background: #ffffff1f
}

.frst .voice-quote {
    font-size: 15px;
    line-height: 1.75;
    color: #ffffffe0;
    margin: 0;
    flex: 1
}

.frst .voice-person {
    display: flex;
    flex-direction: column;
    gap: 4px;
    border-top: 1px solid #ffffff1f;
    padding-top: 16px
}

.frst .voice-name {
    font-size: 15px;
    line-height: 1.75;
    color: #6CD305;
    font-weight: 700
}

.frst .voice-role {
    font-size: 15px;
    line-height: 1.75;
    color: #ffffff8c
}

.frst .voice-result {
    font-size: 15px;
    line-height: 1.75;
    color: #ffffffbf;
    font-style: italic
}

@keyframes cascadeIn {
    from {
        opacity: 0;
        transform: translateY(20px)
    }

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

.frst .titl-left {
    animation: cascadeIn .52s cubic-bezier(0.16, 1, 0.3, 1) .1s both
}

.frst .titl-right {
    animation: cascadeIn .52s cubic-bezier(0.16, 1, 0.3, 1) .22s both
}

.frst .ident-card:nth-child(1) {
    animation: cascadeIn .48s cubic-bezier(0.16, 1, 0.3, 1) .1s both
}

.frst .ident-card:nth-child(2) {
    animation: cascadeIn .48s cubic-bezier(0.16, 1, 0.3, 1) .2s both
}

.frst .ident-card:nth-child(3) {
    animation: cascadeIn .48s cubic-bezier(0.16, 1, 0.3, 1) .3s both
}

.frst .ident-card:nth-child(4) {
    animation: cascadeIn .48s cubic-bezier(0.16, 1, 0.3, 1) .4s both
}

.frst .appr-pillar:nth-child(1) {
    animation: cascadeIn .5s cubic-bezier(0.16, 1, 0.3, 1) .08s both
}

.frst .appr-pillar:nth-child(2) {
    animation: cascadeIn .5s cubic-bezier(0.16, 1, 0.3, 1) .18s both
}

.frst .appr-pillar:nth-child(3) {
    animation: cascadeIn .5s cubic-bezier(0.16, 1, 0.3, 1) .28s both
}

.frst .appr-pillar:nth-child(4) {
    animation: cascadeIn .5s cubic-bezier(0.16, 1, 0.3, 1) .38s both
}

.frst .cond-item:nth-child(1) {
    animation: cascadeIn .5s cubic-bezier(0.16, 1, 0.3, 1) .1s both
}

.frst .cond-item:nth-child(2) {
    animation: cascadeIn .5s cubic-bezier(0.16, 1, 0.3, 1) .2s both
}

.frst .cond-item:nth-child(3) {
    animation: cascadeIn .5s cubic-bezier(0.16, 1, 0.3, 1) .3s both
}

.frst .cond-item:nth-child(4) {
    animation: cascadeIn .5s cubic-bezier(0.16, 1, 0.3, 1) .4s both
}

.frst .cond-item:nth-child(5) {
    animation: cascadeIn .5s cubic-bezier(0.16, 1, 0.3, 1) .5s both
}

.frst .cond-item:nth-child(6) {
    animation: cascadeIn .5s cubic-bezier(0.16, 1, 0.3, 1) .6s both
}

.frst .voice-card:nth-child(1) {
    animation: cascadeIn .5s cubic-bezier(0.16, 1, 0.3, 1) .12s both
}

.frst .voice-card:nth-child(2) {
    animation: cascadeIn .5s cubic-bezier(0.16, 1, 0.3, 1) .24s both
}

.frst .voice-card:nth-child(3) {
    animation: cascadeIn .5s cubic-bezier(0.16, 1, 0.3, 1) .36s both
}

@media (max-width: 1100px) {
    .frst .titl-inner {
        grid-template-columns: 1fr;
        gap: 28px
    }

    .frst .titl-h1 {
        font-size: 41px
    }

    .frst .ident-inner {
        grid-template-columns: 1fr;
        gap: 28px
    }

    .frst .appr-top {
        grid-template-columns: 1fr;
        gap: 28px
    }

    .frst .appr-pillars {
        grid-template-columns: 1fr 1fr
    }

    .frst .exp-inner {
        grid-template-columns: 1fr;
        gap: 28px
    }

    .frst .rep-top {
        flex-direction: column;
        align-items: flex-start
    }

    .frst .rep-aside {
        text-align: left
    }

    .frst .rep-grid {
        grid-template-columns: 1fr 1fr
    }

    .frst .voice-grid {
        grid-template-columns: 1fr 1fr
    }
}

@media (max-width: 720px) {
    .frst .titl-blk {
        padding: 28px 16px
    }

    .frst .titl-h1 {
        font-size: 41px
    }

    .frst .ident-cols {
        grid-template-columns: 1fr
    }

    .frst .cond-grid {
        grid-template-columns: 1fr
    }

    .frst .appr-pillars {
        grid-template-columns: 1fr
    }

    .frst .rep-grid {
        grid-template-columns: 1fr
    }

    .frst .voice-grid {
        grid-template-columns: 1fr
    }

    .frst .exp-metrics {
        grid-template-columns: 1fr 1fr
    }

    .frst .ident-sec,
    .frst .appr-sec,
    .frst .cond-sec,
    .frst .exp-sec,
    .frst .rep-sec,
    .frst .voice-sec {
        padding: 28px 16px
    }
}

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

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

@keyframes ctusReveal {
    from {
        opacity: 0
    }

    to {
        opacity: 1
    }
}

.ctus .splitband {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 520px;
    position: relative
}

.ctus .splitband::after {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%) skewX(-4deg);
    width: 56px;
    height: 100%;
    background: #fff;
    z-index: 2;
    pointer-events: none
}

.ctus .splitleft {
    position: relative;
    overflow: hidden
}

.ctus .splitleft img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block
}

.ctus .splitleft .vignette {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, #54010b2e 0%, #54010b9e 100%);
    pointer-events: none
}

.ctus .splitleft .curvelines {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden
}

.ctus .splitleft .curvelines svg {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: .22
}

.ctus .splitleft .overtext {
    position: absolute;
    bottom: 56px;
    left: 28px;
    right: 56px;
    z-index: 3
}

.ctus .splitleft .overtext h1 {
    font-size: 41px;
    line-height: 1.1;
    letter-spacing: -.03em;
    color: #fff;
    margin: 0 0 16px
}

.ctus .splitleft .overtext h1 span {
    color: #6CD305
}

.ctus .splitleft .overtext blockquote {
    font-size: 15px;
    line-height: 1.75;
    color: #e7ecf0e0;
    margin: 0;
    border: none;
    padding: 0;
    font-style: italic
}

.ctus .splitright {
    background: linear-gradient(to bottom, #E7ECF0 0%, #fff 100%);
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 56px;
    position: relative;
    z-index: 3
}

.ctus .splitright .formhead {
    margin-bottom: 28px
}

.ctus .splitright .formhead h2 {
    font-size: 19px;
    line-height: 1.1;
    letter-spacing: -.02em;
    margin: 0 0 8px;
    background: linear-gradient(to bottom, #54010B, #6CD305);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text
}

.ctus .splitright .formhead p {
    font-size: 15px;
    line-height: 1.75;
    color: #3a3a3a;
    margin: 0
}

.ctus .contactform {
    display: flex;
    flex-direction: column;
    gap: 16px
}

.ctus .contactform .fieldrow {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px
}

.ctus .contactform .fieldgrp {
    display: flex;
    flex-direction: column;
    gap: 8px
}

.ctus .contactform .fieldgrp label {
    font-size: 15px;
    line-height: 1.1;
    color: #54010B;
    font-weight: 600;
    letter-spacing: .01em
}

.ctus .contactform .fieldinput {
    padding: 16px;
    border: 1.5px solid #54010b2e;
    border-radius: 6px;
    font-size: 15px;
    line-height: 1.75;
    color: #1e1e1e;
    background: #fff;
    width: 100%;
    box-sizing: border-box;
    transition: border-color .45s cubic-bezier(0.16, 1, 0.3, 1), box-shadow .45s cubic-bezier(0.16, 1, 0.3, 1);
    box-shadow: 0 1px 5px 0 #54010b0f
}

.ctus .contactform .fieldinput::placeholder {
    color: #54010b47
}

.ctus .contactform .fieldinput:focus {
    outline: none;
    border-color: #54010B;
    box-shadow: 0 5px 25px 0 #54010b14
}

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

.ctus .contactform .privacyrow {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 8px
}

.ctus .contactform .privacyrow input[type="checkbox"] {
    margin-top: 4px;
    accent-color: #54010B;
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    cursor: pointer
}

.ctus .contactform .privacyrow .privlabel {
    font-size: 15px;
    line-height: 1.75;
    color: #3a3a3a
}

.ctus .contactform .privacyrow .privlabel a {
    color: #54010B;
    text-decoration: underline;
    transition: color .35s ease-in-out
}

.ctus .contactform .privacyrow .privlabel a:hover {
    color: #6CD305
}

.ctus .contactform .submitbtn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 16px 28px;
    background: #54010B;
    color: #fff;
    font-size: 15px;
    line-height: 1.1;
    font-weight: 600;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    position: relative;
    transition: background .45s cubic-bezier(0.16, 1, 0.3, 1), box-shadow .45s cubic-bezier(0.16, 1, 0.3, 1);
    box-shadow: 0 5px 25px 0 #54010b14;
    align-self: flex-start;
    type: submit
}

.ctus .contactform .submitbtn::before {
    content: '';
    position: absolute;
    inset: 3px;
    border: 1.5px solid #fff0;
    border-radius: 4px;
    transition: border-color .45s cubic-bezier(0.16, 1, 0.3, 1)
}

.ctus .contactform .submitbtn:hover {
    background: #3d0008;
    box-shadow: 0 9px 36px 0 #54010b1a
}

.ctus .contactform .submitbtn:hover::before {
    border-color: #ffffff59
}

.ctus .contactform .submitbtn:focus {
    outline: 2px solid #6CD305;
    outline-offset: 3px
}

.ctus .contactform .submitbtn .arrowsvg {
    width: 16px;
    height: 16px;
    transition: transform .45s cubic-bezier(0.16, 1, 0.3, 1)
}

.ctus .contactform .submitbtn:hover .arrowsvg {
    transform: translateX(4px)
}

.ctus .infoband {
    background: linear-gradient(to bottom, #fff 0%, #E7ECF0 100%);
    padding: 56px 0;
    position: relative
}

.ctus .infoband .diamonddiv {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 0;
    margin-bottom: 56px;
    overflow: hidden
}

.ctus .infoband .diamonddiv .dline {
    flex: 1;
    height: 1px;
    background: #54010b2e
}

.ctus .infoband .diamonddiv .diamonds {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    padding: 0 16px
}

.ctus .infoband .diamonddiv .diamonds span {
    display: block;
    width: 8px;
    height: 8px;
    background: #54010B;
    transform: rotate(45deg)
}

.ctus .infoband .diamonddiv .diamonds span.sec {
    background: #6CD305;
    width: 6px;
    height: 6px
}

.ctus .infoband .infogrid {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 56px;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 28px
}

.ctus .infoband .infocard {
    padding: 28px;
    border-radius: 6px;
    background: #fff;
    box-shadow: 0 5px 25px 0 #54010b14;
    display: flex;
    flex-direction: column;
    gap: 16px;
    transition: box-shadow .5s cubic-bezier(0.16, 1, 0.3, 1), opacity .5s cubic-bezier(0.16, 1, 0.3, 1)
}

.ctus .infoband .infogrid:hover .infocard {
    opacity: .5
}

.ctus .infoband .infogrid:hover .infocard:hover {
    opacity: 1;
    box-shadow: 0 9px 36px 0 #54010b1a
}

.ctus .infoband .infocard .cardicon {
    width: 44px;
    height: 44px;
    border-radius: 6px;
    background: #54010b0f;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0
}

.ctus .infoband .infocard .cardicon svg {
    width: 22px;
    height: 22px
}

.ctus .infoband .infocard h4 {
    font-size: 15px;
    line-height: 1.1;
    letter-spacing: -.01em;
    margin: 0;
    background: linear-gradient(to bottom, #54010B, #6CD305);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    font-weight: 700
}

.ctus .infoband .infocard .carddetails {
    font-size: 15px;
    line-height: 1.75;
    color: #2a2a2a
}

.ctus .infoband .infocard .carddetails a {
    color: #54010B;
    text-decoration: none;
    transition: color .35s ease-in-out
}

.ctus .infoband .infocard .carddetails a:hover {
    color: #6CD305
}

.ctus .infoband .infocard .detaillist {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column
}

.ctus .infoband .infocard .detaillist li {
    padding: 8px 0;
    border-bottom: 1px solid #54010b1a;
    font-size: 15px;
    line-height: 1.75;
    color: #2a2a2a
}

.ctus .infoband .infocard .detaillist li:last-child {
    border-bottom: none
}

.ctus .infoband .infocard .detaillist li strong {
    color: #54010B;
    font-weight: 600;
    margin-right: 4px
}

.ctus .infoband .expandlist {
    display: flex;
    flex-direction: column;
    gap: 0
}

.ctus .infoband .expandlist .expitem {
    border-bottom: 1px solid #54010b1a
}

.ctus .infoband .expandlist .expitem:first-child {
    border-top: 1px solid #54010b1a
}

.ctus .infoband .expandlist details {
    padding: 0
}

.ctus .infoband .expandlist details summary {
    padding: 16px 0;
    font-size: 15px;
    line-height: 1.1;
    font-weight: 600;
    color: #54010B;
    cursor: pointer;
    list-style: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    transition: color .4s ease-in-out
}

.ctus .infoband .expandlist details summary::-webkit-details-marker {
    display: none
}

.ctus .infoband .expandlist details summary::after {
    content: '';
    display: block;
    width: 10px;
    height: 10px;
    border-right: 2px solid #54010B;
    border-bottom: 2px solid #54010B;
    transform: rotate(45deg);
    transition: transform .4s cubic-bezier(0.16, 1, 0.3, 1);
    flex-shrink: 0;
    margin-top: -4px
}

.ctus .infoband .expandlist details[open] summary::after {
    transform: rotate(-135deg);
    margin-top: 4px
}

.ctus .infoband .expandlist details summary:hover {
    color: #6CD305
}

.ctus .infoband .expandlist details .expbody {
    padding: 0 0 16px;
    font-size: 15px;
    line-height: 1.75;
    color: #2a2a2a
}

.ctus .infoband .pullquote {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 28px;
    align-items: start;
    margin-top: 16px
}

.ctus .infoband .pullquote .pqleft {
    font-size: 19px;
    line-height: 1.1;
    font-weight: 700;
    color: #54010B;
    letter-spacing: -.02em
}

.ctus .infoband .pullquote .pqright {
    font-size: 15px;
    line-height: 1.75;
    color: #2a2a2a
}

.ctus .infoband .imagecardwrap {
    position: relative;
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 9px 36px 0 #54010b1a
}

.ctus .infoband .imagecardwrap img {
    width: 100%;
    height: 220px;
    object-fit: cover;
    display: block
}

.ctus .infoband .imagecardwrap .imgoverlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, #54010b0a 0%, #54010b8c 100%);
    pointer-events: none
}

.ctus .infoband .imagecardwrap .imgcaption {
    position: absolute;
    bottom: 16px;
    left: 16px;
    right: 16px;
    font-size: 15px;
    line-height: 1.1;
    color: #fff;
    font-weight: 600
}

@media (max-width: 1024px) {
    .ctus .splitband {
        grid-template-columns: 1fr
    }

    .ctus .splitband::after {
        display: none
    }

    .ctus .splitleft {
        min-height: 320px
    }

    .ctus .splitright {
        padding: 56px 28px
    }

    .ctus .infoband .infogrid {
        grid-template-columns: 1fr 1fr;
        padding: 0 28px
    }
}

@media (max-width: 768px) {
    .ctus .contactform .fieldrow {
        grid-template-columns: 1fr
    }

    .ctus .infoband .infogrid {
        grid-template-columns: 1fr;
        padding: 0 16px
    }

    .ctus .infoband .pullquote {
        grid-template-columns: 1fr
    }

    .ctus .splitright {
        padding: 28px 16px
    }

    .ctus .infoband {
        padding: 28px 0
    }
}

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

.prs .prsHero {
    display: grid;
    grid-template-columns: 1fr 2.2fr;
    min-height: 520px;
    position: relative
}

.prs .prsHero::after {
    content: '';
    position: absolute;
    top: 28px;
    left: 0;
    width: 60%;
    height: 3px;
    background: linear-gradient(to right, #54010B, #6CD305);
    pointer-events: none
}

.prs .prsHeroImg {
    position: relative;
    overflow: hidden;
    border-radius: 6px;
    margin: 28px 0 28px 28px
}

.prs .prsHeroImg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: saturate(0.35) brightness(0.88);
    display: block;
    transition: filter .45s cubic-bezier(0.16, 1, 0.3, 1)
}

.prs .prsHeroImg:hover img {
    filter: saturate(0.55) brightness(0.95)
}

.prs .prsHeroText {
    padding: 56px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 28px
}

.prs .prsLabel {
    font-size: 15px;
    line-height: 1.75;
    color: #54010B;
    letter-spacing: .08em;
    text-transform: uppercase;
    display: flex;
    align-items: center;
    gap: 8px
}

.prs .prsLabel span {
    display: inline-block;
    width: 28px;
    height: 2px;
    background: #6CD305
}

.prs .prsH1 {
    font-size: 70px;
    line-height: 1.1;
    letter-spacing: -.03em;
    font-weight: 800;
    background: linear-gradient(to bottom, #54010B, #6CD305);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    margin: 0
}

.prs .prsSub {
    font-size: 19px;
    line-height: 1.75;
    color: #2a0408;
    max-width: 540px;
    margin: 0
}

.prs .prsHeroMeta {
    display: flex;
    flex-direction: row;
    gap: 28px;
    flex-wrap: wrap
}

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

.prs .prsMetaItem strong {
    font-size: 41px;
    line-height: 1.1;
    font-weight: 800;
    color: #54010B
}

.prs .prsMetaItem em {
    font-size: 15px;
    line-height: 1.75;
    color: #4a4a4a;
    font-style: normal
}

.prs .prsKit {
    background: #E7ECF0;
    padding: 56px;
    position: relative
}

.prs .prsKitGrid {
    max-width: 1400px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 28px;
    align-items: start
}

.prs .prsKitIntro {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 56px;
    margin-bottom: 28px;
    align-items: start
}

.prs .prsKitH2 {
    font-size: 41px;
    line-height: 1.1;
    font-weight: 800;
    letter-spacing: -.02em;
    background: linear-gradient(to bottom, #54010B, #6CD305);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    margin: 0
}

.prs .prsKitBody {
    font-size: 15px;
    line-height: 1.75;
    color: #2a2a2a;
    margin: 0
}

.prs .prsKitBody+.prsKitBody {
    margin-top: 16px
}

.prs .prsPull {
    font-size: 19px;
    line-height: 1.75;
    color: #54010B;
    font-weight: 600;
    border-top: 2px solid #54010B;
    padding-top: 16px;
    margin-bottom: 8px
}

.prs .prsCard {
    background: #fff;
    border-radius: 6px;
    padding: 28px;
    box-shadow: 0 5px 25px 0 #54010b14;
    position: relative;
    overflow: hidden;
    transition: box-shadow .45s cubic-bezier(0.16, 1, 0.3, 1), transform .45s cubic-bezier(0.16, 1, 0.3, 1);
    display: flex;
    flex-direction: column;
    gap: 16px
}

.prs .prsCard::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 44px 44px 0;
    border-color: transparent #6CD305 transparent transparent;
    pointer-events: none
}

.prs .prsCard:hover {
    box-shadow: 0 9px 36px 0 #54010b1a;
    transform: translateY(-4px)
}

.prs .prsCard:focus-within {
    outline: 2px solid #54010B;
    outline-offset: 2px
}

.prs .prsCardIcon {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center
}

.prs .prsCardIcon svg {
    width: 36px;
    height: 36px
}

.prs .prsCardH {
    font-size: 19px;
    line-height: 1.1;
    font-weight: 700;
    color: #54010B;
    margin: 0
}

.prs .prsCardText {
    font-size: 15px;
    line-height: 1.75;
    color: #2a2a2a;
    margin: 0
}

.prs .prsCardLink {
    font-size: 15px;
    line-height: 1.75;
    color: #54010B;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 600;
    margin-top: auto;
    transition: color .35s ease-in-out;
    position: relative
}

.prs .prsCardLink::after {
    content: '';
    display: inline-block;
    width: 18px;
    height: 2px;
    background: currentColor;
    transition: width .45s cubic-bezier(0.16, 1, 0.3, 1)
}

.prs .prsCardLink:hover {
    color: #6CD305
}

.prs .prsCardLink:hover::after {
    width: 28px
}

.prs .prsCardLink:focus {
    outline: 2px solid #54010B;
    outline-offset: 2px;
    border-radius: 6px
}

.prs .prsCardLinkArrow {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;
    transform: rotate(45deg);
    flex-shrink: 0
}

.prs .prsMediaList {
    grid-column: 1 / -1;
    margin-top: 28px
}

.prs .prsMediaListH {
    font-size: 19px;
    line-height: 1.1;
    font-weight: 700;
    color: #54010B;
    margin: 0 0 16px
}

.prs .prsMediaItems {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column
}

.prs .prsMediaItem {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 16px;
    padding: 16px 0;
    border-bottom: 1px solid #54010b1f;
    transition: background .35s ease-in-out;
    animation: prsSlideIn .55s cubic-bezier(0.16, 1, 0.3, 1) both
}

.prs .prsMediaItem:nth-child(1) {
    animation-delay: .05s
}

.prs .prsMediaItem:nth-child(2) {
    animation-delay: .12s
}

.prs .prsMediaItem:nth-child(3) {
    animation-delay: .19s
}

.prs .prsMediaItem:nth-child(4) {
    animation-delay: .26s
}

.prs .prsMediaItem:nth-child(5) {
    animation-delay: .33s
}

@keyframes prsSlideIn {
    from {
        opacity: 0;
        transform: translateY(16px)
    }

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

.prs .prsMediaItem:last-child {
    border-bottom: none
}

.prs .prsMediaDot {
    width: 8px;
    height: 8px;
    border-radius: 44px;
    background: #6CD305;
    flex-shrink: 0;
    margin-top: 8px
}

.prs .prsMediaItemBody {
    display: flex;
    flex-direction: column;
    gap: 4px;
    flex: 1
}

.prs .prsMediaItemTitle {
    font-size: 15px;
    line-height: 1.75;
    font-weight: 600;
    color: #2a0408
}

.prs .prsMediaItemMeta {
    font-size: 15px;
    line-height: 1.75;
    color: #54010B
}

.prs .prsContactRow {
    grid-column: 1 / -1;
    display: flex;
    flex-direction: row;
    gap: 28px;
    flex-wrap: wrap;
    margin-top: 28px;
    padding-top: 28px;
    border-top: 1px solid #54010b26
}

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

.prs .prsContactLabel {
    font-size: 15px;
    line-height: 1.75;
    color: #54010B;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .06em
}

.prs .prsContactVal {
    font-size: 15px;
    line-height: 1.75;
    color: #2a2a2a
}

.prs .prsContactVal a {
    color: #54010B;
    text-decoration: none;
    transition: color .35s ease-in-out
}

.prs .prsContactVal a:hover {
    color: #6CD305
}

.prs .prsContactVal a:focus {
    outline: 2px solid #54010B;
    outline-offset: 2px;
    border-radius: 6px
}

.prs .prsDivider {
    width: 100%;
    overflow: hidden;
    line-height: 0;
    height: 48px
}

.prs .prsDivider svg {
    display: block;
    width: 100%;
    height: 48px
}

@media (max-width: 1024px) {
    .prs .prsHero {
        grid-template-columns: 1fr 1.5fr
    }

    .prs .prsHeroText {
        padding: 28px
    }

    .prs .prsH1 {
        font-size: 41px
    }

    .prs .prsKitGrid {
        grid-template-columns: 1fr 1fr
    }

    .prs .prsKitIntro {
        grid-template-columns: 1fr;
        gap: 16px
    }
}

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

    .prs .prsHeroImg {
        margin: 0;
        border-radius: 0;
        height: 240px
    }

    .prs .prsHeroText {
        padding: 28px 16px;
        gap: 16px
    }

    .prs .prsH1 {
        font-size: 41px
    }

    .prs .prsKit {
        padding: 28px 16px
    }

    .prs .prsKitGrid {
        grid-template-columns: 1fr
    }

    .prs .prsContactRow {
        flex-direction: column;
        gap: 16px
    }
}

.lrnprog {
    max-width: 1400px;
    margin: 0 auto;
    overflow-x: clip
}

.lrnprog .pghead {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    min-height: 480px;
    background-color: #f4f1ee;
    position: relative
}

@keyframes bgoscillate {
    0% {
        background-color: #f4f1ee
    }

    50% {
        background-color: #eee8e3
    }

    100% {
        background-color: #f4f1ee
    }
}

.lrnprog .pghead {
    animation: bgoscillate 6s cubic-bezier(0.16, 1, 0.3, 1) infinite
}

.lrnprog .pghead-text {
    flex: 1 1 50%;
    padding: 56px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative
}

.lrnprog .pghead-text .quotemark {
    position: absolute;
    top: 28px;
    left: 28px;
    font-size: 200px;
    line-height: 1.1;
    color: #54010B;
    opacity: .07;
    pointer-events: none;
    user-select: none;
    font-weight: 900;
    z-index: 0
}

.lrnprog .pghead-text .pghead-label {
    font-size: 15px;
    line-height: 1.75;
    color: #54010B;
    letter-spacing: .08em;
    text-transform: uppercase;
    margin-bottom: 16px;
    position: relative;
    z-index: 1
}

.lrnprog .pghead-text h1 {
    font-size: 41px;
    line-height: 1.1;
    letter-spacing: -.02em;
    margin: 0 0 16px;
    background: linear-gradient(180deg, #54010B 0%, #6CD305 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    position: relative;
    z-index: 1
}

.lrnprog .pghead-text .pghead-desc {
    font-size: 19px;
    line-height: 1.75;
    color: #2a1a1c;
    max-width: 480px;
    position: relative;
    z-index: 1
}

.lrnprog .pghead-img {
    flex: 1 1 50%;
    position: relative;
    overflow: hidden
}

.lrnprog .pghead-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: filter .45s cubic-bezier(0.16, 1, 0.3, 1);
    filter: blur(0px)
}

.lrnprog .pghead-img:hover img {
    filter: blur(2px) brightness(0.92)
}

.lrnprog .pghead-img::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: 0;
    transition: opacity .45s cubic-bezier(0.16, 1, 0.3, 1);
    background: radial-gradient(ellipse at 50% 100%, #54010b52 0%, transparent 70%), radial-gradient(ellipse at 0% 50%, #54010b2e 0%, transparent 60%), radial-gradient(ellipse at 100% 50%, #54010b2e 0%, transparent 60%)
}

.lrnprog .pghead-img:hover::after {
    opacity: 1
}

.lrnprog .divider-radial {
    height: 2px;
    background: radial-gradient(ellipse at 50% 50%, #6CD305 0%, transparent 80%);
    margin: 0
}

.lrnprog .metrics {
    padding: 56px;
    background-color: #54010B;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 28px
}

.lrnprog .metric-item {
    display: flex;
    flex-direction: column;
    gap: 8px;
    border-bottom: 1px solid #6cd3054d;
    padding-bottom: 28px
}

.lrnprog .metric-item .metric-num {
    font-size: 41px;
    line-height: 1.1;
    letter-spacing: -.03em;
    font-weight: 700;
    background: linear-gradient(180deg, #fff 0%, #6CD305 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text
}

.lrnprog .metric-item .metric-label {
    font-size: 15px;
    line-height: 1.75;
    color: #e8d8da;
    font-weight: 600;
    letter-spacing: .04em
}

.lrnprog .metric-item .metric-note {
    font-size: 15px;
    line-height: 1.75;
    color: #e8d8dab3
}

.lrnprog .divider-radial-light {
    height: 2px;
    background: radial-gradient(ellipse at 50% 50%, #54010b66 0%, transparent 80%);
    margin: 0
}

.lrnprog .programs {
    padding: 56px;
    background-color: #fff;
    position: relative
}

.lrnprog .programs::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%2354010B' fill-opacity='0.025'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
    pointer-events: none;
    z-index: 0
}

.lrnprog .programs-heading {
    position: relative;
    z-index: 1;
    margin-bottom: 28px
}

.lrnprog .programs-heading h2 {
    font-size: 41px;
    line-height: 1.1;
    letter-spacing: -.02em;
    background: linear-gradient(180deg, #54010B 0%, #6CD305 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    margin: 0 0 8px
}

.lrnprog .programs-heading p {
    font-size: 19px;
    line-height: 1.75;
    color: #2a1a1c;
    max-width: 600px;
    margin: 0
}

.lrnprog .card-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
    position: relative;
    z-index: 1
}

.lrnprog .progcard {
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 6px;
    box-shadow: 0 5px 25px 0 #54010b14;
    overflow: hidden;
    transition: box-shadow .45s cubic-bezier(0.16, 1, 0.3, 1), transform .45s cubic-bezier(0.16, 1, 0.3, 1);
    text-decoration: none;
    color: inherit;
    position: relative
}

.lrnprog .progcard:hover {
    box-shadow: 0 9px 36px 0 #54010b1a;
    transform: translateY(-4px)
}

.lrnprog .progcard::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 6px;
    border: 2px solid transparent;
    transition: border-color .45s cubic-bezier(0.16, 1, 0.3, 1);
    pointer-events: none;
    z-index: 2
}

.lrnprog .progcard:hover::before {
    border-color: #6cd30580
}

.lrnprog .progcard::after {
    content: "";
    position: absolute;
    inset: 4px;
    border-radius: 6px;
    border: 1px solid transparent;
    transition: border-color .55s cubic-bezier(0.16, 1, 0.3, 1);
    pointer-events: none;
    z-index: 2
}

.lrnprog .progcard:hover::after {
    border-color: #6cd30540
}

.lrnprog .card-imgwrap {
    position: relative;
    overflow: hidden;
    aspect-ratio: 16/9
}

.lrnprog .card-imgwrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .55s cubic-bezier(0.16, 1, 0.3, 1), filter .45s ease-in-out
}

.lrnprog .progcard:hover .card-imgwrap img {
    transform: scale(1.04);
    filter: brightness(0.88) contrast(1.05)
}

.lrnprog .card-imgwrap::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 60%, #54010b2e 100%);
    pointer-events: none
}

.lrnprog .card-tag {
    position: absolute;
    top: 16px;
    left: 16px;
    background: #54010B;
    color: #fff;
    font-size: 15px;
    line-height: 1.1;
    padding: 4px 8px;
    border-radius: 6px;
    z-index: 1;
    letter-spacing: .04em
}

.lrnprog .card-body {
    padding: 16px 28px 28px;
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: 8px
}

.lrnprog .card-body h3 {
    font-size: 19px;
    line-height: 1.1;
    letter-spacing: -.01em;
    color: #2a1a1c;
    margin: 0;
    font-weight: 700
}

.lrnprog .card-desc {
    font-size: 15px;
    line-height: 1.75;
    color: #4a3a3c;
    margin: 0;
    flex: 1
}

.lrnprog .card-meta {
    display: flex;
    flex-direction: row;
    gap: 16px;
    align-items: center;
    flex-wrap: wrap;
    padding-top: 8px;
    border-top: 1px solid #E7ECF0
}

.lrnprog .card-meta-item {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 4px;
    font-size: 15px;
    line-height: 1.75;
    color: #6a5a5c
}

.lrnprog .card-meta-item svg {
    flex-shrink: 0
}

.lrnprog .card-pricing {
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
    gap: 8px;
    padding-top: 8px;
    flex-wrap: wrap
}

.lrnprog .card-price {
    font-size: 19px;
    line-height: 1.1;
    font-weight: 700;
    color: #54010B
}

.lrnprog .card-pricedes {
    font-size: 15px;
    line-height: 1.75;
    color: #6a5a5c
}

.lrnprog .card-pricenote {
    font-size: 15px;
    line-height: 1.1;
    color: #6CD305;
    font-weight: 600
}

.lrnprog .card-cta {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    font-size: 15px;
    line-height: 1.75;
    color: #54010B;
    font-weight: 600;
    text-decoration: none;
    margin-top: 8px;
    transition: color .35s ease-in-out, gap .45s cubic-bezier(0.16, 1, 0.3, 1)
}

.lrnprog .card-cta:hover {
    color: #6CD305;
    gap: 16px
}

.lrnprog .card-cta svg {
    transition: transform .45s cubic-bezier(0.16, 1, 0.3, 1)
}

.lrnprog .card-cta:hover svg {
    transform: translateX(4px)
}

.lrnprog .divider-radial-green {
    height: 2px;
    background: radial-gradient(ellipse at 50% 50%, #6CD305 0%, transparent 80%);
    margin: 0
}

.lrnprog .approach {
    padding: 56px;
    background-color: #E7ECF0;
    display: flex;
    flex-direction: row;
    gap: 56px;
    align-items: flex-start
}

.lrnprog .approach-left {
    flex: 0 0 320px
}

.lrnprog .approach-left h2 {
    font-size: 41px;
    line-height: 1.1;
    letter-spacing: -.02em;
    background: linear-gradient(180deg, #54010B 0%, #6CD305 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    margin: 0 0 16px
}

.lrnprog .approach-left .pullquote {
    font-size: 19px;
    line-height: 1.75;
    color: #54010B;
    font-weight: 700;
    border-top: 2px solid #6CD305;
    padding-top: 16px;
    margin: 0
}

.lrnprog .approach-right {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 16px
}

.lrnprog .approach-step {
    display: flex;
    flex-direction: row;
    gap: 16px;
    align-items: flex-start;
    padding-bottom: 16px;
    border-bottom: 1px solid #54010b1f
}

.lrnprog .approach-step:last-child {
    border-bottom: none;
    padding-bottom: 0
}

.lrnprog .step-num {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: 6px;
    background: #54010B;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 19px;
    line-height: 1.1;
    font-weight: 700;
    color: #fff
}

.lrnprog .step-content h4 {
    font-size: 19px;
    line-height: 1.1;
    color: #2a1a1c;
    font-weight: 700;
    margin: 0 0 8px
}

.lrnprog .step-content p {
    font-size: 15px;
    line-height: 1.75;
    color: #4a3a3c;
    margin: 0
}

.lrnprog .divider-radial-dark {
    height: 2px;
    background: radial-gradient(ellipse at 50% 50%, #54010b80 0%, transparent 80%);
    margin: 0
}

.lrnprog .faq {
    padding: 56px;
    background-color: #fff;
    position: relative
}

.lrnprog .faq::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%236CD305' fill-opacity='0.03' fill-rule='evenodd'%3E%3Cpath d='M0 40L40 0H20L0 20M40 40V20L20 40'/%3E%3C/g%3E%3C/svg%3E");
    pointer-events: none
}

.lrnprog .faq h2 {
    font-size: 41px;
    line-height: 1.1;
    letter-spacing: -.02em;
    background: linear-gradient(180deg, #54010B 0%, #6CD305 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    margin: 0 0 28px;
    position: relative
}

.lrnprog .faq-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px;
    position: relative
}

.lrnprog .faq-item {
    padding: 28px;
    background: #f8f3f1;
    border-radius: 6px;
    box-shadow: 0 1px 5px 0 #54010b0f
}

.lrnprog .faq-item h5 {
    font-size: 19px;
    line-height: 1.1;
    color: #54010B;
    font-weight: 700;
    margin: 0 0 8px
}

.lrnprog .faq-item p {
    font-size: 15px;
    line-height: 1.75;
    color: #4a3a3c;
    margin: 0
}

.lrnprog .divider-radial-mid {
    height: 2px;
    background: radial-gradient(ellipse at 50% 50%, #6cd30599 0%, transparent 80%);
    margin: 0
}

.lrnprog .contact-strip {
    padding: 56px;
    background-color: #54010B;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    flex-wrap: wrap
}

.lrnprog .contact-strip-text h2 {
    font-size: 41px;
    line-height: 1.1;
    letter-spacing: -.02em;
    color: #fff;
    margin: 0 0 8px
}

.lrnprog .contact-strip-text p {
    font-size: 19px;
    line-height: 1.75;
    color: #fffc;
    margin: 0;
    max-width: 480px
}

.lrnprog .contact-strip-actions {
    display: flex;
    flex-direction: column;
    gap: 16px;
    align-items: flex-start
}

.lrnprog .btn-primary {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    padding: 16px 28px;
    background: #6CD305;
    color: #1a0003;
    font-size: 19px;
    line-height: 1.1;
    font-weight: 700;
    border-radius: 6px;
    text-decoration: none;
    border: 2px solid transparent;
    position: relative;
    transition: background .45s cubic-bezier(0.16, 1, 0.3, 1), box-shadow .45s cubic-bezier(0.16, 1, 0.3, 1);
    box-shadow: 0 5px 25px 0 #6cd30514
}

.lrnprog .btn-primary::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 6px;
    border: 2px solid transparent;
    transition: border-color .45s cubic-bezier(0.16, 1, 0.3, 1);
    pointer-events: none
}

.lrnprog .btn-primary:hover {
    background: #7de006;
    box-shadow: 0 9px 36px 0 #6cd3051a
}

.lrnprog .btn-primary:hover::before {
    border-color: #fff6
}

.lrnprog .contact-link {
    font-size: 15px;
    line-height: 1.75;
    color: #ffffffbf;
    text-decoration: none;
    transition: color .35s ease-in-out
}

.lrnprog .contact-link:hover {
    color: #6CD305
}

@media (max-width: 1100px) {
    .lrnprog .card-grid {
        grid-template-columns: repeat(2, 1fr)
    }

    .lrnprog .metrics {
        grid-template-columns: repeat(2, 1fr)
    }
}

@media (max-width: 860px) {
    .lrnprog .pghead {
        flex-direction: column
    }

    .lrnprog .pghead-img {
        min-height: 280px
    }

    .lrnprog .pghead-text {
        padding: 28px
    }

    .lrnprog .programs {
        padding: 28px
    }

    .lrnprog .metrics {
        padding: 28px;
        grid-template-columns: repeat(2, 1fr)
    }

    .lrnprog .approach {
        flex-direction: column;
        padding: 28px;
        gap: 28px
    }

    .lrnprog .approach-left {
        flex: none;
        width: 100%
    }

    .lrnprog .faq {
        padding: 28px
    }

    .lrnprog .faq-grid {
        grid-template-columns: 1fr
    }

    .lrnprog .contact-strip {
        padding: 28px;
        flex-direction: column;
        align-items: flex-start
    }
}

@media (max-width: 600px) {
    .lrnprog .card-grid {
        grid-template-columns: 1fr
    }

    .lrnprog .metrics {
        grid-template-columns: 1fr
    }

    .lrnprog .pghead-text h1 {
        font-size: 41px
    }
}

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

.aboutus .au-inner {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 28px
}

.aboutus .grad-text {
    background: linear-gradient(to bottom, #54010B, #6CD305);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text
}

.aboutus .dotdiv {
    border: none;
    border-top: 2px dotted #6CD305;
    margin: 0;
    opacity: .55
}

.aboutus .titblock {
    position: relative;
    padding: 56px 0;
    background: linear-gradient(160deg, #54010B 0%, #54010B 45%, #6CD305 100%);
    overflow: hidden
}

.aboutus .titblock .blob1 {
    position: absolute;
    width: 420px;
    height: 420px;
    border-radius: 44px;
    background: #6cd3052e;
    filter: blur(72px);
    top: -80px;
    right: -60px;
    pointer-events: none
}

.aboutus .titblock .blob2 {
    position: absolute;
    width: 280px;
    height: 280px;
    border-radius: 44px;
    background: #54010b59;
    filter: blur(56px);
    bottom: -40px;
    left: 10%;
    pointer-events: none
}

.aboutus .titgrid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 56px;
    align-items: center;
    position: relative;
    z-index: 1
}

.aboutus .titlabel {
    font-size: 15px;
    line-height: 1.75;
    color: #e7ecf0b3;
    letter-spacing: .08em;
    text-transform: uppercase;
    margin-bottom: 16px
}

.aboutus .tith1 {
    font-size: 70px;
    line-height: 1.1;
    letter-spacing: -.03em;
    color: #E7ECF0;
    margin: 0 0 28px
}

.aboutus .tith1 .kwunder {
    text-decoration: underline;
    text-decoration-color: #6CD305;
    text-underline-offset: 6px;
    text-decoration-thickness: 3px
}

.aboutus .titdesc {
    font-size: 19px;
    line-height: 1.75;
    color: #e7ecf0e0;
    margin: 0 0 28px
}

.aboutus .titpills {
    display: flex;
    flex-direction: row;
    gap: 16px;
    flex-wrap: wrap
}

.aboutus .pill {
    font-size: 15px;
    line-height: 1.75;
    padding: 4px 16px;
    border-radius: 6px;
    border: 1px solid #6cd30580;
    color: #6CD305;
    background: #6cd30514
}

.aboutus .titimgwrap {
    position: relative;
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 9px 36px 0 #54010b1a
}

.aboutus .titimgwrap::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(160deg, #54010b52 0%, #6cd3051f 100%);
    z-index: 1;
    pointer-events: none
}

.aboutus .titimgwrap img {
    width: 100%;
    height: 420px;
    object-fit: cover;
    display: block;
    filter: saturate(0.85) brightness(0.88);
    transition: filter .45s cubic-bezier(0.16, 1, 0.3, 1)
}

.aboutus .titimgwrap:hover img {
    filter: saturate(1.05) brightness(1.02)
}

.aboutus .cornerframe {
    position: absolute;
    inset: 12px;
    z-index: 2;
    pointer-events: none
}

.aboutus .cornerframe::before,
.aboutus .cornerframe::after {
    content: "";
    position: absolute;
    width: 28px;
    height: 28px;
    border-color: #6CD305;
    border-style: solid
}

.aboutus .cornerframe::before {
    top: 0;
    left: 0;
    border-width: 2px 0 0 2px
}

.aboutus .cornerframe::after {
    bottom: 0;
    right: 0;
    border-width: 0 2px 2px 0
}

.aboutus .storyblock {
    padding: 56px 0;
    background: #E7ECF0;
    position: relative
}

.aboutus .petalbg {
    position: absolute;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
    z-index: 0
}

.aboutus .petalbg svg {
    position: absolute;
    right: -60px;
    top: 40px;
    opacity: .045;
    width: 480px;
    height: 480px
}

.aboutus .storywrap {
    position: relative;
    z-index: 1
}

.aboutus .storygrid {
    display: grid;
    grid-template-columns: 5fr 7fr;
    gap: 56px;
    align-items: start;
    margin-bottom: 56px
}

.aboutus .storyhead {
    font-size: 41px;
    line-height: 1.1;
    letter-spacing: -.02em;
    margin: 0 0 16px
}

.aboutus .pullquote {
    font-size: 19px;
    line-height: 1.75;
    color: #54010B;
    border-top: 2px solid #6CD305;
    padding-top: 16px;
    margin: 0 0 28px;
    font-weight: 600
}

.aboutus .storybody {
    font-size: 15px;
    line-height: 1.75;
    color: #2a0508;
    margin: 0
}

.aboutus .storyright {
    display: flex;
    flex-direction: column;
    gap: 28px
}

.aboutus .storybody2 {
    font-size: 15px;
    line-height: 1.75;
    color: #2a0508;
    margin: 0
}

.aboutus .imgrow {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px
}

.aboutus .imgthumb {
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 5px 25px 0 #54010b14
}

.aboutus .imgthumb img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    display: block;
    filter: brightness(0.9) saturate(0.9);
    transition: filter .5s cubic-bezier(0.16, 1, 0.3, 1)
}

.aboutus .imgthumb:hover img {
    filter: brightness(1.06) saturate(1.1)
}

.aboutus .imgthumb.tall img {
    height: 260px
}

.aboutus .matrixrow {
    margin-bottom: 56px
}

.aboutus .matrixlabel {
    font-size: 15px;
    line-height: 1.75;
    color: #54010B;
    text-transform: uppercase;
    letter-spacing: .08em;
    margin-bottom: 16px
}

.aboutus .matrixhead {
    font-size: 41px;
    line-height: 1.1;
    letter-spacing: -.02em;
    margin: 0 0 28px
}

.aboutus .matrix2x2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px
}

.aboutus .mzone {
    background: #fff;
    border-radius: 6px;
    padding: 28px;
    box-shadow: 0 1px 5px 0 #54010b0f;
    transition: box-shadow .4s cubic-bezier(0.16, 1, 0.3, 1);
    animation: scaleIn .55s cubic-bezier(0.16, 1, 0.3, 1) both
}

.aboutus .mzone:hover {
    box-shadow: 0 9px 36px 0 #54010b1a
}

.aboutus .mzone.active {
    border-top: 3px solid #54010B
}

.aboutus .mzone.active .mzonetag {
    color: #54010B
}

.aboutus .mzone.secondary {
    border-top: 3px solid #6CD305
}

.aboutus .mzone.secondary .mzonetag {
    color: #6CD305
}

.aboutus .mzone.neutral {
    border-top: 3px solid #54010B;
    opacity: .85
}

.aboutus .mzone.neutral .mzonetag {
    color: #54010B
}

.aboutus .mzone.grow {
    border-top: 3px solid #6CD305;
    opacity: .85
}

.aboutus .mzone.grow .mzonetag {
    color: #6CD305
}

.aboutus .mzonetag {
    font-size: 15px;
    line-height: 1.75;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    margin: 0 0 8px
}

.aboutus .mzoneh {
    font-size: 19px;
    line-height: 1.1;
    font-weight: 700;
    color: #1b0004;
    margin: 0 0 8px
}

.aboutus .mzonep {
    font-size: 15px;
    line-height: 1.75;
    color: #3a1015;
    margin: 0
}

.aboutus .teamrow {
    margin-top: 56px
}

.aboutus .teamhead {
    font-size: 41px;
    line-height: 1.1;
    letter-spacing: -.02em;
    margin: 0 0 28px
}

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

.aboutus .teamcard {
    background: #fff;
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 5px 25px 0 #54010b14;
    transition: box-shadow .45s cubic-bezier(0.16, 1, 0.3, 1);
    animation: scaleIn .55s cubic-bezier(0.16, 1, 0.3, 1) both
}

.aboutus .teamcard:hover {
    box-shadow: 0 9px 36px 0 #54010b1a
}

.aboutus .teamcard img {
    width: 100%;
    height: 220px;
    object-fit: cover;
    display: block;
    filter: brightness(0.88) saturate(0.85);
    transition: filter .5s cubic-bezier(0.16, 1, 0.3, 1)
}

.aboutus .teamcard:hover img {
    filter: brightness(1.04) saturate(1.0)
}

.aboutus .teaminfo {
    padding: 16px 28px 28px
}

.aboutus .teamname {
    font-size: 19px;
    line-height: 1.1;
    font-weight: 700;
    color: #1b0004;
    margin: 0 0 4px
}

.aboutus .teamrole {
    font-size: 15px;
    line-height: 1.75;
    color: #54010B;
    margin: 0 0 8px
}

.aboutus .teamdash {
    display: inline-block;
    width: 24px;
    height: 2px;
    background: #6CD305;
    margin-bottom: 8px
}

.aboutus .teambio {
    font-size: 15px;
    line-height: 1.75;
    color: #3a1015;
    margin: 0
}

.aboutus .accentdash {
    color: #6CD305;
    font-weight: 700
}

.aboutus a {
    color: #54010B;
    transition: color .4s ease-in-out;
    text-decoration: none !important
}

.aboutus a:hover {
    color: #6CD305
}

.aboutus .ulist {
    list-style: none;
    padding: 0;
    margin: 0
}

.aboutus .ulist li {
    font-size: 15px;
    line-height: 1.75;
    color: #2a0508;
    padding: 8px 0;
    border-bottom: 1px solid #54010b26
}

.aboutus .ulist li:first-child {
    border-top: 1px solid #54010b26
}

@keyframes scaleIn {
    from {
        opacity: 0;
        transform: scale(0.9)
    }

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

.aboutus .anim-load {
    animation: scaleIn .55s cubic-bezier(0.16, 1, 0.3, 1) both
}

.aboutus .anim-load.d1 {
    animation-delay: .08s
}

.aboutus .anim-load.d2 {
    animation-delay: .16s
}

.aboutus .anim-load.d3 {
    animation-delay: .24s
}

.aboutus .anim-load.d4 {
    animation-delay: .32s
}

@media (max-width: 1024px) {
    .aboutus .titgrid {
        grid-template-columns: 1fr;
        gap: 28px
    }

    .aboutus .tith1 {
        font-size: 41px
    }

    .aboutus .titimgwrap img {
        height: 300px
    }

    .aboutus .storygrid {
        grid-template-columns: 1fr;
        gap: 28px
    }

    .aboutus .teamgrid {
        grid-template-columns: 1fr 1fr
    }
}

@media (max-width: 680px) {
    .aboutus .tith1 {
        font-size: 41px
    }

    .aboutus .matrix2x2 {
        grid-template-columns: 1fr
    }

    .aboutus .teamgrid {
        grid-template-columns: 1fr
    }

    .aboutus .imgrow {
        grid-template-columns: 1fr
    }

    .aboutus .titpills {
        gap: 8px
    }

    .aboutus .au-inner {
        padding: 0 16px
    }

    .aboutus .titblock {
        padding: 28px 0
    }

    .aboutus .storyblock {
        padding: 28px 0
    }
}

.successPage {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 56px 28px;
    background-color: #E7ECF0
}

.successPage .successCard {
    background: #fff;
    border-radius: 6px;
    box-shadow: 0 9px 36px 0 #54010b1a;
    padding: 56px;
    max-width: 600px;
    width: 100%;
    text-align: center
}

.successPage .successCard .iconWrap {
    width: 72px;
    height: 72px;
    margin: 0 auto 28px;
    display: flex;
    align-items: center;
    justify-content: center
}

.successPage .successCard .iconWrap svg {
    width: 72px;
    height: 72px
}

.successPage .successCard .successHeading {
    font-size: 41px;
    line-height: 1.1;
    letter-spacing: -.02em;
    font-weight: 700;
    margin: 0 0 16px;
    background: linear-gradient(to bottom, #54010B, #6CD305);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text
}

.successPage .successCard .successSub {
    font-size: 19px;
    line-height: 1.75;
    color: #2a2a2a;
    margin: 0 0 28px
}

.successPage .successCard .successNote {
    font-size: 15px;
    line-height: 1.75;
    color: #555;
    margin: 0 0 28px;
    padding: 16px;
    background-color: #E7ECF0;
    border-radius: 6px
}

.successPage .successCard .successNote span {
    color: #54010B;
    font-weight: 600
}

.successPage .successCard .dividerLine {
    width: 100%;
    height: 1px;
    background: linear-gradient(to right, transparent, #6CD305, transparent);
    margin: 0 0 28px
}

.successPage .successCard .returnLink {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 15px;
    line-height: 1.1;
    font-weight: 600;
    color: #54010B;
    text-decoration: none;
    padding: 16px 28px;
    border: 2px solid #54010B;
    border-radius: 6px;
    transition: color .45s cubic-bezier(0.16, 1, 0.3, 1), background-color .45s cubic-bezier(0.16, 1, 0.3, 1), border-color .45s cubic-bezier(0.16, 1, 0.3, 1), box-shadow .45s cubic-bezier(0.16, 1, 0.3, 1);
    position: relative
}

.successPage .successCard .returnLink::after {
    content: '';
    position: absolute;
    inset: 3px;
    border: 1px solid transparent;
    border-radius: 4px;
    transition: border-color .45s cubic-bezier(0.16, 1, 0.3, 1)
}

.successPage .successCard .returnLink:hover {
    background-color: #54010B;
    color: #fff;
    box-shadow: 0 5px 25px 0 #54010b14
}

.successPage .successCard .returnLink:hover::after {
    border-color: #ffffff40
}

.successPage .successCard .returnLink:focus {
    outline: 2px solid #6CD305;
    outline-offset: 4px
}

.successPage .successCard .returnLink svg {
    width: 16px;
    height: 16px;
    transition: transform .45s cubic-bezier(0.16, 1, 0.3, 1);
    flex-shrink: 0
}

.successPage .successCard .returnLink:hover svg {
    transform: translateX(-4px)
}

.successPage .brandLabel {
    margin-top: 28px;
    font-size: 15px;
    line-height: 1.1;
    color: #54010B;
    opacity: .6;
    letter-spacing: .04em
}

@media (max-width: 600px) {
    .successPage .successCard {
        padding: 28px 16px
    }

    .successPage .successCard .successHeading {
        font-size: 41px
    }
}