@import "https://fonts.googleapis.com/css2?family=Noto+Serif:ital,wght@0,400;1,400;0,700;1,700&display=swap";
@import "https://fonts.googleapis.com/css2?family=PT+Sans:ital,wght@0,400;1,400;0,700;1,700&display=swap";

html {
    margin: 0;
    padding: 0;
    box-sizing: border-box
}

body {
    margin: 0;
    -webkit-text-size-adjust: 100%
}

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

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

:focus-visible {
    outline: 2px solid #95A957;
    outline-offset: 2px
}

a:focus-visible {
    text-decoration: underline
}

.brand-bar {
    background: #95A957;
    padding: 6px 24px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 24px;
    max-width: 100%
}

.brand-bar__contact {
    font-family: 'PT Sans', sans-serif;
    font-size: 13px;
    line-height: 1.15;
    letter-spacing: .01em;
    color: #fff;
    text-decoration: none;
    transition: opacity .16s ease-out
}

.brand-bar__contact:hover {
    opacity: .78
}

.brand-bar__address {
    font-family: 'PT Sans', sans-serif;
    font-size: 13px;
    line-height: 1.15;
    letter-spacing: .01em;
    color: #fff
}

.primary-header {
    background: #F4F7F1;
    border-bottom: 1px solid #C6C8A2;
    box-shadow: 2px 6px 22px 0 #95a9571c;
    position: relative
}

.primary-header__inner {
    max-width: 1024px;
    margin: 0 auto;
    padding: 24px 24px 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px
}

.logo-capsule {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 75px;
    height: 75px;
    border-radius: 22px;
    background: #fff;
    box-shadow: 2px 3px 5px 0 #95a95712 2px 6px 22px 0 #95a9571c;
    border: 1px solid #C6C8A2;
    flex-shrink: 0;
    overflow: hidden
}

.logo-capsule__image {
    width: 60px;
    height: 60px;
    object-fit: contain;
    display: block
}

.primary-navigation {
    width: 100%;
    padding-bottom: 0
}

.primary-navigation__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center
}

.primary-navigation__item {
    display: flex
}

.primary-navigation__link {
    font-family: 'PT Sans', sans-serif;
    font-size: 16px;
    line-height: 1.15;
    letter-spacing: .015em;
    color: #3a3a2e;
    text-decoration: none;
    padding: 12px 24px;
    border-radius: 2px;
    display: inline-block;
    position: relative;
    overflow: hidden;
    transition: color .18s ease-out;
    z-index: 1
}

.primary-navigation__link::before {
    content: '';
    position: absolute;
    inset: 0;
    background: #95A957;
    transform: translateX(100%);
    transition: transform .2s cubic-bezier(0.4, 0, 0.6, 1);
    z-index: -1;
    border-radius: 2px
}

.primary-navigation__link:hover::before {
    transform: translateX(0)
}

.primary-navigation__link:hover {
    color: #fff
}

.primary-navigation__link[data-current="true"] {
    color: #95A957;
    font-weight: 700
}

.primary-navigation__link[data-current="true"]::before {
    display: none
}

.primary-navigation__link[data-current="true"]:hover {
    color: #95A957
}

.primary-header__rule {
    width: 100%;
    height: 3px;
    background: linear-gradient(90deg, #95A957 0%, #C6C8A2 60%, #F4F7F1 100%);
    margin-top: 12px;
    border: none
}

@media (max-width: 768px) {
    .brand-bar {
        flex-direction: column;
        align-items: flex-start;
        gap: 6px;
        padding: 6px 12px
    }

    .primary-header__inner {
        padding: 12px 12px 0;
        gap: 12px
    }

    .primary-navigation__link {
        font-size: 13px;
        padding: 12px
    }
}

@media (max-width: 390px) {
    .primary-navigation__list {
        gap: 6px
    }

    .primary-navigation__link {
        padding: 12px 6px;
        font-size: 13px
    }

    .logo-capsule {
        width: 60px;
        height: 60px
    }

    .logo-capsule__image {
        width: 48px;
        height: 48px
    }
}

.site-footer {
    background: #2b2d1f;
    border-top: 3px solid #95A957
}

.site-footer__top {
    max-width: 1024px;
    margin: 0 auto;
    padding: 48px 24px 24px;
    display: flex;
    flex-wrap: wrap;
    gap: 48px;
    align-items: flex-start;
    justify-content: space-between
}

.footer-brand-column {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    flex: 0 0 auto
}

.footer-logo-capsule {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 70px;
    height: 70px;
    border-radius: 22px;
    background: #fff;
    box-shadow: 2px 9px 40px 0 #95a9571f;
    border: 1px solid #C6C8A2;
    overflow: hidden
}

.footer-logo-capsule__image {
    width: 56px;
    height: 56px;
    object-fit: contain;
    display: block
}

.footer-brand-name {
    font-family: 'Noto Serif', serif;
    font-size: 16px;
    line-height: 1.15;
    letter-spacing: .02em;
    color: #C6C8A2;
    text-align: center
}

.footer-links-column {
    display: flex;
    flex-direction: column;
    gap: 12px;
    flex: 1 1 180px
}

.footer-links-column__label {
    font-family: 'Noto Serif', serif;
    font-size: 13px;
    line-height: 1.15;
    letter-spacing: .02em;
    color: #95A957;
    text-transform: uppercase;
    font-weight: 700
}

.footer-links-column__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px
}

.footer-links-column__link {
    font-family: 'PT Sans', sans-serif;
    font-size: 16px;
    line-height: 1.65;
    letter-spacing: .01em;
    color: #e8ead8;
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: color .14s ease-out, border-color .14s ease-out;
    display: inline-block
}

.footer-links-column__link:hover {
    color: #95A957;
    border-bottom-color: #95A957
}

.footer-contact-column {
    display: flex;
    flex-direction: column;
    gap: 12px;
    flex: 1 1 200px
}

.footer-contact-column__label {
    font-family: 'Noto Serif', serif;
    font-size: 13px;
    line-height: 1.15;
    letter-spacing: .02em;
    color: #95A957;
    text-transform: uppercase;
    font-weight: 700
}

.footer-contact-column__item {
    font-family: 'PT Sans', sans-serif;
    font-size: 16px;
    line-height: 1.65;
    letter-spacing: .01em;
    color: #e8ead8;
    text-decoration: none;
    display: block;
    transition: color .14s ease-out
}

a.footer-contact-column__item:hover {
    color: #95A957
}

.site-footer__divider {
    max-width: 1024px;
    margin: 0 auto;
    height: 1px;
    background: #3e4028;
    border: none
}

.site-footer__bottom {
    max-width: 1024px;
    margin: 0 auto;
    padding: 24px;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
    justify-content: space-between
}

.footer-copyright {
    font-family: 'PT Sans', sans-serif;
    font-size: 13px;
    line-height: 1.15;
    letter-spacing: .01em;
    color: #7a7d5c
}

.footer-legal-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center
}

.footer-legal-list__link {
    font-family: 'PT Sans', sans-serif;
    font-size: 13px;
    line-height: 1.15;
    letter-spacing: .01em;
    color: #7a7d5c;
    text-decoration: none;
    transition: color .16s ease-out
}

.footer-legal-list__link:hover {
    color: #C6C8A2
}

@media (max-width: 768px) {
    .site-footer__top {
        padding: 24px 12px 12px;
        gap: 24px
    }

    .site-footer__bottom {
        padding: 12px;
        flex-direction: column;
        align-items: flex-start
    }
}

@media (max-width: 390px) {
    .site-footer__top {
        flex-direction: column;
        align-items: flex-start
    }

    .footer-brand-column {
        align-items: flex-start
    }
}

.preference-tab {
    position: fixed;
    left: 0;
    top: 50%;
    transform: translateY(-50%) translateX(-100%);
    z-index: 7900;
    background: #95A957;
    border-radius: 0 2px 2px 0;
    padding: 12px 6px;
    cursor: pointer;
    box-shadow: 2px 6px 22px 0 #95a9571c;
    transition: transform .2s cubic-bezier(0.4, 0, 0.6, 1), background .16s ease-out;
    display: none
}

.preference-tab[data-visible="true"] {
    transform: translateY(-50%) translateX(0)
}

.preference-tab__label {
    font-family: 'PT Sans', sans-serif;
    font-size: 13px;
    line-height: 1.15;
    color: #fff;
    writing-mode: vertical-rl;
    text-orientation: mixed;
    letter-spacing: .02em;
    white-space: nowrap
}

.preference-tab:hover {
    background: #7a8f42
}

.consent-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 8000;
    background: #2b2d1f;
    border-top: 2px solid #95A957;
    box-shadow: 2px 9px 40px 0 #95a9571f;
    transform: translateX(-100%);
    transition: transform .38s cubic-bezier(0.4, 0, 0.6, 1);
    display: none
}

.consent-bar[data-open="true"] {
    transform: translateX(0)
}

.consent-bar__inner {
    max-width: 1024px;
    margin: 0 auto;
    padding: 24px;
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    align-items: center;
    justify-content: space-between
}

.consent-bar__text {
    font-family: 'PT Sans', sans-serif;
    font-size: 13px;
    line-height: 1.65;
    letter-spacing: .01em;
    color: #e8ead8;
    flex: 1 1 280px
}

.consent-bar__actions {
    display: flex;
    gap: 24px;
    align-items: center;
    flex-shrink: 0
}

.consent-bar__button {
    font-family: 'PT Sans', sans-serif;
    font-size: 13px;
    line-height: 1.15;
    letter-spacing: .01em;
    background: none;
    border: none;
    cursor: pointer;
    text-decoration: underline;
    padding: 6px 0;
    transition: color .14s ease-out;
    min-height: 44px;
    display: inline-flex;
    align-items: center
}

.consent-bar__button[data-role="accept"] {
    color: #95A957
}

.consent-bar__button[data-role="accept"]:hover {
    color: #b8cc6e
}

.consent-bar__button[data-role="decline"] {
    color: #7a7d5c
}

.consent-bar__button[data-role="decline"]:hover {
    color: #C6C8A2
}

