* {
    box-sizing: border-box;
}

body {
    margin: 0;
}

a:focus-visible,
button:focus-visible {
    outline: 2px solid #BB3F5F;
    outline-offset: 3px;
    box-shadow: 0 0 0 4px rgba(187, 63, 95, 0.18);
}

.page-shell {
    font-family: 'Fira Code', 'Roboto Mono', monospace;
    color: #1a1218;
    background-color: #fff;
    overflow-x: hidden;
}

.hd-root {
    position: relative;
    z-index: 100;
    background: rgba(255, 255, 255, 0.72);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    border-bottom: 1px solid rgba(222, 183, 209, 0.38);
    box-shadow: 2px 3px 3px -1px rgba(187, 63, 95, 0.08);
}

.hd-brand-strip {
    border-bottom: 1px solid rgba(222, 183, 209, 0.22);
    padding: 24px 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 24px;
    max-width: 1100px;
    margin: 0 auto;
}

.hd-logo-mount {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    background: #fff;
    box-shadow: inset 0 2px 6px rgba(187, 63, 95, 0.10), 2px 7px 25px -1px rgba(187, 63, 95, 0.11);
    border: 1px solid rgba(222, 183, 209, 0.55);
    flex-shrink: 0;
}

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

.hd-brand-name {
    font-family: 'Fira Code', monospace;
    font-size: 29px;
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -0.03em;
    color: #BB3F5F;
    text-decoration: none;
}

.hd-contact-strip {
    background: linear-gradient(90deg, rgba(237, 221, 231, 0.38) 0%, rgba(255, 255, 255, 0) 100%);
    padding: 8px 48px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    max-width: 1100px;
    margin: 0 auto;
    gap: 24px;
}

.hd-phone-lnk {
    font-family: 'Roboto Mono', monospace;
    font-size: 14px;
    color: #7a3050;
    text-decoration: none;
    letter-spacing: 0.01em;
    transition: color 0.18s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    align-items: center;
    gap: 8px;
}

.hd-phone-lnk:hover {
    color: #BB3F5F;
}

.hd-phone-icon {
    width: 14px;
    height: 14px;
    fill: #BB3F5F;
    flex-shrink: 0;
}

.hd-email-lnk {
    font-family: 'Roboto Mono', monospace;
    font-size: 14px;
    color: #7a3050;
    text-decoration: none;
    letter-spacing: 0.01em;
    transition: color 0.18s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    align-items: center;
    gap: 8px;
}

.hd-email-lnk:hover {
    color: #BB3F5F;
}

.hd-email-icon {
    width: 14px;
    height: 14px;
    fill: #BB3F5F;
    flex-shrink: 0;
}

.hd-nav-strip {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 48px;
    display: flex;
    align-items: stretch;
    justify-content: center;
    gap: 8px;
}

.hd-nav-strip a {
    font-family: 'Fira Code', monospace;
    font-size: 14px;
    font-weight: 700;
    color: #3d1828;
    text-decoration: none;
    letter-spacing: 0.02em;
    padding: 24px 24px;
    display: block;
    position: relative;
    transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);
    white-space: nowrap;
}

.hd-nav-strip a::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 24px;
    right: 24px;
    height: 2px;
    background: #BB3F5F;
    border-radius: 1px;
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 0.2s cubic-bezier(0.0, 0, 0.2, 1);
}

.hd-nav-strip a:hover {
    color: #BB3F5F;
}

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

.hd-nav-strip a.active {
    color: #BB3F5F;
}

.hd-nav-strip a.active::after {
    transform: scaleX(1);
}

.ft-root {
    font-family: 'Fira Code', 'Roboto Mono', monospace;
    background: #2a0f1c;
    color: #DEB7D1;
    position: relative;
    overflow: hidden;
}

.ft-wave-divider {
    display: block;
    width: 100%;
    overflow: hidden;
    line-height: 0;
    margin-bottom: -1px;
}

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

.ft-body-hold {
    max-width: 1100px;
    margin: 0 auto;
    padding: 48px 48px 24px;
}

.ft-card {
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(222, 183, 209, 0.14);
    border-radius: 14px;
    padding: 48px;
    box-shadow: 2px 9px 48px -1px rgba(187, 63, 95, 0.11);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 24px;
}

.ft-logo-mount {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    background: rgba(255, 255, 255, 0.92);
    box-shadow: inset 0 4px 8px rgba(187, 63, 95, 0.10), 2px 7px 25px -1px rgba(187, 63, 95, 0.11);
    border: 1px solid rgba(222, 183, 209, 0.40);
    flex-shrink: 0;
}

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

.ft-brand-name {
    font-size: 22px;
    font-weight: 700;
    color: #EDDDE7;
    letter-spacing: -0.02em;
    line-height: 1.15;
}

.ft-nav-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px 24px;
}

.ft-nav-list li a {
    font-size: 14px;
    color: #DEB7D1;
    text-decoration: none;
    letter-spacing: 0.01em;
    transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);
    padding: 8px 0;
    display: inline-block;
}

.ft-nav-list li a:hover {
    color: #EDDDE7;
}

.ft-divider-line {
    width: 100%;
    height: 1px;
    background: rgba(222, 183, 209, 0.14);
    border: none;
    margin: 0;
}

