* {
    box-sizing: border-box
}

html {
    font-size: 100%
}

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

.page-header {
    background: linear-gradient(135deg, #fff 0%, #EDE4E4 60%, #C99CA3 100%);
    border-bottom: 2px solid #C99CA3;
    box-shadow: 0 7px 20px 1px #a746651a;
    font-family: 'Roboto Slab', serif;
    padding: 0;
    position: relative
}

.page-header-inner {
    align-items: stretch;
    display: flex;
    justify-content: space-between;
    margin: 0 auto;
    max-width: 1440px;
    min-height: 110px;
    padding: 0 40px
}

.brand-block {
    align-items: center;
    display: flex;
    flex-shrink: 0;
    gap: 16px;
    padding: 24px 0
}

.brand-card {
    align-items: center;
    background: #fff;
    border: 1px solid #EDE4E4;
    border-radius: 4px;
    box-shadow: 0 1px 6px 1px #a746650f 0 7px 20px 1px #a746651a;
    display: flex;
    justify-content: center;
    padding: 8px 16px
}

.brand-card img {
    display: block;
    height: 55px;
    object-fit: contain;
    width: 100px
}

.brand-name {
    color: #A74665;
    font-size: 24px;
    font-weight: 700;
    letter-spacing: -.03em;
    line-height: 1.2
}

.header-right {
    align-items: flex-end;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 24px 0
}

.primary-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    justify-content: flex-end;
    list-style: none;
    margin: 0;
    padding: 0
}

.primary-nav li {
    display: block
}

.primary-nav a {
    border-bottom: 4px solid transparent;
    border-radius: 4px 4px 0 0;
    color: #3a1a24;
    display: block;
    font-family: 'Roboto Slab', serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.55;
    min-height: 44px;
    padding: 8px 16px;
    text-decoration: none;
    transition: color .12s ease-out, border-color .18s ease-out, background .12s ease-out
}

.primary-nav a:hover {
    background: #a746650f;
    color: #A74665
}

.primary-nav a:focus {
    border-bottom: 4px solid #A74665;
    outline: none
}

.primary-nav a.active {
    border-bottom: 4px solid #A74665;
    color: #A74665;
    font-weight: 700
}

.header-accent-bar {
    background: linear-gradient(90deg, #A74665 0%, #C99CA3 100%);
    height: 4px;
    width: 100%
}

@media (max-width: 768px) {
    .page-header-inner {
        flex-direction: column;
        min-height: auto;
        padding: 0 16px
    }

    .brand-block {
        padding: 16px 0 8px
    }

    .header-right {
        align-items: flex-start;
        padding: 8px 0 16px
    }

    .primary-nav {
        justify-content: flex-start
    }

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

@media (min-width: 769px) and (max-width: 1280px) {
    .page-header-inner {
        padding: 0 24px
    }
}

.page-footer {
    background: #fff;
    border-top: 2px solid #EDE4E4;
    font-family: 'Roboto Slab', serif;
    padding: 0
}

.footer-logo-row {
    border-bottom: 1px solid #EDE4E4;
    display: flex;
    justify-content: center;
    padding: 40px 40px 24px
}

.footer-brand-card {
    align-items: center;
    background: #fff;
    border: 1px solid #EDE4E4;
    border-radius: 4px;
    box-shadow: 0 1px 6px 1px #a746650f;
    display: flex;
    gap: 16px;
    justify-content: center;
    padding: 8px 24px
}

.footer-brand-card img {
    display: block;
    height: 55px;
    object-fit: contain;
    width: 100px
}

.footer-brand-name {
    color: #A74665;
    font-size: 24px;
    font-weight: 700;
    letter-spacing: -.03em;
    line-height: 1.2
}

.footer-columns {
    display: flex;
    flex-wrap: wrap;
    gap: 40px;
    justify-content: center;
    margin: 0 auto;
    max-width: 1440px;
    padding: 40px 40px 24px
}

.footer-col {
    flex: 1 1 200px;
    max-width: 280px;
    min-width: 160px
}

.footer-col-heading {
    color: #A74665;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: .04em;
    line-height: 1.2;
    margin: 0 0 16px;
    text-transform: uppercase
}

.footer-col-list {
    list-style: none;
    margin: 0;
    padding: 0
}

.footer-col-list li {
    margin-bottom: 8px
}

.footer-col-list a {
    border-bottom: 4px solid transparent;
    border-radius: 4px;
    color: #3a1a24;
    display: inline-block;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.55;
    min-height: 44px;
    padding: 8px 0;
    text-decoration: none;
    transition: color .14s ease-out
}

.footer-col-list a:hover {
    color: #A74665
}

.footer-col-list a:focus {
    border-bottom: 4px solid #A74665;
    outline: none
}

.footer-contact-item {
    color: #3a1a24;
    font-size: 16px;
    line-height: 1.55;
    margin-bottom: 8px
}

.footer-contact-label {
    color: #A74665;
    font-size: 16px;
    font-weight: 700
}

.footer-contact-item a {
    border-bottom: 4px solid transparent;
    border-radius: 4px;
    color: #3a1a24;
    display: inline-block;
    padding: 4px 0;
    text-decoration: none;
    transition: color .14s ease-out
}

.footer-contact-item a:hover {
    color: #A74665
}

.footer-contact-item a:focus {
    border-bottom: 4px solid #A74665;
    outline: none
}

.footer-bottom {
    background: #EDE4E4;
    border-top: 1px solid #C99CA3;
    padding: 16px 40px;
    text-align: center
}

.footer-copy {
    color: #5a3040;
    font-family: 'Roboto Slab', serif;
    font-size: 16px;
    font-weight: 300;
    line-height: 1.55;
    margin: 0
}

@media (max-width: 768px) {
    .footer-logo-row {
        padding: 24px 16px 16px
    }

    .footer-columns {
        flex-direction: column;
        gap: 24px;
        padding: 24px 16px 16px
    }

    .footer-col {
        max-width: 100%;
        min-width: 0
    }

    .footer-bottom {
        padding: 16px
    }
}

@media (min-width: 769px) and (max-width: 1280px) {
    .footer-columns {
        padding: 40px 24px 24px
    }

    .footer-logo-row {
        padding: 40px 24px 24px
    }
}

.consent-bar {
    background: #fff;
    border-radius: 4px;
    box-shadow: 0 8px 44px 1px #a7466521;
    display: none;
    font-family: 'Roboto Slab', serif;
    max-width: 360px;
    padding: 24px;
    position: fixed;
    right: 24px;
    top: 24px;
    transform: translateX(-120%);
    transition: transform .38s ease-out;
    z-index: 1000
}

.consent-bar.showing {
    transform: translateX(0)
}

.consent-text {
    color: #3a1a24;
    font-size: 16px;
    line-height: 1.55;
    margin: 0 0 16px
}

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

.consent-accept,
.consent-decline {
    background: transparent;
    border: 2px solid #A74665;
    border-radius: 4px;
    color: #A74665;
    cursor: pointer;
    flex: 1;
    font-family: 'Roboto Slab', serif;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.2;
    min-height: 44px;
    padding: 8px 16px;
    transition: background .12s ease-out, color .12s ease-out, transform .1s ease-out
}

.consent-accept:hover,
.consent-decline:hover {
    background: #A74665;
    color: #fff;
    transform: scale(1.03)
}

.consent-accept:focus,
.consent-decline:focus {
    border-bottom: 4px solid #3a1a24;
    outline: none
}

.legal-box {
    margin-left: auto;
    margin-right: auto;
    max-width: 1440px;
    padding: 80px 40px
}

.legal-box p {
    color: #2d2d2d;
    font-size: 18px;
    line-height: 1.8;
    margin-bottom: 24px;
    margin-top: 0
}

.legal-box strong,
.legal-box b {
    color: #1e1e1e;
    font-weight: 700
}

.legal-box em,
.legal-box i {
    font-style: italic
}

.legal-box a {
    border-bottom: 1px solid #C99CA3;
    color: #A74665;
    text-decoration: none;
    transition: border-bottom-color .12s ease-out, color .18s linear
}

.legal-box a:hover {
    border-bottom-color: #A74665;
    color: #7d3349
}

.legal-box div {
    margin-bottom: 40px
}

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

.legal-box table {
    border-collapse: collapse;
    border-radius: 4px;
    box-shadow: 0 1px 6px 1px #a746650f;
    font-size: 16px;
    line-height: 1.55;
    margin-bottom: 40px;
    margin-top: 8px;
    overflow: hidden;
    width: 100%
}

.legal-box thead {
    background-color: #EDE4E4
}

.legal-box thead th {
    color: #1e1e1e;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: -.01em;
    padding: 16px 24px;
    text-align: left
}

.legal-box tbody tr {
    border-top: 1px solid #EDE4E4;
    transition: background-color .1s ease-out
}

.legal-box tbody tr:hover {
    background-color: #f7f2f3
}

.legal-box tbody tr:first-child {
    border-top: none
}

.legal-box td {
    color: #2d2d2d;
    font-size: 16px;
    line-height: 1.8;
    padding: 16px 24px;
    vertical-align: top
}

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

    .legal-box p {
        font-size: 16px
    }

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

    .legal-box thead th,
    .legal-box td {
        padding: 16px;
        white-space: nowrap
    }
}

@media (min-width: 769px) and (max-width: 1280px) {
    .legal-box {
        padding: 80px 24px
    }
}

.phln {
    max-width: 1440px;
    margin: 0 auto;
    overflow-x: clip
}

.phln .reveal {
    opacity: 0;
    animation: phln-appear .5s ease-out forwards
}

.phln .reveal-delay-1 {
    animation-delay: .12s
}

.phln .reveal-delay-2 {
    animation-delay: .24s
}

.phln .reveal-delay-3 {
    animation-delay: .38s
}

@keyframes phln-appear {
    from {
        opacity: 0
    }

    to {
        opacity: 1
    }
}

.phln .split-band {
    display: flex;
    flex-direction: row;
    min-height: 0;
    position: relative
}

.phln .split-left {
    background: #A74665;
    flex: 0 0 48%;
    padding: 40px 40px 40px 80px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative
}

.phln .split-right {
    background: #EDE4E4;
    flex: 1 1 auto;
    padding: 40px 80px 40px 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start
}

.phln .quote-mark {
    position: absolute;
    top: 8px;
    left: 16px;
    font-size: 160px;
    line-height: 1.2;
    color: #fff;
    opacity: .07;
    pointer-events: none;
    user-select: none;
    font-style: normal
}

.phln .band-eyebrow {
    font-size: 16px;
    line-height: 1.55;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #C99CA3;
    margin-bottom: 8px;
    font-weight: 400
}

.phln .band-h1 {
    font-size: 44px;
    line-height: 1.2;
    letter-spacing: -.02em;
    color: #fff;
    font-weight: 700;
    margin-bottom: 0
}

.phln .band-h1 .kw-underline {
    text-decoration: underline;
    text-decoration-color: #C99CA3;
    text-underline-offset: 6px
}

.phln .band-desc {
    font-size: 18px;
    line-height: 1.55;
    color: #3a2028;
    margin-bottom: 16px;
    max-width: 420px
}

.phln .band-img-wrap {
    width: 100%;
    max-width: 380px;
    border: 1px solid #C99CA3;
    border-radius: 4px;
    overflow: hidden
}

.phln .band-img-wrap img {
    width: 100%;
    height: 220px;
    object-fit: cover;
    display: block
}

.phln .curve-divider {
    width: 100%;
    overflow: hidden;
    line-height: 0;
    margin: 0
}

.phln .curve-divider svg {
    display: block;
    width: 100%
}

.phln .pillars-strip {
    background: #fff;
    padding: 80px 80px 40px
}

.phln .pillars-label {
    font-size: 16px;
    line-height: 1.55;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #A74665;
    font-weight: 400;
    text-align: center;
    margin-bottom: 8px
}

.phln .pillars-h2 {
    font-size: 32px;
    line-height: 1.2;
    letter-spacing: -.015em;
    color: #1e0e14;
    font-weight: 700;
    text-align: center;
    margin-bottom: 40px;
    max-width: 560px;
    margin-left: auto;
    margin-right: auto
}

.phln .pillars-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    max-width: 960px;
    margin: 0 auto 40px
}