.consent-bar__button:focus-visible {
    outline: 2px solid #95A957;
    outline-offset: 2px
}

@media (max-width: 768px) {
    .consent-bar__inner {
        padding: 12px;
        gap: 12px
    }

    .consent-bar__actions {
        gap: 12px;
        width: 100%;
        justify-content: flex-end
    }
}

.legal-body {
    max-width: 1024px;
    margin: 0 auto;
    padding: 48px 24px;
    color: #2a2d1e
}

.legal-body p {
    font-size: 16px;
    line-height: 1.65;
    letter-spacing: .01em;
    margin-bottom: 24px;
    color: #2a2d1e
}

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

.legal-body a {
    color: #95A957;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color .18s ease-out, text-decoration-color .14s ease-out
}

.legal-body a:hover {
    color: #6b7a3a;
    text-decoration-color: #C6C8A2
}

.legal-body table {
    width: 100%;
    border-collapse: collapse;
    font-size: 16px;
    line-height: 1.65;
    margin-bottom: 24px;
    box-shadow: 2px 3px 5px 0 #95a95712;
    border-radius: 2px;
    overflow: hidden
}

.legal-body thead {
    background-color: #F4F7F1
}

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

.legal-body tbody tr:nth-child(odd) {
    background-color: #fff
}

.legal-body tbody tr {
    transition: background-color .12s ease-out
}

.legal-body tbody tr:hover {
    background-color: #edf2e4
}

.legal-body th {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .02em;
    line-height: 1.15;
    text-align: left;
    padding: 12px 24px;
    color: #1e2114;
    border-bottom: 2px solid #C6C8A2
}

.legal-body td {
    font-size: 16px;
    line-height: 1.65;
    padding: 12px 24px;
    color: #2a2d1e;
    border-bottom: 1px solid #C6C8A2;
    vertical-align: top
}

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

.legal-body hr {
    border: none;
    border-top: 1px solid #C6C8A2;
    margin: 48px 0
}

.legal-body div {
    font-size: 16px;
    line-height: 1.65;
    letter-spacing: .01em;
    color: #2a2d1e;
    margin-bottom: 24px
}

@media (max-width: 768px) {
    .legal-body {
        padding: 24px 12px
    }

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

    .legal-body th,
    .legal-body td {
        padding: 12px
    }
}

@media (max-width: 390px) {
    .legal-body {
        padding: 24px 6px
    }

    .legal-body p,
    .legal-body div {
        font-size: 13px
    }

    .legal-body td {
        font-size: 13px
    }
}

.about-us-page {
    max-width: 100%;
    overflow-x: hidden
}

.about-us-page .about-us-page__inner {
    max-width: 1024px;
    margin: 0 auto;
    padding: 0 24px
}

.about-us-page .profile-block {
    position: relative;
    background: #F4F7F1;
    padding: 48px 0 0
}

.about-us-page .profile-block__grid {
    max-width: 1024px;
    margin: 0 auto;
    padding: 0 24px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: center
}

.about-us-page .profile-block__text-zone {
    padding: 48px 24px 48px 0
}

.about-us-page .profile-block__eyebrow {
    font-size: 13px;
    letter-spacing: .02em;
    color: #95A957;
    font-weight: 600;
    margin-bottom: 24px;
    display: block
}

.about-us-page .profile-block__heading {
    font-size: 46px;
    line-height: 1.15;
    letter-spacing: .01em;
    font-weight: 700;
    margin-bottom: 24px;
    color: #2b2b2b
}

.about-us-page .profile-block__heading .accent-word {
    color: #95A957
}

.about-us-page .profile-block__body {
    font-size: 16px;
    line-height: 1.65;
    color: #3a3a3a;
    margin-bottom: 24px
}

.about-us-page .profile-block__body .drop-cap::first-letter {
    font-size: 46px;
    font-weight: 700;
    float: left;
    line-height: 1;
    margin-right: 6px;
    color: #95A957
}

.about-us-page .profile-block__stat-row {
    display: flex;
    flex-direction: row;
    gap: 24px;
    margin-top: 24px
}

.about-us-page .profile-block__stat {
    border-top: 2px solid #C6C8A2;
    padding-top: 12px
}

.about-us-page .profile-block__stat-number {
    font-size: 34px;
    font-weight: 700;
    color: #95A957;
    line-height: 1.15;
    letter-spacing: .01em
}

.about-us-page .profile-block__stat-label {
    font-size: 13px;
    color: #5a5a5a;
    line-height: 1.65;
    letter-spacing: .01em
}

.about-us-page .profile-block__image-zone {
    position: relative;
    aspect-ratio: 1/1;
    border-radius: 22px;
    overflow: hidden;
    box-shadow: 2px 9px 40px 0 #95a9571f
}

.about-us-page .profile-block__image-zone img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block
}

.about-us-page .profile-block__image-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 55%;
    background: linear-gradient(163deg, transparent, #95a95773);
    pointer-events: none
}

.about-us-page .profile-block__curve-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    overflow: hidden;
    z-index: 0
}

.about-us-page .profile-block__curve-bg svg {
    position: absolute;
    top: -60px;
    right: -80px;
    opacity: .18
}

.about-us-page .profile-block__grid {
    position: relative;
    z-index: 1
}

.about-us-page .profile-block__side-accent {
    position: absolute;
    right: 0;
    top: 15%;
    bottom: 15%;
    width: 2px;
    background: linear-gradient(163deg, #95A957, #C6C8A2);
    border-radius: 2px
}

.about-us-page .profile-block__divider {
    width: 100%;
    overflow: hidden;
    line-height: 0;
    margin-top: 0
}

.about-us-page .profile-block__divider svg {
    display: block;
    width: 100%
}

.about-us-page .approach-block {
    background: #fff;
    padding: 48px 0;
    position: relative
}

.about-us-page .approach-block__inner {
    max-width: 1024px;
    margin: 0 auto;
    padding: 0 24px
}

.about-us-page .approach-block__heading {
    font-size: 34px;
    line-height: 1.15;
    font-weight: 700;
    letter-spacing: .01em;
    color: #2b2b2b;
    margin-bottom: 12px
}

.about-us-page .approach-block__heading .accent-word {
    color: #95A957
}

.about-us-page .approach-block__subtext {
    font-size: 16px;
    line-height: 1.65;
    color: #4a4a4a;
    max-width: 540px;
    margin-bottom: 48px;
    letter-spacing: .01em
}

.about-us-page .approach-block__layout {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 48px;
    align-items: start
}

.about-us-page .approach-block__steps {
    display: flex;
    flex-direction: column;
    gap: 0
}

.about-us-page .approach-block__step {
    display: flex;
    flex-direction: row;
    gap: 24px;
    align-items: flex-start;
    padding: 24px 0;
    position: relative;
    cursor: default;
    transition: background .18s ease-out;
    border-radius: 2px
}

.about-us-page .approach-block__step:hover .step-dot {
    background: #95A957;
    box-shadow: 2px 3px 5px 0 #95a95712;
    transform: scale(1.25)
}

.about-us-page .approach-block__step:hover .step-label {
    opacity: 1
}

.about-us-page .step-trail {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex-shrink: 0
}

.about-us-page .step-dot {
    width: 14px;
    height: 14px;
    border-radius: 22px;
    background: #C6C8A2;
    border: 2px solid #95A957;
    transition: background .18s ease-out, transform .14s cubic-bezier(0.4, 0, 0.6, 1);
    flex-shrink: 0
}

.about-us-page .step-dot.active {
    background: #95A957
}

.about-us-page .step-line {
    width: 2px;
    flex: 1;
    min-height: 32px;
    background: #C6C8A2;
    margin-top: 4px;
    border-radius: 2px
}

.about-us-page .approach-block__step:last-child .step-line {
    display: none
}

.about-us-page .step-text {
    padding-bottom: 12px;
    position: relative
}

.about-us-page .step-label {
    font-size: 13px;
    color: #95A957;
    font-weight: 600;
    letter-spacing: .02em;
    opacity: 0;
    transition: opacity .14s ease-out;
    position: absolute;
    top: 0;
    right: 0;
    background: #F4F7F1;
    padding: 2px 6px;
    border-radius: 2px
}

.about-us-page .step-heading {
    font-size: 19px;
    font-weight: 700;
    color: #2b2b2b;
    line-height: 1.15;
    letter-spacing: .01em;
    margin-bottom: 6px
}

.about-us-page .step-body {
    font-size: 16px;
    line-height: 1.65;
    color: #4a4a4a;
    letter-spacing: .01em
}

.about-us-page .approach-block__visual {
    display: flex;
    flex-direction: column;
    gap: 24px
}

.about-us-page .chart-panel {
    background: #F4F7F1;
    border-radius: 22px;
    padding: 24px;
    box-shadow: 2px 6px 22px 0 #c6c8a21c
}

.about-us-page .chart-panel__label {
    font-size: 13px;
    color: #5a5a5a;
    letter-spacing: .02em;
    margin-bottom: 24px;
    font-weight: 600
}

.about-us-page .chart-bar-row {
    display: flex;
    flex-direction: column;
    gap: 12px
}

.about-us-page .chart-bar-item {
    display: flex;
    flex-direction: column;
    gap: 6px
}

.about-us-page .chart-bar-meta {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center
}

.about-us-page .chart-bar-name {
    font-size: 13px;
    color: #3a3a3a;
    letter-spacing: .01em
}

.about-us-page .chart-bar-value {
    font-size: 13px;
    color: #95A957;
    font-weight: 700
}

.about-us-page .chart-bar-track {
    height: 8px;
    background: #e8ecd8;
    border-radius: 2px;
    overflow: hidden
}

.about-us-page .chart-bar-fill {
    height: 100%;
    background: linear-gradient(163deg, #95A957, #C6C8A2);
    border-radius: 2px;
    width: 0;
    animation: bar-grow .85s cubic-bezier(0.4, 0, 0.6, 1) forwards
}

.about-us-page .chart-bar-fill.w-82 {
    animation-delay: .1s;
    --bar-w: 82%
}

.about-us-page .chart-bar-fill.w-67 {
    animation-delay: .22s;
    --bar-w: 67%
}

.about-us-page .chart-bar-fill.w-91 {
    animation-delay: .34s;
    --bar-w: 91%
}

.about-us-page .chart-bar-fill.w-74 {
    animation-delay: .46s;
    --bar-w: 74%
}

@keyframes bar-grow {
    to {
        width: var(--bar-w)
    }
}

.about-us-page .approach-block__image-pair {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px
}

.about-us-page .approach-block__image-frame {
    aspect-ratio: 1/1;
    border-radius: 22px;
    overflow: hidden;
    box-shadow: 2px 6px 22px 0 #95a9571c
}

.about-us-page .approach-block__image-frame img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .22s ease-out
}

.about-us-page .approach-block__image-frame:hover img {
    transform: scale(1.04)
}

.about-us-page .approach-block__divider {
    width: 100%;
    overflow: hidden;
    line-height: 0
}

.about-us-page .approach-block__divider svg {
    display: block;
    width: 100%
}

.about-us-page .team-block {
    background: #F4F7F1;
    padding: 48px 0;
    position: relative
}

.about-us-page .team-block__inner {
    max-width: 1024px;
    margin: 0 auto;
    padding: 0 24px
}

.about-us-page .team-block__top {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: start;
    margin-bottom: 48px
}

.about-us-page .team-block__heading {
    font-size: 34px;
    line-height: 1.15;
    font-weight: 700;
    letter-spacing: .01em;
    color: #2b2b2b
}

.about-us-page .team-block__heading .accent-word {
    color: #95A957
}

.about-us-page .team-block__description {
    font-size: 16px;
    line-height: 1.65;
    color: #4a4a4a;
    letter-spacing: .01em
}

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

.about-us-page .member-card {
    background: #fff;
    border-radius: 22px;
    overflow: hidden;
    box-shadow: 2px 3px 5px 0 #95a95712;
    transition: box-shadow .18s ease-out, transform .16s cubic-bezier(0.4, 0, 0.6, 1);
    position: relative
}

.about-us-page .member-card:hover {
    box-shadow: 2px 9px 40px 0 #95a9571f;
    transform: translateY(-4px)
}

.about-us-page .member-card__image-frame {
    aspect-ratio: 1/1;
    overflow: hidden;
    position: relative
}

.about-us-page .member-card__image-frame img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .22s ease-out
}

