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

body {
    margin: 0;
    min-height: 100dvh;
    overflow-x: hidden
}

.util-bar {
    background: linear-gradient(90deg, #308F72 0%, #267a60 100%);
    padding: 8px 28px
}

.util-bar-shell {
    max-width: 1600px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 28px
}

.util-contact {
    display: flex;
    align-items: center;
    gap: 16px
}

.util-contact-item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: 'Lato', sans-serif;
    font-size: 14px;
    line-height: 1.15;
    color: #F4F3EB;
    text-decoration: none;
    letter-spacing: .04em;
    transition: color .2s cubic-bezier(0.4, 0, 0.2, 1)
}

.util-contact-item:hover,
.util-contact-item:focus {
    color: #fff;
    outline: none
}

.util-contact-item:focus-visible {
    box-shadow: 0 0 0 3px #f906ce8c;
    border-radius: 5px
}

.util-contact-icon {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: #F4F3EB;
    stroke-width: 1.5;
    flex-shrink: 0
}

.util-sep {
    width: 1px;
    height: 16px;
    background: #f4f3eb4d;
    flex-shrink: 0
}

.hd-strip {
    background: #fff;
    border-bottom: 1px solid #308f721f;
    box-shadow: 0 3px 5px 1px #f906ce0f;
    position: relative;
    z-index: 100
}

.hd-strip-shell {
    max-width: 1600px;
    margin: 0 auto;
    padding: 16px 28px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px
}

.brand-mount {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-shrink: 0;
    order: 2
}

.brand-link {
    display: flex;
    align-items: center;
    text-decoration: none;
    border-radius: 10px;
    padding: 4px;
    box-shadow: 0 0 0 2px #ffffff, 0 0 0 3px #308f7259 0 3px 5px 1px #f906ce0f;
    transition: box-shadow .25s cubic-bezier(0.4, 0, 0.2, 1)
}

.brand-link:hover {
    box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px #f906ce73 0 4px 18px 1px #f906ce1c
}

.brand-link:focus-visible {
    outline: none;
    box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px #f906ce99 0 4px 18px 1px #f906ce1c
}

.brand-logo {
    display: block;
    width: 36px;
    height: 44px;
    object-fit: contain
}

.brand-label {
    font-family: 'Playfair Display', serif;
    font-size: 30px;
    line-height: 1.15;
    font-weight: 700;
    color: #1a2e26;
    letter-spacing: -.01em
}

.brand-label span {
    color: #308F72
}

.main-nav {
    order: 1;
    flex: 1
}

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

.main-nav-list li {
    flex-shrink: 0
}

.nav-link {
    display: inline-flex;
    align-items: center;
    padding: 8px 16px;
    font-family: 'Lato', sans-serif;
    font-size: 14px;
    line-height: 1.15;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #1a2e26;
    text-decoration: none;
    border-radius: 5px;
    border: 1.5px solid transparent;
    transition: color .18s cubic-bezier(0.4, 0, 0.2, 1), border-color .22s cubic-bezier(0.0, 0, 0.2, 1), background .18s cubic-bezier(0.4, 0, 0.2, 1)
}

.nav-link:hover {
    color: #308F72;
    background: #308f7212;
    border-color: #308f7233
}

.nav-link:focus-visible {
    outline: none;
    color: #308F72;
    box-shadow: 0 0 0 3px #f906ce73
}

.nav-link.active {
    color: #F906CE;
    border-color: #f906ce40
}

.nav-phone {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-left: 16px;
    padding: 8px 16px;
    font-family: 'Lato', sans-serif;
    font-size: 14px;
    line-height: 1.15;
    font-weight: 700;
    letter-spacing: .04em;
    color: #fff;
    background: #F906CE;
    border-radius: 10px;
    text-decoration: none;
    border: 1.5px solid #F906CE;
    box-shadow: 0 4px 18px 1px #f906ce1c;
    transition: background .2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow .25s cubic-bezier(0.4, 0, 0.2, 1), border-color .2s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative
}

.nav-phone::before {
    content: '';
    position: absolute;
    inset: 3px;
    border-radius: 7px;
    border: 1.5px solid #fff0;
    transition: border-color .22s cubic-bezier(0.0, 0, 0.2, 1);
    pointer-events: none
}

.nav-phone:hover {
    background: #d005b0;
    border-color: #d005b0;
    box-shadow: 0 8px 60px 1px #f906ce1a
}

.nav-phone:hover::before {
    border-color: #ffffff59
}

.nav-phone:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px #f906ce80 0 4px 18px 1px #f906ce1c
}

.nav-phone-icon {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: #fff;
    stroke-width: 1.8;
    flex-shrink: 0
}

.ft-root {
    background: linear-gradient(180deg, #F4F3EB 0%, #d8e8e3 55%, #1a2e26 100%);
    padding: 56px 28px 28px
}

.ft-shell {
    max-width: 1600px;
    margin: 0 auto
}

.ft-brand-row {
    display: flex;
    justify-content: center;
    margin-bottom: 56px
}

.ft-brand-link {
    display: inline-flex;
    align-items: center;
    gap: 16px;
    text-decoration: none;
    padding: 8px 16px;
    border-radius: 16px;
    box-shadow: 0 0 0 2px #308f7233 0 3px 5px 1px #f906ce0f;
    background: #ffffffb3;
    transition: box-shadow .25s cubic-bezier(0.4, 0, 0.2, 1)
}

.ft-brand-link:hover {
    box-shadow: 0 0 0 2px #f906ce4d 0 4px 18px 1px #f906ce1c
}

.ft-brand-link:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px #f906ce80 0 4px 18px 1px #f906ce1c
}

.ft-brand-logo {
    display: block;
    width: 36px;
    height: 44px;
    object-fit: contain
}

.ft-brand-name {
    font-family: 'Playfair Display', serif;
    font-size: 30px;
    line-height: 1.15;
    font-weight: 700;
    color: #1a2e26
}

.ft-brand-name span {
    color: #308F72
}

.ft-cols {
    display: flex;
    flex-wrap: wrap;
    gap: 28px;
    justify-content: space-between;
    margin-bottom: 56px
}

.ft-col-company {
    flex: 1 1 280px;
    min-width: 220px
}

.ft-col-nav {
    flex: 0 1 200px;
    min-width: 160px
}

.ft-col-contacts {
    flex: 0 1 240px;
    min-width: 200px
}

.ft-col-label {
    font-family: 'Lato', sans-serif;
    font-size: 14px;
    line-height: 1.15;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #308F72;
    margin-bottom: 16px
}

.ft-desc {
    font-family: 'Lato', sans-serif;
    font-size: 14px;
    line-height: 1.65;
    color: #2c4a3e
}

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

.ft-nav-link {
    font-family: 'Lato', sans-serif;
    font-size: 14px;
    line-height: 1.65;
    color: #2c4a3e;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border-radius: 5px;
    padding: 4px 0;
    transition: color .18s cubic-bezier(0.4, 0, 0.2, 1)
}

.ft-nav-link:hover {
    color: #308F72
}

.ft-nav-link:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px #f906ce73;
    border-radius: 5px
}

.ft-nav-arrow {
    width: 14px;
    height: 14px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    flex-shrink: 0;
    transition: stroke .18s cubic-bezier(0.4, 0, 0.2, 1)
}

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

.ft-contact-entry {
    display: flex;
    align-items: flex-start;
    gap: 8px
}

.ft-contact-ico {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: #308F72;
    stroke-width: 1.8;
    flex-shrink: 0;
    margin-top: 4px
}

.ft-contact-text {
    font-family: 'Lato', sans-serif;
    font-size: 14px;
    line-height: 1.65;
    color: #2c4a3e;
    text-decoration: none
}

a.ft-contact-text:hover {
    color: #308F72
}

a.ft-contact-text:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px #f906ce73;
    border-radius: 5px
}

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

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

.ft-copy {
    font-family: 'Lato', sans-serif;
    font-size: 14px;
    line-height: 1.15;
    color: #f4f3ebb3;
    letter-spacing: .03em
}

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

.ft-legal-link {
    font-family: 'Lato', sans-serif;
    font-size: 14px;
    line-height: 1.15;
    color: #f4f3ebb3;
    text-decoration: none;
    letter-spacing: .03em;
    border-radius: 5px;
    padding: 4px 0;
    transition: color .18s cubic-bezier(0.4, 0, 0.2, 1)
}

.ft-legal-link:hover {
    color: #F4F3EB
}

.ft-legal-link:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px #f906ce80;
    border-radius: 5px
}

.ck-notice {
    display: none;
    position: fixed;
    bottom: 28px;
    right: 28px;
    width: 340px;
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 8px 60px 1px #f906ce1a 0 4px 18px 1px #f906ce1c;
    z-index: 2000;
    padding: 28px;
    flex-direction: column;
    gap: 16px
}

.ck-icon-row {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 4px
}

.ck-shield {
    width: 28px;
    height: 28px;
    fill: none;
    stroke: #308F72;
    stroke-width: 1.8;
    flex-shrink: 0
}

.ck-tagline {
    font-family: 'Playfair Display', serif;
    font-size: 14px;
    line-height: 1.15;
    font-weight: 700;
    color: #1a2e26;
    letter-spacing: .02em
}

.ck-text {
    font-family: 'Lato', sans-serif;
    font-size: 14px;
    line-height: 1.65;
    color: #2c4a3e;
    margin: 0
}

.ck-policy-link {
    color: #308F72;
    text-decoration: underline;
    text-underline-offset: 2px;
    transition: color .18s cubic-bezier(0.4, 0, 0.2, 1)
}

.ck-policy-link:hover {
    color: #F906CE
}

.ck-policy-link:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px #f906ce73;
    border-radius: 5px
}

.ck-actions {
    display: flex;
    gap: 8px
}