.ft-bottom-strip {
    max-width: 1100px;
    margin: 0 auto;
    padding: 24px 48px 48px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.ft-copyright {
    font-size: 14px;
    color: rgba(222, 183, 209, 0.55);
    letter-spacing: 0.01em;
    line-height: 1.7;
    text-align: center;
}

.ft-addr {
    font-size: 14px;
    color: rgba(222, 183, 209, 0.40);
    letter-spacing: 0.01em;
    text-align: center;
    line-height: 1.7;
}

@media screen and (max-width: 768px) {
    .hd-brand-strip {
        padding: 24px;
        flex-direction: column;
        gap: 8px;
    }

    .hd-nav-strip {
        padding: 0 8px;
        flex-wrap: wrap;
        justify-content: center;
    }

    .hd-nav-strip a {
        padding: 24px 8px;
        font-size: 14px;
    }

    .hd-contact-strip {
        padding: 8px 24px;
        justify-content: center;
        flex-wrap: wrap;
        gap: 8px;
    }

    .ft-body-hold {
        padding: 48px 24px 24px;
    }

    .ft-card {
        padding: 24px;
    }

    .ft-bottom-strip {
        padding: 24px 24px 48px;
    }
}

.ck-notice {
    position: fixed;
    top: 24px;
    right: 24px;
    z-index: 1500;
    background: #fff;
    border: 1px solid rgba(222, 183, 209, 0.55);
    border-radius: 14px;
    box-shadow: 2px 9px 48px -1px rgba(187, 63, 95, 0.11);
    padding: 24px;
    max-width: 340px;
    width: calc(100vw - 48px);
    font-family: 'Fira Code', monospace;
}

.ck-notice__text {
    font-size: 14px;
    color: #3d1828;
    line-height: 1.7;
    margin: 0 0 24px;
}

.ck-notice__btns {
    display: flex;
    gap: 24px;
    align-items: center;
    justify-content: flex-end;
}

.ck-notice__btn--accept {
    font-family: 'Fira Code', monospace;
    font-size: 14px;
    font-weight: 700;
    color: #fff;
    background: #BB3F5F;
    border: none;
    border-radius: 8px;
    padding: 8px 24px;
    cursor: pointer;
    min-height: 44px;
    position: relative;
    overflow: hidden;
    transition: background 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.ck-notice__btn--accept:hover {
    background: #a03352;
}

.ck-notice__btn--accept:focus-visible {
    outline: 2px solid #BB3F5F;
    outline-offset: 3px;
    box-shadow: 0 0 0 4px rgba(187, 63, 95, 0.18);
}

.ck-notice__btn--decline {
    font-family: 'Fira Code', monospace;
    font-size: 14px;
    color: #7a3050;
    background: none;
    border: none;
    cursor: pointer;
    text-decoration: underline;
    min-height: 44px;
    padding: 8px 0;
    transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);
}

.ck-notice__btn--decline:hover {
    color: #BB3F5F;
}

.ck-notice__btn--decline:focus-visible {
    outline: 2px solid #BB3F5F;
    outline-offset: 3px;
    box-shadow: 0 0 0 4px rgba(187, 63, 95, 0.18);
}

.bcy-legal-details {
    max-width: 1100px;
    margin: 0 auto;
    padding: 96px 48px;
    color: #2a1f25;
}

.bcy-legal-details h1 {
    font-size: 55px;
    line-height: 1.15;
    letter-spacing: -0.02em;
    color: #BB3F5F;
    margin-bottom: 48px;
    margin-top: 0;
    padding-bottom: 24px;
    border-bottom: 2px solid #EDDDE7;
}

.bcy-legal-details h2 {
    font-size: 40px;
    line-height: 1.15;
    letter-spacing: -0.015em;
    color: #2a1f25;
    margin-top: 96px;
    margin-bottom: 24px;
}

.bcy-legal-details h3 {
    font-size: 29px;
    line-height: 1.15;
    letter-spacing: -0.01em;
    color: #2a1f25;
    margin-top: 48px;
    margin-bottom: 24px;
}

.bcy-legal-details h4 {
    font-size: 22px;
    line-height: 1.15;
    letter-spacing: -0.005em;
    color: #BB3F5F;
    margin-top: 48px;
    margin-bottom: 24px;
}

.bcy-legal-details h5 {
    font-size: 17px;
    line-height: 1.7;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: #2a1f25;
    margin-top: 24px;
    margin-bottom: 8px;
}

.bcy-legal-details h6 {
    font-size: 14px;
    line-height: 1.7;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #9a6a7e;
    margin-top: 24px;
    margin-bottom: 8px;
}

.bcy-legal-details p {
    font-size: 17px;
    line-height: 1.7;
    color: #3d2a33;
    margin-top: 0;
    margin-bottom: 24px;
    max-width: 72ch;
}

.bcy-legal-details strong,
.bcy-legal-details b {
    font-weight: 700;
    color: #2a1f25;
}

.bcy-legal-details em,
.bcy-legal-details i {
    font-style: italic;
    color: #6b3a50;
}

.bcy-legal-details a {
    color: #BB3F5F;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    transition: color 0.18s cubic-bezier(0.4, 0, 0.2, 1), text-decoration-color 0.18s cubic-bezier(0.4, 0, 0.2, 1);
}

.bcy-legal-details a:hover {
    color: #8f2d47;
    text-decoration-color: #DEB7D1;
}

.bcy-legal-details hr {
    border: none;
    border-top: 1px solid #EDDDE7;
    margin-top: 48px;
    margin-bottom: 48px;
    height: 0;
}

.bcy-legal-details div {
    margin-bottom: 24px;
}

@media screen and (max-width: 60em) {
    .bcy-legal-details {
        padding: 48px 24px;
    }

    .bcy-legal-details h1 {
        font-size: 40px;
    }

    .bcy-legal-details h2 {
        font-size: 29px;
        margin-top: 48px;
    }

    .bcy-legal-details h3 {
        font-size: 22px;
    }

    .bcy-legal-details h4 {
        font-size: 17px;
    }
}

@media screen and (max-width: 30em) {
    .bcy-legal-details {
        padding: 48px 24px;
    }

    .bcy-legal-details h1 {
        font-size: 29px;
    }

    .bcy-legal-details h2 {
        font-size: 22px;
    }

    .bcy-legal-details h3 {
        font-size: 17px;
    }

    .bcy-legal-details p {
        font-size: 14px;
    }
}

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

.ptnr .pg-wrap {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 48px;
}

.ptnr .ttl-blk {
    background: linear-gradient(180deg, #BB3F5F 0%, #BB3F5F 48%, rgba(187, 63, 95, 0) 100%);
    padding: 96px 48px 48px;
    position: relative;
}

.ptnr .ttl-blk__inner {
    max-width: 1100px;
    margin: 0 auto;
    position: relative;
}

.ptnr .ttl-frame {
    position: absolute;
    top: -24px;
    left: -24px;
    right: -24px;
    bottom: -24px;
    pointer-events: none;
}

.ptnr .ttl-frame::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 4px;
}

.ptnr .ttl-frame::after {
    content: '';
    position: absolute;
    top: 8px;
    left: 8px;
    right: 8px;
    bottom: 8px;
    border: 1px solid rgba(255, 255, 255, 0.11);
    border-radius: 4px;
}

.ptnr .eyebrow {
    font-size: 14px;
    letter-spacing: 0.12em;
    color: rgba(255, 255, 255, 0.72);
    text-transform: uppercase;
    margin-bottom: 24px;
    display: block;
}

.ptnr .ttl-h1 {
    font-size: 55px;
    line-height: 1.15;
    color: #fff;
    letter-spacing: -0.025em;
    text-transform: uppercase;
    margin: 0;
    clip-path: inset(0 100% 0 0);
    animation: wipe-in 0.28s cubic-bezier(0.0, 0, 0.2, 1) 0.08s forwards;
}

@keyframes wipe-in {
    to {
        clip-path: inset(0 0% 0 0);
    }
}

.ptnr .img-scan {
    position: absolute;
    top: 0;
    right: 0;
    width: 340px;
    height: 100%;
    border-radius: 4px;
    overflow: hidden;
}

.ptnr .img-scan img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    filter: grayscale(0.3) brightness(0.7);
}

.ptnr .img-scan::after {
    content: '';
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(0deg,
            rgba(187, 63, 95, 0.13) 0px,
            rgba(187, 63, 95, 0.13) 1px,
            transparent 1px,
            transparent 4px);
    pointer-events: none;
}

.ptnr .ttl-blk__text {
    max-width: 620px;
}

.ptnr .dec-rects {
    position: absolute;
    bottom: 24px;
    right: 24px;
    width: 64px;
    height: 64px;
    pointer-events: none;
}

.ptnr .dec-rects span {
    position: absolute;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 1px;
}

.ptnr .dec-rects span:nth-child(1) {
    inset: 0;
}

.ptnr .dec-rects span:nth-child(2) {
    inset: 8px;
}

.ptnr .dec-rects span:nth-child(3) {
    inset: 16px;
}

.ptnr .dec-rects span:nth-child(4) {
    inset: 24px;
}

.ptnr .affil-blk {
    padding: 96px 0 48px;
    margin-left: 48px;
    margin-right: 0;
}

.ptnr .affil-blk__inner {
    max-width: 1100px;
    padding: 0 48px;
    display: flex;
    flex-direction: row;
    gap: 96px;
    align-items: flex-start;
}

.ptnr .affil-col--narrow {
    flex: 0 0 280px;
}

.ptnr .affil-col--wide {
    flex: 1 1 auto;
}

.ptnr .affil-h2 {
    font-size: 40px;
    line-height: 1.15;
    letter-spacing: -0.02em;
    color: #1b1b1b;
    margin: 0 0 24px;
}