.about-us-page .member-card:hover .member-card__image-frame img {
    transform: scale(1.05)
}

.about-us-page .member-card__image-fade {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 40%;
    background: linear-gradient(163deg, transparent, #c6c8a24d);
    pointer-events: none
}

.about-us-page .member-card__body {
    padding: 24px
}

.about-us-page .member-card__name {
    font-size: 19px;
    font-weight: 700;
    color: #2b2b2b;
    line-height: 1.15;
    letter-spacing: .01em;
    margin-bottom: 6px
}

.about-us-page .member-card__role {
    font-size: 13px;
    color: #95A957;
    font-weight: 600;
    letter-spacing: .02em;
    margin-bottom: 12px
}

.about-us-page .member-card__note {
    font-size: 13px;
    line-height: 1.65;
    color: #5a5a5a;
    letter-spacing: .01em
}

.about-us-page .team-block__side-accent {
    position: absolute;
    right: 0;
    top: 20%;
    bottom: 20%;
    width: 2px;
    background: linear-gradient(163deg, #C6C8A2, #95A957);
    border-radius: 2px
}

.about-us-page .pulse-bg {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    pointer-events: none;
    z-index: 0
}

.about-us-page .pulse-ring {
    position: absolute;
    border-radius: 22px;
    border: 1px solid #95a9571f;
    animation: pulse-expand 3.5s ease-out infinite
}

.about-us-page .pulse-ring:nth-child(1) {
    width: 200px;
    height: 200px;
    top: -100px;
    left: -100px;
    animation-delay: 0s
}

.about-us-page .pulse-ring:nth-child(2) {
    width: 400px;
    height: 400px;
    top: -200px;
    left: -200px;
    animation-delay: 1.1s
}

.about-us-page .pulse-ring:nth-child(3) {
    width: 600px;
    height: 600px;
    top: -300px;
    left: -300px;
    animation-delay: 2.2s
}

@keyframes pulse-expand {
    0% {
        opacity: .18;
        transform: scale(0.85)
    }

    60% {
        opacity: .08
    }

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

.about-us-page .team-block__inner {
    position: relative;
    z-index: 1
}

.about-us-page .cta-strip {
    background: #fff;
    border-top: 1px solid #e8ecd8;
    padding: 24px;
    margin-top: 48px;
    border-radius: 22px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    box-shadow: 2px 3px 5px 0 #c6c8a212
}

.about-us-page .cta-strip__text {
    font-size: 19px;
    font-weight: 700;
    color: #2b2b2b;
    line-height: 1.15;
    letter-spacing: .01em
}

.about-us-page .cta-strip__text .accent-word {
    color: #95A957
}

.about-us-page .btn-primary {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: 6px;
    background: #95A957;
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: .01em;
    padding: 12px 24px;
    border-radius: 2px;
    border: none;
    cursor: pointer;
    text-decoration: none;
    position: relative;
    overflow: hidden;
    transition: color .16s ease-out;
    flex-shrink: 0
}

.about-us-page .btn-primary::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 0;
    background: #2b2b2b;
    transition: width .2s cubic-bezier(0.4, 0, 0.6, 1);
    z-index: 0
}

.about-us-page .btn-primary:hover::after {
    width: 100%;
    left: 0;
    right: auto
}

.about-us-page .btn-primary:hover {
    color: #fff
}

.about-us-page .btn-primary span,
.about-us-page .btn-primary svg {
    position: relative;
    z-index: 1
}

.about-us-page .btn-primary:focus {
    outline: 2px solid #95A957;
    outline-offset: 2px
}

@media (max-width: 768px) {
    .about-us-page .profile-block__grid {
        grid-template-columns: 1fr;
        gap: 24px
    }

    .about-us-page .profile-block__text-zone {
        padding: 24px 0
    }

    .about-us-page .profile-block__heading {
        font-size: 34px
    }

    .about-us-page .approach-block__layout {
        grid-template-columns: 1fr
    }

    .about-us-page .team-block__top {
        grid-template-columns: 1fr;
        gap: 24px
    }

    .about-us-page .team-block__grid {
        grid-template-columns: 1fr 1fr
    }

    .about-us-page .cta-strip {
        flex-direction: column;
        align-items: flex-start
    }

    .about-us-page .approach-block__image-pair {
        grid-template-columns: 1fr 1fr
    }
}

@media (max-width: 390px) {
    .about-us-page .profile-block__heading {
        font-size: 25px
    }

    .about-us-page .profile-block__stat-row {
        flex-direction: column;
        gap: 12px
    }

    .about-us-page .team-block__grid {
        grid-template-columns: 1fr
    }

    .about-us-page .approach-block__image-pair {
        grid-template-columns: 1fr
    }

    .about-us-page .approach-block__heading {
        font-size: 25px
    }

    .about-us-page .team-block__heading {
        font-size: 25px
    }
}

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

.opening .page-bound {
    max-width: 1024px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 24px;
    padding-right: 24px
}

.opening .label-tag {
    display: inline-block;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #95A957;
    margin-bottom: 12px
}

.opening .split-head {
    font-size: 46px;
    line-height: 1.15;
    letter-spacing: .01em;
    font-weight: 700;
    margin-bottom: 24px
}

.opening .split-head .word-accent {
    color: #95A957
}

.opening .split-head .word-base {
    color: #2a2a2a
}

.opening .body-text {
    font-size: 16px;
    line-height: 1.65;
    letter-spacing: .01em;
    color: #3a3c35
}

.opening .body-text.drop-cap::first-letter {
    font-size: 46px;
    font-weight: 700;
    line-height: 1;
    float: left;
    margin-right: 6px;
    margin-top: 4px;
    color: #95A957
}

.opening .btn-primary {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: .01em;
    color: #fff;
    background-color: #95A957;
    border: none;
    border-radius: 2px;
    padding: 12px 24px;
    cursor: pointer;
    position: relative;
    overflow: hidden;
    transition: color .18s ease-out;
    text-decoration: none
}

.opening .btn-primary::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 0;
    height: 100%;
    background-color: #6e7e3e;
    transition: width .2s cubic-bezier(0.4, 0, 0.6, 1);
    z-index: 0
}

.opening .btn-primary:hover::before {
    width: 100%;
    left: 0;
    right: auto
}

.opening .btn-primary span {
    position: relative;
    z-index: 1
}

.opening .btn-secondary {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: .01em;
    color: #95A957;
    background-color: transparent;
    border: 2px solid #95A957;
    border-radius: 2px;
    padding: 12px 24px;
    cursor: pointer;
    position: relative;
    overflow: hidden;
    transition: color .18s ease-out;
    text-decoration: none
}

.opening .btn-secondary::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 0;
    height: 100%;
    background-color: #95A957;
    transition: width .2s cubic-bezier(0.4, 0, 0.6, 1);
    z-index: 0
}

.opening .btn-secondary:hover::before {
    width: 100%
}

.opening .btn-secondary:hover span {
    color: #fff
}

.opening .btn-secondary span {
    position: relative;
    z-index: 1;
    transition: color .18s ease-out
}

.opening .title-band {
    background-color: #F4F7F1;
    padding-top: 48px;
    padding-bottom: 48px;
    position: relative
}

.opening .title-band::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(163deg, #95a9570f 0%, #c6c8a20a 100%);
    pointer-events: none;
    animation: overlay-pulse 5s ease-out infinite alternate
}

@keyframes overlay-pulse {
    0% {
        opacity: .4
    }

    100% {
        opacity: 1
    }
}

.opening .title-layout {
    display: flex;
    flex-direction: row;
    gap: 48px;
    align-items: center
}

.opening .title-text-col {
    flex: 0 0 60%;
    max-width: 60%
}

.opening .title-visual-col {
    flex: 0 0 calc(40% - 48px);
    position: relative
}

.opening .title-image-frame {
    border-radius: 2px;
    overflow: hidden;
    aspect-ratio: 1/1;
    position: relative
}