.ck-btn {
    flex: 1;
    padding: 8px 16px;
    font-family: 'Lato', sans-serif;
    font-size: 14px;
    line-height: 1.15;
    font-weight: 700;
    letter-spacing: .04em;
    border-radius: 10px;
    cursor: pointer;
    border: 1.5px solid transparent;
    transition: background .2s cubic-bezier(0.4, 0, 0.2, 1), color .2s cubic-bezier(0.4, 0, 0.2, 1), border-color .2s cubic-bezier(0.4, 0, 0.2, 1)
}

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

.ck-accept {
    background: #308F72;
    color: #fff;
    border-color: #308F72
}

.ck-accept:hover {
    background: #267a60;
    border-color: #267a60
}

.ck-decline {
    background: transparent;
    color: #308F72;
    border-color: #308F72
}

.ck-decline:hover {
    background: #308f7214
}

@media (max-width: 768px) {
    .util-bar-shell {
        padding: 8px 16px;
        gap: 16px
    }

    .util-contact {
        gap: 8px
    }

    .hd-strip-shell {
        padding: 16px;
        flex-wrap: wrap;
        gap: 16px
    }

    .brand-mount {
        order: 1
    }

    .main-nav {
        order: 2;
        width: 100%
    }

    .main-nav-list {
        gap: 4px;
        flex-wrap: wrap
    }

    .nav-phone {
        margin-left: 4px
    }

    .ft-root {
        padding: 28px 16px 16px
    }

    .ft-cols {
        flex-direction: column;
        gap: 28px
    }

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

    .ck-notice {
        width: calc(100vw - 32px);
        right: 16px;
        bottom: 16px
    }
}

@media (max-width: 375px) {
    .util-contact-item span {
        display: none
    }

    .brand-label {
        font-size: 14px
    }

    .nav-link {
        padding: 8px;
        font-size: 14px
    }
}

@media (min-width: 1024px) {
    .hd-strip-shell {
        padding: 16px 56px
    }

    .util-bar-shell {
        padding: 8px 56px
    }

    .ft-root {
        padding: 56px 56px 28px
    }
}

@media (min-width: 1280px) {
    .hd-strip-shell {
        padding: 16px 56px
    }
}

.info-legal {
    max-width: 1600px;
    margin: 0 auto;
    padding: 56px;
    background: #fff
}

.info-legal p {
    font-size: 14px;
    line-height: 1.65;
    color: #1a1a2e;
    margin-bottom: 16px
}

.info-legal em,
.info-legal i {
    font-style: italic;
    color: #308F72
}

.info-legal a {
    color: #308F72;
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-thickness: 1px;
    transition: color .25s cubic-bezier(0.4, 0, 0.2, 1), text-decoration-color .18s cubic-bezier(0.0, 0, 0.2, 1)
}

.info-legal a:hover {
    color: #F906CE;
    text-decoration-color: #F906CE
}

.info-legal a:focus-visible {
    outline: 2px solid #F906CE;
    outline-offset: 2px;
    border-radius: 5px
}

.info-legal hr {
    border: none;
    border-top: 1.5px solid #F4F3EB;
    margin: 28px 0
}

.info-legal div {
    margin-bottom: 28px;
    padding: 28px;
    background: #F4F3EB;
    border-radius: 10px;
    box-shadow: 0 3px 5px 1px #f906ce0f
}

.info-legal div p:last-child {
    margin-bottom: 0
}

@media (max-width: 1024px) {
    .info-legal {
        padding: 56px 28px
    }
}

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

    .info-legal div {
        padding: 16px;
        margin-bottom: 16px
    }
}

@media (max-width: 375px) {
    .info-legal {
        padding: 16px 8px
    }

    .info-legal div {
        padding: 16px 8px
    }
}

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

.intv-det .art-lead {
    padding: 56px 28px 28px;
    max-width: 1600px;
    margin: 0 auto
}

.intv-det .art-lead .row {
    align-items: flex-start
}

.intv-det .lead-img-col {
    position: relative
}

.intv-det .lead-img-wrap {
    border-radius: 16px;
    overflow: hidden;
    position: relative;
    box-shadow: 0 4px 18px 1px #f906ce1c
}

.intv-det .lead-img-wrap img {
    width: 100%;
    height: 340px;
    object-fit: cover;
    object-position: center top;
    display: block
}

.intv-det .lead-img-wrap::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at top right, #f906ce38 0%, transparent 65%), linear-gradient(to bottom, transparent 55%, #308f722e 100%);
    pointer-events: none;
    border-radius: 16px
}

.intv-det .lead-img-wrap::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, #f906ce21 0%, transparent 30%), linear-gradient(225deg, #f906ce1a 0%, transparent 25%), linear-gradient(315deg, #308f721a 0%, transparent 25%), linear-gradient(45deg, #308f7214 0%, transparent 30%);
    pointer-events: none;
    z-index: 1;
    border-radius: 16px
}

.intv-det .lead-txt-col {
    padding-left: 28px;
    position: relative
}

.intv-det .lead-qt-mark {
    position: absolute;
    top: -16px;
    left: 16px;
    font-size: 160px;
    line-height: 1.15;
    color: #f906ce12;
    pointer-events: none;
    select: none;
    user-select: none;
    z-index: 0;
    font-weight: 900
}

.intv-det .art-tag {
    display: inline-block;
    font-size: 14px;
    line-height: 1.15;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #308F72;
    background: #308f7217;
    border-radius: 5px;
    padding: 4px 16px;
    margin-bottom: 16px;
    position: relative;
    z-index: 1
}

.intv-det .art-heading {
    font-size: 42px;
    line-height: 1.15;
    color: #111;
    margin: 0 0 16px;
    position: relative;
    z-index: 1;
    background: linear-gradient(135deg, #308F72 0%, #F906CE 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text
}

.intv-det .art-pts {
    list-style: none;
    padding: 0;
    margin: 0 0 28px;
    position: relative;
    z-index: 1
}

.intv-det .art-pts li {
    font-size: 14px;
    line-height: 1.65;
    color: #333;
    padding: 8px 0;
    padding-left: 16px;
    border-left: 3px solid #F906CE;
    margin-bottom: 8px;
    background: #f4f3eb80;
    border-radius: 0 5px 5px 0
}

.intv-det .art-meta-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
    position: relative;
    z-index: 1
}

.intv-det .meta-chip {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    line-height: 1.15;
    color: #555;
    background: #F4F3EB;
    border-radius: 5px;
    padding: 4px 16px
}

.intv-det .meta-chip svg {
    flex-shrink: 0
}

.intv-det .meta-author {
    font-size: 14px;
    line-height: 1.15;
    color: #308F72;
    font-weight: 600;
    letter-spacing: .04em
}

.intv-det .divider-diag {
    width: 100%;
    height: 28px;
    position: relative;
    margin: 28px 0 0;
    overflow: hidden
}

.intv-det .divider-diag::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(105deg, #F906CE 0%, #308f724d 60%, transparent 100%);
    transform: translateY(-50%) rotate(-0.8deg)
}

.intv-det .art-body-sec {
    padding: 28px 28px 56px;
    max-width: 1600px;
    margin: 0 auto;
    position: relative
}