.ptnr .affil-h2 span {
    background: linear-gradient(180deg, #BB3F5F 50%, #DEB7D1 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.ptnr .affil-label {
    font-size: 14px;
    color: #BB3F5F;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin-bottom: 24px;
    display: block;
}

.ptnr .affil-p {
    font-size: 17px;
    line-height: 1.7;
    color: #3a2a30;
    margin: 0 0 24px;
}

.ptnr .dot-trail {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
}

.ptnr .dot-trail li {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 24px;
    padding: 0 0 24px;
    position: relative;
}

.ptnr .dot-trail li::before {
    content: '';
    flex: 0 0 10px;
    width: 10px;
    height: 10px;
    border-radius: 22px;
    background: #DEB7D1;
    margin-top: 6px;
    transition: background 0.18s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    z-index: 1;
}

.ptnr .dot-trail li::after {
    content: '';
    position: absolute;
    left: 4px;
    top: 16px;
    bottom: 0;
    width: 1px;
    background: #EDDDE7;
}

.ptnr .dot-trail li:last-child::after {
    display: none;
}

.ptnr .dot-trail li:hover::before {
    background: #BB3F5F;
}

.ptnr .dot-trail__title {
    font-size: 17px;
    line-height: 1.15;
    color: #1b1b1b;
    margin: 0 0 8px;
}

.ptnr .dot-trail__desc {
    font-size: 14px;
    line-height: 1.7;
    color: #5a3d48;
    margin: 0;
}

.ptnr .collab-blk {
    padding: 48px 0 96px;
    background: #EDDDE7;
    position: relative;
}

.ptnr .collab-blk__inner {
    max-width: 1100px;
    margin: 0 auto;
    padding: 48px 48px;
}

.ptnr .collab-h2 {
    font-size: 29px;
    line-height: 1.15;
    color: #1b1b1b;
    margin: 0 0 48px;
    letter-spacing: -0.01em;
}

.ptnr .collab-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 24px;
}

.ptnr .collab-card {
    background: #fff;
    border-radius: 14px;
    padding: 24px;
    box-shadow: 2px 3px 3px -1px rgba(187, 63, 95, 0.08);
    transition: box-shadow 0.22s cubic-bezier(0.4, 0, 0.2, 1), transform 0.18s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
}

.ptnr .collab-card:hover {
    box-shadow: 2px 7px 25px -1px rgba(187, 63, 95, 0.11);
    transform: translateY(-2px);
}

.ptnr .collab-card__num {
    font-size: 40px;
    line-height: 1.15;
    color: #EDDDE7;
    font-weight: 700;
    letter-spacing: -0.03em;
    margin: 0 0 8px;
}

.ptnr .collab-card__ttl {
    font-size: 17px;
    line-height: 1.15;
    color: #BB3F5F;
    margin: 0 0 8px;
}

.ptnr .collab-card__body {
    font-size: 14px;
    line-height: 1.7;
    color: #3a2a30;
    margin: 0;
}

.ptnr .collab-dec {
    position: absolute;
    top: 24px;
    right: 24px;
    pointer-events: none;
}

.ptnr .collab-dec span {
    display: block;
    border: 1px solid rgba(187, 63, 95, 0.14);
    border-radius: 1px;
    position: absolute;
}

.ptnr .collab-dec span:nth-child(1) {
    width: 48px;
    height: 48px;
    top: 0;
    right: 0;
}

.ptnr .collab-dec span:nth-child(2) {
    width: 36px;
    height: 36px;
    top: 6px;
    right: 6px;
}

.ptnr .collab-dec span:nth-child(3) {
    width: 24px;
    height: 24px;
    top: 12px;
    right: 12px;
}

.ptnr .contact-strip {
    background: #fff;
    border-top: 1px solid #EDDDE7;
    padding: 48px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    max-width: 1100px;
    margin: 0 auto;
    gap: 48px;
}

.ptnr .contact-strip__text {
    font-size: 22px;
    line-height: 1.15;
    color: #1b1b1b;
    margin: 0;
}

.ptnr .contact-strip__links {
    display: flex;
    flex-direction: row;
    gap: 24px;
    align-items: center;
}

.ptnr .btn-primary {
    display: inline-block;
    background: #BB3F5F;
    color: #fff;
    font-size: 17px;
    padding: 24px 48px;
    border-radius: 8px;
    text-decoration: none;
    position: relative;
    overflow: hidden;
    box-shadow: 2px 7px 25px -1px rgba(187, 63, 95, 0.11);
    transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);
}

.ptnr .btn-primary::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 0;
    background: rgba(0, 0, 0, 0.15);
    transition: height 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.ptnr .btn-primary:hover::after {
    height: 100%;
}

.ptnr .btn-secondary {
    display: inline-block;
    color: #BB3F5F;
    font-size: 17px;
    padding: 24px 24px;
    border-radius: 8px;
    text-decoration: none;
    border: 1px solid #DEB7D1;
    transition: background 0.18s cubic-bezier(0.0, 0, 0.2, 1), border-color 0.18s cubic-bezier(0.0, 0, 0.2, 1);
}

.ptnr .btn-secondary:hover {
    background: #EDDDE7;
    border-color: #BB3F5F;
}

@media (max-width: 768px) {
    .ptnr .ttl-blk {
        padding: 48px 24px 48px;
    }

    .ptnr .ttl-h1 {
        font-size: 40px;
    }

    .ptnr .img-scan {
        display: none;
    }

    .ptnr .affil-blk {
        margin-left: 0;
    }

    .ptnr .affil-blk__inner {
        flex-direction: column;
        gap: 48px;
        padding: 0 24px;
    }

    .ptnr .affil-col--narrow {
        flex: none;
    }

    .ptnr .collab-grid {
        grid-template-columns: 1fr;
    }

    .ptnr .collab-blk__inner {
        padding: 48px 24px;
    }

    .ptnr .contact-strip {
        flex-direction: column;
        align-items: flex-start;
        padding: 48px 24px;
    }

    .ptnr .pg-wrap {
        padding: 0 24px;
    }
}

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

.rt-pg *,
.rt-pg *::before,
.rt-pg *::after {
    box-sizing: border-box;
}

.rt-pg .mx-auto {
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 48px;
    padding-right: 48px;
}