.opening .title-image-frame img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block
}

.opening .title-image-frame::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(163deg, #95a95761 0%, #f4f7f18c 100%);
    pointer-events: none
}

.opening .geo-shape {
    position: absolute;
    border-radius: 2px;
    pointer-events: none
}

.opening .geo-shape.top-right {
    width: 64px;
    height: 64px;
    top: -12px;
    right: -12px;
    background-color: #95a9571f
}

.opening .geo-shape.bottom-left {
    width: 40px;
    height: 40px;
    bottom: -6px;
    left: -6px;
    background-color: #c6c8a22e
}

.opening .abbrev-anchor {
    position: absolute;
    font-size: 62px;
    font-weight: 900;
    letter-spacing: -.02em;
    color: #95a95717;
    line-height: 1;
    top: 50%;
    right: -24px;
    transform: translateY(-50%);
    pointer-events: none;
    white-space: nowrap;
    user-select: none
}

.opening .title-actions {
    display: flex;
    flex-direction: row;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 24px
}

.opening .problem-band {
    background-color: #fff;
    padding-top: 48px;
    padding-bottom: 48px
}

.opening .problem-layout {
    display: flex;
    flex-direction: row;
    gap: 48px;
    align-items: flex-start
}

.opening .problem-text-col {
    flex: 0 0 60%;
    max-width: 60%
}

.opening .problem-aside {
    flex: 1;
    padding-top: 6px
}

.opening .problem-stat {
    background: linear-gradient(163deg, #F4F7F1 0%, #e8eddc 100%);
    border-radius: 22px;
    padding: 24px;
    margin-bottom: 24px
}

.opening .problem-stat .stat-number {
    font-size: 34px;
    font-weight: 800;
    color: #95A957;
    line-height: 1.15;
    letter-spacing: .01em
}

.opening .problem-stat .stat-desc {
    font-size: 13px;
    line-height: 1.65;
    color: #3a3c35;
    margin-top: 6px
}

.opening .steps-trail {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin-top: 24px
}

.opening .step-item {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 12px;
    position: relative;
    padding-bottom: 24px
}

.opening .step-item:last-child {
    padding-bottom: 0
}

.opening .step-dot-col {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex-shrink: 0
}

.opening .step-dot {
    width: 14px;
    height: 14px;
    border-radius: 22px;
    background-color: #C6C8A2;
    border: 2px solid #95A957;
    flex-shrink: 0;
    transition: background-color .15s ease-out
}

.opening .step-item.active .step-dot {
    background-color: #95A957
}

.opening .step-line {
    width: 2px;
    flex: 1;
    min-height: 24px;
    background-color: #C6C8A2;
    margin-top: 4px
}

.opening .step-item:last-child .step-line {
    display: none
}

.opening .step-text {
    font-size: 16px;
    line-height: 1.65;
    color: #3a3c35;
    padding-top: 0
}

.opening .step-text strong {
    color: #2a2a2a;
    font-weight: 600
}

.opening .evidence-band {
    background: linear-gradient(163deg, #F4F7F1 0%, #e8eddc 100%);
    padding-top: 48px;
    padding-bottom: 48px;
    position: relative
}

.opening .evidence-abbrev {
    position: absolute;
    font-size: 62px;
    font-weight: 900;
    letter-spacing: -.02em;
    color: #95a95712;
    line-height: 1;
    top: 24px;
    left: 24px;
    pointer-events: none;
    user-select: none
}

.opening .evidence-grid {
    display: grid;
    grid-template-columns: 1fr 1.3fr 1fr;
    gap: 24px;
    margin-top: 24px
}

.opening .evidence-card {
    background-color: #fff;
    border-radius: 22px;
    padding: 24px;
    box-shadow: 2px 6px 22px 0 #95a9571c;
    display: flex;
    flex-direction: column;
    gap: 12px
}

.opening .evidence-card.tall {
    padding-top: 48px;
    padding-bottom: 48px
}

.opening .evidence-card .card-metric {
    font-size: 34px;
    font-weight: 800;
    color: #95A957;
    line-height: 1.15;
    letter-spacing: .01em
}

.opening .evidence-card .card-label {
    font-size: 13px;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #6e7e3e
}

.opening .evidence-card .card-body {
    font-size: 16px;
    line-height: 1.65;
    color: #3a3c35
}

.opening .evidence-image-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    margin-top: 24px
}

.opening .evidence-img-frame {
    border-radius: 2px;
    overflow: hidden;
    aspect-ratio: 1/1;
    position: relative
}

.opening .evidence-img-frame img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block
}

.opening .evidence-img-frame::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(163deg, #95a9572e 0%, #f4f7f159 100%);
    pointer-events: none
}

.opening .example-band {
    background-color: #fff;
    padding-top: 48px;
    padding-bottom: 48px
}

.opening .example-layout {
    display: grid;
    grid-template-columns: 40% 1fr;
    gap: 48px;
    align-items: start
}

.opening .example-visual {
    position: relative
}

.opening .example-img-frame {
    border-radius: 22px;
    overflow: hidden;
    aspect-ratio: 1/1
}

.opening .example-img-frame img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block
}

.opening .example-schedule {
    margin-top: 24px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px
}

.opening .schedule-item {
    background-color: #F4F7F1;
    border-radius: 2px;
    padding: 12px
}

.opening .schedule-item .sch-phase {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #95A957;
    margin-bottom: 6px
}

.opening .schedule-item .sch-duration {
    font-size: 19px;
    font-weight: 700;
    color: #2a2a2a;
    line-height: 1.15
}

.opening .schedule-item .sch-task {
    font-size: 13px;
    color: #3a3c35;
    line-height: 1.65;
    margin-top: 6px
}

.opening .example-text-col {
    display: flex;
    flex-direction: column;
    gap: 24px
}

.opening .connected-steps {
    display: flex;
    flex-direction: column;
    gap: 0;
    position: relative;
    padding-left: 24px
}

.opening .connected-steps::before {
    content: '';
    position: absolute;
    left: 10px;
    top: 12px;
    bottom: 12px;
    width: 2px;
    background: linear-gradient(180deg, #95A957 0%, #C6C8A2 100%)
}

.opening .connected-step {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 12px;
    padding-bottom: 24px;
    position: relative
}

.opening .connected-step:last-child {
    padding-bottom: 0
}

.opening .connected-step .c-dot {
    width: 20px;
    height: 20px;
    border-radius: 22px;
    background-color: #fff;
    border: 3px solid #95A957;
    flex-shrink: 0;
    margin-left: -34px;
    margin-top: 2px;
    transition: background-color .12s ease-out;
    position: relative;
    z-index: 1
}

.opening .connected-step:hover .c-dot {
    background-color: #95A957
}

.opening .c-step-text {
    flex: 1
}

.opening .c-step-text .c-step-title {
    font-size: 16px;
    font-weight: 700;
    color: #2a2a2a;
    letter-spacing: .01em;
    margin-bottom: 6px
}

.opening .c-step-text .c-step-desc {
    font-size: 13px;
    line-height: 1.65;
    color: #3a3c35
}

.opening .fit-band {
    background-color: #2a2a2a;
    padding-top: 48px;
    padding-bottom: 48px;
    position: relative
}

.opening .fit-band::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(163deg, #95a9571a 0%, #c6c8a20d 100%);
    pointer-events: none;
    animation: overlay-pulse 6s ease-out infinite alternate
}

.opening .fit-abbrev {
    position: absolute;
    font-size: 62px;
    font-weight: 900;
    letter-spacing: -.02em;
    color: #95a95714;
    line-height: 1;
    bottom: 24px;
    right: 24px;
    pointer-events: none;
    user-select: none
}

.opening .fit-layout {
    display: flex;
    flex-direction: row;
    gap: 48px;
    align-items: flex-start
}

.opening .fit-text-col {
    flex: 0 0 55%;
    max-width: 55%
}

.opening .fit-text-col .split-head .word-accent {
    color: #C6C8A2
}

.opening .fit-text-col .split-head .word-base {
    color: #fff
}

.opening .fit-text-col .label-tag {
    color: #C6C8A2
}

.opening .fit-text-col .body-text {
    color: #d0d4c0
}

.opening .fit-list-col {
    flex: 1
}

.opening .fit-list {
    display: flex;
    flex-direction: column;
    gap: 12px
}

.opening .fit-list-item {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 12px;
    background-color: #95a95714;
    border-radius: 2px;
    padding: 12px;
    transition: background-color .15s ease-out
}

.opening .fit-list-item:hover {
    background-color: #95a95726
}

.opening .fit-icon {
    width: 22px;
    height: 22px;
    flex-shrink: 0;
    margin-top: 2px
}

.opening .fit-item-text {
    font-size: 16px;
    line-height: 1.65;
    color: #d0d4c0
}

.opening .fit-item-text strong {
    color: #fff;
    font-weight: 600
}

@media (max-width: 1280px) {
    .opening .title-layout {
        gap: 24px
    }

    .opening .evidence-grid {
        gap: 12px
    }
}

@media (max-width: 768px) {
    .opening .title-layout {
        flex-direction: column;
        gap: 24px
    }

    .opening .title-text-col {
        flex: 0 0 100%;
        max-width: 100%
    }

    .opening .title-visual-col {
        flex: 0 0 100%;
        width: 100%
    }

    .opening .abbrev-anchor {
        display: none
    }

    .opening .problem-layout {
        flex-direction: column;
        gap: 24px
    }

    .opening .problem-text-col {
        flex: 0 0 100%;
        max-width: 100%
    }

    .opening .evidence-grid {
        grid-template-columns: 1fr
    }

    .opening .evidence-card.tall {
        padding-top: 24px;
        padding-bottom: 24px
    }

    .opening .evidence-image-row {
        grid-template-columns: 1fr
    }

    .opening .example-layout {
        grid-template-columns: 1fr;
        gap: 24px
    }

    .opening .example-schedule {
        grid-template-columns: 1fr
    }

    .opening .fit-layout {
        flex-direction: column;
        gap: 24px
    }

    .opening .fit-text-col {
        flex: 0 0 100%;
        max-width: 100%
    }

    .opening .split-head {
        font-size: 34px
    }
}

@media (max-width: 390px) {
    .opening .split-head {
        font-size: 25px
    }

    .opening .title-actions {
        flex-direction: column
    }

    .opening .btn-primary,
    .opening .btn-secondary {
        width: 100%;
        justify-content: center
    }

    .opening .page-bound {
        padding-left: 12px;
        padding-right: 12px
    }

    .opening .example-schedule {
        grid-template-columns: 1fr
    }
}

.contact-us-page {
    max-width: 100%;
    overflow-x: hidden
}

.contact-us-page .page-bound {
    max-width: 1024px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 24px;
    padding-right: 24px
}

@keyframes color-wave {
    0% {
        background-position: 0 50%
    }

    50% {
        background-position: 100% 50%
    }

    100% {
        background-position: 0 50%
    }
}

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

.contact-us-page .divider-wave {
    width: 100%;
    overflow: hidden;
    line-height: 0;
    height: 28px;
    position: relative
}

.contact-us-page .divider-wave svg {
    display: block;
    width: 100%
}

.contact-us-page .drop-cap-text::first-letter {
    float: left;
    font-size: 46px;
    line-height: 1.15;
    font-weight: 700;
    color: #95A957;
    margin-right: 6px;
    margin-top: 2px
}

.contact-us-page .accent-digit {
    color: #95A957;
    font-weight: 700
}

.contact-us-page .dash-before {
    display: inline-block;
    width: 18px;
    height: 2px;
    background: #95A957;
    vertical-align: middle;
    margin-right: 6px;
    border-radius: 2px
}

.contact-us-page .split-heading .first-word {
    color: #95A957
}

.contact-us-page .split-heading .rest-word {
    color: #2a2a2a
}

.contact-us-page .bracket-decoration {
    position: relative
}

.contact-us-page .bracket-decoration::before,
.contact-us-page .bracket-decoration::after {
    content: '';
    position: absolute;
    width: 18px;
    height: 18px;
    border-color: #95A957;
    border-style: solid;
    pointer-events: none
}

.contact-us-page .bracket-decoration::before {
    top: -6px;
    left: -6px;
    border-width: 2px 0 0 2px;
    border-radius: 2px 0 0 0
}

.contact-us-page .bracket-decoration::after {
    bottom: -6px;
    right: -6px;
    border-width: 0 2px 2px 0;
    border-radius: 0 0 2px 0
}

.contact-us-page .title-block {
    border-top: 2px solid #95A957;
    border-bottom: 2px solid #C6C8A2;
    padding-top: 48px;
    padding-bottom: 48px;
    background: #fff
}

.contact-us-page .title-block .page-bound {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    gap: 48px
}

.contact-us-page .title-text-zone {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 24px;
    padding-right: 24px
}

.contact-us-page .title-image-zone {
    flex: 0 0 340px;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    padding-left: 24px
}

.contact-us-page .title-image-zone .image-frame {
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    border-radius: 2px
}

.contact-us-page .title-image-zone .image-frame img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: grayscale(100%) contrast(1.15);
    display: block
}