.intv-det .art-body-sec::before {
    content: '';
    position: absolute;
    top: 0;
    right: -80px;
    width: 420px;
    height: 420px;
    border-radius: 40px;
    background: radial-gradient(circle at top right, #f906ce0f 0%, transparent 70%);
    pointer-events: none;
    z-index: 0;
    animation: shadow-drift 9s cubic-bezier(0.4, 0, 0.2, 1) infinite alternate
}

@keyframes shadow-drift {
    0% {
        transform: translate(0, 0) scale(1);
        opacity: .7
    }

    100% {
        transform: translate(-28px, 16px) scale(1.08);
        opacity: 1
    }
}

.intv-det .body-grid {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 28px;
    position: relative;
    z-index: 1
}

.intv-det .body-aside {
    padding-top: 4px
}

.intv-det .aside-note {
    font-size: 14px;
    line-height: 1.65;
    color: #308F72;
    letter-spacing: .03em;
    border-top: 2px solid #F906CE;
    padding-top: 8px;
    margin-bottom: 28px
}

.intv-det .stat-card {
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 3px 5px 1px #f906ce0f;
    margin-bottom: 16px
}

.intv-det .stat-zone {
    padding: 16px;
    text-align: center
}

.intv-det .stat-zone.sz-top {
    background: #F906CE
}

.intv-det .stat-zone.sz-bot {
    background: #308F72
}

.intv-det .stat-val {
    font-size: 42px;
    line-height: 1.15;
    font-weight: 800;
    color: #fff;
    display: block
}

.intv-det .stat-lbl {
    font-size: 14px;
    line-height: 1.15;
    color: #ffffffd9;
    letter-spacing: .08em;
    text-transform: uppercase
}

.intv-det .body-main {
    min-width: 0
}

.intv-det .body-main p {
    font-size: 14px;
    line-height: 1.65;
    color: #222;
    margin: 0 0 16px
}

.intv-det .body-main h2 {
    font-size: 30px;
    line-height: 1.15;
    margin: 28px 0 16px;
    background: linear-gradient(135deg, #308F72 0%, #F906CE 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text
}

.intv-det .body-main h3 {
    font-size: 14px;
    line-height: 1.65;
    color: #308F72;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    margin: 16px 0 8px
}

.intv-det .body-main ins {
    text-decoration: none;
    background: #f906ce17;
    border-radius: 5px;
    padding: 0 4px;
    color: #c0059e
}

.intv-det .body-main cite {
    display: block;
    font-size: 14px;
    line-height: 1.65;
    color: #308F72;
    font-style: italic;
    border-left: 3px solid #F906CE;
    padding: 8px 16px;
    margin: 16px 0;
    background: #f4f3ebb3;
    border-radius: 0 10px 10px 0
}

.intv-det .body-main time {
    font-size: 14px;
    color: #888;
    letter-spacing: .05em
}

.intv-det .body-foot {
    margin-top: 28px;
    padding-top: 16px;
    border-top: 1px solid #308f722e;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 28px;
    flex-wrap: wrap
}

.intv-det .report-lnk {
    font-size: 14px;
    line-height: 1.15;
    color: #888;
    text-decoration: none;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    transition: color .2s cubic-bezier(0.4, 0, 0.2, 1);
    border-radius: 5px;
    padding: 4px 8px;
    border: 1px solid #308f7233
}

.intv-det .report-lnk:hover,
.intv-det .report-lnk:focus {
    color: #308F72;
    border-color: #308F72;
    outline: none
}

.intv-det .react-group {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap
}

.intv-det .react-lbl {
    font-size: 14px;
    line-height: 1.15;
    color: #555;
    letter-spacing: .04em
}

.intv-det .react-item {
    position: relative
}

.intv-det .react-item input[type="radio"] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0
}

.intv-det .react-item label {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 4px;
    padding: 4px 16px;
    border-radius: 26px;
    border: 2px solid #308f7240;
    font-size: 14px;
    line-height: 1.15;
    color: #555;
    cursor: pointer;
    transition: border-color .18s cubic-bezier(0.4, 0, 0.2, 1), background .22s cubic-bezier(0.0, 0, 0.2, 1), color .18s cubic-bezier(0.4, 0, 0.2, 1);
    user-select: none
}

.intv-det .react-item label:hover {
    border-color: #F906CE;
    color: #F906CE;
    background: #f906ce0d
}

.intv-det .react-item input[type="radio"]:focus+label {
    outline: 2px solid #308F72;
    outline-offset: 2px
}

.intv-det .react-item input[type="radio"]:checked+label {
    background: #F906CE;
    border-color: #F906CE;
    color: #fff;
    box-shadow: 0 4px 18px 1px #f906ce1c
}

.intv-det .react-icon {
    width: 18px;
    height: 18px;
    display: block
}

@media (max-width: 1024px) {
    .intv-det .body-grid {
        grid-template-columns: 160px 1fr
    }

    .intv-det .art-heading {
        font-size: 30px
    }
}

@media (max-width: 768px) {
    .intv-det .art-lead {
        padding: 28px 16px 16px
    }

    .intv-det .lead-txt-col {
        padding-left: 0;
        padding-top: 16px
    }

    .intv-det .art-heading {
        font-size: 30px
    }

    .intv-det .lead-img-wrap img {
        height: 220px
    }

    .intv-det .body-grid {
        grid-template-columns: 1fr
    }

    .intv-det .body-aside {
        display: flex;
        flex-direction: row;
        gap: 16px;
        flex-wrap: wrap;
        align-items: flex-start
    }

    .intv-det .aside-note {
        flex: 1 1 160px;
        margin-bottom: 0
    }

    .intv-det .stat-card {
        flex: 0 0 140px;
        margin-bottom: 0
    }

    .intv-det .art-body-sec {
        padding: 16px 16px 28px
    }

    .intv-det .body-foot {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px
    }
}

@media (max-width: 375px) {
    .intv-det .art-heading {
        font-size: 30px
    }

    .intv-det .stat-val {
        font-size: 30px
    }

    .intv-det .react-group {
        gap: 4px
    }
}

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

.opn {
    background: #fff;
    color: #1b1b1b;
    overflow-x: hidden
}

.opn .row {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap
}

@keyframes opn-blur-in {
    from {
        opacity: 0;
        filter: blur(12px)
    }

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

@keyframes opn-item-rotate {
    from {
        opacity: 0;
        transform: rotate(-8deg) translateY(16px)
    }

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

.opn .fade-blur {
    animation: opn-blur-in .55s cubic-bezier(0.0, 0, 0.2, 1) both
}

.opn .fade-blur.delay-1 {
    animation-delay: .1s
}

.opn .fade-blur.delay-2 {
    animation-delay: .22s
}

.opn .fade-blur.delay-3 {
    animation-delay: .34s
}

.opn .rotate-in {
    animation: opn-item-rotate .45s cubic-bezier(0.4, 0, 0.2, 1) both
}

.opn .rotate-in.d1 {
    animation-delay: .08s
}

.opn .rotate-in.d2 {
    animation-delay: .18s
}

.opn .rotate-in.d3 {
    animation-delay: .28s
}

.opn .rotate-in.d4 {
    animation-delay: .38s
}

.opn ::selection {
    background: #F906CE;
    color: #fff
}

.opn .grad-text {
    background: linear-gradient(135deg, #308F72, #F906CE);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text
}

.opn .wave-divider {
    width: 100%;
    overflow: hidden;
    line-height: 0
}

.opn .wave-divider svg {
    display: block;
    width: 100%
}

.opn .wave-divider-2 {
    width: 100%;
    overflow: hidden;
    line-height: 0
}

.opn .wave-divider-2 svg {
    display: block;
    width: 100%
}

.opn .ttl-block {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    min-height: 0;
    padding: 56px 0 0;
    position: relative;
    background: #fff;
    overflow: hidden
}

.opn .ttl-strip {
    width: 220px;
    flex-shrink: 0;
    position: relative;
    overflow: hidden
}

.opn .ttl-strip img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    display: block;
    filter: saturate(0.7) brightness(0.88) hue-rotate(0deg);
    transition: transform .6s cubic-bezier(0.4, 0, 0.2, 1)
}

.opn .ttl-strip:hover img {
    transform: scale(1.04) translateY(-8px)
}

.opn .ttl-strip::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(160deg, #f906ce2e 0%, #308f7238 100%);
    pointer-events: none
}

.opn .ttl-text {
    flex: 1;
    padding: 56px;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center
}

.opn .ttl-label {
    font-size: 14px;
    letter-spacing: .12em;
    color: #308F72;
    text-transform: uppercase;
    margin-bottom: 16px;
    font-weight: 600
}

.opn .ttl-h1 {
    font-size: 56px;
    line-height: 1.15;
    font-weight: 800;
    margin: 0 0 28px;
    max-width: 720px
}

.opn .ttl-desc {
    font-size: 14px;
    line-height: 1.65;
    color: #3a3a3a;
    max-width: 560px;
    margin-left: 56px
}

.opn .ttl-curves {
    position: absolute;
    top: 0;
    right: 0;
    width: 420px;
    height: 100%;
    pointer-events: none;
    overflow: hidden
}

.opn .ttl-curves svg {
    position: absolute;
    top: -40px;
    right: -60px
}

.opn .avail-block {
    background: #F4F3EB;
    padding: 56px 0 0
}

.opn .avail-inner {
    max-width: 1600px;
    margin: 0 auto;
    padding: 0 56px 56px
}

.opn .avail-head {
    text-align: center;
    margin-bottom: 56px
}

.opn .avail-h2 {
    font-size: 42px;
    line-height: 1.15;
    font-weight: 700;
    margin: 0 0 16px
}

.opn .avail-sub {
    font-size: 14px;
    line-height: 1.65;
    color: #3a3a3a;
    max-width: 520px;
    margin: 0 auto
}

.opn .avail-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 28px
}

.opn .avail-card {
    background: #fff;
    border-radius: 16px;
    padding: 28px;
    box-shadow: 0 4px 18px 1px #f906ce1c;
    transition: transform .25s cubic-bezier(0.4, 0, 0.2, 1), box-shadow .2s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden
}

.opn .avail-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 60px 1px #f906ce1a
}

.opn .avail-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, #F906CE, #308F72);
    border-radius: 16px 16px 0 0
}

.opn .avail-card-icon {
    width: 40px;
    height: 40px;
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    justify-content: center
}

.opn .avail-card-icon svg {
    width: 36px;
    height: 36px
}

.opn .avail-card-h {
    font-size: 14px;
    font-weight: 700;
    line-height: 1.15;
    margin: 0 0 8px;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: #1b1b1b
}

.opn .avail-card-p {
    font-size: 14px;
    line-height: 1.65;
    color: #3a3a3a;
    margin: 0
}

.opn .avail-card-check {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 16px;
    font-size: 14px;
    color: #308F72;
    font-weight: 600
}

.opn .chk-icon {
    width: 18px;
    height: 18px;
    flex-shrink: 0
}

.opn .gap-block {
    background: #fff;
    padding: 56px 0
}

.opn .gap-inner {
    max-width: 1600px;
    margin: 0 auto;
    padding: 0 56px;
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 56px;
    align-items: center
}

.opn .gap-h2 {
    font-size: 42px;
    line-height: 1.15;
    font-weight: 700;
    margin: 0 0 28px;
    text-align: center
}

.opn .gap-note {
    font-size: 14px;
    line-height: 1.65;
    color: #555;
    margin-bottom: 28px;
    float: left;
    width: 120px;
    margin-right: 28px;
    border-right: 2px solid #F906CE;
    padding-right: 16px
}

.opn .gap-body {
    font-size: 14px;
    line-height: 1.65;
    color: #3a3a3a;
    overflow: hidden
}

.opn .gap-body p {
    margin: 0 0 16px
}

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

.opn .gap-metrics {
    display: flex;
    flex-direction: column;
    gap: 28px
}

.opn .gap-metric {
    background: #F4F3EB;
    border-radius: 16px;
    padding: 28px;
    text-align: center
}

.opn .gap-pct {
    font-size: 56px;
    font-weight: 800;
    line-height: 1.15;
    background: linear-gradient(135deg, #308F72, #F906CE);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    display: block
}

.opn .gap-pct-label {
    font-size: 14px;
    line-height: 1.65;
    color: #3a3a3a;
    margin-top: 4px;
    display: block
}

.opn .ltv-block {
    background: #1b1b2e;
    padding: 56px 0;
    position: relative;
    overflow: hidden
}

.opn .ltv-bg-img {
    position: absolute;
    inset: 0;
    overflow: hidden
}

.opn .ltv-bg-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    opacity: .18
}