.rt-pg .grad-txt {
    background: linear-gradient(180deg, #BB3F5F 50%, #DEB7D1 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.rt-pg .ttl-blk {
    position: relative;
    background: #f4eff2;
    padding-top: 96px;
    padding-bottom: 96px;
    overflow: hidden;
}

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

.rt-pg .ttl-blk__atm {
    position: absolute;
    border-radius: 22px;
    pointer-events: none;
    filter: blur(60px);
}

.rt-pg .ttl-blk__atm--a {
    width: 340px;
    height: 340px;
    background: rgba(187, 63, 95, 0.10);
    top: -80px;
    right: -60px;
}

.rt-pg .ttl-blk__atm--b {
    width: 220px;
    height: 220px;
    background: rgba(222, 183, 209, 0.13);
    bottom: -40px;
    left: 10%;
}

.rt-pg .ttl-blk__inner {
    position: relative;
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 48px;
}

.rt-pg .ttl-blk__txt {
    flex: 0 0 58%;
    padding-top: 24px;
    padding-bottom: 48px;
    padding-left: 0;
    padding-right: 48px;
}

.rt-pg .ttl-blk__img-z {
    flex: 0 0 38%;
    padding-top: 48px;
}

.rt-pg .ttl-blk__img-z img {
    width: 100%;
    aspect-ratio: 1/1;
    object-fit: cover;
    border-radius: 14px;
    opacity: 0.62;
    display: block;
    box-shadow: 2px 9px 48px -1px rgba(187, 63, 95, 0.11);
    transition: opacity 0.18s cubic-bezier(0.4, 0, 0.2, 1);
}

.rt-pg .ttl-blk__img-z img:hover {
    opacity: 0.82;
}

.rt-pg .ttl-blk__label {
    font-size: 14px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #BB3F5F;
    margin-bottom: 24px;
    display: block;
}

.rt-pg .ttl-blk__h1 {
    font-size: 55px;
    line-height: 1.15;
    letter-spacing: -0.03em;
    margin: 0 0 24px 0;
    color: #1b1b1b;
    text-transform: uppercase;
}

.rt-pg .ttl-blk__sub {
    font-size: 17px;
    line-height: 1.7;
    color: #4a3840;
    margin: 0;
    max-width: 440px;
}

.rt-pg .rel-blk {
    padding-top: 96px;
    padding-bottom: 96px;
    background: #fff;
}

.rt-pg .rel-blk__top {
    display: flex;
    flex-direction: row;
    gap: 48px;
    align-items: flex-start;
    margin-bottom: 48px;
}

.rt-pg .rel-blk__intro {
    flex: 0 0 28%;
}

.rt-pg .rel-blk__intro h2 {
    font-size: 40px;
    line-height: 1.15;
    letter-spacing: -0.025em;
    text-transform: uppercase;
    margin: 0 0 24px 0;
    color: #1b1b1b;
}

.rt-pg .rel-blk__body {
    flex: 1;
}

.rt-pg .rel-blk__body p {
    font-size: 17px;
    line-height: 1.7;
    color: #3a2e34;
    margin: 0 0 24px 0;
}

.rt-pg .rel-blk__steps {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.rt-pg .step-card {
    background: #EDDDE7;
    border-radius: 14px;
    padding: 24px;
    position: relative;
    box-shadow: 2px 3px 3px -1px rgba(187, 63, 95, 0.08);
    transition: box-shadow 0.22s cubic-bezier(0.4, 0, 0.2, 1);
}

.rt-pg .step-card:hover {
    box-shadow: 2px 7px 25px -1px rgba(187, 63, 95, 0.11);
}

.rt-pg .step-card__icon {
    width: 40px;
    height: 40px;
    border: 2px solid #BB3F5F;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 24px;
}

.rt-pg .step-card__icon svg {
    width: 20px;
    height: 20px;
    stroke: #BB3F5F;
    fill: none;
    stroke-width: 1.8;
}

.rt-pg .step-card h5 {
    font-size: 17px;
    line-height: 1.15;
    margin: 0 0 8px 0;
    color: #1b1b1b;
}

.rt-pg .step-card p {
    font-size: 14px;
    line-height: 1.7;
    color: #4a3840;
    margin: 0;
}

.rt-pg .rel-blk__imgs {
    display: flex;
    flex-direction: row;
    gap: 24px;
    margin-top: 48px;
}

.rt-pg .rel-blk__imgs img {
    flex: 1;
    width: 0;
    aspect-ratio: 1/1;
    object-fit: cover;
    border-radius: 14px;
    display: block;
    box-shadow: 2px 7px 25px -1px rgba(187, 63, 95, 0.11);
    filter: brightness(0.88);
    transition: filter 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

.rt-pg .rel-blk__imgs img:hover {
    filter: brightness(1.05);
}

.rt-pg .div-dots {
    display: flex;
    flex-direction: column;
    gap: 8px;
    align-items: center;
    padding: 0 48px;
}

.rt-pg .div-dots__row {
    display: flex;
    flex-direction: row;
    gap: 8px;
    justify-content: center;
}

.rt-pg .div-dots__dot {
    width: 4px;
    height: 4px;
    border-radius: 22px;
    background: #DEB7D1;
    display: inline-block;
}

.rt-pg .fit-blk {
    padding-top: 96px;
    padding-bottom: 96px;
    background: #EDDDE7;
    position: relative;
}

.rt-pg .fit-blk__zigzag {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    overflow: hidden;
    line-height: 0;
    pointer-events: none;
}

.rt-pg .fit-blk__zigzag svg {
    display: block;
    width: 100%;
}

.rt-pg .fit-blk__inner {
    display: flex;
    flex-direction: row;
    gap: 48px;
    align-items: flex-start;
}

.rt-pg .fit-blk__img-col {
    flex: 0 0 40%;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.rt-pg .fit-blk__img-col img {
    width: 100%;
    aspect-ratio: 1/1;
    object-fit: cover;
    border-radius: 14px;
    display: block;
    filter: brightness(0.85);
    transition: filter 0.2s cubic-bezier(0.0, 0, 0.2, 1);
    box-shadow: 2px 3px 3px -1px rgba(187, 63, 95, 0.08);
}

.rt-pg .fit-blk__img-col img:hover {
    filter: brightness(1.04);
}

.rt-pg .fit-blk__txt-col {
    flex: 1;
    padding-top: 48px;
}

.rt-pg .fit-blk__txt-col h2 {
    font-size: 40px;
    line-height: 1.15;
    letter-spacing: -0.02em;
    margin: 0 0 24px 0;
    color: #1b1b1b;
    text-transform: uppercase;
}

.rt-pg .fit-blk__txt-col p {
    font-size: 17px;
    line-height: 1.7;
    color: #3a2e34;
    margin: 0 0 24px 0;
}

.rt-pg .fit-trail {
    list-style: none;
    margin: 24px 0 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
}

.rt-pg .fit-trail__item {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 24px;
    padding: 24px 0;
    border-top: 1px solid rgba(187, 63, 95, 0.15);
}

.rt-pg .fit-trail__item:last-child {
    border-bottom: 1px solid rgba(187, 63, 95, 0.15);
}

.rt-pg .fit-trail__dot-col {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-top: 6px;
}

.rt-pg .fit-trail__dot {
    width: 12px;
    height: 12px;
    border-radius: 22px;
    background: #BB3F5F;
    flex-shrink: 0;
}

.rt-pg .fit-trail__dot--dim {
    background: #DEB7D1;
}

.rt-pg .fit-trail__txt {
    font-size: 17px;
    line-height: 1.7;
    color: #3a2e34;
}

.rt-pg .div-line {
    height: 1px;
    background: linear-gradient(90deg, transparent, #DEB7D1 30%, #DEB7D1 70%, transparent);
    margin: 0 48px;
}

.rt-pg .ex-blk {
    padding-top: 96px;
    padding-bottom: 96px;
    background: #fff;
}

.rt-pg .ex-blk__h2 {
    font-size: 40px;
    line-height: 1.15;
    letter-spacing: -0.02em;
    text-transform: uppercase;
    margin: 0 0 48px 0;
    color: #1b1b1b;
}

.rt-pg .ex-blk__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto auto;
    gap: 24px;
}

.rt-pg .ex-card {
    background: #f4eff2;
    border-radius: 14px;
    padding: 24px;
    box-shadow: 2px 3px 3px -1px rgba(187, 63, 95, 0.08);
    transition: box-shadow 0.18s cubic-bezier(0.4, 0, 0.2, 1);
    overflow: hidden;
}

.rt-pg .ex-card:hover {
    box-shadow: 2px 7px 25px -1px rgba(187, 63, 95, 0.11);
}

.rt-pg .ex-card--wide {
    grid-column: 1 / -1;
    display: flex;
    flex-direction: row;
    gap: 24px;
    align-items: flex-start;
}

.rt-pg .ex-card--wide img {
    flex: 0 0 38%;
    aspect-ratio: 1/1;
    object-fit: cover;
    border-radius: 8px;
    filter: brightness(0.87);
    transition: filter 0.22s cubic-bezier(0.4, 0, 0.2, 1);
}

.rt-pg .ex-card--wide img:hover {
    filter: brightness(1.04);
}

.rt-pg .ex-card__body {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.rt-pg .ex-card h4 {
    font-size: 22px;
    line-height: 1.15;
    margin: 0 0 8px 0;
    color: #1b1b1b;
}

.rt-pg .ex-card p {
    font-size: 17px;
    line-height: 1.7;
    color: #3a2e34;
    margin: 0;
}

.rt-pg .stat-blk {
    display: flex;
    flex-direction: row;
    gap: 24px;
    flex-wrap: wrap;
}

.rt-pg .stat-item {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
}

.rt-pg .stat-item__icon {
    width: 36px;
    height: 36px;
    border: 1.5px solid #BB3F5F;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rt-pg .stat-item__icon svg {
    width: 18px;
    height: 18px;
    stroke: #BB3F5F;
    fill: none;
    stroke-width: 1.8;
}

.rt-pg .stat-item__num {
    font-size: 29px;
    line-height: 1.15;
    color: #BB3F5F;
    letter-spacing: -0.02em;
}

.rt-pg .stat-item__desc {
    font-size: 14px;
    line-height: 1.7;
    color: #4a3840;
}

.rt-pg .ex-card__imgs-pair {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.rt-pg .ex-card__imgs-pair img {
    width: 100%;
    aspect-ratio: 1/1;
    object-fit: cover;
    border-radius: 8px;
    filter: brightness(0.87);
    transition: filter 0.2s cubic-bezier(0.0, 0, 0.2, 1);
}

.rt-pg .ex-card__imgs-pair img:hover {
    filter: brightness(1.04);
}

.rt-pg .rec-blk {
    padding-top: 96px;
    padding-bottom: 96px;
    background: #1b1b1b;
    position: relative;
}

.rt-pg .rec-blk__zigzag {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    overflow: hidden;
    line-height: 0;
    pointer-events: none;
}

.rt-pg .rec-blk__zigzag svg {
    display: block;
    width: 100%;
}

.rt-pg .rec-blk__inner {
    display: flex;
    flex-direction: row;
    gap: 48px;
    align-items: flex-start;
}

.rt-pg .rec-blk__txt {
    flex: 0 0 42%;
}

.rt-pg .rec-blk__txt h2 {
    font-size: 40px;
    line-height: 1.15;
    letter-spacing: -0.025em;
    text-transform: uppercase;
    margin: 0 0 24px 0;
    color: #fff;
}

.rt-pg .rec-blk__txt p {
    font-size: 17px;
    line-height: 1.7;
    color: #c9b4bf;
    margin: 0 0 24px 0;
}

.rt-pg .rec-blk__right {
    flex: 1;
    padding-top: 48px;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.rt-pg .assoc-item {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 24px;
    padding: 24px;
    border-radius: 14px;
    background: rgba(222, 183, 209, 0.07);
    box-shadow: 2px 3px 3px -1px rgba(187, 63, 95, 0.08);
    transition: background 0.18s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.18s cubic-bezier(0.4, 0, 0.2, 1);
    cursor: default;
}

.rt-pg .assoc-item:hover {
    background: rgba(222, 183, 209, 0.13);
    box-shadow: 2px 7px 25px -1px rgba(187, 63, 95, 0.11);
}

.rt-pg .assoc-item__icon {
    width: 44px;
    height: 44px;
    border: 1.5px solid #DEB7D1;
    border-radius: 8px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rt-pg .assoc-item__icon svg {
    width: 22px;
    height: 22px;
    stroke: #DEB7D1;
    fill: none;
    stroke-width: 1.6;
}

.rt-pg .assoc-item__body h5 {
    font-size: 17px;
    line-height: 1.15;
    color: #fff;
    margin: 0 0 8px 0;
}

.rt-pg .assoc-item__body p {
    font-size: 14px;
    line-height: 1.7;
    color: #c9b4bf;
    margin: 0;
}

.rt-pg .rec-blk__rating {
    margin-top: 24px;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 24px;
}

.rt-pg .rec-blk__rating__num {
    font-size: 55px;
    line-height: 1.15;
    color: #BB3F5F;
    letter-spacing: -0.03em;
}

.rt-pg .rec-blk__rating__meta p {
    font-size: 14px;
    line-height: 1.7;
    color: #c9b4bf;
    margin: 0;
}

.rt-pg .rec-blk__rating__stars {
    display: flex;
    flex-direction: row;
    gap: 4px;
    margin-bottom: 8px;
}

.rt-pg .star-svg {
    width: 18px;
    height: 18px;
}

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

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

.rt-pg .anim-col {
    opacity: 0;
    animation: col-appear 0.35s cubic-bezier(0.0, 0, 0.2, 1) forwards;
}

.rt-pg .anim-col--1 {
    animation-delay: 0.05s;
}

.rt-pg .anim-col--2 {
    animation-delay: 0.18s;
}

.rt-pg .anim-col--3 {
    animation-delay: 0.31s;
}

.rt-pg .reveal-hover {
    position: relative;
    overflow: hidden;
}

.rt-pg .reveal-hover__over {
    position: absolute;
    inset: 0;
    background: rgba(187, 63, 95, 0.08);
    clip-path: inset(0 100% 0 0);
    transition: clip-path 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    pointer-events: none;
    border-radius: 14px;
}

.rt-pg .reveal-hover:hover .reveal-hover__over {
    clip-path: inset(0 0% 0 0);
}

@media (max-width: 768px) {
    .rt-pg .mx-auto {
        padding-left: 24px;
        padding-right: 24px;
    }

    .rt-pg .ttl-blk__inner {
        flex-direction: column;
    }

    .rt-pg .ttl-blk__txt {
        flex: none;
        padding-right: 0;
        padding-bottom: 24px;
    }

    .rt-pg .ttl-blk__img-z {
        flex: none;
        width: 60%;
        padding-top: 0;
    }

    .rt-pg .ttl-blk__h1 {
        font-size: 40px;
    }

    .rt-pg .rel-blk__top {
        flex-direction: column;
    }

    .rt-pg .rel-blk__steps {
        grid-template-columns: 1fr;
    }

    .rt-pg .rel-blk__imgs {
        flex-direction: column;
    }

    .rt-pg .rel-blk__imgs img {
        width: 100%;
        flex: none;
    }

    .rt-pg .fit-blk__inner {
        flex-direction: column;
    }

    .rt-pg .fit-blk__img-col {
        flex: none;
        width: 100%;
        flex-direction: row;
    }

    .rt-pg .fit-blk__img-col img {
        flex: 1;
        width: 0;
    }

    .rt-pg .fit-blk__txt-col {
        padding-top: 0;
    }

    .rt-pg .ex-blk__grid {
        grid-template-columns: 1fr;
    }

    .rt-pg .ex-card--wide {
        flex-direction: column;
    }

    .rt-pg .ex-card--wide img {
        flex: none;
        width: 100%;
    }

    .rt-pg .rec-blk__inner {
        flex-direction: column;
    }

    .rt-pg .rec-blk__right {
        padding-top: 0;
    }
}

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

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

.ct-us .strip-img {
    width: 100%;
    height: 180px;
    overflow: hidden;
    position: relative;
}

.ct-us .strip-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 30%;
    display: block;
}

.ct-us .strip-img::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 340px;
    height: 100%;
    background: radial-gradient(ellipse at top right, rgba(187, 63, 95, 0.38) 0%, rgba(222, 183, 209, 0.18) 45%, transparent 72%);
    pointer-events: none;
}

.ct-us .ttl-block {
    padding: 96px 24px 48px;
    max-width: 1100px;
    margin: 0 auto;
    position: relative;
}

.ct-us .dot-path {
    position: absolute;
    top: 48px;
    right: 48px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    pointer-events: none;
}

.ct-us .dot-path span {
    display: block;
    border-radius: 50%;
    background: #DEB7D1;
    opacity: 0.55;
}

.ct-us .dot-path span:nth-child(1) {
    width: 6px;
    height: 6px;
}

.ct-us .dot-path span:nth-child(2) {
    width: 10px;
    height: 10px;
    opacity: 0.38;
}

.ct-us .dot-path span:nth-child(3) {
    width: 4px;
    height: 4px;
    opacity: 0.7;
}

.ct-us .dot-path span:nth-child(4) {
    width: 8px;
    height: 8px;
    opacity: 0.3;
}

.ct-us .dot-path span:nth-child(5) {
    width: 5px;
    height: 5px;
    opacity: 0.6;
}

.ct-us .ttl-row {
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    gap: 24px;
}

.ct-us .ttl-h {
    font-size: 70px;
    line-height: 1.15;
    letter-spacing: -0.03em;
    color: #1b1b1b;
    text-transform: uppercase;
    margin: 0;
}

.ct-us .ttl-h em {
    font-style: normal;
    background: linear-gradient(180deg, #BB3F5F 50%, #DEB7D1 50%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.ct-us .ttl-counter {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding-bottom: 8px;
}

.ct-us .ttl-counter .num {
    font-size: 55px;
    line-height: 1.15;
    color: #BB3F5F;
    letter-spacing: -0.04em;
}

.ct-us .ttl-counter .unit {
    font-size: 14px;
    line-height: 1.7;
    color: #BB3F5F;
    vertical-align: super;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.ct-us .ttl-sub {
    font-size: 17px;
    line-height: 1.7;
    color: #5a4a50;
    margin: 24px 0 0;
    max-width: 520px;
}

.ct-us .wave-div {
    overflow: hidden;
    line-height: 0;
    margin: 0;
}

.ct-us .wave-div svg {
    display: block;
    width: 100%;
}

.ct-us .contacts-band {
    background: #EDDDE7;
    padding: 48px 0;
    position: relative;
}

.ct-us .contacts-band::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: #EDDDE7;
    z-index: 0;
}

.ct-us .contacts-band .pg-wrap {
    position: relative;
    z-index: 1;
}

.ct-us .c-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 24px;
}

.ct-us .c-item {
    background: #fff;
    border-radius: 14px;
    padding: 24px;
    box-shadow: 2px 7px 25px -1px rgba(187, 63, 95, 0.11);
    display: flex;
    flex-direction: column;
    gap: 8px;
    transition: box-shadow 0.18s cubic-bezier(0.4, 0, 0.2, 1);
}

.ct-us .c-item:hover {
    box-shadow: 2px 9px 48px -1px rgba(187, 63, 95, 0.11);
}

.ct-us .c-item__icon {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    background: #EDDDE7;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 8px;
}

.ct-us .c-item__icon svg {
    width: 18px;
    height: 18px;
}

.ct-us .c-item__lbl {
    font-size: 14px;
    line-height: 1.7;
    color: #BB3F5F;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.ct-us .c-item__val {
    font-size: 17px;
    line-height: 1.7;
    color: #1b1b1b;
}

.ct-us .c-item__val a {
    color: #1b1b1b;
    text-decoration: none;
    transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);
}

.ct-us .c-item__val a:hover {
    color: #BB3F5F;
}

.ct-us .c-item__val--addr {
    font-size: 14px;
    line-height: 1.7;
    color: #3d2e35;
}

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

.ct-us .msg-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 24px;
    border-radius: 8px;
    font-size: 14px;
    line-height: 1.15;
    text-decoration: none;
    font-weight: 600;
    transition: background 0.2s cubic-bezier(0.0, 0, 0.2, 1), color 0.2s cubic-bezier(0.0, 0, 0.2, 1);
}

.ct-us .msg-btn--wa {
    background: #BB3F5F;
    color: #fff;
}

.ct-us .msg-btn--wa:hover {
    background: #9a2f4d;
    color: #fff;
}

.ct-us .msg-btn--tg {
    background: #EDDDE7;
    color: #BB3F5F;
}

.ct-us .msg-btn--tg:hover {
    background: #DEB7D1;
    color: #7a1f38;
}

.ct-us .msg-btn--vb {
    background: #EDDDE7;
    color: #BB3F5F;
}

.ct-us .msg-btn--vb:hover {
    background: #DEB7D1;
    color: #7a1f38;
}

.ct-us .stat-fact {
    margin-top: 48px;
    background: #fff;
    border-radius: 14px;
    padding: 24px;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 24px;
    box-shadow: 2px 3px 3px -1px rgba(187, 63, 95, 0.08);
}

.ct-us .stat-fact__num {
    font-size: 55px;
    line-height: 1.15;
    color: #BB3F5F;
    letter-spacing: -0.04em;
    white-space: nowrap;
}

.ct-us .stat-fact__num sup {
    font-size: 22px;
    vertical-align: super;
    letter-spacing: 0;
}

.ct-us .stat-fact__txt {
    font-size: 17px;
    line-height: 1.7;
    color: #3d2e35;
    max-width: 480px;
}

.ct-us .wave-div2 {
    overflow: hidden;
    line-height: 0;
}

.ct-us .wave-div2 svg {
    display: block;
    width: 100%;
}

.ct-us .form-band {
    background: #fff;
    padding: 96px 0 96px;
}

.ct-us .form-layout {
    display: grid;
    grid-template-columns: 5fr 7fr;
    gap: 48px;
    align-items: start;
}

.ct-us .form-intro h2 {
    font-size: 40px;
    line-height: 1.15;
    letter-spacing: -0.02em;
    color: #1b1b1b;
    margin: 0 0 24px;
}

.ct-us .form-intro p {
    font-size: 17px;
    line-height: 1.7;
    color: #5a4a50;
    margin: 0 0 24px;
}

.ct-us .partners-ref {
    font-size: 14px;
    line-height: 1.7;
    color: #BB3F5F;
}

.ct-us .partners-ref a {
    color: #BB3F5F;
    text-decoration: underline;
    transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);
}

.ct-us .partners-ref a:hover {
    color: #7a1f38;
}

.ct-us .dot-trail {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0;
    margin: 24px 0;
}

.ct-us .dot-trail__step {
    display: flex;
    flex-direction: row;
    align-items: center;
}

.ct-us .dot-trail__dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #DEB7D1;
    flex-shrink: 0;
    transition: background 0.18s cubic-bezier(0.4, 0, 0.2, 1);
}

.ct-us .dot-trail__dot--active {
    background: #BB3F5F;
    width: 14px;
    height: 14px;
    box-shadow: 0 0 0 3px rgba(187, 63, 95, 0.18);
}

.ct-us .dot-trail__line {
    width: 32px;
    height: 2px;
    background: #EDDDE7;
}

.ct-us .frm {
    background: #EDDDE7;
    border-radius: 22px;
    padding: 48px;
    box-shadow: 2px 9px 48px -1px rgba(187, 63, 95, 0.11);
}

.ct-us .frm__row {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 24px;
}

.ct-us .frm__lbl {
    font-size: 14px;
    line-height: 1.7;
    color: #3d2e35;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.ct-us .frm__inp {
    width: 100%;
    padding: 12px 16px;
    border-radius: 8px;
    border: 1.5px solid #DEB7D1;
    background: #fff;
    font-size: 17px;
    line-height: 1.7;
    color: #1b1b1b;
    outline: none;
    box-sizing: border-box;
    transition: border-color 0.18s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.18s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: inset 0 4px 8px rgba(187, 63, 95, 0.05);
}

.ct-us .frm__inp::placeholder {
    color: #b09aa8;
}

.ct-us .frm__inp:focus {
    border-color: #BB3F5F;
    box-shadow: inset 0 4px 10px rgba(187, 63, 95, 0.08), 0 0 0 2px rgba(187, 63, 95, 0.12);
}

.ct-us .frm__sel {
    width: 100%;
    padding: 12px 16px;
    border-radius: 8px;
    border: 1.5px solid #DEB7D1;
    background: #fff;
    font-size: 17px;
    line-height: 1.7;
    color: #1b1b1b;
    outline: none;
    box-sizing: border-box;
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='%23BB3F5F' d='M4 6l4 4 4-4'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    transition: border-color 0.2s cubic-bezier(0.0, 0, 0.2, 1);
    cursor: pointer;
}

.ct-us .frm__sel:focus {
    border-color: #BB3F5F;
}

.ct-us .frm__chk-row {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 8px;
    margin-bottom: 24px;
}

.ct-us .frm__chk {
    width: 18px;
    height: 18px;
    accent-color: #BB3F5F;
    margin-top: 4px;
    flex-shrink: 0;
    cursor: pointer;
}

.ct-us .frm__chk-txt {
    font-size: 14px;
    line-height: 1.7;
    color: #5a4a50;
}

.ct-us .frm__chk-txt a {
    color: #BB3F5F;
    text-decoration: underline;
    transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);
}

.ct-us .frm__chk-txt a:hover {
    color: #7a1f38;
}

.ct-us .frm__submit {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 14px 48px;
    border-radius: 8px;
    border: none;
    background: #BB3F5F;
    color: #fff;
    font-size: 17px;
    line-height: 1.15;
    font-weight: 700;
    cursor: pointer;
    overflow: hidden;
    width: 100%;
    letter-spacing: 0.01em;
    transition: color 0.18s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 2px 7px 25px -1px rgba(187, 63, 95, 0.18);
}

.ct-us .frm__submit::before {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 0;
    background: #7a1f38;
    transition: height 0.22s cubic-bezier(0.0, 0, 0.2, 1);
    z-index: 0;
}

.ct-us .frm__submit:hover::before {
    height: 100%;
}

.ct-us .frm__submit:focus {
    outline: 2px solid #BB3F5F;
    outline-offset: 3px;
}

.ct-us .frm__submit span {
    position: relative;
    z-index: 1;
}

.ct-us .shadow-cycle {
    animation: shadowCycle 3.2s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}

@keyframes shadowCycle {
    0% {
        box-shadow: 2px 3px 3px -1px rgba(187, 63, 95, 0.08);
    }

    40% {
        box-shadow: 2px 7px 25px -1px rgba(187, 63, 95, 0.18);
    }

    70% {
        box-shadow: 2px 9px 48px -1px rgba(187, 63, 95, 0.15);
    }

    100% {
        box-shadow: 2px 3px 3px -1px rgba(187, 63, 95, 0.08);
    }
}

.ct-us .slide-up {
    animation: slideUp 0.28s cubic-bezier(0.0, 0, 0.2, 1) both;
}

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

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

@media (max-width: 800px) {
    .ct-us .ttl-h {
        font-size: 40px;
    }

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

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

    .ct-us .frm {
        padding: 24px;
    }

    .ct-us .stat-fact {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }

    .ct-us .ttl-row {
        flex-direction: column;
        align-items: flex-start;
    }
}

@media (max-width: 520px) {
    .ct-us .msg-links {
        flex-direction: column;
    }

    .ct-us .ttl-h {
        font-size: 29px;
    }
}

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

.abt-us .au-hero {
    max-width: 1100px;
    margin: 0 auto;
    padding: 96px 48px 96px;
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
}

.abt-us .au-hero__stripe {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, #BB3F5F 0%, #DEB7D1 100%);
    border-radius: 0 0 4px 4px;
}

.abt-us .au-hero__img-wrap {
    width: 100%;
    max-width: 680px;
    border-radius: 14px;
    overflow: hidden;
    position: relative;
    aspect-ratio: 1/1;
    max-height: 420px;
    margin-bottom: 48px;
    box-shadow: 2px 7px 25px -1px rgba(187, 63, 95, 0.11);
}

.abt-us .au-hero__img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    filter: brightness(0.88);
    transition: filter 0.18s cubic-bezier(0.4, 0, 0.2, 1);
}