.contact-us-page .title-label {
    font-size: 13px;
    letter-spacing: .02em;
    color: #95A957;
    font-weight: 600;
    line-height: 1.15;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 6px
}

.contact-us-page .title-heading {
    font-size: 46px;
    line-height: 1.15;
    letter-spacing: .01em;
    font-weight: 700;
    margin: 0
}

.contact-us-page .title-subtext {
    font-size: 16px;
    line-height: 1.65;
    color: #3a3a3a;
    letter-spacing: .01em;
    margin: 0
}

.contact-us-page .contact-data-strip {
    display: flex;
    flex-direction: column;
    gap: 12px
}

.contact-us-page .contact-data-item {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 12px;
    font-size: 13px;
    line-height: 1.65;
    color: #3a3a3a;
    letter-spacing: .01em
}

.contact-us-page .contact-data-item .data-label {
    font-weight: 600;
    color: #2a2a2a;
    min-width: 60px;
    font-size: 13px
}

.contact-us-page .contact-data-item a {
    color: #95A957;
    text-decoration: none;
    transition: color .18s cubic-bezier(0.4, 0, 0.6, 1)
}

.contact-us-page .contact-data-item a:hover {
    color: #2a2a2a
}

.contact-us-page .form-block {
    background: #F4F7F1;
    border-top: 2px solid #C6C8A2;
    border-bottom: 2px solid #95A957;
    padding-top: 48px;
    padding-bottom: 48px;
    position: relative
}

.contact-us-page .form-block .pattern-bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
    border-radius: 0
}

.contact-us-page .form-block .pattern-bg svg {
    width: 100%;
    height: 100%;
    opacity: .04
}

.contact-us-page .form-block .page-bound {
    position: relative
}

.contact-us-page .form-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: start
}

.contact-us-page .form-meta {
    display: flex;
    flex-direction: column;
    gap: 24px
}

.contact-us-page .form-meta-heading {
    font-size: 34px;
    line-height: 1.15;
    letter-spacing: .01em;
    font-weight: 700;
    margin: 0
}

.contact-us-page .form-meta-body {
    font-size: 16px;
    line-height: 1.65;
    color: #3a3a3a;
    letter-spacing: .01em;
    margin: 0
}

.contact-us-page .service-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
    list-style: none;
    padding: 0;
    margin: 0
}

.contact-us-page .service-list li {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 12px;
    font-size: 13px;
    color: #3a3a3a;
    line-height: 1.65;
    letter-spacing: .01em
}

.contact-us-page .service-list .dot-marker {
    width: 8px;
    height: 8px;
    border-radius: 22px;
    background: #C6C8A2;
    flex-shrink: 0;
    transition: background .15s ease-out
}

.contact-us-page .service-list li.active .dot-marker {
    background: #95A957
}

.contact-us-page .contact-form {
    display: flex;
    flex-direction: column;
    gap: 24px
}

.contact-us-page .field-group {
    display: flex;
    flex-direction: column;
    gap: 6px
}

.contact-us-page .field-label {
    font-size: 13px;
    font-weight: 600;
    color: #2a2a2a;
    letter-spacing: .02em;
    line-height: 1.15
}

.contact-us-page .field-label .required-mark {
    color: #95A957;
    margin-left: 2px
}

.contact-us-page .text-input {
    width: 100%;
    padding: 12px;
    border: 1px solid #C6C8A2;
    border-radius: 2px;
    background: #fff;
    font-size: 16px;
    line-height: 1.65;
    color: #2a2a2a;
    letter-spacing: .01em;
    box-sizing: border-box;
    transition: border-color .15s ease-out, box-shadow .15s ease-out;
    outline: none
}

.contact-us-page .text-input::placeholder {
    color: #aaa
}

.contact-us-page .text-input:focus {
    border-color: #95A957;
    box-shadow: 2px 3px 5px 0 #95a95712
}

.contact-us-page .checkboxes-group {
    display: flex;
    flex-direction: column;
    gap: 6px
}

.contact-us-page .checkbox-item {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 12px;
    cursor: pointer;
    font-size: 16px;
    line-height: 1.65;
    color: #3a3a3a;
    letter-spacing: .01em
}

.contact-us-page .checkbox-item input[type="checkbox"] {
    width: 18px;
    height: 18px;
    accent-color: #95A957;
    cursor: pointer;
    flex-shrink: 0;
    border-radius: 2px
}

.contact-us-page .privacy-row {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 12px
}

.contact-us-page .privacy-row input[type="checkbox"] {
    width: 18px;
    height: 18px;
    accent-color: #95A957;
    cursor: pointer;
    flex-shrink: 0;
    margin-top: 3px;
    border-radius: 2px
}

.contact-us-page .privacy-text {
    font-size: 13px;
    line-height: 1.65;
    color: #555;
    letter-spacing: .01em
}

.contact-us-page .privacy-text a {
    color: #95A957;
    text-decoration: underline;
    transition: color .15s ease-out
}

.contact-us-page .privacy-text a:hover {
    color: #2a2a2a
}

.contact-us-page .submit-btn {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: 12px;
    padding: 12px 24px;
    background: #95A957;
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: .01em;
    border: none;
    border-radius: 2px;
    cursor: pointer;
    position: relative;
    overflow: hidden;
    transition: color .18s ease-out;
    align-self: flex-start
}

.contact-us-page .submit-btn::before {
    content: '';
    position: absolute;
    inset: 0;
    background: #2a2a2a;
    transform: translateX(100%);
    transition: transform .2s cubic-bezier(0.4, 0, 0.6, 1);
    z-index: 0;
    border-radius: 2px
}

.contact-us-page .submit-btn:hover::before {
    transform: translateX(0)
}

.contact-us-page .submit-btn:focus {
    outline: 2px solid #95A957;
    outline-offset: 2px
}

.contact-us-page .submit-btn .btn-label {
    position: relative;
    z-index: 1
}

.contact-us-page .submit-btn .btn-icon {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center
}

.contact-us-page .submit-btn .btn-icon svg {
    width: 16px;
    height: 16px;
    fill: currentColor
}

.contact-us-page .details-block {
    background: #fff;
    border-top: 2px solid #95A957;
    border-bottom: 2px solid #C6C8A2;
    padding-top: 48px;
    padding-bottom: 48px
}

.contact-us-page .details-block .page-bound {
    display: flex;
    flex-direction: column;
    gap: 48px
}

.contact-us-page .details-heading {
    font-size: 25px;
    line-height: 1.15;
    letter-spacing: .01em;
    font-weight: 700;
    margin: 0
}

.contact-us-page .details-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 24px
}

.contact-us-page .detail-card {
    border-radius: 2px;
    background: #F4F7F1;
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    box-shadow: 2px 6px 22px 0 #95a9571c;
    transition: box-shadow .18s ease-out
}

.contact-us-page .detail-card:hover {
    box-shadow: 2px 9px 40px 0 #95a9571f
}

.contact-us-page .detail-card .card-icon {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center
}

.contact-us-page .detail-card .card-icon svg {
    width: 24px;
    height: 24px;
    stroke: #95A957;
    fill: none;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round
}