.phln .pillar-card {
    background: #fff;
    border: 1px solid #EDE4E4;
    border-radius: 4px;
    padding: 24px;
    box-shadow: 0 1px 6px 1px #a746650f;
    transition: box-shadow .18s ease-out, border-color .14s ease-out
}

.phln .pillar-card:hover {
    box-shadow: 0 7px 20px 1px #a746651a;
    border-color: #C99CA3
}

.phln .pillar-card:active {
    border-width: 2px;
    border-color: #A74665
}

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

.phln .pillar-icon svg {
    width: 36px;
    height: 36px
}

.phln .pillar-h4 {
    font-size: 18px;
    line-height: 1.2;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: #1e0e14;
    font-weight: 600;
    margin-bottom: 8px
}

.phln .pillar-p {
    font-size: 16px;
    line-height: 1.55;
    color: #4a2d36
}

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

.phln .curve-divider-2 svg {
    display: block;
    width: 100%
}

.phln .impact-strip {
    background: #f9f0f2;
    background: conic-gradient(from 107deg at 30% 60%, #a7466512, #c99ca321 60%, #ede4e42e 100%);
    padding: 80px
}

.phln .impact-inner {
    max-width: 960px;
    margin: 0 auto;
    display: flex;
    flex-direction: row;
    gap: 80px;
    align-items: flex-start
}

.phln .impact-text-col {
    flex: 1 1 0
}

.phln .impact-h2 {
    font-size: 32px;
    line-height: 1.2;
    letter-spacing: -.015em;
    color: #1e0e14;
    font-weight: 700;
    margin-bottom: 16px
}

.phln .impact-p {
    font-size: 18px;
    line-height: 1.55;
    color: #3a2028;
    margin-bottom: 16px
}

.phln .impact-metrics-col {
    flex: 0 0 280px;
    display: flex;
    flex-direction: column;
    gap: 16px
}

.phln .metric-item {
    background: #fff;
    border-radius: 4px;
    padding: 24px;
    box-shadow: 0 7px 20px 1px #a746651a;
    border-top: 3px solid #A74665;
    transition: transform .2s ease-out
}

.phln .metric-item:hover {
    transform: scale(1.025)
}

.phln .metric-num {
    font-size: 44px;
    line-height: 1.2;
    letter-spacing: -.02em;
    color: #A74665;
    font-weight: 700;
    display: block
}

.phln .metric-desc {
    font-size: 16px;
    line-height: 1.55;
    color: #4a2d36;
    display: block;
    margin-top: 4px
}

.phln .breaker-svg {
    width: 100%;
    overflow: hidden;
    line-height: 0
}

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

.phln .collab-strip {
    background: #fff;
    padding: 80px
}

.phln .collab-inner {
    max-width: 960px;
    margin: 0 auto
}

.phln .collab-h2 {
    font-size: 32px;
    line-height: 1.2;
    letter-spacing: -.015em;
    color: #1e0e14;
    font-weight: 700;
    margin-bottom: 8px;
    text-align: center
}

.phln .collab-sub {
    font-size: 18px;
    line-height: 1.55;
    color: #4a2d36;
    text-align: center;
    max-width: 520px;
    margin: 0 auto 40px
}

.phln .collab-layout {
    display: flex;
    flex-direction: row;
    gap: 40px;
    align-items: stretch
}

.phln .collab-steps {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    gap: 24px
}

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

.phln .step-num {
    flex: 0 0 40px;
    height: 40px;
    border-radius: 36px;
    background: #A74665;
    color: #fff;
    font-size: 18px;
    line-height: 1.2;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center
}

.phln .step-body {
    flex: 1 1 auto
}

.phln .step-h5 {
    font-size: 18px;
    line-height: 1.2;
    letter-spacing: .03em;
    text-transform: uppercase;
    color: #1e0e14;
    font-weight: 600;
    margin-bottom: 4px
}

.phln .step-p {
    font-size: 16px;
    line-height: 1.55;
    color: #4a2d36
}

.phln .collab-aside {
    flex: 0 0 260px;
    background: #EDE4E4;
    border-radius: 4px;
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    box-shadow: 0 8px 44px 1px #a7466521;
    align-self: flex-start;
    position: relative;
    top: 40px
}

.phln .aside-label {
    font-size: 16px;
    line-height: 1.55;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #A74665;
    font-weight: 600
}

.phln .aside-contact-item {
    display: flex;
    flex-direction: column;
    gap: 4px
}

.phln .aside-contact-key {
    font-size: 16px;
    line-height: 1.2;
    color: #7a3d50;
    font-weight: 500
}

.phln .aside-contact-val {
    font-size: 16px;
    line-height: 1.55;
    color: #1e0e14;
    word-break: break-all
}

.phln .aside-contact-val a {
    color: #A74665;
    text-decoration: none;
    transition: color .14s linear
}

.phln .aside-contact-val a:hover {
    color: #1e0e14
}

.phln .aside-note {
    font-size: 16px;
    line-height: 1.55;
    color: #4a2d36;
    border-top: 1px solid #C99CA3;
    padding-top: 16px
}

@media (max-width: 768px) {
    .phln .split-band {
        flex-direction: column
    }

    .phln .split-left {
        flex: none;
        padding: 40px 24px
    }

    .phln .split-right {
        padding: 40px 24px
    }

    .phln .band-h1 {
        font-size: 32px
    }

    .phln .pillars-strip {
        padding: 40px 24px
    }

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

    .phln .impact-strip {
        padding: 40px 24px
    }

    .phln .impact-inner {
        flex-direction: column;
        gap: 40px
    }

    .phln .impact-metrics-col {
        flex: none;
        width: 100%
    }

    .phln .collab-strip {
        padding: 40px 24px
    }

    .phln .collab-layout {
        flex-direction: column
    }

    .phln .collab-aside {
        flex: none;
        width: 100%;
        top: 0
    }
}

@media (max-width: 1280px) {
    .phln .split-left {
        padding: 40px 24px 40px 40px
    }

    .phln .split-right {
        padding: 40px 40px 40px 24px
    }

    .phln .pillars-strip {
        padding: 80px 40px 40px
    }

    .phln .impact-strip {
        padding: 80px 40px
    }

    .phln .collab-strip {
        padding: 80px 40px
    }
}

.opn {
    max-width: 1440px;
    margin: 0 auto;
    overflow-x: clip
}

.opn .ttl-block {
    padding: 80px 40px;
    text-align: center;
    position: relative;
    background: #fff
}

.opn .ttl-dots {
    display: flex;
    flex-direction: row;
    gap: 8px;
    justify-content: center;
    margin-bottom: 40px
}

.opn .ttl-dot {
    width: 6px;
    height: 6px;
    border-radius: 36px;
    background: #C99CA3
}

.opn .ttl-dot.active {
    background: #A74665;
    width: 18px
}

.opn .ttl-center {
    max-width: 760px;
    margin: 0 auto
}

.opn .ttl-label {
    display: inline-block;
    font-size: 16px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #A74665;
    margin-bottom: 24px;
    font-weight: 500
}

.opn .ttl-h1 {
    font-size: 62px;
    line-height: 1.2;
    letter-spacing: -.03em;
    color: #1a0d12;
    margin-bottom: 24px;
    font-weight: 700
}

.opn .ttl-desc {
    font-size: 18px;
    line-height: 1.55;
    color: #4a3540;
    max-width: 560px;
    margin: 0 auto 40px
}

.opn .ttl-img-row {
    display: flex;
    flex-direction: row;
    gap: 16px;
    align-items: flex-end;
    justify-content: center;
    margin-top: 40px
}

.opn .ttl-img-frame {
    border-radius: 4px;
    overflow: hidden;
    border: 1px solid #a7466526;
    box-shadow: 0 1px 6px 1px #a746650f;
    flex-shrink: 0
}

.opn .ttl-img-frame img {
    display: block;
    object-fit: cover;
    filter: saturate(0.85);
    transition: filter .22s ease-out
}

.opn .ttl-img-frame:hover img {
    filter: saturate(1)
}

.opn .ttl-img-main {
    width: 340px;
    height: 260px
}

.opn .ttl-img-main img {
    width: 340px;
    height: 260px;
    object-position: center
}

.opn .ttl-img-side {
    width: 200px;
    height: 200px
}

.opn .ttl-img-side img {
    width: 200px;
    height: 200px;
    object-position: center
}

.opn .ttl-img-blur {
    filter: blur(2px) saturate(0.7);
    transform: scale(1.04);
    transition: filter .28s ease-out, transform .28s ease-out
}

.opn .ttl-img-frame:hover .ttl-img-blur {
    filter: blur(0) saturate(1);
    transform: scale(1)
}

.opn .wave-divider {
    display: block;
    width: 100%;
    height: 48px;
    overflow: hidden
}

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

.opn .diff-block {
    padding: 80px 40px;
    background: #EDE4E4;
    position: relative
}

.opn .diff-abbr {
    position: absolute;
    top: 40px;
    right: 40px;
    font-size: 72px;
    line-height: 1.2;
    font-weight: 800;
    color: #a7466512;
    letter-spacing: -.04em;
    pointer-events: none;
    user-select: none
}

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

.opn .diff-text-col {
    display: flex;
    flex-direction: column;
    gap: 24px
}

.opn .diff-eyebrow {
    font-size: 16px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #A74665;
    font-weight: 500
}

.opn .diff-h2 {
    font-size: 44px;
    line-height: 1.2;
    letter-spacing: -.025em;
    color: #1a0d12;
    font-weight: 700
}

.opn .diff-body {
    font-size: 18px;
    line-height: 1.55;
    color: #3d2530
}

.opn .diff-cards {
    display: flex;
    flex-direction: column;
    gap: 16px
}

.opn .diff-card {
    background: #fff;
    border-radius: 4px;
    padding: 24px;
    box-shadow: 0 1px 6px 1px #a746650f;
    transition: box-shadow .18s ease-out, backdrop-filter .18s ease-out;
    position: relative
}

.opn .diff-card:hover {
    box-shadow: 0 7px 20px 1px #a746651a;
    backdrop-filter: blur(4px)
}

.opn .diff-card-num {
    font-size: 32px;
    font-weight: 700;
    color: #A74665;
    line-height: 1.2;
    margin-bottom: 8px
}

.opn .diff-card-title {
    font-size: 16px;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: #1a0d12;
    font-weight: 600;
    margin-bottom: 8px
}

.opn .diff-card-text {
    font-size: 16px;
    line-height: 1.55;
    color: #4a3540
}

.opn .diff-badge {
    position: absolute;
    top: 16px;
    right: 16px;
    background: #A74665;
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    border-radius: 36px;
    padding: 4px 8px;
    line-height: 1.2;
    min-width: 28px;
    text-align: center
}

.opn .wave-divider-2 {
    display: block;
    width: 100%;
    height: 48px;
    overflow: hidden
}

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

.opn .scale-block {
    padding: 80px 40px;
    background: #fff;
    position: relative
}

.opn .scale-inner {
    max-width: 1100px;
    margin: 0 auto
}

.opn .scale-top {
    display: flex;
    flex-direction: row;
    gap: 40px;
    align-items: flex-start;
    margin-bottom: 40px
}

.opn .scale-text {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 16px
}

.opn .scale-eyebrow {
    font-size: 16px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #A74665;
    font-weight: 500
}

.opn .scale-h2 {
    font-size: 44px;
    line-height: 1.2;
    letter-spacing: -.025em;
    color: #1a0d12;
    font-weight: 700
}

.opn .scale-body {
    font-size: 18px;
    line-height: 1.55;
    color: #3d2530
}

.opn .scale-img-wrap {
    width: 320px;
    flex-shrink: 0;
    border-radius: 4px;
    overflow: hidden;
    border: 1px solid #a746651f;
    box-shadow: 0 1px 6px 1px #a746650f
}

.opn .scale-img-wrap img {
    display: block;
    width: 320px;
    height: 220px;
    object-fit: cover;
    object-position: center;
    filter: saturate(0.8);
    transition: filter .25s ease-out
}

.opn .scale-img-wrap:hover img {
    filter: saturate(1)
}

.opn .scale-metrics {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px
}

.opn .scale-metric {
    border-radius: 4px;
    padding: 24px;
    text-align: center;
    position: relative;
    box-shadow: 0 1px 6px 1px #a746650f;
    transition: box-shadow .14s ease-out
}

.opn .scale-metric:hover {
    box-shadow: 0 7px 20px 1px #a746651a
}

.opn .scale-metric.m1 {
    background: #A74665
}

.opn .scale-metric.m2 {
    background: #C99CA3
}

.opn .scale-metric.m3 {
    background: #EDE4E4
}

.opn .scale-metric.m4 {
    background: #f5eded
}

.opn .scale-metric.m1 .metric-val,
.opn .scale-metric.m2 .metric-val {
    color: #fff
}

.opn .scale-metric.m3 .metric-val,
.opn .scale-metric.m4 .metric-val {
    color: #A74665
}

.opn .scale-metric.m1 .metric-label,
.opn .scale-metric.m2 .metric-label {
    color: #ffffffd9
}

.opn .scale-metric.m3 .metric-label,
.opn .scale-metric.m4 .metric-label {
    color: #3d2530
}

.opn .metric-val {
    font-size: 44px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -.03em;
    display: block;
    margin-bottom: 8px
}

.opn .metric-label {
    font-size: 16px;
    line-height: 1.55;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-weight: 500
}

.opn .metric-badge {
    position: absolute;
    top: -8px;
    right: -8px;
    background: #1a0d12;
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    border-radius: 36px;
    padding: 4px 8px;
    line-height: 1.2
}

.opn .wave-divider-3 {
    display: block;
    width: 100%;
    height: 48px;
    overflow: hidden
}

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

.opn .value-block {
    padding: 80px 40px;
    background: #f5eded;
    position: relative
}

.opn .value-abbr {
    position: absolute;
    bottom: 40px;
    left: 40px;
    font-size: 72px;
    line-height: 1.2;
    font-weight: 800;
    color: #a746650f;
    letter-spacing: -.04em;
    pointer-events: none;
    user-select: none
}

.opn .value-inner {
    max-width: 1100px;
    margin: 0 auto
}

.opn .value-top {
    text-align: center;
    margin-bottom: 40px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    align-items: center
}

.opn .value-eyebrow {
    font-size: 16px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #A74665;
    font-weight: 500
}

.opn .value-h2 {
    font-size: 44px;
    line-height: 1.2;
    letter-spacing: -.025em;
    color: #1a0d12;
    font-weight: 700;
    max-width: 640px
}

.opn .value-intro {
    font-size: 18px;
    line-height: 1.55;
    color: #3d2530;
    max-width: 560px
}

.opn .value-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin-bottom: 40px
}