.opn .ltv-inner {
    max-width: 1600px;
    margin: 0 auto;
    padding: 0 56px;
    position: relative;
    z-index: 1
}

.opn .ltv-h2 {
    font-size: 42px;
    line-height: 1.15;
    font-weight: 700;
    color: #fff;
    text-align: center;
    margin: 0 0 56px
}

.opn .ltv-h2 .grad-text {
    background: linear-gradient(135deg, #308F72, #F906CE);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text
}

.opn .ltv-cols {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 56px;
    align-items: start
}

.opn .ltv-sidebar {
    background: #ffffff0f;
    border-radius: 16px;
    padding: 28px;
    border: 1px solid #f906ce33
}

.opn .ltv-sidebar-label {
    font-size: 14px;
    letter-spacing: .1em;
    color: #F906CE;
    text-transform: uppercase;
    font-weight: 600;
    margin-bottom: 16px
}

.opn .ltv-sidebar-p {
    font-size: 14px;
    line-height: 1.65;
    color: #fffc;
    margin: 0
}

.opn .ltv-items {
    display: flex;
    flex-direction: column;
    gap: 28px
}

.opn .ltv-item {
    display: flex;
    flex-direction: row;
    gap: 16px;
    align-items: flex-start
}

.opn .ltv-item-num {
    font-size: 42px;
    font-weight: 800;
    line-height: 1.15;
    color: #f906ce4d;
    flex-shrink: 0;
    width: 56px
}

.opn .ltv-item-h {
    font-size: 14px;
    font-weight: 700;
    color: #fff;
    margin: 0 0 8px;
    letter-spacing: .04em;
    text-transform: uppercase
}

.opn .ltv-item-p {
    font-size: 14px;
    line-height: 1.65;
    color: #ffffffb8;
    margin: 0
}

.opn .proof-block {
    background: #F4F3EB;
    padding: 56px 0
}

.opn .proof-inner {
    max-width: 1600px;
    margin: 0 auto;
    padding: 0 56px;
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 56px;
    align-items: start
}

.opn .proof-h2 {
    font-size: 42px;
    line-height: 1.15;
    font-weight: 700;
    margin: 0 0 28px;
    text-align: center
}

.opn .proof-quote-wrap {
    background: #fff;
    border-radius: 16px;
    padding: 28px;
    box-shadow: 0 3px 5px 1px #308f720f;
    position: relative
}

.opn .proof-quote-mark {
    width: 36px;
    height: 36px;
    margin-bottom: 16px
}

.opn .proof-quote-mark svg {
    width: 36px;
    height: 36px
}

.opn .proof-quote-text {
    font-size: 14px;
    line-height: 1.65;
    color: #3a3a3a;
    margin: 0 0 16px;
    font-style: italic
}

.opn .proof-person {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 16px
}

.opn .proof-avatar {
    width: 48px;
    height: 48px;
    border-radius: 40px;
    background: linear-gradient(135deg, #308F72, #F906CE);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0
}

.opn .proof-avatar svg {
    width: 24px;
    height: 24px
}

.opn .proof-name {
    font-size: 14px;
    font-weight: 700;
    color: #1b1b1b;
    display: block
}

.opn .proof-role {
    font-size: 14px;
    color: #555;
    display: block;
    line-height: 1.65
}

.opn .proof-checks {
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin-top: 28px
}

.opn .proof-check-item {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 8px;
    font-size: 14px;
    line-height: 1.65;
    color: #3a3a3a
}

.opn .proof-check-item .chk-icon {
    flex-shrink: 0;
    margin-top: 2px
}

.opn .proof-img-wrap {
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 8px 60px 1px #308f721a
}

.opn .proof-img-wrap img {
    width: 100%;
    height: 360px;
    object-fit: cover;
    object-position: center top;
    display: block;
    transition: transform .6s cubic-bezier(0.4, 0, 0.2, 1)
}

.opn .proof-img-wrap:hover img {
    transform: translateX(-8px)
}

.opn .cond-block {
    background: #fff;
    padding: 56px 0
}

.opn .cond-inner {
    max-width: 1600px;
    margin: 0 auto;
    padding: 0 56px
}

.opn .cond-h2 {
    font-size: 42px;
    line-height: 1.15;
    font-weight: 700;
    margin: 0 0 16px;
    text-align: center
}

.opn .cond-intro {
    font-size: 14px;
    line-height: 1.65;
    color: #3a3a3a;
    text-align: center;
    max-width: 560px;
    margin: 0 auto 56px
}

.opn .cond-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px
}

.opn .cond-col-label {
    font-size: 14px;
    letter-spacing: .1em;
    text-transform: uppercase;
    font-weight: 700;
    margin-bottom: 16px;
    padding-bottom: 8px;
    border-bottom: 2px solid #F906CE
}

.opn .cond-col.yes .cond-col-label {
    color: #308F72;
    border-color: #308F72
}

.opn .cond-col.no .cond-col-label {
    color: #c0392b;
    border-color: #c0392b
}

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

.opn .cond-list li {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 8px;
    font-size: 14px;
    line-height: 1.65;
    color: #3a3a3a
}

.opn .cond-list li .ci {
    flex-shrink: 0;
    margin-top: 2px;
    width: 18px;
    height: 18px
}

.opn .cond-bottom {
    margin-top: 56px;
    background: #F4F3EB;
    border-radius: 16px;
    padding: 28px;
    display: flex;
    flex-direction: row;
    gap: 28px;
    align-items: center
}

.opn .cond-bottom-img {
    width: 200px;
    height: 160px;
    border-radius: 10px;
    overflow: hidden;
    flex-shrink: 0
}

.opn .cond-bottom-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    display: block;
    transition: transform .55s cubic-bezier(0.4, 0, 0.2, 1)
}

.opn .cond-bottom-img:hover img {
    transform: translateY(-6px)
}

.opn .cond-bottom-h {
    font-size: 30px;
    line-height: 1.15;
    font-weight: 700;
    margin: 0 0 8px
}

.opn .cond-bottom-p {
    font-size: 14px;
    line-height: 1.65;
    color: #3a3a3a;
    margin: 0 0 16px
}

.opn .cond-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    font-weight: 700;
    color: #308F72;
    text-decoration: none;
    border-bottom: 2px solid transparent;
    padding-bottom: 4px;
    transition: color .2s cubic-bezier(0.4, 0, 0.2, 1), border-color .18s cubic-bezier(0.4, 0, 0.2, 1)
}

.opn .cond-link:hover {
    color: #F906CE;
    border-color: #F906CE
}

.opn .cond-link svg {
    width: 16px;
    height: 16px;
    transition: transform .2s cubic-bezier(0.4, 0, 0.2, 1)
}

.opn .cond-link:hover svg {
    transform: translateX(4px)
}

@media (max-width: 1024px) {
    .opn .ttl-strip {
        width: 160px
    }

    .opn .ttl-h1 {
        font-size: 42px
    }

    .opn .ttl-text {
        padding: 56px 28px
    }

    .opn .ttl-desc {
        margin-left: 28px
    }

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

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

    .opn .gap-metrics {
        flex-direction: row
    }

    .opn .gap-metric {
        flex: 1
    }

    .opn .ltv-cols {
        grid-template-columns: 1fr;
        gap: 28px
    }

    .opn .proof-inner {
        grid-template-columns: 1fr;
        gap: 28px
    }

    .opn .cond-layout {
        grid-template-columns: 1fr
    }

    .opn .cond-bottom {
        flex-direction: column
    }

    .opn .cond-bottom-img {
        width: 100%;
        height: 180px
    }
}

@media (max-width: 768px) {
    .opn .ttl-block {
        flex-direction: column;
        padding: 28px 0 0
    }

    .opn .ttl-strip {
        width: 100%;
        height: 220px
    }

    .opn .ttl-strip img {
        height: 220px
    }

    .opn .ttl-text {
        padding: 28px 16px
    }

    .opn .ttl-h1 {
        font-size: 30px
    }

    .opn .ttl-desc {
        margin-left: 0
    }

    .opn .avail-inner {
        padding: 0 16px 56px
    }

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

    .opn .gap-inner {
        padding: 0 16px
    }

    .opn .gap-note {
        float: none;
        width: auto;
        border-right: none;
        border-bottom: 2px solid #F906CE;
        padding-right: 0;
        padding-bottom: 8px;
        margin-right: 0;
        margin-bottom: 16px
    }

    .opn .gap-metrics {
        flex-direction: column
    }

    .opn .ltv-inner {
        padding: 0 16px
    }

    .opn .proof-inner {
        padding: 0 16px
    }

    .opn .cond-inner {
        padding: 0 16px
    }

    .opn .ttl-curves {
        display: none
    }
}

@media (max-width: 375px) {
    .opn .ttl-h1 {
        font-size: 30px
    }

    .opn .avail-h2,
    .opn .gap-h2,
    .opn .ltv-h2,
    .opn .proof-h2,
    .opn .cond-h2 {
        font-size: 30px
    }

    .opn .gap-pct {
        font-size: 42px
    }
}

link[rel="stylesheet"] {
    display: none
}

@keyframes bgpulse {

    0%,
    100% {
        filter: brightness(1)
    }

    50% {
        filter: brightness(1.045)
    }
}

.itvw {
    background: #fff;
    color: #1b1b2e;
    overflow-x: hidden
}

.itvw .strip-col {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    max-width: 1600px;
    margin: 0 auto;
    padding: 56px 28px 80px;
    gap: 28px
}

.itvw .img-strip {
    width: 220px;
    min-width: 180px;
    flex-shrink: 0;
    position: relative;
    border-radius: 16px;
    overflow: hidden
}

.itvw .img-strip img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    display: block;
    border-radius: 16px;
    transition: transform .25s cubic-bezier(0.4, 0, 0.2, 1)
}