.contact-us-page .detail-card .card-title {
    font-size: 13px;
    font-weight: 700;
    color: #2a2a2a;
    letter-spacing: .02em;
    line-height: 1.15;
    margin: 0
}

.contact-us-page .detail-card .card-value {
    font-size: 16px;
    line-height: 1.65;
    color: #3a3a3a;
    letter-spacing: .01em;
    margin: 0
}

.contact-us-page .detail-card .card-value a {
    color: #95A957;
    text-decoration: none;
    transition: color .15s ease-out
}

.contact-us-page .detail-card .card-value a:hover {
    color: #2a2a2a
}

.contact-us-page .response-note {
    font-size: 13px;
    line-height: 1.65;
    color: #555;
    letter-spacing: .01em;
    border-top: 1px solid #C6C8A2;
    padding-top: 24px
}

@media (max-width: 1280px) {
    .contact-us-page .title-image-zone {
        flex: 0 0 280px
    }
}

@media (max-width: 768px) {
    .contact-us-page .title-block .page-bound {
        flex-direction: column-reverse;
        gap: 24px
    }

    .contact-us-page .title-image-zone {
        flex: none;
        width: 100%;
        padding-left: 0
    }

    .contact-us-page .title-text-zone {
        padding-right: 0
    }

    .contact-us-page .title-heading {
        font-size: 34px
    }

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

    .contact-us-page .details-grid {
        grid-template-columns: 1fr;
        gap: 12px
    }

    .contact-us-page .form-meta-heading {
        font-size: 25px
    }
}

@media (max-width: 390px) {
    .contact-us-page .title-heading {
        font-size: 25px
    }

    .contact-us-page .page-bound {
        padding-left: 12px;
        padding-right: 12px
    }

    .contact-us-page .form-meta-heading {
        font-size: 19px
    }
}

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

.trial-access .page-bound {
    max-width: 1024px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 24px;
    padding-right: 24px
}

@keyframes slideFromRight {
    from {
        opacity: 0;
        transform: translateX(48px)
    }

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

.trial-access .reveal-1 {
    animation: slideFromRight .18s cubic-bezier(0.4, 0, 0.6, 1) both
}

.trial-access .reveal-2 {
    animation: slideFromRight .2s cubic-bezier(0.4, 0, 0.6, 1) .07s both
}

.trial-access .reveal-3 {
    animation: slideFromRight .22s cubic-bezier(0.4, 0, 0.6, 1) .14s both
}

.trial-access .split-screen {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 520px
}

.trial-access .split-left {
    background-color: #2a2e22;
    padding: 72px 48px 48px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    position: relative
}

.trial-access .split-left .accent-stripe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background: linear-gradient(163deg, #95A957, #C6C8A2);
    border-radius: 0
}

.trial-access .split-right {
    background-color: #F4F7F1;
    display: flex;
    align-items: flex-end;
    overflow: hidden
}

.trial-access .split-right .image-mask {
    width: 100%;
    height: 100%;
    clip-path: polygon(12% 0%, 100% 0%, 100% 100%, 0% 100%);
    overflow: hidden
}

.trial-access .split-right .image-mask img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    filter: grayscale(100%);
    display: block
}

.trial-access .page-label {
    font-size: 13px;
    letter-spacing: .18em;
    color: #95A957;
    text-transform: uppercase;
    margin-bottom: 24px;
    display: block
}

.trial-access .page-label::before {
    content: "—";
    margin-right: 6px;
    color: #C6C8A2
}

.trial-access .primary-heading {
    font-size: 46px;
    line-height: 1.15;
    letter-spacing: .01em;
    margin-bottom: 24px
}

.trial-access .primary-heading .word-accent {
    color: #95A957
}

.trial-access .primary-heading .word-rest {
    color: #F4F7F1
}

.trial-access .heading-caption {
    display: block;
    font-size: 13px;
    letter-spacing: .14em;
    color: #C6C8A2;
    text-transform: uppercase;
    border-top: 1px solid #C6C8A2;
    padding-top: 12px;
    margin-bottom: 24px
}

.trial-access .lead-text {
    font-size: 16px;
    line-height: 1.65;
    color: #C6C8A2;
    letter-spacing: .01em;
    max-width: 380px
}

.trial-access .trial-btn {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-top: 24px;
    padding: 12px 24px;
    background-color: #95A957;
    color: #2a2e22;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: .02em;
    border: none;
    border-radius: 2px;
    cursor: pointer;
    text-decoration: none;
    position: relative;
    overflow: hidden;
    transition: color .18s ease-out;
    box-shadow: 2px 6px 22px 0 #95a9571c
}

.trial-access .trial-btn::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 0;
    height: 100%;
    background-color: #C6C8A2;
    transition: width .2s cubic-bezier(0.4, 0, 0.6, 1);
    z-index: 0
}

.trial-access .trial-btn:hover::after {
    width: 100%;
    left: 0;
    right: auto
}

.trial-access .trial-btn span {
    position: relative;
    z-index: 1
}

.trial-access .trial-btn svg {
    position: relative;
    z-index: 1;
    flex-shrink: 0
}

.trial-access .trial-btn:hover {
    color: #2a2e22
}

.trial-access .trial-btn:focus-visible {
    outline: 2px solid #95A957;
    outline-offset: 3px
}

.trial-access .what-included {
    background-color: #fff;
    padding: 48px 0
}

.trial-access .three-col {
    display: grid;
    grid-template-columns: 1fr 2fr 1fr;
    gap: 24px;
    align-items: start
}

.trial-access .col-support {
    padding-top: 12px
}

.trial-access .support-label {
    font-size: 13px;
    letter-spacing: .12em;
    color: #95A957;
    text-transform: uppercase;
    margin-bottom: 12px;
    display: block
}

.trial-access .support-stat {
    font-size: 34px;
    line-height: 1.15;
    letter-spacing: .01em;
    color: #2a2e22;
    font-weight: 700
}

.trial-access .support-stat .num-accent {
    color: #95A957
}

.trial-access .support-note {
    font-size: 13px;
    line-height: 1.65;
    color: #6e7560;
    margin-top: 6px
}

.trial-access .col-center {
    border-left: none;
    padding: 0 24px
}

.trial-access .col-center-heading {
    font-size: 25px;
    line-height: 1.15;
    letter-spacing: .01em;
    margin-bottom: 12px
}

.trial-access .col-center-heading .word-accent {
    color: #95A957
}

.trial-access .col-center-heading .word-rest {
    color: #2a2e22
}

.trial-access .col-center-caption {
    display: block;
    font-size: 13px;
    letter-spacing: .12em;
    color: #95A957;
    text-transform: uppercase;
    border-top: 1px solid #C6C8A2;
    padding-top: 12px;
    margin-bottom: 24px
}

.trial-access .col-center p {
    font-size: 16px;
    line-height: 1.65;
    color: #3a3f2e;
    letter-spacing: .01em
}

.trial-access .col-center p:first-of-type::first-letter {
    font-size: 34px;
    line-height: 1.15;
    float: left;
    margin-right: 6px;
    color: #95A957;
    font-weight: 700
}

.trial-access .col-right {
    padding-top: 12px;
    text-align: right
}

.trial-access .col-right .support-stat {
    text-align: right
}

.trial-access .diamond-accent {
    width: 18px;
    height: 18px;
    background-color: #95A957;
    transform: rotate(45deg);
    border-radius: 2px;
    margin-left: auto;
    margin-bottom: 12px
}

.trial-access .access-steps {
    background: linear-gradient(163deg, #95A957, #C6C8A2);
    padding: 48px 0
}

.trial-access .steps-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px
}

.trial-access .step-card {
    background-color: #fff;
    border-radius: 22px;
    padding: 24px;
    box-shadow: 2px 9px 40px 0 #95a9571f;
    transition: box-shadow .18s ease-out, transform .16s ease-out;
    position: relative
}

.trial-access .step-card:hover {
    box-shadow: 2px 3px 5px 0 #95a95712 0 0 0 3px #95a9572e;
    transform: translateY(-2px)
}

.trial-access .step-number {
    font-size: 46px;
    line-height: 1.15;
    color: #C6C8A2;
    font-weight: 700;
    letter-spacing: .01em;
    margin-bottom: 12px;
    display: block
}

.trial-access .step-number .num-accent {
    color: #95A957
}

.trial-access .step-heading {
    font-size: 19px;
    line-height: 1.15;
    letter-spacing: .01em;
    color: #2a2e22;
    font-weight: 600;
    margin-bottom: 12px
}

.trial-access .step-heading .word-accent {
    color: #95A957
}

.trial-access .step-text {
    font-size: 13px;
    line-height: 1.65;
    color: #4a5040;
    letter-spacing: .01em
}

.trial-access .steps-intro {
    margin-bottom: 24px
}

.trial-access .steps-intro-heading {
    font-size: 25px;
    line-height: 1.15;
    color: #fff;
    letter-spacing: .01em;
    margin-bottom: 6px
}

.trial-access .steps-intro-heading .word-accent {
    color: #2a2e22
}

.trial-access .steps-intro-sub {
    font-size: 13px;
    letter-spacing: .12em;
    color: #ffffffbf;
    text-transform: uppercase
}

.trial-access .readiness {
    background-color: #F4F7F1;
    padding: 48px 0
}

.trial-access .readiness-grid {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 48px;
    align-items: center
}

.trial-access .readiness-left-heading {
    font-size: 34px;
    line-height: 1.15;
    letter-spacing: .01em;
    margin-bottom: 12px
}

.trial-access .readiness-left-heading .word-accent {
    color: #95A957
}

.trial-access .readiness-left-heading .word-rest {
    color: #2a2e22
}

.trial-access .readiness-caption {
    display: block;
    font-size: 13px;
    letter-spacing: .14em;
    color: #95A957;
    text-transform: uppercase;
    border-top: 1px solid #C6C8A2;
    padding-top: 12px;
    margin-bottom: 24px
}

.trial-access .readiness-text {
    font-size: 16px;
    line-height: 1.65;
    color: #3a3f2e;
    letter-spacing: .01em;
    margin-bottom: 24px
}

.trial-access .progress-trail {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 24px
}