.opn .val-card {
    background: #fff;
    border-radius: 4px;
    padding: 24px;
    box-shadow: 0 1px 6px 1px #a746650f;
    transition: box-shadow .2s ease-out;
    display: flex;
    flex-direction: column;
    gap: 8px;
    position: relative
}

.opn .val-card:hover {
    box-shadow: 0 8px 44px 1px #a7466521
}

.opn .val-card-accent {
    width: 32px;
    height: 4px;
    border-radius: 4px;
    margin-bottom: 8px
}

.opn .val-card.vc1 .val-card-accent {
    background: #A74665
}

.opn .val-card.vc2 .val-card-accent {
    background: #C99CA3
}

.opn .val-card.vc3 .val-card-accent {
    background: #d4a8b0
}

.opn .val-card-title {
    font-size: 18px;
    font-weight: 600;
    color: #1a0d12;
    text-transform: uppercase;
    letter-spacing: .07em;
    line-height: 1.2
}

.opn .val-card-text {
    font-size: 16px;
    line-height: 1.55;
    color: #4a3540
}

.opn .value-portrait-row {
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 40px;
    align-items: center;
    background: #fff;
    border-radius: 4px;
    box-shadow: 0 1px 6px 1px #a746650f;
    overflow: hidden
}

.opn .value-portrait-frame {
    width: 260px;
    height: 346px;
    flex-shrink: 0;
    overflow: hidden
}