.itvw .img-strip:hover img {
    transform: scale(1.04)
}

.itvw .img-strip::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at top right, #f906ce21, transparent 70%);
    border-radius: 16px;
    pointer-events: none
}

.itvw .atm-spot {
    position: absolute;
    border-radius: 40px;
    pointer-events: none;
    z-index: 0
}

.itvw .atm-spot.a1 {
    width: 260px;
    height: 260px;
    background: radial-gradient(circle at top right, #f906ce1a, transparent 70%);
    top: -40px;
    right: 40px;
    filter: blur(32px)
}

.itvw .atm-spot.a2 {
    width: 180px;
    height: 180px;
    background: radial-gradient(circle at top right, #308f7217, transparent 70%);
    bottom: 20px;
    left: 200px;
    filter: blur(24px)
}

.itvw .strip-text {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 8px 0 28px;
    position: relative;
    z-index: 1
}

.itvw .strip-text .eyebrow {
    font-size: 14px;
    letter-spacing: .12em;
    color: #308F72;
    margin-bottom: 16px;
    text-transform: uppercase
}

.itvw .strip-text h1 {
    font-size: 56px;
    line-height: 1.15;
    margin: 0 0 16px;
    background: linear-gradient(135deg, #308F72, #F906CE);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text
}

.itvw .strip-text .lead {
    font-size: 14px;
    line-height: 1.65;
    color: #3a3a4a;
    max-width: 560px;
    margin-bottom: 28px
}

.itvw .strip-text .arc-note {
    font-size: 14px;
    line-height: 1.65;
    color: #555565;
    max-width: 480px
}

.itvw .tri-corner {
    position: absolute;
    width: 0;
    height: 0;
    pointer-events: none;
    z-index: 0
}

.itvw .tri-corner.tl {
    top: 0;
    left: 0;
    border-top: 48px solid #f906ce12;
    border-right: 48px solid transparent
}

.itvw .tri-corner.br {
    bottom: 0;
    right: 0;
    border-bottom: 40px solid #308f7214;
    border-left: 40px solid transparent
}

.itvw .posts-band {
    background: #F4F3EB;
    animation: bgpulse 6s ease-out infinite;
    position: relative
}

.itvw .posts-band .tri-corner.tl {
    border-top-color: #f906ce0f
}

.itvw .posts-inner {
    max-width: 1600px;
    margin: 0 auto;
    padding: 56px 28px
}

.itvw .posts-hd {
    text-align: center;
    margin-bottom: 28px
}

.itvw .posts-hd h2 {
    font-size: 42px;
    line-height: 1.15;
    background: linear-gradient(135deg, #308F72, #F906CE);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    margin: 0 0 8px
}

.itvw .posts-hd p {
    font-size: 14px;
    line-height: 1.65;
    color: #444454;
    margin: 0
}

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

.itvw .post-card {
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 4px 18px 1px #f906ce1c;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transition: box-shadow .22s cubic-bezier(0.4, 0, 0.2, 1), transform .18s cubic-bezier(0.0, 0, 0.2, 1);
    position: relative
}

.itvw .post-card:hover {
    box-shadow: 0 8px 60px 1px #f906ce1a;
    transform: translateY(-4px)
}

.itvw .post-card .card-img {
    width: 100%;
    height: 200px;
    overflow: hidden;
    flex-shrink: 0;
    background: #e8e7df
}

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

.itvw .post-card:hover .card-img img {
    transform: scale(1.06)
}

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

.itvw .card-meta {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 16px;
    margin-bottom: 8px
}

.itvw .card-meta .author {
    font-size: 14px;
    color: #308F72;
    font-weight: 600
}

.itvw .card-meta .readtime {
    font-size: 14px;
    color: #888
}

.itvw .card-body h3 {
    font-size: 14px;
    line-height: 1.65;
    margin: 0 0 8px;
    color: #1b1b2e;
    font-weight: 700
}

.itvw .card-body .desc {
    font-size: 14px;
    line-height: 1.65;
    color: #4a4a5a;
    flex: 1;
    margin: 0 0 16px
}

.itvw .card-foot {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    padding: 8px 16px 16px;
    border-top: 1px solid #308f721f
}

.itvw .card-stats {
    display: flex;
    flex-direction: row;
    gap: 16px;
    align-items: center
}

.itvw .stat-item {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 4px;
    font-size: 14px;
    color: #666
}

.itvw .stat-item svg {
    flex-shrink: 0
}

.itvw .card-link {
    font-size: 14px;
    color: #F906CE;
    text-decoration: none;
    font-weight: 600;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 4px;
    transition: color .18s cubic-bezier(0.4, 0, 0.2, 1)
}

.itvw .card-link:hover {
    color: #308F72
}

.itvw .card-link:focus {
    outline: 2px solid #F906CE;
    outline-offset: 2px;
    border-radius: 5px
}

.itvw .ratio-band {
    background: #fff;
    position: relative
}

.itvw .ratio-inner {
    max-width: 1600px;
    margin: 0 auto;
    padding: 56px 28px;
    display: flex;
    flex-direction: row;
    gap: 56px;
    align-items: center
}

.itvw .ratio-text {
    flex: 1
}

.itvw .ratio-text h2 {
    font-size: 42px;
    line-height: 1.15;
    background: linear-gradient(135deg, #308F72, #F906CE);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    margin: 0 0 16px
}

.itvw .ratio-text p {
    font-size: 14px;
    line-height: 1.65;
    color: #3a3a4a;
    margin: 0 0 28px;
    max-width: 420px
}

.itvw .ratio-text .aside-note {
    font-size: 14px;
    line-height: 1.65;
    color: #308F72;
    border-left: 3px solid #F906CE;
    border-top: 1px solid #f906ce2e;
    padding: 8px 16px;
    border-radius: 5px;
    background: #f4f3eb99
}

.itvw .ratio-visual {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 16px
}

.itvw .big-num {
    font-size: 56px;
    line-height: 1.15;
    font-weight: 800;
    color: #F906CE;
    margin-bottom: 4px
}

.itvw .big-num span {
    font-size: 30px;
    color: #308F72;
    font-weight: 600
}

.itvw .bar-label {
    font-size: 14px;
    color: #444;
    margin-bottom: 4px
}

.itvw .ratio-bar-wrap {
    width: 100%;
    height: 28px;
    background: #F4F3EB;
    border-radius: 10px;
    overflow: hidden;
    display: flex;
    flex-direction: row;
    box-shadow: 0 3px 5px 1px #f906ce0f
}

.itvw .bar-seg-a {
    height: 100%;
    background: #F906CE;
    border-radius: 10px 0 0 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    color: #fff;
    font-weight: 700;
    transition: width .26s cubic-bezier(0.4, 0, 0.2, 1)
}

.itvw .bar-seg-b {
    height: 100%;
    background: #308F72;
    border-radius: 0 10px 10px 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    color: #fff;
    font-weight: 700;
    transition: width .26s cubic-bezier(0.4, 0, 0.2, 1)
}

.itvw .bar-legend {
    display: flex;
    flex-direction: row;
    gap: 16px;
    margin-top: 4px
}

.itvw .legend-item {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: #444
}

.itvw .legend-dot {
    width: 12px;
    height: 12px;
    border-radius: 5px;
    flex-shrink: 0
}

.itvw .legend-dot.pink {
    background: #F906CE
}

.itvw .legend-dot.green {
    background: #308F72
}

.itvw .glass-band {
    background: #f4f3eb8c;
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-top: 1px solid #308f7221;
    border-bottom: 1px solid #f906ce1a;
    position: relative
}

.itvw .glass-inner {
    max-width: 1600px;
    margin: 0 auto;
    padding: 56px 28px
}

.itvw .glass-hd {
    text-align: center;
    margin-bottom: 28px
}

.itvw .glass-hd h2 {
    font-size: 42px;
    line-height: 1.15;
    background: linear-gradient(135deg, #308F72, #F906CE);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    margin: 0 0 8px
}

.itvw .glass-hd p {
    font-size: 14px;
    line-height: 1.65;
    color: #3a3a4a;
    margin: 0
}

.itvw .steps-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
    max-width: 860px;
    margin: 0 auto
}

.itvw .step-item {
    display: flex;
    flex-direction: row;
    gap: 16px;
    align-items: flex-start;
    background: #fff;
    border-radius: 16px;
    padding: 16px;
    box-shadow: 0 3px 5px 1px #308f720f;
    border-top: 3px solid transparent;
    transition: border-color .2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow .22s cubic-bezier(0.4, 0, 0.2, 1)
}

.itvw .step-item:nth-child(odd) {
    border-top-color: #F906CE
}

.itvw .step-item:nth-child(even) {
    border-top-color: #308F72
}

.itvw .step-item:hover {
    box-shadow: 0 8px 60px 1px #f906ce1a
}

.itvw .step-num {
    font-size: 30px;
    line-height: 1.15;
    font-weight: 800;
    color: #F906CE;
    min-width: 40px;
    flex-shrink: 0
}

.itvw .step-item:nth-child(even) .step-num {
    color: #308F72
}

.itvw .step-body h4 {
    font-size: 14px;
    line-height: 1.65;
    font-weight: 700;
    color: #1b1b2e;
    margin: 0 0 4px
}

.itvw .step-body p {
    font-size: 14px;
    line-height: 1.65;
    color: #4a4a5a;
    margin: 0
}

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

    .itvw .ratio-inner {
        flex-direction: column;
        gap: 28px
    }

    .itvw .ratio-visual {
        width: 100%
    }
}

@media (max-width: 768px) {
    .itvw .strip-col {
        flex-direction: column;
        padding: 28px 16px 56px
    }

    .itvw .img-strip {
        width: 100%;
        min-width: unset;
        height: 220px
    }

    .itvw .strip-text h1 {
        font-size: 42px
    }

    .itvw .card-grid {
        grid-template-columns: 1fr
    }

    .itvw .posts-inner,
    .itvw .ratio-inner,
    .itvw .glass-inner {
        padding: 28px 16px
    }

    .itvw .posts-hd h2,
    .itvw .glass-hd h2,
    .itvw .ratio-text h2 {
        font-size: 30px
    }
}

@media (max-width: 375px) {
    .itvw .strip-text h1 {
        font-size: 30px
    }

    .itvw .big-num {
        font-size: 42px
    }
}

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

.ctus .pg-top {
    padding: 56px 28px;
    max-width: 1600px;
    margin: 0 auto
}

.ctus .bento-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    grid-template-rows: auto auto;
    gap: 16px
}

.ctus .bento-cell {
    border-radius: 16px;
    overflow: hidden;
    position: relative
}

.ctus .bento-cell.img-cell {
    grid-column: 1 / 3;
    grid-row: 1 / 3;
    min-height: 320px
}

.ctus .bento-cell.txt-cell {
    grid-column: 3 / 5;
    grid-row: 1 / 2;
    background: #F4F3EB;
    padding: 28px;
    display: flex;
    flex-direction: column;
    justify-content: center
}

.ctus .bento-cell.tag-cell {
    grid-column: 3 / 4;
    grid-row: 2 / 3;
    background: #308F72;
    padding: 28px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end
}

.ctus .bento-cell.accent-cell {
    grid-column: 4 / 5;
    grid-row: 2 / 3;
    background: #F906CE;
    padding: 28px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end
}

.ctus .bento-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 30%;
    display: block;
    filter: sepia(0.18) saturate(1.2) brightness(1.05)
}

.ctus .stripe-band {
    position: absolute;
    top: 0;
    left: 0;
    width: 6px;
    height: 100%;
    background: #F906CE;
    border-radius: 16px 0 0 16px
}

.ctus .pg-label {
    font-size: 14px;
    letter-spacing: .12em;
    color: #308F72;
    font-weight: 700;
    margin-bottom: 16px;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px
}

.ctus .dot-swatch {
    width: 8px;
    height: 8px;
    border-radius: 40px;
    background: #F906CE;
    display: inline-block;
    flex-shrink: 0
}

.ctus .pg-h1 {
    font-size: 42px;
    line-height: 1.15;
    color: #1b1b1b;
    margin: 0 0 8px;
    font-weight: 800;
    background: linear-gradient(circle at 100% 0%, #F906CE, #308F72);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text
}

.ctus .pg-h1 .kw-under {
    text-decoration: underline;
    text-decoration-color: #F906CE;
    text-decoration-thickness: 3px;
    -webkit-text-fill-color: inherit
}

.ctus .tag-label {
    font-size: 14px;
    letter-spacing: .08em;
    color: #fff;
    font-weight: 700;
    line-height: 1.65
}

.ctus .tag-val {
    font-size: 30px;
    line-height: 1.15;
    color: #fff;
    font-weight: 800;
    margin-top: 8px
}

.ctus .accent-label {
    font-size: 14px;
    letter-spacing: .08em;
    color: #ffffffd9;
    font-weight: 700;
    line-height: 1.65
}

.ctus .accent-val {
    font-size: 30px;
    line-height: 1.15;
    color: #fff;
    font-weight: 800;
    margin-top: 8px
}

.ctus .pg-body {
    font-size: 14px;
    line-height: 1.65;
    color: #3a3a3a;
    margin: 0
}

@keyframes ctus-fade-blur {
    from {
        opacity: 0;
        filter: blur(8px)
    }

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

.ctus .pg-top {
    animation: ctus-fade-blur .55s cubic-bezier(0.4, 0, 0.2, 1) both
}

.ctus .form-sec {
    background: #F4F3EB;
    position: relative
}

.ctus .form-sec-curve {
    width: 100%;
    display: block;
    line-height: 0
}

.ctus .form-inner {
    max-width: 1600px;
    margin: 0 auto;
    padding: 0 28px 56px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 56px;
    align-items: start
}

.ctus .form-aside {
    padding-top: 8px
}

.ctus .aside-h2 {
    font-size: 42px;
    line-height: 1.15;
    color: #1b1b1b;
    font-weight: 800;
    margin: 0 0 16px;
    background: linear-gradient(circle at 100% 0%, #F906CE, #308F72);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text
}

.ctus .aside-note {
    display: flex;
    flex-direction: row;
    gap: 16px;
    align-items: flex-start;
    margin-bottom: 16px
}

.ctus .aside-note-marker {
    width: 4px;
    min-height: 40px;
    border-radius: 5px;
    background: #F906CE;
    flex-shrink: 0;
    border-top: 2px solid #308F72
}

.ctus .aside-note-text {
    font-size: 14px;
    line-height: 1.65;
    color: #3a3a3a;
    margin: 0
}

.ctus .contact-list {
    list-style: none;
    padding: 0;
    margin: 28px 0 0;
    display: flex;
    flex-direction: column;
    gap: 16px
}

.ctus .contact-item {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 12px
}

.ctus .ci-icon {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 3px 5px 1px #f906ce0f
}

.ctus .ci-icon svg {
    width: 18px;
    height: 18px
}

.ctus .ci-body {
    display: flex;
    flex-direction: column;
    gap: 4px
}

.ctus .ci-lbl {
    font-size: 14px;
    letter-spacing: .08em;
    color: #308F72;
    font-weight: 700;
    line-height: 1.15
}

.ctus .ci-val {
    font-size: 14px;
    line-height: 1.65;
    color: #1b1b1b;
    font-weight: 600;
    text-decoration: none;
    transition: color .22s cubic-bezier(0.4, 0, 0.2, 1)
}

.ctus .ci-val:hover {
    color: #308F72
}

.ctus .form-card {
    background: #fff;
    border-radius: 16px;
    padding: 28px;
    box-shadow: 0 4px 18px 1px #f906ce1c
}

.ctus .form-h3 {
    font-size: 30px;
    line-height: 1.15;
    font-weight: 800;
    color: #1b1b1b;
    margin: 0 0 28px;
    text-align: center
}

.ctus .field-row {
    display: flex;
    flex-direction: row;
    gap: 16px;
    margin-bottom: 16px
}

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

.ctus .field-lbl {
    font-size: 14px;
    font-weight: 700;
    color: #1b1b1b;
    letter-spacing: .04em;
    line-height: 1.15
}

.ctus .field-lbl .req {
    color: #F906CE;
    margin-left: 2px
}

.ctus .f-input {
    border: 2px solid #e2e2d8;
    border-radius: 10px;
    padding: 12px 16px;
    font-size: 14px;
    line-height: 1.65;
    color: #1b1b1b;
    background: #fff;
    outline: none;
    transition: border-color .18s cubic-bezier(0.4, 0, 0.2, 1), box-shadow .25s cubic-bezier(0.0, 0, 0.2, 1);
    box-shadow: inset 0 2px 4px #f906ce0a;
    width: 100%;
    box-sizing: border-box
}

.ctus .f-input::placeholder {
    font-size: 13px;
    color: #999
}

.ctus .f-input:focus {
    border-color: #F906CE;
    box-shadow: inset 0 2px 4px #f906ce0f 0 0 0 3px #f906ce17
}

.ctus .budget-grp {
    margin-bottom: 16px
}

.ctus .budget-lbl-head {
    font-size: 14px;
    font-weight: 700;
    color: #1b1b1b;
    letter-spacing: .04em;
    margin-bottom: 12px;
    display: block;
    line-height: 1.15
}

.ctus .budget-opts {
    display: flex;
    flex-direction: column;
    gap: 8px
}

.ctus .budget-opt {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 12px;
    cursor: pointer;
    padding: 10px 16px;
    border-radius: 10px;
    border: 2px solid #e2e2d8;
    background: #fff;
    transition: border-color .18s cubic-bezier(0.4, 0, 0.2, 1), background .2s cubic-bezier(0.0, 0, 0.2, 1)
}

.ctus .budget-opt:hover {
    border-color: #308F72;
    background: #f0faf6
}

.ctus .budget-opt input[type="radio"] {
    accent-color: #F906CE;
    width: 18px;
    height: 18px;
    cursor: pointer;
    flex-shrink: 0
}

.ctus .budget-opt-txt {
    font-size: 14px;
    font-weight: 600;
    color: #1b1b1b;
    line-height: 1.65
}

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

.ctus .privacy-chk {
    width: 18px;
    height: 18px;
    accent-color: #F906CE;
    cursor: pointer;
    flex-shrink: 0;
    margin-top: 2px
}

.ctus .privacy-txt {
    font-size: 14px;
    line-height: 1.65;
    color: #3a3a3a;
    margin: 0
}

.ctus .privacy-txt a {
    color: #F906CE;
    text-decoration: underline;
    text-decoration-color: #f906ce66;
    transition: color .18s cubic-bezier(0.4, 0, 0.2, 1)
}

.ctus .privacy-txt a:hover {
    color: #308F72
}

.ctus .submit-btn {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    background: #F906CE;
    color: #fff;
    border: none;
    border-radius: 10px;
    padding: 16px 28px;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .06em;
    cursor: pointer;
    width: 100%;
    justify-content: center;
    position: relative;
    transition: background .2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow .25s cubic-bezier(0.0, 0, 0.2, 1);
    box-shadow: 0 4px 18px 1px #f906ce1c
}

.ctus .submit-btn::after {
    content: '';
    position: absolute;
    inset: 3px;
    border-radius: 8px;
    border: 2px solid #fff0;
    transition: border-color .22s cubic-bezier(0.4, 0, 0.2, 1);
    pointer-events: none
}

.ctus .submit-btn:hover {
    background: #d004b3;
    box-shadow: 0 8px 60px 1px #f906ce1a
}

.ctus .submit-btn:hover::after {
    border-color: #ffffff73
}

.ctus .submit-btn:focus {
    outline: 3px solid #308F72;
    outline-offset: 2px
}

.ctus .submit-btn:active {
    background: #b8039c
}

.ctus .submit-arrow {
    width: 16px;
    height: 16px;
    display: flex;
    align-items: center;
    justify-content: center
}

.ctus .info-sec {
    background: #fff;
    position: relative
}

.ctus .info-curve-top {
    width: 100%;
    display: block;
    line-height: 0
}

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

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

.ctus .info-h2 {
    font-size: 30px;
    line-height: 1.15;
    font-weight: 800;
    color: #1b1b1b;
    margin: 0 0 8px;
    background: linear-gradient(circle at 100% 0%, #F906CE, #308F72);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text
}

.ctus .info-img-wrap {
    border-radius: 16px;
    overflow: hidden;
    position: relative
}

.ctus .info-img {
    width: 100%;
    height: 220px;
    object-fit: cover;
    object-position: center 20%;
    display: block;
    filter: sepia(0.1) saturate(1.15) brightness(1.08)
}

.ctus .info-img-overlay {
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 100% 0%, #f906ce2e, transparent 70%);
    pointer-events: none
}

.ctus .stat-card {
    border-radius: 16px;
    padding: 28px;
    display: flex;
    flex-direction: column;
    gap: 8px
}

.ctus .stat-card.green {
    background: #308F72
}

.ctus .stat-card.pink {
    background: #F4F3EB;
    border: 2px solid #f906ce1f
}

.ctus .stat-num {
    font-size: 56px;
    line-height: 1.15;
    font-weight: 800;
    color: #fff
}

.ctus .stat-card.pink .stat-num {
    color: #F906CE
}

.ctus .stat-desc {
    font-size: 14px;
    line-height: 1.65;
    color: #ffffffe0;
    font-weight: 600
}

.ctus .stat-card.pink .stat-desc {
    color: #3a3a3a
}

.ctus .info-body {
    font-size: 14px;
    line-height: 1.65;
    color: #3a3a3a;
    margin: 0
}

.ctus .info-addr {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 8px;
    padding: 16px;
    background: #F4F3EB;
    border-radius: 10px;
    margin-top: 8px
}

.ctus .addr-icon {
    flex-shrink: 0;
    margin-top: 2px
}

.ctus .addr-text {
    font-size: 14px;
    line-height: 1.65;
    color: #1b1b1b;
    font-weight: 600;
    margin: 0
}

@media (max-width: 1024px) {
    .ctus .bento-grid {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto auto auto
    }

    .ctus .bento-cell.img-cell {
        grid-column: 1 / 3;
        grid-row: 1 / 2;
        min-height: 220px
    }

    .ctus .bento-cell.txt-cell {
        grid-column: 1 / 2;
        grid-row: 2 / 3
    }

    .ctus .bento-cell.tag-cell {
        grid-column: 2 / 3;
        grid-row: 2 / 3
    }

    .ctus .bento-cell.accent-cell {
        grid-column: 1 / 3;
        grid-row: 3 / 4
    }

    .ctus .form-inner {
        grid-template-columns: 1fr;
        gap: 28px
    }

    .ctus .info-inner {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto auto
    }

    .ctus .info-main {
        grid-column: 1 / 3
    }
}

@media (max-width: 768px) {
    .ctus .pg-top {
        padding: 28px 16px
    }

    .ctus .bento-grid {
        grid-template-columns: 1fr;
        grid-template-rows: auto
    }

    .ctus .bento-cell.img-cell {
        grid-column: 1 / 2;
        grid-row: auto;
        min-height: 180px
    }

    .ctus .bento-cell.txt-cell {
        grid-column: 1 / 2;
        grid-row: auto
    }

    .ctus .bento-cell.tag-cell {
        grid-column: 1 / 2;
        grid-row: auto
    }

    .ctus .bento-cell.accent-cell {
        grid-column: 1 / 2;
        grid-row: auto
    }

    .ctus .pg-h1 {
        font-size: 30px
    }

    .ctus .form-inner {
        padding: 0 16px 28px;
        gap: 16px
    }

    .ctus .field-row {
        flex-direction: column;
        gap: 16px
    }

    .ctus .info-inner {
        grid-template-columns: 1fr;
        padding: 28px 16px
    }

    .ctus .info-main {
        grid-column: 1 / 2
    }

    .ctus .aside-h2 {
        font-size: 30px
    }

    .ctus .info-h2 {
        font-size: 30px
    }
}

@media (max-width: 375px) {
    .ctus .pg-h1 {
        font-size: 30px
    }

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

    .ctus .stat-num {
        font-size: 42px
    }
}

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

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

.abt-us ::selection {
    background: #F906CE;
    color: #fff
}

.abt-us .split-screen {
    display: flex;
    flex-direction: row;
    min-height: 560px;
    position: relative
}

.abt-us .split-screen .txt-side {
    flex: 0 0 55%;
    background: #F4F3EB;
    padding: 56px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
    overflow: hidden
}

.abt-us .split-screen .txt-side::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 5px;
    background: linear-gradient(90deg, #F906CE 0%, #308F72 100%)
}

.abt-us .split-screen .txt-side .deco-stripe {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: repeating-linear-gradient(90deg, #F906CE 0px, #F906CE 18px, transparent 18px, transparent 28px);
    opacity: .35
}

.abt-us .split-screen .img-side {
    flex: 0 0 45%;
    position: relative;
    overflow: hidden
}

.abt-us .split-screen .img-side img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    display: block;
    filter: grayscale(100%);
    transition: filter .25s cubic-bezier(0.4, 0, 0.2, 1)
}

.abt-us .split-screen .img-side:hover img {
    filter: grayscale(60%)
}

.abt-us .split-eyebrow {
    font-size: 14px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #308F72;
    margin-bottom: 16px;
    font-weight: 600
}

.abt-us .split-h1 {
    font-size: 56px;
    line-height: 1.15;
    font-weight: 800;
    margin: 0 0 16px;
    background: linear-gradient(circle at 100% 0%, #F906CE, #308F72);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text
}

.abt-us .split-sub {
    font-size: 14px;
    line-height: 1.65;
    color: #2a2a2a;
    max-width: 420px;
    margin: 0
}

.abt-us .torn-divider {
    display: block;
    width: 100%;
    line-height: 0;
    overflow: hidden
}

.abt-us .torn-divider svg {
    display: block;
    width: 100%
}

.abt-us .story-band {
    background: #fff;
    padding: 56px 0 28px;
    position: relative;
    animation: edge-glow 4s ease-out infinite alternate
}

@keyframes edge-glow {
    0% {
        box-shadow: 0 0 18px 2px #f906ce0f 0 0 0 0 #308f720a
    }

    100% {
        box-shadow: 0 0 38px 6px #f906ce21 0 0 24px 4px #308f7217
    }
}

.abt-us .story-band .band-inner {
    max-width: 1600px;
    margin: 0 auto;
    padding: 0 56px;
    display: grid;
    grid-template-columns: 200px 1fr 200px;
    gap: 56px;
    align-items: start
}

.abt-us .story-band .side-note {
    padding-top: 8px
}

.abt-us .story-band .side-note .note-label {
    font-size: 14px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #308F72;
    font-weight: 700;
    display: block;
    margin-bottom: 8px
}

.abt-us .story-band .side-note .note-year {
    font-size: 42px;
    line-height: 1.15;
    font-weight: 800;
    color: #F906CE;
    display: block
}

.abt-us .story-band .mid-col h2 {
    font-size: 42px;
    line-height: 1.15;
    font-weight: 800;
    text-align: center;
    background: linear-gradient(circle at 100% 0%, #308F72, #F906CE);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    margin: 0 0 28px
}

.abt-us .story-band .mid-col p {
    font-size: 14px;
    line-height: 1.65;
    color: #2a2a2a;
    margin: 0 0 16px
}

.abt-us .story-band .right-col {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding-top: 8px
}

.abt-us .story-band .right-col .metric-item {
    text-align: right
}

.abt-us .story-band .right-col .metric-pct {
    font-size: 42px;
    line-height: 1.15;
    font-weight: 800;
    color: #308F72;
    display: block
}

.abt-us .story-band .right-col .metric-desc {
    font-size: 14px;
    line-height: 1.65;
    color: #555;
    display: block
}

.abt-us .approach-band {
    background: #F4F3EB;
    padding: 56px 0;
    position: relative
}

.abt-us .approach-band::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 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%3Ccircle cx='20' cy='20' r='1.5' fill='%23308F72' opacity='0.12'/%3E%3C/svg%3E");
    background-repeat: repeat;
    pointer-events: none
}

.abt-us .approach-band .approach-inner {
    max-width: 1600px;
    margin: 0 auto;
    padding: 0 56px;
    position: relative
}

.abt-us .approach-band .approach-inner h2 {
    font-size: 42px;
    line-height: 1.15;
    font-weight: 800;
    text-align: center;
    background: linear-gradient(circle at 100% 0%, #F906CE, #308F72);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    margin: 0 0 56px
}

.abt-us .approach-grid {
    display: grid;
    grid-template-columns: 1fr 2fr 1fr;
    gap: 28px;
    align-items: start
}

.abt-us .approach-grid .ap-card {
    background: #fff;
    border-radius: 16px;
    padding: 28px;
    box-shadow: 0 3px 5px 1px #f906ce0f;
    transition: box-shadow .22s cubic-bezier(0.4, 0, 0.2, 1), transform .22s cubic-bezier(0.4, 0, 0.2, 1);
    cursor: default
}

.abt-us .approach-grid:hover .ap-card {
    transform: scale(0.97)
}

.abt-us .approach-grid .ap-card:hover {
    transform: scale(1.03) !important;
    box-shadow: 0 8px 60px 1px #f906ce1a
}

.abt-us .approach-grid .ap-card .card-icon {
    width: 40px;
    height: 40px;
    margin-bottom: 16px
}

.abt-us .approach-grid .ap-card h4 {
    font-size: 14px;
    line-height: 1.15;
    font-weight: 700;
    color: #1b1b1b;
    margin: 0 0 8px;
    letter-spacing: .02em
}

.abt-us .approach-grid .ap-card p {
    font-size: 14px;
    line-height: 1.65;
    color: #444;
    margin: 0
}

.abt-us .approach-grid .ap-card.featured {
    background: linear-gradient(160deg, #fff 60%, #F4F3EB 100%);
    border-radius: 26px;
    padding: 28px;
    box-shadow: 0 4px 18px 1px #f906ce1c;
    border-top: 3px solid #F906CE;
    border-left: 1px solid #f906ce26;
    border-right: 1px solid #f906ce26;
    border-bottom: 1px solid #f906ce14
}

.abt-us .approach-grid .ap-card.featured h4 {
    font-size: 30px;
    line-height: 1.15
}

.abt-us .approach-grid .ap-card.featured .card-icon {
    width: 56px;
    height: 56px
}

.abt-us .quote-band {
    background: #fff;
    padding: 56px 0;
    position: relative
}

.abt-us .quote-band .quote-inner {
    max-width: 1600px;
    margin: 0 auto;
    padding: 0 56px;
    display: flex;
    flex-direction: row;
    gap: 56px;
    align-items: center
}

.abt-us .quote-band .quote-img-col {
    flex: 0 0 340px;
    position: relative
}

.abt-us .quote-band .quote-img-col img {
    width: 100%;
    height: 380px;
    object-fit: cover;
    object-position: center 20%;
    border-radius: 10px;
    display: block;
    box-shadow: 0 4px 18px 1px #308f721c
}

.abt-us .quote-band .quote-img-col .geom-deco {
    position: absolute;
    bottom: -16px;
    right: -16px;
    width: 80px;
    height: 80px;
    border-radius: 10px;
    background: #F906CE;
    opacity: .12;
    pointer-events: none
}

.abt-us .quote-band .quote-text-col {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    gap: 28px
}

.abt-us .quote-band .quote-text-col h2 {
    font-size: 42px;
    line-height: 1.15;
    font-weight: 800;
    text-align: center;
    background: linear-gradient(circle at 100% 0%, #308F72, #F906CE);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    margin: 0
}

.abt-us .quote-band .speech-bubble {
    position: relative;
    background: #F4F3EB;
    border-radius: 16px;
    padding: 28px;
    box-shadow: 0 3px 5px 1px #308f720f
}

.abt-us .quote-band .speech-bubble::after {
    content: '';
    position: absolute;
    left: 40px;
    bottom: -16px;
    width: 0;
    height: 0;
    border-left: 16px solid transparent;
    border-right: 8px solid transparent;
    border-top: 16px solid #F4F3EB
}

.abt-us .quote-band .speech-bubble blockquote {
    margin: 0;
    font-size: 14px;
    line-height: 1.65;
    color: #2a2a2a;
    font-style: italic
}

.abt-us .quote-band .speech-bubble .quote-mark {
    display: block;
    font-size: 56px;
    line-height: 1.15;
    color: #F906CE;
    font-weight: 900;
    margin-bottom: -16px;
    margin-top: -8px
}

.abt-us .quote-band .quote-attr {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding-left: 4px;
    margin-top: 28px
}

.abt-us .quote-band .quote-attr .attr-name {
    font-size: 14px;
    font-weight: 700;
    color: #1b1b1b;
    letter-spacing: .04em
}

.abt-us .quote-band .quote-attr .attr-role {
    font-size: 14px;
    color: #308F72;
    letter-spacing: .06em
}

.abt-us .quote-band .quote-img-col2 {
    flex: 0 0 280px;
    position: relative
}

.abt-us .quote-band .quote-img-col2 img {
    width: 100%;
    height: 320px;
    object-fit: cover;
    object-position: center 30%;
    border-radius: 10px;
    display: block;
    box-shadow: 0 4px 18px 1px #308f721c
}

.abt-us .geom-repeat {
    position: absolute;
    top: 0;
    right: 0;
    width: 180px;
    height: 100%;
    pointer-events: none;
    overflow: hidden
}

.abt-us .geom-repeat svg {
    width: 100%;
    height: 100%
}

@media (max-width: 1024px) {
    .abt-us .split-screen {
        flex-direction: column
    }

    .abt-us .split-screen .txt-side {
        flex: none;
        padding: 56px 28px
    }

    .abt-us .split-screen .img-side {
        flex: none;
        height: 300px
    }

    .abt-us .story-band .band-inner {
        grid-template-columns: 1fr;
        padding: 0 28px;
        gap: 28px
    }

    .abt-us .story-band .side-note {
        display: flex;
        flex-direction: row;
        gap: 28px;
        align-items: center
    }

    .abt-us .story-band .right-col {
        flex-direction: row;
        gap: 28px
    }

    .abt-us .story-band .right-col .metric-item {
        text-align: left
    }

    .abt-us .approach-band .approach-inner {
        padding: 0 28px
    }

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

    .abt-us .approach-grid .ap-card.featured {
        grid-column: 1 / -1
    }

    .abt-us .quote-band .quote-inner {
        flex-direction: column;
        padding: 0 28px;
        gap: 28px
    }

    .abt-us .quote-band .quote-img-col {
        flex: none;
        width: 100%
    }

    .abt-us .quote-band .quote-img-col2 {
        flex: none;
        width: 100%
    }

    .abt-us .quote-band .quote-img-col2 img {
        height: 240px
    }
}

@media (max-width: 768px) {
    .abt-us .split-h1 {
        font-size: 42px
    }

    .abt-us .split-screen .txt-side {
        padding: 28px 16px
    }

    .abt-us .story-band {
        padding: 28px 0
    }

    .abt-us .story-band .band-inner {
        padding: 0 16px;
        gap: 16px
    }

    .abt-us .story-band .mid-col h2 {
        font-size: 30px
    }

    .abt-us .approach-band .approach-inner {
        padding: 0 16px
    }

    .abt-us .approach-band .approach-inner h2 {
        font-size: 30px;
        margin-bottom: 28px
    }

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

    .abt-us .approach-grid .ap-card.featured {
        grid-column: auto
    }

    .abt-us .quote-band .quote-inner {
        padding: 0 16px
    }

    .abt-us .quote-band .quote-text-col h2 {
        font-size: 30px
    }

    .abt-us .quote-band .quote-img-col img {
        height: 240px
    }
}

@media (max-width: 375px) {
    .abt-us .split-h1 {
        font-size: 30px
    }

    .abt-us .split-screen .txt-side {
        padding: 16px
    }

    .abt-us .story-band .note-year {
        font-size: 30px
    }

    .abt-us .approach-band {
        padding: 28px 0
    }

    .abt-us .quote-band {
        padding: 28px 0
    }
}

.pg-success {
    min-height: 80vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 56px 28px;
    background-color: #F4F3EB
}

.pg-success .success-wrap {
    max-width: 600px;
    width: 100%;
    background: #fff;
    border-radius: 16px;
    padding: 56px;
    box-shadow: 0 8px 60px 1px #f906ce1a;
    text-align: center
}

.pg-success .icon-mark {
    width: 64px;
    height: 64px;
    margin: 0 auto 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 40px;
    background: #F4F3EB;
    border: 2px solid #308F72
}

.pg-success .icon-mark svg {
    display: block
}

.pg-success .success-heading {
    font-size: 42px;
    line-height: 1.15;
    letter-spacing: -.5px;
    margin: 0 0 16px;
    background: linear-gradient(135deg, #308F72, #F906CE);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text
}

.pg-success .success-text {
    font-size: 14px;
    line-height: 1.65;
    color: #2a2a2a;
    margin: 0 0 28px
}

.pg-success .success-note {
    font-size: 14px;
    line-height: 1.65;
    color: #555550;
    padding: 16px 28px;
    border-radius: 10px;
    background: #F4F3EB;
    border-left: 3px solid #308F72;
    border-top: 1px solid #308f722e;
    text-align: left;
    margin: 0 0 28px
}

.pg-success .success-note strong {
    color: #308F72
}

.pg-success .btn-home {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    line-height: 1.15;
    letter-spacing: .04em;
    color: #F906CE;
    text-decoration: none;
    padding: 16px 28px;
    border-radius: 10px;
    border: 1.5px solid #F906CE;
    background: transparent;
    transition: color .2s cubic-bezier(0.4, 0, 0.2, 1), background .25s cubic-bezier(0.0, 0, 0.2, 1), box-shadow .2s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative
}

.pg-success .btn-home::before {
    content: '';
    position: absolute;
    inset: 3px;
    border-radius: 7px;
    border: 1px solid transparent;
    transition: border-color .22s cubic-bezier(0.4, 0, 0.2, 1);
    pointer-events: none
}

.pg-success .btn-home:hover {
    background: #F906CE;
    color: #fff;
    box-shadow: 0 4px 18px 1px #f906ce1c
}

.pg-success .btn-home:hover::before {
    border-color: #ffffff59
}

.pg-success .btn-home:focus-visible {
    outline: 2px solid #F906CE;
    outline-offset: 4px
}

.pg-success .btn-arrow {
    width: 16px;
    height: 16px;
    display: inline-block;
    flex-shrink: 0
}

.pg-success .divider-line {
    width: 48px;
    height: 2px;
    background: linear-gradient(90deg, #308F72, #F906CE);
    border-radius: 5px;
    margin: 0 auto 28px
}

@media (max-width: 768px) {
    .pg-success .success-wrap {
        padding: 56px 28px
    }

    .pg-success .success-heading {
        font-size: 30px
    }
}

@media (max-width: 375px) {
    .pg-success {
        padding: 28px 16px
    }

    .pg-success .success-wrap {
        padding: 28px 16px
    }
}