.abt-us .au-hero__img-wrap:hover img {
    filter: brightness(1.04);
}

.abt-us .au-hero__img-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, transparent 40%, rgba(187, 63, 95, 0.18) 100%);
    border-radius: 14px;
    pointer-events: none;
}

.abt-us .au-hero__text {
    text-align: center;
    max-width: 720px;
}

.abt-us .au-hero__label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 24px;
}

.abt-us .au-hero__dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #BB3F5F;
    display: inline-block;
    flex-shrink: 0;
}

.abt-us .au-hero__label-text {
    font-size: 14px;
    letter-spacing: 0.08em;
    color: #BB3F5F;
    text-transform: uppercase;
    font-weight: 600;
    line-height: 1.15;
}

.abt-us .au-hero__h1 {
    font-size: 55px;
    line-height: 1.15;
    letter-spacing: -0.03em;
    color: #1b1b2e;
    margin: 0 0 24px;
    text-transform: uppercase;
    font-weight: 800;
}

.abt-us .au-hero__h1 span {
    background: linear-gradient(180deg, #BB3F5F 50%, #DEB7D1 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.abt-us .au-hero__thesis {
    font-size: 17px;
    line-height: 1.7;
    color: #3a3340;
    margin: 0 auto 8px;
    max-width: 560px;
}

.abt-us .au-story {
    background: linear-gradient(180deg, #EDDDE7 0%, #fff 100%);
    position: relative;
}

.abt-us .au-story__bg-anim {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 480px;
    height: 480px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(187, 63, 95, 0.07) 0%, transparent 70%);
    animation: au-pulse 6s cubic-bezier(0.4, 0, 0.2, 1) infinite alternate;
    pointer-events: none;
}

@keyframes au-pulse {
    from {
        transform: translate(-50%, -50%) scale(0.85);
    }

    to {
        transform: translate(-50%, -50%) scale(1.18);
    }
}

.abt-us .au-story__inner {
    max-width: 1100px;
    margin: 0 auto;
    padding: 96px 48px;
    position: relative;
    z-index: 1;
}

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

.abt-us .au-story__sidebar {
    display: flex;
    flex-direction: column;
    gap: 48px;
}

.abt-us .au-story__quote-mark {
    font-size: 70px;
    line-height: 1.15;
    color: #DEB7D1;
    font-weight: 900;
    letter-spacing: -0.05em;
    margin-bottom: 8px;
    display: block;
    user-select: none;
    pointer-events: none;
}

.abt-us .au-story__trail {
    display: flex;
    flex-direction: column;
    gap: 24px;
    padding-left: 8px;
}

.abt-us .au-story__trail-item {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 8px;
    position: relative;
}

.abt-us .au-story__trail-item::before {
    content: "";
    position: absolute;
    left: 5px;
    top: 18px;
    bottom: -24px;
    width: 2px;
    background: linear-gradient(180deg, #BB3F5F 0%, #EDDDE7 100%);
    border-radius: 1px;
}

.abt-us .au-story__trail-item:last-child::before {
    display: none;
}

.abt-us .au-story__trail-dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #BB3F5F;
    flex-shrink: 0;
    margin-top: 4px;
    box-shadow: 2px 3px 3px -1px rgba(187, 63, 95, 0.08);
    transition: transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);
}