.opn .value-portrait-frame img {
    display: block;
    width: 260px;
    height: 346px;
    object-fit: cover;
    object-position: center;
    filter: saturate(0.8);
    transition: filter .22s ease-out
}

.opn .value-portrait-frame:hover img {
    filter: saturate(1)
}

.opn .value-quote-col {
    padding: 24px 40px 24px 0;
    display: flex;
    flex-direction: column;
    gap: 16px
}

.opn .value-quote-text {
    font-size: 18px;
    line-height: 1.8;
    color: #3d2530
}

.opn .value-quote-name {
    font-size: 16px;
    font-weight: 600;
    color: #A74665;
    text-transform: uppercase;
    letter-spacing: .08em
}

.opn .value-quote-role {
    font-size: 16px;
    color: #4a3540
}

.opn .flip-in {
    animation: flip-reveal .45s ease-out both
}

@keyframes flip-reveal {
    from {
        transform: rotateX(18deg) translateY(12px);
        opacity: 0
    }

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

.opn .ttl-block .flip-in {
    animation-delay: .05s
}

.opn .diff-block .flip-in {
    animation-delay: .1s
}

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

    .opn .diff-h2,
    .opn .scale-h2,
    .opn .value-h2 {
        font-size: 32px
    }

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

    .opn .ttl-img-main {
        width: 260px;
        height: 200px
    }

    .opn .ttl-img-main img {
        width: 260px;
        height: 200px
    }

    .opn .ttl-img-side {
        width: 160px;
        height: 160px
    }

    .opn .ttl-img-side img {
        width: 160px;
        height: 160px
    }
}