.trial-access .trail-item {
    display: flex;
    align-items: flex-start;
    gap: 12px
}

.trial-access .trail-dot-col {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex-shrink: 0;
    padding-top: 4px
}

.trial-access .trail-dot {
    width: 10px;
    height: 10px;
    border-radius: 2px;
    background-color: #C6C8A2;
    flex-shrink: 0
}

.trial-access .trail-item.active .trail-dot {
    background-color: #95A957
}

.trial-access .trail-line {
    width: 2px;
    height: 24px;
    background-color: #C6C8A2;
    margin-top: 2px
}

.trial-access .trail-text {
    font-size: 16px;
    line-height: 1.65;
    color: #3a3f2e;
    letter-spacing: .01em
}

.trial-access .trail-item.active .trail-text {
    color: #2a2e22;
    font-weight: 600
}

.trial-access .readiness-right {
    background-color: #fff;
    border-radius: 22px;
    padding: 24px;
    box-shadow: 2px 6px 22px 0 #95a9571c;
    position: relative
}

.trial-access .readiness-right .diamond-corner {
    position: absolute;
    top: -9px;
    right: 24px;
    width: 18px;
    height: 18px;
    background-color: #95A957;
    transform: rotate(45deg);
    border-radius: 2px
}

.trial-access .contact-row {
    display: flex;
    flex-direction: column;
    gap: 12px
}

.trial-access .contact-item {
    display: flex;
    flex-direction: column;
    gap: 6px
}

.trial-access .contact-key {
    font-size: 13px;
    letter-spacing: .12em;
    color: #95A957;
    text-transform: uppercase
}

.trial-access .contact-value {
    font-size: 16px;
    line-height: 1.65;
    color: #2a2e22;
    letter-spacing: .01em;
    text-decoration: none
}

.trial-access .contact-value:hover {
    color: #95A957;
    transition: color .14s ease-out
}

.trial-access .contact-divider {
    height: 1px;
    background-color: #F4F7F1;
    margin: 6px 0
}

.trial-access .cta-link {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-top: 24px;
    padding: 12px 24px;
    background-color: #2a2e22;
    color: #F4F7F1;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: .02em;
    border: none;
    border-radius: 2px;
    cursor: pointer;
    text-decoration: none;
    position: relative;
    overflow: hidden;
    transition: color .18s ease-out;
    box-shadow: 2px 3px 5px 0 #95a95712
}

.trial-access .cta-link::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 0;
    height: 100%;
    background-color: #95A957;
    transition: width .22s cubic-bezier(0.4, 0, 0.6, 1);
    z-index: 0
}

.trial-access .cta-link:hover::after {
    width: 100%
}

.trial-access .cta-link:hover {
    color: #2a2e22
}

.trial-access .cta-link span,
.trial-access .cta-link svg {
    position: relative;
    z-index: 1
}

.trial-access .cta-link:focus-visible {
    outline: 2px solid #95A957;
    outline-offset: 3px
}

@media (max-width: 1280px) {
    .trial-access .split-screen {
        grid-template-columns: 1fr 1fr
    }

    .trial-access .three-col {
        grid-template-columns: 1fr 2fr 1fr
    }
}

@media (max-width: 768px) {
    .trial-access .split-screen {
        grid-template-columns: 1fr
    }

    .trial-access .split-right {
        height: 260px
    }

    .trial-access .split-right .image-mask {
        clip-path: none
    }

    .trial-access .split-left {
        padding: 48px 24px 24px
    }

    .trial-access .primary-heading {
        font-size: 34px
    }

    .trial-access .three-col {
        grid-template-columns: 1fr
    }

    .trial-access .col-center {
        padding: 0
    }

    .trial-access .col-right {
        text-align: left
    }

    .trial-access .diamond-accent {
        margin-left: 0
    }

    .trial-access .steps-grid {
        grid-template-columns: 1fr
    }

    .trial-access .readiness-grid {
        grid-template-columns: 1fr;
        gap: 24px
    }
}

@media (max-width: 390px) {
    .trial-access .primary-heading {
        font-size: 25px
    }

    .trial-access .page-bound {
        padding-left: 12px;
        padding-right: 12px
    }

    .trial-access .split-left {
        padding: 48px 12px 24px
    }

    .trial-access .steps-grid {
        grid-template-columns: 1fr
    }
}

.services-page {
    background-color: #fff;
    overflow-x: clip
}

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

.services-page ::selection {
    background: #1a1a1a;
    color: #fff
}

.services-page .sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0
}

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

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

.services-page .reveal-scale {
    animation: scale-reveal .18s cubic-bezier(0.4, 0, 0.6, 1) both
}

.services-page .reveal-scale.delay-1 {
    animation-delay: .06s
}

.services-page .reveal-scale.delay-2 {
    animation-delay: .12s
}

.services-page .reveal-scale.delay-3 {
    animation-delay: .18s
}

.services-page .pitch {
    position: relative;
    padding: 48px 24px;
    background-color: #F4F7F1;
    border-top: 2px solid #95A957;
    overflow: hidden
}

.services-page .pitch-dots {
    position: absolute;
    top: 24px;
    right: 24px;
    display: flex;
    flex-direction: row;
    gap: 6px;
    pointer-events: none
}

.services-page .pitch-dots span {
    display: block;
    border-radius: 22px;
    background-color: #95A957;
    opacity: .18
}

.services-page .pitch-dots span:nth-child(1) {
    width: 8px;
    height: 8px
}

.services-page .pitch-dots span:nth-child(2) {
    width: 14px;
    height: 14px;
    opacity: .12
}

.services-page .pitch-dots span:nth-child(3) {
    width: 6px;
    height: 6px;
    opacity: .22
}

.services-page .pitch-inner {
    max-width: 1024px;
    margin: 0 auto
}

.services-page .pitch-label {
    font-size: 13px;
    letter-spacing: .02em;
    color: #95A957;
    font-weight: 600;
    line-height: 1.15;
    margin-bottom: 12px;
    text-transform: uppercase
}

.services-page .pitch-heading {
    font-size: 46px;
    line-height: 1.15;
    letter-spacing: .01em;
    font-weight: 700;
    margin: 0 0 24px;
    color: #2c2c2c
}

.services-page .pitch-heading .word-accent {
    color: #95A957
}

.services-page .pitch-description {
    font-size: 19px;
    line-height: 1.65;
    letter-spacing: .01em;
    color: #4a4a4a;
    max-width: 640px;
    margin: 0
}

.services-page .detail-block {
    padding: 48px 24px;
    background-color: #fff
}

.services-page .detail-inner {
    max-width: 1024px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: start
}

.services-page .detail-visual {
    position: relative;
    border-radius: 2px;
    overflow: hidden;
    aspect-ratio: 1 / 1
}

.services-page .detail-visual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    border-radius: 2px;
    transition: transform .18s ease-out
}

.services-page .detail-visual:hover img {
    transform: scale(1.03)
}

.services-page .detail-visual-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(163deg, #95a957d1, #c6c8a2b8);
    opacity: 0;
    transition: opacity .18s ease-out;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 24px;
    border-radius: 2px
}

.services-page .detail-visual:hover .detail-visual-overlay {
    opacity: 1
}

.services-page .detail-visual-overlay-text {
    font-size: 19px;
    line-height: 1.65;
    color: #fff;
    font-weight: 600;
    text-align: center;
    letter-spacing: .01em
}

.services-page .detail-annotations {
    display: flex;
    flex-direction: column;
    gap: 24px
}

.services-page .annotation-item {
    display: flex;
    flex-direction: row;
    gap: 12px;
    align-items: flex-start
}

.services-page .annotation-number {
    font-size: 34px;
    line-height: 1.15;
    font-weight: 700;
    color: #95A957;
    letter-spacing: .01em;
    flex-shrink: 0;
    width: 48px
}

.services-page .annotation-body {
    display: flex;
    flex-direction: column;
    gap: 6px
}

.services-page .annotation-body h4 {
    font-size: 16px;
    font-weight: 700;
    color: #2c2c2c;
    margin: 0;
    line-height: 1.15;
    letter-spacing: .01em
}

.services-page .annotation-body p {
    font-size: 13px;
    line-height: 1.65;
    color: #555;
    margin: 0;
    letter-spacing: .01em
}

.services-page .detail-heading {
    font-size: 34px;
    line-height: 1.15;
    font-weight: 700;
    color: #2c2c2c;
    margin: 0 0 12px;
    letter-spacing: .01em
}

.services-page .detail-heading .word-accent {
    color: #95A957
}

.services-page .detail-intro {
    font-size: 16px;
    line-height: 1.65;
    color: #4a4a4a;
    margin: 0 0 24px;
    letter-spacing: .01em
}

.services-page .detail-intro::first-letter {
    font-size: 34px;
    font-weight: 700;
    color: #95A957;
    float: left;
    line-height: 1;
    margin-right: 6px;
    margin-top: 4px
}

.services-page .feed-faq {
    padding: 48px 24px;
    background: linear-gradient(163deg, #F4F7F1 0%, #fff 100%);
    position: relative
}

.services-page .feed-faq-dots {
    position: absolute;
    bottom: 24px;
    left: 24px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    pointer-events: none
}

.services-page .feed-faq-dots span {
    display: block;
    border-radius: 22px;
    background-color: #C6C8A2
}

.services-page .feed-faq-dots span:nth-child(1) {
    width: 10px;
    height: 10px;
    opacity: .5
}

.services-page .feed-faq-dots span:nth-child(2) {
    width: 6px;
    height: 6px;
    opacity: .35
}

.services-page .feed-faq-dots span:nth-child(3) {
    width: 14px;
    height: 14px;
    opacity: .25
}

.services-page .feed-faq-inner {
    max-width: 1024px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 5fr 7fr;
    gap: 48px;
    align-items: start
}

.services-page .activity-feed {
    display: flex;
    flex-direction: column;
    gap: 0
}

.services-page .activity-feed-heading {
    font-size: 25px;
    font-weight: 700;
    color: #2c2c2c;
    margin: 0 0 24px;
    line-height: 1.15;
    letter-spacing: .01em
}

.services-page .activity-feed-heading .word-accent {
    color: #95A957
}

.services-page .feed-entry {
    display: flex;
    flex-direction: row;
    gap: 12px;
    align-items: flex-start;
    padding: 12px 0;
    position: relative
}

.services-page .feed-entry+.feed-entry::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 1px;
    background-color: #C6C8A2;
    opacity: .4
}