.abt-us .au-story__trail-item:hover .au-story__trail-dot {
    transform: scale(1.35);
}

.abt-us .au-story__trail-label {
    font-size: 14px;
    color: #3a3340;
    line-height: 1.7;
    font-weight: 500;
}

.abt-us .au-story__body {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.abt-us .au-story__h2 {
    font-size: 40px;
    line-height: 1.15;
    letter-spacing: -0.02em;
    color: #1b1b2e;
    margin: 0 0 8px;
    font-weight: 700;
}

.abt-us .au-story__para {
    font-size: 17px;
    line-height: 1.7;
    color: #3a3340;
    margin: 0;
}

.abt-us .au-story__imgs {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin-top: 24px;
}

.abt-us .au-story__img-box {
    border-radius: 8px;
    overflow: hidden;
    aspect-ratio: 1/1;
    box-shadow: 2px 3px 3px -1px rgba(187, 63, 95, 0.08);
    transition: box-shadow 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.abt-us .au-story__img-box:hover {
    box-shadow: 2px 9px 48px -1px rgba(187, 63, 95, 0.11);
}

.abt-us .au-story__img-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    filter: brightness(0.87);
    transition: filter 0.22s cubic-bezier(0.0, 0, 0.2, 1);
}

.abt-us .au-story__img-box:hover img {
    filter: brightness(1.05);
}

.abt-us .au-story__metrics {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
    margin-top: 8px;
}

.abt-us .au-metric {
    background: #fff;
    border-radius: 14px;
    padding: 24px;
    box-shadow: 2px 7px 25px -1px rgba(187, 63, 95, 0.11);
    display: flex;
    flex-direction: column;
    gap: 8px;
    position: relative;
    overflow: hidden;
    transition: box-shadow 0.18s cubic-bezier(0.4, 0, 0.2, 1);
}

.abt-us .au-metric::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 0;
    background: linear-gradient(0deg, rgba(187, 63, 95, 0.06) 0%, transparent 100%);
    border-radius: 0 0 14px 14px;
    transition: height 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

.abt-us .au-metric:hover::after {
    height: 100%;
}

.abt-us .au-metric:hover {
    box-shadow: 2px 9px 48px -1px rgba(187, 63, 95, 0.11);
}

.abt-us .au-metric__num {
    font-size: 40px;
    line-height: 1.15;
    font-weight: 800;
    letter-spacing: -0.03em;
    background: linear-gradient(180deg, #BB3F5F 50%, #DEB7D1 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.abt-us .au-metric__desc {
    font-size: 14px;
    line-height: 1.7;
    color: #3a3340;
}

.abt-us .au-story__team {
    margin-top: 48px;
}

.abt-us .au-story__team-h3 {
    font-size: 22px;
    line-height: 1.15;
    color: #1b1b2e;
    font-weight: 700;
    margin: 0 0 24px;
}

.abt-us .au-team-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.abt-us .au-team-card {
    background: #fff;
    border-radius: 14px;
    padding: 24px;
    box-shadow: 2px 3px 3px -1px rgba(187, 63, 95, 0.08);
    display: flex;
    flex-direction: column;
    gap: 8px;
    transition: box-shadow 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.abt-us .au-team-card:hover {
    box-shadow: 2px 7px 25px -1px rgba(187, 63, 95, 0.11);
}

.abt-us .au-team-card__img {
    width: 100%;
    aspect-ratio: 1/1;
    border-radius: 8px;
    overflow: hidden;
    margin-bottom: 8px;
}

.abt-us .au-team-card__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    filter: brightness(0.88);
    transition: filter 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.abt-us .au-team-card:hover .au-team-card__img img {
    filter: brightness(1.04);
}

.abt-us .au-team-card__name {
    font-size: 17px;
    font-weight: 700;
    color: #1b1b2e;
    line-height: 1.15;
}

.abt-us .au-team-card__role {
    font-size: 14px;
    color: #BB3F5F;
    line-height: 1.7;
    font-weight: 500;
}

.abt-us .au-team-card__bio {
    font-size: 14px;
    line-height: 1.7;
    color: #3a3340;
}

.abt-us .au-cta-band {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 24px;
    margin-top: 48px;
    padding: 24px;
    border-radius: 14px;
    background: linear-gradient(135deg, #BB3F5F 0%, #DEB7D1 100%);
    box-shadow: 2px 9px 48px -1px rgba(187, 63, 95, 0.11);
}

.abt-us .au-cta-band__text {
    flex: 1;
    font-size: 17px;
    line-height: 1.7;
    color: #fff;
    font-weight: 500;
}

.abt-us .au-cta-band__btn {
    display: inline-block;
    padding: 0;
    border-radius: 8px;
    overflow: hidden;
    text-decoration: none;
    flex-shrink: 0;
}

.abt-us .au-btn {
    display: inline-block;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #BB3F5F;
    background: #fff;
    border: none;
    border-radius: 8px;
    padding: 16px 24px;
    cursor: pointer;
    position: relative;
    overflow: hidden;
    transition: color 0.17s cubic-bezier(0.4, 0, 0.2, 1);
    text-decoration: none;
}

.abt-us .au-btn::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 0;
    background: #EDDDE7;
    border-radius: 0;
    transition: height 0.22s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 0;
}

.abt-us .au-btn:hover::before {
    height: 100%;
}

.abt-us .au-btn span {
    position: relative;
    z-index: 1;
}

.abt-us .au-btn:focus-visible {
    outline: 3px solid #BB3F5F !important;
    outline-offset: 3px !important;
}

.abt-us .au-story__dashed-bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image:
        repeating-linear-gradient(0deg, transparent, transparent 31px, rgba(187, 63, 95, 0.05) 31px, rgba(187, 63, 95, 0.05) 32px),
        repeating-linear-gradient(90deg, transparent, transparent 31px, rgba(187, 63, 95, 0.05) 31px, rgba(187, 63, 95, 0.05) 32px);
    border-radius: 0;
    z-index: 0;
}

@media (max-width: 768px) {
    .abt-us .au-hero__h1 {
        font-size: 40px;
    }

    .abt-us .au-story__grid {
        grid-template-columns: 1fr;
    }

    .abt-us .au-story__imgs {
        grid-template-columns: repeat(2, 1fr);
    }

    .abt-us .au-story__metrics {
        grid-template-columns: 1fr;
    }

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

    .abt-us .au-cta-band {
        flex-direction: column;
        align-items: flex-start;
    }

    .abt-us .au-hero {
        padding: 48px 24px;
    }

    .abt-us .au-story__inner {
        padding: 48px 24px;
    }
}

@media (max-width: 480px) {
    .abt-us .au-hero__h1 {
        font-size: 29px;
    }

    .abt-us .au-story__h2 {
        font-size: 29px;
    }

    .abt-us .au-story__imgs {
        grid-template-columns: 1fr;
    }
}

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

.succ-page .succ-card {
    max-width: 1100px;
    width: 100%;
    background: #EDDDE7;
    border-radius: 22px;
    padding: 48px;
    box-shadow: 2px 9px 48px -1px rgba(187, 63, 95, 0.11);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 24px;
}

.succ-page .succ-card__icon {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: #BB3F5F;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow: 2px 7px 25px -1px rgba(187, 63, 95, 0.11);
}

.succ-page .succ-card__icon svg {
    width: 36px;
    height: 36px;
}

.succ-page .succ-card__title {
    font-size: 40px;
    line-height: 1.15;
    letter-spacing: -0.02em;
    color: #BB3F5F;
    margin: 0;
    text-transform: uppercase;
}

.succ-page .succ-card__text {
    font-size: 17px;
    line-height: 1.7;
    color: #3a2030;
    max-width: 520px;
    margin: 0;
}

.succ-page .succ-card__link {
    display: inline-block;
    padding: 8px 48px;
    background: #BB3F5F;
    color: #fff;
    font-size: 17px;
    line-height: 1.7;
    border-radius: 4px;
    text-decoration: none;
    position: relative;
    overflow: hidden;
    transition: color 0.18s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 2px 3px 3px -1px rgba(187, 63, 95, 0.08);
}

.succ-page .succ-card__link::before {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 0;
    background: #8a2a42;
    border-radius: 4px;
    transition: height 0.22s cubic-bezier(0.0, 0, 0.2, 1);
    z-index: 0;
}

.succ-page .succ-card__link:hover::before {
    height: 100%;
}

.succ-page .succ-card__link span {
    position: relative;
    z-index: 1;
}

.succ-page .succ-card__link:focus {
    outline: 2px solid #BB3F5F;
    outline-offset: 3px;
}

.succ-page .succ-card__divider {
    width: 48px;
    height: 2px;
    background: #DEB7D1;
    border-radius: 1px;
}