@media (max-width: 768px) {
    .opn .ttl-block {
        padding: 40px 16px
    }

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

    .opn .ttl-img-row {
        flex-direction: column;
        align-items: center
    }

    .opn .ttl-img-side {
        display: none
    }

    .opn .ttl-img-main {
        width: 100%;
        height: 200px
    }

    .opn .ttl-img-main img {
        width: 100%;
        height: 200px
    }

    .opn .diff-block {
        padding: 40px 16px
    }

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

    .opn .diff-h2 {
        font-size: 32px
    }

    .opn .diff-abbr {
        display: none
    }

    .opn .scale-block {
        padding: 40px 16px
    }

    .opn .scale-top {
        flex-direction: column
    }

    .opn .scale-img-wrap {
        width: 100%
    }

    .opn .scale-img-wrap img {
        width: 100%;
        height: 180px
    }

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

    .opn .scale-h2 {
        font-size: 32px
    }

    .opn .value-block {
        padding: 40px 16px
    }

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

    .opn .value-h2 {
        font-size: 32px
    }

    .opn .value-portrait-row {
        grid-template-columns: 1fr
    }

    .opn .value-portrait-frame {
        width: 100%;
        height: 220px
    }

    .opn .value-portrait-frame img {
        width: 100%;
        height: 220px
    }

    .opn .value-quote-col {
        padding: 16px
    }

    .opn .value-abbr {
        display: none
    }
}

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

.abt-us .reveal-grow {
    animation: growHeight .5s ease-out both
}

@keyframes growHeight {
    from {
        max-height: 0;
        opacity: 0
    }

    to {
        max-height: 1200px;
        opacity: 1
    }
}

.abt-us .band-top {
    background: #fff;
    padding: 80px 80px 40px;
    position: relative
}

.abt-us .band-top::after {
    background: #fff;
    bottom: -32px;
    content: "";
    height: 64px;
    left: 0;
    position: absolute;
    right: 0;
    border-radius: 0 0 50% 50% / 0 0 64px 64px;
    z-index: 1
}

.abt-us .strip {
    align-items: center;
    display: flex;
    flex-direction: row;
    gap: 40px;
    max-width: 1200px;
    margin: 0 auto
}

.abt-us .strip-text {
    flex: 1 1 0
}

.abt-us .problem-label {
    color: #A74665;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: .08em;
    margin-bottom: 8px;
    text-transform: uppercase
}

.abt-us .strip-h1 {
    font-size: 62px;
    font-weight: 800;
    letter-spacing: -.03em;
    line-height: 1.2;
    margin: 0 0 16px;
    color: #1b1228
}

.abt-us .strip-h1 .struck {
    color: #b0a0a8;
    text-decoration: line-through;
    text-decoration-color: #A74665
}

.abt-us .strip-h1 .fix {
    color: #A74665
}

.abt-us .strip-sub {
    color: #3d2e38;
    font-size: 18px;
    line-height: 1.55;
    margin: 0 0 24px;
    max-width: 480px
}

.abt-us .strip-img-wrap {
    flex: 0 0 340px;
    position: relative
}

.abt-us .strip-img {
    border: 2px solid #EDE4E4;
    border-radius: 4px;
    display: block;
    filter: grayscale(100%) contrast(1.15);
    height: 280px;
    object-fit: cover;
    object-position: center;
    transition: filter .18s ease-out;
    width: 340px
}

.abt-us .strip-img-wrap:hover .strip-img {
    filter: grayscale(0%) contrast(1)
}

.abt-us .motif-row {
    display: flex;
    flex-direction: row;
    gap: 8px;
    margin-bottom: 16px
}

.abt-us .motif-dot {
    background: #EDE4E4;
    border-radius: 50%;
    height: 8px;
    width: 8px
}

.abt-us .motif-dot.active {
    background: #A74665
}

.abt-us .motif-row-img {
    bottom: -16px;
    display: flex;
    flex-direction: row;
    gap: 8px;
    position: absolute;
    right: -16px
}

.abt-us .motif-sq {
    background: #C99CA3;
    border-radius: 4px;
    height: 10px;
    opacity: .4;
    width: 10px
}

.abt-us .motif-sq.alt {
    background: #A74665;
    opacity: .25
}