.services-page .feed-icon {
    width: 24px;
    height: 24px;
    border-radius: 22px;
    background-color: #95A957;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 2px
}

.services-page .feed-icon svg {
    width: 12px;
    height: 12px;
    fill: #fff
}

.services-page .feed-body {
    display: flex;
    flex-direction: column;
    gap: 2px
}

.services-page .feed-timestamp {
    font-size: 13px;
    color: #95A957;
    font-weight: 600;
    letter-spacing: .02em;
    line-height: 1.15
}

.services-page .feed-description {
    font-size: 13px;
    color: #4a4a4a;
    line-height: 1.65;
    letter-spacing: .01em;
    margin: 0
}

.services-page .faq-area {
    display: flex;
    flex-direction: column;
    gap: 12px
}

.services-page .faq-heading {
    font-size: 25px;
    font-weight: 700;
    color: #2c2c2c;
    margin: 0 0 12px;
    line-height: 1.15;
    letter-spacing: .01em
}

.services-page .faq-heading .word-accent {
    color: #95A957
}

.services-page .faq-item {
    border: 1px solid #C6C8A2;
    border-radius: 2px;
    background-color: #fff;
    box-shadow: 2px 3px 5px 0 #95a95712;
    overflow: hidden
}

.services-page .faq-item input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
    pointer-events: none
}

.services-page .faq-toggle {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    padding: 12px;
    cursor: pointer;
    gap: 12px;
    user-select: none;
    transition: background-color .14s ease-out
}

.services-page .faq-toggle:hover {
    background-color: #F4F7F1
}

.services-page .faq-question {
    font-size: 16px;
    font-weight: 600;
    color: #2c2c2c;
    line-height: 1.15;
    letter-spacing: .01em;
    margin: 0;
    flex: 1
}

.services-page .faq-arrow {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    transition: transform .16s cubic-bezier(0.4, 0, 0.6, 1);
    fill: #95A957
}

.services-page .faq-answer {
    font-size: 13px;
    line-height: 1.65;
    color: #555;
    padding: 0 12px;
    letter-spacing: .01em;
    max-height: 0;
    overflow: hidden;
    transition: max-height .18s ease-out, padding .14s ease-out
}

.services-page .faq-item.open .faq-answer {
    max-height: 300px !important;
    padding: 0 12px 12px
}

.services-page .faq-item.open .faq-arrow {
    transform: rotate(180deg)
}

.services-page .progress-trail {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0;
    margin: 24px 0 0
}

.services-page .trail-dot {
    width: 10px;
    height: 10px;
    border-radius: 22px;
    background-color: #C6C8A2;
    flex-shrink: 0;
    transition: background-color .16s ease-out
}

.services-page .trail-dot.active {
    background-color: #95A957;
    width: 14px;
    height: 14px
}

.services-page .trail-line {
    flex: 1;
    height: 2px;
    background-color: #C6C8A2;
    min-width: 24px
}

.services-page .btn-primary {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: 6px;
    padding: 12px 24px;
    font-size: 16px;
    font-weight: 600;
    color: #fff;
    background-color: #95A957;
    border: none;
    border-radius: 2px;
    cursor: pointer;
    letter-spacing: .01em;
    line-height: 1.15;
    text-decoration: none;
    position: relative;
    overflow: hidden;
    transition: color .16s ease-out, box-shadow .16s ease-out;
    box-shadow: 2px 6px 22px 0 #95a9571c
}

.services-page .btn-primary::after {
    content: '';
    position: absolute;
    inset: 0;
    background-color: #2c2c2c;
    transform: translateX(100%);
    transition: transform .18s cubic-bezier(0.4, 0, 0.6, 1);
    z-index: 0
}

.services-page .btn-primary:hover::after {
    transform: translateX(0)
}

.services-page .btn-primary span,
.services-page .btn-primary svg {
    position: relative;
    z-index: 1
}

.services-page .btn-primary:focus-visible {
    outline: 2px solid #95A957;
    outline-offset: 2px
}

.services-page .btn-primary svg {
    width: 16px;
    height: 16px;
    fill: #fff
}

@media (max-width: 768px) {
    .services-page .pitch-heading {
        font-size: 34px
    }

    .services-page .detail-inner {
        grid-template-columns: 1fr;
        gap: 24px
    }

    .services-page .detail-visual {
        max-width: 480px
    }

    .services-page .feed-faq-inner {
        grid-template-columns: 1fr;
        gap: 48px
    }
}

@media (max-width: 390px) {
    .services-page .pitch-heading {
        font-size: 25px
    }

    .services-page .pitch-description {
        font-size: 16px
    }

    .services-page .detail-heading {
        font-size: 25px
    }

    .services-page .annotation-number {
        font-size: 25px;
        width: 36px
    }

    .services-page .pitch {
        padding: 48px 12px
    }

    .services-page .detail-block {
        padding: 48px 12px
    }

    .services-page .feed-faq {
        padding: 48px 12px
    }
}

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

.success-page .confirmation-card {
    max-width: 1024px;
    width: 100%;
    background: #fff;
    border-radius: 22px;
    padding: 48px;
    box-shadow: 2px 9px 40px 0 #95a9571f;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 24px
}

.success-page .confirmation-card .status-mark {
    width: 52px;
    height: 52px;
    border-radius: 2px;
    background-color: #95A957;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0
}

.success-page .confirmation-card .status-mark svg {
    display: block
}

.success-page .confirmation-card .confirmation-heading {
    font-size: 34px;
    line-height: 1.15;
    letter-spacing: .01em;
    font-weight: 700;
    margin: 0;
    color: #2b2b2b
}

.success-page .confirmation-card .confirmation-heading .heading-accent {
    color: #95A957
}

.success-page .confirmation-card .confirmation-body {
    font-size: 16px;
    line-height: 1.65;
    letter-spacing: .01em;
    color: #3d3d3d;
    margin: 0;
    max-width: 560px
}

.success-page .confirmation-card .detail-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: 100%
}

.success-page .confirmation-card .detail-list .detail-item {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 12px;
    font-size: 13px;
    line-height: 1.65;
    letter-spacing: .02em;
    color: #4a4a4a
}

.success-page .confirmation-card .detail-list .detail-item .dot-marker {
    width: 8px;
    height: 8px;
    border-radius: 2px;
    background-color: #C6C8A2;
    flex-shrink: 0;
    margin-top: 6px;
    transition: background-color .18s ease-out
}

.success-page .confirmation-card .detail-list .detail-item:hover .dot-marker {
    background-color: #95A957
}

.success-page .confirmation-card .divider-line {
    width: 100%;
    height: 1px;
    background-color: #C6C8A2;
    border: none;
    margin: 0
}

.success-page .confirmation-card .action-row {
    display: flex;
    flex-direction: row;
    gap: 12px;
    flex-wrap: wrap
}

.success-page .confirmation-card .action-row .button-primary {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 12px 24px;
    border-radius: 2px;
    border: none;
    background-color: #95A957;
    color: #fff;
    font-size: 13px;
    letter-spacing: .02em;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    overflow: hidden;
    transition: color .16s ease-out
}

.success-page .confirmation-card .action-row .button-primary::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 0;
    height: 100%;
    background-color: #2b2b2b;
    transition: width .2s cubic-bezier(0.4, 0, 0.6, 1);
    z-index: 0
}

.success-page .confirmation-card .action-row .button-primary:hover::after {
    width: 100%;
    left: 0;
    right: auto
}

.success-page .confirmation-card .action-row .button-primary span,
.success-page .confirmation-card .action-row .button-primary svg {
    position: relative;
    z-index: 1
}

.success-page .confirmation-card .action-row .button-primary:focus-visible {
    outline: 2px solid #95A957;
    outline-offset: 3px
}

.success-page .confirmation-card .action-row .button-secondary {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 12px 24px;
    border-radius: 2px;
    border: 1px solid #C6C8A2;
    background-color: transparent;
    color: #2b2b2b;
    font-size: 13px;
    letter-spacing: .02em;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    overflow: hidden;
    transition: color .14s ease-out, border-color .14s ease-out
}

.success-page .confirmation-card .action-row .button-secondary::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 0;
    height: 100%;
    background-color: #F4F7F1;
    transition: width .18s cubic-bezier(0.4, 0, 0.6, 1);
    z-index: 0
}

.success-page .confirmation-card .action-row .button-secondary:hover::after {
    width: 100%;
    left: 0;
    right: auto
}

.success-page .confirmation-card .action-row .button-secondary span,
.success-page .confirmation-card .action-row .button-secondary svg {
    position: relative;
    z-index: 1
}

.success-page .confirmation-card .action-row .button-secondary:focus-visible {
    outline: 2px solid #95A957;
    outline-offset: 3px
}

.success-page .confirmation-card .contact-note {
    font-size: 13px;
    line-height: 1.65;
    letter-spacing: .01em;
    color: #666;
    margin: 0
}

.success-page .confirmation-card .contact-note .contact-link {
    color: #95A957;
    text-decoration: none;
    font-weight: 600;
    transition: color .12s ease-out
}

.success-page .confirmation-card .contact-note .contact-link:hover {
    color: #2b2b2b
}

@media (max-width: 768px) {
    .success-page {
        padding: 24px 12px
    }

    .success-page .confirmation-card {
        padding: 24px;
        gap: 24px
    }

    .success-page .confirmation-card .confirmation-heading {
        font-size: 25px
    }

    .success-page .confirmation-card .action-row {
        flex-direction: column
    }

    .success-page .confirmation-card .action-row .button-primary,
    .success-page .confirmation-card .action-row .button-secondary {
        width: 100%;
        justify-content: center
    }
}

@media (max-width: 390px) {
    .success-page .confirmation-card {
        padding: 24px 12px
    }

    .success-page .confirmation-card .confirmation-heading {
        font-size: 19px
    }
}