.abt-us .solution-row {
    align-items: flex-start;
    background: conic-gradient(from 107deg, #A74665 0%, #C99CA3 60%, #EDE4E4 100%);
    border-radius: 36px;
    display: flex;
    flex-direction: row;
    gap: 40px;
    margin: 0 auto 40px;
    max-width: 1200px;
    padding: 40px;
    position: relative;
    z-index: 2
}

.abt-us .sol-stat {
    align-items: flex-start;
    display: flex;
    flex-direction: column;
    flex: 1 1 0;
    gap: 8px
}

.abt-us .sol-num {
    color: #fff;
    font-size: 44px;
    font-weight: 800;
    letter-spacing: -.04em;
    line-height: 1.2
}

.abt-us .sol-desc {
    color: #ffffffe0;
    font-size: 16px;
    line-height: 1.55
}

.abt-us .sol-divider {
    background: #ffffff4d;
    border-radius: 4px;
    flex: 0 0 1px;
    align-self: stretch
}

.abt-us .team-section {
    background: #EDE4E4;
    padding: 80px;
    position: relative
}

.abt-us .team-section::before {
    background: #EDE4E4;
    content: "";
    height: 64px;
    left: 0;
    position: absolute;
    right: 0;
    top: -32px;
    border-radius: 50% 50% 0 0 / 64px 64px 0 0
}

.abt-us .team-inner {
    max-width: 1200px;
    margin: 0 auto
}

.abt-us .team-label {
    color: #A74665;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: .08em;
    margin-bottom: 8px;
    text-align: center;
    text-transform: uppercase
}

.abt-us .team-h2 {
    color: #1b1228;
    font-size: 44px;
    font-weight: 800;
    letter-spacing: -.03em;
    line-height: 1.2;
    margin: 0 0 16px;
    text-align: center
}

.abt-us .team-intro {
    color: #3d2e38;
    font-size: 18px;
    line-height: 1.55;
    margin: 0 auto 40px;
    max-width: 600px;
    text-align: center
}

.abt-us .three-col {
    align-items: stretch;
    display: flex;
    flex-direction: row;
    gap: 24px
}

.abt-us .col-side {
    flex: 1 1 0
}

.abt-us .col-center {
    flex: 1 1 0;
    margin-top: -24px;
    margin-bottom: -24px
}

.abt-us .person-card {
    background: #fff;
    border-radius: 36px;
    box-shadow: 0 7px 20px 1px #a746651a;
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
    transition: box-shadow .22s ease-out
}

.abt-us .person-card:hover {
    box-shadow: 0 8px 44px 1px #a7466521 inset 0 0 16px 2px #a7466512
}

.abt-us .portrait-wrap {
    aspect-ratio: 3/4;
    overflow: hidden;
    width: 100%
}

.abt-us .portrait-img {
    border-bottom: 2px solid #EDE4E4;
    display: block;
    filter: saturate(0.7);
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: filter .28s ease-out;
    width: 100%
}

.abt-us .person-card:hover .portrait-img {
    filter: saturate(1)
}

.abt-us .person-info {
    padding: 24px
}

.abt-us .person-name {
    color: #1b1228;
    font-size: 18px;
    font-weight: 700;
    letter-spacing: .04em;
    line-height: 1.2;
    margin: 0 0 4px;
    text-transform: uppercase
}

.abt-us .person-role {
    color: #A74665;
    font-size: 16px;
    font-weight: 500;
    margin: 0 0 8px
}

.abt-us .person-bio {
    color: #3d2e38;
    font-size: 16px;
    line-height: 1.55;
    margin: 0
}

.abt-us .approach-card {
    background: #fff;
    border-radius: 4px;
    box-shadow: 0 1px 6px 1px #a746650f;
    display: flex;
    flex-direction: column;
    gap: 8px;
    height: 100%;
    padding: 24px;
    transition: box-shadow .15s ease-out
}

.abt-us .approach-card:hover {
    box-shadow: 0 7px 20px 1px #a746651a inset 0 0 12px 1px #a746650f
}

.abt-us .approach-icon {
    background: #EDE4E4;
    border-radius: 4px;
    height: 40px;
    margin-bottom: 8px;
    overflow: hidden;
    position: relative;
    width: 40px
}

.abt-us .approach-icon::before {
    background: #A74665;
    border-radius: 50%;
    content: "";
    height: 24px;
    left: 8px;
    position: absolute;
    top: 8px;
    width: 24px
}

.abt-us .approach-icon::after {
    background: #C99CA3;
    border-radius: 50%;
    content: "";
    height: 14px;
    position: absolute;
    right: 4px;
    top: 4px;
    width: 14px
}

.abt-us .approach-h5 {
    color: #1b1228;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: .05em;
    line-height: 1.2;
    margin: 0;
    text-transform: uppercase
}

.abt-us .approach-p {
    color: #3d2e38;
    font-size: 16px;
    line-height: 1.55;
    margin: 0
}

.abt-us .no-portrait-card {
    background: #fff;
    border-radius: 36px;
    box-shadow: 0 7px 20px 1px #a746651a;
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 24px;
    transition: box-shadow .22s ease-out
}

.abt-us .no-portrait-card:hover {
    box-shadow: 0 8px 44px 1px #a7466521 inset 0 0 16px 2px #a7466512
}

.abt-us .np-avatar {
    background: conic-gradient(from 107deg, #A74665 0%, #C99CA3 100%);
    border-radius: 50%;
    flex-shrink: 0;
    height: 56px;
    width: 56px
}

.abt-us .np-name {
    color: #1b1228;
    font-size: 18px;
    font-weight: 700;
    letter-spacing: .04em;
    line-height: 1.2;
    margin: 0;
    text-transform: uppercase
}

.abt-us .np-role {
    color: #A74665;
    font-size: 16px;
    margin: 0
}

.abt-us .np-bio {
    color: #3d2e38;
    font-size: 16px;
    line-height: 1.55;
    margin: 0
}

.abt-us .bottom-imgs {
    display: flex;
    flex-direction: row;
    gap: 24px;
    margin-top: 40px
}

.abt-us .img-frame {
    border: 2px solid #C99CA3;
    border-radius: 4px;
    flex: 1 1 0;
    overflow: hidden
}

.abt-us .img-frame img {
    display: block;
    filter: saturate(0.75);
    height: 220px;
    object-fit: cover;
    object-position: center;
    transition: filter .2s ease-out;
    width: 100%
}

.abt-us .img-frame:hover img {
    filter: saturate(1)
}

.abt-us .img-frame.wide {
    flex: 2 1 0
}

@media (max-width: 768px) {
    .abt-us .band-top {
        padding: 40px 16px 24px
    }

    .abt-us .strip {
        flex-direction: column;
        gap: 24px
    }

    .abt-us .strip-h1 {
        font-size: 32px
    }

    .abt-us .strip-img-wrap {
        flex: 0 0 auto;
        width: 100%
    }

    .abt-us .strip-img {
        height: 200px;
        width: 100%
    }

    .abt-us .solution-row {
        flex-direction: column;
        gap: 24px;
        margin: 0 16px 24px;
        padding: 24px
    }

    .abt-us .sol-divider {
        align-self: auto;
        flex: 0 0 1px;
        height: 1px;
        width: 100%
    }

    .abt-us .team-section {
        padding: 40px 16px
    }

    .abt-us .team-h2 {
        font-size: 32px
    }

    .abt-us .three-col {
        flex-direction: column
    }

    .abt-us .col-center {
        margin: 0
    }

    .abt-us .bottom-imgs {
        flex-direction: column
    }

    .abt-us .img-frame.wide {
        flex: 1 1 auto
    }
}

@media (min-width: 769px) and (max-width: 1280px) {
    .abt-us .band-top {
        padding: 40px 40px 24px
    }

    .abt-us .strip-h1 {
        font-size: 44px
    }

    .abt-us .strip-img-wrap {
        flex: 0 0 260px
    }

    .abt-us .strip-img {
        width: 260px;
        height: 220px
    }

    .abt-us .team-section {
        padding: 80px 40px
    }
}

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

.cont-us .reach-band {
    background: #EDE4E4;
    padding: 80px 40px;
    position: relative
}

.cont-us .reach-band::after {
    background: linear-gradient(to bottom, #a7466512, transparent);
    content: "";
    display: block;
    height: 120px;
    left: 0;
    pointer-events: none;
    position: absolute;
    top: 0;
    width: 100%
}

.cont-us .reach-layout {
    align-items: flex-start;
    display: flex;
    flex-direction: row;
    gap: 80px;
    margin: 0 auto;
    max-width: 1100px
}

.cont-us .reach-left {
    flex: 0 0 420px;
    position: relative
}

.cont-us .reach-img-wrap {
    border: 1px solid #a746652e;
    border-radius: 4px;
    overflow: hidden;
    position: relative;
    width: 100%
}

.cont-us .reach-img-wrap img {
    display: block;
    height: 520px;
    object-fit: cover;
    width: 100%
}

.cont-us .reach-geo {
    background: #fff;
    border-radius: 4px;
    bottom: -24px;
    box-shadow: 0 7px 20px 1px #a746651a;
    left: -24px;
    padding: 24px;
    position: absolute;
    width: 260px
}

.cont-us .geo-label {
    color: #A74665;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: .08em;
    margin-bottom: 8px;
    text-transform: uppercase
}

.cont-us .geo-addr {
    color: #3a2530;
    font-size: 16px;
    line-height: 1.55;
    margin: 0
}

.cont-us .reach-right {
    flex: 1;
    padding-top: 16px
}

.cont-us .reach-eyebrow {
    color: #A74665;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: .12em;
    margin-bottom: 16px;
    text-transform: uppercase
}

.cont-us .reach-h1 {
    color: #2a1820;
    font-size: 62px;
    font-weight: 800;
    letter-spacing: -.03em;
    line-height: 1.2;
    margin-bottom: 24px
}

.cont-us .reach-h1 .strike-word {
    color: #aaa;
    text-decoration: line-through
}

.cont-us .reach-h1 .accent-word {
    color: #A74665
}

.cont-us .reach-desc {
    color: #4a3540;
    font-size: 18px;
    line-height: 1.55;
    margin-bottom: 40px;
    max-width: 460px
}

.cont-us .reach-contacts {
    display: flex;
    flex-direction: column;
    gap: 16px
}

.cont-us .reach-contact-item {
    align-items: center;
    display: flex;
    flex-direction: row;
    gap: 16px
}

.cont-us .contact-icon {
    align-items: center;
    border-radius: 4px;
    border: 1.5px solid #A74665;
    display: flex;
    flex-direction: row;
    flex-shrink: 0;
    height: 44px;
    justify-content: center;
    position: relative;
    width: 44px
}

.cont-us .contact-icon svg {
    display: block
}

.cont-us .contact-icon .icon-outline {
    left: 0;
    position: absolute;
    top: 0
}

.cont-us .contact-icon .icon-outline rect {
    animation: trace-border 2.4s ease-out .5s forwards;
    stroke-dasharray: 168;
    stroke-dashoffset: 168
}

@keyframes trace-border {
    to {
        stroke-dashoffset: 0
    }
}

.cont-us .contact-detail {
    display: flex;
    flex-direction: column;
    gap: 4px
}

.cont-us .contact-type {
    color: #9a7a82;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase
}

.cont-us .contact-val {
    color: #2a1820;
    font-size: 18px;
    line-height: 1.2;
    text-decoration: none;
    transition: color .12s ease-out
}

.cont-us .contact-val:hover {
    color: #A74665
}

.cont-us .geo-shapes {
    pointer-events: none;
    position: absolute;
    right: 0;
    top: 0;
    z-index: 0
}

.cont-us .shape-circle {
    border-radius: 36px;
    border: 1.5px solid #a746651f;
    height: 180px;
    position: absolute;
    right: -40px;
    top: -40px;
    width: 180px
}

.cont-us .shape-sq {
    border-radius: 4px;
    border: 1px solid #c99ca32e;
    height: 80px;
    position: absolute;
    right: 60px;
    top: 20px;
    width: 80px
}

.cont-us .form-band {
    background: #fff;
    padding: 80px 40px;
    position: relative
}

.cont-us .form-band::before {
    background: conic-gradient(from 107deg, #a746650d, #c99ca314, transparent 60%);
    content: "";
    display: block;
    height: 100%;
    left: 0;
    pointer-events: none;
    position: absolute;
    top: 0;
    width: 100%
}

.cont-us .form-inner {
    margin: 0 auto;
    max-width: 780px;
    position: relative;
    z-index: 1
}

.cont-us .form-kicker {
    color: #C99CA3;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: .1em;
    margin-bottom: 8px;
    text-align: center;
    text-transform: uppercase
}

.cont-us .form-h2 {
    color: #2a1820;
    font-size: 44px;
    font-weight: 800;
    letter-spacing: -.02em;
    line-height: 1.2;
    margin-bottom: 8px;
    text-align: center
}

.cont-us .form-sub {
    color: #5a4048;
    font-size: 18px;
    line-height: 1.55;
    margin-bottom: 40px;
    text-align: center
}

.cont-us .form-dashed {
    border: 1.5px dashed #a7466538;
    border-radius: 4px;
    padding: 40px
}

.cont-us .edit-form {
    display: flex;
    flex-direction: column;
    gap: 24px
}

.cont-us .field-row {
    display: flex;
    flex-direction: row;
    gap: 24px
}

.cont-us .field-group {
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: 8px
}

.cont-us .field-group.full {
    flex: 1 1 100%
}

.cont-us .field-label {
    color: #3a2530;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: .04em
}

.cont-us .field-input {
    background: #fff;
    border-radius: 4px;
    border: 1.5px solid #C99CA3;
    color: #2a1820;
    font-size: 16px;
    line-height: 1.55;
    padding: 16px 16px 16px 44px;
    transition: border-color .18s ease-out, box-shadow .18s ease-out;
    width: 100%
}

.cont-us .field-input:focus {
    border-color: #A74665;
    box-shadow: 0 1px 6px 1px #a746650f;
    outline: none
}

.cont-us .field-wrap {
    position: relative
}

.cont-us .field-wrap svg {
    left: 14px;
    pointer-events: none;
    position: absolute;
    top: 50%;
    transform: translateY(-50%)
}

.cont-us .field-input::placeholder {
    color: #b09098
}

.cont-us .checks-group {
    display: flex;
    flex-direction: column;
    gap: 8px
}

.cont-us .checks-label-head {
    color: #3a2530;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: .04em;
    margin-bottom: 8px
}

.cont-us .checks-grid {
    display: grid;
    gap: 8px;
    grid-template-columns: 1fr 1fr
}

.cont-us .check-item {
    align-items: center;
    cursor: pointer;
    display: flex;
    flex-direction: row;
    gap: 8px
}

.cont-us .check-item input[type="checkbox"] {
    accent-color: #A74665;
    cursor: pointer;
    height: 18px;
    width: 18px
}

.cont-us .check-text {
    color: #4a3540;
    font-size: 16px;
    line-height: 1.55
}

.cont-us .privacy-row {
    align-items: flex-start;
    display: flex;
    flex-direction: row;
    gap: 8px
}

.cont-us .privacy-row input[type="checkbox"] {
    accent-color: #A74665;
    cursor: pointer;
    flex-shrink: 0;
    height: 18px;
    margin-top: 4px;
    width: 18px
}

.cont-us .privacy-text {
    color: #5a4048;
    font-size: 16px;
    line-height: 1.55
}

.cont-us .privacy-text a {
    color: #A74665;
    text-decoration: underline;
    transition: color .1s linear
}

.cont-us .privacy-text a:hover {
    color: #7a2f4a
}

.cont-us .submit-btn {
    align-self: flex-start;
    background: #A74665;
    border-radius: 4px;
    border: none;
    box-shadow: 0 8px 44px 1px #a7466521;
    color: #fff;
    cursor: pointer;
    font-size: 18px;
    font-weight: 700;
    letter-spacing: .04em;
    padding: 16px 40px;
    transition: transform .14s ease-out, background .14s ease-out;
    type: submit
}

.cont-us .submit-btn:hover {
    background: #8f3856;
    transform: scale(1.04)
}

.cont-us .submit-btn:focus {
    background: #8f3856;
    outline: 2px solid #A74665;
    outline-offset: 3px
}

.cont-us .submit-btn:active {
    transform: scale(0.98)
}

.cont-us .divider-shape {
    align-items: center;
    display: flex;
    flex-direction: row;
    justify-content: center;
    padding: 0
}

.cont-us .divider-line {
    background: #a7466526;
    flex: 1;
    height: 1px
}

.cont-us .divider-diamond {
    background: #A74665;
    flex-shrink: 0;
    height: 8px;
    margin: 0 16px;
    transform: rotate(45deg);
    width: 8px
}

.cont-us .status-band {
    background: #2a1820;
    padding: 80px 40px;
    position: relative
}

.cont-us .status-band::before {
    background: linear-gradient(to bottom, #a746652e, transparent 50%);
    content: "";
    display: block;
    height: 100%;
    left: 0;
    pointer-events: none;
    position: absolute;
    top: 0;
    width: 100%
}

.cont-us .status-inner {
    display: flex;
    flex-direction: row;
    gap: 80px;
    margin: 0 auto;
    max-width: 1100px;
    position: relative;
    z-index: 1
}

.cont-us .status-left {
    flex: 1
}

.cont-us .status-eyebrow {
    color: #C99CA3;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: .12em;
    margin-bottom: 16px;
    text-transform: uppercase
}

.cont-us .status-h2 {
    color: #fff;
    font-size: 44px;
    font-weight: 800;
    letter-spacing: -.02em;
    line-height: 1.2;
    margin-bottom: 24px
}

.cont-us .status-body {
    color: #d4bfc4;
    font-size: 18px;
    line-height: 1.55;
    margin-bottom: 40px;
    max-width: 420px
}

.cont-us .status-metrics {
    display: flex;
    flex-direction: column;
    gap: 24px
}

.cont-us .metric-item {
    display: flex;
    flex-direction: column;
    gap: 8px
}

.cont-us .metric-label {
    color: #C99CA3;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase
}

.cont-us .metric-bar-wrap {
    background: #ffffff14;
    border-radius: 4px;
    height: 8px;
    overflow: hidden;
    position: relative;
    width: 100%
}

.cont-us .metric-bar {
    animation: bar-grow 1.1s ease-out forwards;
    background: linear-gradient(107deg, #A74665, #C99CA3);
    border-radius: 4px;
    height: 100%;
    transform-origin: left center;
    width: 0
}

.cont-us .metric-bar.w72 {
    animation-delay: .1s
}

.cont-us .metric-bar.w88 {
    animation-delay: .3s
}

.cont-us .metric-bar.w60 {
    animation-delay: .5s
}

@keyframes bar-grow {
    from {
        width: 0
    }
}

.cont-us .metric-bar.w72 {
    animation-name: grow72
}

.cont-us .metric-bar.w88 {
    animation-name: grow88
}

.cont-us .metric-bar.w60 {
    animation-name: grow60
}

@keyframes grow72 {
    from {
        width: 0
    }

    to {
        width: 72%
    }
}

@keyframes grow88 {
    from {
        width: 0
    }

    to {
        width: 88%
    }
}

@keyframes grow60 {
    from {
        width: 0
    }

    to {
        width: 60%
    }
}

.cont-us .metric-note {
    color: #9a7a82;
    font-size: 16px;
    line-height: 1.2
}

.cont-us .status-right {
    display: flex;
    flex: 0 0 380px;
    flex-direction: column;
    gap: 24px;
    justify-content: center
}

.cont-us .status-card {
    background: #ffffff0d;
    border-radius: 4px;
    border: 1px solid #c99ca32e;
    box-shadow: 0 1px 6px 1px #a746650f;
    padding: 24px
}

.cont-us .scard-num {
    color: #A74665;
    font-size: 44px;
    font-weight: 800;
    letter-spacing: -.02em;
    line-height: 1.2;
    margin-bottom: 8px
}

.cont-us .scard-desc {
    color: #d4bfc4;
    font-size: 16px;
    line-height: 1.55;
    margin: 0
}

.cont-us .load-seq .seq-item {
    animation: fade-up .5s ease-out both;
    opacity: 0
}

.cont-us .load-seq .seq-item:nth-child(1) {
    animation-delay: .08s
}

.cont-us .load-seq .seq-item:nth-child(2) {
    animation-delay: .2s
}

.cont-us .load-seq .seq-item:nth-child(3) {
    animation-delay: .34s
}

.cont-us .load-seq .seq-item:nth-child(4) {
    animation-delay: .46s
}

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

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

.cont-us .icon-spin {
    animation: icon-settle .8s ease-out .6s both;
    display: inline-block
}

@keyframes icon-settle {
    0% {
        transform: rotate(-180deg)
    }

    70% {
        transform: rotate(12deg)
    }

    100% {
        transform: rotate(0deg)
    }
}

@media (max-width: 1280px) {
    .cont-us .reach-layout {
        gap: 40px
    }

    .cont-us .reach-left {
        flex: 0 0 340px
    }

    .cont-us .reach-h1 {
        font-size: 44px
    }

    .cont-us .status-inner {
        gap: 40px
    }

    .cont-us .status-right {
        flex: 0 0 300px
    }
}

@media (max-width: 768px) {

    .cont-us .reach-band,
    .cont-us .form-band,
    .cont-us .status-band {
        padding: 40px 16px
    }

    .cont-us .reach-layout {
        flex-direction: column;
        gap: 40px
    }

    .cont-us .reach-left {
        flex: unset;
        width: 100%
    }

    .cont-us .reach-geo {
        bottom: -16px;
        left: 8px;
        width: 200px
    }

    .cont-us .reach-h1 {
        font-size: 32px
    }

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

    .cont-us .checks-grid {
        grid-template-columns: 1fr
    }

    .cont-us .form-h2 {
        font-size: 32px
    }

    .cont-us .status-inner {
        flex-direction: column;
        gap: 40px
    }

    .cont-us .status-right {
        flex: unset;
        width: 100%
    }

    .cont-us .status-h2 {
        font-size: 32px
    }

    .cont-us .form-dashed {
        padding: 24px 16px
    }
}

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

.success-pg .card-wrap {
    background-color: #EDE4E4;
    border-radius: 36px;
    box-shadow: 0 7px 20px 1px #a746651a;
    max-width: 560px;
    padding: 80px 40px;
    text-align: center;
    width: 100%
}

.success-pg .icon-area {
    margin-bottom: 40px
}

.success-pg .check-svg {
    display: block;
    margin: 0 auto
}

.success-pg .msg-title {
    color: #1b1b1b;
    font-size: 32px;
    letter-spacing: -.02em;
    line-height: 1.2;
    margin-bottom: 16px;
    text-transform: uppercase
}

.success-pg .msg-body {
    color: #3a3a3a;
    font-size: 18px;
    line-height: 1.55;
    margin-bottom: 40px
}

.success-pg .msg-body span {
    color: #A74665;
    font-weight: 600
}

.success-pg .back-btn {
    background-color: #A74665;
    border: 2px solid #A74665;
    border-radius: 4px;
    color: #fff;
    cursor: pointer;
    display: inline-block;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: .04em;
    line-height: 1.2;
    padding: 16px 40px;
    text-decoration: none;
    transition: background-color .12s ease-out, transform .18s ease-out, box-shadow .18s ease-out
}

.success-pg .back-btn:hover {
    background-color: #8c3754;
    border-color: #8c3754;
    box-shadow: 0 8px 44px 1px #a7466521;
    transform: scale(1.04)
}

.success-pg .back-btn:focus {
    outline: 3px solid #C99CA3;
    outline-offset: 3px
}

.success-pg .back-btn:active {
    transform: scale(0.98)
}

.success-pg .divider-line {
    background-color: #C99CA3;
    border: none;
    height: 1px;
    margin: 40px 0;
    opacity: .4;
    width: 100%
}

.success-pg .contact-note {
    color: #555;
    font-size: 16px;
    line-height: 1.55
}

.success-pg .contact-note a {
    color: #A74665;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color .1s linear
}

.success-pg .contact-note a:hover {
    color: #8c3754
}

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

    .success-pg .card-wrap {
        padding: 40px 24px
    }

    .success-pg .msg-title {
        font-size: 24px
    }

    .success-pg .msg-body {
        font-size: 16px
    }
}